Index: do_sdk.bat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/do_sdk.bat	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/do_sdk.bat	(working copy)
@@ -11,17 +11,14 @@
 @rem set device_option=antilost
 @rem set device_option=dongle
 @rem set device_option=module
-@rem set device_option=test
 @rem set device_option=car
 @rem set device_option=remote_car
 @rem set device_option=mesh
 @echo off
 
 setlocal enabledelayedexpansion
-copy program\patch_sdk.prog + program\patch.prog  output\bt_program23.meta
-
-
 
+copy program\patch_sdk.prog output\bt_program23.meta
 
 copy format\rom.format + format\labels.format + format\command.format  output\bt_format.meta > nul
 
@@ -30,17 +27,15 @@
 if "%device_option%" equ "hci" (
   copy sched\hci_boot.dat output\sched.rom
 ) else if "%device_option%" equ "mouse" (
-  copy sched\mouse.dat + sched\1308.dat output\sched.rom
+  copy sched\mouse.dat output\sched.rom
 ) else if "%device_option%" equ "module" (
   copy sched\DM_module.dat + sched\1308.dat output\sched.rom
 ) else if "%device_option%" equ "shutter" (
-  copy sched\shutter.dat + sched\1308.dat output\sched.rom
+  copy sched\shutter.dat output\sched.rom
 ) else if "%device_option%" equ "antilost" (
   copy sched\antilost.dat + sched\1308.dat output\sched.rom
-) else if "%device_option%" equ "test" (
-  copy sched\test.dat + sched\1308.dat output\sched.rom
 ) else if "%device_option%" equ "dongle" (
-  copy sched\dongle.dat + sched\1308.dat output\sched.rom
+  copy sched\dongle.dat output\sched.rom
 ) else if "%device_option%" equ "car" (
   copy sched\car.dat + sched\1308.dat output\sched.rom
 ) else if "%device_option%" equ "remote_car" (
@@ -64,7 +59,13 @@
 osiuasm bt_program23 -O-W
 
 ::geneep -n -k key.dat
+echo no c51 code
 geneep -n
+::echo exist c51 code
+::geneep
+
+
+::create_exen.pl 1  1024 64
 
 
 if "%device_option%" equ "mouse" (
Index: format/labels.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/format/labels.format	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/format/labels.format	(working copy)
@@ -345,6 +345,7 @@
 0x11a0 rf_rx_write_freq_16m
 0x11a6 rf_rx_enable
 0x11af rf_rx_enable_no_soft_agc
+0x11b3 rf_rx_enable_no_soft_agc_next
 0x11c5 rf_rx_write_freq
 0x11ca rf_tx_write_freq
 0x11d4 rf_write_freq_calc
@@ -354,6 +355,7 @@
 0x11fe rf_tx_write_freq_16m
 0x1205 set_freq_tx
 0x120b txon
+0x121d txon_next
 0x1228 set_tx_power_0db
 0x122a set_rf_ldo_cfg89
 0x122d set_tx_power_3db
@@ -1119,6 +1121,7 @@
 0x257e g24_ch_syncword_crc8_init
 0x2580 g24_reconn_dispatch
 0x2586 g24_reconn_receiver_succ
+0x2595 g24_reconn_attempt_success
 0x2597 g24_txbuf_clear
 0x259a g24_reconn_data_prep
 0x25a1 g24_reconn_device_fail
@@ -1189,6 +1192,7 @@
 0x26e7 pdata_0xff_check
 0x26e9 pdata_0xff_check_loop
 0x26ee power_ctrl_start
+0x26f6 power_ctrl_rssi_avg_compare
 0x26f9 power_ctrl_start_next
 0x2701 power_ctrl_txpower_decrs_check
 0x2706 power_ctrl_txpower_decrs
@@ -2152,619 +2156,6 @@
 0x3bb7 module_clear_le_tx_data_flag
 0x3bb9 module_clr_state
 0x3bbd module_set_state
-0x3bc1 mouse_init
-0x3bcb mouse_init_wireless
-0x3bcf mouse_cb_fuction
-0x3bf0 mouse_setting_config
-0x3bf5 mouse_setting_config_next
-0x3bfd mouse_xtal_init
-0x3c02 mouse_default_init
-0x3c54 mouse_default_init_next
-0x3d13 mouse_param_init
-0x3d3f mouse_param_init_intervl_end
-0x3d43 mouse_24g_short_sleep_set_end
-0x3d52 mouse_start_work
-0x3d59 mouse_start_reconnect_device
-0x3d61 mouse_start_reconnect
-0x3d65 mouse_wakeup_from_power_check
-0x3d6c mouse_wakeup_from_power
-0x3d6f mouse3_0_check_reconn_target
-0x3d73 mouse3_0_check_reconn_target_next
-0x3d7b mouse4_0_check_reconn_target
-0x3d80 mouse4_0_check_reconn_target_next
-0x3d8a mouse_usb_check_enable
-0x3d90 mouse_usb_config_param
-0x3d93 mouse_usb_config_kb_check
-0x3d98 mouse_usb_config_param_init
-0x3d9f mouse_usb_report_rate_set_250hz
-0x3da2 mouse_usb_report_rate_set_500hz
-0x3da5 mouse_usb_report_rate_set_1000hz
-0x3da8 mouse_usb_config_param_setup
-0x3dab mouse_usb_vid_pid_config
-0x3db0 mouse_usb_hid_icon_config
-0x3db2 mouse_usb_check
-0x3db6 mouse_usb_no_exsit
-0x3db9 mouse_usb_exsit
-0x3dbd mouse_usb_isr
-0x3dc1 mouse_usb_interface_check
-0x3dc6 mouse_usb_gpio_low
-0x3dcd mouse_usb_gpio_high
-0x3dd4 mouse_usb_mode
-0x3de4 mouse_push_data_to_usb
-0x3dea mouse_push_mouse_data_to_usb
-0x3df0 mouse_push_keyboard_data_to_usb
-0x3df3 mouse_push_keyboard_package_data_to_usb
-0x3dfb mouse_push_release_keyboard_data_to_usb
-0x3dfd mouse_push_multimedia_key_data_to_usb
-0x3e04 mouse_push_systemctrl_key_data_to_usb
-0x3e0b mouse_clkn_check
-0x3e10 mouse_clkn_timeout
-0x3e13 mouse_lpm_check_wake_lock
-0x3e1d mouse_delay_enter_hibernata
-0x3e20 mouse_app_enter_hibernate
-0x3e25 mouse_before_hibernate
-0x3e33 mouse_setgpio_hibernate
-0x3e3b mouse_process_lpm_before
-0x3e40 mouse_lpm_before_common
-0x3e44 mouse_lpm_before_common_next
-0x3e55 mouse_lpm_before_common_next2
-0x3e5f mouse_set_mult
-0x3e64 mouse_set_ble_mult
-0x3e67 mouse_set_bt_mult
-0x3e6a mouse_adc_gpio_set
-0x3e6c mouse_adc_gpio_check_output
-0x3e72 mouse_adc_gpio_set_next
-0x3e78 mouse_adc_gpio_4_7_set
-0x3e7b mouse_adc_vol_init
-0x3e84 mouse_adc_gpio_vol_init
-0x3e89 mouse_adc_gpio_vinlpm_init
-0x3e8e mouse_adc_gpio_mux_init
-0x3e95 mouse_adc_read_interval
-0x3e9b mouse_adc_read
-0x3ea7 mouse_adc_read_gpio_mux_start
-0x3ea9 mouse_adc_read_gpio
-0x3eae mouse_adc_read_vinlpm
-0x3eb2 mouse_adc_read_battery
-0x3eb6 mouse_adc_read_battery_start
-0x3eb8 mouse_adc_read_start
-0x3ec6 mouse_adc_data_process
-0x3ece mouse_adc_low_voltage
-0x3ed0 mouse_adc_no_low_voltage
-0x3ed8 mouse_adc_bat_percent_lowpower_out
-0x3edf mouse_adc_bat_percent_lowpower_out_gpio_multiple
-0x3ee5 mouse_adc_bat_percent_lowpower_out_gpio_switch
-0x3eee mouse_select_24gdevice
-0x3ef0 mouse_adc_bat_percent_lowpower_out_battery
-0x3efa mouse_adc_bat_level_set
-0x3f0b mouse_adc_bat_level_100_percent
-0x3f0d mouse_adc_bat_level_0_percent
-0x3f0f mouse_adc_bat_percent_lowpower_out_vinlpm_multiple
-0x3f12 mouse_adc_set_button_press_flag
-0x3f16 mouse_adc_clear_button_press_flag
-0x3f1a mouse_adc_button_press
-0x3f1c mouse_power_down
-0x3f1e mouse_gpio_init
-0x3f4d mouse_gpio_set_pupd_by_input
-0x3f54 mouse_gpio_config_input_pd
-0x3f56 mouse_gpio_config_input_pu
-0x3f58 mouse_gpio_set_high_impedance
-0x3f5c mouse_gpio_set_high_impedance_bit_loop
-0x3f65 mouse_sensor_spi_init
-0x3f69 mouse_spi_write_flash_cb
-0x3f69 mouse_spi_init
-0x3f6a mouse_spid_init_pin
-0x3f70 mouse_motion
-0x3f7e mouse_zwheel
-0x3f83 mouse_t_zwheel
-0x3f88 mouse_wheel_check
-0x3f95 mouse_t_wheel_scan
-0x3fa5 mouse_t_wheel_scan_judge1
-0x3fa9 mouse_t_wheel_scan_judge2
-0x3fad mouse_t_wheel_scan_judge11
-0x3faf mouse_t_wheel_scan_judge12
-0x3fb1 mouse_t_wheel_scan_judge21
-0x3fb3 mouse_t_wheel_scan_judge22
-0x3fb5 mouse_t_wheel_scan_judge3
-0x3fbd mouse_t_wheel_scan_judge30
-0x3fc0 mouse_t_wheel_scan_judge31
-0x3fc3 mouse_t_wheel_scan_judge32
-0x3fc6 mouse_t_wheel_scan_judge33
-0x3fc9 mouse_wheel_t_forward
-0x3fcd mouse_wheel_t_back
-0x3fd1 mouse_wheel_scan
-0x3fe1 mouse_wheel_scan_judge1
-0x3fe5 mouse_wheel_scan_judge2
-0x3fe9 mouse_wheel_scan_judge11
-0x3feb mouse_wheel_scan_judge12
-0x3fed mouse_wheel_scan_judge21
-0x3fef mouse_wheel_scan_judge22
-0x3ff1 mouse_wheel_scan_judge3
-0x3ff9 mouse_wheel_scan_judge30
-0x3ffc mouse_wheel_scan_judge31
-0x3fff mouse_wheel_scan_judge32
-0x4002 mouse_wheel_scan_judge33
-0x4005 mouse_wheel_forward
-0x4009 mouse_wheel_back
-0x400d mouse_wheel_gpio_set_wake
-0x4015 mouse_before_hibernate_wheel_gpio_set
-0x401d mouse_wheel_trigger
-0x4022 mouse_wheel_trigger_timer
-0x4025 mouse_wheel_trigger_disable
-0x4027 mouse_dpi_check
-0x402f mouse_dpi_check_next
-0x4033 mouse_dpi_check_exit
-0x4036 mouse_dpi_check_connect_adc
-0x4039 mouse_dpi_key_check
-0x403f mouse_dpi_key_check_next
-0x4042 mouse_3io6key_dpi_check_end
-0x4045 mouse_dpi_check_end
-0x4048 mouse_dpi_key_connect_gnd
-0x404a mouse_dpi_key_connect_matrix
-0x4052 mouse_dpi_down
-0x4059 mouse_dpi_up
-0x4060 mouse_dpi_up_next
-0x4064 mouse_dpi_up_after_long_press
-0x4069 mouse_dpi_process
-0x4072 mouse_dpi_ghost_check
-0x407c mouse_dpi_key_check_long_press
-0x4080 mouse_select_device_by_dpi_button
-0x4085 mouse_ready_reconnection_by_dpi_button
-0x4087 mouse_discovery_by_dpi_button
-0x408c mouse_long_dpi_button_bt_discovery
-0x408e mouse_dpi_config
-0x408f mouse_setting_dpi_4_level
-0x4095 mouse_seting_dpi
-0x4098 mouse_seting_sensor_type
-0x40a0 mouse_set_cpi1
-0x40a2 mouse_set_cpi0
-0x40a4 mouse_set_cpi2
-0x40a6 mouse_set_cpi3
-0x40a8 mouse_dpi_store
-0x40ae mouse_dpi_write
-0x40b7 mouse_3065xy_set_dpi
-0x40b9 mouse_ka8_set_dpi
-0x40bb mouse_seting_3212_dpi
-0x40c0 mouse_set_p3212_cpi1
-0x40c2 mouse_set_p3212_cpi0
-0x40c4 mouse_set_p3212_cpi2
-0x40c6 mouse_set_p3212_cpi3
-0x40c7 mouse_p3212_dpi
-0x40cf mouse_seting_ka8g2_dpi
-0x40d4 mouse_set_pka8g2_cpi1
-0x40d6 mouse_set_pka8g2_cpi0
-0x40d8 mouse_set_pka8g2_cpi2
-0x40da mouse_set_pka8g2_cpi3
-0x40dc mouse_key
-0x40e8 mouse_24g_key
-0x40ed mouse_ghost_key_check
-0x40fd mouse_ghost_key_check_l_bk
-0x4100 mouse_ghost_key_check_m_fw
-0x4103 mouse_ghost_key_check_bk_fw
-0x4106 mouse_ghost_key_check_lmr
-0x410c mouse_matrix_row_more_than_one_key
-0x410e mouse_matrix_cow_more_than_one_key
-0x4110 mouse_key_check_once
-0x4115 mouse_check_key_gpio
-0x411e mouse_check_key_gpio_next
-0x4121 mouse_check_key_gpio_once
-0x4124 mouse_check_lkey_gpio
-0x412a mouse_check_rkey_gpio
-0x4130 mouse_check_mkey_gpio
-0x4136 mouse_check_bkkey_gpio
-0x413e mouse_check_bkkey_gpio_next
-0x4145 mouse_check_bkkey_gpio_end
-0x4147 mouse_check_bk_button_connect_gnd
-0x414b mouse_3io6key_bk_check
-0x414f mouse_check_fwkey_gpio
-0x4157 mouse_check_fwkey_gpio_next
-0x415e mouse_check_fwkey_gpio_end
-0x4160 mouse_check_fw_button_connect_gnd
-0x4164 mouse_3io6key_fw_check
-0x4168 mouse_matrix_public_gpio_reset
-0x416a mouse_check_customerkey_gpio
-0x4177 mouse_check_customerkey_gpio_exit
-0x417a mouse_customerkey_press
-0x417d mouse_customerkey_release
-0x4180 mouse_customer_key_need_send
-0x4182 mouse_check_matrix_button_connect_gnd
-0x4187 mouse_check_key_connect_gnd
-0x4191 mouse_key_release
-0x4193 mouse_key_press
-0x4195 mouse_3io6key_check
-0x41a1 mouse_check_press
-0x41a7 mouse_init_sunt
-0x41aa mouse_init_sensor_wakeup
-0x41ab mouse_init_sensor
-0x41b2 mouse_twspi_reset
-0x41b5 mouse_read_sensor_id
-0x41bc mouse_init_p32xx_id2_judge
-0x41c5 mouse_mx8650_init_param
-0x41cb mouse_8009_init_param
-0x41da mouse_3205_3t_init_param
-0x41e3 mouse_3204_3l_init_param
-0x41ea mouse_3212_init_param
-0x41ed mouse_ka8_init_param_check
-0x41ff mouse_ka8_init_param
-0x4201 mouse_ka8ul_init_param
-0x4204 mouse_ka8hd_sensor_judge
-0x420e mouse_ka8hd_init_param
-0x4211 mouse_enable_ka8_sensor_wp
-0x4214 mouse_p6520_init_param
-0x4217 mouse_init_p3065
-0x421c mouse_p3065_init_param
-0x421e mouse_p3065xy_init_param
-0x4220 mouse_ka8g2_id2_judge
-0x4224 mouse_ka8g2_init_param
-0x4227 mouse_sensor_enable_wp
-0x4229 mouse_sensor_disable_wp
-0x422b mouse_sensor_wr_seq
-0x4232 mouse_sensor_reset
-0x4236 mouse_sensor_poweron
-0x423c mouse_sensor_powerdown
-0x4240 mouse_check_sensor_data
-0x424c mouse_p32xx_sensor_motion
-0x4253 mouse_p32xx_sensor_motion_2
-0x4256 mouse_p32xx_sensor_motion_1
-0x4266 mouse_p3065_judge
-0x4268 mouse_motion32xx_6clk_direction_selection
-0x426a mouse_motion32xx_9clk_direction_selection
-0x426c mouse_motion32xx_12clk_direction_selection
-0x426e mouse_motion32xx_3clk_direction_selection
-0x4270 mouse_p3212_sensor_motion
-0x4276 mouse_p3212_sensor_motion_1
-0x4279 mouse_p3212_sensor_motion_2
-0x428c mouse_read_3212sensor_xy_high
-0x428e mouse_pka8g2_sensor_motion
-0x4294 mouse_pka8g2_sensor_motion_1
-0x4295 mouse_p8009_sensor_motion
-0x42a0 mouse_sensor_set_angle
-0x42aa mouse_sensor_switch_angle
-0x42ad mouse_motion_6clk_direction_dispose
-0x42b1 mouse_motion_12clk_direction_dispose
-0x42b5 mouse_motion_9clk_direction_dispose
-0x42bd mouse_motion_3clk_direction_dispose
-0x42bf mouse_sensor_data_swap_places
-0x42c4 mouse_clear_sensor_data
-0x42c8 mouse_clear_sensor_data_by_reset
-0x42ca mouse_init_sensor_reset
-0x42cb mouse_data_xy_release
-0x42d3 mouse_data_extsign
-0x42d7 mouse_data_extsign_bit3
-0x42db mouse_read_sensor_common
-0x42e2 mouse_sensor_sdio_low
-0x42e9 mouse_set_sdio_high
-0x42eb mouse_buletooth_fast_conn_init
-0x42ef mouse_ble_fast_conn_init
-0x42f4 mouse_bt_fast_conn_init
-0x42f8 mouse_buletooth_fast_conn_end
-0x42ff mouse_device1_check_auto_discover
-0x4301 mouse_device2_check_auto_discover
-0x4302 mouse_device_check_auto_discover
-0x4306 mouse_bt_fast_conn_send_device_name
-0x4314 mouse_bluetooth_fast_conn_disable
-0x4316 mouse_stop_bluetooth_mode
-0x431b mouse_disconnect
-0x4322 mouse_cancel_reconnect
-0x4324 mouse_check_125hz
-0x4326 mouse_bluetooth_125hz
-0x432c mouse_bluetooth_125hz_clear
-0x432f mouse_current_mult_update
-0x4334 mouse_priority_bb_event
-0x4350 mouse_le_bb_event_connected
-0x4357 mouse_le_bb_event_connected_next
-0x435f mouse_le_bb_disconnected
-0x4364 mouse_le_bb_disconnected_next
-0x436a mouse_le_pairing_success
-0x436c mouse_le_enc_info
-0x436c mouse_updata_le_param
-0x436e mouse_le_ll_start_encryt
-0x4371 mouse_le_ll_reconn_start_encryt
-0x4373 mouse_le_ll_enable_start_enc_flag
-0x4375 mouse_le_enable_connect_flag
-0x4379 mouse_le_pairing_complete
-0x437a mouse_le_conn_param_update_rsp_recieved
-0x4384 mouse_le_conn_param_lpm_disable
-0x4386 mouse_le_conn_param_lpm_enable
-0x4388 mouse_le_bb_event_connect_complete
-0x438e mouse_le_write_enable
-0x4390 mouse_le_parse_conn_param_accepted
-0x439a mouse_le_lpm_mult_reinit
-0x439d mouse_le_clean_connect_flag
-0x439f mouse_le
-0x43a7 mouse_le_next
-0x43b8 mouse_le_send_mouse_data
-0x43b9 mouse_le_send_keyboard_package_data
-0x43bc mouse_fill_keyboard_package_data_le
-0x43c3 mouse_le_release_keyboard_data
-0x43c5 mouse_fill_multimedia_key_data_le
-0x43c8 mouse_fill_systemctrl_key_data_le
-0x43cb mouse_fill_battery_level_le
-0x43d1 mouse_le_send_empty_packet
-0x43d3 mouse_fill_mouse_data_le
-0x43d8 mouse_fill_data_le
-0x43df mouse_check_51cmd_adv
-0x43e8 mouse_le_check_adv_flag
-0x43e9 mouse_le_check_adv_flag_loop
-0x43ef mouse_le_adv_data_update
-0x43f3 mouse_bt_sniff_param_interval_setup
-0x43fa mouse_bb_event_connected
-0x43fe mouse_bb_disconnected
-0x4409 mouse_bb_discon_clear_stack
-0x4410 mouse4_0_event_bb_disconn
-0x4414 mouse_event_light_state_pairing
-0x4417 mouse_event_light_state_hibernate
-0x4421 mouse_bt_event_setup_complete
-0x4422 mouse_bt_send_first_package_timer_init
-0x4424 mouse_bt_hid_handshake
-0x442c mouse_bt_hid_handshake_boot_check
-0x4432 mouse_bb_event_reconn_timeout
-0x4432 mouse_bb_event_reconn_failed
-0x443d mouse_enter_sniff_check
-0x4443 mouse_sniff_not_accept
-0x444a mouse_bb_event_pincode
-0x444c mouse_irtual_cable_unplug
-0x4450 mouse_irtual_cable_unplug1
-0x4457 mouse_bt
-0x4474 mouse_send_data
-0x447d mouse_send_data_boot_mode
-0x448e mouse_send_empty_data
-0x4491 mouse_bt_send_keyboard_packet
-0x4494 mouse_bt_send_keyboard_data
-0x44a1 mouse_bt_send_multimedia_key_data
-0x44aa mouse_bt_send_systemctrl_key_data
-0x44b3 mouse_bt_release_keyboard_data
-0x44b5 mouse_bb_event_timer
-0x44c4 mouse_bb_event_timer_next
-0x44cc mouse_bt_discovery_check
-0x44cf mouse_bt_discovery_by_pb_button
-0x44d4 mouse_long_button_bt_discovery
-0x44dc mouse_commbination_key_process
-0x44e2 mouse_24g_commbination_key_process
-0x44e5 mouse_commbination_key_start
-0x44eb mouse_commbination_key_up
-0x44f1 mouse_commbination_key_down
-0x44f6 mouse_combination_ui_timer
-0x44ff mouse_check_discovery_timeout_timer
-0x4502 mouse_check_discovery_timeout
-0x4504 mouse_check_direct_timeout_timer
-0x450a mouse_check_direct_timeout
-0x4512 mouse_le_enable_att_list_timer
-0x4515 mouse_le_send_smp_security_request_timer
-0x451a mouse_le_pairing_sm_start_check
-0x451f mouse_le_battery_updata_timer
-0x4522 mouse_le_battery_level_updata
-0x4525 mouse_le_enable_att_list
-0x452a mouse_check_hid_handshake_timer
-0x452d mouse_bt_check_sniff_req_timeout_timer
-0x4530 mouse_bt_send_first_package
-0x4532 mouse_check_reconnect_delay_long_sleep
-0x4535 mouse_current_mult_update_timer
-0x4538 mouse_current_mult_reinit
-0x453c mouse_check_no_data_timeout_timer
-0x4541 mouse_check_no_data_timeout
-0x4544 mouse_no_data_timer_init
-0x4547 mouse_store_information_delay_timer
-0x454a mouse_store_device_info_check
-0x454e mouse_bb_event_discovery_btn
-0x4553 mouse_start_discovery
-0x455f mouse_start_discovery_norandom
-0x4576 mouse_stop_discovery
-0x4581 mouse_stop_le_adv
-0x4583 mouse_stop_bt3_discovery
-0x4586 mouse_store_remote_bdaddr
-0x458d mouse_unplug_clean_bdaddr
-0x458f mouse_check_device_addr
-0x4593 mouse_check_le_device_addr
-0x4596 mouse_check_bt_device_addr
-0x4598 mouse_check_bt_device_addr_common
-0x459c mouse_check_device_addr_end
-0x45a2 mouse_before_store_reconn_info
-0x45ac mouse_store_le_device
-0x45b3 mouse_store_bt_device
-0x45b7 mouse_clean_addr
-0x45bd mouse_select_reconn_device
-0x45c8 mouse_load_bt_device
-0x45c9 mouse_load_bt_device_end
-0x45cd mouse_load_le_device
-0x45ce mouse_load_le_device_end
-0x45d4 mouse_app_initflag_check
-0x45e2 mouse_load_device_info
-0x45e7 mouse_ble_init_address
-0x45ee mouse_store_device_info_delay
-0x45f1 mouse_store_device_info
-0x45f6 mouse_load_flash_info_check
-0x45fd mouse_information_flash_parameters
-0x4603 mouse_store_flash_device_info
-0x460a mouse_spid_flash_release_form_powerdown
-0x460b mouse_spid_write_flash_cmd
-0x4611 mouse_spid_flash_powerdown
-0x4613 mouse_spid_write_flash_cmd_common
-0x461f mouse_flash_erase_sector
-0x4622 mouse_spid_write_flash
-0x462d mouse_flash_power_down
-0x4635 mouse_load_eeprom_info_check
-0x463b mouse_eeprom_load_recon_info
-0x463f mouse_store_eeprom_device_info
-0x4643 mouse_store_eerpom_dpi
-0x4647 mouse_load_eeprom_dpi
-0x464b mouse_idle
-0x4655 mouse_select_device_check
-0x4659 mouse_select_device_by_pb_button_check_once
-0x465a mouse_select_device_by_pb_button
-0x4664 mouse_select_device_by_pb_button_exit
-0x4667 mouse_3io6key_pb_button_check_end
-0x466a mouse_pb_button_check
-0x4673 mouse_select_device_by_pb_button_end
-0x4676 mouse_pb_button_connect_gnd
-0x4678 mouse_pb_button_connect_matrix
-0x4680 mouse_select_device_button_up
-0x468b mouse_select_device_button_down
-0x4697 mouse_select_device_ghost_check
-0x46a0 mouse_check_select_device_by_switch
-0x46a4 mouse_check_select_device_by_switch_gpio
-0x46a9 mouse_select_btdevice
-0x46ad mouse_check_select_24gdevice
-0x46b1 mouse_check_select_24g_device
-0x46b5 mouse_ready_reconnection_by_button
-0x46ba mouse_store_device_number_before_reset
-0x46c0 mouse_soft_reset
-0x46c2 mouse_select_device_number
-0x46c9 mouse_select_device_number_24g
-0x46ce mouse_select_device_count_clean_24g
-0x46d0 mouse_select_device_count_clean_bt
-0x46d2 mouse_store_device_number2eeprom
-0x46d6 mouse_bt_button_check
-0x46da mouse_select_device_enable
-0x46dc mouse_select_device_disable
-0x46de mouse_bt_cannel_reconn_enable
-0x46e0 mouse_bt_cannel_reconn_disable
-0x46e2 mouse_bt_discovery_button_down_enable
-0x46e4 mouse_bt_discovery_button_down_disable
-0x46e6 mouse_adc_read_enable
-0x46e8 mouse_24g_set_250hz
-0x46ea mouse_24g_search_dongle_enable
-0x46ec mouse_16m_enable
-0x46ee mouse_dpi_4level_enable
-0x46f0 mouse_enable_function_flag
-0x46f4 mouse_disable_function_flag
-0x46f8 mouse_customer_key_enable
-0x4703 mouse_customer_standrad_key_set
-0x4705 mouse_customer_key_ctrl_alt_a
-0x4707 mouse_customer_ac_home
-0x4708 mouse_customer_media_key_set
-0x470c mouse_customer_key_play
-0x470e mouse_polling_device
-0x471a mouse_drawing_optima
-0x4728 mouse_drawing_optima_init
-0x472d mouse_drawing_optima_modify
-0x4741 mouse_drawing_optima_xy_offset_modify
-0x4754 mouse_pre_xy_data_judge
-0x4757 mouse_pre_xy_pdata_offset
-0x475a mouse_xy_data_offset_new
-0x475c mouse_pre_xy_ndata_offset
-0x4762 mouse_current_xy_data_judge
-0x4765 mouse_current_xy_pdata_offset
-0x4769 mouse_current_xy_ndata_offset
-0x476f mouse_pre_xy_get_0_4_times
-0x4774 mouse_current_xy_get_0_6_times
-0x4779 mouse_drawing_optima_data_x
-0x4781 mouse_drawing_optima_data_y
-0x4789 mouse_drawing_optima_data
-0x478f mouse_data_store_pre
-0x4793 mouse_data_sum_overflow
-0x4797 mouse_data_sum_overflow_p
-0x479a mouse_data_sum_n
-0x47a0 mouse_data_set_direction
-0x47a3 mouse_data_zero
-0x47a5 mouse_pdata_get_half
-0x47a7 mouse_pdata_get_new_value
-0x47ab mouse_pdata_invert
-0x47ac mouse_rega_in_out
-0x47af mouse_disable_asm
-0x47b1 mouse_enable_asm
-0x47b3 mouse_pdata_greater_than_check
-0x47b8 mouse_data_less_than_check
-0x47bd mouse_data_abs_check
-0x47c4 mouse_data_abs
-0x47c8 mouse_data_abs_store
-0x47ca mouse_data_reversal
-0x47cd mouse_24g_long_sleep_param_update_timer
-0x47d0 mouse_24g_long_sleep_normal_param
-0x47d4 mouse_24g_long_sleep_set
-0x47d8 mouse_24g_long_sleep_set_80ms
-0x47d9 mouse_24g_long_sleep_set_end
-0x47db mouse_24g_long_sleep_set_30ms
-0x47dd mouse_24g_long_sleep_set_50ms
-0x47df mouse_24g_long_sleep_set_100ms
-0x47e1 mouse_24g_hibernate_set
-0x47eb mouse_wakeup_24g
-0x47ef mouse_24g_transmit_start
-0x47f2 mouse_24g_stop
-0x47f6 mouse_24g_start_mode
-0x4803 mouse_24g_mode_setup_error
-0x4806 mouse_24g_reconn_dongle_start
-0x480a mouse_24g_first_start_auto_pair_mode
-0x480c mouse_24g_reconn_general_dongle
-0x4811 mouse_24g_start_auto_pair
-0x4812 mouse_24g_start_auto_pair_next
-0x4816 mouse_24g_first_start_reconn
-0x481a mouse_24g_first_bluetooth_reconnect
-0x481c mouse_check_bt_reconn_target
-0x481f mouse_24g_first_bb_event_reconn_timeout
-0x4822 mouse_24g_first_store_reconn_info
-0x4827 mouse_24g_start_pair_mode
-0x4833 mouse_24g_attempt_fail
-0x4835 mouse_24g_attempt_fail_next
-0x4839 mouse_24g_attempt_fail_enter_hibernate
-0x4840 mouse_24g_fast_conn_attempt_fail
-0x4844 mouse_24g_auto_pair_attempt_fail
-0x4849 mouse_reconn_dongle_attempt_fail
-0x484e mouse_24g_attempt_success
-0x4857 mouse_24g_pairing_complete
-0x4866 mouse_24g_package_data
-0x486d mouse_24g_mouse_package_data
-0x487c mouse_24g_mouse_package_data_now
-0x4884 mouse_24g_keyboard_package_data
-0x488a mouse_customer_key_press
-0x488c mouse_24g_search_dongle_init
-0x488f mouse_24g_search_dongle
-0x489b mouse_24g_search_dongle_loop
-0x48a5 mouse_24g_search_dongle_loop_end
-0x48ab mouse_24g_search_dongle_loop_retry
-0x48ad mouse_24g_search_dongle_check
-0x48b5 mouse_24g_search_dongle_success
-0x48be mouse_device_poweron_timer
-0x48c6 mouse_device_poweron_timer_init
-0x48cc mouse_discover_setting_led_gpio
-0x48d0 mouse_setting_led_gpio_comman
-0x48d5 mouse_device_led_24g
-0x48d7 mouse_device_led_bt1
-0x48d9 mouse_device_led_bt2
-0x48da mouse_led_blink
-0x48e1 mouse_dpi_led_blink_delay
-0x48ef mouse_dpi_led_blink_delay_timer
-0x48f2 mouse_dpi_led_blink_init
-0x48ff mouse_dpi_led_blink_init_end
-0x4902 mouse_dpi_led_blink_count_clean
-0x4904 mouse_check_dpi_blink
-0x490e mouse_device_led_all_off
-0x4912 mouse_device_led_off
-0x4917 mouse_device_24g_led_off
-0x491a mouse_device_bt1_led_off
-0x491c mouse_device_bt2_led_off
-0x491e mouse_dpi_led_off
-0x4920 mouse_device_led_on
-0x4925 mouse_device_24g_led_on
-0x4927 mouse_device_bt1_led_on
-0x4929 mouse_device_bt2_led_on
-0x492b mouse_led_off
-0x492f mouse_led_on
-0x4933 mouse_ui_led_off_static
-0x493f mouse_ui_led_on_static
-0x4943 mouse_check_bt2_led_off
-0x4947 mouse_check_dpi_led_off
-0x494b mouse_check_low_v_led_off
-0x494e mouse_check_1gpio_2led_off
-0x4952 mouse_clear_24g_led_statue
-0x4954 mouse_set_24g_led_statue
-0x4956 mouse_low_voltage_led_timer
-0x496e mouse_adc_low_volatage_led_timer_count_clean
-0x4970 mouse_low_voltage_led_on
-0x4976 mouse_low_voltage_led_off
-0x497c mouse_low_voltage_led_blink_new_data
-0x4986 mouse_low_voltage_led_blink_init
-0x498e mouse_low_voltage_led_blink_disable
-0x4990 mouse_low_voltage_led_no_enter_lpm
-0x4997 mouse_low_voltage_led_no_enter_lpm_next
-0x499b g24_transmit_by_interrupt_exit_check
-0x499e mouse_lpm_mode_clear
-0x49a2 mouse_low_voltage_led_no_enter_lpm_blink
-0x49a5 mouse_store_signal_rssi
-0x49a8 mouse_le_transmit
-0x49aa mouse_bt_slave_match
-0x49b3 mouse_le_set_lpm_mult
-0x49b8 mouse_bt_set_lpm_mult
-0x49bd mouse_set_lpm_mult
 0x49c0 remote_car_init
 0x49db remote_car_soft_switch_power_on_init
 0x49e2 remote_car_hard_switch_power_on_signal
Index: format/rom.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/format/rom.format	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/format/rom.format	(working copy)
@@ -12,8 +12,14 @@
 
 0x83 TX_POWER_F3DB
 0x85 TX_POWER_F5DB
+0x91 TX_POWER_F17DB
 0x94 TX_POWER_F20DB
 0x9e TX_POWER_F30DB
+0xa8 TX_POWER_F40DB
+0xb2 TX_POWER_F50DB
+0xbc TX_POWER_F60DB
+
+0xaa TX_POWER_FAST_CONN
 )
 (
 0x01 coffset_mode
@@ -1208,6 +1214,7 @@
 0x55 DATATYPE_CONFIG	//bind step 2
 0x22 DATATYPE_OK		//bind step 3
 0xff DATATYPE_ATTEMP	//reconn
+0xaf DATATYPE_OTA
 )
 (
 5 BIND_MODE_CONTINUE
@@ -1234,6 +1241,7 @@
 0 STATE_24G_START
 1 STATE_24G_PAIR
 2 STATE_24G_RECONN
+3 STATE_24G_OTA
 )
 (//mem_24g_transmit_by_interrupt
 1 G24_TX_TIMER_INT_ENABLE
@@ -2789,6 +2797,7 @@
 0X09 KA8_UL
 0X0a KA8_HD
 0X0b KA8G2
+0X0c S201X
 
 
 //SENSOR REG
@@ -2882,12 +2891,73 @@
 7 MOUSE_DEVICE_NUMBER_FLAG
 )
 
+//G24 ota
+(
+0x0001 G24_OTA_VERSION
+0x5a G24_OTA_DATA_HEADER
+
+0 G24_OTA_STORAGE_ERROR
+0x02 G24_OTA_STORAGE_EEPROM
+0x03 G24_OTA_STORAGE_OTP
+0x04 G24_OTA_STORAGE_FLASH
+
+0x00 G24_OTA_STATUS_SUCCESS
+0x01 G24_OTA_STATUS_FAIL
+
+0x01 G24_OTA_TARGET_DONGLE
+0x02 G24_OTA_TARGET_MOUSE
+0x03 G24_OTA_TARGET_DONGLE_MOUSE
+
+0x1 G24_OTA_CMD_VERSION
+0x2 G24_OTA_CMD_INFO
+0X3 G24_OTA_CMD_CONFIG
+0X4 G24_OTA_CMD_SET_CONFIG_END
+0X5 G24_OTA_CMD_DATA
+0X6 G24_OTA_CMD_RESET
+0xff G24_OTA_CMD_PING
+
+0x01 G24_OTA_SM_RX_VERSION
+0x02 G24_OTA_SM_TX_VERSION
+0x03 G24_OTA_SM_TX_VERSION_OK
+0X04 G24_OTA_SM_RX_INFO
+0X05 G24_OTA_SM_TX_INFO
+0X06 G24_OTA_SM_TX_INFO_OK
+0X07 G24_OTA_SM_RX_CONFIG
+0X08 G24_OTA_SM_TX_CONFIG
+0X09 G24_OTA_SM_TX_CONFIG_OK
+0X0A G24_OTA_SM_RX_SET_CONFIG_END
+0X0B G24_OTA_SM_TX_SET_CONFIG_END
+0X0C G24_OTA_SM_TX_SET_CONFIG_END_OK
+0X0D G24_OTA_SM_RX_DATA
+0X0E G24_OTA_SM_TX_DATA
+0X0F G24_OTA_SM_TX_DATA_OK
+0X10 G24_OTA_SM_RX_RESET
+0X11 G24_OTA_SM_TX_RESET
+0X12 G24_OTA_SM_TX_RESET_OK
+
+)
+
 (
-8 LOW_VOLTAGE_LED_COUNT
 0 MULTI_LED_ON
 1 MULTI_LED_BLINK
 )
 
+//new led function enable
+(
+0x00 MOUSE_ENABLE_1IO2LED
+0x01 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+0x02 MOUSE_ENABLE_LED_BLINK_LIMIT
+0x03 MOUSE_ENABLE_LOW_LED
+0x04 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+)
+
+//led multi type
+(
+1 MOUSE_ENABLE_LOW_FOR_LED
+2 MOUSE_ENABLE_DPI_FOR_LED
+3 MOUSE_ENABLE_DPI_LOW_FOR_LED
+)
+
 (
 // eeprom config
 0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
@@ -9600,6 +9670,22 @@
 1 mem_mouse_logo_led_gpio
 2 mem_mouse_logo_led_on_time_init
 
+//ota area start
+1 mem_g24_ota_config_type     //rr
+2 mem_g24_ota_storage_size   //byte
+2 mem_g24_ota_config_addr
+
+1 mem_g24_ota_rtn_state
+1 mem_g24_ota_mode
+1 mem_g24_ota_sm
+1 mem_g24_ota_prepare_send_len
+31 mem_g24_ota_txbuf
+2 mem_g24_ota_rx_alllen
+2 mem_g24_ota_rx_sum
+1 mem_g24_ota_rx_data_count
+1 mem_g24_ota_reset_timer
+//ota area end
+
 1 mem_le_name_patch_len
 19 mem_le_name_patch
 
@@ -9616,10 +9702,107 @@
 1 mem_dpi_another_button_down_enable
 1 mem_mouse_key_temp_patch
 
-1 mem_mouse_ice_sdio_for_sensor_angle
-2 mem_mouse_bt_reconn_led_blink_time
+// 1io2led multi begin
+1 mem_mouse_led_new_interface_config
+//mediacy
+1 mem_mouse_multi_led_blink_enable
+1 mem_mouse_multi_led_type
+1 mem_mouse_multi_led_state
+1 mem_mouse_multi_led_blink_type				//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+1 mem_mouse_led_multi_type					//00:no multi	01:low+led	02:dpi+led	03:low+dpi_led
+//time parm
+1 mem_mouse_multi_led_powon_timer_init		//power on time
+1 mem_mouse_multi_led_powon_timer
+1 mem_mouse_multi_24gled_blink_timer_init	//24gled blink time
+1 mem_mouse_multi_le_discovery_blink_timer_init	//le discovery blink time
+1 mem_mouse_multi_le_reconn_blink_timer_init	//le reconn blink time
+1 mem_mouse_dpi_led_blink_timer_init		//dpi blink time
+1 mem_mouse_multi_led_blink_timer
+1 mem_mouse_low_led_blink_timer			//low blink time
+1 mem_mouse_low_led_blink_half_timer
+1 mem_adc_low_volatage_led_timer_count_new
+//blink count
+1 mem_mouse_multi_24gled_blink_count_init	//24g count
+1 mem_mouse_multi_le_reconn_blink_count_init	//le reconn count
+1 mem_mouse_multi_led_blink_count
+1 mem_mouse_multi_lowled_blink_count_init	//low count
+1 mem_mouse_multi_low_led_blink_count
+//io config
+1 mem_mouse_1io2led_multi_24gled
+1 mem_mouse_1io2led_multi_bt1led
+1 mem_mouse_1io2led_multi_bt2led
+1 mem_mouse_low_gpio
+1 mem_mouse_dpi_gpio
+// 1io2led multi end
+
+16 mem_mouse_rssi_signal_buf_patch
+16 mem_mouse_rssi_signal_buf_temp
+
+
+1 mem_mouse_le_send_conn_param_update
+1 mem_mouse_le_send_conn_param_update_timer
+
+//uart start 
+1 mem_device_uart_tx_gpio
+1 mem_device_uart_rx_gpio
+2 mem_device_uart_rx_buffer
+2 mem_device_uart_rx_buffer_end
+2 mem_device_uart_tx_buffer
+2 mem_device_uart_tx_buffer_end
+2 mem_device_uart_baud_rate
+//uart end
+
+//rssi log start
+1 mem_24g_paccnt
+1 mem_rssi_mouse
+4 mem_clkn_bt_patch
+2 mem_txpower_print
+//rssi log end
+
+//tx power
+1 mem_normal_tx_power
 
+//S210x
+0 mem_sensor_s201_dpi
+1 mem_sensor_s201_dpi_0
+1 mem_sensor_s201_dpi_1
+1 mem_sensor_s201_dpi_2
+1 mem_sensor_s201_dpi_3
+1 mem_sensor_s201_dpi_4
+
+64 mem_le_tx_buffer0_omemalloc_new
+64 mem_le_tx_buffer1_omemalloc_new
+64 mem_le_tx_buffer2_omemalloc_new
+64 mem_le_tx_buffer3_omemalloc_new
+
+//commbination_dpi
+1 mem_mouse_commbination_dpi_check_enable
+1 mem_commbination_dpi_timer
+1 mem_mouse_commbination_key_dpi
+
+//rgb
+1 mem_rgb_led_off_enable
+1 mem_rgb_led_on_enable
+1 mem_rgb_led_off_enable_timer
+1 mem_rgb_led_on_enable_timer
+2 mem_rgb_led_on_timer
+
+2 mem_rgb_led_off_check_count
+2 mem_rgb_led_on_check_count
+1 mem_rgb_led_on_continue_1min_timeout_flag
+1 mem_mbutton_function_disable
+1 mem_mouse_rgb_ctrl_gpio
+1 mem_mouse_rgb_adc_no_power_flag
+
+30 mem_sensor_8650_init_new
+1 mem_long_sleep_flag
+1 mem_mouse_customer_key_connect_vin_flag
 )
+
+(
+0x20 MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+)
+
 xmemalloc g24_tx_remote(
 1 mem_remote_car_hard_soft_switch
 
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/eeprom.dat	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/eeprom.dat	(working copy)
@@ -2,156 +2,208 @@
 02
 aa
 55
-7e
-13
+e2
+17
 c2
 84
 00
-1a
+21
 c0
 00
 00
-26
+33
 c0
+41
 01
-80
-2a
+27
 c0
 41
 80
-43
+72
+c0
+42
+00
+79
 c0
 45
-80
-7a
+00
+9f
 c0
-4f
-80
-87
+45
+81
+1a
 c0
-57
+46
 00
-89
+87
 c0
-58
+4f
+81
+2e
+c0
+52
 00
-6e
+38
+c0
+57
+01
+30
 c0
 61
-82
-a0
+83
+33
 c0
 62
-02
-a9
+00
+46
 c0
 63
-81
-89
+82
+3f
 c0
 64
-81
-8f
+82
+45
 c0
 65
-01
-c8
+02
+77
 c0
 66
 00
-6a
+c9
 c0
 67
-03
-af
+05
+17
 c0
 67
-84
-af
+85
+c2
 c0
 68
-02
-be
+03
+47
 c0
 68
+85
+54
+c0
+69
 83
-e1
+5e
 c0
 6a
-03
-c0
+05
+3c
 c0
 6b
-01
-f9
+02
+9a
 c0
 6c
-82
-cf
+83
+8c
 c0
 6d
-03
-47
+04
+a1
 c0
 6d
-83
-50
+84
+ab
 c0
 6f
-04
+05
+a0
+c0
+6f
+80
+5e
+c0
+70
+80
+57
+c0
+71
+00
 54
 c0
 74
-03
-57
+04
+b2
 20
 20
 13
 7c
 c0
 0d
-03
-9c
+04
+c6
+c0
+10
+00
+52
+c0
+15
+80
+3e
 c0
 19
 80
-4a
+a9
 c0
 1a
 00
-4f
+ae
 c0
 43
-83
-53
+84
+ae
 c0
 50
-83
-6b
+84
+d0
+c0
+51
+84
+da
+c0
+5a
+84
+dc
 c0
 60
-03
-75
+04
+e6
 c0
 6e
-82
-90
+83
+2f
 c0
 71
 02
-56
+f6
 c0
 74
 82
-5e
+fe
 c0
 75
 01
-40
+de
+c0
+75
+82
+0c
 c0
 76
-03
-a6
+05
+0c
+c0
+76
+85
+ca
 20
 20
 13
@@ -164,6 +216,10 @@
 40
 30
 f3
+24
+55
+80
+5a
 20
 40
 3b
@@ -174,58 +230,6 @@
 04
 20
 40
-70
-6c
-20
-40
-75
-97
-20
-40
-6e
-a7
-20
-40
-1b
-93
-20
-40
-08
-3a
-20
-40
-31
-08
-20
-40
-08
-92
-20
-40
-0b
-08
-20
-40
-0b
-7b
-20
-40
-08
-23
-20
-40
-21
-d3
-20
-40
-00
-37
-20
-20
-08
-13
-20
-40
 14
 65
 6f
@@ -238,40 +242,224 @@
 00
 6f
 e0
-c0
-99
-20
-7a
+cc
+41
+c1
 00
+80
 00
-6f
-e0
-c7
-64
 20
-3a
-00
-40
-6f
-e0
-c6
-b9
 20
-7a
+14
+e1
+6f
+f0
+8a
+0b
+79
+3f
+fe
+05
+79
+3f
+fe
+04
+79
+3f
+fe
+00
+67
+f0
+8a
+0b
+20
 00
 00
+18
+79
+3f
+fe
+03
+20
+20
+5e
+a4
+20
+40
+03
+d8
+da
+20
+49
+39
 6f
 e0
-c6
-ba
+c9
+38
+1f
+e0
+ff
+ff
+1f
+ef
+fe
+1d
+9a
+20
+a2
+00
+ef
+e0
+80
+11
+67
+e0
+c4
+82
+6f
+e0
+c4
+82
+c0
+19
+bd
+6f
+c0
+1a
+3d
+7b
+20
+20
+42
+eb
+6f
+e0
+c9
+1f
+20
+20
+5a
+f8
+18
+46
+7c
+ff
+c1
+02
+80
+00
+20
+20
+49
+30
+18
+46
+7c
+ff
+c1
+02
+80
+00
+20
+20
+49
+2c
+6f
+e0
+cb
+af
 24
 7a
 00
 00
+70
+44
+8c
+00
+20
+60
+00
+00
+6f
+e0
+cb
+b4
+c1
+00
+80
+00
 20
+40
+46
+c2
+60
+48
+c9
+38
 20
-14
-ea
+40
+03
+f8
+20
+40
+01
+10
+70
+41
+ca
+00
+20
+40
+46
+da
+20
+40
+00
+6f
+20
+40
+31
+73
+20
+40
+00
+6a
+20
+20
+46
+bd
+58
+00
+00
+00
+67
+e4
+40
+40
+70
+00
+31
+00
+70
+47
+8b
+00
+20
+60
+00
+00
+6f
+e1
+47
+8c
+c3
+83
+80
+00
+20
+20
+43
+18
 70
 89
 00
@@ -300,30 +488,222 @@
 20
 11
 7d
-da
 20
-09
-9e
-d8
 40
-00
-0c
+11
+90
 58
 00
-00
-30
+76
+76
+67
+f1
+09
+68
 20
-40
-5e
-63
+60
+00
+00
+c6
+93
+00
+00
+6f
+e2
+48
+91
+68
+4a
+48
+8d
+98
+46
+7c
+00
 20
+22
+80
+84
+70
+41
+ea
+ff
 20
 60
-bf
-6a
-50
-8a
-12
+00
+00
+70
+41
+ea
+00
+70
+41
+e8
+91
+20
+60
+00
+00
+6f
+f0
+89
+a2
+2f
+ef
+fe
+06
+79
+20
+fe
+07
+67
+e0
+c1
+e9
+6f
+f0
+89
+a3
+1f
+e1
+04
+0f
+18
+43
+84
+00
+1f
+f1
+fe
+00
+98
+40
+84
+00
+18
+4f
+a2
+03
+6f
+e0
+c1
+e9
+20
+40
+00
+9c
+1f
+e6
+7e
+00
+9a
+20
+fe
+00
+1f
+e0
+ff
+f7
+1f
+e1
+7f
+ff
+2f
+ef
+fe
+08
+24
+20
+80
+9a
+58
+00
+00
+00
+67
+e0
+80
+19
+20
+60
+00
+00
+2f
+ef
+fe
+07
+24
+60
+80
+00
+20
+20
+42
+d4
+6f
+e0
+c1
+e8
+c0
+48
+80
+a6
+c0
+4a
+00
+a3
+20
+20
+12
+1e
+70
+8a
+39
+04
+70
+8a
+3a
+00
+20
+20
+12
+2a
+70
+8a
+39
+5b
+70
+8a
+3a
+01
+20
+20
+12
+2a
+da
+20
+09
+9e
+d8
+40
+00
+0c
+58
+00
+00
+30
+20
+40
+5e
+63
+20
+20
+60
+bf
+6a
+50
+8a
+12
 70
 8a
 12
@@ -428,70 +808,330 @@
 60
 00
 00
-6f
-e0
-cb
-aa
-24
-7a
-00
-00
 20
 40
 00
-4f
-20
+ae
+70
+48
+f6
+00
 20
-3e
-bb
+40
+61
+25
+67
+e1
+48
+e9
 6f
 e0
-83
-0d
-20
-7a
-00
+c4
+a0
+c0
+81
 00
+d5
+68
+49
+48
+e9
+18
+4f
+fe
+08
 1f
-e0
-ff
-ff
-67
-e0
-83
-0d
+e6
+fc
+0a
 20
 40
-77
-c5
-20
+7d
+ec
+98
 40
-31
+fe
+00
+67
+e1
+48
+e9
+da
+20
+48
 e3
 20
 40
-31
+3e
+d8
+6f
+e0
+c4
 a4
+c2
+80
+80
+db
+c3
+00
+00
+de
 20
-40
-31
-aa
 20
+3e
+cc
+6f
+e0
+cc
 40
-5c
-dc
+c3
+00
+3f
+1c
+20
+20
+02
+3f
 6f
-e1
+e0
+cc
+40
+c3
+00
+3e
+d0
+d8
+e0
+00
+04
+20
+40
+46
+f4
+70
+4c
+4f
+01
+6f
+e0
+c8
+fa
+20
+7a
+00
+00
+70
+48
+fa
+00
+20
+20
+01
+0d
+78
+54
+7c
+00
+6f
+e0
+cc
 44
+1f
+e6
+7c
+04
+24
+62
+80
+00
+20
+20
+7e
+54
+6f
+e0
+cc
+40
+c3
+00
+49
+56
+c4
+01
+80
+00
+6f
+e1
+4a
+c2
+24
+7a
+00
+00
+6f
+e1
+48
+83
+24
+7a
+00
+00
+6f
+e1
+48
+87
+24
+7a
+00
+00
+6f
+e0
+cc
+47
+24
+7a
+00
+00
 6f
+e4
+4b
+ab
+c4
+02
+00
+00
 20
 40
-7e
-05
+00
+e7
+20
+74
+00
+00
+6f
+e0
+cc
+54
+20
+3a
+01
+16
+68
+48
+cc
+4f
+18
+40
+84
+01
+60
+48
+cc
+4f
+6f
+e0
+cc
+4d
+98
+46
+7c
+00
+24
+41
+01
+0b
+6f
+e0
+cc
+4e
+98
+46
+7c
+00
+24
+21
+01
+0d
+6f
+e0
+cc
+45
+c0
+00
+84
+15
+c0
+01
+84
+15
+68
+48
+cc
+58
+20
+20
+04
+21
+70
+4c
+4f
+01
+20
+40
+01
+12
+6f
+e0
+cc
+45
+c0
+00
+84
+27
+c0
+01
+84
+27
+68
+48
+cc
+58
+20
+20
+04
+3e
+6f
+e0
+cc
+54
+1f
+e0
+ff
+ff
+67
+e0
+cc
+54
+20
+60
+00
+00
+6f
+e0
+cc
+40
+c2
+82
+01
+0d
+20
+40
+03
+b7
 20
 20
 00
-6e
+fd
 70
 8a
 8b
@@ -544,26 +1184,54 @@
 20
 12
 5d
-70
-00
-80
-00
-20
+6f
+e0
+c1
+ea
+67
+e0
+89
+64
+20
+40
+11
+50
+70
+8a
+0a
+00
+6f
+e0
+89
+64
+67
+e0
+c1
+ea
+20
+60
+00
+00
+70
+00
+80
+00
+20
 20
 13
 b7
-24
-55
+79
+3f
 80
-a6
+34
 20
 40
 6d
 f3
 20
 40
-00
-d1
+01
+46
 20
 40
 41
@@ -574,12 +1242,8 @@
 00
 20
 40
-00
-95
-20
-40
-40
-8e
+03
+49
 20
 40
 3d
@@ -590,320 +1254,248 @@
 28
 20
 40
-00
-fb
+01
+8c
 20
 40
-03
-d2
+05
+4b
 20
 20
 3b
 c9
-20
-40
-00
-9f
-20
-20
-00
-97
-6f
-e4
-4b
-ab
-c4
-1e
-80
-00
-6f
-e0
-cc
-0d
-c2
-83
-80
-9d
-70
-4c
-0c
-00
-20
-60
-00
-00
-70
-4c
-0c
-01
-20
-60
-00
-00
 6f
 e0
-cc
-0a
+c9
+12
 c1
 7f
 80
 00
-c2
-83
+c4
+03
 80
-a4
-70
-4c
-0b
-00
-20
-60
-00
 00
 70
-4c
-0b
+4d
+c6
 01
 20
 60
 00
 00
 6f
-e4
-4b
-f1
+e0
+cc
+1e
 20
 7a
 00
 00
-6f
-e0
-cb
-f0
-1f
-e2
-22
-00
 1f
-e6
-7c
-0b
-24
-21
-00
-b8
+e0
+f2
+01
 d8
 c0
-4b
-f1
+4c
+1e
 d8
 a0
-4a
-db
-1a
-22
-72
-00
+42
+f7
+20
 20
-40
 7d
 5f
-d8
-c0
-4b
-f1
-d8
-a0
-44
-0a
-1a
-22
-72
+20
+75
+80
 00
 20
 40
-7d
-5f
-d8
-c0
-4b
-f1
-d8
-a0
-42
-f8
-1a
+26
+07
+20
+40
 22
-72
-00
+ff
+20
+40
+3f
+1e
 20
+40
+01
+40
 20
-7d
-5f
+40
+3d
+13
 20
 40
-00
-ce
-6f
-e0
-cb
-f0
-1f
-e0
-fe
 01
-67
-e0
-ca
-d2
 70
-4a
-d3
-09
-d8
-c0
-4b
-f1
-d8
-a0
-4a
-d4
-1a
-22
-72
-00
 20
 40
-7d
-5f
-6f
-e0
-cb
-f0
-1f
-e0
-fe
 01
-67
-e0
-c4
-08
-70
-44
-09
-09
-d8
-c0
-4b
-f1
-d8
-a0
-44
-0a
-1a
-22
-72
-00
+75
+68
+48
+c9
+20
 20
 40
-7d
-5f
-d8
-c0
-4b
-f0
-d8
-a0
-42
-f7
-1a
-22
-72
-00
-1f
+60
+50
 20
-f2
+40
 01
+85
 20
+40
+03
+ae
 20
-7d
-5f
-d8
-a0
-4a
-d2
-df
+40
+01
+3b
 20
-00
-14
+40
+01
+89
+20
+40
+1b
+16
 20
+40
+1b
+3f
 20
-7d
-26
+40
+1b
+32
 20
-75
+40
+1b
+1e
+6f
+e4
+4b
+ab
+c4
+09
 80
 00
 20
 40
-26
-07
+5d
+a5
+6f
+e4
+4b
+ab
+2f
+ef
+fe
+09
+24
+40
+dd
+bf
 20
 40
-22
-ff
+46
+3b
 20
 40
-3f
-1e
+01
+6b
+6f
+e1
+49
+90
+d8
+40
+aa
+55
+98
+46
+7c
+00
+20
+22
+c5
+e2
+60
+49
+49
+90
 20
 40
-3d
-13
+45
+e7
 6f
 e0
-cc
-12
+ca
+b4
+67
+e0
+c9
+38
+6f
+e0
+c9
+26
+67
+e0
+c9
+92
 20
-3a
+60
 00
-dc
-20
-40
 00
-e1
-68
-48
+6f
+e0
 c9
+38
+1f
+e6
+7c
+03
 20
+61
+00
+00
+70
+49
+38
+00
 20
-40
 60
-50
-20
-40
 00
-f1
-20
-40
 00
-f5
-6f
-e4
-4b
-ab
-c3
-0c
-3b
-f5
-20
-40
+58
+00
+4c
+96
+67
+e1
+43
+de
+58
+00
 00
-f8
 20
+67
+e1
+43
+e0
 20
-3b
-f5
+60
+00
+00
 6f
 e0
 c9
@@ -984,26 +1576,14 @@
 20
 60
 7f
-58
-00
-e2
-90
-67
-e1
-c8
-ad
-20
-60
-00
-00
-58
-00
-17
-70
+6f
+e0
+c1
+e8
 67
-e1
-c8
-ad
+e0
+cc
+90
 20
 60
 00
@@ -1011,7 +1591,7 @@
 58
 00
 01
-00
+91
 67
 e1
 48
@@ -1019,7 +1599,7 @@
 58
 00
 01
-1a
+b0
 67
 e1
 48
@@ -1041,13 +1621,25 @@
 00
 00
 6f
+e0
+cd
+c5
+70
+4d
+c5
+00
+24
+5a
+01
+ae
+6f
 e4
 4b
 ab
 c3
 0a
 81
-07
+9b
 6f
 e0
 cb
@@ -1067,7 +1659,7 @@
 c2
 80
 81
-16
+aa
 68
 48
 c7
@@ -1132,6 +1724,14 @@
 20
 26
 e1
+20
+40
+7f
+dc
+20
+20
+15
+b1
 6f
 e4
 4b
@@ -1199,7 +1799,7 @@
 24
 21
 01
-30
+c6
 20
 40
 25
@@ -1211,15 +1811,15 @@
 24
 2c
 01
-36
+dc
 24
 37
 81
-36
+dc
 20
 40
-48
-b5
+01
+d3
 20
 40
 25
@@ -1236,22 +1836,10 @@
 e0
 cb
 a3
-c0
-08
-01
-38
-20
-60
+c1
+88
 00
 00
-20
-40
-22
-cb
-20
-20
-01
-26
 70
 4b
 a3
@@ -1282,24 +1870,72 @@
 b2
 20
 20
+05
+4b
+6f
+e0
+c8
+a7
+20
+3a
+48
+8c
+70
+4b
+a3
+00
+6f
+e0
+cb
+a4
+c4
+00
+00
+00
+79
+3f
+fe
+00
+67
+e0
+cb
+a4
+20
+40
+45
+44
+20
+20
 03
-d2
+60
+20
+40
+22
+cb
+20
+20
+01
+bc
 20
 40
 26
 31
 24
 34
-01
-e0
+02
+7f
 20
 40
 01
-4f
+ee
 20
 40
 26
 ee
+20
+40
+00
+7d
 6f
 e0
 cb
@@ -1307,7 +1943,7 @@
 24
 3a
 01
-4a
+e9
 6f
 e4
 48
@@ -1371,77 +2007,25 @@
 24
 2c
 01
-67
+f9
 24
 37
 81
-67
+f9
 20
 40
 26
 72
 20
 40
-01
-5a
+02
+34
 20
 20
 26
 51
 6f
 e0
-cb
-e1
-24
-5a
-01
-5e
-70
-4b
-e1
-00
-20
-60
-00
-00
-20
-40
-41
-aa
-6f
-e4
-4b
-ab
-c4
-1e
-00
-00
-6f
-e0
-c9
-13
-d8
-40
-00
-40
-20
-40
-60
-93
-6f
-e0
-c9
-14
-d8
-40
-00
-40
-20
-20
-60
-93
-6f
-e0
 ca
 c5
 24
@@ -1450,8 +2034,12 @@
 00
 20
 40
-01
-74
+02
+24
+20
+40
+02
+18
 6f
 e0
 c8
@@ -1486,76 +2074,12 @@
 7e
 20
 40
-01
-84
-20
-20
-01
-50
-6f
-e0
-c9
-1b
-c1
-7f
-80
-00
-da
-20
-00
-00
-70
-4b
-96
-06
-68
-48
-c9
-1b
-20
-40
-46
-6a
-67
-e0
-cb
-94
-6f
-e0
-c9
-10
-c0
-7f
-81
-81
-20
-40
-41
-68
-1a
-22
-7e
-00
-c2
-83
-46
-8d
-20
-20
-46
-80
-68
-48
-c9
-1b
-20
-40
-3f
-56
+02
+07
 20
 20
 01
-7e
+ef
 6f
 e0
 c8
@@ -1576,26 +2100,230 @@
 20
 7d
 13
-58
-00
+68
+48
+c8
+a6
+6f
+e0
+c8
+c6
+98
+46
+7c
 00
-06
+24
+21
+02
+11
 20
-40
-5b
-0d
-c2
-81
-be
-23
 20
-40
-03
+26
+83
+6f
+e2
+48
+3c
+68
+4a
+48
+8d
+98
+46
+7c
+00
+20
+22
+a2
 cb
 20
 40
-03
-d2
+05
+ef
+20
+40
+27
+24
+20
+20
+22
+cb
+d8
+e0
+00
+0c
+20
+40
+7d
+74
+24
+7a
+00
+00
+20
+40
+02
+20
+20
+40
+40
+7c
+d8
+e0
+00
+0c
+58
+00
+00
+a0
+20
+20
+7d
+66
+6f
+e4
+4b
+ab
+c4
+14
+00
+00
+20
+20
+05
+b0
+70
+4b
+94
+03
+6f
+e0
+c9
+1b
+c1
+7f
+80
+00
+da
+20
+00
+00
+70
+4b
+96
+06
+68
+48
+c9
+1b
+20
+40
+46
+6a
+67
+e0
+cb
+94
+6f
+e0
+c9
+10
+c0
+7f
+82
+31
+20
+40
+41
+68
+1a
+22
+7e
+00
+c2
+83
+46
+8d
+20
+20
+46
+80
+68
+48
+c9
+1b
+20
+40
+3f
+56
+20
+20
+02
+2e
+6f
+e0
+cb
+e1
+24
+5a
+02
+38
+70
+4b
+e1
+00
+20
+60
+00
+00
+20
+40
+03
+60
+6f
+e4
+4b
+ab
+c4
+1e
+00
+00
+68
+48
+c9
+13
+20
+40
+3f
+56
+68
+48
+c9
+14
+20
+20
+3f
+56
+58
+00
+00
+06
+20
+40
+5b
+0d
+c2
+81
+be
+23
+20
+40
+05
+46
+20
+40
+05
+4b
 20
 20
 3e
@@ -1610,8 +2338,8 @@
 dc
 20
 40
-02
-f4
+04
+4e
 20
 40
 40
@@ -1636,14 +2364,10 @@
 e0
 c9
 20
-d8
-40
-00
-3f
 20
 40
-60
-93
+05
+87
 d8
 40
 00
@@ -1654,12 +2378,16 @@
 56
 20
 40
-3e
-40
+02
+77
 20
 40
 60
 82
+20
+40
+04
+34
 d8
 40
 00
@@ -1670,20 +2398,16 @@
 56
 20
 40
-01
-a4
-20
-40
-01
-a8
+02
+59
 20
 40
-01
-b5
+02
+5d
 20
 20
-01
-bc
+02
+6d
 6f
 e0
 c9
@@ -1701,73 +2425,25 @@
 60
 7f
 6f
-e1
-cb
-de
-67
-e1
-89
-5c
-df
-20
-00
-14
-d8
+e0
+cc
 40
-00
-00
+c2
+80
+02
+61
 6f
-e1
-89
-5c
-2f
-ef
-fe
+e4
+4b
+ab
+c4
+0a
+00
 00
 20
 40
-e0
-7f
-6f
-e1
-89
-5c
-1f
-e3
-7e
-00
-67
-e1
-89
-5c
-18
-40
-84
-01
-c2
-00
-01
-ac
-20
-60
-00
-00
-6f
-e4
-4b
-ab
-c4
-0a
-00
-00
-6f
-e0
-c8
-fd
-c1
-81
-00
-00
+02
+65
 6f
 e0
 c8
@@ -1780,6 +2456,38 @@
 20
 60
 93
+68
+48
+c4
+a1
+18
+46
+7c
+03
+20
+21
+02
+6b
+18
+40
+84
+05
+60
+48
+c8
+fc
+20
+60
+00
+00
+18
+40
+84
+04
+20
+20
+02
+69
 6f
 e4
 4b
@@ -1804,30 +2512,22 @@
 40
 60
 42
-6f
-e0
+68
+48
 c9
 13
-d8
-40
-00
-80
 20
 40
-60
-93
-6f
-e0
+3f
+54
+68
+48
 c9
 14
-d8
-40
-00
-80
 20
 20
-60
-93
+3f
+54
 68
 48
 c9
@@ -1852,86 +2552,22 @@
 e0
 c9
 1f
-d8
-40
-00
-3f
 20
 40
-60
-93
-6f
-e0
-cc
-12
-24
-5a
-01
-d3
+05
+87
 20
 20
 3e
 44
-68
-48
-c9
-17
-20
-40
-60
-42
-68
-48
-c9
-20
-20
-20
-60
-42
-70
-48
-a5
-00
-20
-40
-26
-52
-5f
-ff
-ff
-ff
-67
-e2
-48
-5c
-58
-00
-00
-00
-67
-e3
-c8
-d0
-70
-4b
-e1
-01
-20
-40
-03
-d2
-20
-20
-01
-e5
 6f
 e0
 c8
 a7
 20
 5a
-01
-eb
+02
+8c
 6f
 e0
 c8
@@ -1946,22 +2582,30 @@
 9f
 20
 40
-26
-bb
+05
+0c
 24
 74
 00
 00
+20
+40
+26
+c4
+70
+4d
+c5
+01
 6f
 e0
 cb
 e1
 24
 5a
-3e
-33
+02
+45
 6f
-e2
+e4
 48
 5c
 20
@@ -2023,7 +2667,7 @@
 20
 20
 01
-42
+e0
 1a
 62
 7e
@@ -2031,43 +2675,43 @@
 c0
 00
 82
-05
-c0
-01
-02
-07
+af
 c0
 1e
 02
-31
+cb
 c0
 1c
 82
-2f
+c7
 c0
 1d
 02
-3b
+db
 c0
+19
 02
-02
-14
+b7
 c0
-09
+0a
 82
-14
+b1
 c0
-19
+0a
 02
-1b
+ad
 c0
-22
+20
 02
-22
+be
 c0
-0a
-82
 09
+02
+aa
+c0
+03
+02
+a6
 20
 20
 43
@@ -2077,89 +2721,69 @@
 45
 44
 20
+40
+42
+ca
 20
-43
-fa
+40
+03
+c7
+20
+20
+32
+44
+70
+44
+54
+01
 20
 40
-42
-3c
+32
+23
 20
 20
-43
-fe
+44
+27
 20
 40
-42
-3c
-58
-00
-00
-00
-67
-e1
-4a
-f2
+03
+c7
+20
+20
+43
+50
 70
 4a
-c6
+ae
 00
+20
+20
+43
+fc
 58
 00
 00
-06
+00
 67
 e1
-43
-72
+4a
+f2
+67
+e0
+cc
+7a
+67
+e0
+cc
+7b
 67
-e1
-43
-74
-6f
-e4
-4b
-ab
-c2
-8d
-c3
-66
-58
-00
-00
-07
-20
-20
-43
-64
-6f
 e0
 ca
-c1
-c0
-7f
-c2
-f8
-6f
-e1
-47
-8c
-c3
-86
-00
-00
-c3
-83
-00
-00
-c3
-85
-80
-00
-20
+c6
 20
-3e
 20
+43
+66
 6f
 e0
 ca
@@ -2167,7 +2791,7 @@
 c0
 00
 82
-1f
+bb
 70
 4b
 76
@@ -2183,68 +2807,60 @@
 70
 4b
 76
-05
+0a
 20
 20
 43
 73
 6f
 e0
-82
-c1
-1f
-e6
-7c
-0c
+cc
+7a
 24
-21
-43
-84
-67
-e1
-43
-72
-67
-e1
-43
-74
-6f
-e0
-82
-c3
+7a
+00
+00
+70
+4c
+7a
+01
+70
+4c
+7b
+1e
 20
-3a
-43
-9a
-68
-48
-cb
-8a
-98
-46
-7c
+60
+00
 00
 20
-21
-43
-9a
+40
+00
+82
 6f
 e0
-82
-c3
+cc
+90
 67
 e0
-cb
-8a
+c1
+e8
 20
+60
+00
+00
 20
-43
-86
+40
+02
+c3
 20
 40
 45
 44
 20
+40
+03
+c7
+20
 20
 48
 57
@@ -2266,12 +2882,16 @@
 7e
 20
 40
-48
-c6
+03
+c7
 20
 40
 45
 44
+20
+40
+42
+ca
 70
 4a
 ae
@@ -2284,18 +2904,42 @@
 48
 8b
 00
+6f
+e2
+48
+91
+68
+4a
+48
+8d
+98
+46
+7c
+00
+20
+62
+80
+00
+20
+40
+02
+c3
 20
 20
-42
-ca
+48
+22
+20
+40
+02
+c3
 6f
 e0
 c8
 a5
 24
 3a
-01
-d7
+02
+ed
 6f
 e0
 c8
@@ -2303,19 +2947,11 @@
 c0
 01
 02
-42
-c0
-02
-02
-4d
-c0
-01
-c8
-49
+e1
 20
 20
-02
-53
+48
+37
 6f
 e4
 4b
@@ -2347,7 +2983,7 @@
 20
 22
 82
-4b
+ea
 20
 20
 48
@@ -2357,45 +2993,49 @@
 8b
 00
 20
+40
+03
+cf
+20
 20
 48
 27
-6f
+70
+48
+a5
+00
+20
+40
+26
+52
+5f
+ff
+ff
+ff
+67
 e4
-4b
-ab
-c3
-17
-c8
-39
-6f
-e0
-cb
-b4
-c0
+48
+5c
+58
+00
 00
+00
+67
+e3
 c8
-39
+d0
+70
+4b
+e1
+01
 20
 40
-03
-21
+05
+4b
 20
 20
-48
-1a
-6f
-e4
-4b
-ab
-c3
-1e
-48
-39
-20
-20
-01
-d7
+02
+84
 70
 48
 8b
@@ -2442,8 +3082,8 @@
 00
 20
 3a
-02
-66
+03
+06
 6f
 e1
 48
@@ -2470,12 +3110,12 @@
 5b
 24
 2c
-02
-81
+03
+1f
 24
 37
-82
-81
+83
+1f
 20
 40
 26
@@ -2510,8 +3150,8 @@
 00
 20
 42
-82
-7d
+83
+1b
 6f
 e0
 c8
@@ -2540,18 +3180,10 @@
 e1
 48
 87
-70
-09
-5b
-3c
-20
-40
-78
-71
 20
 20
 25
-97
+95
 6f
 e2
 48
@@ -2588,38 +3220,26 @@
 e1
 48
 89
-6f
-e0
-c8
-8a
 2f
 ef
 fe
-01
+09
 6f
 e0
 c8
 8b
 c0
-00
-a5
-ad
-c0
-01
-25
-af
+02
+03
+29
 c0
 01
-a5
-b1
-c0
-02
-02
-8e
+03
+2b
 20
 20
 25
-6e
+a8
 20
 20
 a5
@@ -2628,10 +3248,22 @@
 20
 23
 39
-c6
-1a
-00
+20
+20
+a5
+75
+70
+41
+e8
+91
+20
+40
 00
+a6
+20
+20
+25
+68
 c5
 13
 a4
@@ -2644,62 +3276,18 @@
 e0
 c8
 a1
-c2
-80
-a3
-40
-c2
-81
-25
-80
-6f
-e0
-c8
-bd
-c0
-00
-82
-99
-20
-20
-26
-21
-20
-40
-22
-ea
-24
-34
-02
-92
-20
-40
-26
-db
-6f
-e1
-48
-be
-1f
-e0
-fe
-01
-67
-e1
-48
-be
 20
 20
 26
-21
+1d
 6f
 e0
 89
 89
 c3
 01
-02
-a4
+03
+37
 6f
 e0
 c9
@@ -2722,56 +3310,12 @@
 38
 c0
 00
-02
-b4
+03
+3c
 20
 20
 3d
 57
-da
-20
-49
-39
-6f
-e0
-c9
-38
-1f
-e0
-ff
-ff
-1f
-ef
-fe
-1d
-9a
-20
-a2
-00
-ef
-e0
-80
-11
-67
-e0
-c4
-82
-6f
-e0
-c4
-82
-c0
-19
-bd
-6f
-c0
-1a
-3d
-7b
-20
-20
-42
-eb
 6f
 e4
 4b
@@ -2782,6 +3326,10 @@
 03
 20
 40
+03
+cf
+20
+40
 3d
 65
 20
@@ -2818,8 +3366,16 @@
 8f
 20
 40
-02
-c1
+03
+77
+6f
+e0
+c9
+27
+c0
+06
+03
+4c
 20
 20
 40
@@ -2827,67 +3383,267 @@
 6f
 e0
 c9
-23
-c1
-7f
-80
-00
-6f
-e1
-4a
-c2
-24
-7a
+92
+c0
 00
+03
+50
+c0
 00
-6f
-e1
-48
 83
-24
-7a
-00
-00
-6f
-e1
-48
-87
-24
-7a
-00
-00
+52
+c0
+01
+03
+54
 6f
 e0
-cb
-a7
-24
-7a
-00
-00
+cc
+91
+20
+20
+03
+55
 6f
 e0
-cb
-c1
+cc
+93
 20
-3a
-02
-fb
-67
-e0
+20
+03
+55
+6f
+e0
+cc
+94
+1f
+e2
+22
+00
+58
+00
+c3
+09
+20
+40
+5b
+0c
+1a
+22
+7e
+00
+1f
+ed
+7e
+00
+1f
+e0
+fe
+23
+20
+40
+5b
+0c
+58
+00
+00
+09
+20
+20
+5b
+0c
+20
+40
+3f
+65
+20
+75
+80
+00
+20
+40
+42
+36
+20
+40
+41
+b5
+c0
+18
+03
+68
+c0
+18
+c2
+17
+c0
+2c
+42
+20
+20
+40
+41
+b2
+20
+00
+1a
+f4
+20
+20
+03
+61
+6f
+e0
+c9
+c2
+c0
+68
+83
+71
+c0
+2d
+03
+6c
+20
+20
+41
+be
+70
+49
+27
+05
+20
+40
+42
+32
+20
+40
+7d
+12
+da
+60
+4d
+a7
+20
+20
+05
+41
+58
+00
+00
+49
+20
+40
+5b
+0d
+c0
+50
+83
+75
+20
+20
+41
+da
+70
+49
+27
+0c
+20
+60
+00
+00
+6f
+e0
+cc
+40
+c2
+80
+03
+7b
+6f
+e0
+c9
+23
+c1
+7f
+80
+00
+6f
+e1
+4a
+c2
+24
+7a
+00
+00
+6f
+e1
+48
+83
+24
+7a
+00
+00
+6f
+e1
+48
+87
+24
+7a
+00
+00
+6f
+e0
+cc
+40
+c2
+80
+03
+89
+6f
+e0
+cb
+a7
+24
+7a
+00
+00
+6f
+e0
+cb
+c1
+20
+3a
+04
+55
+67
+e0
 cb
 a8
 20
 60
 00
 00
+6f
+e0
+cc
+47
+24
+7a
+00
+00
+20
+20
+03
+85
 20
 40
 3e
 9b
 20
 40
-49
-56
+00
+ec
 20
 40
 23
@@ -2902,12 +3658,16 @@
 cd
 20
 40
+04
+52
+20
+40
 03
-10
+ee
 20
 40
-02
-f8
+04
+44
 20
 40
 40
@@ -2918,30 +3678,34 @@
 cc
 20
 40
-03
-25
+04
+7e
 20
 40
 44
 ff
 20
 40
-02
-e6
+03
+a4
 20
 40
 45
 12
 20
 40
-03
-3c
+04
+95
 20
 40
 45
 15
 20
 40
+04
+98
+20
+40
 45
 2a
 20
@@ -2950,8 +3714,8 @@
 2d
 20
 40
-45
-32
+03
+a8
 20
 40
 45
@@ -2965,13 +3729,9 @@
 45
 47
 20
-40
-02
-ea
-20
 20
-03
-3f
+04
+9b
 da
 60
 4b
@@ -2988,2057 +3748,2386 @@
 20
 45
 07
+da
+60
+4a
+c4
+da
+40
+03
+ab
+20
+20
+31
+8a
 6f
-e0
-cb
-ed
-c1
-7f
-80
+e4
+4b
+ab
+c2
+99
+84
+a1
+20
+20
+3e
+20
+70
+4c
+41
 00
 6f
-e1
-4a
-b2
-20
-7a
+e0
+cc
+40
+c4
 00
 00
-6f
-e1
-4b
-be
-68
-49
-4a
-b2
-98
-46
+00
+20
+40
 04
+34
+70
+4c
+44
 00
 6f
-e1
-4b
-ee
-98
-46
+e0
+cc
+4d
+1f
+e3
 7e
 00
-20
-21
-02
-f6
-68
-48
-cb
-ed
-20
+67
+e0
+cc
+4e
 20
 60
-65
-68
-48
-cb
-ed
+00
+00
+6f
+e0
+cc
+53
+67
+e0
+cc
+54
 20
-40
-60
-69
-da
 60
-4b
-a8
-da
-40
-02
-fb
-20
-20
-31
-8a
+00
+00
 6f
 e0
-c9
-27
+cc
+44
+c0
+00
+83
+c1
 c0
 01
-c8
-f2
+03
+c3
 c0
-05
-c8
-f2
+01
+83
+c5
 6f
 e0
-c9
-23
-67
-e0
-c9
-2f
-6f
-e1
+cc
 4b
-c2
-67
-e1
-49
-30
 67
-e1
-49
-32
-da
+e0
+cc
+4c
 20
+60
 00
 00
-68
+6f
+e0
+cc
 48
-c9
-92
-18
-40
-84
-02
-18
-46
-7c
-03
 20
-41
+20
 03
-0a
-24
-41
+bf
+6f
+e0
+cc
+49
+20
+20
 03
-0e
+bf
+6f
+e0
+cc
+4a
 20
 20
-48
-ff
+03
+bf
 6f
-e4
-4b
-ab
+e0
+cc
+40
 c4
-0e
 00
 00
-18
-40
-84
+00
+6f
+e0
+cc
+46
+67
+e0
+cc
+47
+70
+4c
+42
+00
+70
+4c
+43
+00
+70
+4c
+41
 01
 20
 60
 00
 00
-18
+6f
+e0
+cc
 40
-85
-fd
-20
-60
+c4
+00
 00
 00
+70
+4c
+44
+01
+20
+40
+03
+c1
+20
+40
+03
+eb
 6f
-e4
-4b
-ab
+e0
+cc
+40
 c4
-10
+01
 00
 00
 6f
 e0
-cb
-a7
+cc
+50
 20
-7a
+20
+03
+e2
+6f
+e0
+cc
+40
+c4
 00
 00
-1f
-e0
-ff
-ff
-67
+00
+6f
 e0
-cb
-a7
+cc
+40
+c4
+00
+80
+00
 20
-3a
+40
+03
+eb
+70
+4c
+44
 03
-18
-20
-20
-49
-20
 20
 40
-49
-12
+03
+c5
 6f
 e0
-c9
-38
-c1
-80
-80
+cc
+40
+c4
+01
+00
 00
 6f
-e1
-47
-8c
-c3
-84
-80
+e0
+cc
+51
+67
+e0
+cc
+52
+20
+60
+00
+00
+6f
+e0
+cc
+40
+c4
 00
-c3
-80
 00
 00
 6f
 e0
-ca
-c1
-c0
-ff
-83
-21
-20
-20
-48
 cc
+40
+79
+3f
+fe
+02
+67
+e0
+cc
+40
+70
+4c
+44
+02
 20
 40
-49
-8e
+03
+c3
 70
-4b
-a7
-00
-6f
-e1
 4c
-13
+41
+01
+70
+4c
+42
+01
 20
 20
-48
-ce
+04
+14
 6f
 e0
-c9
-38
-c0
+cc
+41
+20
+7a
 00
-03
-2b
-6f
-e4
-4b
-ab
-c4
-1a
-80
 00
-68
-48
-cb
-ca
-20
-20
-03
-2e
 6f
-e4
-4b
-ab
-c4
-19
-00
+e0
+cc
+42
+c0
 00
-68
-48
-cb
-cb
-60
-48
-cb
-9d
+83
+fa
+6f
+e0
+cc
+47
 20
-40
-41
-15
+3a
+03
+f7
 1f
-e1
-7e
-07
-68
-48
-cb
-9d
-98
-46
-7c
-00
-20
-22
-83
-35
+e0
+ff
+ff
+67
+e0
+cc
+47
 20
 20
-44
-eb
+04
+15
 20
 40
 03
-3a
+b7
+70
+4c
+41
+00
+20
+20
+04
+27
 6f
 e0
-cb
-9f
-c1
-00
-80
-00
-70
-4b
-9f
-01
+cc
+44
 20
-60
+7a
 00
 00
-da
-40
+c0
 02
-4b
+04
+01
 20
 20
-44
-f7
+03
+fe
 6f
-e4
-4b
-ab
-c3
-9d
-80
-00
+e0
+cc
+40
+c2
+81
+04
+01
 20
 20
-45
-1f
+04
+03
 6f
 e0
-c9
-2a
-c3
-83
-80
-00
+cc
+52
+20
+3a
+04
+22
 da
 60
-4a
-b2
+4c
+4c
 da
 40
-03
-44
+04
+06
 20
 20
 31
-91
+8a
 6f
 e0
-c9
-38
+cc
+44
 c0
-00
-01
-d7
-20
-20
-43
-1b
+02
+04
+0e
 6f
-e1
-47
-8c
-2f
-ef
-fe
-0b
-20
+e0
+cc
 40
-c5
+c2
 81
-6f
-e1
-47
-8c
-2f
-ef
-fe
-07
+04
+0e
 20
 40
-c3
-22
-58
-00
-00
+03
+ba
+6f
+e0
+cc
+43
+c0
 00
-67
-e1
-4a
-f2
+84
+24
 20
 20
-45
-54
-58
-00
-00
-00
+04
+12
+6f
+e0
+cc
+52
+1f
+e0
+ff
+ff
 67
-e1
-4a
-c2
+e0
+cc
+52
 20
 20
-45
-77
+04
+0a
 6f
 e0
-cb
-e2
-24
-5a
-78
-61
+cc
+44
+c0
+02
+04
+3f
 70
-4b
-e2
-00
-20
-20
-78
-51
+4c
+43
+01
 6f
-e1
-03
-15
-1f
-e2
-0c
-00
-ef
-e0
-80
-06
-67
 e0
-c5
-f5
-1f
-e1
+c9
+38
+c0
+00
 04
-0f
-1f
-f1
-fe
+1a
+c0
 00
+84
+1c
 c0
+01
 04
-83
-5f
+1e
 20
+60
+00
+00
+68
+48
+cc
+55
 20
-4d
-93
-da
 20
-00
-01
+04
+21
+68
+48
+cc
+56
 20
-40
-4d
-c0
-6f
-e1
-44
-dc
-e7
-e1
-00
-05
-58
-00
+20
+04
+21
+68
+48
+cc
+57
+20
+20
+04
+21
+68
+48
+cc
+59
+20
+20
+60
+69
+70
+4c
+41
 00
+70
+4c
+44
 00
-e7
+6f
 e0
-80
-05
+cc
+44
+c0
+02
+04
+39
 70
-09
-50
-01
+4c
+43
+00
 6f
 e0
-c4
-e2
-79
+c9
+38
+c0
+00
+04
+2c
+c0
+00
+84
+2e
+c0
+01
+04
+30
 20
-7e
-06
-67
-e0
-c4
-e2
-70
-09
-5b
-12
+60
+00
+00
+68
+48
+cc
+55
 20
 20
-78
-71
-6f
-e0
-c3
-dd
-1f
-e0
-fe
-01
-67
-e0
-c3
-dd
-c0
-06
-16
-5a
+04
+31
+68
+48
+cc
+56
+20
+20
+04
+31
+68
+48
+cc
+57
+18
+46
+7c
+ff
+20
+62
+80
+00
+20
+20
+60
+7f
 20
 40
-19
-1b
+04
+2c
 20
 40
-19
-6a
-6f
-e0
-82
-bd
+04
+2e
 20
 40
-16
-8b
+04
+30
 20
 40
-18
-38
+01
+0d
 20
 20
-16
-55
-ef
-e1
+04
+39
+70
+4c
+43
 00
-06
+6f
+e0
+cc
+45
 c0
-02
-03
-78
+01
+04
+26
+c0
+01
+84
+26
+68
+48
+cc
+59
 20
 20
-19
-e4
-ef
-e1
-80
-06
-67
-e1
-c4
-36
+60
+65
+70
+4c
+43
+01
+6f
+e0
+cc
+45
 c0
-05
-03
-7d
+01
+04
+14
 c0
-09
-03
-8c
+01
+84
+14
 20
 20
-1c
-d3
-6f
-e4
-4b
-ab
-c3
-1d
-9d
-e7
+04
 20
-40
-1e
-8d
-68
-49
-44
-37
 6f
 e0
-c3
-c0
-c2
-81
-83
-87
+cb
+ed
+c1
+7f
+80
+00
 6f
 e1
-44
-37
-c0
-18
-1e
-c8
+4a
+b2
+20
+7a
+00
+00
+6f
+e1
+4b
+be
 68
 49
-44
-37
-20
-20
-1d
-eb
+4a
+b2
+98
+46
+04
+00
 6f
 e1
-43
-d1
+4b
+ee
 98
 46
-7c
+7e
 00
-24
-22
-83
-83
-24
-34
-03
-83
 20
+21
+04
+50
+68
+48
+cb
+ed
 20
-1e
-10
-18
-c2
-22
-00
-6f
-e1
-43
-d4
-1f
-e0
-a5
-fd
 20
+60
+65
+68
+48
+cb
+ed
+20
+20
+60
+69
+da
+60
+4b
+a8
+da
 40
-1a
-25
+04
+55
+20
+20
+31
+8a
 6f
 e0
-ca
-c1
-c0
-7f
-9e
-73
+cc
+40
+c2
+80
+04
+6c
 6f
 e0
-ca
-c7
-20
-3a
-1e
-73
+c9
+27
+c0
+01
+c8
+f2
+c0
+05
+c8
+f2
 6f
 e0
-cb
-75
+c9
+23
+67
+e0
+c9
+2f
+6f
+e1
+4b
 c2
-80
-9e
-73
-58
+67
+e1
+49
+30
+67
+e1
+49
+32
+da
+20
 00
 00
-1a
 68
-49
-44
-37
-98
+48
+c9
+92
+18
+40
+84
+02
+18
 46
 7c
-00
-24
-22
-9e
-73
-70
-02
-d8
-05
+03
 20
+41
+04
+66
+24
+41
+04
+6a
 20
-1e
-c9
-78
-54
-7c
-00
 20
-40
-59
-e6
+48
+ff
 6f
-e0
-80
-49
-20
-7a
+e4
+4b
+ab
+c4
+0e
 00
 00
-c2
-83
-d7
-30
-c0
-03
-83
-a3
-20
-20
-57
-01
-20
+18
 40
-58
-5d
-70
-00
-73
-78
+84
+01
 20
 60
 00
 00
-6f
-e0
-cb
-aa
-24
-5a
-26
-e1
-78
-34
-7c
-00
-20
+18
 40
-14
-65
-6f
-e1
-c1
-74
+85
+fd
 20
-3a
-7e
-56
+60
+00
+00
 6f
 e0
+c9
+27
 c0
-99
-20
-3a
-7e
-56
-20
-20
-26
-c4
-78
-54
-7c
-00
-58
-00
-00
-00
-67
-e3
+01
+84
+7b
+c0
+05
+84
+7b
+68
 48
-d1
-20
-40
-42
-40
-20
-40
+c9
+92
+18
 40
-8e
+84
+02
+18
+46
+7c
+03
 20
-40
-3f
+41
+04
+66
+24
+41
+04
+6a
+18
+42
 7e
-20
-40
-3f
-83
-20
-40
-03
-da
-6f
+00
+9f
 e0
-c8
-d0
-1f
-e1
-7e
-1f
+fe
+00
 67
 e0
-c8
-d0
-24
-34
-47
-28
+cc
+52
+70
+4c
+44
+04
 20
 40
 03
-bd
+be
+70
+4c
+42
+01
 20
 20
-45
-44
-6f
-e0
+03
+cc
+68
+48
 c9
-27
-c1
+92
+18
+40
+84
 01
-80
-00
 20
 20
-47
-1a
-20
-40
-3f
-65
+04
+71
 6f
 e0
 c9
-27
+38
 c0
-05
-83
-c7
+00
+04
+84
+6f
+e4
+4b
+ab
+c4
+1a
+80
+00
+68
+48
+cb
+ca
 20
-40
-42
-32
-da
+20
+04
+87
+6f
+e4
+4b
+ab
+c4
+19
+00
+00
+68
+48
+cb
+cb
 60
-4a
-a3
+48
+cb
+9d
 20
 40
-42
-2b
-20
+05
+54
+1f
+e1
+7e
+07
+68
+48
+cb
+9d
+98
+46
+7c
+00
 20
-40
+22
+84
 8e
 20
-40
-03
-ce
-da
-60
-4b
-e3
-20
-40
-42
-2b
 20
+44
+eb
 20
 40
-8e
+04
+93
 6f
 e0
-c9
-27
-c0
-05
-83
-ce
-20
-20
-42
-32
-58
+cb
+9f
+c1
 00
-97
-06
-20
-40
-5b
-0c
-20
+80
 00
-2e
-e0
+70
+4b
+9f
+01
 20
 60
 00
 00
+da
+40
+02
+ea
+20
+20
+44
+f7
+6f
+e4
+4b
+ab
+c3
+9d
+80
+00
 20
+20
+45
+1f
+da
+60
+4c
+7b
+da
 40
-41
-a7
+43
+6c
 20
+20
+31
+8a
+da
+60
+4a
+b2
+da
 40
-3f
-65
+04
+9e
+20
+20
+31
+91
 6f
 e0
 c9
-27
+38
 c0
-05
-83
-d8
-58
-00
-08
-06
-20
-20
-5b
-0c
-58
 00
-1f
-06
+02
+ed
 20
 20
-5b
-0c
+43
+1b
 20
 40
-04
-18
+03
+e4
 6f
-e0
-cc
-09
-24
-3a
-04
+e1
+47
+8c
 2f
+ef
+fe
+0b
+20
+40
+c5
+81
 6f
-e0
-cc
-04
-24
-3a
-04
-2e
+e1
+47
+8c
+2f
+ef
+fe
+07
 20
 40
-03
+c3
+22
+58
+00
+00
+00
+67
 e1
+4a
+f2
 20
 20
-40
-dd
+45
+54
+58
+00
+00
+00
+67
+e1
+4a
+c2
+20
+20
+45
+77
 6f
 e0
 cb
-e1
+e2
 24
 5a
-41
-21
-da
-20
-00
+78
+61
+70
+4b
+e2
 00
 20
-40
-03
-eb
 20
-40
-03
-f0
-20
-40
+78
+51
+6f
+e1
 03
+15
+1f
+e2
+0c
+00
+ef
+e0
+80
+06
+67
+e0
+c5
 f5
-20
-40
-03
-fa
-20
-40
+1f
+e1
 04
-07
-20
-40
+0f
+1f
+f1
+fe
+00
+c0
 04
-18
+84
+ba
 20
 20
-41
-1e
-6f
-e0
-c9
-18
+4d
+93
+da
 20
-40
-04
-14
+00
+01
 20
 40
-41
-24
-68
-48
-c9
-18
-20
-20
-3f
-56
+4d
+c0
 6f
+e1
+44
+dc
+e7
+e1
+00
+05
+58
+00
+00
+00
+e7
 e0
-c9
-19
-20
-40
-04
-14
-20
-40
-41
-2a
-68
-48
-c9
-19
-20
-20
-3f
-56
+80
+05
+70
+09
+50
+01
 6f
 e0
-c9
-1a
+c4
+e2
+79
 20
-40
-04
-14
+7e
+06
+67
+e0
+c4
+e2
+70
+09
+5b
+12
 20
-40
-41
-30
-68
-48
-c9
-1a
 20
+78
+71
+78
+54
+7c
+00
 20
-3f
-56
+40
+59
+e6
 6f
 e0
-c9
-0d
-c1
-7f
 80
+49
+20
+7a
 00
-70
-4b
-96
-03
-6f
-e0
-cb
-91
-1f
-e2
-26
 00
-68
-48
-c9
-0d
-6f
-e0
-c9
-10
+c2
+83
+d7
+30
 c0
-7f
-84
 03
+84
+cd
 20
 20
-41
-3e
-6f
-e0
-c9
-0d
+57
+01
 20
 40
-04
-16
-68
-48
-c9
-0d
-20
+58
+5d
+70
+00
+73
+78
 20
-41
-4b
-6f
-e0
-c9
-0e
-c1
-7f
-80
+60
+00
 00
-70
-4b
-96
-04
 6f
 e0
-cb
-92
+c3
+dd
 1f
-e2
-26
-00
-68
-48
-c9
-0e
-6f
 e0
-c9
-10
+fe
+01
+67
+e0
+c3
+dd
 c0
-7f
-84
-10
+06
+16
+5a
 20
+40
+19
+1b
 20
-41
-57
+40
+19
+6a
 6f
 e0
-c9
-0e
+82
+bd
 20
 40
-04
 16
-68
-48
-c9
-0e
-20
+8b
 20
-41
-64
-d8
 40
-00
-3f
+18
+38
 20
 20
-60
-93
-d8
+16
+55
+20
 40
-00
-3e
+0e
+80
 20
 20
-60
-93
-da
+16
+61
+20
 40
-00
-00
-6f
-e0
-cc
-0a
-c1
-7f
-80
-00
-6f
-e0
-cc
-0b
-24
-3a
-04
-25
-68
-48
-cc
-0a
+16
+be
 20
 40
-3f
-56
-68
-48
+16
 cc
-0a
 20
 40
-60
-59
+4c
+b5
 79
 20
-a4
+2a
 00
-1a
-42
-7e
+78
+2e
+fc
 00
-67
-e0
-cc
-09
-20
-60
+78
+30
+7c
 00
+78
+50
+fc
 00
-6f
-e0
-cc
-0a
-79
-3f
-fe
-07
-67
-e0
-cc
-0a
-68
-48
-cc
-0a
 20
 40
-3f
-54
-68
-48
-cc
+17
+44
+20
+00
+00
 0a
 20
-40
-60
-59
-7d
 20
-a4
+18
+41
+ef
+e1
 00
+06
+c0
+02
+04
+e9
 20
 20
+19
+e4
+ef
+e1
+80
+06
+67
+e1
+c4
+36
+c0
+05
 04
-22
+ee
 c0
-02
+09
 04
-49
+fd
 20
-40
-04
-4c
+20
+1c
+d3
 6f
-e2
-4c
-05
-d8
-40
-00
-a0
-98
+e4
+4b
+ab
+c3
+1d
+9d
+e7
+20
 40
+1e
+8d
+68
+49
+44
+37
+6f
+e0
+c3
+c0
+c2
+81
 84
-00
-1c
-42
-7e
-00
+f8
+6f
+e1
+44
+37
+c0
+18
+1e
+c8
+68
+49
+44
+37
+20
+20
+1d
+eb
+6f
+e1
+43
+d1
 98
 46
 7c
 00
 24
-61
-00
+22
+84
+f4
+24
+34
+04
+f4
+20
+20
+1e
+10
+18
+c2
+22
 00
-67
-e2
-4c
-05
 6f
+e1
+43
+d4
+1f
 e0
-cc
-04
-c0
-00
-04
-3d
-c0
-00
-84
+a5
+fd
+20
 40
+1a
+25
+6f
+e0
+ca
+c1
 c0
-01
-04
-43
-c0
-01
-84
-46
+7f
+9e
+73
+6f
+e0
+ca
+c7
 20
-60
+3a
+1e
+73
+6f
+e0
+cb
+75
+c2
+80
+9e
+73
+58
 00
 00
-70
-4c
-04
-01
-70
-48
-d0
-01
+1a
+68
+49
+44
+37
+98
+46
+7c
+00
+24
+22
+9e
+73
 20
 20
-7e
-54
-70
-4c
-04
-02
-70
-48
-d0
+1e
+10
+78
+34
+7c
 00
 20
+40
+14
+65
+6f
+e1
+c1
+74
 20
+3a
 7e
-54
-70
-4c
-04
-03
-70
-48
-d0
-01
-20
+56
+6f
+e0
+c0
+99
 20
+3a
 7e
-54
-70
-4c
-04
-00
-70
-48
-d0
+56
+6f
+e0
+cb
+e1
+24
+7a
 00
-20
-20
-7e
-54
-70
-4c
-04
 00
-70
-48
-d0
+6f
+e0
+c8
+bd
+c0
 00
+fe
+56
 20
 60
 00
 00
-68
-4a
-4c
-05
-1c
-42
-7e
-00
-98
-46
+78
+54
 7c
 00
-24
-41
-04
-51
-20
-60
-00
-00
 58
 00
 00
 00
 67
-e2
-4c
-05
+e3
+48
+d1
 20
-60
+40
+05
+27
+58
 00
 00
+89
 20
 40
-49
-90
+5b
+0c
 20
 40
-79
-36
+03
+49
 20
 40
-04
-59
+3f
+7e
 20
 40
-04
-6d
-20
+3f
+83
 20
-46
-4f
-6f
-e4
-4b
-ab
-c2
-97
 40
-36
+05
+52
 6f
 e0
-c9
-0f
-c1
-7f
-80
-00
-da
-20
-00
-00
-70
-4b
-96
+c8
+d0
+1f
+e1
+7e
+1f
+67
+e0
+c8
+d0
+24
+34
 05
-68
-48
-c9
-0f
+36
 20
 40
-04
-62
+05
+38
 20
 20
-40
-2f
-6f
-e4
-4b
-ab
-c2
-96
-40
-48
+45
+44
 6f
 e0
-cb
-93
-1f
-e2
-26
+c4
+ac
+c1
+80
+00
 00
 6f
 e0
 c9
-10
+27
 c0
-7f
-84
-69
+05
+85
+2c
 20
 20
+42
+43
+20
 40
-3f
+42
+c4
 6f
 e0
 c9
-0f
-20
-40
-04
-16
+11
+c0
+7f
+c2
+94
 68
 48
 c9
-0f
-20
+11
 20
-41
-95
-6f
-e4
-4b
-ab
-c4
-1e
+40
+60
+59
+24
+60
 80
 00
-6f
-e0
-cc
-0c
-24
-3a
-04
-76
-6f
-e0
-cc
-0d
-20
-40
-04
-14
+58
+00
+00
+00
 20
 40
-04
-87
-68
-48
-cc
+5b
 0d
+c0
+ac
+41
+b2
 20
 20
-3f
-56
-6f
-e0
-cc
-0d
+42
 79
-3f
-fe
-07
-67
-e0
-cc
-0d
+20
+40
+47
+28
+20
+60
+00
+00
 6f
 e0
-cc
-0d
+c9
+27
+c1
+01
+80
+00
+c1
+05
+80
+00
+20
+20
+47
+1a
 20
 40
-04
-16
-70
-4c
-11
-00
-68
-48
-cc
-0d
+3f
+65
 6f
 e0
-cc
-0e
+c9
+27
+c0
+05
+85
+43
 20
 40
-04
-a0
+42
+32
+da
+60
+4a
+a3
 20
 40
-04
-8b
-68
-48
-cc
-0d
+42
+2b
 20
 20
-3f
-56
+03
+49
 20
 40
-3f
-56
+05
+49
+da
+60
+4b
+e3
+20
+20
+05
+41
 6f
 e0
-cc
-0f
-c1
-00
-80
+c9
+27
+c0
+05
+85
+49
+20
+20
+42
+32
+58
 00
-70
-4c
-0f
-01
+97
+06
 20
 20
+42
+33
+20
 40
-69
-70
-4c
-11
-00
-68
-48
-cc
-0d
-6f
-e0
-cc
-0e
+41
+a7
 20
 40
-04
-96
-67
-e0
-cc
-0e
+3f
+65
 6f
 e0
-cc
-10
+c9
+27
+c0
+05
+85
+50
 20
-3a
-04
-92
-6f
-e0
-cc
-0f
-c1
-00
-80
+20
+42
+3e
+58
 00
-70
-4c
-0f
-01
+1f
+06
 20
 20
+5b
+0c
+20
 40
-69
+05
+54
+20
+20
+40
+dd
 6f
 e0
-cc
-0f
-c1
-00
-00
-00
-70
-4c
-0f
-00
+cb
+e1
+24
+5a
+41
+21
+da
 20
-60
-00
-00
-1f
-e3
-fe
 00
-1f
-e2
-24
 00
 20
 40
-60
-59
-79
+05
+5e
 20
-a4
-00
-1a
-41
-7e
-07
+40
+05
+63
+20
+40
+05
 68
-48
-cc
-11
-18
-42
-0e
-00
-c0
-03
-84
-ab
-c0
-00
-04
-ad
 20
-60
-00
-00
-1f
-e3
-fe
-00
+40
+05
+6d
+20
+40
+05
+7a
+20
+40
+05
+8d
+20
+20
+41
 1f
-e2
-24
-00
+6f
+e0
+c9
+18
+20
+40
+05
+87
 20
 40
+41
+24
+68
+48
+c9
+18
+20
+20
 3f
-54
+56
+6f
+e0
+c9
+19
 20
 40
-60
-59
-79
+05
+87
 20
-a4
-00
+40
+41
+2a
+68
+48
+c9
+19
+20
+20
+3f
+56
+6f
+e0
+c9
 1a
+20
+40
+05
+87
+20
+40
 41
-7e
-07
+30
 68
 48
-cc
-11
-18
-42
-0e
-00
-c0
-03
-84
-ab
-c0
-00
-04
-ad
+c9
+1a
 20
-60
-00
-00
-70
-4c
-10
-01
 20
-60
-00
+3f
+56
+6f
+e0
+c9
+0d
+c1
+7f
+80
 00
 70
-4c
-10
+4b
+96
+03
+6f
+e0
+cb
+91
+1f
+e2
+26
 00
+68
+48
+c9
+0d
+6f
+e0
+c9
+10
+c0
+7f
+85
+76
 20
-60
-00
-00
+20
+41
+3e
+6f
+e0
+c9
+0d
 20
 40
-40
-72
+05
+8a
+68
+48
+c9
+0d
 20
-74
-00
-00
+20
+41
+4b
 6f
 e0
 c9
+0e
+c1
+7f
+80
+00
+70
+4b
+96
+04
+6f
+e0
+cb
 92
 1f
 e2
-04
+26
 00
+68
+48
+c9
+0e
 6f
-e4
-4b
-ab
-c2
-9e
-84
-bb
-18
-42
-7e
-00
-1f
 e0
-fe
-01
-1f
-e1
-7e
-03
-67
+c9
+10
+c0
+7f
+85
+83
+20
+20
+41
+57
+6f
 e0
 c9
-92
+0e
 20
 40
+05
+8a
+68
+48
+c9
+0e
+20
+20
+41
+64
+c1
+7f
+80
+00
+d8
 40
-95
+00
+3f
 20
 20
-45
-ee
+60
+93
+c1
+7f
+80
+00
+d8
+40
+00
+3e
+20
+20
+60
+93
 6f
 e0
-cc
-10
-24
+cd
+c6
+20
 3a
-04
-d8
+41
+6a
+70
+4b
+8b
+00
 6f
 e4
 4b
 ab
-c2
-8e
-04
-cc
-18
-42
-7e
-00
-c1
-00
+c4
+0a
 80
 00
-c0
+6f
+e0
+c9
+12
+79
+3f
+fe
+07
+67
+e0
+c9
+12
+70
+4b
+96
+07
+6f
+e0
+cb
+95
+1f
+e2
+26
 00
-04
-c8
-c0
-01
-04
-c6
+6f
+e0
+c9
+12
 20
-60
-00
-00
-58
-00
-00
-02
+40
+05
+8a
+68
+48
+c9
+12
+20
+40
+41
+95
+67
+e0
+cb
+95
 20
+40
+41
+74
+68
+48
+c9
+12
 20
-04
-b8
-58
-00
-00
-00
 20
+3f
+56
 20
-04
-b8
-58
-00
-00
-01
+40
+05
+a5
 20
+40
+79
+36
 20
-04
-b8
-58
-00
-00
-03
+40
+05
+b0
 20
+40
+05
+a9
 20
-04
-b8
-18
-42
-7e
-00
-c1
-00
-80
-00
-c0
-00
-04
-c8
-c0
-01
-04
-ca
-c0
+20
+46
+50
+6f
+e0
+cc
+40
+c3
 01
-84
-c6
+c9
+90
+6f
+e4
+4b
+ab
+20
+20
+49
+92
+6f
+e4
+4b
+ab
+c2
+94
+85
+ad
+c2
+9b
+85
+ad
 20
 60
 00
 00
-18
-42
-7e
-00
+6f
+e1
+47
+8c
+c2
+83
+02
+23
+20
+20
+46
+5a
+6f
+e0
+c9
+0f
 c1
-01
-00
-00
-c0
-00
-04
-ca
-c0
+7f
+80
 00
-84
-c6
-c0
-01
-84
-c4
+da
 20
-60
 00
 00
+70
+4b
+96
+05
+68
+48
+c9
+0f
+20
+40
+05
+b7
+20
+20
+40
+2f
 6f
 e4
 4b
 ab
 c2
-8e
-04
-d2
-18
-42
-7e
-00
-c1
-01
-00
-00
-c0
+96
+40
+48
+6f
+e0
+cb
+93
+1f
+e2
+26
 00
-04
-c4
+6f
+e0
+c9
+10
 c0
-00
-84
-c6
+7f
+85
+be
+20
 20
-60
-00
-00
-72
-49
-aa
-55
-40
-00
-00
 40
-09
+3f
+6f
+e0
+c9
+0f
+20
+40
+05
+8a
+68
+48
+c9
+0f
+20
+20
+41
+95
+20
+40
+40
+72
+20
+74
 00
 00
+6f
+e0
+c9
+92
+1f
+e0
+fe
+01
+1f
+e1
+7e
+03
+67
+e0
+c9
+92
+20
+40
+03
+47
+20
+20
+46
+43
+6f
+e1
+47
+8c
+c3
+85
+80
 00
+c3
+83
+80
 00
+c3
+83
 00
 00
+6a
+21
+48
+99
+20
+40
+25
+cb
+60
+48
+c8
+c7
+6f
+e0
+c8
+cc
+c5
+13
+05
+d4
+6f
+e0
+c8
+cf
+98
+46
+7c
 00
+24
+21
+05
+ee
+6f
+e0
+c8
+c9
+1f
+e6
+7c
+02
+24
+21
+05
+dc
+6f
+e0
+c8
+c9
+c0
 00
+05
+ef
+20
+60
 00
 00
+6f
+e0
+c8
+c9
+68
+48
+c8
+ca
+98
+46
+7c
 00
+24
+62
+80
 00
+70
+48
+c9
 00
+68
+48
+c8
+c7
+6f
+e0
+c8
+cb
+c5
+13
+05
+e5
+6f
+e0
+c8
+ce
+98
+46
+7c
 00
+24
+61
 00
-08
-08
 00
-80
+6f
+e0
+c8
+c8
+c0
 00
-40
+27
+1b
+1f
+e0
+ff
+ff
+67
+e0
+c8
+c8
+c0
 01
+05
+f6
+c0
 00
-98
-d6
-53
-4e
+a7
+11
+20
+20
+27
+1b
+70
+48
+c9
+00
+6f
+e0
+c8
+c8
+c0
+01
+85
+f5
+1f
+e0
+fe
+01
+67
+e0
+c8
+c8
+c0
 00
+a7
+11
+c0
 01
+05
+f6
+20
+20
+05
+f6
+70
+41
+e8
+03
+20
+60
 00
 00
+bb
+af
+aa
+55
+40
 00
 00
+40
+01
 00
-04
 00
 00
-18
 00
 00
 00
@@ -5048,36 +6137,71 @@
 00
 00
 00
-80
 00
 00
 00
-02
+1c
+1c
 00
+80
+10
+40
 00
 00
+98
+d6
+5b
+ce
+06
 01
 00
 00
-20
-04
-16
 00
 00
-aa
-55
-01
 00
-9a
-40
+04
+01
 08
-aa
-55
-03
+18
 00
-7a
-41
-88
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+0a
+00
+20
+00
+01
+00
+00
+20
+04
+3e
+00
+00
+aa
+55
+01
+00
+9a
+40
+08
+aa
+55
+03
+00
+7a
+41
+88
 16
 ce
 aa
@@ -5118,18 +6242,15 @@
 00
 aa
 55
-01
+05
 00
 ea
 41
 ff
-aa
-55
-01
+04
 00
-ee
-41
 00
+08
 aa
 55
 08
@@ -5139,23 +6260,30 @@
 04
 09
 4a
-08
-01
+00
+00
 80
 69
 1b
 aa
 55
+01
+00
+40
+4c
+03
+aa
+55
 0c
 00
 fe
 48
-08
-07
-06
+b0
+04
+0a
 00
-50
-06
+64
+05
 94
 85
 90
@@ -5175,7 +6303,7 @@
 55
 01
 00
-0d
+3b
 4c
 ff
 aa
@@ -5189,9 +6317,9 @@
 ff
 04
 05
-0a
-0a
-13
+ff
+ff
+ff
 0b
 0d
 0c
@@ -5208,11 +6336,18 @@
 55
 01
 00
-0a
+38
 4c
 ff
 aa
 55
+01
+00
+a5
+4d
+ff
+aa
+55
 03
 00
 24
@@ -5226,16 +6361,66 @@
 00
 ed
 4b
-ff
+0a
 58
 02
 aa
 55
+02
+00
+45
+4c
+00
+14
+aa
+55
+03
+00
+48
+4c
+05
+02
+05
+aa
+55
 01
 00
-12
+4d
+4c
+14
+aa
+55
+01
+00
+4b
+4c
+02
+aa
+55
+02
+00
+50
 4c
 01
+05
+aa
+55
+01
+00
+53
+4c
+0a
+aa
+55
+05
+00
+55
+4c
+ff
+0a
+ff
+ff
+ff
 aa
 55
 01
@@ -5250,9 +6435,9 @@
 cc
 4b
 00
-05
+08
 00
-04
+07
 00
 00
 00
@@ -5340,7 +6525,7 @@
 ff
 aa
 55
-11
+13
 00
 b5
 4b
@@ -5349,42 +6534,35 @@
 0a
 60
 06
-0a
+05
 00
 64
 00
 70
 17
 14
-0a
+05
 90
 01
+e8
+03
 90
 01
 aa
 55
 02
 00
-13
-4c
-64
-00
-aa
-55
-02
-00
-c6
+ca
 4b
-90
-01
+07
+03
 aa
 55
-02
+01
 00
-ca
-4b
-07
-06
+98
+4d
+ff
 aa
 55
 01
@@ -5412,11 +6590,11 @@
 00
 e3
 48
-05
+0f
 01
-9f
+a2
 00
-b1
+b4
 00
 aa
 55
@@ -5499,10 +6677,10 @@
 00
 a8
 40
-15
-a0
-c8
-13
+11
+23
+48
+12
 23
 51
 aa
@@ -5671,8 +6849,8 @@
 55
 0c
 00
-f0
-4b
+1e
+4c
 0b
 42
 54
@@ -5691,9 +6869,9 @@
 00
 72
 43
-07
+06
 00
-07
+09
 00
 20
 00
@@ -5750,8 +6928,8 @@
 43
 8e
 b1
-3c
-0e
+0a
+2e
 8e
 ed
 aa
@@ -5838,7 +7016,18 @@
 0e
 aa
 55
-b2
+05
+00
+91
+4c
+8a
+8b
+83
+84
+88
+aa
+55
+5a
 00
 df
 49
@@ -5932,6 +7121,12 @@
 00
 ff
 ff
+aa
+55
+1e
+00
+a7
+4d
 09
 5a
 ff
@@ -5954,10 +7149,38 @@
 00
 ff
 00
+35
+c8
+25
+af
+09
+00
+ff
+ff
+aa
+55
+0c
+00
+97
+4a
+05
+b9
+09
+5a
+0b
+72
+0c
+52
 09
 00
 ff
 ff
+aa
+55
+40
+00
+53
+4a
 09
 5a
 0d
@@ -6006,1491 +7229,268 @@
 ff
 09
 a5
-46
+26
 34
-60
-07
-69
+19
 04
-7d
-20
-7e
-00
-09
-00
-ff
-ff
-aa
-55
-08
-00
-a3
-4a
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-08
-00
-e3
-4b
-09
-a5
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-02
-00
-8d
-44
-2d
-49
-aa
-55
-01
-00
-8c
-44
-01
-aa
-55
-01
-00
-65
-48
-01
-aa
-55
-01
-00
-64
-48
-01
-aa
-55
-01
-00
-36
-48
-01
-aa
-55
-01
-00
-a8
-48
-06
-aa
-55
-02
-00
-38
-48
-c0
-12
-aa
-55
-03
-00
-54
-48
-19
-19
-1c
-aa
-55
-10
-00
-40
-48
-00
-13
-2c
-42
-06
-15
-36
-48
-0f
-1a
-3a
-4c
-11
-23
-31
-4d
-aa
-55
-01
-00
-5b
-48
-00
-aa
-55
-05
-00
-77
-48
-20
-15
-10
-05
-4e
-aa
-55
-05
-00
-8c
-48
-01
-0f
-0f
-0f
-0f
-aa
-55
-06
-00
-ad
-48
-0c
-f8
-00
-00
-77
-01
-aa
-55
-03
-00
-5c
-48
-00
-48
-60
-aa
-55
-01
-00
-7d
-48
-07
-aa
-55
-02
-00
-99
-48
-b5
-4a
-aa
-55
-01
-00
-ca
-48
-80
-aa
-55
-02
-00
-c2
-48
-14
-00
-aa
-55
-02
-00
-c0
-48
-50
-00
-aa
-55
-03
-00
-b8
-48
-00
-a6
-0e
-aa
-55
-03
-00
-b8
-49
-00
-50
-00
-aa
-55
-02
-00
-79
-44
-80
-1f
-aa
-55
-01
-00
-83
-44
-80
-aa
-55
-01
-00
-e8
-41
-01
-55
-aa
-aa
-55
-39
-7a
-46
-5b
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+60
+07
+69
+04
+7d
+20
+7e
+00
+09
+00
 ff
 ff
+aa
+55
+08
+00
+a3
+4a
+09
+5a
+0b
+f3
+09
+00
 ff
 ff
+aa
+55
+08
+00
+e3
+4b
+09
+a5
+0b
+f3
+09
+00
 ff
 ff
+aa
+55
+02
+00
+8d
+44
+2d
+49
+aa
+55
+01
+00
+8c
+44
+00
+aa
+55
+01
+00
+65
+48
+01
+aa
+55
+01
+00
+64
+48
+01
+aa
+55
+01
+00
+36
+48
+01
+aa
+55
+01
+00
+a8
+48
+06
+aa
+55
+02
+00
+38
+48
+c0
+12
+aa
+55
+03
+00
+54
+48
+19
+19
+1c
+aa
+55
+10
+00
+40
+48
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+5b
+48
+00
+aa
+55
+05
+00
+77
+48
+20
+15
+10
+05
+4e
+aa
+55
+05
+00
+8c
+48
+01
+0f
+0f
+0f
+0f
+aa
+55
+06
+00
+ad
+48
+0c
+f8
+00
+00
+77
+01
+aa
+55
+03
+00
+5c
+48
+00
+48
+60
+aa
+55
+01
+00
+7d
+48
+07
+aa
+55
+02
+00
+99
+48
+b5
+4a
+aa
+55
+01
+00
+ca
+48
+80
+aa
+55
+02
+00
+c2
+48
+14
+00
+aa
+55
+02
+00
+c0
+48
+50
+00
+aa
+55
+03
+00
+b8
+48
+00
+a6
+0e
+aa
+55
+03
+00
+b8
+49
+00
+50
+00
+aa
+55
+02
+00
+79
+44
+80
+1f
+aa
+55
+01
+00
+83
+44
+80
+aa
+55
+01
+00
+e8
+41
+03
+55
+aa
+aa
+55
+2d
+9c
+9a
+22
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-ea
-49
+50
+c5
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/memmap.format	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/memmap.format	(working copy)
@@ -2208,21 +2208,100 @@
 0x4beb mem_24g_pair_count
 0x4bed mem_mouse_logo_led_gpio
 0x4bee mem_mouse_logo_led_on_time_init
-0x4bf0 mem_le_name_patch_len
-0x4bf1 mem_le_name_patch
-0x4c04 mem_fire_key_status
-0x4c05 mem_fire_key_delay
-0x4c09 mem_fire_key_flag
-0x4c0a mem_firebutton_gpio
-0x4c0b mem_mouse_firebutton_connect_vin_flag
-0x4c0c mem_mouse_another_dpi_connect_vin_flag
-0x4c0d mem_dpi_another_button_gpio
-0x4c0e mem_dpi_another_press_status
-0x4c0f mem_dpi_another_button_state
-0x4c10 mem_dpi_another_button_down_enable
-0x4c11 mem_mouse_key_temp_patch
-0x4c12 mem_mouse_ice_sdio_for_sensor_angle
-0x4c13 mem_mouse_bt_reconn_led_blink_time
+0x4bf0 mem_g24_ota_config_type//rr
+0x4bf1 mem_g24_ota_storage_size//byte
+0x4bf3 mem_g24_ota_config_addr
+0x4bf5 mem_g24_ota_rtn_state
+0x4bf6 mem_g24_ota_mode
+0x4bf7 mem_g24_ota_sm
+0x4bf8 mem_g24_ota_prepare_send_len
+0x4bf9 mem_g24_ota_txbuf
+0x4c18 mem_g24_ota_rx_alllen
+0x4c1a mem_g24_ota_rx_sum
+0x4c1c mem_g24_ota_rx_data_count
+0x4c1d mem_g24_ota_reset_timer
+0x4c1e mem_le_name_patch_len
+0x4c1f mem_le_name_patch
+0x4c32 mem_fire_key_status
+0x4c33 mem_fire_key_delay
+0x4c37 mem_fire_key_flag
+0x4c38 mem_firebutton_gpio
+0x4c39 mem_mouse_firebutton_connect_vin_flag
+0x4c3a mem_mouse_another_dpi_connect_vin_flag
+0x4c3b mem_dpi_another_button_gpio
+0x4c3c mem_dpi_another_press_status
+0x4c3d mem_dpi_another_button_state
+0x4c3e mem_dpi_another_button_down_enable
+0x4c3f mem_mouse_key_temp_patch
+0x4c40 mem_mouse_led_new_interface_config
+0x4c41 mem_mouse_multi_led_blink_enable
+0x4c42 mem_mouse_multi_led_type
+0x4c43 mem_mouse_multi_led_state
+0x4c44 mem_mouse_multi_led_blink_type//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+0x4c45 mem_mouse_led_multi_type//00:no multi	01:low+led	02:dpi+led	03:low+dpi_led
+0x4c46 mem_mouse_multi_led_powon_timer_init//power on time
+0x4c47 mem_mouse_multi_led_powon_timer
+0x4c48 mem_mouse_multi_24gled_blink_timer_init//24gled blink time
+0x4c49 mem_mouse_multi_le_discovery_blink_timer_init//le discovery blink time
+0x4c4a mem_mouse_multi_le_reconn_blink_timer_init//le reconn blink time
+0x4c4b mem_mouse_dpi_led_blink_timer_init//dpi blink time
+0x4c4c mem_mouse_multi_led_blink_timer
+0x4c4d mem_mouse_low_led_blink_timer//low blink time
+0x4c4e mem_mouse_low_led_blink_half_timer
+0x4c4f mem_adc_low_volatage_led_timer_count_new
+0x4c50 mem_mouse_multi_24gled_blink_count_init//24g count
+0x4c51 mem_mouse_multi_le_reconn_blink_count_init//le reconn count
+0x4c52 mem_mouse_multi_led_blink_count
+0x4c53 mem_mouse_multi_lowled_blink_count_init//low count
+0x4c54 mem_mouse_multi_low_led_blink_count
+0x4c55 mem_mouse_1io2led_multi_24gled
+0x4c56 mem_mouse_1io2led_multi_bt1led
+0x4c57 mem_mouse_1io2led_multi_bt2led
+0x4c58 mem_mouse_low_gpio
+0x4c59 mem_mouse_dpi_gpio
+0x4c5a mem_mouse_rssi_signal_buf_patch
+0x4c6a mem_mouse_rssi_signal_buf_temp
+0x4c7a mem_mouse_le_send_conn_param_update
+0x4c7b mem_mouse_le_send_conn_param_update_timer
+0x4c7c mem_device_uart_tx_gpio
+0x4c7d mem_device_uart_rx_gpio
+0x4c7e mem_device_uart_rx_buffer
+0x4c80 mem_device_uart_rx_buffer_end
+0x4c82 mem_device_uart_tx_buffer
+0x4c84 mem_device_uart_tx_buffer_end
+0x4c86 mem_device_uart_baud_rate
+0x4c88 mem_24g_paccnt
+0x4c89 mem_rssi_mouse
+0x4c8a mem_clkn_bt_patch
+0x4c8e mem_txpower_print
+0x4c90 mem_normal_tx_power
+0x4c91 mem_sensor_s201_dpi
+0x4c91 mem_sensor_s201_dpi_0
+0x4c92 mem_sensor_s201_dpi_1
+0x4c93 mem_sensor_s201_dpi_2
+0x4c94 mem_sensor_s201_dpi_3
+0x4c95 mem_sensor_s201_dpi_4
+0x4c96 mem_le_tx_buffer0_omemalloc_new
+0x4cd6 mem_le_tx_buffer1_omemalloc_new
+0x4d16 mem_le_tx_buffer2_omemalloc_new
+0x4d56 mem_le_tx_buffer3_omemalloc_new
+0x4d96 mem_mouse_commbination_dpi_check_enable
+0x4d97 mem_commbination_dpi_timer
+0x4d98 mem_mouse_commbination_key_dpi
+0x4d99 mem_rgb_led_off_enable
+0x4d9a mem_rgb_led_on_enable
+0x4d9b mem_rgb_led_off_enable_timer
+0x4d9c mem_rgb_led_on_enable_timer
+0x4d9d mem_rgb_led_on_timer
+0x4d9f mem_rgb_led_off_check_count
+0x4da1 mem_rgb_led_on_check_count
+0x4da3 mem_rgb_led_on_continue_1min_timeout_flag
+0x4da4 mem_mbutton_function_disable
+0x4da5 mem_mouse_rgb_ctrl_gpio
+0x4da6 mem_mouse_rgb_adc_no_power_flag
+0x4da7 mem_sensor_8650_init_new
+0x4dc5 mem_long_sleep_flag
+0x4dc6 mem_mouse_customer_key_connect_vin_flag
 0x48d0 mem_remote_car_hard_soft_switch
 0x48d1 mem_remote_car_queue_each_size
 0x48d2 mem_remote_car_queue_length
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/program.lis	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/program.lis	(working copy)
@@ -1,1642 +1,6921 @@
               include "bt_format "
               org 0x0000
-0000 c284001a bbit1 8 ,pf_patch_ext 
-0001 c0000026 beq patch00_0 ,p_soft_reset 
-0002 c001802a beq patch00_3 ,p_main_loop 
-0003 c0418043 beq patch10_3 ,p_set_sync_on 
-0004 c045807a beq patch11_3 ,p_initialize_radio_cont 
-0005 c04f8087 beq patch13_7 ,p_init_param 
-0006 c0570089 beq patch15_6 ,p_app_init 
-0007 c058006e beq patch16_0 ,p_app_evt_100ms_loop 
-0008 c06182a0 beq patch18_3 ,p_mouse_start_work 
-0009 c06202a9 beq patch18_4 ,p_mouse_start_reconnect_device 
-000a c0638189 beq patch18_7 ,p_mouse_app_enter_hibernate 
-000b c064818f beq patch19_1 ,p_mouse_setgpio_hibernate 
-000c c06501c8 beq patch19_2 ,p_mouse_lpm_before_common 
-000d c066006a beq patch19_4 ,p_mouse_adc_read_start 
-000e c06703af beq patch19_6 ,p_mouse_motion 
-000f c06784af beq patch19_7 ,p_mouse_dpi_process 
-0010 c06802be beq patch1a_0 ,p_mouse_seting_dpi 
-0011 c06883e1 beq patch1a_1 ,p_mouse_check_key_gpio 
-0012 c06a03c0 beq patch1a_4 ,p_mouse_sensor_poweron 
-0013 c06b01f9 beq patch1a_6 ,p_mouse_priority_bb_event 
-0014 c06c82cf beq patch1b_1 ,p_mouse_bb_event_timer 
-0015 c06d0347 beq patch1b_2 ,p_mouse_start_discovery 
-0016 c06d8350 beq patch1b_3 ,p_mouse_stop_discovery 
-0017 c06f0454 beq patch1b_6 ,p_mouse_idle 
-0018 c0740357 beq patch1d_0 ,p_hid_rx_process 
-0019 2020137c branch loop 
+0000 c2840021 bbit1 8 ,pf_patch_ext 
+0001 c0000033 beq patch00_0 ,p_soft_reset 
+0002 c0410127 beq patch10_2 ,p_shutdown_radio 
+0003 c0418072 beq patch10_3 ,p_set_sync_on 
+0004 c0420079 beq patch10_4 ,p_set_freq_rx 
+0005 c045009f beq patch11_2 ,p_txon_next 
+0006 c045811a beq patch11_3 ,p_initialize_radio_cont 
+0007 c0460087 beq patch11_4 ,p_save_rssi 
+0008 c04f812e beq patch13_7 ,p_init_param 
+0009 c0520038 beq patch14_4 ,p_lpm_dispatch 
+000a c0570130 beq patch15_6 ,p_app_init 
+000b c0618333 beq patch18_3 ,p_mouse_start_work 
+000c c0620046 beq patch18_4 ,p_mouse_start_reconnect_device 
+000d c063823f beq patch18_7 ,p_mouse_app_enter_hibernate 
+000e c0648245 beq patch19_1 ,p_mouse_setgpio_hibernate 
+000f c0650277 beq patch19_2 ,p_mouse_lpm_before_common 
+0010 c06600c9 beq patch19_4 ,p_mouse_adc_read_start 
+0011 c0670517 beq patch19_6 ,p_mouse_motion 
+0012 c06785c2 beq patch19_7 ,p_mouse_dpi_process 
+0013 c0680347 beq patch1a_0 ,p_mouse_seting_dpi 
+0014 c0688554 beq patch1a_1 ,p_mouse_check_key_gpio 
+0015 c069835e beq patch1a_3 ,p_mouse_init_sunt 
+0016 c06a053c beq patch1a_4 ,p_mouse_sensor_poweron 
+0017 c06b029a beq patch1a_6 ,p_mouse_priority_bb_event 
+0018 c06c838c beq patch1b_1 ,p_mouse_bb_event_timer 
+0019 c06d04a1 beq patch1b_2 ,p_mouse_start_discovery 
+001a c06d84ab beq patch1b_3 ,p_mouse_stop_discovery 
+001b c06f05a0 beq patch1b_6 ,p_mouse_idle 
+001c c06f805e beq patch1b_7 ,p_mouse_ready_reconnection_by_button 
+001d c0708057 beq patch1c_1 ,p_mouse_led_off 
+001e c0710054 beq patch1c_2 ,p_mouse_led_on 
+001f c07404b2 beq patch1d_0 ,p_hid_rx_process 
+0020 2020137c branch loop 
 
 pf_patch_ext:
-001a c00d039c beq patch23_2 ,p_send_lmp 
-001b c019804a beq patch26_3 ,p_adc_init_data 
-001c c01a004f beq patch26_4 ,p_enable_adc 
-001d c0438353 beq patch30_7 ,p_ui_timer_check 
-001e c050836b beq patch34_1 ,p_le_slave_match 
-001f c0600375 beq patch38_0 ,p_le_parse_l2cap 
-0020 c06e8290 beq patch3b_5 ,p_g24_dispatch 
-0021 c0710256 beq patch3c_2 ,p_g24_pair_dispatch 
-0022 c074825e beq patch3d_1 ,p_g24_reconn_dispatch 
-0023 c0750140 beq patch3d_2 ,p_g24_transmit_no_interrupt 
-0024 c07603a6 beq patch3d_4 ,p_g24_lpm_wait 
-0025 2020137c branch loop 
+0021 c00d04c6 beq patch23_2 ,p_send_lmp 
+0022 c0100052 beq patch24_0 ,p_twspi_reset 
+0023 c015803e beq patch25_3 ,p_efuse_vdd_off 
+0024 c01980a9 beq patch26_3 ,p_adc_init_data 
+0025 c01a00ae beq patch26_4 ,p_enable_adc 
+0026 c04384ae beq patch30_7 ,p_ui_timer_check 
+0027 c05084d0 beq patch34_1 ,p_le_slave_match 
+0028 c05184da beq patch34_3 ,p_le_slave_unsync 
+0029 c05a84dc beq patch36_5 ,p_le_transmit 
+002a c06004e6 beq patch38_0 ,p_le_parse_l2cap 
+002b c06e832f beq patch3b_5 ,p_g24_dispatch 
+002c c07102f6 beq patch3c_2 ,p_g24_pair_dispatch 
+002d c07482fe beq patch3d_1 ,p_g24_reconn_dispatch 
+002e c07501de beq patch3d_2 ,p_g24_transmit_no_interrupt 
+002f c075820c beq patch3d_3 ,p_g24_transmit_hop_process 
+0030 c076050c beq patch3d_4 ,p_g24_lpm_wait 
+0031 c07685ca beq patch3d_5 ,p_power_ctrl_start 
+0032 2020137c branch loop 
 
 p_soft_reset:
-0026 20800000 clear_stack 
-0027 204030f3 call app_param_init 
-0028 20403bfd call mouse_xtal_init 
-0029 20200804 branch soft_reset + 3 
-
-p_main_loop:
-002a 2040706c call sp_calc_sequence 
-002b 20407597 call sp_calc_sequence_256 
-002c 20406ea7 call sp_calc_sequence_256_check 
-002d 20401b93 call le_advertising_dispatch + 1 
-002e 2040083a call idle_dispatch 
-002f 20403108 call app_process_idle + 1 
-0030 20400892 call inquiry_dispatch + 1 
-0031 20400b08 call inquiry_scan_dispatch + 1 
-0032 20400b7b call page_scan_dispatch + 1 
-0033 20400823 call connection_dispatch + 1 
-0034 204021d3 call g24_dispatch + 2 
-0035 20400037 call p_lpm_dispatch 
-0036 20200813 branch main_loop 
+0033 20800000 clear_stack 
+0034 204030f3 call app_param_init 
+0035 2455805a ncall p_led_num_check ,wake 
+0036 20403bfd call mouse_xtal_init 
+0037 20200804 branch soft_reset + 3 
 
 p_lpm_dispatch:
-0037 20401465 call lpo_calibration 
-0038 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-0039 207a0000 rtn blank 
-003a 6fe0c099 fetch 1 ,mem_lpm_mode 
-003b 207a0000 rtn blank 
-003c 6fe0c764 fetch 1 ,mem_ssp_enable 
-003d 203a0040 branch p_lpm_dispatch_next ,blank 
-003e 6fe0c6b9 fetch 1 ,mem_sp_local_key_invalid 
-003f 207a0000 rtn blank 
-
-p_lpm_dispatch_next:
-0040 6fe0c6ba fetch 1 ,mem_sc_calc 
-0041 247a0000 nrtn blank 
-0042 202014ea branch lpm_dispatch_next + 3 
+0038 20401465 call lpo_calibration 
+0039 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+003a 207a0000 rtn blank 
+003b 6fe0cc41 fetch 1 ,mem_mouse_multi_led_blink_enable 
+003c c1008000 rtneq on 
+003d 202014e1 branch lpm_dispatch + 4 
+
+p_efuse_vdd_off:
+003e 6ff08a0b fetch 1 ,core_rf_ldo_en1 
+003f 793ffe05 set0 5 ,pdata 
+0040 793ffe04 set0 4 ,pdata 
+0041 793ffe00 set0 0 ,pdata 
+0042 67f08a0b store 1 ,core_rf_ldo_en1 
+0043 20000018 nop 24 
+0044 793ffe03 set0 3 ,pdata 
+0045 20205ea4 branch efuse_vdd_off + 6 
+
+p_mouse_start_reconnect_device:
+0046 204003d8 call p_mouse_device_le_reconn_led_config 
+0047 da204939 arg mem_device1_type ,rega 
+0048 6fe0c938 fetch 1 ,mem_device_flag 
+0049 1fe0ffff increase -1 ,pdata 
+004a 1feffe1d mul32 pdata ,29 ,pdata 
+004b 9a20a200 iadd rega ,rega 
+004c efe08011 ifetch 1 ,rega 
+004d 67e0c482 store 1 ,mem_xrecord_mode 
+
+p_mouse_start_reconnect:
+004e 6fe0c482 fetch 1 ,mem_xrecord_mode 
+004f c019bd6f beq rec_3_mode ,mouse3_0_check_reconn_target 
+0050 c01a3d7b beq rec_4_mode ,mouse4_0_check_reconn_target 
+0051 202042eb branch mouse_buletooth_fast_conn_init 
+
+p_twspi_reset:
+0052 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+0053 20205af8 branch twspi_reset + 1 
+
+p_mouse_led_on:
+0054 18467cff sub temp ,gpio_disable ,null 
+0055 c1028000 rtneq zero 
+0056 20204930 branch mouse_led_on + 1 
+
+p_mouse_led_off:
+0057 18467cff sub temp ,gpio_disable ,null 
+0058 c1028000 rtneq zero 
+0059 2020492c branch mouse_led_off + 1 
+
+p_led_num_check:
+005a 6fe0cbaf fetch 1 ,mem_mouse_flag + 4 
+005b 247a0000 nrtn blank 
+005c 70448c00 jam 0 ,mem_ui_led_struct_num 
+005d 20600000 rtn 
+
+p_mouse_ready_reconnection_by_button:
+005e 6fe0cbb4 fetch 1 ,mem_device_number 
+005f c1008000 rtneq 1 
+0060 204046c2 call mouse_select_device_number 
+0061 6048c938 storet 1 ,mem_device_flag 
+0062 204003f8 call p_mouse_devide_led_disable 
+0063 20400110 call p_mouse_low_voltage_led_off 
+
+p_mouse_store_device_number_before_reset:
+0064 7041ca00 jam 0 ,mem_link_key_exists 
+0065 204046da call mouse_select_device_enable 
+0066 2040006f call p_mouse_stop_bluetooth_mode 
+0067 20403173 call app_evt_button_long_pressed 
+0068 2040006a call p_mouse_le_state_clear 
+0069 202046bd branch mouse_store_device_number_before_reset + 3 
+
+p_mouse_le_state_clear:
+006a 58000000 setarg 0 
+006b 67e44040 store 8 ,mem_context 
+006c 70003100 jam 0 ,mem_state 
+006d 70478b00 jam 0 ,memui_reconnect_mode 
+006e 20600000 rtn 
+
+p_mouse_stop_bluetooth_mode:
+006f 6fe1478c fetch 2 ,mem_ui_state_map 
+0070 c3838000 rtnbit1 ui_state_bt_reconnect 
+0071 20204318 branch mouse_stop_bluetooth_mode + 2 
 
 p_set_sync_on:
-0043 70890005 jam 0x5 ,modem_en 
-0044 20000002 nop 2 
-0045 70890000 jam 0x0 ,modem_en 
-0046 6fe0c0c5 fetch 1 ,mem_fcomp_div 
-0047 c00c1168 beq xtal_24m ,set_sync_on_24m 
+0072 70890005 jam 0x5 ,modem_en 
+0073 20000002 nop 2 
+0074 70890000 jam 0x0 ,modem_en 
+0075 6fe0c0c5 fetch 1 ,mem_fcomp_div 
+0076 c00c1168 beq xtal_24m ,set_sync_on_24m 
 
 p_set_sync_on_16m:
-0048 708a8729 jam 0x29 ,core_syn_afc_cfg1 
-0049 2020117d branch set_sync_on_16m 
+0077 708a8729 jam 0x29 ,core_syn_afc_cfg1 
+0078 2020117d branch set_sync_on_16m 
+
+p_set_freq_rx:
+0079 20401190 call set_freq_rx + 1 
+007a 58007676 setarg 0x7676 
+007b 67f10968 store 2 ,0x8968 
+007c 20600000 rtn 
+
+p_mouse_24g_fast_conn_mode_check:
+007d c6930000 rtnmark0 mark_24g 
+007e 6fe24891 fetch 4 ,mem_24g_receiver_addr 
+007f 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
+0080 98467c00 isub temp ,null 
+0081 20228084 branch p_mouse_soft_agc_enable ,zero 
+
+p_mouse_soft_agc_disable:
+0082 7041eaff jam 0xff ,mem_gain_fix 
+0083 20600000 rtn 
+
+p_mouse_soft_agc_enable:
+0084 7041ea00 jam 0 ,mem_gain_fix 
+0085 7041e891 jam tx_power_f17db ,mem_tx_power 
+0086 20600000 rtn 
+
+p_save_rssi:
+0087 6ff089a2 fetch 1 ,modem_nb_pow 
+0088 2feffe06 isolate1 6 ,pdata 
+0089 7920fe07 setflag true ,7 ,pdata 
+008a 67e0c1e9 store 1 ,mem_modem_rssi 
+008b 6ff089a3 fetch 1 ,modem_gain 
+008c 1fe1040f and pdata ,0x0f ,temp 
+008d 18438400 lshift temp ,temp 
+008e 1ff1fe00 rshift4 pdata ,pdata 
+008f 98408400 iadd temp ,temp 
+0090 184fa203 mul32 temp ,3 ,rega 
+0091 6fe0c1e9 fetch 1 ,mem_modem_rssi 
+0092 2040009c call p_byte_sign_extern 
+0093 1fe67e00 sub pdata ,0 ,pdata 
+0094 9a20fe00 iadd rega ,pdata 
+0095 1fe0fff7 increase -9 ,pdata 
+0096 1fe17fff and pdata ,0x1ff ,pdata 
+0097 2feffe08 isolate1 8 ,pdata 
+0098 2420809a nbranch p_save_rssi_store ,true 
+0099 58000000 setarg 0 
+
+p_save_rssi_store:
+009a 67e08019 store 1 ,mem_rssi_hex 
+009b 20600000 rtn 
+
+p_byte_sign_extern:
+009c 2feffe07 isolate1 7 ,pdata 
+009d 24608000 nrtn true 
+009e 202042d4 branch mouse_data_overflow 
+
+p_txon_next:
+009f 6fe0c1e8 fetch 1 ,mem_tx_power 
+00a0 c04880a6 beq tx_power_f17db ,p_set_tx_power_f17db 
+00a1 c04a00a3 beq tx_power_f20db ,p_set_tx_power_pair 
+00a2 2020121e branch txon_next + 1 
+
+p_set_tx_power_pair:
+00a3 708a3904 jam 0x04 ,core_tx_pwr_ctrl0 
+00a4 708a3a00 jam 0x00 ,core_tx_pwr_ctrl1 
+00a5 2020122a branch set_rf_ldo_cfg89 
+
+p_set_tx_power_f17db:
+00a6 708a395b jam 0x5b ,core_tx_pwr_ctrl0 
+00a7 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+00a8 2020122a branch set_rf_ldo_cfg89 
 
 p_adc_init_data:
-004a da20099e arg mem_temp_block2 ,rega 
-004b d840000c arg 12 ,temp 
-004c 58000030 setarg efuse_offset_adc_param 
-004d 20405e63 call efuse_read_data 
-004e 202060bf branch adc_init_data + 6 
+00a9 da20099e arg mem_temp_block2 ,rega 
+00aa d840000c arg 12 ,temp 
+00ab 58000030 setarg efuse_offset_adc_param 
+00ac 20405e63 call efuse_read_data 
+00ad 202060bf branch adc_init_data + 6 
 
 p_enable_adc:
-004f 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
-0050 708a123d jam 0x3d ,core_rf_ldo_cfg6 
-0051 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
-0052 708a0a0c jam 0x0c ,core_rf_ldo_en0 
-0053 6ff08a09 fetch 1 ,core_clkpll_cfg6 
-0054 79207e07 set1 7 ,pdata 
-0055 67f08a09 store 1 ,core_clkpll_cfg6 
-0056 708a0b04 jam 0x04 ,core_rf_ldo_en1 
-0057 2000003c nop 60 
-0058 708a1600 jam 0 ,core_syn_en 
-0059 708a1706 jam 6 ,core_rx_en0 
-005a 2040611a call read_adc_mode 
-005b 67f08a97 store 1 ,core_gpadc_ctrl 
-005c 7080dc03 jam 0x03 ,core_sum_ctrl 
-005d 2000003c nop 60 
-005e 6ff08053 fetch 1 ,core_sum_en 
-005f 79207e07 set1 7 ,pdata 
-0060 67f08053 store 1 ,core_sum_en 
-0061 200003e8 nop 1000 
-0062 6ff10150 fetch 2 ,core_adc_sum 
-0063 67e144a2 store 2 ,mem_adc_current_value 
-0064 6ff08053 fetch 1 ,core_sum_en 
-0065 793ffe07 set0 7 ,pdata 
-0066 67f08053 store 1 ,core_sum_en 
-0067 708a9700 jam 0 ,core_gpadc_ctrl 
-0068 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
-0069 20600000 rtn 
+00ae 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
+00af 708a123d jam 0x3d ,core_rf_ldo_cfg6 
+00b0 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
+00b1 708a0a0c jam 0x0c ,core_rf_ldo_en0 
+00b2 6ff08a09 fetch 1 ,core_clkpll_cfg6 
+00b3 79207e07 set1 7 ,pdata 
+00b4 67f08a09 store 1 ,core_clkpll_cfg6 
+00b5 708a0b04 jam 0x04 ,core_rf_ldo_en1 
+00b6 2000003c nop 60 
+00b7 708a1600 jam 0 ,core_syn_en 
+00b8 708a1706 jam 6 ,core_rx_en0 
+00b9 2040611a call read_adc_mode 
+00ba 67f08a97 store 1 ,core_gpadc_ctrl 
+00bb 7080dc03 jam 0x03 ,core_sum_ctrl 
+00bc 2000003c nop 60 
+00bd 6ff08053 fetch 1 ,core_sum_en 
+00be 79207e07 set1 7 ,pdata 
+00bf 67f08053 store 1 ,core_sum_en 
+00c0 200003e8 nop 1000 
+00c1 6ff10150 fetch 2 ,core_adc_sum 
+00c2 67e144a2 store 2 ,mem_adc_current_value 
+00c3 6ff08053 fetch 1 ,core_sum_en 
+00c4 793ffe07 set0 7 ,pdata 
+00c5 67f08053 store 1 ,core_sum_en 
+00c6 708a9700 jam 0 ,core_gpadc_ctrl 
+00c7 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
+00c8 20600000 rtn 
 
 p_mouse_adc_read_start:
-006a 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-006b 247a0000 nrtn blank 
-006c 2040004f call p_enable_adc 
-006d 20203ebb branch mouse_adc_read_start + 3 
-
-p_app_evt_100ms_loop:
-006e 6fe0830d fetch 1 ,mem_app_evt_timer_count 
-006f 207a0000 rtn blank 
-0070 1fe0ffff increase -1 ,pdata 
-0071 67e0830d store 1 ,mem_app_evt_timer_count 
-0072 204077c5 call ui_button_polling 
-0073 204031e3 call app_lpm_wake_auto_lock_timer 
-0074 204031a4 call app_unsniff_delay_timer 
-0075 204031aa call app_discovery_timer 
-0076 20405cdc call flash_write_spi_sm_timer 
-0077 6fe1446f fetch 2 ,mem_cb_event_timer 
-0078 20407e05 call callback_func 
-0079 2020006e branch p_app_evt_100ms_loop 
+00c9 204000ae call p_enable_adc 
+00ca 7048f600 jam 0 ,mem_adc_read_timer 
+00cb 20406125 call vdd_calculate_by_mode 
+00cc 67e148e9 store 2 ,mem_mouse_vdd_now_vol 
+00cd 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+00ce c08100d5 bne adc_config_gpio ,p_mouse_adc_data_process 
+00cf 684948e9 fetcht 2 ,mem_mouse_vdd_now_vol 
+00d0 184ffe08 mul32 temp ,8 ,pdata 
+00d1 1fe6fc0a div pdata ,10 
+00d2 20407dec call get_div_result 
+00d3 9840fe00 iadd temp ,pdata 
+00d4 67e148e9 store 2 ,mem_mouse_vdd_now_vol 
+
+p_mouse_adc_data_process:
+00d5 da2048e3 arg mem_mouse_vdd_calculate_set ,rega 
+00d6 20403ed8 call mouse_adc_bat_percent_lowpower_out 
+00d7 6fe0c4a4 fetch 1 ,mem_adc_power_flag 
+00d8 c28080db bbit1 1 ,p_mouse_power_down 
+00d9 c30000de bbit0 0 ,p_mouse_adc_no_low_voltage 
+00da 20203ecc branch mouse_adc_data_process_next 
+
+p_mouse_power_down:
+00db 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+00dc c3003f1c bbit0 mouse_enable_1io2led ,mouse_power_down 
+00dd 2020023f branch p_mouse_app_enter_hibernate 
+
+p_mouse_adc_no_low_voltage:
+00de 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+00df c3003ed0 bbit0 mouse_enable_1io2led ,mouse_adc_no_low_voltage 
+00e0 d8e00004 arg mouse_low_voltage_flag ,queue 
+00e1 204046f4 call mouse_disable_function_flag 
+00e2 704c4f01 jam 1 ,mem_adc_low_volatage_led_timer_count_new 
+00e3 6fe0c8fa fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+00e4 207a0000 rtn blank 
+00e5 7048fa00 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+00e6 2020010d branch p_mouse_low_voltage_led_off_judge 
+
+p_mouse_check_dpi_blink:
+00e7 78547c00 disable user 
+00e8 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+00e9 1fe67c04 sub pdata ,4 ,null 
+00ea 24628000 nrtn zero 
+00eb 20207e54 branch enable_user 
+
+p_mouse_low_voltage_led_timer:
+00ec 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+00ed c3004956 bbit0 mouse_enable_1io2led ,mouse_low_voltage_led_timer 
+
+p_mouse_low_voltage_led_timer_new:
+00ee c4018000 rtnbit0 mouse_enable_low_led 
+00ef 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+00f0 247a0000 nrtn blank 
+00f1 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+00f2 247a0000 nrtn blank 
+00f3 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+00f4 247a0000 nrtn blank 
+00f5 6fe0cc47 fetch 1 ,mem_mouse_multi_led_powon_timer 
+00f6 247a0000 nrtn blank 
+00f7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00f8 c4020000 rtnbit0 mouse_low_voltage_flag 
+00f9 204000e7 call p_mouse_check_dpi_blink 
+00fa 20740000 rtn user 
+00fb 6fe0cc54 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+00fc 203a0116 branch p_mouse_low_led_blink_count_init_judge ,blank 
+
+p_mouse_low_led_blink_timer:
+00fd 6848cc4f fetcht 1 ,mem_adc_low_volatage_led_timer_count_new 
+00fe 18408401 increase 1 ,temp 
+00ff 6048cc4f storet 1 ,mem_adc_low_volatage_led_timer_count_new 
+0100 6fe0cc4d fetch 1 ,mem_mouse_low_led_blink_timer 
+0101 98467c00 isub temp ,null 
+0102 2441010b ncall p_mouse_low_led_timer_count_clean ,positive 
+0103 6fe0cc4e fetch 1 ,mem_mouse_low_led_blink_half_timer 
+0104 98467c00 isub temp ,null 
+0105 2421010d nbranch p_mouse_low_voltage_led_off_judge ,positive 
+
+p_mouse_low_voltage_led_on_judge:
+0106 6fe0cc45 fetch 1 ,mem_mouse_led_multi_type 
+0107 c0008415 beq mouse_enable_low_for_led ,p_mouse_device_multi_led_on + 1 
+0108 c0018415 beq mouse_enable_dpi_low_for_led ,p_mouse_device_multi_led_on + 1 
+
+p_mouse_low_voltage_led_on:
+0109 6848cc58 fetcht 1 ,mem_mouse_low_gpio 
+010a 20200421 branch p_mouse_multi_led_on 
+
+p_mouse_low_led_timer_count_clean:
+010b 704c4f01 jam 1 ,mem_adc_low_volatage_led_timer_count_new 
+010c 20400112 call p_mouse_low_led_blink_decrease 
+
+p_mouse_low_voltage_led_off_judge:
+010d 6fe0cc45 fetch 1 ,mem_mouse_led_multi_type 
+010e c0008427 beq mouse_enable_low_for_led ,p_mouse_device_multi_led_off + 1 
+010f c0018427 beq mouse_enable_dpi_low_for_led ,p_mouse_device_multi_led_off + 1 
+
+p_mouse_low_voltage_led_off:
+0110 6848cc58 fetcht 1 ,mem_mouse_low_gpio 
+0111 2020043e branch p_mouse_multi_led_off 
+
+p_mouse_low_led_blink_decrease:
+0112 6fe0cc54 fetch 1 ,mem_mouse_multi_low_led_blink_count 
+0113 1fe0ffff increase -1 ,pdata 
+0114 67e0cc54 store 1 ,mem_mouse_multi_low_led_blink_count 
+0115 20600000 rtn 
+
+p_mouse_low_led_blink_count_init_judge:
+0116 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+0117 c282010d bbit1 mouse_enable_low_led_blink_limit ,p_mouse_low_voltage_led_off_judge 
+0118 204003b7 call p_mouse_multi_low_led_blink_count_init 
+0119 202000fd branch p_mouse_low_led_blink_timer 
 
 p_initialize_radio_cont:
-007a 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-007b 2040126a call initialize_syn_afc_cfg1 
-007c 20401271 call initialize_rf_ldo_cfg1 
-007d 20401277 call initialize_rc_cal 
-007e 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
-007f 708a0305 jam 5 ,core_clkpll_cfg0 
-0080 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-0081 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-0082 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0083 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-0084 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
-0085 70892140 jam 0x40 ,core_rx_ctrl1 
-0086 2020125d branch initialize_radio_cont + 8 
+011a 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+011b 2040126a call initialize_syn_afc_cfg1 
+011c 20401271 call initialize_rf_ldo_cfg1 
+011d 20401277 call initialize_rc_cal 
+011e 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
+011f 708a0305 jam 5 ,core_clkpll_cfg0 
+0120 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0121 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0122 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+0123 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+0124 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
+0125 70892140 jam 0x40 ,core_rx_ctrl1 
+0126 2020125d branch initialize_radio_cont + 8 
+
+p_shutdown_radio:
+0127 6fe0c1ea fetch 1 ,mem_gain_fix 
+0128 67e08964 store 1 ,mem_temp 
+0129 20401150 call shutdown_radio + 1 
+012a 708a0a00 jam 0x00 ,core_rf_ldo_en0 
+012b 6fe08964 fetch 1 ,mem_temp 
+012c 67e0c1ea store 1 ,mem_gain_fix 
+012d 20600000 rtn 
 
 p_init_param:
-0087 70008000 jam 0 ,mem_lmo_tid2 
-0088 202013b7 branch init_param_next + 1 
+012e 70008000 jam 0 ,mem_lmo_tid2 
+012f 202013b7 branch init_param_next + 1 
 
 p_app_init:
-
-p_mouse_init:
-0089 245580a6 ncall p_mouse_le_name_load ,wake 
-008a 20406df3 call enable_authrom 
-008b 204000d1 call p_mouse_setting_config 
-008c 204041a7 call mouse_init_sunt 
-008d 20758000 rtn wake 
-008e 20400095 call p_mouse_load_default_param 
-008f 2040408e call mouse_dpi_config 
-0090 20403d8a call mouse_usb_check_enable 
-0091 20404728 call mouse_drawing_optima_init 
-0092 204000fb call p_mouse_cb_fuction 
-0093 204003d2 call p_mouse_sensor_powerdown 
-0094 20203bc9 branch mouse_init + 8 
-
-p_mouse_load_default_param:
-0095 2040009f call p_mouse_firebutton_connect_state_check 
-0096 20200097 branch p_mouse_double_dpi_judge 
-
-p_mouse_double_dpi_judge:
-0097 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0098 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
-0099 6fe0cc0d fetch 1 ,mem_dpi_another_button_gpio 
-009a c283809d bbit1 gpio_active_bit ,p_mouse_another_dpi_connect_vin 
-
-p_mouse_another_dpi_connect_gnd:
-009b 704c0c00 jam 0 ,mem_mouse_another_dpi_connect_vin_flag 
-009c 20600000 rtn 
-
-p_mouse_another_dpi_connect_vin:
-009d 704c0c01 jam 1 ,mem_mouse_another_dpi_connect_vin_flag 
-009e 20600000 rtn 
-
-p_mouse_firebutton_connect_state_check:
-009f 6fe0cc0a fetch 1 ,mem_firebutton_gpio 
-00a0 c17f8000 rtneq gpio_disable 
-00a1 c28380a4 bbit1 gpio_active_bit ,p_mouse_firebutton_connect_vin 
-
-p_mouse_firebutton_connect_gnd:
-00a2 704c0b00 jam 0 ,mem_mouse_firebutton_connect_vin_flag 
-00a3 20600000 rtn 
-
-p_mouse_firebutton_connect_vin:
-00a4 704c0b01 jam 1 ,mem_mouse_firebutton_connect_vin_flag 
-00a5 20600000 rtn 
+0130 793f8034 set0 mark_adc_enable ,mark 
+0131 20406df3 call enable_authrom 
+0132 20400146 call p_mouse_setting_config 
+0133 204041a7 call mouse_init_sunt 
+0134 20758000 rtn wake 
+0135 20400349 call p_mouse_seting_sensor_type 
+0136 20403d8a call mouse_usb_check_enable 
+0137 20404728 call mouse_drawing_optima_init 
+0138 2040018c call p_mouse_cb_fuction 
+0139 2040054b call p_mouse_sensor_powerdown 
+013a 20203bc9 branch mouse_init + 8 
+
+p_mouse_customer_key_connect_vin:
+013b 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+013c c17f8000 rtneq gpio_disable 
+013d c4038000 rtnbit0 7 
+013e 704dc601 jam 1 ,mem_mouse_customer_key_connect_vin_flag 
+013f 20600000 rtn 
 
 p_mouse_le_name_load:
-00a6 6fe44bf1 fetch 8 ,mem_le_name_patch 
-00a7 207a0000 rtn blank 
-00a8 6fe0cbf0 fetch 1 ,mem_le_name_patch_len 
-00a9 1fe22200 copy pdata ,rega 
-00aa 1fe67c0b sub pdata ,11 ,null 
-00ab 242100b8 nbranch p_mouse_le_name_patch_len_overflow ,positive 
-00ac d8c04bf1 arg mem_le_name_patch ,contr 
-00ad d8a04adb arg mem_le_adv_swift_pair + 9 ,contw 
-00ae 1a227200 copy rega ,loopcnt 
-00af 20407d5f call memcpy 
-00b0 d8c04bf1 arg mem_le_name_patch ,contr 
-00b1 d8a0440a arg mem_le_scan_data + 2 ,contw 
-00b2 1a227200 copy rega ,loopcnt 
-00b3 20407d5f call memcpy 
-00b4 d8c04bf1 arg mem_le_name_patch ,contr 
-00b5 d8a042f8 arg mem_le_name ,contw 
-00b6 1a227200 copy rega ,loopcnt 
-00b7 20207d5f branch memcpy 
-
-p_mouse_le_name_patch_len_overflow:
-00b8 204000ce call p_mouse_le_swift_pair_disable 
-00b9 6fe0cbf0 fetch 1 ,mem_le_name_patch_len 
-00ba 1fe0fe01 increase 1 ,pdata 
-00bb 67e0cad2 store 1 ,mem_le_adv_swift_pair 
-00bc 704ad309 jam 9 ,mem_le_adv_swift_pair + 1 
-00bd d8c04bf1 arg mem_le_name_patch ,contr 
-00be d8a04ad4 arg mem_le_adv_swift_pair + 2 ,contw 
-00bf 1a227200 copy rega ,loopcnt 
-00c0 20407d5f call memcpy 
-00c1 6fe0cbf0 fetch 1 ,mem_le_name_patch_len 
-00c2 1fe0fe01 increase 1 ,pdata 
-00c3 67e0c408 store 1 ,mem_le_scan_data 
-00c4 70440909 jam 9 ,mem_le_scan_data + 1 
-00c5 d8c04bf1 arg mem_le_name_patch ,contr 
-00c6 d8a0440a arg mem_le_scan_data + 2 ,contw 
-00c7 1a227200 copy rega ,loopcnt 
-00c8 20407d5f call memcpy 
-00c9 d8c04bf0 arg mem_le_name_patch_len ,contr 
-00ca d8a042f7 arg mem_le_name_len ,contw 
-00cb 1a227200 copy rega ,loopcnt 
-00cc 1f20f201 increase 1 ,loopcnt 
-00cd 20207d5f branch memcpy 
-
-p_mouse_le_swift_pair_disable:
-00ce d8a04ad2 arg mem_le_adv_swift_pair ,contw 
-00cf df200014 arg 20 ,loopcnt 
-00d0 20207d26 branch clear_mem 
+0140 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+0141 207a0000 rtn blank 
+0142 1fe0f201 add pdata ,1 ,loopcnt 
+0143 d8c04c1e arg mem_le_name_patch_len ,contr 
+0144 d8a042f7 arg mem_le_name_len ,contw 
+0145 20207d5f branch memcpy 
 
 p_mouse_setting_config:
-00d1 20758000 rtn wake 
-00d2 20402607 call g24_transmit_init 
-00d3 204022ff call g24_chmap_param_init 
-00d4 20403f1e call mouse_gpio_init 
-00d5 20403d13 call mouse_param_init 
-00d6 6fe0cc12 fetch 1 ,mem_mouse_ice_sdio_for_sensor_angle 
-00d7 203a00dc branch p_mouse_setting_config_next ,blank 
-00d8 204000e1 call p_mouse_sensor_set_angle 
-00d9 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-00da 20406050 call gpio_config_input 
-00db 204000f1 call p_ice_gpio_set_float 
-
-p_mouse_setting_config_next:
-00dc 204000f5 call p_g24_short_sleep_set_8ms 
-00dd 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-00de c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
-00df 204000f8 call p_g24_short_sleep_set_4ms 
-00e0 20203bf5 branch mouse_setting_config_next 
+0146 20758000 rtn wake 
+0147 20402607 call g24_transmit_init 
+0148 204022ff call g24_chmap_param_init 
+0149 20403f1e call mouse_gpio_init 
+014a 20400140 call p_mouse_le_name_load 
+014b 20403d13 call mouse_param_init 
+014c 20400170 call p_mouse_le_buff_modify 
+014d 20400175 call p_mouse_sensor_set_angle 
+014e 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+014f 20406050 call gpio_config_input 
+0150 20400185 call p_ice_gpio_set_float 
+0151 204003ae call p_mouse_device_multi_led_parm_init 
+0152 2040013b call p_mouse_customer_key_connect_vin 
+0153 20400189 call p_mouse_store_normal_tx_power 
+0154 20401b16 call le_set_config_fixed_ltk 
+0155 20401b3f call le_set_justwork 
+0156 20401b32 call le_set_fixed_ltk 
+0157 20401b1e call le_set_config_read_authentication 
+0158 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0159 c4098000 rtnbit0 mouse_enable_eeprom 
+
+p_mouse_load_eeprom_info_check:
+015a 20405da5 call iicd_read_init_pin 
+015b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+015c 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
+015d 2440ddbf ncall clear_eeprom_size_2k ,true 
+015e 2040463b call mouse_eeprom_load_recon_info 
+015f 2040016b call p_mouse_load_device_flag_check 
+0160 6fe14990 fetch 2 ,mem_store_flag 
+0161 d840aa55 arg eeprom_init_flag ,temp 
+0162 98467c00 isub temp ,null 
+0163 2022c5e2 branch mouse_load_device_info ,zero 
+0164 60494990 storet 2 ,mem_store_flag 
+0165 204045e7 call mouse_ble_init_address 
+0166 6fe0cab4 fetch 1 ,mem_device_flag_temp 
+0167 67e0c938 store 1 ,mem_device_flag 
+
+p_mouse_load_default_dpi:
+0168 6fe0c926 fetch 1 ,mem_config_sensor_dpi 
+0169 67e0c992 store 1 ,mem_mouse_dpi 
+016a 20600000 rtn 
+
+p_mouse_load_device_flag_check:
+016b 6fe0c938 fetch 1 ,mem_device_flag 
+016c 1fe67c03 sub pdata ,3 ,null 
+016d 20610000 rtn positive 
+016e 70493800 jam mode_24g_device ,mem_device_flag 
+016f 20600000 rtn 
+
+p_mouse_le_buff_modify:
+0170 58004c96 setarg mem_le_tx_buffer0_omemalloc_new 
+0171 67e143de store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+0172 58000020 setarg mouse_ble_l2cap_txbuff_size_new 
+0173 67e143e0 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+0174 20600000 rtn 
 
 p_mouse_sensor_set_angle:
-00e1 6fe0c924 fetch 1 ,mem_sensor_angle_default 
-00e2 67e0c928 store 1 ,mem_config_sensor_angle 
-00e3 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
-00e4 c17f8000 rtneq gpio_disable 
-00e5 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
-00e6 d840003e arg gpcfg_output_low ,temp 
-00e7 20406093 call gpio_config_function_int 
-00e8 dfe00003 arg 3 ,pdata 
-00e9 d840003e arg gpcfg_output_low ,temp 
-00ea 20406093 call gpio_config_function_int 
-00eb 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-00ec 20403f56 call mouse_gpio_config_input_pu 
-00ed 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-00ee 20406059 call gpio_get_bit 
-00ef 2440c2aa ncall mouse_sensor_switch_angle ,true 
-00f0 20203f54 branch mouse_gpio_config_input_pd 
+0175 6fe0c924 fetch 1 ,mem_sensor_angle_default 
+0176 67e0c928 store 1 ,mem_config_sensor_angle 
+0177 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
+0178 c17f8000 rtneq gpio_disable 
+0179 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
+017a d840003e arg gpcfg_output_low ,temp 
+017b 20406093 call gpio_config_function_int 
+017c dfe00003 arg 0x03 ,pdata 
+017d d840003e arg gpcfg_output_low ,temp 
+017e 20406093 call gpio_config_function_int 
+017f 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0180 20403f56 call mouse_gpio_config_input_pu 
+0181 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+0182 20406059 call gpio_get_bit 
+0183 2440c2aa ncall mouse_sensor_switch_angle ,true 
+0184 20203f54 branch mouse_gpio_config_input_pd 
 
 p_ice_gpio_set_float:
-00f1 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
-00f2 2040607f call gpio_set_high_impedance 
-00f3 d8400003 arg 3 ,temp 
-00f4 2020607f branch gpio_set_high_impedance 
-
-p_g24_short_sleep_set_8ms:
-00f5 5800e290 setarg 58000 
-00f6 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-00f7 20600000 rtn 
-
-p_g24_short_sleep_set_4ms:
-00f8 58001770 setarg 6000 
-00f9 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-00fa 20600000 rtn 
+0185 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
+0186 2040607f call gpio_set_high_impedance 
+0187 d8400003 arg 0x03 ,temp 
+0188 2020607f branch gpio_set_high_impedance 
+
+p_mouse_store_normal_tx_power:
+0189 6fe0c1e8 fetch 1 ,mem_tx_power 
+018a 67e0cc90 store 1 ,mem_normal_tx_power 
+018b 20600000 rtn 
 
 p_mouse_cb_fuction:
-00fb 58000100 setarg p_mouse_24g_package_data 
-00fc 67e1489b store 2 ,mem_cb_24g_transmit_data 
-00fd 5800011a setarg p_mouse_24g_search_dongle 
-00fe 67e1489d store 2 ,mem_cb_24g_search_receiver 
-00ff 20203bd3 branch mouse_cb_fuction + 4 
+018c 58000191 setarg p_mouse_24g_package_data 
+018d 67e1489b store 2 ,mem_cb_24g_transmit_data 
+018e 580001b0 setarg p_mouse_24g_search_dongle 
+018f 67e1489d store 2 ,mem_cb_24g_search_receiver 
+0190 20203bd3 branch mouse_cb_fuction + 4 
 
 p_mouse_24g_package_data:
-0100 c6930000 rtnmark0 mark_24g 
-0101 20403f70 call mouse_motion 
-0102 24740000 nrtn user 
-0103 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0104 c30a8107 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
-0105 6fe0cb8b fetch 1 ,mem_customer_key 
-0106 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
+0191 c6930000 rtnmark0 mark_24g 
+0192 20403f70 call mouse_motion 
+0193 24740000 nrtn user 
+0194 6fe0cdc5 fetch 1 ,mem_long_sleep_flag 
+0195 704dc500 jam 0 ,mem_long_sleep_flag 
+0196 245a01ae ncall p_mouse_short_sleep_clear_wake ,blank 
+0197 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0198 c30a819b bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
+0199 6fe0cb8b fetch 1 ,mem_customer_key 
+019a 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
 
 p_mouse_24g_mouse_package_data:
-0107 204042cb call mouse_data_xy_release 
-0108 6fe0c836 fetch 1 ,mem_24g_data_type 
-0109 c2808116 bbit1 1 ,p_mouse_24g_mouse_package_data_now 
-010a 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
-010b 6fe0c8d0 fetch 1 ,mem_mouse_key 
-010c 9841fe00 ior temp ,pdata 
-010d 67e0c8d0 store 1 ,mem_mouse_key 
-010e 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
-010f 6fe0c8d5 fetch 1 ,mem_mouse_z 
-0110 9840fe00 iadd temp ,pdata 
-0111 67e0c8d5 store 1 ,mem_mouse_z 
-0112 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
-0113 6fe0c8d6 fetch 1 ,mem_mouse_tz 
-0114 9840fe00 iadd temp ,pdata 
-0115 67e0c8d6 store 1 ,mem_mouse_tz 
+019b 204042cb call mouse_data_xy_release 
+019c 6fe0c836 fetch 1 ,mem_24g_data_type 
+019d c28081aa bbit1 1 ,p_mouse_24g_mouse_package_data_now 
+019e 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
+019f 6fe0c8d0 fetch 1 ,mem_mouse_key 
+01a0 9841fe00 ior temp ,pdata 
+01a1 67e0c8d0 store 1 ,mem_mouse_key 
+01a2 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
+01a3 6fe0c8d5 fetch 1 ,mem_mouse_z 
+01a4 9840fe00 iadd temp ,pdata 
+01a5 67e0c8d5 store 1 ,mem_mouse_z 
+01a6 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
+01a7 6fe0c8d6 fetch 1 ,mem_mouse_tz 
+01a8 9840fe00 iadd temp ,pdata 
+01a9 67e0c8d6 store 1 ,mem_mouse_tz 
 
 p_mouse_24g_mouse_package_data_now:
-0116 70483601 jam type_ms ,mem_24g_data_type 
-0117 da200007 arg 7 ,rega 
-0118 da4048d0 arg mem_mouse_key ,regb 
-0119 202026e1 branch g24_transmit_by_interrupt_enable 
+01aa 70483601 jam type_ms ,mem_24g_data_type 
+01ab da200007 arg 7 ,rega 
+01ac da4048d0 arg mem_mouse_key ,regb 
+01ad 202026e1 branch g24_transmit_by_interrupt_enable 
+
+p_mouse_short_sleep_clear_wake:
+01ae 20407fdc call clear_wake 
+01af 202015b1 branch lpm_write_gpio_wakeup 
 
 p_mouse_24g_search_dongle:
-011a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-011b c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
-011c 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
-011d 207a0000 rtn blank 
-011e 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-011f 207a0000 rtn blank 
-0120 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
-0121 1fe0fe01 increase 1 ,pdata 
-0122 1fe17e03 and_into 3 ,pdata 
-0123 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
-0124 247a0000 nrtn blank 
-0125 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
+01b0 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01b1 c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
+01b2 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+01b3 207a0000 rtn blank 
+01b4 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+01b5 207a0000 rtn blank 
+01b6 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
+01b7 1fe0fe01 increase 1 ,pdata 
+01b8 1fe17e03 and_into 3 ,pdata 
+01b9 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
+01ba 247a0000 nrtn blank 
+01bb 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
 
 p_mouse_24g_search_dongle_loop:
-0126 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
-0127 1fe0fe01 increase 1 ,pdata 
-0128 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
-0129 1fe67c08 sub pdata ,g24_ch_number ,null 
-012a 24210130 nbranch p_mouse_24g_search_dongle_loop_end ,positive 
-012b 2040259a call g24_reconn_data_prep 
-012c 2040265b call g24_transmit_receive_ack 
-012d 242c0136 nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
-012e 24378136 nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
-012f 204048b5 call mouse_24g_search_dongle_success 
+01bc 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
+01bd 1fe0fe01 increase 1 ,pdata 
+01be 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
+01bf 1fe67c08 sub pdata ,g24_ch_number ,null 
+01c0 242101c6 nbranch p_mouse_24g_search_dongle_loop_end ,positive 
+01c1 2040259a call g24_reconn_data_prep 
+01c2 2040265b call g24_transmit_receive_ack 
+01c3 242c01dc nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
+01c4 243781dc nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
+01c5 204001d3 call p_mouse_24g_search_dongle_success 
 
 p_mouse_24g_search_dongle_loop_end:
-0130 20402597 call g24_txbuf_clear 
-0131 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
-0132 1fe0fe01 increase 1 ,pdata 
-0133 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
-0134 c0080138 beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
-0135 20600000 rtn 
-
-p_mouse_24g_search_dongle_loop_retry:
-0136 204022cb call g24_ch 
-0137 20200126 branch p_mouse_24g_search_dongle_loop 
+01c6 20402597 call g24_txbuf_clear 
+01c7 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
+01c8 1fe0fe01 increase 1 ,pdata 
+01c9 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
+01ca c1880000 rtnne g24_ch_poll_count 
 
 p_mouse_24g_search_dongle_check:
-0138 704ba300 jam 0 ,mem_mouse_search_dongle_count 
-0139 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
-013a c3800000 rtnbit1 g24_disconn_state 
-013b 79207e00 set1 g24_disconn_state ,pdata 
-013c 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
-013d 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
-013e 67e14ab2 store 2 ,mem_mouse_no_data_timer 
-013f 202003d2 branch p_mouse_sensor_powerdown 
+01cb 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+01cc 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+01cd c3800000 rtnbit1 g24_disconn_state 
+01ce 79207e00 set1 g24_disconn_state ,pdata 
+01cf 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+01d0 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+01d1 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+01d2 2020054b branch p_mouse_sensor_powerdown 
+
+p_mouse_24g_search_dongle_success:
+01d3 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+01d4 203a488c branch mouse_24g_search_dongle_init ,blank 
+01d5 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+01d6 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+01d7 c4000000 rtnbit0 g24_disconn_state 
+01d8 793ffe00 set0 g24_disconn_state ,pdata 
+01d9 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+01da 20404544 call mouse_no_data_timer_init 
+01db 20200360 branch p_mouse_init_sensor_wakeup 
+
+p_mouse_24g_search_dongle_loop_retry:
+01dc 204022cb call g24_ch 
+01dd 202001bc branch p_mouse_24g_search_dongle_loop 
 
 p_g24_transmit_no_interrupt:
-0140 20402631 call g24_txdata_prep 
-0141 243401e0 nbranch p_g24_nodata_transmit ,user 
+01de 20402631 call g24_txdata_prep 
+01df 2434027f nbranch p_g24_nodata_transmit ,user 
 
 p_g24_transmit_start:
-0142 2040014f call p_g24_transmit_process 
-0143 204026ee call power_ctrl_start 
-0144 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-0145 243a014a nbranch p_g24_short_sleep ,blank 
-0146 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
-0147 67e4485c store 8 ,mem_24g_enter_hibernate 
-0148 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
-0149 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
+01e0 204001ee call p_g24_transmit_process 
+01e1 204026ee call power_ctrl_start 
+01e2 2040007d call p_mouse_24g_fast_conn_mode_check 
+01e3 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+01e4 243a01e9 nbranch p_g24_short_sleep ,blank 
+01e5 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
+01e6 67e4485c store 8 ,mem_24g_enter_hibernate 
+01e7 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+01e8 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
 
 p_g24_short_sleep:
-014a 204026bb call g24_lpm_wait 
-014b 24740000 nrtn user 
-014c 20407fdc call clear_wake 
-014d 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-014e 202026b8 branch g24_long_sleep2 
+01e9 204026bb call g24_lpm_wait 
+01ea 24740000 nrtn user 
+01eb 20407fdc call clear_wake 
+01ec 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+01ed 202026b8 branch g24_long_sleep2 
 
 p_g24_transmit_process:
-014f 7048a600 jam 0 ,mem_24g_retry 
+01ee 7048a600 jam 0 ,mem_24g_retry 
 
 p_g24_transmit_loop:
-0150 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
-0151 34730200 until clkn_rt ,meet 
-0152 2040265b call g24_transmit_receive_ack 
-0153 6fe0c82c fetch 1 ,mem_24g_no_ack 
-0154 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
-0155 242c0167 nbranch p_g24_retransmit ,sync 
-0156 24378167 nbranch p_g24_retransmit ,user3 
-0157 20402672 call g24_ackpayload_parse 
-0158 2040015a call p_mouse_wakeup_24g 
-0159 20202651 branch g24_transmit_no_ack 
+01ef 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
+01f0 34730200 until clkn_rt ,meet 
+01f1 2040265b call g24_transmit_receive_ack 
+01f2 6fe0c82c fetch 1 ,mem_24g_no_ack 
+01f3 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
+01f4 242c01f9 nbranch p_g24_retransmit ,sync 
+01f5 243781f9 nbranch p_g24_retransmit ,user3 
+01f6 20402672 call g24_ackpayload_parse 
+01f7 20400234 call p_mouse_wakeup_24g 
+01f8 20202651 branch g24_transmit_no_ack 
 
-p_mouse_wakeup_24g:
-015a 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-015b 245a015e ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
-015c 704be100 jam 0 ,mem_sensor_shutdown_flag 
-015d 20600000 rtn 
-
-p_mouse_wakeup_24g_from_long_sleep:
-015e 204041aa call mouse_init_sensor_wakeup 
-015f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0160 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+p_g24_retransmit:
+01f9 6fe0cac5 fetch 1 ,mem_mouse_need_soft_reset 
+01fa 247a0000 nrtn blank 
+01fb 20400224 call p_mouse_select_device_by_pb_button 
+01fc 20400218 call p_mouse_select_device_by_dpi_button_once 
+01fd 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+01fe 247a0000 nrtn blank 
+01ff 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
+0200 1fe0fe01 increase 1 ,pdata 
+0201 67e148a3 store 2 ,mem_24g_txfail_cnt 
+0202 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0203 c280a679 bbit1 1 ,g24_tx_attempt_fail 
+0204 2040267e call g24_transmit_hop_process 
+0205 20400207 call p_delay_40ms 
+0206 202001ef branch p_g24_transmit_loop 
 
-p_mouse_wheel_set_wakeup:
-0161 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-0162 d8400040 arg gpcfg_pullup ,temp 
-0163 20406093 call gpio_config_function_int 
-0164 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-0165 d8400040 arg gpcfg_pullup ,temp 
-0166 20206093 branch gpio_config_function_int 
+p_delay_40ms:
+0207 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0208 1fe67c00 sub pdata ,0x00 ,null 
+0209 20610000 rtn positive 
+020a df200028 arg 40 ,loopcnt 
+020b 20207d13 branch delay_ms_wait 
+
+p_g24_transmit_hop_process:
+020c 6848c8a6 fetcht 1 ,mem_24g_retry 
+020d 6fe0c8c6 fetch 1 ,mem_24g_fast_hop_count 
+020e 98467c00 isub temp ,null 
+020f 24210211 nbranch p_g24_tx_fast_hop ,positive 
+0210 20202683 branch g24_transmit_hop_process + 5 
+
+p_g24_tx_fast_hop:
+0211 6fe2483c fetch 4 ,mem_24g_addr 
+0212 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
+0213 98467c00 isub temp ,null 
+0214 2022a2cb branch g24_ch ,zero 
+0215 204005ef call p_power_ctrl_txpower_incrs 
+0216 20402724 call power_ctrl_pac_succ_decrs 
+0217 202022cb branch g24_ch 
+
+p_mouse_select_device_by_dpi_button_once:
+0218 d8e0000c arg 12 ,queue 
+0219 20407d74 call timer_check 
+021a 247a0000 nrtn blank 
+021b 20400220 call p_mouse_dpi_check_once 
+021c 2040407c call mouse_dpi_key_check_long_press 
+
+p_mouse_g24_retransmit_100ms_timer_init:
+021d d8e0000c arg 12 ,queue 
+021e 580000a0 setarg 160 
+021f 20207d66 branch timer_init 
+
+p_mouse_dpi_check_once:
+0220 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0221 c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
+0222 202005b0 branch p_mouse_dpi_check 
 
-p_g24_retransmit:
-0167 6fe0cac5 fetch 1 ,mem_mouse_need_soft_reset 
-0168 247a0000 nrtn blank 
-0169 20400174 call p_mouse_select_device_by_pb_button 
-016a 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-016b 247a0000 nrtn blank 
-016c 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
-016d 1fe0fe01 increase 1 ,pdata 
-016e 67e148a3 store 2 ,mem_24g_txfail_cnt 
-016f 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-0170 c280a679 bbit1 1 ,g24_tx_attempt_fail 
-0171 2040267e call g24_transmit_hop_process 
-0172 20400184 call p_delay_40ms 
-0173 20200150 branch p_g24_transmit_loop 
+p_mouse_select_device_by_pb_button_check_once:
+0223 704b9403 jam 0x03 ,mem_mouse_pbkey_press_status 
 
 p_mouse_select_device_by_pb_button:
-0174 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
-0175 c17f8000 rtneq gpio_disable 
-0176 da200000 arg 0 ,rega 
-0177 704b9606 jam mouse_pb_key ,mem_mouse_key_temp 
-0178 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
-0179 2040466a call mouse_pb_button_check 
-017a 67e0cb94 store 1 ,mem_mouse_pbkey_press_status 
-017b 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-017c c07f8181 beq gpio_disable ,p_mouse_3io6key_pb_button_check_end 
-017d 20404168 call mouse_matrix_public_gpio_reset 
+0224 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
+0225 c17f8000 rtneq gpio_disable 
+0226 da200000 arg 0 ,rega 
+0227 704b9606 jam mouse_pb_key ,mem_mouse_key_temp 
+0228 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+0229 2040466a call mouse_pb_button_check 
+022a 67e0cb94 store 1 ,mem_mouse_pbkey_press_status 
+022b 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+022c c07f8231 beq gpio_disable ,p_mouse_3io6key_pb_button_check_end 
+022d 20404168 call mouse_matrix_public_gpio_reset 
 
 p_mouse_select_device_by_pb_button_exit:
-017e 1a227e00 copy rega ,pdata 
-017f c283468d bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
-0180 20204680 branch mouse_select_device_button_up 
+022e 1a227e00 copy rega ,pdata 
+022f c283468d bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+0230 20204680 branch mouse_select_device_button_up 
 
 p_mouse_3io6key_pb_button_check_end:
-0181 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
-0182 20403f56 call mouse_gpio_config_input_pu 
-0183 2020017e branch p_mouse_select_device_by_pb_button_exit 
+0231 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+0232 20403f56 call mouse_gpio_config_input_pu 
+0233 2020022e branch p_mouse_select_device_by_pb_button_exit 
 
-p_delay_40ms:
-0184 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-0185 1fe67c00 sub pdata ,0x00 ,null 
-0186 20610000 rtn positive 
-0187 df200028 arg 40 ,loopcnt 
-0188 20207d13 branch delay_ms_wait 
+p_mouse_wakeup_24g:
+0234 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0235 245a0238 ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
+0236 704be100 jam 0 ,mem_sensor_shutdown_flag 
+0237 20600000 rtn 
+
+p_mouse_wakeup_24g_from_long_sleep:
+0238 20400360 call p_mouse_init_sensor_wakeup 
+0239 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+023a c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+p_mouse_wheel_set_wakeup:
+023b 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+023c 20403f56 call mouse_gpio_config_input_pu 
+023d 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+023e 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_app_enter_hibernate:
-0189 58000006 setarg pan_reg_config 
-018a 20405b0d call twspi_read 
-018b c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
-018c 204003cb call p_mouse_sensor_reset 
-018d 204003d2 call p_mouse_sensor_powerdown 
-018e 20203e23 branch mouse_app_enter_hibernate + 3 
+023f 58000006 setarg pan_reg_config 
+0240 20405b0d call twspi_read 
+0241 c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
+0242 20400546 call p_mouse_sensor_reset 
+0243 2040054b call p_mouse_sensor_powerdown 
+0244 20203e23 branch mouse_app_enter_hibernate + 3 
 
 p_mouse_setgpio_hibernate:
-018f 204042e9 call mouse_set_sdio_high 
-0190 20407fdc call clear_wake 
-0191 204002f4 call p_mouse_logo_led_off 
-0192 20404015 call mouse_before_hibernate_wheel_gpio_set 
-0193 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0194 20406069 call gpio_out_active 
-0195 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0196 20406042 call gpio_clr_wake 
-0197 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-0198 d840003f arg gpcfg_output_high ,temp 
-0199 20406093 call gpio_config_function_int 
-019a d8400003 arg 3 ,temp 
-019b 20403f56 call mouse_gpio_config_input_pu 
-019c 20403e40 call mouse_lpm_before_common 
-019d 20406082 call gpio_pd_idle 
-019e d8400013 arg 19 ,temp 
-019f 20403f56 call mouse_gpio_config_input_pu 
-01a0 204001a4 call p_mouse_device_switch_gpio_high_impedance 
-01a1 204001a8 call p_mouse_gpio_set_high_impedance 
-01a2 204001b5 call p_mouse_adc_gpio_set_before_hibernate 
-01a3 202001bc branch p_mouse_wheel_gpio_set_before_hibernate 
+0245 204042e9 call mouse_set_sdio_high 
+0246 20407fdc call clear_wake 
+0247 2040044e call p_mouse_logo_led_off 
+0248 20404015 call mouse_before_hibernate_wheel_gpio_set 
+0249 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+024a 20406069 call gpio_out_active 
+024b 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+024c 20406042 call gpio_clr_wake 
+024d 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+024e 20400587 call p_mouse_gpio_config_output_high 
+024f d8400003 arg 3 ,temp 
+0250 20403f56 call mouse_gpio_config_input_pu 
+0251 20400277 call p_mouse_lpm_before_common 
+0252 20406082 call gpio_pd_idle 
+0253 20400434 call p_mouse_device_multi_led_all_off 
+0254 d8400013 arg 19 ,temp 
+0255 20403f56 call mouse_gpio_config_input_pu 
+0256 20400259 call p_mouse_device_switch_gpio_high_impedance 
+0257 2040025d call p_mouse_adc_gpio_set_before_hibernate 
+0258 2020026d branch p_mouse_wheel_gpio_set_before_hibernate 
 
 p_mouse_device_switch_gpio_high_impedance:
-01a4 6fe0c91e fetch 1 ,mem_device_switch_gpio 
-01a5 c17f8000 rtneq gpio_disable 
-01a6 6848c91e fetcht 1 ,mem_device_switch_gpio 
-01a7 2020607f branch gpio_set_high_impedance 
-
-p_mouse_gpio_set_high_impedance:
-01a8 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
-01a9 67e1895c store 3 ,mem_pdatatemp 
-01aa df200014 arg 20 ,loopcnt 
-01ab d8400000 arg 0 ,temp 
-
-p_mouse_gpio_set_high_impedance_bit_loop:
-01ac 6fe1895c fetch 3 ,mem_pdatatemp 
-01ad 2feffe00 isolate1 0 ,pdata 
-01ae 2040e07f call gpio_set_high_impedance ,true 
-01af 6fe1895c fetch 3 ,mem_pdatatemp 
-01b0 1fe37e00 rshift pdata ,pdata 
-01b1 67e1895c store 3 ,mem_pdatatemp 
-01b2 18408401 increase 1 ,temp 
-01b3 c20001ac loop p_mouse_gpio_set_high_impedance_bit_loop 
-01b4 20600000 rtn 
+0259 6fe0c91e fetch 1 ,mem_device_switch_gpio 
+025a c17f8000 rtneq gpio_disable 
+025b 6848c91e fetcht 1 ,mem_device_switch_gpio 
+025c 2020607f branch gpio_set_high_impedance 
 
 p_mouse_adc_gpio_set_before_hibernate:
-01b5 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01b6 c40a0000 rtnbit0 mouse_enable_adc 
-01b7 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
-01b8 c1810000 rtnne adc_config_gpio 
-01b9 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
-01ba d84000c0 arg gpcfg_no_ie ,temp 
-01bb 20206093 branch gpio_config_function_int 
+025d 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+025e c2800261 bbit1 mouse_enable_1io2led ,p_mouse_adc_gpio_set_before_hibernate_next 
+025f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0260 c40a0000 rtnbit0 mouse_enable_adc 
+
+p_mouse_adc_gpio_set_before_hibernate_next:
+0261 20400265 call p_mouse_adc_gpio_set 
+0262 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
+0263 d84000c0 arg gpcfg_no_ie ,temp 
+0264 20206093 branch gpio_config_function_int 
+
+p_mouse_adc_gpio_set:
+0265 6848c4a1 fetcht 1 ,mem_adc_channel 
+0266 18467c03 sub temp ,3 ,null 
+0267 2021026b branch p_mouse_adc_gpio_4_7_set ,positive 
+0268 18408405 increase 5 ,temp 
+
+p_mouse_adc_gpio_store:
+0269 6048c8fc storet 1 ,mem_adc_channel_gpio 
+026a 20600000 rtn 
+
+p_mouse_adc_gpio_4_7_set:
+026b 18408404 increase 4 ,temp 
+026c 20200269 branch p_mouse_adc_gpio_store 
 
 p_mouse_wheel_gpio_set_before_hibernate:
-01bc 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01bd c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+026d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+026e c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
 p_mouse_wheel_clr_wakeup:
-01be 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-01bf 20406042 call gpio_clr_wake 
-01c0 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-01c1 20406042 call gpio_clr_wake 
-01c2 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-01c3 d8400080 arg gpcfg_pulldown ,temp 
-01c4 20406093 call gpio_config_function_int 
-01c5 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-01c6 d8400080 arg gpcfg_pulldown ,temp 
-01c7 20206093 branch gpio_config_function_int 
+026f 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+0270 20406042 call gpio_clr_wake 
+0271 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+0272 20406042 call gpio_clr_wake 
+0273 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+0274 20403f54 call mouse_gpio_config_input_pd 
+0275 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+0276 20203f54 branch mouse_gpio_config_input_pd 
 
 p_mouse_lpm_before_common:
-01c8 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-01c9 20406050 call gpio_config_input 
-01ca 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-01cb 20406050 call gpio_config_input 
-01cc 20403f88 call mouse_wheel_check 
-01cd 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-01ce d840003f arg gpcfg_output_high ,temp 
-01cf 20406093 call gpio_config_function_int 
-01d0 6fe0cc12 fetch 1 ,mem_mouse_ice_sdio_for_sensor_angle 
-01d1 245a01d3 ncall p_mouse_lpm_before_disable_ice_sdio_gpio_wake ,blank 
-01d2 20203e44 branch mouse_lpm_before_common_next 
-
-p_mouse_lpm_before_disable_ice_sdio_gpio_wake:
-01d3 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
-01d4 20406042 call gpio_clr_wake 
-01d5 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
-01d6 20206042 branch gpio_clr_wake 
-
-p_mouse_24g_hibernate_set:
-01d7 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
-01d8 20402652 call g24_transmit_next_packet 
-01d9 5fffffff setarg -1 
-01da 67e2485c store 4 ,mem_24g_enter_hibernate 
-01db 58000000 setarg 0 
-01dc 67e3c8d0 store 7 ,mem_mouse_key 
-01dd 704be101 jam 1 ,mem_sensor_shutdown_flag 
-01de 204003d2 call p_mouse_sensor_powerdown 
-01df 202001e5 branch p_g24_long_sleep 
+0277 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+0278 20406050 call gpio_config_input 
+0279 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+027a 20406050 call gpio_config_input 
+027b 20403f88 call mouse_wheel_check 
+027c 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+027d 20400587 call p_mouse_gpio_config_output_high 
+027e 20203e44 branch mouse_lpm_before_common + 4 
 
 p_g24_nodata_transmit:
-01e0 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-01e1 205a01eb call p_g24_send_abort_packet ,blank 
-01e2 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-01e3 c1008000 rtneq g24_tx_timer_int_enable 
-01e4 2040269f call g24_search_receiver 
+027f 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0280 205a028c call p_g24_send_abort_packet ,blank 
+0281 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+0282 c1008000 rtneq g24_tx_timer_int_enable 
+0283 2040269f call g24_search_receiver 
 
 p_g24_long_sleep:
-01e5 204026bb call g24_lpm_wait 
-01e6 24740000 nrtn user 
-01e7 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-01e8 245a3e33 ncall mouse_setgpio_hibernate ,blank 
-01e9 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
-01ea 202026b8 branch g24_long_sleep2 
+0284 2040050c call p_g24_lpm_wait 
+0285 24740000 nrtn user 
+0286 204026c4 call g24_setgpio_lpm_before 
+0287 704dc501 jam 1 ,mem_long_sleep_flag 
+0288 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0289 245a0245 ncall p_mouse_setgpio_hibernate ,blank 
+028a 6fe4485c fetch 8 ,mem_24g_enter_hibernate 
+028b 202026b8 branch g24_long_sleep2 
 
 p_g24_send_abort_packet:
-01eb 70483601 jam type_ms ,mem_24g_data_type 
-01ec 7048a701 jam 1 ,mem_24g_abort_pac 
-01ed 20402642 call g24_transmit_rf_ctrl_clear 
-01ee 67e0c7c6 store 1 ,mem_24g_txbuf 
-01ef 58000000 setarg 0 
-01f0 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
-01f1 6fe248a9 fetch 4 ,mem_24g_device_addr 
-01f2 67e247ce store 4 ,mem_24g_txbuf + 8 
-01f3 7048350c jam 12 ,mem_24g_datalen 
-01f4 6fe0c836 fetch 1 ,mem_24g_data_type 
-01f5 79207e03 set1 bit_abort ,pdata 
-01f6 67e0c836 store 1 ,mem_24g_data_type 
-01f7 20402291 call g24_transmit_prep 
-01f8 20200142 branch p_g24_transmit_start 
+028c 70483601 jam type_ms ,mem_24g_data_type 
+028d 7048a701 jam 1 ,mem_24g_abort_pac 
+028e 20402642 call g24_transmit_rf_ctrl_clear 
+028f 67e0c7c6 store 1 ,mem_24g_txbuf 
+0290 58000000 setarg 0 
+0291 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
+0292 6fe248a9 fetch 4 ,mem_24g_device_addr 
+0293 67e247ce store 4 ,mem_24g_txbuf + 8 
+0294 7048350c jam 12 ,mem_24g_datalen 
+0295 6fe0c836 fetch 1 ,mem_24g_data_type 
+0296 79207e03 set1 bit_abort ,pdata 
+0297 67e0c836 store 1 ,mem_24g_data_type 
+0298 20402291 call g24_transmit_prep 
+0299 202001e0 branch p_g24_transmit_start 
 
 p_mouse_priority_bb_event:
-01f9 1a627e00 copy regc ,pdata 
-01fa c0008205 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-01fb c0010207 beq bt_evt_bb_disconnected ,p_mouse_bb_disconnected 
-01fc c01e0231 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-01fd c01c822f beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-01fe c01d023b beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-01ff c0020214 beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
-0200 c0098214 beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_failed 
-0201 c019021b beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-0202 c0220222 beq bt_evt_le_parse_conn_param_accepted ,p_mouse_le_parse_conn_param_accepted 
-0203 c00a8209 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-0204 20204336 branch mouse_priority_bb_event + 2 
+029a 1a627e00 copy regc ,pdata 
+029b c00082af beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
+029c c01e02cb beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+029d c01c82c7 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+029e c01d02db beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+029f c01902b7 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+02a0 c00a82b1 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+02a1 c00a02ad beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+02a2 c02002be beq bt_evt_le_parse_conn_papa_update_rsp ,p_mouse_le_conn_param_update_rsp_recieved 
+02a3 c00902aa beq bt_evt_hid_handshake ,p_mouse_bt_hid_handshake 
+02a4 c00302a6 beq bt_evt_hid_connected ,p_app_hid_connected 
+02a5 20204336 branch mouse_priority_bb_event + 2 
+
+p_app_hid_connected:
+02a6 20404544 call mouse_no_data_timer_init 
+02a7 204042ca call mouse_init_sensor_reset 
+02a8 204003c7 call p_mouse_device_poweron_led_config 
+02a9 20203244 branch app_hid_connected 
+
+p_mouse_bt_hid_handshake:
+02aa 70445401 jam app_handshake_done ,mem_app_handshake_flag 
+02ab 20403223 call app_lpm_mult_enable 
+02ac 20204427 branch mouse_bt_hid_handshake + 3 
+
+p_mouse_le_bb_event_connected:
+02ad 204003c7 call p_mouse_device_poweron_led_config 
+02ae 20204350 branch mouse_le_bb_event_connected 
 
 p_mouse_bb_event_connected:
-0205 20404544 call mouse_no_data_timer_init 
-0206 202043fa branch mouse_bb_event_connected 
-
-p_mouse_bb_disconnected:
-0207 2040423c call mouse_sensor_powerdown 
-0208 202043fe branch mouse_bb_disconnected 
+02af 704aae00 jam 0 ,mem_mouse_long_mult_flag 
+02b0 202043fc branch mouse_bb_event_connected + 2 
 
 p_mouse_le_bb_disconnected:
-0209 2040423c call mouse_sensor_powerdown 
-020a 58000000 setarg 0 
-020b 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-020c 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
-020d 58000006 setarg le_interval_7_5ms 
-020e 67e14372 store 2 ,mem_le_interval_min 
-020f 67e14374 store 2 ,mem_le_interval_min + 2 
-0210 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0211 c28dc366 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next + 2 
-0212 58000007 setarg le_interval_8_75ms 
-0213 20204364 branch mouse_le_bb_disconnected_next 
-
-p_mouse_bb_event_reconn_failed:
-0214 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-0215 c07fc2f8 beq 0xff ,mouse_buletooth_fast_conn_end 
-0216 6fe1478c fetch 2 ,mem_ui_state_map 
-0217 c3860000 rtnbit1 ui_state_btn_down 
-0218 c3830000 rtnbit1 ui_state_bt_discovery 
-0219 c3858000 rtnbit1 ui_state_ble_adv 
-021a 20203e20 branch mouse_app_enter_hibernate 
+02b1 58000000 setarg 0 
+02b2 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+02b3 67e0cc7a store 1 ,mem_mouse_le_send_conn_param_update 
+02b4 67e0cc7b store 1 ,mem_mouse_le_send_conn_param_update_timer 
+02b5 67e0cac6 store 1 ,mem_mouse_le_bb_connected_flag 
+02b6 20204366 branch mouse_le_bb_disconnected + 7 
 
 p_mouse_le_ll_start_encryt:
-021b 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-021c c000821f beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-021d 704b7614 jam 20 ,mem_le_start_encrypt_timer 
-021e 20204373 branch mouse_le_ll_enable_start_enc_flag 
+02b7 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+02b8 c00082bb beq 1 ,p_mouse_le_ll_reconn_start_encryt 
+02b9 704b7614 jam 20 ,mem_le_start_encrypt_timer 
+02ba 20204373 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_ll_reconn_start_encryt:
-021f 2040436c call mouse_updata_le_param 
-0220 704b7605 jam 5 ,mem_le_start_encrypt_timer 
-0221 20204373 branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_le_parse_conn_param_accepted:
-0222 6fe082c1 fetch 1 ,mem_le_new_conninterval 
-0223 1fe67c0c sub pdata ,le_interval_15ms ,null 
-0224 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
-0225 67e14372 store 2 ,mem_le_interval_min 
-0226 67e14374 store 2 ,mem_le_interval_min + 2 
-0227 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-0228 203a439a branch mouse_le_lpm_mult_reinit ,blank 
-0229 6848cb8a fetcht 1 ,mem_lpm_mult_init 
-022a 98467c00 isub temp ,null 
-022b 2021439a branch mouse_le_lpm_mult_reinit ,positive 
-022c 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-022d 67e0cb8a store 1 ,mem_lpm_mult_init 
-022e 20204386 branch mouse_le_conn_param_lpm_enable 
+02bb 2040436c call mouse_updata_le_param 
+02bc 704b760a jam 10 ,mem_le_start_encrypt_timer 
+02bd 20204373 branch mouse_le_ll_enable_start_enc_flag 
+
+p_mouse_le_conn_param_update_rsp_recieved:
+02be 6fe0cc7a fetch 1 ,mem_mouse_le_send_conn_param_update 
+02bf 247a0000 nrtn blank 
+02c0 704c7a01 jam 1 ,mem_mouse_le_send_conn_param_update 
+02c1 704c7b1e jam 30 ,mem_mouse_le_send_conn_param_update_timer 
+02c2 20600000 rtn 
+
+p_mouse_agc_disable_nomal_power:
+02c3 20400082 call p_mouse_soft_agc_disable 
+
+p_mouse_fetch_normal_tx_power:
+02c4 6fe0cc90 fetch 1 ,mem_normal_tx_power 
+02c5 67e0c1e8 store 1 ,mem_tx_power 
+02c6 20600000 rtn 
 
 p_mouse_24g_pairing_complete:
-022f 20404544 call mouse_no_data_timer_init 
-0230 20204857 branch mouse_24g_pairing_complete 
+02c7 204002c3 call p_mouse_agc_disable_nomal_power 
+02c8 20404544 call mouse_no_data_timer_init 
+02c9 204003c7 call p_mouse_device_poweron_led_config 
+02ca 20204857 branch mouse_24g_pairing_complete 
 
 p_mouse_24g_attempt_success:
-0231 6fe2483c fetch 4 ,mem_24g_addr 
-0232 67e24891 store 4 ,mem_24g_receiver_addr 
-0233 67e24993 store 4 ,mem_mouse_24g_addr 
-0234 2040257e call g24_ch_syncword_crc8_init 
-0235 204048c6 call mouse_device_poweron_timer_init 
-0236 20404544 call mouse_no_data_timer_init 
-0237 704aae00 jam 0 ,mem_mouse_long_mult_flag 
-0238 7048a100 jam 0 ,mem_24g_conn_sm 
-0239 70488b00 jam 0 ,mem_24g_reconn_type 
-023a 202042ca branch mouse_init_sensor_reset 
+02cb 6fe2483c fetch 4 ,mem_24g_addr 
+02cc 67e24891 store 4 ,mem_24g_receiver_addr 
+02cd 67e24993 store 4 ,mem_mouse_24g_addr 
+02ce 2040257e call g24_ch_syncword_crc8_init 
+02cf 204003c7 call p_mouse_device_poweron_led_config 
+02d0 20404544 call mouse_no_data_timer_init 
+02d1 204042ca call mouse_init_sensor_reset 
+02d2 704aae00 jam 0 ,mem_mouse_long_mult_flag 
+02d3 7048a100 jam 0 ,mem_24g_conn_sm 
+02d4 70488b00 jam 0 ,mem_24g_reconn_type 
+02d5 6fe24891 fetch 4 ,mem_24g_receiver_addr 
+02d6 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
+02d7 98467c00 isub temp ,null 
+02d8 20628000 rtn zero 
+02d9 204002c3 call p_mouse_agc_disable_nomal_power 
+02da 20204822 branch mouse_24g_first_store_reconn_info 
 
 p_mouse_24g_attempt_fail:
-023b 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
-023c 243a01d7 nbranch p_mouse_24g_hibernate_set ,blank 
-023d 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-023e c0010242 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
-023f c002024d beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
-0240 c001c849 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
-0241 20200253 branch p_mouse_24g_attempt_fail_enter_hibernate 
+02db 204002c3 call p_mouse_agc_disable_nomal_power 
+02dc 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
+02dd 243a02ed nbranch p_mouse_24g_hibernate_set ,blank 
+02de 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+02df c00102e1 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
+02e0 20204837 branch mouse_24g_attempt_fail + 4 
 
 p_mouse_24g_fast_conn_attempt_fail:
-0242 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0243 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
-0244 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
-0245 c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
-0246 6fe24993 fetch 4 ,mem_mouse_24g_addr 
-0247 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
-0248 98467c00 isub temp ,null 
-0249 2022824b branch p_mouse_24g_start_pair_mode ,zero 
-024a 20204806 branch mouse_24g_reconn_dongle_start 
+02e1 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02e2 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+02e3 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+02e4 c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+02e5 6fe24993 fetch 4 ,mem_mouse_24g_addr 
+02e6 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
+02e7 98467c00 isub temp ,null 
+02e8 202282ea branch p_mouse_24g_start_pair_mode ,zero 
+02e9 20204806 branch mouse_24g_reconn_dongle_start 
 
 p_mouse_24g_start_pair_mode:
-024b 70488b00 jam 0 ,mem_24g_reconn_type 
-024c 20204827 branch mouse_24g_start_pair_mode 
+02ea 70488b00 jam 0 ,mem_24g_reconn_type 
+02eb 204003cf call p_mouse_device_pair_led_config 
+02ec 20204827 branch mouse_24g_start_pair_mode 
 
-p_mouse_24g_auto_pair_attempt_fail:
-024d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-024e c317c839 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
-024f 6fe0cbb4 fetch 1 ,mem_device_number 
-0250 c000c839 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
-0251 20400321 call p_mouse_bt_reconn_setting_led_gpio 
-0252 2020481a branch mouse_24g_first_bluetooth_reconnect 
-
-p_mouse_24g_attempt_fail_enter_hibernate:
-0253 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0254 c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
-0255 202001d7 branch p_mouse_24g_hibernate_set 
+p_mouse_24g_hibernate_set:
+
+p_mouse_24g_hibernate_set_next:
+02ed 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
+02ee 20402652 call g24_transmit_next_packet 
+02ef 5fffffff setarg -1 
+02f0 67e4485c store 8 ,mem_24g_enter_hibernate 
+02f1 58000000 setarg 0 
+02f2 67e3c8d0 store 7 ,mem_mouse_key 
+02f3 704be101 jam 1 ,mem_sensor_shutdown_flag 
+02f4 2040054b call p_mouse_sensor_powerdown 
+02f5 20200284 branch p_g24_long_sleep 
 
 p_g24_pair_dispatch:
-0256 70488b00 jam default_24g_device ,mem_24g_reconn_type 
-0257 6fe14beb fetch 2 ,mem_24g_pair_count 
-0258 1fe0fe01 increase 1 ,pdata 
-0259 67e14beb store 2 ,mem_24g_pair_count 
-025a 6fe0cbeb fetch 1 ,mem_24g_pair_count 
-025b 1fe17eff and pdata ,0xff ,pdata 
-025c c0002341 beq 0 ,g24_pair_dispatch + 1 
-025d 20600000 rtn 
+02f6 70488b00 jam default_24g_device ,mem_24g_reconn_type 
+02f7 6fe14beb fetch 2 ,mem_24g_pair_count 
+02f8 1fe0fe01 increase 1 ,pdata 
+02f9 67e14beb store 2 ,mem_24g_pair_count 
+02fa 6fe0cbeb fetch 1 ,mem_24g_pair_count 
+02fb 1fe17eff and pdata ,0xff ,pdata 
+02fc c0002341 beq 0 ,g24_pair_dispatch + 1 
+02fd 20600000 rtn 
 
 p_g24_reconn_dispatch:
-025e 6fe14889 fetch 2 ,mem_24g_reconn_count 
-025f d84001f8 arg 0x01f8 ,temp 
-0260 98417e00 iand temp ,pdata 
-0261 203a0266 branch p_g24_reconn_dispatch_next ,blank 
-0262 6fe14889 fetch 2 ,mem_24g_reconn_count 
-0263 1fe0fe01 increase 1 ,pdata 
-0264 67e14889 store 2 ,mem_24g_reconn_count 
-0265 20600000 rtn 
+02fe 6fe14889 fetch 2 ,mem_24g_reconn_count 
+02ff d84001f8 arg 0x01f8 ,temp 
+0300 98417e00 iand temp ,pdata 
+0301 203a0306 branch p_g24_reconn_dispatch_next ,blank 
+0302 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0303 1fe0fe01 increase 1 ,pdata 
+0304 67e14889 store 2 ,mem_24g_reconn_count 
+0305 20600000 rtn 
 
 p_g24_reconn_dispatch_next:
-0266 2040259a call g24_reconn_data_prep 
-0267 2040265b call g24_transmit_receive_ack 
-0268 242c0281 nbranch p_g24_reconn_device_fail ,sync 
-0269 24378281 nbranch p_g24_reconn_device_fail ,user3 
-026a 20402672 call g24_ackpayload_parse 
-026b 6fe24877 fetch 4 ,mem_24g_pair_addr 
-026c 684a483c fetcht 4 ,mem_24g_addr 
-026d 98467c00 isub temp ,null 
-026e 2022a32e branch g24_pair_start ,zero 
-026f 6fe248a9 fetch 4 ,mem_24g_device_addr 
-0270 684a483c fetcht 4 ,mem_24g_addr 
-0271 98467c00 isub temp ,null 
-0272 2042827d call p_g24_store_receiver_addr ,zero 
-0273 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
-0274 793ffe02 set0 state_24g_reconn ,pdata 
-0275 67e0c8a1 store 1 ,mem_24g_conn_sm 
-0276 58000000 setarg 0 
-0277 67e14883 store 2 ,mem_24g_pair_timeout 
-0278 67e14889 store 2 ,mem_24g_reconn_count 
-0279 67e14887 store 2 ,mem_24g_reconn_timeout 
-027a 70095b3c jam bt_evt_24g_attempt_success ,mem_fifo_temp 
-027b 20407871 call ui_ipc_send_event 
-027c 20202597 branch g24_txbuf_clear 
+0306 2040259a call g24_reconn_data_prep 
+0307 2040265b call g24_transmit_receive_ack 
+0308 242c031f nbranch p_g24_reconn_device_fail ,sync 
+0309 2437831f nbranch p_g24_reconn_device_fail ,user3 
+030a 20402672 call g24_ackpayload_parse 
+030b 6fe24877 fetch 4 ,mem_24g_pair_addr 
+030c 684a483c fetcht 4 ,mem_24g_addr 
+030d 98467c00 isub temp ,null 
+030e 2022a32e branch g24_pair_start ,zero 
+030f 6fe248a9 fetch 4 ,mem_24g_device_addr 
+0310 684a483c fetcht 4 ,mem_24g_addr 
+0311 98467c00 isub temp ,null 
+0312 2042831b call p_g24_store_receiver_addr ,zero 
+0313 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+0314 793ffe02 set0 state_24g_reconn ,pdata 
+0315 67e0c8a1 store 1 ,mem_24g_conn_sm 
+0316 58000000 setarg 0 
+0317 67e14883 store 2 ,mem_24g_pair_timeout 
+0318 67e14889 store 2 ,mem_24g_reconn_count 
+0319 67e14887 store 2 ,mem_24g_reconn_timeout 
+031a 20202595 branch g24_reconn_attempt_success 
 
 p_g24_store_receiver_addr:
-027d 6fe2480c fetch 4 ,mem_24g_rxpayload + 2 
-027e 207a0000 rtn blank 
-027f 67e24891 store 4 ,mem_24g_receiver_addr 
-0280 2020257e branch g24_ch_syncword_crc8_init 
+031b 6fe2480c fetch 4 ,mem_24g_rxpayload + 2 
+031c 207a0000 rtn blank 
+031d 67e24891 store 4 ,mem_24g_receiver_addr 
+031e 2020257e branch g24_ch_syncword_crc8_init 
 
 p_g24_reconn_device_fail:
-0281 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
-0282 203a22cb branch g24_ch ,blank 
-0283 6fe14889 fetch 2 ,mem_24g_reconn_count 
-0284 1fe0fe01 increase 1 ,pdata 
-0285 67e14889 store 2 ,mem_24g_reconn_count 
-0286 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
-0287 2feffe01 isolate1 1 ,pdata 
-0288 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-0289 c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
-028a c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
-028b c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
-028c c002028e beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
-028d 2020256e branch g24_reconn_receiver_addr 
+031f 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
+0320 203a22cb branch g24_ch ,blank 
+0321 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0322 1fe0fe01 increase 1 ,pdata 
+0323 67e14889 store 2 ,mem_24g_reconn_count 
+0324 2feffe09 isolate1 9 ,pdata 
+0325 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+0326 c0020329 beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
+0327 c001032b beq fast_conn_and_3_0_addr ,p_g24_reconn_fast_conn_and_3_0 
+0328 202025a8 branch g24_reconn_device_fail + 7 
 
 p_g24_reconn_pair_and_3_0:
-028e 2020a575 branch g24_reconn_device_3_0_addr ,true 
-028f 20202339 branch g24_pair_init_param 
+0329 2020a575 branch g24_reconn_device_3_0_addr ,true 
+032a 20202339 branch g24_pair_init_param 
+
+p_g24_reconn_fast_conn_and_3_0:
+032b 2020a575 branch g24_reconn_device_3_0_addr ,true 
+
+p_mouse_fast_conn_tx_power_set:
+032c 7041e891 jam tx_power_f17db ,mem_tx_power 
+032d 204000a6 call p_set_tx_power_f17db 
+032e 20202568 branch g24_reconn_fast_conn + 2 
 
 p_g24_dispatch:
-0290 c61a0000 rtnmark1 mark_adc_enable 
-0291 c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+032f c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
 
 p_g24_transmit_dispatch:
-0292 c6930000 rtnmark0 mark_24g 
-0293 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
-0294 c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
-0295 c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
-0296 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0297 c0008299 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
-0298 20202621 branch g24_transmit_no_interrupt 
-
-p_g24_transmit_by_interrupt:
-0299 204022ea call g24_timer_check 
-029a 24340292 nbranch p_g24_transmit_dispatch ,user 
-029b 204026db call g24_interval_calibrate 
-029c 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-029d 1fe0fe01 increase 1 ,pdata 
-029e 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-029f 20202621 branch g24_transmit_no_interrupt 
+0330 c6930000 rtnmark0 mark_24g 
+0331 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+0332 2020261d branch g24_transmit_dispatch + 2 
 
 p_mouse_start_work:
-02a0 6fe08989 fetch 1 ,mem_wakup_from_power_flag 
-02a1 c30102a4 bbit0 bit_power_on ,p_mouse_start_24g_reconn 
-02a2 6fe0c938 fetch 1 ,mem_device_flag 
-02a3 c000c81c beq mode_bt_device1 ,mouse_check_bt_reconn_target 
+0333 6fe08989 fetch 1 ,mem_wakup_from_power_flag 
+0334 c3010337 bbit0 bit_power_on ,p_mouse_start_24g_reconn 
+0335 6fe0c938 fetch 1 ,mem_device_flag 
+0336 c000c81c beq mode_bt_device1 ,mouse_check_bt_reconn_target 
 
 p_mouse_start_24g_reconn:
-02a4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02a5 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-02a6 6fe0c938 fetch 1 ,mem_device_flag 
-02a7 c00002b4 beq mode_24g_device ,p_mouse_24g_start_mode 
-02a8 20203d57 branch mouse_start_work + 5 
-
-p_mouse_start_reconnect_device:
-02a9 da204939 arg mem_device1_type ,rega 
-02aa 6fe0c938 fetch 1 ,mem_device_flag 
-02ab 1fe0ffff increase -1 ,pdata 
-02ac 1feffe1d mul32 pdata ,29 ,pdata 
-02ad 9a20a200 iadd rega ,rega 
-02ae efe08011 ifetch 1 ,rega 
-02af 67e0c482 store 1 ,mem_xrecord_mode 
-
-p_mouse_start_reconnect:
-02b0 6fe0c482 fetch 1 ,mem_xrecord_mode 
-02b1 c019bd6f beq rec_3_mode ,mouse3_0_check_reconn_target 
-02b2 c01a3d7b beq rec_4_mode ,mouse4_0_check_reconn_target 
-02b3 202042eb branch mouse_buletooth_fast_conn_init 
+0337 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0338 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0339 6fe0c938 fetch 1 ,mem_device_flag 
+033a c000033c beq mode_24g_device ,p_mouse_24g_start_mode 
+033b 20203d57 branch mouse_start_work + 5 
 
 p_mouse_24g_start_mode:
-02b4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02b5 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-02b6 20403d65 call mouse_wakeup_from_power_check 
-02b7 20344806 branch mouse_24g_reconn_dongle_start ,user 
-02b8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02b9 c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
-02ba c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
-02bb 20404110 call mouse_key_check_once 
-02bc 1a217e07 and rega ,0x07 ,pdata 
-02bd 202047ff branch mouse_24g_start_mode + 9 
+033c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+033d c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+033e 204003cf call p_mouse_device_pair_led_config 
+033f 20403d65 call mouse_wakeup_from_power_check 
+0340 20344806 branch mouse_24g_reconn_dongle_start ,user 
+0341 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0342 c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+0343 c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0344 20404110 call mouse_key_check_once 
+0345 1a217e07 and rega ,0x07 ,pdata 
+0346 202047ff branch mouse_24g_start_mode + 9 
 
 p_mouse_seting_dpi:
-02be 2040408f call mouse_setting_dpi_4_level 
-02bf 204002c1 call p_mouse_dpi_led_blink_delay 
-02c0 20204098 branch mouse_seting_sensor_type 
+0347 2040408f call mouse_setting_dpi_4_level 
+0348 20400377 call p_mouse_dpi_led_blink_delay 
+
+p_mouse_seting_sensor_type:
+0349 6fe0c927 fetch 1 ,mem_config_sensor_type 
+034a c006034c beq s201x ,p_mouse_seting_s201_dpi 
+034b 20204098 branch mouse_seting_sensor_type 
+
+p_mouse_seting_s201_dpi:
+034c 6fe0c992 fetch 1 ,mem_mouse_dpi 
+034d c0000350 beq mouse_dpi_level1 ,p_mouse_set_s201_dpi_0 
+034e c0008352 beq mouse_dpi_level2 ,p_mouse_set_s201_dpi_2 
+034f c0010354 beq mouse_dpi_level3 ,p_mouse_set_s201_dpi_3 
+
+p_mouse_set_s201_dpi_0:
+0350 6fe0cc91 fetch 1 ,mem_sensor_s201_dpi_0 
+0351 20200355 branch p_mouse_dpi_s201_store 
+
+p_mouse_set_s201_dpi_2:
+0352 6fe0cc93 fetch 1 ,mem_sensor_s201_dpi_2 
+0353 20200355 branch p_mouse_dpi_s201_store 
+
+p_mouse_set_s201_dpi_3:
+0354 6fe0cc94 fetch 1 ,mem_sensor_s201_dpi_3 
+
+p_mouse_dpi_s201_store:
+0355 1fe22200 copy pdata ,rega 
+0356 5800c309 setarg 0xc309 
+0357 20405b0c call twspi_write 
+0358 1a227e00 copy rega ,pdata 
+0359 1fed7e00 lshift8 pdata ,pdata 
+035a 1fe0fe23 add pdata ,0x23 ,pdata 
+035b 20405b0c call twspi_write 
+035c 58000009 setarg 0x0009 
+035d 20205b0c branch twspi_write 
+
+p_mouse_init_sunt:
+035e 20403f65 call mouse_sensor_spi_init 
+035f 20758000 rtn wake 
+
+p_mouse_init_sensor_wakeup:
+0360 20404236 call mouse_sensor_poweron 
+
+p_mouse_init_sensor:
+0361 204041b5 call mouse_read_sensor_id 
+0362 c0180368 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+0363 c018c217 beq p3065_id1 ,mouse_init_p3065 
+0364 c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0365 204041b2 call mouse_twspi_reset 
+0366 20001af4 nop 6900 
+0367 20200361 branch p_mouse_init_sensor 
+
+p_mouse_init_p32xx_id2_judge:
+0368 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+0369 c0688371 beq p3205_tj3t_id2 ,p_mouse_3205_3t_init_param 
+036a c02d036c beq p_mx8650 ,p_mouse_mx8650_init_param 
+036b 202041be branch mouse_init_p32xx_id2_judge + 2 
+
+p_mouse_mx8650_init_param:
+036c 70492705 jam mx8650 ,mem_config_sensor_type 
+036d 20404232 call mouse_sensor_reset 
+036e 20407d12 call delay_10ms 
+036f da604da7 arg mem_sensor_8650_init_new ,regc 
+0370 20200541 branch p_mouse_sensor_end 
+
+p_mouse_3205_3t_init_param:
+0371 58000049 setarg 0x49 
+0372 20405b0d call twspi_read 
+0373 c0508375 beq 0xa1 ,p_mouse_s201x_init_param 
+0374 202041da branch mouse_3205_3t_init_param 
+
+p_mouse_s201x_init_param:
+0375 7049270c jam s201x ,mem_config_sensor_type 
+0376 20600000 rtn 
 
 p_mouse_dpi_led_blink_delay:
-02c1 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-02c2 c17f8000 rtneq gpio_disable 
-02c3 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
-02c4 247a0000 nrtn blank 
-02c5 6fe14883 fetch 2 ,mem_24g_pair_timeout 
-02c6 247a0000 nrtn blank 
-02c7 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
-02c8 247a0000 nrtn blank 
-02c9 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-02ca 247a0000 nrtn blank 
-02cb 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
-02cc 203a02fb branch p_mouse_dpi_led_blink_init ,blank 
-02cd 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
-02ce 20600000 rtn 
+0377 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+0378 c280037b bbit1 mouse_enable_1io2led ,p_mouse_dpi_led_blink_delay_new1 
+0379 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+037a c17f8000 rtneq gpio_disable 
+
+p_mouse_dpi_led_blink_delay_new1:
+037b 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+037c 247a0000 nrtn blank 
+037d 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+037e 247a0000 nrtn blank 
+037f 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+0380 247a0000 nrtn blank 
+0381 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+0382 c2800389 bbit1 mouse_enable_1io2led ,p_mouse_dpi_led_blink_delay_new2 
+0383 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+0384 247a0000 nrtn blank 
+
+p_mouse_dpi_led_blink_delay_next:
+0385 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+0386 203a0455 branch p_mouse_dpi_led_blink_init ,blank 
+0387 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
+0388 20600000 rtn 
+
+p_mouse_dpi_led_blink_delay_new2:
+0389 6fe0cc47 fetch 1 ,mem_mouse_multi_led_powon_timer 
+038a 247a0000 nrtn blank 
+038b 20200385 branch p_mouse_dpi_led_blink_delay_next 
 
 p_mouse_bb_event_timer:
-02cf 20403e9b call mouse_adc_read 
-02d0 20404956 call mouse_low_voltage_led_timer 
-02d1 2040232b call g24_pair_timeout_timer 
-02d2 20402556 call g24_reconn_timeout_timer 
-02d3 204047cd call mouse_24g_long_sleep_param_update_timer 
-02d4 20400310 call p_mouse_device_poweron_timer 
-02d5 204002f8 call p_mouse_dpi_led_blink_delay_timer 
-02d6 2040407c call mouse_dpi_key_check_long_press 
-02d7 204044cc call mouse_bt_discovery_check 
-02d8 20400325 call p_mouse_commbination_key_process 
-02d9 204044ff call mouse_check_discovery_timeout_timer 
-02da 204002e6 call p_mouse_check_direct_timeout_timer 
-02db 20404512 call mouse_le_enable_att_list_timer 
-02dc 2040033c call p_mouse_le_battery_updata_timer 
-02dd 20404515 call mouse_le_send_smp_security_request_timer 
-02de 2040452a call mouse_check_hid_handshake_timer 
-02df 2040452d call mouse_bt_check_sniff_req_timeout_timer 
-02e0 20404532 call mouse_check_reconnect_delay_long_sleep 
-02e1 20404535 call mouse_current_mult_update_timer 
-02e2 20404022 call mouse_wheel_trigger_timer 
-02e3 20404547 call mouse_store_information_delay_timer 
-02e4 204002ea call p_mouse_logo_led_on_timer 
-02e5 2020033f branch p_mouse_check_no_data_timeout_timer 
+038c 20403e9b call mouse_adc_read 
+038d 204000ec call p_mouse_low_voltage_led_timer 
+038e 2040232b call g24_pair_timeout_timer 
+038f 20402556 call g24_reconn_timeout_timer 
+0390 204047cd call mouse_24g_long_sleep_param_update_timer 
+0391 20400452 call p_mouse_dpi_led_blink_delay_timer 
+0392 204003ee call p_mouse_led_multi_timer 
+0393 20400444 call p_mouse_logo_led_on_timer 
+0394 2040407c call mouse_dpi_key_check_long_press 
+0395 204044cc call mouse_bt_discovery_check 
+0396 2040047e call p_mouse_commbination_key_process 
+0397 204044ff call mouse_check_discovery_timeout_timer 
+0398 204003a4 call p_mouse_check_direct_timeout_timer 
+0399 20404512 call mouse_le_enable_att_list_timer 
+039a 20400495 call p_mouse_le_battery_updata_timer 
+039b 20404515 call mouse_le_send_smp_security_request_timer 
+039c 20400498 call p_mouse_le_send_conn_param_update_timer 
+039d 2040452a call mouse_check_hid_handshake_timer 
+039e 2040452d call mouse_bt_check_sniff_req_timeout_timer 
+039f 204003a8 call p_mouse_check_reconnect_delay_long_sleep 
+03a0 20404535 call mouse_current_mult_update_timer 
+03a1 20404022 call mouse_wheel_trigger_timer 
+03a2 20404547 call mouse_store_information_delay_timer 
+03a3 2020049b branch p_mouse_check_no_data_timeout_timer 
 
 p_mouse_check_direct_timeout_timer:
-02e6 da604b77 arg mem_mouse_direct_timer ,regc 
-02e7 da40450a arg mouse_check_direct_timeout ,regb 
-02e8 2040318a call timer_single_step 
-02e9 20204507 branch mouse_check_direct_timeout_timer + 3 
+03a4 da604b77 arg mem_mouse_direct_timer ,regc 
+03a5 da40450a arg mouse_check_direct_timeout ,regb 
+03a6 2040318a call timer_single_step 
+03a7 20204507 branch mouse_check_direct_timeout_timer + 3 
+
+p_mouse_check_reconnect_delay_long_sleep:
+03a8 da604ac4 arg mem_mouse_bluetooth_reconnect_timeout ,regc 
+03a9 da4003ab arg p_mouse_app_enter_hibernate_check ,regb 
+03aa 2020318a branch timer_single_step 
+
+p_mouse_app_enter_hibernate_check:
+03ab 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+03ac c29984a1 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,p_mouse_start_discovery 
+03ad 20203e20 branch mouse_app_enter_hibernate 
+
+p_mouse_device_multi_led_parm_init:
+03ae 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
+03af 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03b0 c4000000 rtnbit0 mouse_enable_1io2led 
+03b1 20400434 call p_mouse_device_multi_led_all_off 
+
+p_mouse_multi_led_parm_init:
+03b2 704c4400 jam 0 ,mem_mouse_multi_led_blink_type 
+
+p_mouse_multi_low_led_blink_timer_init:
+03b3 6fe0cc4d fetch 1 ,mem_mouse_low_led_blink_timer 
+03b4 1fe37e00 rshift pdata ,pdata 
+03b5 67e0cc4e store 1 ,mem_mouse_low_led_blink_half_timer 
+03b6 20600000 rtn 
+
+p_mouse_multi_low_led_blink_count_init:
+03b7 6fe0cc53 fetch 1 ,mem_mouse_multi_lowled_blink_count_init 
+03b8 67e0cc54 store 1 ,mem_mouse_multi_low_led_blink_count 
+03b9 20600000 rtn 
+
+p_mouse_multi_led_blink_timer_init:
+03ba 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+03bb c00083c1 beq 1 ,p_mouse_device_24g_led_blink_timer_init 
+03bc c00103c3 beq 2 ,p_mouse_device_le_discovery_led_blink_timer_init 
+03bd c00183c5 beq 3 ,p_mouse_device_le_reconn_led_blink_timer_init 
+
+p_mouse_multi_dpi_led_blink_timer_init:
+03be 6fe0cc4b fetch 1 ,mem_mouse_dpi_led_blink_timer_init 
+
+p_mouse_store_multi_led_blink_timer:
+03bf 67e0cc4c store 1 ,mem_mouse_multi_led_blink_timer 
+03c0 20600000 rtn 
+
+p_mouse_device_24g_led_blink_timer_init:
+03c1 6fe0cc48 fetch 1 ,mem_mouse_multi_24gled_blink_timer_init 
+03c2 202003bf branch p_mouse_store_multi_led_blink_timer 
+
+p_mouse_device_le_discovery_led_blink_timer_init:
+03c3 6fe0cc49 fetch 1 ,mem_mouse_multi_le_discovery_blink_timer_init 
+03c4 202003bf branch p_mouse_store_multi_led_blink_timer 
+
+p_mouse_device_le_reconn_led_blink_timer_init:
+03c5 6fe0cc4a fetch 1 ,mem_mouse_multi_le_reconn_blink_timer_init 
+03c6 202003bf branch p_mouse_store_multi_led_blink_timer 
+
+p_mouse_device_poweron_led_config:
+03c7 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03c8 c4000000 rtnbit0 mouse_enable_1io2led 
+03c9 6fe0cc46 fetch 1 ,mem_mouse_multi_led_powon_timer_init 
+03ca 67e0cc47 store 1 ,mem_mouse_multi_led_powon_timer 
+03cb 704c4200 jam multi_led_on ,mem_mouse_multi_led_type 
+
+p_mouse_multi_led_enable:
+03cc 704c4300 jam off ,mem_mouse_multi_led_state 
+03cd 704c4101 jam on ,mem_mouse_multi_led_blink_enable 
+03ce 20600000 rtn 
+
+p_mouse_device_pair_led_config:
+03cf 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03d0 c4000000 rtnbit0 mouse_enable_1io2led 
+
+p_mouse_device_24g_led_blink:
+03d1 704c4401 jam 1 ,mem_mouse_multi_led_blink_type 
+03d2 204003c1 call p_mouse_device_24g_led_blink_timer_init 
+03d3 204003eb call p_mouse_multi_led_blink_enable_init 
+03d4 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03d5 c4010000 rtnbit0 mouse_enable_led_blink_limit 
+03d6 6fe0cc50 fetch 1 ,mem_mouse_multi_24gled_blink_count_init 
+03d7 202003e2 branch p_mouse_device_led_blink_count_init 
+
+p_mouse_device_le_reconn_led_config:
+03d8 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03d9 c4000000 rtnbit0 mouse_enable_1io2led 
+
+p_mouse_device_le_reconn_led_blink:
+03da 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03db c4008000 rtnbit0 mouse_enable_bt_reconn_led_effect 
+03dc 204003eb call p_mouse_multi_led_blink_enable_init 
+03dd 704c4403 jam 3 ,mem_mouse_multi_led_blink_type 
+03de 204003c5 call p_mouse_device_le_reconn_led_blink_timer_init 
+03df 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03e0 c4010000 rtnbit0 mouse_enable_led_blink_limit 
+03e1 6fe0cc51 fetch 1 ,mem_mouse_multi_le_reconn_blink_count_init 
+
+p_mouse_device_led_blink_count_init:
+03e2 67e0cc52 store 1 ,mem_mouse_multi_led_blink_count 
+03e3 20600000 rtn 
+
+p_mouse_device_discovery_led_config:
+03e4 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03e5 c4000000 rtnbit0 mouse_enable_1io2led 
+03e6 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03e7 793ffe02 set0 mouse_enable_led_blink_limit ,pdata 
+03e8 67e0cc40 store 1 ,mem_mouse_led_new_interface_config 
+03e9 704c4402 jam 2 ,mem_mouse_multi_led_blink_type 
+03ea 204003c3 call p_mouse_device_le_discovery_led_blink_timer_init 
+
+p_mouse_multi_led_blink_enable_init:
+03eb 704c4101 jam 1 ,mem_mouse_multi_led_blink_enable 
+03ec 704c4201 jam multi_led_blink ,mem_mouse_multi_led_type 
+03ed 20200414 branch p_mouse_device_multi_led_on 
+
+p_mouse_led_multi_timer:
+03ee 6fe0cc41 fetch 1 ,mem_mouse_multi_led_blink_enable 
+03ef 207a0000 rtn blank 
+03f0 6fe0cc42 fetch 1 ,mem_mouse_multi_led_type 
+03f1 c00083fa beq multi_led_blink ,p_mouse_multi_led_type_blink 
+
+p_mouse_device_multi_led_type_on:
+03f2 6fe0cc47 fetch 1 ,mem_mouse_multi_led_powon_timer 
+03f3 203a03f7 branch p_mouse_device_poweron_led_off ,blank 
+03f4 1fe0ffff increase -1 ,pdata 
+03f5 67e0cc47 store 1 ,mem_mouse_multi_led_powon_timer 
+03f6 20200415 branch p_mouse_device_multi_led_on + 1 
+
+p_mouse_device_poweron_led_off:
+03f7 204003b7 call p_mouse_multi_low_led_blink_count_init 
+
+p_mouse_devide_led_disable:
+03f8 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
+03f9 20200427 branch p_mouse_device_multi_led_off + 1 
+
+p_mouse_multi_led_type_blink:
+03fa 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+03fb 207a0000 rtn blank 
+03fc c0020401 beq 4 ,p_mouse_device_led_blink_limit 
+03fd 202003fe branch p_mouse_device_led_blink_judge 
+
+p_mouse_device_led_blink_judge:
+03fe 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+03ff c2810401 bbit1 mouse_enable_led_blink_limit ,p_mouse_device_led_blink_limit 
+0400 20200403 branch p_mouse_multi_led_type_blink_next 
+
+p_mouse_device_led_blink_limit:
+0401 6fe0cc52 fetch 1 ,mem_mouse_multi_led_blink_count 
+0402 203a0422 branch p_mouse_multi_led_off_judge ,blank 
+
+p_mouse_multi_led_type_blink_next:
+0403 da604c4c arg mem_mouse_multi_led_blink_timer ,regc 
+0404 da400406 arg p_mouse_multi_led_type_blink_start ,regb 
+0405 2020318a branch timer_single_step 
+
+p_mouse_multi_led_type_blink_start:
+0406 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+0407 c002040e beq 4 ,p_mouse_multi_led_blink_count_decrease 
+0408 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+0409 c281040e bbit1 mouse_enable_led_blink_limit ,p_mouse_multi_led_blink_count_decrease 
+
+p_mouse_multi_led_blink:
+040a 204003ba call p_mouse_multi_led_blink_timer_init 
+040b 6fe0cc43 fetch 1 ,mem_mouse_multi_led_state 
+040c c0008424 beq on ,p_mouse_multi_led_off_judge_next 
+040d 20200412 branch p_mouse_multi_led_on_judge 
+
+p_mouse_multi_led_blink_count_decrease:
+040e 6fe0cc52 fetch 1 ,mem_mouse_multi_led_blink_count 
+040f 1fe0ffff increase -1 ,pdata 
+0410 67e0cc52 store 1 ,mem_mouse_multi_led_blink_count 
+0411 2020040a branch p_mouse_multi_led_blink 
+
+p_mouse_multi_led_on_judge:
+0412 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+0413 c002043f beq 4 ,p_mouse_multi_dpi_led_on_judge 
+
+p_mouse_device_multi_led_on:
+0414 704c4301 jam on ,mem_mouse_multi_led_state 
+0415 6fe0c938 fetch 1 ,mem_device_flag 
+0416 c000041a beq mode_24g_device ,p_mouse_device_24g_led_on 
+0417 c000841c beq mode_bt_device1 ,p_mouse_device_bt1_led_on 
+0418 c001041e beq mode_bt_device2 ,p_mouse_device_bt2_led_on 
+0419 20600000 rtn 
+
+p_mouse_device_24g_led_on:
+041a 6848cc55 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+041b 20200421 branch p_mouse_multi_led_on 
+
+p_mouse_device_bt1_led_on:
+041c 6848cc56 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+041d 20200421 branch p_mouse_multi_led_on 
+
+p_mouse_device_bt2_led_on:
+041e 6848cc57 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+041f 20200421 branch p_mouse_multi_led_on 
+
+p_mouse_multi_dpi_led_on:
+0420 6848cc59 fetcht 1 ,mem_mouse_dpi_gpio 
+
+p_mouse_multi_led_on:
+0421 20206069 branch gpio_out_active 
+
+p_mouse_multi_led_off_judge:
+0422 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
+0423 704c4400 jam 0 ,mem_mouse_multi_led_blink_type 
+
+p_mouse_multi_led_off_judge_next:
+0424 6fe0cc44 fetch 1 ,mem_mouse_multi_led_blink_type 
+0425 c0020439 beq 4 ,p_mouse_multi_dpi_led_off_judge 
+
+p_mouse_device_multi_led_off:
+0426 704c4300 jam off ,mem_mouse_multi_led_state 
+0427 6fe0c938 fetch 1 ,mem_device_flag 
+0428 c000042c beq mode_24g_device ,p_mouse_device_24g_led_off 
+0429 c000842e beq mode_bt_device1 ,p_mouse_device_bt1_led_off 
+042a c0010430 beq mode_bt_device2 ,p_mouse_device_bt2_led_off 
+042b 20600000 rtn 
+
+p_mouse_device_24g_led_off:
+042c 6848cc55 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+042d 20200431 branch p_gpio_set_high_impedance 
+
+p_mouse_device_bt1_led_off:
+042e 6848cc56 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+042f 20200431 branch p_gpio_set_high_impedance 
+
+p_mouse_device_bt2_led_off:
+0430 6848cc57 fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+
+p_gpio_set_high_impedance:
+0431 18467cff sub temp ,gpio_disable ,null 
+0432 20628000 rtn zero 
+0433 2020607f branch gpio_set_high_impedance 
+
+p_mouse_device_multi_led_all_off:
+0434 2040042c call p_mouse_device_24g_led_off 
+0435 2040042e call p_mouse_device_bt1_led_off 
+0436 20400430 call p_mouse_device_bt2_led_off 
+0437 2040010d call p_mouse_low_voltage_led_off_judge 
+0438 20200439 branch p_mouse_multi_dpi_led_off_judge 
+
+p_mouse_multi_dpi_led_off_judge:
+0439 704c4300 jam off ,mem_mouse_multi_led_state 
+043a 6fe0cc45 fetch 1 ,mem_mouse_led_multi_type 
+043b c0010426 beq mouse_enable_dpi_for_led ,p_mouse_device_multi_led_off 
+043c c0018426 beq mouse_enable_dpi_low_for_led ,p_mouse_device_multi_led_off 
+
+p_mouse_multi_dpi_led_off:
+043d 6848cc59 fetcht 1 ,mem_mouse_dpi_gpio 
+
+p_mouse_multi_led_off:
+043e 20206065 branch gpio_out_inactive 
+
+p_mouse_multi_dpi_led_on_judge:
+043f 704c4301 jam on ,mem_mouse_multi_led_state 
+0440 6fe0cc45 fetch 1 ,mem_mouse_led_multi_type 
+0441 c0010414 beq mouse_enable_dpi_for_led ,p_mouse_device_multi_led_on 
+0442 c0018414 beq mouse_enable_dpi_low_for_led ,p_mouse_device_multi_led_on 
+0443 20200420 branch p_mouse_multi_dpi_led_on 
 
 p_mouse_logo_led_on_timer:
-02ea 6fe0cbed fetch 1 ,mem_mouse_logo_led_gpio 
-02eb c17f8000 rtneq gpio_disable 
-02ec 6fe14ab2 fetch 2 ,mem_mouse_no_data_timer 
-02ed 207a0000 rtn blank 
-02ee 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
-02ef 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
-02f0 98460400 isub temp ,temp 
-02f1 6fe14bee fetch 2 ,mem_mouse_logo_led_on_time_init 
-02f2 98467e00 isub temp ,pdata 
-02f3 202102f6 branch p_mouse_logo_led_on ,positive 
+0444 6fe0cbed fetch 1 ,mem_mouse_logo_led_gpio 
+0445 c17f8000 rtneq gpio_disable 
+0446 6fe14ab2 fetch 2 ,mem_mouse_no_data_timer 
+0447 207a0000 rtn blank 
+0448 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
+0449 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
+044a 98460400 isub temp ,temp 
+044b 6fe14bee fetch 2 ,mem_mouse_logo_led_on_time_init 
+044c 98467e00 isub temp ,pdata 
+044d 20210450 branch p_mouse_logo_led_on ,positive 
 
 p_mouse_logo_led_off:
-02f4 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
-02f5 20206065 branch gpio_out_inactive 
+044e 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+044f 20206065 branch gpio_out_inactive 
 
 p_mouse_logo_led_on:
-02f6 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
-02f7 20406069 call gpio_out_active 
+0450 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+0451 20206069 branch gpio_out_active 
 
 p_mouse_dpi_led_blink_delay_timer:
-02f8 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
-02f9 da4002fb arg p_mouse_dpi_led_blink_init ,regb 
-02fa 2020318a branch timer_single_step 
+0452 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
+0453 da400455 arg p_mouse_dpi_led_blink_init ,regb 
+0454 2020318a branch timer_single_step 
 
 p_mouse_dpi_led_blink_init:
-02fb 6fe0c927 fetch 1 ,mem_config_sensor_type 
-02fc c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
-02fd c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
-02fe 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-02ff 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
-0300 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
-0301 67e14930 store 2 ,mem_mouse_on_time 
-0302 67e14932 store 2 ,mem_mouse_off_time 
-0303 da200000 arg 0 ,rega 
-0304 6848c992 fetcht 1 ,mem_mouse_dpi 
-0305 18408402 increase 2 ,temp 
-0306 18467c03 sub temp ,3 ,null 
-0307 2041030a call p_mouse_dpi_led_blink_init_level_4 ,positive 
-0308 2441030e ncall p_mouse_dpi_led_blink_count_clean ,positive 
-0309 202048ff branch mouse_dpi_led_blink_init_end 
+0455 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+0456 c280046c bbit1 mouse_enable_1io2led ,p_mouse_dpi_led_blink_init_new1 
+0457 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0458 c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
+0459 c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
+045a 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+045b 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+045c 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
+045d 67e14930 store 2 ,mem_mouse_on_time 
+045e 67e14932 store 2 ,mem_mouse_off_time 
+045f da200000 arg 0 ,rega 
+0460 6848c992 fetcht 1 ,mem_mouse_dpi 
+0461 18408402 increase 2 ,temp 
+0462 18467c03 sub temp ,3 ,null 
+0463 20410466 call p_mouse_dpi_led_blink_init_level_4 ,positive 
+0464 2441046a ncall p_mouse_dpi_led_blink_count_clean ,positive 
+0465 202048ff branch mouse_dpi_led_blink_init_end 
 
 p_mouse_dpi_led_blink_init_level_4:
-030a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-030b c40e0000 rtnbit0 mouse_enable_dpi_level_4 
-030c 18408401 increase 1 ,temp 
-030d 20600000 rtn 
+0466 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0467 c40e0000 rtnbit0 mouse_enable_dpi_level_4 
+0468 18408401 increase 1 ,temp 
+0469 20600000 rtn 
 
 p_mouse_dpi_led_blink_count_clean:
-030e 184085fd increase -3 ,temp 
-030f 20600000 rtn 
+046a 184085fd increase -3 ,temp 
+046b 20600000 rtn 
 
-p_mouse_device_poweron_timer:
-0310 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0311 c4100000 rtnbit0 mouse_enable_power_on_led 
-0312 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-0313 207a0000 rtn blank 
-0314 1fe0ffff increase -1 ,pdata 
-0315 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
-0316 203a0318 branch p_mouse_device_led_off ,blank 
-0317 20204920 branch mouse_device_led_on 
-
-p_mouse_device_led_off:
-0318 20404912 call mouse_device_led_off 
-0319 6fe0c938 fetch 1 ,mem_device_flag 
-031a c1808000 rtnne mode_bt_device1 
-031b 6fe1478c fetch 2 ,mem_ui_state_map 
-031c c3848000 rtnbit1 ui_state_ble_connected 
-031d c3800000 rtnbit1 ui_state_bt_connected 
-031e 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-031f c0ff8321 bne 0xff ,p_mouse_bt_reconn_setting_led_gpio 
-0320 202048cc branch mouse_discover_setting_led_gpio 
-
-p_mouse_bt_reconn_setting_led_gpio:
-0321 2040498e call mouse_low_voltage_led_blink_disable 
-0322 704ba700 jam 0 ,mem_mouse_device_poweron_timer_count 
-0323 6fe14c13 fetch 2 ,mem_mouse_bt_reconn_led_blink_time 
-0324 202048ce branch mouse_discover_setting_led_gpio + 2 
+p_mouse_dpi_led_blink_init_new1:
+046c 6fe0c927 fetch 1 ,mem_config_sensor_type 
+046d c001847b beq p3212 ,p_mouse_dpi_led_blink_init_new2 
+046e c005847b beq ka8g2 ,p_mouse_dpi_led_blink_init_new2 
+046f 6848c992 fetcht 1 ,mem_mouse_dpi 
+0470 18408402 increase 2 ,temp 
+
+p_mouse_dpi_led_blink_init_new1_next:
+0471 18467c03 sub temp ,3 ,null 
+0472 20410466 call p_mouse_dpi_led_blink_init_level_4 ,positive 
+0473 2441046a ncall p_mouse_dpi_led_blink_count_clean ,positive 
+0474 18427e00 copy temp ,pdata 
+0475 9fe0fe00 iadd pdata ,pdata 
+0476 67e0cc52 store 1 ,mem_mouse_multi_led_blink_count 
+
+p_mouse_multi_dpi_led_blink_enable:
+0477 704c4404 jam 4 ,mem_mouse_multi_led_blink_type 
+0478 204003be call p_mouse_multi_dpi_led_blink_timer_init 
+0479 704c4201 jam multi_led_blink ,mem_mouse_multi_led_type 
+047a 202003cc branch p_mouse_multi_led_enable 
+
+p_mouse_dpi_led_blink_init_new2:
+047b 6848c992 fetcht 1 ,mem_mouse_dpi 
+047c 18408401 increase 1 ,temp 
+047d 20200471 branch p_mouse_dpi_led_blink_init_new1_next 
 
 p_mouse_commbination_key_process:
-0325 6fe0c938 fetch 1 ,mem_device_flag 
-0326 c000032b beq mode_24g_device ,p_mouse_24g_commbination_key_process 
-0327 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0328 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
-0329 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
-032a 2020032e branch p_mouse_commbination_key_start 
+047e 6fe0c938 fetch 1 ,mem_device_flag 
+047f c0000484 beq mode_24g_device ,p_mouse_24g_commbination_key_process 
+0480 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0481 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+0482 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
+0483 20200487 branch p_mouse_commbination_key_start 
 
 p_mouse_24g_commbination_key_process:
-032b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-032c c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
-032d 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+0484 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0485 c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+0486 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
 
 p_mouse_commbination_key_start:
-032e 6048cb9d storet 1 ,mem_mouse_commbination_key 
-032f 20404115 call mouse_check_key_gpio 
-0330 1fe17e07 and pdata ,0x07 ,pdata 
-0331 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
-0332 98467c00 isub temp ,null 
-0333 20228335 branch p_mouse_commbination_key_down ,zero 
-0334 202044eb branch mouse_commbination_key_up 
+0487 6048cb9d storet 1 ,mem_mouse_commbination_key 
+0488 20400554 call p_mouse_check_key_gpio 
+0489 1fe17e07 and pdata ,0x07 ,pdata 
+048a 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
+048b 98467c00 isub temp ,null 
+048c 2022848e branch p_mouse_commbination_key_down ,zero 
+048d 202044eb branch mouse_commbination_key_up 
 
 p_mouse_commbination_key_down:
-0335 2040033a call p_mouse_combination_ui_timer 
-0336 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
-0337 c1008000 rtneq commbination_key_state_down 
-0338 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
-0339 20600000 rtn 
+048e 20400493 call p_mouse_combination_ui_timer 
+048f 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+0490 c1008000 rtneq commbination_key_state_down 
+0491 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
+0492 20600000 rtn 
 
 p_mouse_combination_ui_timer:
-033a da40024b arg p_mouse_24g_start_pair_mode ,regb 
-033b 202044f7 branch mouse_combination_ui_timer + 1 
+0493 da4002ea arg p_mouse_24g_start_pair_mode ,regb 
+0494 202044f7 branch mouse_combination_ui_timer + 1 
 
 p_mouse_le_battery_updata_timer:
-033c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-033d c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
-033e 2020451f branch mouse_le_battery_updata_timer 
+0495 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0496 c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+0497 2020451f branch mouse_le_battery_updata_timer 
+
+p_mouse_le_send_conn_param_update_timer:
+0498 da604c7b arg mem_mouse_le_send_conn_param_update_timer ,regc 
+0499 da40436c arg mouse_updata_le_param ,regb 
+049a 2020318a branch timer_single_step 
 
 p_mouse_check_no_data_timeout_timer:
-033f 6fe0c92a fetch 1 ,mem_usb_addr 
-0340 c3838000 rtnbit1 7 
-0341 da604ab2 arg mem_mouse_no_data_timer ,regc 
-0342 da400344 arg p_mouse_check_no_data_timeout ,regb 
-0343 20203191 branch timer_single_step_2b 
+049b da604ab2 arg mem_mouse_no_data_timer ,regc 
+049c da40049e arg p_mouse_check_no_data_timeout ,regb 
+049d 20203191 branch timer_single_step_2b 
 
 p_mouse_check_no_data_timeout:
-0344 6fe0c938 fetch 1 ,mem_device_flag 
-0345 c00001d7 beq mode_24g_device ,p_mouse_24g_hibernate_set 
-0346 2020431b branch mouse_disconnect 
+049e 6fe0c938 fetch 1 ,mem_device_flag 
+049f c00002ed beq mode_24g_device ,p_mouse_24g_hibernate_set 
+04a0 2020431b branch mouse_disconnect 
 
 p_mouse_start_discovery:
-0347 6fe1478c fetch 2 ,mem_ui_state_map 
-0348 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-0349 2040c581 call mouse_stop_le_adv ,true 
-034a 6fe1478c fetch 2 ,mem_ui_state_map 
-034b 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-034c 2040c322 call mouse_cancel_reconnect ,true 
-034d 58000000 setarg 0 
-034e 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-034f 20204554 branch mouse_start_discovery + 1 
+04a1 204003e4 call p_mouse_device_discovery_led_config 
+04a2 6fe1478c fetch 2 ,mem_ui_state_map 
+04a3 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+04a4 2040c581 call mouse_stop_le_adv ,true 
+04a5 6fe1478c fetch 2 ,mem_ui_state_map 
+04a6 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+04a7 2040c322 call mouse_cancel_reconnect ,true 
+04a8 58000000 setarg 0 
+04a9 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+04aa 20204554 branch mouse_start_discovery + 1 
 
 p_mouse_stop_discovery:
-0350 58000000 setarg 0 
-0351 67e14ac2 store 2 ,mem_mouse_discovery_timer 
-0352 20204577 branch mouse_stop_discovery + 1 
+04ab 58000000 setarg 0 
+04ac 67e14ac2 store 2 ,mem_mouse_discovery_timer 
+04ad 20204577 branch mouse_stop_discovery + 1 
 
 p_ui_timer_check:
-0353 6fe0cbe2 fetch 1 ,mem_power_on_flag 
-0354 245a7861 ncall ui_timer_init ,blank 
-0355 704be200 jam 0 ,mem_power_on_flag 
-0356 20207851 branch ui_timer_check + 1 
+04ae 6fe0cbe2 fetch 1 ,mem_power_on_flag 
+04af 245a7861 ncall ui_timer_init ,blank 
+04b0 704be200 jam 0 ,mem_power_on_flag 
+04b1 20207851 branch ui_timer_check + 1 
 
 p_hid_rx_process:
-0357 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
-0358 1fe20c00 copy pdata ,contr 
-0359 efe08006 ifetch 1 ,contr 
-035a 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
-035b 1fe1040f and pdata ,0x0f ,temp 
-035c 1ff1fe00 rshift4 pdata ,pdata 
-035d c004835f beq hid_type_set_idle ,p_hid_rx_process_handshake 
-035e 20204d93 branch hid_rx_process + 7 
+04b2 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
+04b3 1fe20c00 copy pdata ,contr 
+04b4 efe08006 ifetch 1 ,contr 
+04b5 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
+04b6 1fe1040f and pdata ,0x0f ,temp 
+04b7 1ff1fe00 rshift4 pdata ,pdata 
+04b8 c00484ba beq hid_type_set_idle ,p_hid_rx_process_handshake 
+04b9 20204d93 branch hid_rx_process + 7 
 
 p_hid_rx_process_handshake:
-035f da200001 arg 1 ,rega 
-0360 20404dc0 call hid_malloc_tx_buff 
-0361 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
-0362 e7e10005 istore 2 ,contw 
-0363 58000000 setarg 0 
-0364 e7e08005 istore 1 ,contw 
-0365 70095001 jam 1 ,mem_ui_data_txbuff_length 
-0366 6fe0c4e2 fetch 1 ,mem_hid_control_state 
-0367 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
-0368 67e0c4e2 store 1 ,mem_hid_control_state 
-0369 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
-036a 20207871 branch ui_ipc_send_event 
+04ba da200001 arg 1 ,rega 
+04bb 20404dc0 call hid_malloc_tx_buff 
+04bc 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
+04bd e7e10005 istore 2 ,contw 
+04be 58000000 setarg 0 
+04bf e7e08005 istore 1 ,contw 
+04c0 70095001 jam 1 ,mem_ui_data_txbuff_length 
+04c1 6fe0c4e2 fetch 1 ,mem_hid_control_state 
+04c2 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
+04c3 67e0c4e2 store 1 ,mem_hid_control_state 
+04c4 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
+04c5 20207871 branch ui_ipc_send_event 
+
+p_send_lmp:
+04c6 78547c00 disable user 
+04c7 204059e6 call lmo_fifo_process 
+04c8 6fe08049 fetch 1 ,mem_lmp_to_send 
+04c9 207a0000 rtn blank 
+04ca c283d730 bbit1 7 ,send_lmp_escape 
+
+p_send_lmp0:
+04cb c00384cd beq lmp_detach ,p_send_lmp_detach 
+04cc 20205701 branch send_lmp0 
+
+p_send_lmp_detach:
+04cd 2040585d call send_lmp_detach 
+04ce 70007378 jam 120 ,mem_conn_timer 
+04cf 20600000 rtn 
 
 p_le_slave_match:
-036b 6fe0c3dd fetch 1 ,mem_le_md_count 
-036c 1fe0fe01 pincrease 1 
-036d 67e0c3dd store 1 ,mem_le_md_count 
-036e c006165a beq le_md_max_count ,le_slave_cont 
-036f 2040191b call le_acknowledge 
-0370 2040196a call le_prepare_tx 
-0371 6fe082bd fetch 1 ,mem_le_tx_phy 
-0372 2040168b call le_enable_phy_by_pdata 
-0373 20401838 call le_transmit 
-0374 20201655 branch le_slave_match + 10 
+04d0 6fe0c3dd fetch 1 ,mem_le_md_count 
+04d1 1fe0fe01 pincrease 1 
+04d2 67e0c3dd store 1 ,mem_le_md_count 
+04d3 c006165a beq le_md_max_count ,le_slave_cont 
+04d4 2040191b call le_acknowledge 
+04d5 2040196a call le_prepare_tx 
+04d6 6fe082bd fetch 1 ,mem_le_tx_phy 
+04d7 2040168b call le_enable_phy_by_pdata 
+04d8 20401838 call le_transmit 
+04d9 20201655 branch le_slave_match + 10 
+
+p_le_slave_unsync:
+04da 20400e80 call end_of_packet 
+04db 20201661 branch le_slave_unsync + 1 
+
+p_le_transmit:
+04dc 204016be call le_prep 
+04dd 204016cc call le_tx_setfreq 
+04de 20404cb5 call rf_debug_tx_on_line 
+04df 79202a00 set1 txgfsk ,radio_ctrl 
+04e0 782efc00 enable encode_fec0 
+04e1 78307c00 enable is_tx 
+04e2 7850fc00 disable is_rx 
+04e3 20401744 call le_wait_tx 
+04e4 2000000a nop 10 
+04e5 20201841 branch le_transmit + 9 
 
 p_le_parse_l2cap:
-0375 efe10006 ifetch 2 ,contr 
-0376 c0020378 beq le_l2cap_cid_att ,p_le_parse_att 
-0377 202019e4 branch le_parse_l2cap + 10 
+04e6 efe10006 ifetch 2 ,contr 
+04e7 c00204e9 beq le_l2cap_cid_att ,p_le_parse_att 
+04e8 202019e4 branch le_parse_l2cap + 10 
 
 p_le_parse_att:
-0378 efe18006 ifetch 3 ,contr 
-0379 67e1c436 store 3 ,mem_le_att_opcode 
-037a c005037d beq attop_read_request ,p_le_parse_att_read_request 
-037b c009038c beq attop_write_request ,p_le_parse_att_write_request 
-037c 20201cd3 branch le_parse_att + 2 
+04e9 efe18006 ifetch 3 ,contr 
+04ea 67e1c436 store 3 ,mem_le_att_opcode 
+04eb c00504ee beq attop_read_request ,p_le_parse_att_read_request 
+04ec c00904fd beq attop_write_request ,p_le_parse_att_write_request 
+04ed 20201cd3 branch le_parse_att + 2 
 
 p_le_parse_att_read_request:
-037d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-037e c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
-037f 20401e8d call le_check_encrypt_state 
-0380 68494437 fetcht 2 ,mem_le_att_handle 
-0381 6fe0c3c0 fetch 1 ,mem_le_configuration 
-0382 c2818387 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+04ee 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+04ef c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+04f0 20401e8d call le_check_encrypt_state 
+04f1 68494437 fetcht 2 ,mem_le_att_handle 
+04f2 6fe0c3c0 fetch 1 ,mem_le_configuration 
+04f3 c28184f8 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
 
 p_le_send_att_read_response:
-0383 6fe14437 fetch 2 ,mem_le_att_handle 
-0384 c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
-0385 68494437 fetcht 2 ,mem_le_att_handle 
-0386 20201deb branch le_send_att_read_response 
+04f4 6fe14437 fetch 2 ,mem_le_att_handle 
+04f5 c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
+04f6 68494437 fetcht 2 ,mem_le_att_handle 
+04f7 20201deb branch le_send_att_read_response 
 
 p_le_send_att_read_response_check_auth:
-0387 6fe143d1 fetch 2 ,mem_le_pairing_handle 
-0388 98467c00 isub temp ,null 
-0389 24228383 nbranch p_le_send_att_read_response ,zero 
-038a 24340383 nbranch p_le_send_att_read_response ,user 
-038b 20201e10 branch le_send_att_read_response_error_insufficient_auth 
+04f8 6fe143d1 fetch 2 ,mem_le_pairing_handle 
+04f9 98467c00 isub temp ,null 
+04fa 242284f4 nbranch p_le_send_att_read_response ,zero 
+04fb 243404f4 nbranch p_le_send_att_read_response ,user 
+04fc 20201e10 branch le_send_att_read_response_error_insufficient_auth 
 
 p_le_parse_att_write_request:
-038c 18c22200 copy contr ,rega 
-038d 6fe143d4 fetch 2 ,mem_le_l2cap_size 
-038e 1fe0a5fd add pdata ,-3 ,regb 
-038f 20401a25 call le_writeatt_cb 
-0390 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-0391 c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
-0392 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-0393 203a1e73 branch le_send_att_write_response_check_auth ,blank 
-0394 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
-0395 c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-0396 5800001a setarg 0x001a 
-0397 68494437 fetcht 2 ,mem_le_att_handle 
-0398 98467c00 isub temp ,null 
-0399 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
-039a 7002d805 jam att_err_insufficient_authentication ,mem_le_err_code 
-039b 20201ec9 branch le_send_att_error_response 
-
-p_send_lmp:
-039c 78547c00 disable user 
-039d 204059e6 call lmo_fifo_process 
-039e 6fe08049 fetch 1 ,mem_lmp_to_send 
-039f 207a0000 rtn blank 
-03a0 c283d730 bbit1 7 ,send_lmp_escape 
-
-p_send_lmp0:
-03a1 c00383a3 beq lmp_detach ,p_send_lmp_detach 
-03a2 20205701 branch send_lmp0 
-
-p_send_lmp_detach:
-03a3 2040585d call send_lmp_detach 
-03a4 70007378 jam 120 ,mem_conn_timer 
-03a5 20600000 rtn 
+04fd 18c22200 copy contr ,rega 
+04fe 6fe143d4 fetch 2 ,mem_le_l2cap_size 
+04ff 1fe0a5fd add pdata ,-3 ,regb 
+0500 20401a25 call le_writeatt_cb 
+0501 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0502 c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
+0503 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+0504 203a1e73 branch le_send_att_write_response_check_auth ,blank 
+0505 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+0506 c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+0507 5800001a setarg 0x001a 
+0508 68494437 fetcht 2 ,mem_le_att_handle 
+0509 98467c00 isub temp ,null 
+050a 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
+050b 20201e10 branch le_send_att_read_response_error_insufficient_auth 
 
 p_g24_lpm_wait:
-03a6 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-03a7 245a26e1 ncall g24_transmit_by_interrupt_enable ,blank 
-03a8 78347c00 enable user 
-03a9 20401465 call lpo_calibration 
-03aa 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-03ab 203a7e56 branch disable_user ,blank 
-03ac 6fe0c099 fetch 1 ,mem_lpm_mode 
-03ad 203a7e56 branch disable_user ,blank 
-03ae 202026c4 branch g24_setgpio_lpm_before 
+050c 78347c00 enable user 
+050d 20401465 call lpo_calibration 
+050e 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+050f 203a7e56 branch disable_user ,blank 
+0510 6fe0c099 fetch 1 ,mem_lpm_mode 
+0511 203a7e56 branch disable_user ,blank 
+0512 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0513 247a0000 nrtn blank 
+0514 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+0515 c000fe56 beq g24_tx_timer_int_enable ,disable_user 
+0516 20600000 rtn 
 
 p_mouse_motion:
-03af 78547c00 disable user 
-03b0 58000000 setarg 0 
-03b1 67e348d1 store 6 ,mem_mouse_x 
-03b2 20404240 call mouse_check_sensor_data 
-03b3 2040408e call mouse_dpi_config 
-03b4 20403f7e call mouse_zwheel 
-03b5 20403f83 call mouse_t_zwheel 
-03b6 204003da call p_mouse_key 
-03b7 6fe0c8d0 fetch 1 ,mem_mouse_key 
-03b8 1fe17e1f and_into 0x1f ,pdata 
-03b9 67e0c8d0 store 1 ,mem_mouse_key 
-03ba 24344728 nbranch mouse_drawing_optima_init ,user 
-03bb 204003bd call p_mouse_drawing_optima 
-03bc 20204544 branch mouse_no_data_timer_init 
+0517 78547c00 disable user 
+0518 58000000 setarg 0 
+0519 67e348d1 store 6 ,mem_mouse_x 
+051a 20400527 call p_mouse_check_sensor_data 
+051b 58000089 setarg 0x0089 
+051c 20405b0c call twspi_write 
+051d 20400349 call p_mouse_seting_sensor_type 
+051e 20403f7e call mouse_zwheel 
+051f 20403f83 call mouse_t_zwheel 
+0520 20400552 call p_mouse_key 
+0521 6fe0c8d0 fetch 1 ,mem_mouse_key 
+0522 1fe17e1f and_into 0x1f ,pdata 
+0523 67e0c8d0 store 1 ,mem_mouse_key 
+0524 24340536 nbranch p_mouse_motion_nodata ,user 
+0525 20400538 call p_mouse_drawing_optima 
+0526 20204544 branch mouse_no_data_timer_init 
+
+p_mouse_check_sensor_data:
+0527 6fe0c4ac fetch 1 ,mem_spi_write_flash_sm 
+0528 c1800000 rtnne flash_sm_no_buys 
+0529 6fe0c927 fetch 1 ,mem_config_sensor_type 
+052a c005852c beq ka8g2 ,p_mouse_ka8g2_sensor_motion 
+052b 20204243 branch mouse_check_sensor_data + 3 
+
+p_mouse_ka8g2_sensor_motion:
+052c 204042c4 call mouse_clear_sensor_data 
+052d 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+052e c07fc294 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+052f 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+0530 20406059 call gpio_get_bit 
+0531 24608000 nrtn true 
+
+p_mouse_pka8g2_sensor_motion_1:
+0532 58000000 setarg pan_reg_pid_l 
+0533 20405b0d call twspi_read 
+0534 c0ac41b2 bne pka8g2_id1 ,mouse_twspi_reset 
+0535 20204279 branch mouse_p3212_sensor_motion_2 
+
+p_mouse_motion_nodata:
+0536 20404728 call mouse_drawing_optima_init 
+0537 20600000 rtn 
 
 p_mouse_drawing_optima:
-03bd 6fe0c927 fetch 1 ,mem_config_sensor_type 
-03be c1018000 rtneq p3212 
-03bf 2020471a branch mouse_drawing_optima 
+0538 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0539 c1018000 rtneq p3212 
+053a c1058000 rtneq ka8g2 
+053b 2020471a branch mouse_drawing_optima 
 
 p_mouse_sensor_poweron:
-03c0 20403f65 call mouse_sensor_spi_init 
-03c1 6fe0c927 fetch 1 ,mem_config_sensor_type 
-03c2 c00583c7 beq ka8g2 ,p_mouse_ka8g2_sensor_init 
-03c3 20404232 call mouse_sensor_reset 
-03c4 da604aa3 arg mem_sensor_poweron_init ,regc 
-03c5 2040422b call mouse_sensor_wr_seq 
-03c6 2020408e branch mouse_dpi_config 
+053c 20403f65 call mouse_sensor_spi_init 
+053d 6fe0c927 fetch 1 ,mem_config_sensor_type 
+053e c0058543 beq ka8g2 ,p_mouse_ka8g2_sensor_init 
+053f 20404232 call mouse_sensor_reset 
+0540 da604aa3 arg mem_sensor_poweron_init ,regc 
+
+p_mouse_sensor_end:
+0541 2040422b call mouse_sensor_wr_seq 
+0542 20200349 branch p_mouse_seting_sensor_type 
 
 p_mouse_ka8g2_sensor_init:
-03c7 204003ce call p_mouse_ka8g2_sensor_reset 
-03c8 da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
-03c9 2040422b call mouse_sensor_wr_seq 
-03ca 2020408e branch mouse_dpi_config 
+0543 20400549 call p_mouse_ka8g2_sensor_reset 
+0544 da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
+0545 20200541 branch p_mouse_sensor_end 
 
 p_mouse_sensor_reset:
-03cb 6fe0c927 fetch 1 ,mem_config_sensor_type 
-03cc c00583ce beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
-03cd 20204232 branch mouse_sensor_reset 
+0546 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0547 c0058549 beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
+0548 20204232 branch mouse_sensor_reset 
 
 p_mouse_ka8g2_sensor_reset:
-03ce 58009706 setarg 0x9706 
-03cf 20405b0c call twspi_write 
-03d0 20002ee0 nop 12000 
-03d1 20600000 rtn 
+0549 58009706 setarg 0x9706 
+054a 20204233 branch mouse_sensor_reset_end 
 
 p_mouse_sensor_powerdown:
-03d2 204041a7 call mouse_init_sunt 
-03d3 20403f65 call mouse_sensor_spi_init 
-03d4 6fe0c927 fetch 1 ,mem_config_sensor_type 
-03d5 c00583d8 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
-03d6 58000806 setarg 0x0806 
-03d7 20205b0c branch twspi_write 
+054b 204041a7 call mouse_init_sunt 
+054c 20403f65 call mouse_sensor_spi_init 
+054d 6fe0c927 fetch 1 ,mem_config_sensor_type 
+054e c0058550 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
+054f 2020423e branch mouse_sensor_powerdown_end 
 
 p_mouse_ka8g2_sensor_powerdown:
-03d8 58001f06 setarg 0x1f06 
-03d9 20205b0c branch twspi_write 
+0550 58001f06 setarg 0x1f06 
+0551 20205b0c branch twspi_write 
 
 p_mouse_key:
-03da 20400418 call p_mouse_check_firekey_gpio 
-03db 6fe0cc09 fetch 1 ,mem_fire_key_flag 
-03dc 243a042f nbranch p_fire_key_press ,blank 
-03dd 6fe0cc04 fetch 1 ,mem_fire_key_status 
-03de 243a042e nbranch p_fire_key_process ,blank 
-03df 204003e1 call p_mouse_check_key_gpio 
-03e0 202040dd branch mouse_key + 1 
+0552 20400554 call p_mouse_check_key_gpio 
+0553 202040dd branch mouse_key + 1 
 
 p_mouse_check_key_gpio:
-03e1 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-03e2 245a4121 ncall mouse_check_key_gpio_once ,blank 
-03e3 da200000 arg 0 ,rega 
-03e4 204003eb call p_mouse_check_lkey_gpio 
-03e5 204003f0 call p_mouse_check_rkey_gpio 
-03e6 204003f5 call p_mouse_check_mkey_gpio 
-03e7 204003fa call p_mouse_check_bkkey_gpio 
-03e8 20400407 call p_mouse_check_fwkey_gpio 
-03e9 20400418 call p_mouse_check_firekey_gpio 
-03ea 2020411e branch mouse_check_key_gpio_next 
+0554 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0555 245a4121 ncall mouse_check_key_gpio_once ,blank 
+0556 da200000 arg 0 ,rega 
+0557 2040055e call p_mouse_check_lkey_gpio 
+0558 20400563 call p_mouse_check_rkey_gpio 
+0559 20400568 call p_mouse_check_mkey_gpio 
+055a 2040056d call p_mouse_check_bkkey_gpio 
+055b 2040057a call p_mouse_check_fwkey_gpio 
+055c 2040058d call p_mouse_check_customerkey_gpio 
+055d 2020411f branch mouse_check_key_gpio_next + 1 
 
 p_mouse_check_lkey_gpio:
-03eb 6fe0c918 fetch 1 ,mem_lbutton_gpio 
-03ec 20400414 call p_mouse_gpio_config_output_high 
-03ed 20404124 call mouse_check_lkey_gpio 
-03ee 6848c918 fetcht 1 ,mem_lbutton_gpio 
-03ef 20203f56 branch mouse_gpio_config_input_pu 
+055e 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+055f 20400587 call p_mouse_gpio_config_output_high 
+0560 20404124 call mouse_check_lkey_gpio 
+0561 6848c918 fetcht 1 ,mem_lbutton_gpio 
+0562 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-03f0 6fe0c919 fetch 1 ,mem_rbutton_gpio 
-03f1 20400414 call p_mouse_gpio_config_output_high 
-03f2 2040412a call mouse_check_rkey_gpio 
-03f3 6848c919 fetcht 1 ,mem_rbutton_gpio 
-03f4 20203f56 branch mouse_gpio_config_input_pu 
+0563 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+0564 20400587 call p_mouse_gpio_config_output_high 
+0565 2040412a call mouse_check_rkey_gpio 
+0566 6848c919 fetcht 1 ,mem_rbutton_gpio 
+0567 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-03f5 6fe0c91a fetch 1 ,mem_mbutton_gpio 
-03f6 20400414 call p_mouse_gpio_config_output_high 
-03f7 20404130 call mouse_check_mkey_gpio 
-03f8 6848c91a fetcht 1 ,mem_mbutton_gpio 
-03f9 20203f56 branch mouse_gpio_config_input_pu 
+0568 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+0569 20400587 call p_mouse_gpio_config_output_high 
+056a 20404130 call mouse_check_mkey_gpio 
+056b 6848c91a fetcht 1 ,mem_mbutton_gpio 
+056c 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-03fa 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-03fb c17f8000 rtneq gpio_disable 
-03fc 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-03fd 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
-03fe 1fe22600 copy pdata ,regc 
-03ff 6848c90d fetcht 1 ,mem_bk_button_gpio 
-0400 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0401 c07f8403 beq gpio_disable ,p_mouse_3io6key_bk_check 
-0402 2020413e branch mouse_check_bkkey_gpio_next 
+056d 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+056e c17f8000 rtneq gpio_disable 
+056f 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+0570 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+0571 1fe22600 copy pdata ,regc 
+0572 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0573 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0574 c07f8576 beq gpio_disable ,p_mouse_3io6key_bk_check 
+0575 2020413e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-0403 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-0404 20400416 call p_mouse_gpio_config_output_low 
-0405 6848c90d fetcht 1 ,mem_bk_button_gpio 
-0406 2020414b branch mouse_3io6key_bk_check 
+0576 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+0577 2040058a call p_mouse_gpio_config_output_low 
+0578 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0579 2020414b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-0407 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-0408 c17f8000 rtneq gpio_disable 
-0409 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-040a 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
-040b 1fe22600 copy pdata ,regc 
-040c 6848c90e fetcht 1 ,mem_fw_button_gpio 
-040d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-040e c07f8410 beq gpio_disable ,p_mouse_3io6key_fw_check 
-040f 20204157 branch mouse_check_fwkey_gpio_next 
+057a 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+057b c17f8000 rtneq gpio_disable 
+057c 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+057d 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+057e 1fe22600 copy pdata ,regc 
+057f 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0580 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0581 c07f8583 beq gpio_disable ,p_mouse_3io6key_fw_check 
+0582 20204157 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-0410 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-0411 20400416 call p_mouse_gpio_config_output_low 
-0412 6848c90e fetcht 1 ,mem_fw_button_gpio 
-0413 20204164 branch mouse_3io6key_fw_check 
+0583 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+0584 2040058a call p_mouse_gpio_config_output_low 
+0585 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0586 20204164 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-0414 d840003f arg gpcfg_output_high ,temp 
-0415 20206093 branch gpio_config_function_int 
+0587 c17f8000 rtneq gpio_disable 
+0588 d840003f arg gpcfg_output_high ,temp 
+0589 20206093 branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-0416 d840003e arg gpcfg_output_low ,temp 
-0417 20206093 branch gpio_config_function_int 
-
-p_mouse_check_firekey_gpio:
-0418 da400000 arg 0 ,regb 
-0419 6fe0cc0a fetch 1 ,mem_firebutton_gpio 
-041a c17f8000 rtneq gpio_disable 
-041b 6fe0cc0b fetch 1 ,mem_mouse_firebutton_connect_vin_flag 
-041c 243a0425 nbranch p_mouse_check_firekey_connect_vin ,blank 
-
-p_mouse_check_firekey_connect_gnd:
-041d 6848cc0a fetcht 1 ,mem_firebutton_gpio 
-041e 20403f56 call mouse_gpio_config_input_pu 
-041f 6848cc0a fetcht 1 ,mem_firebutton_gpio 
-0420 20406059 call gpio_get_bit 
-0421 7920a400 setflag true ,0 ,regb 
-
-p_mouse_firekey_state_store:
-0422 1a427e00 copy regb ,pdata 
-0423 67e0cc09 store 1 ,mem_fire_key_flag 
-0424 20600000 rtn 
-
-p_mouse_check_firekey_connect_vin:
-0425 6fe0cc0a fetch 1 ,mem_firebutton_gpio 
-0426 793ffe07 set0 gpio_active_bit ,pdata 
-0427 67e0cc0a store 1 ,mem_firebutton_gpio 
-0428 6848cc0a fetcht 1 ,mem_firebutton_gpio 
-0429 20403f54 call mouse_gpio_config_input_pd 
-042a 6848cc0a fetcht 1 ,mem_firebutton_gpio 
-042b 20406059 call gpio_get_bit 
-042c 7d20a400 nsetflag true ,0 ,regb 
-042d 20200422 branch p_mouse_firekey_state_store 
-
-p_fire_key_process:
-042e c0020449 beq 4 ,p_fire_key_process_end 
-
-p_fire_key_press:
-042f 2040044c call p_firekey_clkn_bt_timer_check 
-0430 6fe24c05 fetch 4 ,mem_fire_key_delay 
-0431 d84000a0 arg 0xa0 ,temp 
-0432 98408400 iadd temp ,temp 
-0433 1c427e00 copy clkn_bt ,pdata 
-0434 98467c00 isub temp ,null 
-0435 24610000 nrtn positive 
-0436 67e24c05 store 4 ,mem_fire_key_delay 
-0437 6fe0cc04 fetch 1 ,mem_fire_key_status 
-0438 c000043d beq 0 ,p_fire_key_process_start 
-0439 c0008440 beq 1 ,p_fire_key_process_release1 
-043a c0010443 beq 2 ,p_fire_key_process_start2 
-043b c0018446 beq 3 ,p_fire_key_process_release2 
-043c 20600000 rtn 
-
-p_fire_key_process_start:
-043d 704c0401 jam 1 ,mem_fire_key_status 
-043e 7048d001 jam 1 ,mem_mouse_key 
-043f 20207e54 branch enable_user 
-
-p_fire_key_process_release1:
-0440 704c0402 jam 2 ,mem_fire_key_status 
-0441 7048d000 jam 0 ,mem_mouse_key 
-0442 20207e54 branch enable_user 
-
-p_fire_key_process_start2:
-0443 704c0403 jam 3 ,mem_fire_key_status 
-0444 7048d001 jam 1 ,mem_mouse_key 
-0445 20207e54 branch enable_user 
-
-p_fire_key_process_release2:
-0446 704c0400 jam 0 ,mem_fire_key_status 
-0447 7048d000 jam 0 ,mem_mouse_key 
-0448 20207e54 branch enable_user 
-
-p_fire_key_process_end:
-0449 704c0400 jam 0 ,mem_fire_key_status 
-044a 7048d000 jam 0 ,mem_mouse_key 
-044b 20600000 rtn 
-
-p_firekey_clkn_bt_timer_check:
-044c 684a4c05 fetcht 4 ,mem_fire_key_delay 
-044d 1c427e00 copy clkn_bt ,pdata 
-044e 98467c00 isub temp ,null 
-044f 24410451 ncall p_firekey_clkn_bt_timer_timeout ,positive 
-0450 20600000 rtn 
-
-p_firekey_clkn_bt_timer_timeout:
-0451 58000000 setarg 0 
-0452 67e24c05 store 4 ,mem_fire_key_delay 
-0453 20600000 rtn 
+058a c17f8000 rtneq gpio_disable 
+058b d840003e arg gpcfg_output_low ,temp 
+058c 20206093 branch gpio_config_function_int 
+
+p_mouse_check_customerkey_gpio:
+058d 6fe0cdc6 fetch 1 ,mem_mouse_customer_key_connect_vin_flag 
+058e 203a416a branch mouse_check_customerkey_gpio ,blank 
+058f 704b8b00 jam 0 ,mem_customer_key 
+0590 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0591 c40a8000 rtnbit0 mouse_enable_keyboard 
+0592 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+0593 793ffe07 set0 gpio_active_bit ,pdata 
+0594 67e0c912 store 1 ,mem_customer_key_gpio 
+0595 704b9607 jam mouse_customer_key ,mem_mouse_key_temp 
+0596 6fe0cb95 fetch 1 ,mem_mouse_customerkey_press_status 
+0597 1fe22600 copy pdata ,regc 
+
+p_mouse_3io6key_customerkey_check:
+0598 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+0599 2040058a call p_mouse_gpio_config_output_low 
+059a 6848c912 fetcht 1 ,mem_customer_key_gpio 
+059b 20404195 call mouse_3io6key_check 
+059c 67e0cb95 store 1 ,mem_mouse_customerkey_press_status 
+059d 20404174 call mouse_check_customerkey_state 
+059e 6848c912 fetcht 1 ,mem_customer_key_gpio 
+059f 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_idle:
-0454 20404990 call mouse_low_voltage_led_no_enter_lpm 
-0455 20407936 call ui_check_paring_button 
-0456 20400459 call p_mouse_dpi_check 
-0457 2040046d call p_mouse_dpi_another_gpio_check 
-0458 2020464f branch mouse_idle + 4 
+05a0 204005a5 call p_mouse_low_voltage_led_no_enter_lpm 
+05a1 20407936 call ui_check_paring_button 
+05a2 204005b0 call p_mouse_dpi_check 
+05a3 204005a9 call p_mouse_select_device_check 
+05a4 20204650 branch mouse_idle + 5 
+
+p_mouse_low_voltage_led_no_enter_lpm:
+05a5 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+05a6 c301c990 bbit0 mouse_enable_low_led ,mouse_low_voltage_led_no_enter_lpm 
+
+p_mouse_low_voltage_led_no_enter_lpm_next:
+05a7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05a8 20204992 branch mouse_low_voltage_led_no_enter_lpm + 2 
+
+p_mouse_select_device_check:
+05a9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05aa c29485ad bbit1 mouse_enable_select_device_by_pb_button ,p_mouse_select_device_by_pb_button_check_judge 
+05ab c29b85ad bbit1 mouse_enable_pb_button_long_press_disconvery ,p_mouse_select_device_by_pb_button_check_judge 
+05ac 20600000 rtn 
+
+p_mouse_select_device_by_pb_button_check_judge:
+05ad 6fe1478c fetch 2 ,mem_ui_state_map 
+05ae c2830223 bbit1 ui_state_bt_discovery ,p_mouse_select_device_by_pb_button_check_once 
+05af 2020465a branch mouse_select_device_by_pb_button 
 
 p_mouse_dpi_check:
-0459 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-045a c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
-045b 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-045c c17f8000 rtneq gpio_disable 
-045d da200000 arg 0 ,rega 
-045e 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-045f 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-0460 20400462 call p_mouse_dpi_key_check 
-0461 2020402f branch mouse_dpi_check_next 
+05b0 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+05b1 c17f8000 rtneq gpio_disable 
+05b2 da200000 arg 0 ,rega 
+05b3 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+05b4 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+05b5 204005b7 call p_mouse_dpi_key_check 
+05b6 2020402f branch mouse_dpi_check_next 
 
 p_mouse_dpi_key_check:
-0462 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0463 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-0464 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-0465 1fe22600 copy pdata ,regc 
-0466 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0467 c07f8469 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-0468 2020403f branch mouse_dpi_key_check_next 
+05b7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05b8 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+05b9 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+05ba 1fe22600 copy pdata ,regc 
+05bb 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+05bc c07f85be beq gpio_disable ,p_mouse_3io6key_dpi_check 
+05bd 2020403f branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-0469 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-046a 20400416 call p_mouse_gpio_config_output_low 
-046b 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-046c 20204195 branch mouse_3io6key_check 
-
-p_mouse_dpi_another_gpio_check:
-046d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-046e c41e8000 rtnbit0 mouse_enable_double_dpi_key 
-046f 6fe0cc0c fetch 1 ,mem_mouse_another_dpi_connect_vin_flag 
-0470 243a0476 nbranch p_mouse_dpi_another_gpio_connect_vin_check ,blank 
-
-p_mouse_dpi_another_gpio_connect_gnd_check:
-0471 6fe0cc0d fetch 1 ,mem_dpi_another_button_gpio 
-0472 20400414 call p_mouse_gpio_config_output_high 
-0473 20400487 call p_mouse_dpi_another_check 
-0474 6848cc0d fetcht 1 ,mem_dpi_another_button_gpio 
-0475 20203f56 branch mouse_gpio_config_input_pu 
-
-p_mouse_dpi_another_gpio_connect_vin_check:
-0476 6fe0cc0d fetch 1 ,mem_dpi_another_button_gpio 
-0477 793ffe07 set0 gpio_active_bit ,pdata 
-0478 67e0cc0d store 1 ,mem_dpi_another_button_gpio 
-0479 6fe0cc0d fetch 1 ,mem_dpi_another_button_gpio 
-047a 20400416 call p_mouse_gpio_config_output_low 
-047b 704c1100 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-047c 6848cc0d fetcht 1 ,mem_dpi_another_button_gpio 
-047d 6fe0cc0e fetch 1 ,mem_dpi_another_press_status 
-047e 204004a0 call p_mouse_check_key_connect_vin_new 
-047f 2040048b call p_mouse_dpi_another_state_check 
-0480 6848cc0d fetcht 1 ,mem_dpi_another_button_gpio 
-0481 20203f56 branch mouse_gpio_config_input_pu 
-
-p_mouse_dpi_another_down_new:
-0482 20403f56 call mouse_gpio_config_input_pu 
-0483 6fe0cc0f fetch 1 ,mem_dpi_another_button_state 
-0484 c1008000 rtneq dpi_button_state_down 
-0485 704c0f01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-0486 20204069 branch mouse_dpi_process 
-
-p_mouse_dpi_another_check:
-0487 704c1100 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-0488 6848cc0d fetcht 1 ,mem_dpi_another_button_gpio 
-0489 6fe0cc0e fetch 1 ,mem_dpi_another_press_status 
-048a 20400496 call p_mouse_check_key_connect_gnd_new 
-
-p_mouse_dpi_another_state_check:
-048b 67e0cc0e store 1 ,mem_dpi_another_press_status 
-048c 6fe0cc10 fetch 1 ,mem_dpi_another_button_down_enable 
-048d 203a0492 branch p_mouse_dpi_another_up ,blank 
-
-p_mouse_dpi_another_down:
-048e 6fe0cc0f fetch 1 ,mem_dpi_another_button_state 
-048f c1008000 rtneq dpi_button_state_down 
-0490 704c0f01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-0491 20204069 branch mouse_dpi_process 
-
-p_mouse_dpi_another_up:
-0492 6fe0cc0f fetch 1 ,mem_dpi_another_button_state 
-0493 c1000000 rtneq dpi_button_state_up 
-0494 704c0f00 jam dpi_button_state_up ,mem_dpi_another_button_state 
-0495 20600000 rtn 
-
-p_mouse_check_key_connect_gnd_new:
-0496 1fe3fe00 lshift pdata ,pdata 
-0497 1fe22400 copy pdata ,regb 
-0498 20406059 call gpio_get_bit 
-0499 7920a400 setflag true ,0 ,regb 
-049a 1a417e07 and regb ,0x07 ,pdata 
-049b 6848cc11 fetcht 1 ,mem_mouse_key_temp_patch 
-049c 18420e00 copy temp ,queue 
-049d c00384ab beq 0x07 ,p_mouse_key_press 
-049e c00004ad beq 0x00 ,p_mouse_key_release 
-049f 20600000 rtn 
-
-p_mouse_check_key_connect_vin_new:
-04a0 1fe3fe00 lshift pdata ,pdata 
-04a1 1fe22400 copy pdata ,regb 
-04a2 20403f54 call mouse_gpio_config_input_pd 
-04a3 20406059 call gpio_get_bit 
-04a4 7920a400 setflag true ,0 ,regb 
-04a5 1a417e07 and regb ,0x07 ,pdata 
-04a6 6848cc11 fetcht 1 ,mem_mouse_key_temp_patch 
-04a7 18420e00 copy temp ,queue 
-04a8 c00384ab beq 0x07 ,p_mouse_key_press 
-04a9 c00004ad beq 0x00 ,p_mouse_key_release 
-04aa 20600000 rtn 
-
-p_mouse_key_press:
-04ab 704c1001 jam 1 ,mem_dpi_another_button_down_enable 
-04ac 20600000 rtn 
-
-p_mouse_key_release:
-04ad 704c1000 jam 0 ,mem_dpi_another_button_down_enable 
-04ae 20600000 rtn 
+05be 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+05bf 2040058a call p_mouse_gpio_config_output_low 
+05c0 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+05c1 20204195 branch mouse_3io6key_check 
 
 p_mouse_dpi_process:
-04af 20404072 call mouse_dpi_ghost_check 
-04b0 20740000 rtn user 
-04b1 6fe0c992 fetch 1 ,mem_mouse_dpi 
-04b2 1fe20400 copy pdata ,temp 
-04b3 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04b4 c29e84bb bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
-04b5 18427e00 copy temp ,pdata 
-04b6 1fe0fe01 increase 1 ,pdata 
-04b7 1fe17e03 and pdata ,0x03 ,pdata 
+05c2 20404072 call mouse_dpi_ghost_check 
+05c3 20740000 rtn user 
+
+p_mouse_dpi_process_next:
+05c4 6fe0c992 fetch 1 ,mem_mouse_dpi 
+05c5 1fe0fe01 increase 1 ,pdata 
+05c6 1fe17e03 and pdata ,0x03 ,pdata 
 
 p_mouse_dpi_store:
-04b8 67e0c992 store 1 ,mem_mouse_dpi 
-04b9 20404095 call mouse_seting_dpi 
-04ba 202045ee branch mouse_store_device_info_delay 
-
-p_mouse_double_dpi_check:
-04bb 6fe0cc10 fetch 1 ,mem_dpi_another_button_down_enable 
-04bc 243a04d8 nbranch p_mouse_another_dpi_button_down ,blank 
-
-p_mouse_dpi_increase:
-04bd 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04be c28e04cc bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
-04bf 18427e00 copy temp ,pdata 
-04c0 c1008000 rtneq mouse_dpi_level2 
-
-p_mouse_dpi_increase_level:
-04c1 c00004c8 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-04c2 c00104c6 beq mouse_dpi_level3 ,p_mouse_dpi_level_2 
-04c3 20600000 rtn 
-
-p_mouse_dpi_level_1:
-04c4 58000002 setarg 2 
-04c5 202004b8 branch p_mouse_dpi_store 
-
-p_mouse_dpi_level_2:
-04c6 58000000 setarg 0 
-04c7 202004b8 branch p_mouse_dpi_store 
-
-p_mouse_dpi_level_3:
-04c8 58000001 setarg 1 
-04c9 202004b8 branch p_mouse_dpi_store 
-
-p_mouse_dpi_level_4:
-04ca 58000003 setarg 3 
-04cb 202004b8 branch p_mouse_dpi_store 
-
-p_mouse_dpi_increase_level_4:
-04cc 18427e00 copy temp ,pdata 
-04cd c1008000 rtneq mouse_dpi_level2 
-04ce c00004c8 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-04cf c00104ca beq mouse_dpi_level3 ,p_mouse_dpi_level_4 
-04d0 c00184c6 beq mouse_dpi_level4 ,p_mouse_dpi_level_2 
-04d1 20600000 rtn 
-
-p_mouse_dpi_decrease_level_4:
-04d2 18427e00 copy temp ,pdata 
-04d3 c1010000 rtneq mouse_dpi_level3 
-04d4 c00004ca beq mouse_dpi_level1 ,p_mouse_dpi_level_4 
-04d5 c00084c6 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-04d6 c00184c4 beq mouse_dpi_level4 ,p_mouse_dpi_level_1 
-04d7 20600000 rtn 
-
-p_mouse_another_dpi_button_down:
-
-p_mouse_dpi_decrease:
-04d8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04d9 c28e04d2 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_decrease_level_4 
-04da 18427e00 copy temp ,pdata 
-04db c1010000 rtneq mouse_dpi_level3 
-
-p_mouse_dpi_decrease_level:
-04dc c00004c4 beq mouse_dpi_level1 ,p_mouse_dpi_level_1 
-04dd c00084c6 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-04de 20600000 rtn 
+05c7 67e0c992 store 1 ,mem_mouse_dpi 
+05c8 20400347 call p_mouse_seting_dpi 
+05c9 20204643 branch mouse_store_eerpom_dpi 
+
+p_power_ctrl_start:
+05ca 6fe1478c fetch 2 ,mem_ui_state_map 
+05cb c3858000 rtnbit1 ui_state_ble_adv 
+05cc c3838000 rtnbit1 ui_state_bt_reconnect 
+05cd c3830000 rtnbit1 ui_state_bt_discovery 
+05ce 6a214899 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+05cf 204025cb call rssi_average 
+05d0 6048c8c7 storet 1 ,mem_rssi_avg_received 
+05d1 6fe0c8cc fetch 1 ,mem_rssi_dis_max_24g 
+05d2 c51305d4 bmark1 mark_24g ,p_power_ctrl_start_next 
+05d3 6fe0c8cf fetch 1 ,mem_rssi_dis_max_ble 
+
+p_power_ctrl_start_next:
+05d4 98467c00 isub temp ,null 
+05d5 242105ee nbranch p_power_ctrl_txpower_incrs_force ,positive 
+05d6 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05d7 1fe67c02 sub pdata ,2 ,null 
+05d8 242105dc nbranch p_power_ctrl_txpower_decrs_check ,positive 
+05d9 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05da c00005ef beq 0 ,p_power_ctrl_txpower_incrs 
+05db 20600000 rtn 
+
+p_power_ctrl_txpower_decrs_check:
+05dc 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+05dd 6848c8ca fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+05de 98467c00 isub temp ,null 
+05df 24628000 nrtn zero 
+05e0 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+p_power_ctrl_txpower_decrs:
+05e1 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
+05e2 6fe0c8cb fetch 1 ,mem_rssi_dis_min_24g 
+05e3 c51305e5 bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
+05e4 6fe0c8ce fetch 1 ,mem_rssi_dis_min_ble 
+
+p_power_ctrl_txpower_decrs_next:
+05e5 98467c00 isub temp ,null 
+05e6 24610000 nrtn positive 
+05e7 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+05e8 c000271b beq 0 ,power_ctrl_decrs_level0 
+05e9 1fe0ffff increase -1 ,pdata 
+05ea 67e0c8c8 store 1 ,mem_power_ctrl_level 
+05eb c00105f6 beq 2 ,p_power_ctrl_decrs_level2 
+05ec c000a711 beq 1 ,power_ctrl_decrs_level1 
+05ed 2020271b branch power_ctrl_decrs_level0 
+
+p_power_ctrl_txpower_incrs_force:
+05ee 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+
+p_power_ctrl_txpower_incrs:
+05ef 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+05f0 c00185f5 beq 3 ,p_power_ctrl_incrs_level3 
+05f1 1fe0fe01 increase 1 ,pdata 
+05f2 67e0c8c8 store 1 ,mem_power_ctrl_level 
+05f3 c000a711 beq 1 ,power_ctrl_incrs_level1 
+05f4 c00105f6 beq 2 ,p_power_ctrl_incrs_level2 
+
+p_power_ctrl_incrs_level3:
+05f5 202005f6 branch p_power_ctrl_incrs_level2 
+
+p_power_ctrl_decrs_level2:
+
+p_power_ctrl_incrs_level2:
+05f6 7041e803 jam tx_power_3db ,mem_tx_power 
+05f7 20600000 rtn 
+              org 0x3bc1
+
+mouse_init:
+3bc1 20403bf0 call mouse_setting_config 
+3bc2 204041a7 call mouse_init_sunt 
+3bc3 2040408e call mouse_dpi_config 
+3bc4 20758000 rtn wake 
+3bc5 20403d8a call mouse_usb_check_enable 
+3bc6 20404728 call mouse_drawing_optima_init 
+3bc7 20403bcf call mouse_cb_fuction 
+3bc8 2040423c call mouse_sensor_powerdown 
+3bc9 6fe0c92a fetch 1 ,mem_usb_addr 
+3bca c3838000 rtnbit1 7 
+
+mouse_init_wireless:
+3bcb 6fe1478c fetch 2 ,mem_ui_state_map 
+3bcc c2864553 bbit1 ui_state_btn_down ,mouse_start_discovery 
+3bcd 204046a0 call mouse_check_select_device_by_switch 
+3bce 20203d52 branch mouse_start_work 
+
+mouse_cb_fuction:
+3bcf 58004866 setarg mouse_24g_package_data 
+3bd0 67e1489b store 2 ,mem_cb_24g_transmit_data 
+3bd1 5800488f setarg mouse_24g_search_dongle 
+3bd2 67e1489d store 2 ,mem_cb_24g_search_receiver 
+3bd3 58003e40 setarg mouse_lpm_before_common 
+3bd4 67e1489f store 2 ,mem_cb_24g_lpm_before 
+3bd5 5800439f setarg mouse_le 
+3bd6 67e14461 store 2 ,mem_cb_le_process 
+3bd7 58004457 setarg mouse_bt 
+3bd8 67e14463 store 2 ,mem_cb_bt_process 
+3bd9 58003e3b setarg mouse_process_lpm_before 
+3bda 67e1445f store 2 ,mem_cb_before_lpm 
+3bdb 58004334 setarg mouse_priority_bb_event 
+3bdc 67e14467 store 2 ,mem_cb_bb_event_process 
+3bdd 5800464b setarg mouse_idle 
+3bde 67e14465 store 2 ,mem_cb_idle_process 
+3bdf 58003e25 setarg mouse_before_hibernate 
+3be0 67e1445d store 2 ,mem_cb_before_hibernate 
+3be1 58004388 setarg mouse_le_bb_event_connect_complete 
+3be2 67e1446b store 2 ,mem_cb_att_write 
+3be3 580044b5 setarg mouse_bb_event_timer 
+3be4 67e1446f store 2 ,mem_cb_event_timer 
+3be5 58003f69 setarg mouse_spi_write_flash_cb 
+3be6 67e14473 store 2 ,mem_cb_spi_flash_write_complate 
+3be7 58003e13 setarg mouse_lpm_check_wake_lock 
+3be8 67e1445b store 2 ,mem_cb_check_wakelock 
+3be9 580049a8 setarg mouse_le_transmit 
+3bea 67e1446d store 2 ,mem_cb_ble_transmit 
+3beb 580049aa setarg mouse_bt_slave_match 
+3bec 67e14477 store 2 ,mem_cb_bt_slave_match 
+3bed 580049bd setarg mouse_set_lpm_mult 
+3bee 67e14471 store 2 ,mem_cb_bt_set_mult 
+3bef 20600000 rtn 
+
+mouse_setting_config:
+3bf0 20758000 rtn wake 
+3bf1 20402607 call g24_transmit_init 
+3bf2 204022ff call g24_chmap_param_init 
+3bf3 20403f1e call mouse_gpio_init 
+3bf4 20403d13 call mouse_param_init 
+
+mouse_setting_config_next:
+3bf5 20401b16 call le_set_config_fixed_ltk 
+3bf6 20401b3f call le_set_justwork 
+3bf7 20401b32 call le_set_fixed_ltk 
+3bf8 20401b1e call le_set_config_read_authentication 
+3bf9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3bfa c289c635 bbit1 mouse_enable_eeprom ,mouse_load_eeprom_info_check 
+3bfb c28945f6 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
+3bfc 20600000 rtn 
+
+mouse_xtal_init:
+3bfd 7040c508 jam 0x08 ,mem_fcomp_div 
+3bfe 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3bff c3860000 rtnbit1 mouse_enable_16m 
+3c00 7040c518 jam 0x18 ,mem_fcomp_div 
+3c01 20600000 rtn 
+
+mouse_default_init:
+3c02 700b58ff jam 0xff ,mem_usb_offline_check_gpio 
+3c03 704790ff jam 0xff ,mem_ui_button_gpio 
+3c04 70478f1e jam 0x1e ,mem_ui_button_timeout 
+3c05 5800492d setarg mem_mouse_led_type 
+3c06 67e1448d store 2 ,mem_ui_led_struct_ptr 
+3c07 70448c01 jam 1 ,mem_ui_led_struct_num 
+3c08 58004ab5 setarg mem_mouse_rssi_signal_buf 
+3c09 67e14899 store 2 ,mem_rssi_signal_buf_ptr 
+3c0a 70483601 jam 1 ,mem_24g_data_type 
+3c0b 6fe148fe fetch 2 ,mem_mouse_discovery_timeout 
+3c0c 67e14791 store 2 ,mem_discovery_timeout 
+3c0d 6fe14900 fetch 2 ,mem_mouse_24g_pair_timeout_init 
+3c0e 67e14881 store 2 ,mem_24g_pair_timeout_init 
+3c0f 6fe0c903 fetch 1 ,mem_mouse_24g_reconn_timeout_init 
+3c10 67e14885 store 2 ,mem_24g_reconn_timeout_init 
+3c11 6fe2c905 fetch 5 ,mem_rssi_dis_min_24g_init 
+3c12 67e2c8cb store 5 ,mem_rssi_dis_min_24g 
+3c13 6fe0c904 fetch 1 ,mem_mouse_24g_pair_tx_power 
+3c14 67e0c87c store 1 ,mem_24g_pair_tx_power 
+3c15 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3c16 247a0000 nrtn blank 
+3c17 58020800 setarg 0x020800 
+3c18 67e1cbab store 3 ,mem_mouse_flag 
+3c19 58800700 setarg 0x800700 
+3c1a e7e18005 istore 3 ,contw 
+3c1b 58000300 setarg 0x0300 
+3c1c e7e10005 istore 2 ,contw 
+3c1d 70409901 jam 1 ,mem_lpm_mode 
+3c1e 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c1f 2feffe00 isolate1 mouse_adc_enable ,pdata 
+3c20 2040c6e6 call mouse_adc_read_enable ,true 
+3c21 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c22 2feffe02 isolate1 mouse_24g_250hz_enable ,pdata 
+3c23 2040c6e8 call mouse_24g_set_250hz ,true 
+3c24 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c25 2feffe01 isolate1 mouse_search_dongle_enable ,pdata 
+3c26 2040c6ea call mouse_24g_search_dongle_enable ,true 
+3c27 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c28 2feffe03 isolate1 mouse_clk_16m_enable ,pdata 
+3c29 2040c6ec call mouse_16m_enable ,true 
+3c2a 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c2b 2feffe04 isolate1 mouse_dpi_4_level_enable ,pdata 
+3c2c 2040c6ee call mouse_dpi_4level_enable ,true 
+3c2d 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+3c2e 2feffe05 isolate1 mouse_keyboard_enable ,pdata 
+3c2f 2040c6f8 call mouse_customer_key_enable ,true 
+3c30 6fe0c866 fetch 1 ,mem_24g_ch_map_update 
+3c31 245a230e ncall g24_chamap_param_update ,blank 
+3c32 20403bfd call mouse_xtal_init 
+3c33 6fe0c90b fetch 1 ,mem_mouse_global_setup 
+3c34 1fe10407 and pdata ,0x07 ,temp 
+3c35 6048c4a1 storet 1 ,mem_adc_channel 
+3c36 1fe97e00 rshift3 pdata ,pdata 
+3c37 1fe10401 and pdata ,0x01 ,temp 
+3c38 6048c866 storet 1 ,mem_24g_ch_map_update 
+3c39 1fe37e00 rshift pdata ,pdata 
+3c3a 1fe10403 and pdata ,0x03 ,temp 
+3c3b 6048c8fd storet 1 ,mem_adc_config_flag_init 
+3c3c 1feb7e00 rshift2 pdata ,pdata 
+3c3d 1fe17e03 and pdata ,0x03 ,pdata 
+3c3e 204047d4 call mouse_24g_long_sleep_set 
+3c3f 6fe0c90c fetch 1 ,mem_mouse_global_setup1 
+3c40 1fe10403 and pdata ,0x03 ,temp 
+3c41 6048c924 storet 1 ,mem_sensor_angle_default 
+3c42 1feb7e00 rshift2 pdata ,pdata 
+3c43 1fe10403 and pdata ,0x03 ,temp 
+3c44 6048c925 storet 1 ,mem_sensor_angle_switch 
+3c45 1feb7e00 rshift2 pdata ,pdata 
+3c46 1fe17e03 and pdata ,0x03 ,pdata 
+3c47 67e0c926 store 1 ,mem_config_sensor_dpi 
+3c48 67e0c992 store 1 ,mem_mouse_dpi 
+3c49 1feb7e00 rshift2 pdata ,pdata 
+3c4a 1fe17e03 and pdata ,0x03 ,pdata 
+3c4b 67e0cbb4 store 1 ,mem_device_number 
+3c4c 580b0c0a setarg 0x0b0c0a 
+3c4d 67e1c918 store 3 ,mem_lbutton_gpio 
+3c4e 58ffffff setarg 0xffffff 
+3c4f e7e18005 istore 3 ,contw 
+3c50 580607ff setarg 0x0607ff 
+3c51 e7e18005 istore 3 ,contw 
+3c52 58ffffff setarg 0xffffff 
+3c53 e7e18005 istore 3 ,contw 
+3c54 7048f70a jam 0x0a ,mem_adc_read_time_init 
+3c55 58000064 setarg 0x0064 
+3c56 67e14bc8 store 2 ,mem_adc_low_volatage_led_blink_timer 
+3c57 20403e7b call mouse_adc_vol_init 
+3c58 58001770 setarg 0x1770 
+3c59 67e14bbe store 2 ,mem_mouse_no_data_timeout 
+3c5a 704bc014 jam 0x14 ,mem_mouse_device_poweron_timer_count_init 
+3c5b 58000190 setarg 0x0190 
+3c5c 67e14bc6 store 2 ,mem_mouse_low_v_led_blink_time 
+3c5d 67e14bc2 store 2 ,mem_mouse_dpi_led_blink_time 
+3c5e 580003e8 setarg 0x03e8 
+3c5f 67e14bc4 store 2 ,mem_mouse_disconvey_led_blink_time 
+3c60 70487d07 jam 0x07 ,mem_rssi_buff_index 
+3c61 7048ca7d jam 125 ,mem_power_ctrl_pac_succ_cnt_init 
+3c62 7041e800 jam tx_power_0db ,mem_tx_power 
+3c63 70488c01 jam 0x01 ,mem_24g_fast_conn_enable 
+3c64 58000f0f setarg 0x0f0f 
+3c65 67e1488d store 2 ,mem_24g_fast_conn_addr 
+3c66 67e1488f store 2 ,mem_24g_fast_conn_addr + 2 
+3c67 6fe140a8 fetch 2 ,mem_lap 
+3c68 67e140ac store 2 ,mem_lap + 4 
+3c69 d8a0437a arg mem_le_lap ,contw 
+3c6a d8c040a8 arg mem_lap ,contr 
+3c6b df200006 arg 0x06 ,loopcnt 
+3c6c 20407e68 call reverse_byte 
+3c6d 704b8a20 jam 0x20 ,mem_lpm_mult_init 
+3c6e 70493934 jam 0x34 ,mem_device1_type 
+3c6f 6fe3437a fetch 6 ,mem_le_lap 
+3c70 67e34950 store 6 ,mem_device1_locall_addr 
+3c71 704bb302 jam 0x02 ,mem_mouse_bluetooth_type 
+3c72 7043e71f jam 0x1f ,mem_le_adv_data_len 
+3c73 58050102 setarg 0x050102 
+3c74 67e1c3e8 store 3 ,mem_le_adv_data 
+3c75 58120303 setarg 0x120303 
+3c76 e7e18005 istore 3 ,contw 
+3c77 58190318 setarg 0x190318 
+3c78 e7e18005 istore 3 ,contw 
+3c79 580003c2 setarg 0x03c2 
+3c7a e7e10005 istore 2 ,contw 
+3c7b 5806ff06 setarg 0x06ff06 
+3c7c 67e1cad2 store 3 ,mem_le_adv_swift_pair 
+3c7d 58000300 setarg 0x000300 
+3c7e e7e18005 istore 3 ,contw 
+3c7f 58090c80 setarg 0x090c80 
+3c80 e7e18005 istore 3 ,contw 
+3c81 58355442 setarg 0x355442 
+3c82 e7e18005 istore 3 ,contw 
+3c83 5820322e setarg 0x20322e 
+3c84 e7e18005 istore 3 ,contw 
+3c85 58756f4d setarg 0x756f4d 
+3c86 e7e18005 istore 3 ,contw 
+3c87 58006573 setarg 0x6573 
+3c88 e7e10005 istore 2 ,contw 
+3c89 7044071f jam 0x1f ,mem_le_scan_data_len 
+3c8a d8c04ad9 arg mem_le_adv_swift_pair + 7 ,contr 
+3c8b d8a04408 arg mem_le_scan_data ,contw 
+3c8c df20000d arg 13 ,loopcnt 
+3c8d 20407d5f call memcpy 
+3c8e 6fe0c408 fetch 1 ,mem_le_scan_data 
+3c8f 1fe0ffff increase -1 ,pdata 
+3c90 67e0c2f7 store 1 ,mem_le_name_len 
+3c91 d8c0440a arg mem_le_scan_data + 2 ,contr 
+3c92 d8a042f8 arg mem_le_name_len + 1 ,contw 
+3c93 df20000b arg 11 ,loopcnt 
+3c94 20407d5f call memcpy 
+3c95 58070007 setarg 0x070007 
+3c96 67e1c372 store 3 ,mem_le_interval_min 
+3c97 58002000 setarg 0x002000 
+3c98 e7e18005 istore 3 ,contw 
+3c99 5800012c setarg 0x012c 
+3c9a e7e10005 istore 2 ,contw 
+3c9b 58181203 setarg 0x181203 
+3c9c 67e1cacc store 3 ,mem_le_adv_ind 
+3c9d 580000ff setarg 0x0000ff 
+3c9e 67e1cacf store 3 ,mem_le_adv_direct_ind 
+3c9f 380000fb setsect 0 ,0xfb 
+3ca0 3806c212 setsect 1 ,0x2c212 
+3ca1 3808800f setsect 2 ,0x800f 
+3ca2 380c0021 setsect 3 ,0x21 
+3ca3 67e4444c store 8 ,mem_local_rx_max_octets 
+3ca4 70443207 jam 0x07 ,mem_le_adv_channel_map 
+3ca5 58000015 setarg 0x0015 
+3ca6 67e14ae7 store 2 ,mem_le_keyboard_handle 
+3ca7 58000019 setarg 0x0019 
+3ca8 67e14357 store 2 ,mem_le_notify_handle 
+3ca9 5800001d setarg 0x001d 
+3caa 67e14ae9 store 2 ,mem_le_multimedia_handle 
+3cab 58000021 setarg 0x0021 
+3cac 67e14aeb store 2 ,mem_le_systemctrl_handle 
+3cad 58000030 setarg 0x0030 
+3cae 67e14aed store 2 ,mem_le_battery_level_handle 
+3caf 58000022 setarg 0x0022 
+3cb0 67e143d1 store 2 ,mem_le_pairing_handle 
+3cb1 704af096 jam 0x96 ,mem_le_battery_level_updata_timer_init 
+3cb2 70493800 jam mode_24g_device ,mem_device_flag 
+3cb3 20402322 call g24_enable_1m 
+3cb4 20402325 call g24_pair_param_init 
+3cb5 58604800 setarg 0x604800 
+3cb6 67e1c85c store 3 ,mem_24g_enter_hibernate 
+3cb7 5800012c setarg 0x012c 
+3cb8 67e148c2 store 2 ,mem_24g_long_sleep_param_update_timer_init 
+3cb9 58000050 setarg 0x0050 
+3cba 67e148c0 store 2 ,mem_24g_transmit_by_interrupt_exit_count_init 
+3cbb 58000005 setarg 0x05 
+3cbc 67e14bba store 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+3cbd 58000708 setarg 0x0708 
+3cbe 67e14bbc store 2 ,mem_mouse_24g_search_dongle_time_init 
+3cbf 58010403 setarg 0x010403 
+3cc0 67e1c9d0 store 3 ,mem_mouse_dpi_seting 
+3cc1 582a2002 setarg 0x2a2002 
+3cc2 e7e18005 istore 3 ,contw 
+3cc3 5822153f setarg 0x22153f 
+3cc4 e7e18005 istore 3 ,contw 
+3cc5 58114433 setarg 0x114433 
+3cc6 e7e18005 istore 3 ,contw 
+3cc7 58265a09 setarg 0x265a09 
+3cc8 67e1c9df store 3 ,mem_sensor_3212_init 
+3cc9 58041934 setarg 0x041934 
+3cca e7e18005 istore 3 ,contw 
+3ccb 58000009 setarg 0x0009 
+3ccc e7e10005 istore 2 ,contw 
+3ccd 5800ffff setarg 0xffff 
+3cce e7e10005 istore 2 ,contw 
+3ccf 580d5a09 setarg 0x0d5a09 
+3cd0 67e1c9f3 store 3 ,mem_sensor_3205_init 
+3cd1 58ed1d10 setarg 0xed1d10 
+3cd2 e7e18005 istore 3 ,contw 
+3cd3 5800807d setarg 0x807d 
+3cd4 e7e10005 istore 2 ,contw 
+3cd5 5800ffff setarg 0xffff 
+3cd6 e7e10005 istore 2 ,contw 
+3cd7 58ff5a09 setarg 0xff5a09 
+3cd8 67e1ca39 store 3 ,mem_sensor_8650_init 
+3cd9 5840ab27 setarg 0x40ab27 
+3cda e7e18005 istore 3 ,contw 
+3cdb 58a0d1be setarg 0xa0d1be 
+3cdc e7e18005 istore 3 ,contw 
+3cdd 5812a141 setarg 0x12a141 
+3cde e7e18005 istore 3 ,contw 
+3cdf 58a784a5 setarg 0xa784a5 
+3ce0 e7e18005 istore 3 ,contw 
+3ce1 58d0b5ff setarg 0xd0b5ff 
+3ce2 e7e18005 istore 3 ,contw 
+3ce3 58ff00b6 setarg 0xff00b6 
+3ce4 e7e18005 istore 3 ,contw 
+3ce5 58000900 setarg 0x000900 
+3ce6 e7e18005 istore 3 ,contw 
+3ce7 5800ffff setarg 0xffff 
+3ce8 e7e10005 istore 2 ,contw 
+3ce9 580d5a09 setarg 0x0d5a09 
+3cea 67e1ca53 store 3 ,mem_sensor_ka8ul_init 
+3ceb 58c50e10 setarg 0xc50e10 
+3cec e7e18005 istore 3 ,contw 
+3ced 58109a5b setarg 0x109a5b 
+3cee e7e18005 istore 3 ,contw 
+3cef 58421138 setarg 0x421138 
+3cf0 e7e18005 istore 3 ,contw 
+3cf1 58412828 setarg 0x412828 
+3cf2 e7e18005 istore 3 ,contw 
+3cf3 58394923 setarg 0x394923 
+3cf4 e7e18005 istore 3 ,contw 
+3cf5 584bb04a setarg 0x4bb04a 
+3cf6 e7e18005 istore 3 ,contw 
+3cf7 58904ca0 setarg 0x904ca0 
+3cf8 e7e18005 istore 3 ,contw 
+3cf9 5809704d setarg 0x09704d 
+3cfa e7e18005 istore 3 ,contw 
+3cfb 58ffff00 setarg 0xffff00 
+3cfc e7e18005 istore 3 ,contw 
+3cfd 5846a509 setarg 0x46a509 
+3cfe 67e1ca81 store 3 ,mem_sensor_ka8g2_init 
+3cff 58101934 setarg 0x101934 
+3d00 e7e18005 istore 3 ,contw 
+3d01 58690760 setarg 0x690760 
+3d02 e7e18005 istore 3 ,contw 
+3d03 58207d04 setarg 0x207d04 
+3d04 e7e18005 istore 3 ,contw 
+3d05 5809007e setarg 0x09007e 
+3d06 e7e18005 istore 3 ,contw 
+3d07 58220d00 setarg 0x220d00 
+3d08 e7e18005 istore 3 ,contw 
+3d09 58ff220e setarg 0xff220e 
+3d0a e7e18005 istore 3 ,contw 
+3d0b 704a96ff jam 0xff ,mem_sensor_ka8g2_init + 21 
+3d0c 580b5a09 setarg 0x0b5a09 
+3d0d 67e1caa3 store 3 ,mem_sensor_poweron_init 
+3d0e 580009f3 setarg 0x0009f3 
+3d0f e7e18005 istore 3 ,contw 
+3d10 5800ffff setarg 0xffff 
+3d11 e7e10005 istore 2 ,contw 
+3d12 20203100 branch app_sys_param_init 
+
+mouse_param_init:
+3d13 58009468 setarg mouse_bt_sdp_addr 
+3d14 67e14660 store 2 ,mem_ui_uuid_table 
+3d15 58009732 setarg mouse_ble_att_list_addr 
+3d16 67e14396 store 2 ,mem_ui_le_uuid_table 
+3d17 58002580 setarg 0x2580 
+3d18 67e1c0b2 store 3 ,mem_class 
+3d19 70417803 jam 3 ,mem_lpm_mult_timeout 
+3d1a 70415b08 jam 8 ,mem_lpm_overhead 
+3d1b 704b9e00 jam dpi_button_state_up ,mem_select_device_button_statue 
+3d1c 704b9e00 jam pb_button_state_up ,mem_select_device_button_statue 
+3d1d 704b9f00 jam commbination_key_state_up ,mem_commbination_key_statue 
+3d1e 58000200 setarg 0x0200 
+3d1f 67e14159 store 2 ,mem_lpm_interval 
+3d20 70438017 jam 0x17 ,mem_le_local_mtu 
+3d21 70438217 jam 0x17 ,mem_le_remote_mtu 
+3d22 58000a77 setarg 0x0a77 
+3d23 67e14484 store 2 ,mem_spi_init_clk 
+3d24 38000306 setsect 0 ,0x306 
+3d25 38044440 setsect 1 ,0x4440 
+3d26 38090000 setsect 2 ,0x10000 
+3d27 380c4408 setsect 3 ,0x4408 
+3d28 67e4c662 store 9 ,mem_all_uuid_16bits 
+3d29 38001224 setsect 0 ,0x1224 
+3d2a 38044000 setsect 1 ,0x4000 
+3d2b 38080000 setsect 2 ,0x0 
+3d2c e7e28005 istore 5 ,contw 
+3d2d 3803ffff setsect 0 ,0x3ffff 
+3d2e 3806fe23 setsect 1 ,0x2fe23 
+3d2f 380999d9 setsect 2 ,0x199d9 
+3d30 380c020d setsect 3 ,0x20d 
+3d31 67e440a0 store 8 ,mem_features 
+3d32 58004af5 setarg mem_le_tx_buffer0_omemalloc 
+3d33 67e143de store 2 ,mem_ble_l2cap_tx_buff0_ptr 
+3d34 58000010 setarg mouse_ble_l2cap_txbuff_size 
+3d35 67e143e0 store 2 ,mem_ble_l2cap_tx_buff_size_ptr 
+3d36 2040490e call mouse_device_led_all_off 
+3d37 204048c6 call mouse_device_poweron_timer_init 
+3d38 20403e8e call mouse_adc_gpio_mux_init 
+3d39 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d3a c30dbd3f bbit0 mouse_enable_bt_125hz ,mouse_param_init_intervl_end 
+3d3b 7044550c jam classic_interval_7_5ms ,mem_sniff_param_interval 
+3d3c 58000006 setarg le_interval_7_5ms 
+3d3d 67e14372 store 2 ,mem_le_interval_min 
+3d3e 67e14374 store 2 ,mem_le_interval_min + 2 
+
+mouse_param_init_intervl_end:
+3d3f 20402613 call g24_interval_param_8ms 
+3d40 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d41 c30c3d43 bbit0 mouse_enable_24g_250hz ,mouse_24g_short_sleep_set_end 
+3d42 2040260b call g24_interval_param_4ms 
+
+mouse_24g_short_sleep_set_end:
+3d43 6fe0c938 fetch 1 ,mem_device_flag 
+3d44 67e0cab4 store 1 ,mem_device_flag_temp 
+3d45 6fe1c37d fetch 3 ,mem_le_lap + 3 
+3d46 67e1cac9 store 3 ,mem_mouse_le_lap_temp 
+3d47 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+3d48 1fe17efe and pdata ,0xfe ,pdata 
+3d49 67e0c8fd store 1 ,mem_adc_config_flag_init 
+3d4a 67e0c4a0 store 1 ,mem_adc_config_flag 
+3d4b 58000000 setarg 0 
+3d4c 67e3c8d0 store 7 ,mem_mouse_key 
+3d4d 6fe0c78f fetch 1 ,mem_ui_button_timeout 
+3d4e 67e0cb9b store 1 ,mem_bt_discovery_count 
+3d4f 67e0cb9c store 1 ,mem_select_device_count 
+3d50 20401aa9 call le_modified_name 
+3d51 202042a0 branch mouse_sensor_set_angle 
+
+mouse_start_work:
+3d52 44e1c018 bpatch patch18_3 ,mem_patch18 
+3d53 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d54 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+3d55 6fe0c938 fetch 1 ,mem_device_flag 
+3d56 c00047f6 beq mode_24g_device ,mouse_24g_start_mode 
+3d57 20403d65 call mouse_wakeup_from_power_check 
+3d58 243442eb nbranch mouse_buletooth_fast_conn_init ,user 
+
+mouse_start_reconnect_device:
+3d59 44e24018 bpatch patch18_4 ,mem_patch18 
+3d5a da204939 arg mem_device1_type ,rega 
+3d5b 6fe0c938 fetch 1 ,mem_device_flag 
+3d5c 1fe0ffff increase -1 ,pdata 
+3d5d 1feffe1d mul32 pdata ,29 ,pdata 
+3d5e 9a20a200 iadd rega ,rega 
+3d5f efe08011 ifetch 1 ,rega 
+3d60 67e0c482 store 1 ,mem_xrecord_mode 
+
+mouse_start_reconnect:
+3d61 6fe0c482 fetch 1 ,mem_xrecord_mode 
+3d62 c019bd6f beq rec_3_mode ,mouse3_0_check_reconn_target 
+3d63 c01a3d7b beq rec_4_mode ,mouse4_0_check_reconn_target 
+3d64 20204553 branch mouse_start_discovery 
+
+mouse_wakeup_from_power_check:
+3d65 44e2c018 bpatch patch18_5 ,mem_patch18 
+3d66 78547c00 disable user 
+3d67 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d68 c305bd6c bbit0 mouse_enable_wakeup_from_power ,mouse_wakeup_from_power 
+3d69 6fe08989 fetch 1 ,mem_wakup_from_power_flag 
+3d6a c3013d6c bbit0 bit_power_on ,mouse_wakeup_from_power 
+3d6b 78347c00 enable user 
+
+mouse_wakeup_from_power:
+3d6c 6fe0cab1 fetch 1 ,mem_reconn_times_init 
+3d6d 67e0cab0 store 1 ,mem_reconn_times 
+3d6e 20600000 rtn 
+
+mouse3_0_check_reconn_target:
+3d6f 68494bb8 fetcht 2 ,mem_mouse_fast_page_to 
+3d70 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+3d71 c07fbd73 beq 0xff ,mouse3_0_check_reconn_target_next 
+3d72 68494bb5 fetcht 2 ,mem_mouse_page_to 
+
+mouse3_0_check_reconn_target_next:
+3d73 604940c1 storet 2 ,mem_page_to 
+3d74 6fe341dd fetch 6 ,mem_hci_plap 
+3d75 203a31f8 branch app_bt_start_discovery_short ,blank 
+3d76 70447d17 jam 0x17 ,mem_app_connection_options 
+3d77 6fe0c764 fetch 1 ,mem_ssp_enable 
+3d78 243a31ee nbranch app_bt_start_reconnect ,blank 
+3d79 70447d04 jam 0x04 ,mem_app_connection_options 
+3d7a 202031ee branch app_bt_start_reconnect 
+
+mouse4_0_check_reconn_target:
+3d7b 704ac701 jam 1 ,mem_mouse_le_reconnect_flag 
+3d7c 6848cbb7 fetcht 1 ,mem_mouse_fast_direct_timeout 
+3d7d 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+3d7e c07fbd80 beq 0xff ,mouse4_0_check_reconn_target_next 
+3d7f 6848c902 fetcht 1 ,mem_mouse_direct_timeout 
+
+mouse4_0_check_reconn_target_next:
+3d80 6048cb77 storet 1 ,mem_mouse_direct_timer 
+3d81 20403225 call app_lpm_mult_disable 
+3d82 6fe1cacf fetch 3 ,mem_le_adv_direct_ind 
+3d83 67e1c3ec store 3 ,mem_le_adv_data + 4 
+3d84 204043e8 call mouse_le_check_adv_flag 
+3d85 58000004 setarg adv_flag_bredr_not_supported 
+3d86 e7e08006 istore 1 ,contr 
+3d87 d8c04408 arg mem_le_scan_data ,contr 
+3d88 204043ef call mouse_le_adv_data_update 
+3d89 202078ee branch check_51cmd_adv 
+
+mouse_usb_check_enable:
+3d8a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d8b c4068000 rtnbit0 mouse_enable_usb 
+3d8c 58003d90 setarg mouse_usb_config_param 
+3d8d 67e10b45 store 2 ,mem_cb_usb_config 
+3d8e 70492ba5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+3d8f 20203dc1 branch mouse_usb_interface_check 
+
+mouse_usb_config_param:
+3d90 20403d93 call mouse_usb_config_kb_check 
+3d91 20403d98 call mouse_usb_config_param_init 
+3d92 20203da8 branch mouse_usb_config_param_setup 
+
+mouse_usb_config_kb_check:
+3d93 70492c00 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
+3d94 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d95 c40a8000 rtnbit0 mouse_enable_keyboard 
+3d96 70492c5b jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
+3d97 20600000 rtn 
+
+mouse_usb_config_param_init:
+3d98 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3d99 c28ebd9f bbit1 mouse_enable_usb_250 ,mouse_usb_report_rate_set_250hz 
+3d9a c28f3da2 bbit1 mouse_enable_usb_500 ,mouse_usb_report_rate_set_500hz 
+3d9b c28fbda5 bbit1 mouse_enable_usb_1000 ,mouse_usb_report_rate_set_1000hz 
+3d9c 70492919 jam 0x19 ,mem_wire_usb_interval 
+3d9d 700b4708 jam 0x08 ,mem_usb_tx_interval 
+3d9e 20600000 rtn 
+
+mouse_usb_report_rate_set_250hz:
+3d9f 7049290c jam 0x0c ,mem_wire_usb_interval 
+3da0 700b4704 jam 0x04 ,mem_usb_tx_interval 
+3da1 20600000 rtn 
+
+mouse_usb_report_rate_set_500hz:
+3da2 70492906 jam 0x06 ,mem_wire_usb_interval 
+3da3 700b4702 jam 0x02 ,mem_usb_tx_interval 
+3da4 20600000 rtn 
+
+mouse_usb_report_rate_set_1000hz:
+3da5 70492903 jam 0x03 ,mem_wire_usb_interval 
+3da6 700b4701 jam 0x01 ,mem_usb_tx_interval 
+3da7 20600000 rtn 
+
+mouse_usb_config_param_setup:
+3da8 204079f0 call usb_tx_interval_config 
+3da9 20403dab call mouse_usb_vid_pid_config 
+3daa 20203db0 branch mouse_usb_hid_icon_config 
+
+mouse_usb_vid_pid_config:
+3dab 6fe08b48 fetch 1 ,mem_usb_vid_pid 
+3dac 207a0000 rtn blank 
+3dad 6fe0c92c fetch 1 ,mem_mouse_usb_keyboard_flag 
+3dae c02db66c beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+3daf 20203669 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+
+mouse_usb_hid_icon_config:
+3db0 6fe0c92c fetch 1 ,mem_mouse_usb_keyboard_flag 
+3db1 2020366f branch dongle_usb_hid_icon_config + 1 
+
+mouse_usb_check:
+3db2 6ff08c02 fetch 1 ,core_usb_addr 
+3db3 c303bdb6 bbit0 7 ,mouse_usb_no_exsit 
+3db4 c283bdb9 bbit1 7 ,mouse_usb_exsit 
+3db5 20600000 rtn 
+
+mouse_usb_no_exsit:
+3db6 6fe0c92a fetch 1 ,mem_usb_addr 
+3db7 c4038000 rtnbit0 7 
+3db8 20205d8c branch soft_reset_chip 
+
+mouse_usb_exsit:
+3db9 6fe0c92a fetch 1 ,mem_usb_addr 
+3dba c3838000 rtnbit1 7 
+3dbb 204047f2 call mouse_24g_stop 
+3dbc 20204316 branch mouse_stop_bluetooth_mode 
+
+mouse_usb_isr:
+3dbd 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3dbe c4068000 rtnbit0 mouse_enable_usb 
+3dbf 20407991 call usb_isr 
+3dc0 20203dc1 branch mouse_usb_interface_check 
+
+mouse_usb_interface_check:
+3dc1 44e34018 bpatch patch18_6 ,mem_patch18 
+3dc2 68488b58 fetcht 1 ,mem_usb_offline_check_gpio 
+3dc3 20406059 call gpio_get_bit 
+3dc4 2020bdc6 branch mouse_usb_gpio_low ,true 
+3dc5 20203dcd branch mouse_usb_gpio_high 
+
+mouse_usb_gpio_low:
+3dc6 6fe0c92b fetch 1 ,mem_mouse_usb_vdd_status 
+3dc7 c1528000 rtneq mouse_usb_interface_remove 
+3dc8 70492ba5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+3dc9 700bfa00 jam 0 ,mem_usb_device_enumeration_endflag 
+3dca 7009f600 jam 0 ,mem_usb_status 
+3dcb 700bec00 jam 0 ,mem_usb_state 
+3dcc 20203bcb branch mouse_init_wireless 
+
+mouse_usb_gpio_high:
+3dcd 6fe0c92b fetch 1 ,mem_mouse_usb_vdd_status 
+3dce c12d0000 rtneq mouse_usb_interface_insert 
+3dcf 70492b5a jam mouse_usb_interface_insert ,mem_mouse_usb_vdd_status 
+3dd0 204047f2 call mouse_24g_stop 
+3dd1 20404316 call mouse_stop_bluetooth_mode 
+3dd2 2040490e call mouse_device_led_all_off 
+3dd3 2020799d branch usb_init 
+
+mouse_usb_mode:
+3dd4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3dd5 c4068000 rtnbit0 mouse_enable_usb 
+3dd6 20403db2 call mouse_usb_check 
+3dd7 6ff08c02 fetch 1 ,core_usb_addr 
+3dd8 67e0c92a store 1 ,mem_usb_addr 
+3dd9 c4038000 rtnbit0 7 
+3dda 20403e0b call mouse_clkn_check 
+3ddb 6fe24abd fetch 4 ,mem_btclk_sensor 
+3ddc 6848c929 fetcht 1 ,mem_wire_usb_interval 
+3ddd 98408400 iadd temp ,temp 
+3dde 1c427e00 copy clkn_bt ,pdata 
+3ddf 98467c00 isub temp ,null 
+3de0 24610000 nrtn positive 
+3de1 67e24abd store 4 ,mem_btclk_sensor 
+3de2 20403f70 call mouse_motion 
+3de3 24740000 nrtn user 
+
+mouse_push_data_to_usb:
+3de4 6ff08c02 fetch 1 ,core_usb_addr 
+3de5 c4038000 rtnbit0 7 
+3de6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3de7 c30abdea bbit0 mouse_enable_keyboard ,mouse_push_mouse_data_to_usb 
+3de8 6fe0cb8b fetch 1 ,mem_customer_key 
+3de9 c000bdf0 beq 1 ,mouse_push_keyboard_data_to_usb 
+
+mouse_push_mouse_data_to_usb:
+3dea 20403694 call dongle_usb_tx_ms_data 
+3deb 58000001 setarg ms_report_id 
+3dec 67e08bff store 1 ,mem_usb_mouse_data 
+3ded 6fe3c8d0 fetch 7 ,mem_mouse_key 
+3dee e7e38005 istore 7 ,contw 
+3def 20600000 rtn 
+
+mouse_push_keyboard_data_to_usb:
+3df0 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+3df1 203a3dfb branch mouse_push_release_keyboard_data_to_usb ,blank 
+3df2 6fe44bcd fetch 8 ,mem_customer_key_press + 1 
+
+mouse_push_keyboard_package_data_to_usb:
+3df3 67e4095c store 8 ,mem_pdatatemp 
+3df4 6fe0cbcc fetch 1 ,mem_customer_key_press 
+3df5 c001bdfd beq kb_multikey_report_id ,mouse_push_multimedia_key_data_to_usb 
+3df6 c0013e04 beq kb_system_conctrl_report_id ,mouse_push_systemctrl_key_data_to_usb 
+3df7 204036a2 call dongle_usb_tx_kb_data 
+3df8 6fe4095c fetch 8 ,mem_pdatatemp 
+3df9 67e40c0f store 8 ,mem_usb_kb_data 
+3dfa 20600000 rtn 
+
+mouse_push_release_keyboard_data_to_usb:
+3dfb 6fe44bd6 fetch 8 ,mem_customer_key_release + 1 
+3dfc 20203df3 branch mouse_push_keyboard_package_data_to_usb 
+
+mouse_push_multimedia_key_data_to_usb:
+3dfd 20403695 call dongle_usb_tx_enable_ep2 
+3dfe 700bf821 jam usb_ep2_multikey ,mem_usb_ep2_data 
+3dff 58000003 setarg kb_multikey_report_id 
+3e00 67e08c1f store 1 ,mem_usb_kb_multikey 
+3e01 6fe1095c fetch 2 ,mem_pdatatemp 
+3e02 e7e10005 istore 2 ,contw 
+3e03 20600000 rtn 
+
+mouse_push_systemctrl_key_data_to_usb:
+3e04 20403695 call dongle_usb_tx_enable_ep2 
+3e05 700bf822 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+3e06 58000002 setarg kb_system_conctrl_report_id 
+3e07 67e08c2f store 1 ,mem_usb_kb_system 
+3e08 6fe0895c fetch 1 ,mem_pdatatemp 
+3e09 e7e08005 istore 1 ,contw 
+3e0a 20600000 rtn 
+
+mouse_clkn_check:
+3e0b 684a4abd fetcht 4 ,mem_btclk_sensor 
+3e0c 1c427e00 copy clkn_bt ,pdata 
+3e0d 98467c00 isub temp ,null 
+3e0e 24413e10 ncall mouse_clkn_timeout ,positive 
+3e0f 20600000 rtn 
+
+mouse_clkn_timeout:
+3e10 58000000 setarg 0 
+3e11 67e24abd store 4 ,mem_btclk_sensor 
+3e12 20600000 rtn 
+
+mouse_lpm_check_wake_lock:
+3e13 c51331dd bmark1 mark_24g ,app_get_lpm_wake_lock 
+3e14 6fe0caac fetch 1 ,mem_mouse_clear_sensor_data_flag 
+3e15 203a31dd branch app_get_lpm_wake_lock ,blank 
+3e16 6fe0caf4 fetch 1 ,mem_mouse_le_conn_param_reject 
+3e17 c000b1dd beq le_lpm_disable ,app_get_lpm_wake_lock 
+3e18 6fe144d8 fetch 2 ,mem_sdp_remote_cid 
+3e19 243a31dd nbranch app_get_lpm_wake_lock ,blank 
+3e1a 6fe0c8e1 fetch 1 ,mem_mouse_wheel_trigger 
+3e1b 243a31dd nbranch app_get_lpm_wake_lock ,blank 
+3e1c 202031df branch app_put_lpm_wake_lock 
+
+mouse_delay_enter_hibernata:
+3e1d 6fe0c902 fetch 1 ,mem_mouse_direct_timeout 
+3e1e 67e0cac4 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+3e1f 20600000 rtn 
+
+mouse_app_enter_hibernate:
+3e20 44e3c018 bpatch patch18_7 ,mem_patch18 
+3e21 20404232 call mouse_sensor_reset 
+3e22 2040423c call mouse_sensor_powerdown 
+3e23 20403e33 call mouse_setgpio_hibernate 
+3e24 20203217 branch app_enter_hibernate 
+
+mouse_before_hibernate:
+3e25 44e44019 bpatch patch19_0 ,mem_patch19 
+3e26 78347c00 enable user 
+3e27 6ff20138 fetch 4 ,0x8138 
+3e28 79347e1a setflag user ,26 ,pdata 
+3e29 67f2004c store 4 ,core_lpm_reg 
+3e2a 2040159a call lpm_write_ctrl 
+3e2b 20406df7 call disable_authrom 
+3e2c 2040490e call mouse_device_led_all_off 
+3e2d 20404015 call mouse_before_hibernate_wheel_gpio_set 
+3e2e 20403e33 call mouse_setgpio_hibernate 
+3e2f 2040462d call mouse_flash_power_down 
+3e30 2040609d call gpio_set_before_lpm_common 
+3e31 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+3e32 20206042 branch gpio_clr_wake 
+
+mouse_setgpio_hibernate:
+3e33 44e4c019 bpatch patch19_1 ,mem_patch19 
+3e34 204042e9 call mouse_set_sdio_high 
+3e35 20407fdc call clear_wake 
+3e36 20403e40 call mouse_lpm_before_common 
+3e37 20406082 call gpio_pd_idle 
+3e38 d8400013 arg 19 ,temp 
+3e39 20403f56 call mouse_gpio_config_input_pu 
+3e3a 20203f58 branch mouse_gpio_set_high_impedance 
+
+mouse_process_lpm_before:
+3e3b c6130000 rtnmark1 mark_24g 
+3e3c 20403e40 call mouse_lpm_before_common 
+3e3d 6fe0809e fetch 1 ,mem_lpm_current_mult 
+3e3e 247a0000 nrtn blank 
+3e3f 20206042 branch gpio_clr_wake 
+
+mouse_lpm_before_common:
+3e40 44e54019 bpatch patch19_2 ,mem_patch19 
+3e41 20403f88 call mouse_wheel_check 
+3e42 6848c91f fetcht 1 ,mem_mouse_sensor_sclk_gpio 
+3e43 20406069 call gpio_config_output 
+
+mouse_lpm_before_common_next:
+3e44 20405b04 call twspi_disable 
+3e45 6848c918 fetcht 1 ,mem_lbutton_gpio 
+3e46 20406036 call gpio_set_wake 
+3e47 6848c919 fetcht 1 ,mem_rbutton_gpio 
+3e48 20406036 call gpio_set_wake 
+3e49 6848c91a fetcht 1 ,mem_mbutton_gpio 
+3e4a 20406036 call gpio_set_wake 
+3e4b 6848c90d fetcht 1 ,mem_bk_button_gpio 
+3e4c 20406036 call gpio_set_wake 
+3e4d 6848c90e fetcht 1 ,mem_fw_button_gpio 
+3e4e 20406036 call gpio_set_wake 
+3e4f 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+3e50 20406036 call gpio_set_wake 
+3e51 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+3e52 20406036 call gpio_set_wake 
+3e53 6848c912 fetcht 1 ,mem_customer_key_gpio 
+3e54 20406036 call gpio_set_wake 
+3e55 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+3e56 20406032 call gpio_set_wake_by_current_state 
+3e57 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+3e58 20406032 call gpio_set_wake_by_current_state 
+3e59 6848c91c fetcht 1 ,mem_whee_ta_data_gpio 
+3e5a 20406032 call gpio_set_wake_by_current_state 
+3e5b 6848c91d fetcht 1 ,mem_whee_tb_data_gpio 
+3e5c 20406032 call gpio_set_wake_by_current_state 
+3e5d 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+3e5e 20206036 branch gpio_set_wake 
+
+mouse_set_mult:
+3e5f 6fe1478c fetch 2 ,mem_ui_state_map 
+3e60 c284be64 bbit1 ui_state_ble_connected ,mouse_set_ble_mult 
+3e61 6fe1478c fetch 2 ,mem_ui_state_map 
+3e62 c2803e67 bbit1 ui_state_bt_connected ,mouse_set_bt_mult 
+3e63 20600000 rtn 
+
+mouse_set_ble_mult:
+3e64 1a227e00 copy rega ,pdata 
+3e65 243a1b26 nbranch le_set_config_short_mult ,blank 
+3e66 20201b28 branch le_clr_config_short_mult 
+
+mouse_set_bt_mult:
+3e67 1a227e00 copy rega ,pdata 
+3e68 243a1540 nbranch classic_bt_set_mult_short_flag ,blank 
+3e69 20201542 branch classic_bt_clr_mult_short_flag 
+
+mouse_adc_gpio_set:
+3e6a 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+3e6b c1810000 rtnne adc_config_gpio 
+
+mouse_adc_gpio_check_output:
+3e6c 44e5c019 bpatch patch19_3 ,mem_patch19 
+3e6d 6848c4a1 fetcht 1 ,mem_adc_channel 
+3e6e 18467c03 sub temp ,3 ,null 
+3e6f 20213e78 branch mouse_adc_gpio_4_7_set ,positive 
+3e70 18408405 increase 5 ,temp 
+3e71 6048c8fc storet 1 ,mem_adc_channel_gpio 
+
+mouse_adc_gpio_set_next:
+3e72 18422200 copy temp ,rega 
+3e73 20406098 call gpio_get_config 
+3e74 c01fc954 beq gpcfg_output_high ,mouse_set_24g_led_statue 
+3e75 20404952 call mouse_clear_24g_led_statue 
+3e76 1a220400 copy rega ,temp 
+3e77 2020607f branch gpio_set_high_impedance 
+
+mouse_adc_gpio_4_7_set:
+3e78 18408404 increase 4 ,temp 
+3e79 6048c8fc storet 1 ,mem_adc_channel_gpio 
+3e7a 20203e72 branch mouse_adc_gpio_set_next 
+
+mouse_adc_vol_init:
+3e7b 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+3e7c c0013e84 beq adc_config_gpio ,mouse_adc_gpio_vol_init 
+3e7d c0003e89 beq adc_config_vinlpm ,mouse_adc_gpio_vinlpm_init 
+3e7e 7048fd00 jam adc_config_vinlpm ,mem_adc_config_flag_init 
+3e7f 582c0172 setarg 0x2c0172 
+3e80 67e1c8e3 store 3 ,mem_mouse_vdd_full_vol 
+3e81 58014001 setarg 0x014001 
+3e82 e7e18005 istore 3 ,contw 
+3e83 20600000 rtn 
+
+mouse_adc_gpio_vol_init:
+3e84 585d0099 setarg 0x5d0099 
+3e85 67e1c8e3 store 3 ,mem_mouse_vdd_full_vol 
+3e86 58007100 setarg 0x007100 
+3e87 e7e18005 istore 3 ,contw 
+3e88 20600000 rtn 
+
+mouse_adc_gpio_vinlpm_init:
+3e89 58c8012c setarg 0xc8012c 
+3e8a 67e1c8e3 store 3 ,mem_mouse_vdd_full_vol 
+3e8b 5800dc00 setarg 0x00dc00 
+3e8c e7e18005 istore 3 ,contw 
+3e8d 20600000 rtn 
+
+mouse_adc_gpio_mux_init:
+3e8e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3e8f c40a0000 rtnbit0 mouse_enable_adc 
+3e90 7048f501 jam mouse_adc_check_multiple ,mem_adc_mux_status 
+3e91 c3970000 rtnbit1 mouse_enable_dpi_key_connect_adc 
+3e92 c3958000 rtnbit1 mouse_enable_select_device_by_switch_adc 
+3e93 7048f500 jam mouse_adc_check_battery_only ,mem_adc_mux_status 
+3e94 20600000 rtn 
+
+mouse_adc_read_interval:
+3e95 6fe0c8f6 fetch 1 ,mem_adc_read_timer 
+3e96 1fe0fe01 increase 1 ,pdata 
+3e97 67e0c8f6 store 1 ,mem_adc_read_timer 
+3e98 6848c8f7 fetcht 1 ,mem_adc_read_time_init 
+3e99 98467c00 isub temp ,null 
+3e9a 20600000 rtn 
+
+mouse_adc_read:
+3e9b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3e9c c40a0000 rtnbit0 mouse_enable_adc 
+3e9d 20403e6a call mouse_adc_gpio_set 
+3e9e 6fe0c8f5 fetch 1 ,mem_adc_mux_status 
+3e9f 203a3eb2 branch mouse_adc_read_battery ,blank 
+3ea0 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+3ea1 c0013ea7 beq adc_config_gpio ,mouse_adc_read_gpio_mux_start 
+3ea2 7048f503 jam mouse_adc_check_vinlpm_multiple ,mem_adc_mux_status 
+3ea3 20403e95 call mouse_adc_read_interval 
+3ea4 20213ea9 branch mouse_adc_read_gpio ,positive 
+3ea5 20403eae call mouse_adc_read_vinlpm 
+3ea6 20203eb8 branch mouse_adc_read_start 
+
+mouse_adc_read_gpio_mux_start:
+3ea7 7048f502 jam mouse_adc_check_gpio_multiple ,mem_adc_mux_status 
+3ea8 20203eb8 branch mouse_adc_read_start 
+
+mouse_adc_read_gpio:
+3ea9 20403e6c call mouse_adc_gpio_check_output 
+3eaa 7044a002 jam adc_config_gpio ,mem_adc_config_flag 
+3eab 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+3eac 245a3eae ncall mouse_adc_read_vinlpm ,blank 
+3ead 20203eb8 branch mouse_adc_read_start 
+
+mouse_adc_read_vinlpm:
+3eae 7048f600 jam 0 ,mem_adc_read_timer 
+3eaf 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+3eb0 67e0c4a0 store 1 ,mem_adc_config_flag 
+3eb1 20600000 rtn 
+
+mouse_adc_read_battery:
+3eb2 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+3eb3 c0813eb6 bne adc_config_gpio ,mouse_adc_read_battery_start 
+3eb4 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+3eb5 247a0000 nrtn blank 
+
+mouse_adc_read_battery_start:
+3eb6 20403e95 call mouse_adc_read_interval 
+3eb7 24610000 nrtn positive 
+
+mouse_adc_read_start:
+3eb8 44e64019 bpatch patch19_4 ,mem_patch19 
+3eb9 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+3eba 247a0000 nrtn blank 
+3ebb 7048f600 jam 0 ,mem_adc_read_timer 
+3ebc 20406125 call vdd_calculate_by_mode 
+3ebd 67e148e9 store 2 ,mem_mouse_vdd_now_vol 
+3ebe 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+3ebf c0813ec6 bne adc_config_gpio ,mouse_adc_data_process 
+3ec0 684948e9 fetcht 2 ,mem_mouse_vdd_now_vol 
+3ec1 184ffe08 mul32 temp ,8 ,pdata 
+3ec2 1fe6fc0a div pdata ,10 
+3ec3 20407dec call get_div_result 
+3ec4 9840fe00 iadd temp ,pdata 
+3ec5 67e148e9 store 2 ,mem_mouse_vdd_now_vol 
+
+mouse_adc_data_process:
+3ec6 da2048e3 arg mem_mouse_vdd_calculate_set ,rega 
+3ec7 20403ed8 call mouse_adc_bat_percent_lowpower_out 
+3ec8 6fe0c4a4 fetch 1 ,mem_adc_power_flag 
+3ec9 c2813f1a bbit1 2 ,mouse_adc_button_press 
+3eca c280bf1c bbit1 1 ,mouse_power_down 
+3ecb c3003ed0 bbit0 0 ,mouse_adc_no_low_voltage 
+
+mouse_adc_data_process_next:
+3ecc 7048fa01 jam 1 ,mem_mouse_adc_last_low_voltage_flag 
+3ecd 20203ece branch mouse_adc_low_voltage 
+
+mouse_adc_low_voltage:
+3ece d8e00004 arg mouse_low_voltage_flag ,queue 
+3ecf 202046f0 branch mouse_enable_function_flag 
+
+mouse_adc_no_low_voltage:
+3ed0 d8e00004 arg mouse_low_voltage_flag ,queue 
+3ed1 204046f4 call mouse_disable_function_flag 
+3ed2 7048f80c jam 12 ,mem_adc_low_volatage_led_timer_count 
+3ed3 6fe0c8fa fetch 1 ,mem_mouse_adc_last_low_voltage_flag 
+3ed4 207a0000 rtn blank 
+3ed5 7048fa00 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
+3ed6 6848c921 fetcht 1 ,mem_config_low_voltage_alarm_gpio 
+3ed7 2020492b branch mouse_led_off 
+
+mouse_adc_bat_percent_lowpower_out:
+3ed8 44e6c019 bpatch patch19_5 ,mem_patch19 
+3ed9 efe40011 ifetch 8 ,rega 
+3eda 67e4095c store 8 ,mem_pdatatemp 
+3edb 6fe0c8f5 fetch 1 ,mem_adc_mux_status 
+3edc c0003ef0 beq mouse_adc_check_battery_only ,mouse_adc_bat_percent_lowpower_out_battery 
+3edd c0013edf beq mouse_adc_check_gpio_multiple ,mouse_adc_bat_percent_lowpower_out_gpio_multiple 
+3ede c001bf0f beq mouse_adc_check_vinlpm_multiple ,mouse_adc_bat_percent_lowpower_out_vinlpm_multiple 
+
+mouse_adc_bat_percent_lowpower_out_gpio_multiple:
+3edf 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3ee0 c3173ee5 bbit0 mouse_enable_dpi_key_connect_adc ,mouse_adc_bat_percent_lowpower_out_gpio_switch 
+3ee1 6fe10962 fetch 2 ,mem_pdatatemp + 6 
+3ee2 684948eb fetcht 2 ,mem_mouse_vdd_button_press_vol 
+3ee3 98467c00 isub temp ,null 
+3ee4 24213f12 nbranch mouse_adc_set_button_press_flag ,positive 
+
+mouse_adc_bat_percent_lowpower_out_gpio_switch:
+3ee5 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+3ee6 c315bef0 bbit0 mouse_enable_select_device_by_switch_adc ,mouse_adc_bat_percent_lowpower_out_battery 
+3ee7 7048fb00 jam 0 ,mem_mouse_adc_button_press_flag 
+3ee8 6fe10962 fetch 2 ,mem_pdatatemp + 6 
+3ee9 684948ed fetcht 2 ,mem_mouse_vdd_switch_gnd_24g_vol 
+3eea 98467c00 isub temp ,null 
+3eeb 24213eee nbranch mouse_select_24gdevice ,positive 
+3eec 204046a9 call mouse_select_btdevice 
+3eed 20203ef0 branch mouse_adc_bat_percent_lowpower_out_battery 
+
+mouse_select_24gdevice:
+3eee 204046ad call mouse_check_select_24gdevice 
+3eef 20203ef0 branch mouse_adc_bat_percent_lowpower_out_battery 
+
+mouse_adc_bat_percent_lowpower_out_battery:
+3ef0 20403f16 call mouse_adc_clear_button_press_flag 
+3ef1 2040616e call adc_clear_no_power_flag 
+3ef2 20406166 call adc_clear_low_power_flag 
+3ef3 6fe10962 fetch 2 ,mem_pdatatemp + 6 
+3ef4 6849095e fetcht 2 ,mem_pdatatemp + 2 
+3ef5 98467c00 isub temp ,null 
+3ef6 2441616a ncall adc_set_no_power_flag ,positive 
+3ef7 68490960 fetcht 2 ,mem_pdatatemp + 4 
+3ef8 98467c00 isub temp ,null 
+3ef9 24416162 ncall adc_set_low_power_flag ,positive 
+
+mouse_adc_bat_level_set:
+3efa 6fe10962 fetch 2 ,mem_pdatatemp + 6 
+3efb 6849095c fetcht 2 ,mem_pdatatemp 
+3efc 98467c00 isub temp ,null 
+3efd 20213f0b branch mouse_adc_bat_level_100_percent ,positive 
+3efe 6849095e fetcht 2 ,mem_pdatatemp + 2 
+3eff 98467e00 isub temp ,pdata 
+3f00 24213f0d nbranch mouse_adc_bat_level_0_percent ,positive 
+3f01 203a3f0d branch mouse_adc_bat_level_0_percent ,blank 
+3f02 1fefa264 mul32 pdata ,100 ,rega 
+3f03 6fe1095c fetch 2 ,mem_pdatatemp 
+3f04 6849095e fetcht 2 ,mem_pdatatemp + 2 
+3f05 98460400 isub temp ,temp 
+3f06 1a227e00 copy rega ,pdata 
+3f07 9846fc00 idiv temp 
+3f08 20407dec call get_div_result 
+3f09 67e0caef store 1 ,mem_le_battery_level_percentage 
+3f0a 20600000 rtn 
+
+mouse_adc_bat_level_100_percent:
+3f0b 704aef64 jam 100 ,mem_le_battery_level_percentage 
+3f0c 20600000 rtn 
+
+mouse_adc_bat_level_0_percent:
+3f0d 704aef00 jam 0 ,mem_le_battery_level_percentage 
+3f0e 20600000 rtn 
+
+mouse_adc_bat_percent_lowpower_out_vinlpm_multiple:
+3f0f 6fe0c4a0 fetch 1 ,mem_adc_config_flag 
+3f10 c0013edf beq adc_config_gpio ,mouse_adc_bat_percent_lowpower_out_gpio_multiple 
+3f11 20203ef0 branch mouse_adc_bat_percent_lowpower_out_battery 
+
+mouse_adc_set_button_press_flag:
+3f12 6848c4a4 fetcht 1 ,mem_adc_power_flag 
+3f13 79200402 set1 2 ,temp 
+3f14 6048c4a4 storet 1 ,mem_adc_power_flag 
+3f15 20600000 rtn 
+
+mouse_adc_clear_button_press_flag:
+3f16 6848c4a4 fetcht 1 ,mem_adc_power_flag 
+3f17 793f8402 set0 2 ,temp 
+3f18 6048c4a4 storet 1 ,mem_adc_power_flag 
+3f19 20600000 rtn 
+
+mouse_adc_button_press:
+3f1a 7048fb01 jam 1 ,mem_mouse_adc_button_press_flag 
+3f1b 20600000 rtn 
+
+mouse_power_down:
+3f1c 2040490e call mouse_device_led_all_off 
+3f1d 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_gpio_init:
+3f1e 6848c4c1 fetcht 1 ,mem_eeprom_wp_gpio 
+3f1f 20406069 call gpio_config_output 
+3f20 204079b4 call usb_offline_check_init 
+3f21 6848c918 fetcht 1 ,mem_lbutton_gpio 
+3f22 20403f56 call mouse_gpio_config_input_pu 
+3f23 6848c919 fetcht 1 ,mem_rbutton_gpio 
+3f24 20403f56 call mouse_gpio_config_input_pu 
+3f25 6848c91a fetcht 1 ,mem_mbutton_gpio 
+3f26 20403f56 call mouse_gpio_config_input_pu 
+3f27 6848c90d fetcht 1 ,mem_bk_button_gpio 
+3f28 20403f56 call mouse_gpio_config_input_pu 
+3f29 6848c90e fetcht 1 ,mem_fw_button_gpio 
+3f2a 20403f56 call mouse_gpio_config_input_pu 
+3f2b 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+3f2c 20403f56 call mouse_gpio_config_input_pu 
+3f2d 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+3f2e 20403f56 call mouse_gpio_config_input_pu 
+3f2f 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+3f30 20403f56 call mouse_gpio_config_input_pu 
+3f31 6848c912 fetcht 1 ,mem_customer_key_gpio 
+3f32 20403f56 call mouse_gpio_config_input_pu 
+3f33 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+3f34 20403f56 call mouse_gpio_config_input_pu 
+3f35 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+3f36 20403f56 call mouse_gpio_config_input_pu 
+3f37 6848c91c fetcht 1 ,mem_whee_ta_data_gpio 
+3f38 20403f56 call mouse_gpio_config_input_pu 
+3f39 6848c91d fetcht 1 ,mem_whee_tb_data_gpio 
+3f3a 20403f56 call mouse_gpio_config_input_pu 
+3f3b 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+3f3c 20403f56 call mouse_gpio_config_input_pu 
+3f3d 6848c91e fetcht 1 ,mem_device_switch_gpio 
+3f3e 20403f56 call mouse_gpio_config_input_pu 
+3f3f 6848caab fetcht 1 ,mem_sensor_reset_gpio 
+3f40 20406069 call gpio_config_output 
+3f41 6848c921 fetcht 1 ,mem_config_low_voltage_alarm_gpio 
+3f42 20406069 call gpio_config_output 
+3f43 6848c915 fetcht 1 ,mem_config_device_24g_led_gpio 
+3f44 20406069 call gpio_config_output 
+3f45 6848c916 fetcht 1 ,mem_config_device_bt1_led_gpio 
+3f46 20406069 call gpio_config_output 
+3f47 6848c922 fetcht 1 ,mem_config_device_bt2_led_gpio 
+3f48 20406069 call gpio_config_output 
+3f49 6848c923 fetcht 1 ,mem_dpi_led_gpio 
+3f4a 20406069 call gpio_config_output 
+3f4b 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
+3f4c 20203f56 branch mouse_gpio_config_input_pu 
+
+mouse_gpio_set_pupd_by_input:
+3f4d 18467cff sub temp ,ui_button_gpio_disable ,null 
+3f4e 20628000 rtn zero 
+3f4f 18410e7f and temp ,0x7f ,queue 
+3f50 6ff2011c fetch 4 ,core_gpio_in 
+3f51 afefffff qisolate1 pdata 
+3f52 2020bf56 branch mouse_gpio_config_input_pu ,true 
+3f53 20203f54 branch mouse_gpio_config_input_pd 
+
+mouse_gpio_config_input_pd:
+3f54 79200407 set1 gpio_active_bit ,temp 
+3f55 20206050 branch gpio_config_input 
+
+mouse_gpio_config_input_pu:
+3f56 793f8407 set0 gpio_active_bit ,temp 
+3f57 20206050 branch gpio_config_input 
+
+mouse_gpio_set_high_impedance:
+3f58 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+3f59 67e1895c store 3 ,mem_pdatatemp 
+3f5a df200014 arg 20 ,loopcnt 
+3f5b d8400000 arg 0 ,temp 
+
+mouse_gpio_set_high_impedance_bit_loop:
+3f5c 6fe1895c fetch 3 ,mem_pdatatemp 
+3f5d 2feffe00 isolate1 0 ,pdata 
+3f5e 2040e07f call gpio_set_high_impedance ,true 
+3f5f 6fe1895c fetch 3 ,mem_pdatatemp 
+3f60 1fe3fe00 lshift pdata ,pdata 
+3f61 67e1895c store 3 ,mem_pdatatemp 
+3f62 18408401 increase 1 ,temp 
+3f63 c2003f5c loop mouse_gpio_set_high_impedance_bit_loop 
+3f64 20600000 rtn 
+
+mouse_sensor_spi_init:
+3f65 20403f6a call mouse_spid_init_pin 
+3f66 70448473 jam 0x73 ,mem_spi_init_clk 
+3f67 20403f69 call mouse_spi_init 
+3f68 20205b08 branch twspi_enable 
+
+mouse_spi_write_flash_cb:
+
+mouse_spi_init:
+3f69 20205cb5 branch spid_init 
+
+mouse_spid_init_pin:
+3f6a 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+3f6b d8400021 arg gpcfg_spid_sck ,temp 
+3f6c 20406093 call gpio_config_function_int 
+3f6d 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+3f6e d8400023 arg gpcfg_spid_sdio ,temp 
+3f6f 20206093 branch gpio_config_function_int 
+
+mouse_motion:
+3f70 44e74019 bpatch patch19_6 ,mem_patch19 
+3f71 78547c00 disable user 
+3f72 58000000 setarg 0 
+3f73 67e348d1 store 6 ,mem_mouse_x 
+3f74 20404240 call mouse_check_sensor_data 
+3f75 20403f7e call mouse_zwheel 
+3f76 20403f83 call mouse_t_zwheel 
+3f77 204040dc call mouse_key 
+3f78 6fe0c8d0 fetch 1 ,mem_mouse_key 
+3f79 1fe17e1f and_into 0x1f ,pdata 
+3f7a 67e0c8d0 store 1 ,mem_mouse_key 
+3f7b 24344728 nbranch mouse_drawing_optima_init ,user 
+3f7c 2040471a call mouse_drawing_optima 
+3f7d 20204544 branch mouse_no_data_timer_init 
+
+mouse_zwheel:
+3f7e 6fe0c8e0 fetch 1 ,mem_mouse_z_data 
+3f7f 207a0000 rtn blank 
+3f80 67e0c8d5 store 1 ,mem_mouse_z 
+3f81 7048e000 jam 0 ,mem_mouse_z_data 
+3f82 20207e54 branch enable_user 
+
+mouse_t_zwheel:
+3f83 6fe0c8dc fetch 1 ,mem_mouse_tz_data 
+3f84 207a0000 rtn blank 
+3f85 67e0c8d6 store 1 ,mem_mouse_tz 
+3f86 7048dc00 jam 0 ,mem_mouse_tz_data 
+3f87 20207e54 branch enable_user 
+
+mouse_wheel_check:
+3f88 20403f95 call mouse_t_wheel_scan 
+3f89 20403fd1 call mouse_wheel_scan 
+3f8a 6fe0c8da fetch 1 ,mem_wheel_tb_new_pinlevel 
+3f8b 6848c8d9 fetcht 1 ,mem_wheel_tb_old_pinlevel 
+3f8c 67e0c8d9 store 1 ,mem_wheel_tb_old_pinlevel 
+3f8d 98467c00 isub temp ,null 
+3f8e 2422b1e1 nbranch app_lpm_wake_auto_lock ,zero 
+3f8f 6fe0c8de fetch 1 ,mem_mwheel_b_new_pinlevel 
+3f90 6848c8dd fetcht 1 ,mem_mwheel_b_old_pinlevel 
+3f91 67e0c8dd store 1 ,mem_mwheel_b_old_pinlevel 
+3f92 98467c00 isub temp ,null 
+3f93 2422b1e1 nbranch app_lpm_wake_auto_lock ,zero 
+3f94 20600000 rtn 
+
+mouse_t_wheel_scan:
+3f95 6fe0c91c fetch 1 ,mem_whee_ta_data_gpio 
+3f96 c17f8000 rtneq gpio_disable 
+3f97 da200000 arg 0 ,rega 
+3f98 6848c91c fetcht 1 ,mem_whee_ta_data_gpio 
+3f99 20406059 call gpio_get_bit 
+3f9a 7920a200 setflag true ,0 ,rega 
+3f9b 6848c91d fetcht 1 ,mem_whee_tb_data_gpio 
+3f9c 20406059 call gpio_get_bit 
+3f9d 7920a201 setflag true ,1 ,rega 
+3f9e 1a227e00 copy rega ,pdata 
+3f9f 67e0c8da store 1 ,mem_wheel_tb_new_pinlevel 
+3fa0 c000bfa5 beq 0x01 ,mouse_t_wheel_scan_judge1 
+3fa1 c0013fa9 beq 0x02 ,mouse_t_wheel_scan_judge2 
+3fa2 6fe0c8db fetch 1 ,mem_wheel_tog 
+3fa3 c283bfb5 bbit1 7 ,mouse_t_wheel_scan_judge3 
+3fa4 20600000 rtn 
+
+mouse_t_wheel_scan_judge1:
+3fa5 6fe0c8d9 fetch 1 ,mem_wheel_tb_old_pinlevel 
+3fa6 c0003fad beq 0 ,mouse_t_wheel_scan_judge11 
+3fa7 c001bfaf beq 3 ,mouse_t_wheel_scan_judge12 
+3fa8 20600000 rtn 
+
+mouse_t_wheel_scan_judge2:
+3fa9 6fe0c8d9 fetch 1 ,mem_wheel_tb_old_pinlevel 
+3faa c0003fb1 beq 0 ,mouse_t_wheel_scan_judge21 
+3fab c001bfb3 beq 3 ,mouse_t_wheel_scan_judge22 
+3fac 20600000 rtn 
+
+mouse_t_wheel_scan_judge11:
+3fad 7048db82 jam 0x82 ,mem_wheel_tog 
+3fae 20600000 rtn 
+
+mouse_t_wheel_scan_judge12:
+3faf 7048db81 jam 0x81 ,mem_wheel_tog 
+3fb0 20600000 rtn 
+
+mouse_t_wheel_scan_judge21:
+3fb1 7048db80 jam 0x80 ,mem_wheel_tog 
+3fb2 20600000 rtn 
+
+mouse_t_wheel_scan_judge22:
+3fb3 7048db83 jam 0x83 ,mem_wheel_tog 
+3fb4 20600000 rtn 
+
+mouse_t_wheel_scan_judge3:
+3fb5 6fe0c8db fetch 1 ,mem_wheel_tog 
+3fb6 793ffe07 set0 7 ,pdata 
+3fb7 67e0c8db store 1 ,mem_wheel_tog 
+3fb8 c0003fbd beq 0 ,mouse_t_wheel_scan_judge30 
+3fb9 c000bfc0 beq 1 ,mouse_t_wheel_scan_judge31 
+3fba c0013fc3 beq 2 ,mouse_t_wheel_scan_judge32 
+3fbb c001bfc6 beq 3 ,mouse_t_wheel_scan_judge33 
+3fbc 20600000 rtn 
+
+mouse_t_wheel_scan_judge30:
+3fbd 6fe0c8da fetch 1 ,mem_wheel_tb_new_pinlevel 
+3fbe c001bfc9 beq 3 ,mouse_wheel_t_forward 
+3fbf 20600000 rtn 
+
+mouse_t_wheel_scan_judge31:
+3fc0 6fe0c8da fetch 1 ,mem_wheel_tb_new_pinlevel 
+3fc1 c0003fc9 beq 0 ,mouse_wheel_t_forward 
+3fc2 20600000 rtn 
+
+mouse_t_wheel_scan_judge32:
+3fc3 6fe0c8da fetch 1 ,mem_wheel_tb_new_pinlevel 
+3fc4 c001bfcd beq 3 ,mouse_wheel_t_back 
+3fc5 20600000 rtn 
+
+mouse_t_wheel_scan_judge33:
+3fc6 6fe0c8da fetch 1 ,mem_wheel_tb_new_pinlevel 
+3fc7 c0003fcd beq 0 ,mouse_wheel_t_back 
+3fc8 20600000 rtn 
+
+mouse_wheel_t_forward:
+3fc9 6fe0c8dc fetch 1 ,mem_mouse_tz_data 
+3fca 1fe0fe01 increase 1 ,pdata 
+3fcb 67e0c8dc store 1 ,mem_mouse_tz_data 
+3fcc 20600000 rtn 
+
+mouse_wheel_t_back:
+3fcd 6fe0c8dc fetch 1 ,mem_mouse_tz_data 
+3fce 1fe0ffff increase -1 ,pdata 
+3fcf 67e0c8dc store 1 ,mem_mouse_tz_data 
+3fd0 20600000 rtn 
+
+mouse_wheel_scan:
+3fd1 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+3fd2 c17f8000 rtneq gpio_disable 
+3fd3 da200000 arg 0 ,rega 
+3fd4 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+3fd5 20406059 call gpio_get_bit 
+3fd6 7920a200 setflag true ,0 ,rega 
+3fd7 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+3fd8 20406059 call gpio_get_bit 
+3fd9 7920a201 setflag true ,1 ,rega 
+3fda 1a227e00 copy rega ,pdata 
+3fdb 67e0c8de store 1 ,mem_mwheel_b_new_pinlevel 
+3fdc c000bfe1 beq 0x01 ,mouse_wheel_scan_judge1 
+3fdd c0013fe5 beq 0x02 ,mouse_wheel_scan_judge2 
+3fde 6fe0c8df fetch 1 ,mem_mwheel_tog 
+3fdf c283bff1 bbit1 7 ,mouse_wheel_scan_judge3 
+3fe0 20600000 rtn 
+
+mouse_wheel_scan_judge1:
+3fe1 6fe0c8dd fetch 1 ,mem_mwheel_b_old_pinlevel 
+3fe2 c0003fe9 beq 0 ,mouse_wheel_scan_judge11 
+3fe3 c001bfeb beq 3 ,mouse_wheel_scan_judge12 
+3fe4 20600000 rtn 
+
+mouse_wheel_scan_judge2:
+3fe5 6fe0c8dd fetch 1 ,mem_mwheel_b_old_pinlevel 
+3fe6 c0003fed beq 0 ,mouse_wheel_scan_judge21 
+3fe7 c001bfef beq 3 ,mouse_wheel_scan_judge22 
+3fe8 20600000 rtn 
+
+mouse_wheel_scan_judge11:
+3fe9 7048df82 jam 0x82 ,mem_mwheel_tog 
+3fea 20600000 rtn 
+
+mouse_wheel_scan_judge12:
+3feb 7048df81 jam 0x81 ,mem_mwheel_tog 
+3fec 20600000 rtn 
+
+mouse_wheel_scan_judge21:
+3fed 7048df80 jam 0x80 ,mem_mwheel_tog 
+3fee 20600000 rtn 
+
+mouse_wheel_scan_judge22:
+3fef 7048df83 jam 0x83 ,mem_mwheel_tog 
+3ff0 20600000 rtn 
+
+mouse_wheel_scan_judge3:
+3ff1 6fe0c8df fetch 1 ,mem_mwheel_tog 
+3ff2 793ffe07 set0 7 ,pdata 
+3ff3 67e0c8df store 1 ,mem_mwheel_tog 
+3ff4 c0003ff9 beq 0 ,mouse_wheel_scan_judge30 
+3ff5 c000bffc beq 1 ,mouse_wheel_scan_judge31 
+3ff6 c0013fff beq 2 ,mouse_wheel_scan_judge32 
+3ff7 c001c002 beq 3 ,mouse_wheel_scan_judge33 
+3ff8 20600000 rtn 
+
+mouse_wheel_scan_judge30:
+3ff9 6fe0c8de fetch 1 ,mem_mwheel_b_new_pinlevel 
+3ffa c001c005 beq 3 ,mouse_wheel_forward 
+3ffb 20600000 rtn 
+
+mouse_wheel_scan_judge31:
+3ffc 6fe0c8de fetch 1 ,mem_mwheel_b_new_pinlevel 
+3ffd c0004005 beq 0 ,mouse_wheel_forward 
+3ffe 20600000 rtn 
+
+mouse_wheel_scan_judge32:
+3fff 6fe0c8de fetch 1 ,mem_mwheel_b_new_pinlevel 
+4000 c001c009 beq 3 ,mouse_wheel_back 
+4001 20600000 rtn 
+
+mouse_wheel_scan_judge33:
+4002 6fe0c8de fetch 1 ,mem_mwheel_b_new_pinlevel 
+4003 c0004009 beq 0 ,mouse_wheel_back 
+4004 20600000 rtn 
+
+mouse_wheel_forward:
+4005 6fe0c8e0 fetch 1 ,mem_mouse_z_data 
+4006 1fe0fe01 increase 1 ,pdata 
+4007 67e0c8e0 store 1 ,mem_mouse_z_data 
+4008 20600000 rtn 
+
+mouse_wheel_back:
+4009 6fe0c8e0 fetch 1 ,mem_mouse_z_data 
+400a 1fe0ffff increase -1 ,pdata 
+400b 67e0c8e0 store 1 ,mem_mouse_z_data 
+400c 20600000 rtn 
+
+mouse_wheel_gpio_set_wake:
+400d 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+400e 20406032 call gpio_set_wake_by_current_state 
+400f 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+4010 20406032 call gpio_set_wake_by_current_state 
+4011 6848c91c fetcht 1 ,mem_whee_ta_data_gpio 
+4012 20406032 call gpio_set_wake_by_current_state 
+4013 6848c91d fetcht 1 ,mem_whee_tb_data_gpio 
+4014 20206032 branch gpio_set_wake_by_current_state 
+
+mouse_before_hibernate_wheel_gpio_set:
+4015 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+4016 20403f4d call mouse_gpio_set_pupd_by_input 
+4017 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+4018 20403f4d call mouse_gpio_set_pupd_by_input 
+4019 6848c91c fetcht 1 ,mem_whee_ta_data_gpio 
+401a 20403f4d call mouse_gpio_set_pupd_by_input 
+401b 6848c91d fetcht 1 ,mem_whee_tb_data_gpio 
+401c 20203f4d branch mouse_gpio_set_pupd_by_input 
+
+mouse_wheel_trigger:
+401d 6fe148d5 fetch 2 ,mem_mouse_z 
+401e 207a0000 rtn blank 
+401f 7048e101 jam 1 ,mem_mouse_wheel_trigger 
+4020 7048e20a jam 10 ,mem_mouse_wheel_trigger_timer 
+4021 20600000 rtn 
+
+mouse_wheel_trigger_timer:
+4022 da6048e2 arg mem_mouse_wheel_trigger_timer ,regc 
+4023 da404025 arg mouse_wheel_trigger_disable ,regb 
+4024 2020318a branch timer_single_step 
+
+mouse_wheel_trigger_disable:
+4025 7048e100 jam 0 ,mem_mouse_wheel_trigger 
+4026 20600000 rtn 
+
+mouse_dpi_check:
+4027 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4028 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
+4029 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+402a c17f8000 rtneq gpio_disable 
+402b da200000 arg 0 ,rega 
+402c 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+402d 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+402e 20404039 call mouse_dpi_key_check 
+
+mouse_dpi_check_next:
+402f 67e0cb93 store 1 ,mem_mouse_dpikey_press_status 
+4030 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+4031 c07fc042 beq gpio_disable ,mouse_3io6key_dpi_check_end 
+4032 20404168 call mouse_matrix_public_gpio_reset 
+
+mouse_dpi_check_exit:
+4033 1a227e00 copy rega ,pdata 
+4034 c282c052 bbit1 mouse_dpi_key ,mouse_dpi_down 
+4035 20204059 branch mouse_dpi_up 
+
+mouse_dpi_check_connect_adc:
+4036 6fe0c8fb fetch 1 ,mem_mouse_adc_button_press_flag 
+4037 203a4059 branch mouse_dpi_up ,blank 
+4038 20204052 branch mouse_dpi_down 
+
+mouse_dpi_key_check:
+4039 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+403a c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+403b 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+403c 1fe22600 copy pdata ,regc 
+403d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+403e c07fc195 beq gpio_disable ,mouse_3io6key_check 
+
+mouse_dpi_key_check_next:
+403f 6fe0cb9a fetch 1 ,mem_mouse_ghost_flag 
+4040 243a4045 nbranch mouse_dpi_check_end ,blank 
+4041 2020404a branch mouse_dpi_key_connect_matrix 
+
+mouse_3io6key_dpi_check_end:
+4042 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+4043 20403f56 call mouse_gpio_config_input_pu 
+4044 20204033 branch mouse_dpi_check_exit 
+
+mouse_dpi_check_end:
+4045 7049dd00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+4046 704b9300 jam 0 ,mem_mouse_dpikey_press_status 
+4047 20600000 rtn 
+
+mouse_dpi_key_connect_gnd:
+4048 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+4049 20204187 branch mouse_check_key_connect_gnd 
+
+mouse_dpi_key_connect_matrix:
+404a 20406059 call gpio_get_bit 
+404b 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+404c 2020c048 branch mouse_dpi_key_connect_gnd ,true 
+404d 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+404e 20406069 call gpio_out_active 
+404f 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+4050 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+4051 20204187 branch mouse_check_key_connect_gnd 
+
+mouse_dpi_down:
+4052 6fe0c9dd fetch 1 ,mem_mouse_dpi_button_state 
+4053 c1008000 rtneq dpi_button_state_down 
+4054 7049dd01 jam dpi_button_state_down ,mem_mouse_dpi_button_state 
+4055 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4056 c3940000 rtnbit1 mouse_enable_select_device_by_dpi_button 
+4057 c39b0000 rtnbit1 mouse_enable_dpi_key_long_press_disconvery 
+4058 20204069 branch mouse_dpi_process 
+
+mouse_dpi_up:
+4059 6fe0c9dd fetch 1 ,mem_mouse_dpi_button_state 
+405a c1000000 rtneq dpi_button_state_up 
+405b 7049dd00 jam dpi_button_state_up ,mem_mouse_dpi_button_state 
+405c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+405d c2944060 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_dpi_up_next 
+405e c29b4060 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_dpi_up_next 
+405f 20600000 rtn 
+
+mouse_dpi_up_next:
+4060 6fe0c9de fetch 1 ,mem_mouse_dpi_long_press_flag 
+4061 243a4064 nbranch mouse_dpi_up_after_long_press ,blank 
+4062 6fe0cb9c fetch 1 ,mem_select_device_count 
+4063 245a4069 ncall mouse_dpi_process ,blank 
+
+mouse_dpi_up_after_long_press:
+4064 7049de00 jam 0 ,mem_mouse_dpi_long_press_flag 
+4065 6fe0c78f fetch 1 ,mem_ui_button_timeout 
+4066 67e0cb9c store 1 ,mem_select_device_count 
+4067 67e0cb9b store 1 ,mem_bt_discovery_count 
+4068 20600000 rtn 
+
+mouse_dpi_process:
+4069 44e7c019 bpatch patch19_7 ,mem_patch19 
+406a 20404072 call mouse_dpi_ghost_check 
+406b 20740000 rtn user 
+406c 6fe0c992 fetch 1 ,mem_mouse_dpi 
+406d 1fe0fe01 increase 1 ,pdata 
+406e 1fe17e03 and pdata ,0x03 ,pdata 
+406f 67e0c992 store 1 ,mem_mouse_dpi 
+4070 20404095 call mouse_seting_dpi 
+4071 202045ee branch mouse_store_device_info_delay 
+
+mouse_dpi_ghost_check:
+4072 78547c00 disable user 
+4073 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4074 c3960000 rtnbit1 mouse_enable_dpi_key_connect_gnd 
+4075 c3970000 rtnbit1 mouse_enable_dpi_key_connect_adc 
+4076 6fe0cb8e fetch 1 ,mem_mouse_lkey_press_status 
+4077 207a0000 rtn blank 
+4078 6fe0cb8f fetch 1 ,mem_mouse_rkey_press_status 
+4079 207a0000 rtn blank 
+407a 78347c00 enable user 
+407b 20600000 rtn 
+
+mouse_dpi_key_check_long_press:
+407c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+407d c2944080 bbit1 mouse_enable_select_device_by_dpi_button ,mouse_select_device_by_dpi_button 
+407e c29b4087 bbit1 mouse_enable_dpi_key_long_press_disconvery ,mouse_discovery_by_dpi_button 
+407f 20600000 rtn 
+
+mouse_select_device_by_dpi_button:
+4080 6fe0c9dd fetch 1 ,mem_mouse_dpi_button_state 
+4081 c1808000 rtnne dpi_button_state_down 
+4082 da604b9c arg mem_select_device_count ,regc 
+4083 da404085 arg mouse_ready_reconnection_by_dpi_button ,regb 
+4084 2020318a branch timer_single_step 
+
+mouse_ready_reconnection_by_dpi_button:
+4085 7049de01 jam 1 ,mem_mouse_dpi_long_press_flag 
+4086 202046b5 branch mouse_ready_reconnection_by_button 
+
+mouse_discovery_by_dpi_button:
+4087 6fe0c9dd fetch 1 ,mem_mouse_dpi_button_state 
+4088 c1808000 rtnne dpi_button_state_down 
+4089 da604b9b arg mem_bt_discovery_count ,regc 
+408a da40408c arg mouse_long_dpi_button_bt_discovery ,regb 
+408b 2020318a branch timer_single_step 
+
+mouse_long_dpi_button_bt_discovery:
+408c 7049de01 jam 1 ,mem_mouse_dpi_long_press_flag 
+408d 202044d4 branch mouse_long_button_bt_discovery 
+
+mouse_dpi_config:
+408e 20204098 branch mouse_seting_sensor_type 
+
+mouse_setting_dpi_4_level:
+408f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4090 c38e0000 rtnbit1 mouse_enable_dpi_level_4 
+4091 6fe0c992 fetch 1 ,mem_mouse_dpi 
+4092 c1818000 rtnne mouse_dpi_level4 
+4093 70499200 jam mouse_dpi_level1 ,mem_mouse_dpi 
+4094 20600000 rtn 
+
+mouse_seting_dpi:
+4095 44e8401a bpatch patch1a_0 ,mem_patch1a 
+4096 2040408f call mouse_setting_dpi_4_level 
+4097 204048e1 call mouse_dpi_led_blink_delay 
+
+mouse_seting_sensor_type:
+4098 6fe0c927 fetch 1 ,mem_config_sensor_type 
+4099 c001c0bb beq p3212 ,mouse_seting_3212_dpi 
+409a c005c0cf beq ka8g2 ,mouse_seting_ka8g2_dpi 
+409b 6fe0c992 fetch 1 ,mem_mouse_dpi 
+409c c00040a2 beq mouse_dpi_level1 ,mouse_set_cpi0 
+409d c000c0a0 beq mouse_dpi_level2 ,mouse_set_cpi1 
+409e c00140a4 beq mouse_dpi_level3 ,mouse_set_cpi2 
+409f c001c0a6 beq mouse_dpi_level4 ,mouse_set_cpi3 
+
+mouse_set_cpi1:
+40a0 6848c9d1 fetcht 1 ,mem_320x_dpi_1 
+40a1 202040a8 branch mouse_dpi_store 
+
+mouse_set_cpi0:
+40a2 6848c9d0 fetcht 1 ,mem_320x_dpi_0 
+40a3 202040a8 branch mouse_dpi_store 
+
+mouse_set_cpi2:
+40a4 6848c9d2 fetcht 1 ,mem_320x_dpi_2 
+40a5 202040a8 branch mouse_dpi_store 
+
+mouse_set_cpi3:
+40a6 6848c9d3 fetcht 1 ,mem_320x_dpi_3 
+40a7 202040a8 branch mouse_dpi_store 
+
+mouse_dpi_store:
+40a8 6fe0c927 fetch 1 ,mem_config_sensor_type 
+40a9 c00240b7 beq p3065_xy ,mouse_3065xy_set_dpi 
+40aa c002c0b7 beq mx8650 ,mouse_3065xy_set_dpi 
+40ab c00440b9 beq ka8 ,mouse_ka8_set_dpi 
+40ac c003c0b9 beq p6520 ,mouse_ka8_set_dpi 
+40ad c00340b7 beq p8009 ,mouse_3065xy_set_dpi 
+
+mouse_dpi_write:
+40ae 6048c9dc storet 1 ,mem_mouse_cpi_count 
+40af 58000006 setarg mouse_dpi_address 
+40b0 20405b0d call twspi_read 
+40b1 1fe104f8 and pdata ,0xf8 ,temp 
+40b2 6fe0c9dc fetch 1 ,mem_mouse_cpi_count 
+40b3 9840fe00 iadd temp ,pdata 
+40b4 1fed7e00 lshift8 pdata ,pdata 
+40b5 1fe0fe06 add pdata ,mouse_dpi_address ,pdata 
+40b6 20205b0c branch twspi_write 
+
+mouse_3065xy_set_dpi:
+40b7 184085ff increase -1 ,temp 
+40b8 202040ae branch mouse_dpi_write 
+
+mouse_ka8_set_dpi:
+40b9 18408402 increase 2 ,temp 
+40ba 202040ae branch mouse_dpi_write 
+
+mouse_seting_3212_dpi:
+40bb 6fe0c992 fetch 1 ,mem_mouse_dpi 
+40bc c00040c2 beq mouse_dpi_level1 ,mouse_set_p3212_cpi0 
+40bd c000c0c0 beq mouse_dpi_level2 ,mouse_set_p3212_cpi1 
+40be c00140c4 beq mouse_dpi_level3 ,mouse_set_p3212_cpi2 
+40bf c001c0c6 beq mouse_dpi_level4 ,mouse_set_p3212_cpi3 
+
+mouse_set_p3212_cpi1:
+40c0 6fe0c9d5 fetch 1 ,mem_3212_dpi_1 
+40c1 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi0:
+40c2 6fe0c9d4 fetch 1 ,mem_3212_dpi_0 
+40c3 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi2:
+40c4 6fe0c9d6 fetch 1 ,mem_3212_dpi_2 
+40c5 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_p3212_cpi3:
+40c6 6fe0c9d7 fetch 1 ,mem_3212_dpi_3 
+
+mouse_p3212_dpi:
+40c7 67e0c9dc store 1 ,mem_mouse_cpi_count 
+40c8 1fed7e00 lshift8 pdata ,pdata 
+40c9 1fe22200 copy pdata ,rega 
+40ca 1fe0fe0d add pdata ,mouse_p3212_dpi_xaddress ,pdata 
+40cb 20405b0c call twspi_write 
+40cc 1a227e00 copy rega ,pdata 
+40cd 1fe0fe0e add pdata ,mouse_p3212_dpi_yaddress ,pdata 
+40ce 20205b0c branch twspi_write 
+
+mouse_seting_ka8g2_dpi:
+40cf 6fe0c992 fetch 1 ,mem_mouse_dpi 
+40d0 c00040d6 beq mouse_dpi_level1 ,mouse_set_pka8g2_cpi0 
+40d1 c000c0d4 beq mouse_dpi_level2 ,mouse_set_pka8g2_cpi1 
+40d2 c00140d8 beq mouse_dpi_level3 ,mouse_set_pka8g2_cpi2 
+40d3 c001c0da beq mouse_dpi_level4 ,mouse_set_pka8g2_cpi3 
+
+mouse_set_pka8g2_cpi1:
+40d4 6fe0c9d9 fetch 1 ,mem_ka8g2_dpi_1 
+40d5 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi0:
+40d6 6fe0c9d8 fetch 1 ,mem_ka8g2_dpi_0 
+40d7 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi2:
+40d8 6fe0c9da fetch 1 ,mem_ka8g2_dpi_2 
+40d9 202040c7 branch mouse_p3212_dpi 
+
+mouse_set_pka8g2_cpi3:
+40da 6fe0c9db fetch 1 ,mem_ka8g2_dpi_3 
+40db 202040c7 branch mouse_p3212_dpi 
+
+mouse_key:
+40dc 20404115 call mouse_check_key_gpio 
+40dd 204040ed call mouse_ghost_key_check 
+40de 20403e5f call mouse_set_mult 
+40df 204040e8 call mouse_24g_key 
+40e0 1a227e00 copy rega ,pdata 
+40e1 6848c8d8 fetcht 1 ,mem_mouse_key_last 
+40e2 67e0c8d8 store 1 ,mem_mouse_key_last 
+40e3 67e0c8d0 store 1 ,mem_mouse_key 
+40e4 9842fe00 ixor temp ,pdata 
+40e5 1fe67c00 sub pdata ,0 ,null 
+40e6 20628000 rtn zero 
+40e7 20207e54 branch enable_user 
+
+mouse_24g_key:
+40e8 c6930000 rtnmark0 mark_24g 
+40e9 1a227e00 copy rega ,pdata 
+40ea 207a0000 rtn blank 
+40eb 67e0c8d0 store 1 ,mem_mouse_key 
+40ec 20207e54 branch enable_user 
+
+mouse_ghost_key_check:
+40ed 704b9800 jam 0 ,mem_mouse_matrix_key_cow_count 
+40ee 704b9900 jam 0 ,mem_mouse_matrix_key_row_count 
+40ef 704b9a00 jam 0 ,mem_mouse_ghost_flag 
+40f0 1fe20400 copy pdata ,temp 
+40f1 204040fd call mouse_ghost_key_check_l_bk 
+40f2 20404100 call mouse_ghost_key_check_m_fw 
+40f3 20404103 call mouse_ghost_key_check_bk_fw 
+40f4 20404106 call mouse_ghost_key_check_lmr 
+40f5 6fe0cb99 fetch 1 ,mem_mouse_matrix_key_row_count 
+40f6 207a0000 rtn blank 
+40f7 6fe0cb98 fetch 1 ,mem_mouse_matrix_key_cow_count 
+40f8 207a0000 rtn blank 
+40f9 704b9a01 jam 1 ,mem_mouse_ghost_flag 
+40fa 6fe0c8d8 fetch 1 ,mem_mouse_key_last 
+40fb 1fe22200 copy pdata ,rega 
+40fc 20600000 rtn 
+
+mouse_ghost_key_check_l_bk:
+40fd 18417e09 and temp ,mouse_l_bk_button ,pdata 
+40fe c004c10e beq mouse_l_bk_button ,mouse_matrix_cow_more_than_one_key 
+40ff 20600000 rtn 
+
+mouse_ghost_key_check_m_fw:
+4100 18417e14 and temp ,mouse_m_fw_button ,pdata 
+4101 c00a410e beq mouse_m_fw_button ,mouse_matrix_cow_more_than_one_key 
+4102 20600000 rtn 
+
+mouse_ghost_key_check_bk_fw:
+4103 18417e18 and temp ,mouse_bk_fw_button ,pdata 
+4104 c00c410c beq mouse_bk_fw_button ,mouse_matrix_row_more_than_one_key 
+4105 20600000 rtn 
+
+mouse_ghost_key_check_lmr:
+4106 18417e07 and temp ,mouse_lmr_button ,pdata 
+4107 c001c10c beq mouse_lr_button ,mouse_matrix_row_more_than_one_key 
+4108 c002c10c beq mouse_lm_button ,mouse_matrix_row_more_than_one_key 
+4109 c003410c beq mouse_rm_button ,mouse_matrix_row_more_than_one_key 
+410a c003c10c beq mouse_lmr_button ,mouse_matrix_row_more_than_one_key 
+410b 20600000 rtn 
+
+mouse_matrix_row_more_than_one_key:
+410c 704b9901 jam 1 ,mem_mouse_matrix_key_row_count 
+410d 20600000 rtn 
+
+mouse_matrix_cow_more_than_one_key:
+410e 704b9801 jam 1 ,mem_mouse_matrix_key_cow_count 
+410f 20600000 rtn 
+
+mouse_key_check_once:
+4110 20404121 call mouse_check_key_gpio_once 
+4111 20404115 call mouse_check_key_gpio 
+4112 58000000 setarg 0x00 
+4113 67e1cb8e store 3 ,mem_mouse_lkey_press_status 
+4114 20600000 rtn 
+
+mouse_check_key_gpio:
+4115 44e8c01a bpatch patch1a_1 ,mem_patch1a 
+4116 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+4117 245a4121 ncall mouse_check_key_gpio_once ,blank 
+4118 da200000 arg 0 ,rega 
+4119 20404124 call mouse_check_lkey_gpio 
+411a 2040412a call mouse_check_rkey_gpio 
+411b 20404130 call mouse_check_mkey_gpio 
+411c 20404136 call mouse_check_bkkey_gpio 
+411d 2040414f call mouse_check_fwkey_gpio 
+
+mouse_check_key_gpio_next:
+411e 2040416a call mouse_check_customerkey_gpio 
+411f 1a227e00 copy rega ,pdata 
+4120 20600000 rtn 
+
+mouse_check_key_gpio_once:
+4121 58030303 setarg 0x030303 
+4122 67e1cb8e store 3 ,mem_mouse_lkey_press_status 
+4123 20600000 rtn 
+
+mouse_check_lkey_gpio:
+4124 704b9600 jam mouse_l_key ,mem_mouse_key_temp 
+4125 6848c918 fetcht 1 ,mem_lbutton_gpio 
+4126 6fe0cb8e fetch 1 ,mem_mouse_lkey_press_status 
+4127 20404187 call mouse_check_key_connect_gnd 
+4128 67e0cb8e store 1 ,mem_mouse_lkey_press_status 
+4129 20600000 rtn 
+
+mouse_check_rkey_gpio:
+412a 704b9601 jam mouse_r_key ,mem_mouse_key_temp 
+412b 6848c919 fetcht 1 ,mem_rbutton_gpio 
+412c 6fe0cb8f fetch 1 ,mem_mouse_rkey_press_status 
+412d 20404187 call mouse_check_key_connect_gnd 
+412e 67e0cb8f store 1 ,mem_mouse_rkey_press_status 
+412f 20600000 rtn 
+
+mouse_check_mkey_gpio:
+4130 704b9602 jam mouse_m_key ,mem_mouse_key_temp 
+4131 6848c91a fetcht 1 ,mem_mbutton_gpio 
+4132 6fe0cb90 fetch 1 ,mem_mouse_mkey_press_status 
+4133 20404187 call mouse_check_key_connect_gnd 
+4134 67e0cb90 store 1 ,mem_mouse_mkey_press_status 
+4135 20600000 rtn 
+
+mouse_check_bkkey_gpio:
+4136 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+4137 c17f8000 rtneq gpio_disable 
+4138 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+4139 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+413a 1fe22600 copy pdata ,regc 
+413b 6848c90d fetcht 1 ,mem_bk_button_gpio 
+413c 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+413d c07fc14b beq gpio_disable ,mouse_3io6key_bk_check 
+
+mouse_check_bkkey_gpio_next:
+413e 20406059 call gpio_get_bit 
+413f 2020c147 branch mouse_check_bk_button_connect_gnd ,true 
+4140 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+4141 20406069 call gpio_out_active 
+4142 6848c90d fetcht 1 ,mem_bk_button_gpio 
+4143 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+4144 20404187 call mouse_check_key_connect_gnd 
+
+mouse_check_bkkey_gpio_end:
+4145 67e0cb91 store 1 ,mem_mouse_bkkey_press_status 
+4146 20204168 branch mouse_matrix_public_gpio_reset 
+
+mouse_check_bk_button_connect_gnd:
+4147 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+4148 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+4149 20404187 call mouse_check_key_connect_gnd 
+414a 20204145 branch mouse_check_bkkey_gpio_end 
+
+mouse_3io6key_bk_check:
+414b 20404195 call mouse_3io6key_check 
+414c 67e0cb91 store 1 ,mem_mouse_bkkey_press_status 
+414d 6848c90d fetcht 1 ,mem_bk_button_gpio 
+414e 20203f56 branch mouse_gpio_config_input_pu 
+
+mouse_check_fwkey_gpio:
+414f 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+4150 c17f8000 rtneq gpio_disable 
+4151 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+4152 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+4153 1fe22600 copy pdata ,regc 
+4154 6848c90e fetcht 1 ,mem_fw_button_gpio 
+4155 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+4156 c07fc164 beq gpio_disable ,mouse_3io6key_fw_check 
+
+mouse_check_fwkey_gpio_next:
+4157 20406059 call gpio_get_bit 
+4158 2020c160 branch mouse_check_fw_button_connect_gnd ,true 
+4159 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+415a 20406069 call gpio_out_active 
+415b 6848c90e fetcht 1 ,mem_fw_button_gpio 
+415c 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+415d 20404187 call mouse_check_key_connect_gnd 
+
+mouse_check_fwkey_gpio_end:
+415e 67e0cb92 store 1 ,mem_mouse_fwkey_press_status 
+415f 20204168 branch mouse_matrix_public_gpio_reset 
+
+mouse_check_fw_button_connect_gnd:
+4160 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+4161 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+4162 20404187 call mouse_check_key_connect_gnd 
+4163 2020415e branch mouse_check_fwkey_gpio_end 
+
+mouse_3io6key_fw_check:
+4164 20404195 call mouse_3io6key_check 
+4165 67e0cb92 store 1 ,mem_mouse_fwkey_press_status 
+4166 6848c90e fetcht 1 ,mem_fw_button_gpio 
+4167 20203f56 branch mouse_gpio_config_input_pu 
+
+mouse_matrix_public_gpio_reset:
+4168 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+4169 20203f56 branch mouse_gpio_config_input_pu 
+
+mouse_check_customerkey_gpio:
+416a 704b8b00 jam 0 ,mem_customer_key 
+416b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+416c c40a8000 rtnbit0 mouse_enable_keyboard 
+416d 6fe0c912 fetch 1 ,mem_customer_key_gpio 
+416e c17f8000 rtneq gpio_disable 
+416f 704b9607 jam mouse_customer_key ,mem_mouse_key_temp 
+4170 6848c912 fetcht 1 ,mem_customer_key_gpio 
+4171 6fe0cb95 fetch 1 ,mem_mouse_customerkey_press_status 
+4172 20404187 call mouse_check_key_connect_gnd 
+4173 67e0cb95 store 1 ,mem_mouse_customerkey_press_status 
+
+mouse_check_customerkey_state:
+4174 1a227e00 copy rega ,pdata 
+4175 c283c17a bbit1 mouse_customer_key ,mouse_customerkey_press 
+4176 2040417d call mouse_customerkey_release 
+
+mouse_check_customerkey_gpio_exit:
+4177 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+4178 67e0cb8d store 1 ,mem_customer_data_trigger_last 
+4179 20600000 rtn 
+
+mouse_customerkey_press:
+417a 704b8c01 jam 1 ,mem_customer_data_trigger 
+417b 20404180 call mouse_customer_key_need_send 
+417c 20204177 branch mouse_check_customerkey_gpio_exit 
+
+mouse_customerkey_release:
+417d 704b8c00 jam 0 ,mem_customer_data_trigger 
+417e 6fe0cb8d fetch 1 ,mem_customer_data_trigger_last 
+417f 207a0000 rtn blank 
+
+mouse_customer_key_need_send:
+4180 704b8b01 jam 1 ,mem_customer_key 
+4181 20600000 rtn 
+
+mouse_check_matrix_button_connect_gnd:
+4182 20406059 call gpio_get_bit 
+4183 6848cb96 fetcht 1 ,mem_mouse_key_temp 
+4184 18420e00 copy temp ,queue 
+4185 2020c193 branch mouse_key_press ,true 
+4186 20204191 branch mouse_key_release 
+
+mouse_check_key_connect_gnd:
+4187 1fe3fe00 lshift pdata ,pdata 
+4188 1fe22400 copy pdata ,regb 
+4189 20406059 call gpio_get_bit 
+418a 7920a400 setflag true ,0 ,regb 
+418b 1a417e07 and regb ,0x07 ,pdata 
+418c 6848cb96 fetcht 1 ,mem_mouse_key_temp 
+418d 18420e00 copy temp ,queue 
+418e c003c193 beq 0x07 ,mouse_key_press 
+418f c0004191 beq 0x00 ,mouse_key_release 
+4190 20600000 rtn 
+
+mouse_key_release:
+4191 f93fa200 qset0 rega 
+4192 20600000 rtn 
+
+mouse_key_press:
+4193 f9202200 qset1 rega 
+4194 20600000 rtn 
+
+mouse_3io6key_check:
+4195 44e9401a bpatch patch1a_2 ,mem_patch1a 
+4196 1a627e00 copy regc ,pdata 
+4197 67e0cb97 store 1 ,mem_mouse_key_status 
+4198 1fe3fe00 lshift pdata ,pdata 
+4199 1fe22400 copy pdata ,regb 
+419a 18422600 copy temp ,regc 
+419b 20403f54 call mouse_gpio_config_input_pd 
+419c 1a620400 copy regc ,temp 
+419d 20406059 call gpio_get_bit 
+419e 7d20a400 nsetflag true ,0 ,regb 
+419f 204041a1 call mouse_check_press 
+41a0 2020418b branch mouse_check_key_connect_gnd + 4 
+
+mouse_check_press:
+41a1 6848cb97 fetcht 1 ,mem_mouse_key_status 
+41a2 18410401 and_into 0x01 ,temp 
+41a3 1a417e01 and regb ,0x01 ,pdata 
+41a4 98467c00 isub temp ,null 
+41a5 2422c32f nbranch mouse_current_mult_update ,zero 
+41a6 20600000 rtn 
+
+mouse_init_sunt:
+41a7 44e9c01a bpatch patch1a_3 ,mem_patch1a 
+41a8 20403f65 call mouse_sensor_spi_init 
+41a9 20758000 rtn wake 
+
+mouse_init_sensor_wakeup:
+41aa 20404236 call mouse_sensor_poweron 
+
+mouse_init_sensor:
+41ab 204041b5 call mouse_read_sensor_id 
+41ac c01841bc beq p32xx_id1 ,mouse_init_p32xx_id2_judge 
+41ad c018c217 beq p3065_id1 ,mouse_init_p3065 
+41ae c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+41af 204041b2 call mouse_twspi_reset 
+41b0 20001af4 nop 6900 
+41b1 202041ab branch mouse_init_sensor 
+
+mouse_twspi_reset:
+41b2 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+41b3 20405af7 call twspi_reset 
+41b4 20203f6a branch mouse_spid_init_pin 
+
+mouse_read_sensor_id:
+41b5 58000001 setarg pan_reg_pid_h 
+41b6 20405b0d call twspi_read 
+41b7 67e0c9c2 store 1 ,mem_sensor_id2 
+41b8 58000000 setarg pan_reg_pid_l 
+41b9 20405b0d call twspi_read 
+41ba 67e0c9c1 store 1 ,mem_sensor_id1 
+41bb 20600000 rtn 
+
+mouse_init_p32xx_id2_judge:
+41bc 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+41bd c02d41c5 beq p_mx8650 ,mouse_mx8650_init_param 
+41be c06c41cb beq p8009_id2 ,mouse_8009_init_param 
+41bf c068c1da beq p3205_tj3t_id2 ,mouse_3205_3t_init_param 
+41c0 c06941e3 beq p3204_tj3l_id2 ,mouse_3204_3l_init_param 
+41c1 c00141ea beq p3212_id2 ,mouse_3212_init_param 
+41c2 c02a41ed beq pka8_id2 ,mouse_ka8_init_param_check 
+41c3 c0284214 beq p6520a_id2 ,mouse_p6520_init_param 
+41c4 202041ab branch mouse_init_sensor 
+
+mouse_mx8650_init_param:
+41c5 70492705 jam mx8650 ,mem_config_sensor_type 
+41c6 20404232 call mouse_sensor_reset 
+41c7 20407d12 call delay_10ms 
+41c8 da604a39 arg mem_sensor_8650_init ,regc 
+41c9 2040422b call mouse_sensor_wr_seq 
+41ca 2020408e branch mouse_dpi_config 
+
+mouse_8009_init_param:
+41cb 58000016 setarg 0x16 
+41cc 20405b0d call twspi_read 
+41cd 1fe67cbd sub pdata ,0xbd ,null 
+41ce 2422c1a7 nbranch mouse_init_sunt ,zero 
+41cf 58000019 setarg 0x19 
+41d0 20405b0d call twspi_read 
+41d1 1fe67c55 sub pdata ,0x55 ,null 
+41d2 2422c1a7 nbranch mouse_init_sunt ,zero 
+41d3 5800001b setarg 0x1b 
+41d4 20405b0d call twspi_read 
+41d5 1fe67c1d sub pdata ,0x1d ,null 
+41d6 2422c1a7 nbranch mouse_init_sunt ,zero 
+41d7 70492706 jam p8009 ,mem_config_sensor_type 
+41d8 da604a71 arg mem_sensor_8009_init ,regc 
+41d9 2020422b branch mouse_sensor_wr_seq 
+
+mouse_3205_3t_init_param:
+41da 70492700 jam p3205 ,mem_config_sensor_type 
+41db da6049f3 arg mem_sensor_3205_init ,regc 
+41dc 2040422b call mouse_sensor_wr_seq 
+41dd da6049fd arg mem_sensor_32xx_init ,regc 
+41de 2040422b call mouse_sensor_wr_seq 
+41df 58000943 setarg 0x0943 
+41e0 20405b0c call twspi_write 
+41e1 da604a17 arg mem_sensor_32xx_init_1 ,regc 
+41e2 2020422b branch mouse_sensor_wr_seq 
+
+mouse_3204_3l_init_param:
+41e3 70492702 jam p3204 ,mem_config_sensor_type 
+41e4 da6049e9 arg mem_sensor_3204_init ,regc 
+41e5 2040422b call mouse_sensor_wr_seq 
+41e6 da6049fd arg mem_sensor_32xx_init ,regc 
+41e7 2040422b call mouse_sensor_wr_seq 
+41e8 da604a17 arg mem_sensor_32xx_init_1 ,regc 
+41e9 2020422b branch mouse_sensor_wr_seq 
+
+mouse_3212_init_param:
+41ea 70492703 jam p3212 ,mem_config_sensor_type 
+41eb da6049df arg mem_sensor_3212_init ,regc 
+41ec 2020422b branch mouse_sensor_wr_seq 
+
+mouse_ka8_init_param_check:
+41ed 20404229 call mouse_sensor_disable_wp 
+41ee 58009a5b setarg 0x9a5b 
+41ef 20405b0c call twspi_write 
+41f0 5800000d setarg 0x0d 
+41f1 20405b0d call twspi_read 
+41f2 1fe67c12 sub pdata ,0x12 ,null 
+41f3 2022c201 branch mouse_ka8ul_init_param ,zero 
+41f4 1fe67c0a sub pdata ,0x0a ,null 
+41f5 2422c204 nbranch mouse_ka8hd_sensor_judge ,zero 
+41f6 5800000e setarg 0x0e 
+41f7 20405b0d call twspi_read 
+41f8 1fe67ce5 sub pdata ,0xe5 ,null 
+41f9 2422c1ab nbranch mouse_init_sensor ,zero 
+41fa 58000010 setarg 0x10 
+41fb 20405b0d call twspi_read 
+41fc 1fe67ca5 sub pdata ,0xa5 ,null 
+41fd 2022c201 branch mouse_ka8ul_init_param ,zero 
+41fe 20404211 call mouse_enable_ka8_sensor_wp 
+
+mouse_ka8_init_param:
+41ff 70492708 jam ka8 ,mem_config_sensor_type 
+4200 20600000 rtn 
+
+mouse_ka8ul_init_param:
+4201 70492709 jam ka8_ul ,mem_config_sensor_type 
+4202 da604a53 arg mem_sensor_ka8ul_init ,regc 
+4203 2020422b branch mouse_sensor_wr_seq 
+
+mouse_ka8hd_sensor_judge:
+4204 1fe67c10 sub pdata ,0x10 ,null 
+4205 2422c1ab nbranch mouse_init_sensor ,zero 
+4206 5800000e setarg 0x0e 
+4207 20405b0d call twspi_read 
+4208 1fe67cc5 sub pdata ,0xc5 ,null 
+4209 2422c1ab nbranch mouse_init_sensor ,zero 
+420a 58000010 setarg 0x10 
+420b 20405b0d call twspi_read 
+420c 1fe67c38 sub pdata ,0x38 ,null 
+420d 2422c1ab nbranch mouse_init_sensor ,zero 
+
+mouse_ka8hd_init_param:
+420e 20404211 call mouse_enable_ka8_sensor_wp 
+420f 7049270a jam ka8_hd ,mem_config_sensor_type 
+4210 20600000 rtn 
+
+mouse_enable_ka8_sensor_wp:
+4211 5800005b setarg 0x005b 
+4212 20405b0c call twspi_write 
+4213 20204227 branch mouse_sensor_enable_wp 
+
+mouse_p6520_init_param:
+4214 70492707 jam p6520 ,mem_config_sensor_type 
+4215 da604a97 arg mem_sensor_p6520_init ,regc 
+4216 2020422b branch mouse_sensor_wr_seq 
+
+mouse_init_p3065:
+4217 20404236 call mouse_sensor_poweron 
+4218 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+4219 c038421e beq p3065_xy_id2 ,mouse_p3065xy_init_param 
+421a c000421c beq p3065_id2 ,mouse_p3065_init_param 
+421b 202041ab branch mouse_init_sensor 
+
+mouse_p3065_init_param:
+421c 70492701 jam p3065 ,mem_config_sensor_type 
+421d 20600000 rtn 
+
+mouse_p3065xy_init_param:
+421e 70492704 jam p3065_xy ,mem_config_sensor_type 
+421f 20600000 rtn 
+
+mouse_ka8g2_id2_judge:
+4220 20404236 call mouse_sensor_poweron 
+4221 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+4222 c02cc224 beq pka8g2_id2 ,mouse_ka8g2_init_param 
+4223 202041bc branch mouse_init_p32xx_id2_judge 
+
+mouse_ka8g2_init_param:
+4224 7049270b jam ka8g2 ,mem_config_sensor_type 
+4225 da604a81 arg mem_sensor_ka8g2_init ,regc 
+4226 2020422b branch mouse_sensor_wr_seq 
+
+mouse_sensor_enable_wp:
+4227 58000009 setarg 0x0009 
+4228 20205b0c branch twspi_write 
+
+mouse_sensor_disable_wp:
+4229 58005a09 setarg 0x5a09 
+422a 20205b0c branch twspi_write 
+
+mouse_sensor_wr_seq:
+422b efe10013 ifetch 2 ,regc 
+422c d840ffff arg 0xffff ,temp 
+422d 98467c00 isub temp ,null 
+422e 20628000 rtn zero 
+422f 20405b0c call twspi_write 
+4230 1a60a602 increase 2 ,regc 
+4231 2020422b branch mouse_sensor_wr_seq 
+
+mouse_sensor_reset:
+4232 58008006 setarg 0x8006 
+
+mouse_sensor_reset_end:
+4233 20405b0c call twspi_write 
+4234 20002ee0 nop 12000 
+4235 20600000 rtn 
+
+mouse_sensor_poweron:
+4236 44ea401a bpatch patch1a_4 ,mem_patch1a 
+4237 20403f65 call mouse_sensor_spi_init 
+
+mouse_sensor_poweron_next:
+4238 20404232 call mouse_sensor_reset 
+4239 da604aa3 arg mem_sensor_poweron_init ,regc 
+
+mouse_sensor_poweron_end:
+423a 2040422b call mouse_sensor_wr_seq 
+423b 2020408e branch mouse_dpi_config 
+
+mouse_sensor_powerdown:
+423c 204041a7 call mouse_init_sunt 
+423d 20403f65 call mouse_sensor_spi_init 
+
+mouse_sensor_powerdown_end:
+423e 58000806 setarg 0x0806 
+423f 20205b0c branch twspi_write 
+
+mouse_check_sensor_data:
+4240 6fe0c4ac fetch 1 ,mem_spi_write_flash_sm 
+4241 c1800000 rtnne flash_sm_no_buys 
+4242 6fe0c927 fetch 1 ,mem_config_sensor_type 
+4243 c000424c beq p3205 ,mouse_p32xx_sensor_motion 
+4244 c000c24c beq p3065 ,mouse_p32xx_sensor_motion 
+4245 c004424c beq ka8 ,mouse_p32xx_sensor_motion 
+4246 c001424c beq p3204 ,mouse_p32xx_sensor_motion 
+4247 c001c270 beq p3212 ,mouse_p3212_sensor_motion 
+4248 c002424c beq p3065_xy ,mouse_p32xx_sensor_motion 
+4249 c0034295 beq p8009 ,mouse_p8009_sensor_motion 
+424a c005c28e beq ka8g2 ,mouse_pka8g2_sensor_motion 
+424b 2020424c branch mouse_p32xx_sensor_motion 
+
+mouse_p32xx_sensor_motion:
+424c 204042c4 call mouse_clear_sensor_data 
+424d 78547c00 disable user 
+424e 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+424f c07fc253 beq gpio_disable ,mouse_p32xx_sensor_motion_2 
+4250 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+4251 20406059 call gpio_get_bit 
+4252 24608000 nrtn true 
+
+mouse_p32xx_sensor_motion_2:
+4253 58000000 setarg pan_reg_pid_l 
+4254 20405b0d call twspi_read 
+4255 c0984266 bne p32xx_id1 ,mouse_p3065_judge 
+
+mouse_p32xx_sensor_motion_1:
+4256 58000002 setarg pan_reg_motion_staus 
+4257 20405b0d call twspi_read 
+4258 c4038000 rtnbit0 7 
+4259 204042db call mouse_read_sensor_common 
+425a 6fe0c8d1 fetch 1 ,mem_mouse_x 
+425b 204042d3 call mouse_data_extsign 
+425c 67e148d1 store 2 ,mem_mouse_x 
+425d 6fe0c8d3 fetch 1 ,mem_mouse_y 
+425e 204042d3 call mouse_data_extsign 
+425f 67e148d3 store 2 ,mem_mouse_y 
+4260 6fe0c928 fetch 1 ,mem_config_sensor_angle 
+4261 c0004268 beq mouse_6clk_angle ,mouse_motion32xx_6clk_direction_selection 
+4262 c000c26a beq mouse_9clk_angle ,mouse_motion32xx_9clk_direction_selection 
+4263 c001426c beq mouse_12clk_angle ,mouse_motion32xx_12clk_direction_selection 
+4264 c001c26e beq mouse_3clk_angle ,mouse_motion32xx_3clk_direction_selection 
+4265 20600000 rtn 
+
+mouse_p3065_judge:
+4266 c018c256 beq p3065_id1 ,mouse_p32xx_sensor_motion_1 
+4267 202041b2 branch mouse_twspi_reset 
+
+mouse_motion32xx_6clk_direction_selection:
+4268 204042ad call mouse_motion_6clk_direction_dispose 
+4269 202042e2 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_9clk_direction_selection:
+426a 204042b5 call mouse_motion_9clk_direction_dispose 
+426b 202042e2 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_12clk_direction_selection:
+426c 204042b1 call mouse_motion_12clk_direction_dispose 
+426d 202042e2 branch mouse_sensor_sdio_low 
+
+mouse_motion32xx_3clk_direction_selection:
+426e 204042bd call mouse_motion_3clk_direction_dispose 
+426f 202042e2 branch mouse_sensor_sdio_low 
+
+mouse_p3212_sensor_motion:
+4270 204042c4 call mouse_clear_sensor_data 
+4271 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+4272 c07fc276 beq gpio_disable ,mouse_p3212_sensor_motion_1 
+4273 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+4274 20406059 call gpio_get_bit 
+4275 24608000 nrtn true 
+
+mouse_p3212_sensor_motion_1:
+4276 58000000 setarg pan_reg_pid_l 
+4277 20405b0d call twspi_read 
+4278 c09841b2 bne p32xx_id1 ,mouse_twspi_reset 
+
+mouse_p3212_sensor_motion_2:
+4279 58000002 setarg pan_reg_motion_staus 
+427a 20405b0d call twspi_read 
+427b c4038000 rtnbit0 7 
+427c 204042db call mouse_read_sensor_common 
+427d 2040428c call mouse_read_3212sensor_xy_high 
+427e 67e0c8d7 store 1 ,mem_mouse_xy_h 
+427f 1ff1fe00 rshift4 pdata ,pdata 
+4280 204042d7 call mouse_data_extsign_bit3 
+4281 67e0c8d2 store 1 ,mem_mouse_x + 1 
+4282 6fe0c8d7 fetch 1 ,mem_mouse_xy_h 
+4283 1fe17e0f and pdata ,0x0f ,pdata 
+4284 204042d7 call mouse_data_extsign_bit3 
+4285 67e0c8d4 store 1 ,mem_mouse_y + 1 
+4286 6fe0c928 fetch 1 ,mem_config_sensor_angle 
+4287 c00042ad beq mouse_6clk_angle ,mouse_motion_6clk_direction_dispose 
+4288 c000c2b5 beq mouse_9clk_angle ,mouse_motion_9clk_direction_dispose 
+4289 c00142b1 beq mouse_12clk_angle ,mouse_motion_12clk_direction_dispose 
+428a c001c2bd beq mouse_3clk_angle ,mouse_motion_3clk_direction_dispose 
+428b 20600000 rtn 
+
+mouse_read_3212sensor_xy_high:
+428c 58000012 setarg 0x12 
+428d 20205b0d branch twspi_read 
+
+mouse_pka8g2_sensor_motion:
+428e 204042c4 call mouse_clear_sensor_data 
+428f 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+4290 c07fc294 beq gpio_disable ,mouse_pka8g2_sensor_motion_1 
+4291 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+4292 20406059 call gpio_get_bit 
+4293 24608000 nrtn true 
+
+mouse_pka8g2_sensor_motion_1:
+4294 20204279 branch mouse_p3212_sensor_motion_2 
+
+mouse_p8009_sensor_motion:
+4295 204042c4 call mouse_clear_sensor_data 
+4296 78547c00 disable user 
+4297 58000002 setarg pan_reg_motion_staus 
+4298 20405b0d call twspi_read 
+4299 c4038000 rtnbit0 7 
+429a 58000008 setarg pan_reg_opration_state 
+429b 20405b0d call twspi_read 
+429c 203a4259 branch mouse_p32xx_sensor_motion_1 + 3 ,blank 
+429d 58000000 setarg 0 
+429e 67e348d1 store 6 ,mem_mouse_x 
+429f 20600000 rtn 
+
+mouse_sensor_set_angle:
+42a0 6fe0c924 fetch 1 ,mem_sensor_angle_default 
+42a1 67e0c928 store 1 ,mem_config_sensor_angle 
+42a2 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
+42a3 c17f8000 rtneq gpio_disable 
+42a4 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
+42a5 20403f56 call mouse_gpio_config_input_pu 
+42a6 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
+42a7 20406059 call gpio_get_bit 
+42a8 2040c2aa call mouse_sensor_switch_angle ,true 
+42a9 20203f54 branch mouse_gpio_config_input_pd 
+
+mouse_sensor_switch_angle:
+42aa 6fe0c925 fetch 1 ,mem_sensor_angle_switch 
+42ab 67e0c928 store 1 ,mem_config_sensor_angle 
+42ac 20600000 rtn 
+
+mouse_motion_6clk_direction_dispose:
+42ad 6fe148d1 fetch 2 ,mem_mouse_x 
+42ae 1fe67e00 sub pdata ,0 ,pdata 
+42af 67e148d1 store 2 ,mem_mouse_x 
+42b0 20207e54 branch enable_user 
+
+mouse_motion_12clk_direction_dispose:
+42b1 6fe148d3 fetch 2 ,mem_mouse_y 
+42b2 1fe67e00 sub pdata ,0 ,pdata 
+42b3 67e148d3 store 2 ,mem_mouse_y 
+42b4 20207e54 branch enable_user 
+
+mouse_motion_9clk_direction_dispose:
+42b5 6fe148d3 fetch 2 ,mem_mouse_y 
+42b6 1fe67e00 sub pdata ,0 ,pdata 
+42b7 67e148d3 store 2 ,mem_mouse_y 
+42b8 6fe148d1 fetch 2 ,mem_mouse_x 
+42b9 1fe67e00 sub pdata ,0 ,pdata 
+42ba 67e148d1 store 2 ,mem_mouse_x 
+42bb 204042bf call mouse_sensor_data_swap_places 
+42bc 20207e54 branch enable_user 
+
+mouse_motion_3clk_direction_dispose:
+42bd 204042bf call mouse_sensor_data_swap_places 
+42be 20207e54 branch enable_user 
+
+mouse_sensor_data_swap_places:
+42bf 6fe148d3 fetch 2 ,mem_mouse_y 
+42c0 684948d1 fetcht 2 ,mem_mouse_x 
+42c1 67e148d1 store 2 ,mem_mouse_x 
+42c2 604948d3 storet 2 ,mem_mouse_y 
+42c3 20600000 rtn 
+
+mouse_clear_sensor_data:
+42c4 6fe0c9c8 fetch 1 ,mem_mouse_move_flag 
+42c5 205a42db call mouse_read_sensor_common ,blank 
+42c6 7049c801 jam 1 ,mem_mouse_move_flag 
+42c7 20600000 rtn 
+
+mouse_clear_sensor_data_by_reset:
+42c8 704aac01 jam 1 ,mem_mouse_clear_sensor_data_flag 
+42c9 20401b1a call le_set_config_more_data 
+
+mouse_init_sensor_reset:
+42ca 202041a7 branch mouse_init_sunt 
+
+mouse_data_xy_release:
+42cb 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+42cc c1ff8000 rtnne gpio_disable 
+42cd 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+42ce c1808000 rtnne 1 
+42cf 58000000 setarg 0 
+42d0 67e0caae store 1 ,mem_mouse_long_mult_flag 
+42d1 67e248d1 store 4 ,mem_mouse_x 
+42d2 202042ca branch mouse_init_sensor_reset 
+
+mouse_data_extsign:
+42d3 c4038000 rtnbit0 7 
+
+mouse_data_overflow:
+42d4 d840ff00 arg 0xff00 ,temp 
+42d5 9841fe00 ior temp ,pdata 
+42d6 20600000 rtn 
+
+mouse_data_extsign_bit3:
+42d7 c4018000 rtnbit0 3 
+42d8 d84000f0 arg 0xf0 ,temp 
+42d9 9841fe00 ior temp ,pdata 
+42da 20600000 rtn 
+
+mouse_read_sensor_common:
+42db dfe00003 arg pan_reg_delta_x ,pdata 
+42dc 20405b0d call twspi_read 
+42dd 67e148d1 store 2 ,mem_mouse_x 
+42de dfe00004 arg pan_reg_delta_y ,pdata 
+42df 20405b0d call twspi_read 
+42e0 67e148d3 store 2 ,mem_mouse_y 
+42e1 20600000 rtn 
+
+mouse_sensor_sdio_low:
+42e2 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+42e3 20406059 call gpio_get_bit 
+42e4 20608000 rtn true 
+42e5 5800000a setarg 0x0a 
+42e6 20405b0d call twspi_read 
+42e7 200003e8 nop 1000 
+42e8 202042e2 branch mouse_sensor_sdio_low 
+
+mouse_set_sdio_high:
+42e9 58008100 setarg 0x8100 
+42ea 20205b0c branch twspi_write 
+
+mouse_buletooth_fast_conn_init:
+42eb 704ac1ff jam 0xff ,mem_mouse_bluetooth_fast_conn_flag 
+42ec 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
+42ed c280c2ef bbit1 mode_4_mouse ,mouse_ble_fast_conn_init 
+42ee c28042f4 bbit1 mode_3_mouse ,mouse_bt_fast_conn_init 
+
+mouse_ble_fast_conn_init:
+42ef 70448234 jam 0x34 ,mem_xrecord_mode 
+42f0 580f0f0f setarg 0x0f0f0f 
+42f1 67e1c37a store 3 ,mem_le_lap 
+42f2 67e1c37d store 3 ,mem_le_lap + 3 
+42f3 20203d61 branch mouse_start_reconnect 
+
+mouse_bt_fast_conn_init:
+42f4 70448233 jam 0x33 ,mem_xrecord_mode 
+42f5 d8c04974 arg mem_mouse_compare_addr_ff ,contr 
+42f6 204045c8 call mouse_load_bt_device 
+42f7 20203d61 branch mouse_start_reconnect 
+
+mouse_buletooth_fast_conn_end:
+42f8 44eac01a bpatch patch1a_5 ,mem_patch1a 
+42f9 204045bd call mouse_select_reconn_device 
+42fa 20404314 call mouse_bluetooth_fast_conn_disable 
+42fb 6fe0c938 fetch 1 ,mem_device_flag 
+42fc c000c2ff beq mode_bt_device1 ,mouse_device1_check_auto_discover 
+42fd c0014301 beq mode_bt_device2 ,mouse_device2_check_auto_discover 
+42fe 20600000 rtn 
+
+mouse_device1_check_auto_discover:
+42ff 6fe3493a fetch 6 ,mem_device1_addr 
+4300 20204302 branch mouse_device_check_auto_discover 
+
+mouse_device2_check_auto_discover:
+4301 6fe34957 fetch 6 ,mem_device2_addr 
+
+mouse_device_check_auto_discover:
+4302 684b4974 fetcht 6 ,mem_mouse_compare_addr_ff 
+4303 98467c00 isub temp ,null 
+4304 2022c553 branch mouse_start_discovery ,zero 
+4305 20203d59 branch mouse_start_reconnect_device 
+
+mouse_bt_fast_conn_send_device_name:
+4306 20404314 call mouse_bluetooth_fast_conn_disable 
+4307 6fe0c5fc fetch 1 ,mem_local_name_length 
+4308 1fe0fe03 increase 3 ,pdata 
+4309 1fe22200 copy pdata ,rega 
+430a 20404dc0 call hid_malloc_tx_buff 
+430b 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+430c e7e10005 istore 2 ,contw 
+430d 580004a1 setarg 0x04a1 
+430e e7e10005 istore 2 ,contw 
+430f 6fe0c5fc fetch 1 ,mem_local_name_length 
+4310 1fe0fe01 increase 1 ,pdata 
+4311 1fe27200 copy pdata ,loopcnt 
+4312 d8c045fc arg mem_local_name_length ,contr 
+4313 20207d5f branch memcpy 
+
+mouse_bluetooth_fast_conn_disable:
+4314 704ac15a jam 0x5a ,mem_mouse_bluetooth_fast_conn_flag 
+4315 20600000 rtn 
+
+mouse_stop_bluetooth_mode:
+4316 6fe1478c fetch 2 ,mem_ui_state_map 
+4317 c283c322 bbit1 ui_state_bt_reconnect ,mouse_cancel_reconnect 
+4318 c284b20f bbit1 ui_state_ble_connected ,app_ble_disconnect 
+4319 c28031f6 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+431a 20204576 branch mouse_stop_discovery 
+
+mouse_disconnect:
+431b 58000000 setarg 0 
+431c 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+431d 6fe1478c fetch 2 ,mem_ui_state_map 
+431e c284b20f bbit1 ui_state_ble_connected ,app_ble_disconnect 
+431f 6fe1478c fetch 2 ,mem_ui_state_map 
+4320 c28031f6 bbit1 ui_state_bt_connected ,app_bt_disconnect 
+4321 20600000 rtn 
+
+mouse_cancel_reconnect:
+4322 204046de call mouse_bt_cannel_reconn_enable 
+4323 20207931 branch check_51cmd_bb_reconn_cancel 
+
+mouse_check_125hz:
+4324 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4325 c40d8000 rtnbit0 mouse_enable_bt_125hz 
+
+mouse_bluetooth_125hz:
+4326 2434432c nbranch mouse_bluetooth_125hz_clear ,user 
+4327 6fe0caad fetch 1 ,mem_bluetooth_125hz_cnt 
+4328 1fe0fe01 increase 1 ,pdata 
+4329 1fe17e0f and_into 0x0f ,pdata 
+432a 67e0caad store 1 ,mem_bluetooth_125hz_cnt 
+432b 247a0000 nrtn blank 
+
+mouse_bluetooth_125hz_clear:
+432c 704aad00 jam 0 ,mem_bluetooth_125hz_cnt 
+432d 78547c00 disable user 
+432e 20600000 rtn 
+
+mouse_current_mult_update:
+432f 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+4330 c1ff8000 rtnne gpio_disable 
+4331 70417700 jam 0 ,mem_lpm_mult 
+4332 704aaf1e jam 30 ,mem_mouse_current_mult_timer 
+4333 20600000 rtn 
+
+mouse_priority_bb_event:
+4334 44eb401a bpatch patch1a_6 ,mem_patch1a 
+4335 1a627e00 copy regc ,pdata 
+4336 c00a4350 beq bt_evt_le_connected ,mouse_le_bb_event_connected 
+4337 c000c3fa beq bt_evt_bb_connected ,mouse_bb_event_connected 
+4338 c00ac35f beq bt_evt_le_disconnected ,mouse_le_bb_disconnected 
+4339 c00143fe beq bt_evt_bb_disconnected ,mouse_bb_disconnected 
+433a c002c421 beq bt_evt_setup_complete ,mouse_bt_event_setup_complete 
+433b c008454e beq bt_evt_button_long_pressed ,mouse_bb_event_discovery_btn 
+433c c0094424 beq bt_evt_hid_handshake ,mouse_bt_hid_handshake 
+433d c0033244 beq bt_evt_hid_connected ,app_hid_connected 
+433e c0024432 beq bt_evt_reconn_failed ,mouse_bb_event_reconn_failed 
+433f c009c432 beq bt_evt_reconn_page_timeout ,mouse_bb_event_reconn_timeout 
+4340 c00cb1ec beq bt_evt_switch_not_accept ,app_bt_role_switch 
+4341 c015c43d beq bt_evt_switch_success_master ,mouse_enter_sniff_check 
+4342 c010c443 beq bt_evt_sniff_not_accept ,mouse_sniff_not_accept 
+4343 c005444a beq bt_evt_pincode_req ,mouse_bb_event_pincode 
+4344 c01731da beq bt_evt_remote_unsniff ,app_start_auto_sniff 
+4345 c018c36a beq bt_evt_le_pairing_success ,mouse_le_pairing_success 
+4346 c014c36c beq bt_evt_le_enc_info ,mouse_le_enc_info 
+4347 c019436e beq bt_evt_le_start_enc ,mouse_le_ll_start_encryt 
+4348 c01f4379 beq bt_evt_le_pairing_complete ,mouse_le_pairing_complete 
+4349 c020437a beq bt_evt_le_parse_conn_papa_update_rsp ,mouse_le_conn_param_update_rsp_recieved 
+434a c013c44c beq bt_evt_virtual_cable_unplug ,mouse_irtual_cable_unplug 
+434b c01cc857 beq bt_evt_24g_pairing_complete ,mouse_24g_pairing_complete 
+434c c01d4833 beq bt_evt_24g_attempt_fail ,mouse_24g_attempt_fail 
+434d c01e484e beq bt_evt_24g_attempt_success ,mouse_24g_attempt_success 
+434e c0224390 beq bt_evt_le_parse_conn_param_accepted ,mouse_le_parse_conn_param_accepted 
+434f 20600000 rtn 
+
+mouse_le_bb_event_connected:
+4350 704aae00 jam 0 ,mem_mouse_long_mult_flag 
+4351 204042ca call mouse_init_sensor_reset 
+4352 704ac601 jam 1 ,mem_mouse_le_bb_connected_flag 
+4353 20404822 call mouse_24g_first_store_reconn_info 
+4354 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+4355 243a4357 nbranch mouse_le_bb_event_connected_next ,blank 
+4356 704ac814 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
+
+mouse_le_bb_event_connected_next:
+4357 6fe14480 fetch app_disc_rsn_size ,mem_app_disconn_reason_flag 
+4358 793ffe00 set0 app_disc_by_button ,pdata 
+4359 67e14480 store app_disc_rsn_size ,mem_app_disconn_reason_flag 
+435a 704b7700 jam 0 ,mem_mouse_direct_timer 
+435b 6fe14af0 fetch 2 ,mem_le_battery_level_updata_timer_init 
+435c 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+435d 20404544 call mouse_no_data_timer_init 
+435e 20204576 branch mouse_stop_discovery 
+
+mouse_le_bb_disconnected:
+435f 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
+4360 58000006 setarg le_interval_7_5ms 
+4361 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4362 c28dc364 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next 
+4363 58000007 setarg le_interval_8_75ms 
+
+mouse_le_bb_disconnected_next:
+4364 67e14372 store 2 ,mem_le_interval_min 
+4365 67e14374 store 2 ,mem_le_interval_min + 2 
+4366 704af400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+4367 704aac00 jam 0 ,mem_mouse_clear_sensor_data_flag 
+4368 20401b1c call le_clr_config_more_data 
+4369 202043fe branch mouse_bb_disconnected 
+
+mouse_le_pairing_success:
+436a d8e00002 arg ll_pairing_success_flag ,queue 
+436b 20204375 branch mouse_le_enable_connect_flag 
+
+mouse_le_enc_info:
+
+mouse_updata_le_param:
+436c 70095b12 jam bt_cmd_le_update_conn ,mem_fifo_temp 
+436d 2020787a branch ui_ipc_send_cmd 
+
+mouse_le_ll_start_encryt:
+436e 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+436f c000c371 beq 1 ,mouse_le_ll_reconn_start_encryt 
+4370 20204373 branch mouse_le_ll_enable_start_enc_flag 
+
+mouse_le_ll_reconn_start_encryt:
+4371 2040436c call mouse_updata_le_param 
+4372 704b7614 jam 20 ,mem_le_start_encrypt_timer 
+
+mouse_le_ll_enable_start_enc_flag:
+4373 d8e00001 arg ll_start_enc_flag ,queue 
+4374 20204375 branch mouse_le_enable_connect_flag 
+
+mouse_le_enable_connect_flag:
+4375 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+4376 f9207e00 qset1 pdata 
+4377 67e0cb75 store 1 ,mem_le_connect_status_flag 
+4378 20600000 rtn 
+
+mouse_le_pairing_complete:
+4379 2020321d branch app_ble_store_reconn_info 
+
+mouse_le_conn_param_update_rsp_recieved:
+437a 6fe143db fetch 2 ,mem_le_l2cap_signaling_conn_param_update_rsp_result 
+437b c1000000 rtneq ble_signaling_connect_parameter_update_accepted 
+437c 6fe08289 fetch 1 ,mem_le_tsniff 
+437d 1feb7e00 rshift2 pdata ,pdata 
+437e 1fe67c0c sub pdata ,le_interval_15ms ,null 
+437f 20610000 rtn positive 
+4380 58000009 setarg le_interval_11_25ms 
+4381 67e14372 store 2 ,mem_le_interval_min 
+4382 67e14374 store 2 ,mem_le_interval_min + 2 
+4383 2040436c call mouse_updata_le_param 
+
+mouse_le_conn_param_lpm_disable:
+4384 704af401 jam le_lpm_disable ,mem_mouse_le_conn_param_reject 
+4385 20600000 rtn 
+
+mouse_le_conn_param_lpm_enable:
+4386 704af400 jam le_lpm_enable ,mem_mouse_le_conn_param_reject 
+4387 20600000 rtn 
+
+mouse_le_bb_event_connect_complete:
+4388 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+4389 247a0000 nrtn blank 
+438a 6fe0c437 fetch 1 ,mem_le_att_handle 
+438b 1fe67e22 sub pdata ,34 ,pdata 
+438c 24628000 nrtn zero 
+438d 704b7600 jam 0 ,mem_le_start_encrypt_timer 
+
+mouse_le_write_enable:
+438e d8e00000 arg write_req_enable_flag ,queue 
+438f 20204375 branch mouse_le_enable_connect_flag 
+
+mouse_le_parse_conn_param_accepted:
+4390 6fe082c1 fetch 1 ,mem_le_new_conninterval 
+4391 1fe67c0c sub pdata ,le_interval_15ms ,null 
+4392 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
+4393 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+4394 6848cb8a fetcht 1 ,mem_lpm_mult_init 
+4395 98467c00 isub temp ,null 
+4396 2021439a branch mouse_le_lpm_mult_reinit ,positive 
+4397 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+4398 67e0c177 store 1 ,mem_lpm_mult 
+4399 20204386 branch mouse_le_conn_param_lpm_enable 
+
+mouse_le_lpm_mult_reinit:
+439a 6fe0cb8a fetch 1 ,mem_lpm_mult_init 
+439b 67e0c177 store 1 ,mem_lpm_mult 
+439c 20204386 branch mouse_le_conn_param_lpm_enable 
+
+mouse_le_clean_connect_flag:
+439d 704b7500 jam 0 ,mem_le_connect_status_flag 
+439e 20600000 rtn 
+
+mouse_le:
+439f 44ebc01a bpatch patch1a_7 ,mem_patch1a 
+43a0 20401b77 call le_fifo_check_nearly_full 
+43a1 247a0000 nrtn blank 
+43a2 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+43a3 c07fc3a7 beq 0xff ,mouse_le_next 
+43a4 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+43a5 1fe17e03 and pdata ,0x03 ,pdata 
+43a6 c1818000 rtnne 0x03 
+
+mouse_le_next:
+43a7 6fe0caac fetch 1 ,mem_mouse_clear_sensor_data_flag 
+43a8 205a42c8 call mouse_clear_sensor_data_by_reset ,blank 
+43a9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+43aa c280c3d1 bbit1 mouse_24g_pairing_flag ,mouse_le_send_empty_packet 
+43ab c28043d1 bbit1 mouse_select_device_flag ,mouse_le_send_empty_packet 
+43ac c282c3d1 bbit1 mouse_bt_discovery_button_down_flag ,mouse_le_send_empty_packet 
+43ad c28343d1 bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_le_send_empty_packet 
+43ae 20403f70 call mouse_motion 
+43af 20404324 call mouse_check_125hz 
+43b0 24740000 nrtn user 
+43b1 2040432f call mouse_current_mult_update 
+43b2 204042cb call mouse_data_xy_release 
+43b3 2040401d call mouse_wheel_trigger 
+43b4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+43b5 c30ac3b8 bbit0 mouse_enable_keyboard ,mouse_le_send_mouse_data 
+43b6 6fe0cb8b fetch 1 ,mem_customer_key 
+43b7 c000c3b9 beq 1 ,mouse_le_send_keyboard_package_data 
+
+mouse_le_send_mouse_data:
+43b8 202043d3 branch mouse_fill_mouse_data_le 
+
+mouse_le_send_keyboard_package_data:
+43b9 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+43ba 203a43c3 branch mouse_le_release_keyboard_data ,blank 
+43bb 6fe44bcd fetch 8 ,mem_customer_key_press + 1 
+
+mouse_fill_keyboard_package_data_le:
+43bc 67e4095c store 8 ,mem_pdatatemp 
+43bd 6fe0cbcc fetch 1 ,mem_customer_key_press 
+43be c001c3c5 beq kb_multikey_report_id ,mouse_fill_multimedia_key_data_le 
+43bf c00143c8 beq kb_system_conctrl_report_id ,mouse_fill_systemctrl_key_data_le 
+43c0 704ae608 jam 8 ,mem_le_data_len 
+43c1 68494ae7 fetcht 2 ,mem_le_keyboard_handle 
+43c2 202043d8 branch mouse_fill_data_le 
+
+mouse_le_release_keyboard_data:
+43c3 6fe44bd6 fetch 8 ,mem_customer_key_release + 1 
+43c4 202043bc branch mouse_fill_keyboard_package_data_le 
+
+mouse_fill_multimedia_key_data_le:
+43c5 704ae603 jam 3 ,mem_le_data_len 
+43c6 68494ae9 fetcht 2 ,mem_le_multimedia_handle 
+43c7 202043d8 branch mouse_fill_data_le 
+
+mouse_fill_systemctrl_key_data_le:
+43c8 704ae602 jam 2 ,mem_le_data_len 
+43c9 68494aeb fetcht 2 ,mem_le_systemctrl_handle 
+43ca 202043d8 branch mouse_fill_data_le 
+
+mouse_fill_battery_level_le:
+43cb da200001 arg 1 ,rega 
+43cc 68494aed fetcht 2 ,mem_le_battery_level_handle 
+43cd 20401eb3 call le_att_malloc_tx_notify 
+43ce 6fe0caef fetch 1 ,mem_le_battery_level_percentage 
+43cf e7e08005 istore 1 ,contw 
+43d0 20600000 rtn 
+
+mouse_le_send_empty_packet:
+43d1 58000000 setarg 0 
+43d2 67e3c8d0 store 7 ,mem_mouse_key 
+
+mouse_fill_mouse_data_le:
+43d3 704ae607 jam 7 ,mem_le_data_len 
+43d4 6fe3c8d0 fetch 7 ,mem_mouse_key 
+43d5 67e3895c store 7 ,mem_pdatatemp 
+43d6 68494357 fetcht 2 ,mem_le_notify_handle 
+43d7 202043d8 branch mouse_fill_data_le 
+
+mouse_fill_data_le:
+43d8 6fe0cae6 fetch 1 ,mem_le_data_len 
+43d9 1fe22200 copy pdata ,rega 
+43da 20401eb3 call le_att_malloc_tx_notify 
+43db 6848cae6 fetcht 1 ,mem_le_data_len 
+43dc 18427200 copy temp ,loopcnt 
+43dd d8c0095c arg mem_pdatatemp ,contr 
+43de 20207d5f branch memcpy 
+
+mouse_check_51cmd_adv:
+43df 704ac700 jam 0 ,mem_mouse_le_reconnect_flag 
+43e0 6fe1cacc fetch 3 ,mem_le_adv_ind 
+43e1 67e1c3ec store 3 ,mem_le_adv_data + 4 
+43e2 204043e8 call mouse_le_check_adv_flag 
+43e3 58000005 setarg adv_flag_bredr_not_supported | adv_flag_limited_discoverable 
+43e4 e7e08006 istore 1 ,contr 
+43e5 d8c04ad2 arg mem_le_adv_swift_pair ,contr 
+43e6 204043ef call mouse_le_adv_data_update 
+43e7 202078ee branch check_51cmd_adv 
+
+mouse_le_check_adv_flag:
+43e8 da2043e8 arg mem_le_adv_data ,rega 
+
+mouse_le_check_adv_flag_loop:
+43e9 efe08011 ifetch 1 ,rega 
+43ea 207a0000 rtn blank 
+43eb 98c0a200 iadd contr ,rega 
+43ec efe08006 ifetch 1 ,contr 
+43ed c1008000 rtneq 0x01 
+43ee 202043e9 branch mouse_le_check_adv_flag_loop 
+
+mouse_le_adv_data_update:
+43ef d8a043f3 arg mem_le_adv_data + 11 ,contw 
+43f0 df200013 arg 19 ,loopcnt 
+43f1 20407d5f call memcpy 
+43f2 20201abe branch le_modified_name_adv 
+
+mouse_bt_sniff_param_interval_setup:
+43f3 5800000c setarg classic_interval_7_5ms 
+43f4 67e14455 store 2 ,mem_sniff_param_interval 
+43f5 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+43f6 c38d8000 rtnbit1 mouse_enable_bt_125hz 
+43f7 5800000e setarg classic_interval_8_75ms 
+43f8 67e14455 store 2 ,mem_sniff_param_interval 
+43f9 20600000 rtn 
+
+mouse_bb_event_connected:
+43fa 704aae00 jam 0 ,mem_mouse_long_mult_flag 
+43fb 204042ca call mouse_init_sensor_reset 
+43fc 20404822 call mouse_24g_first_store_reconn_info 
+43fd 20204576 branch mouse_stop_discovery 
+
+mouse_bb_disconnected:
+43fe 704b7f00 jam 0 ,mem_mouse_enter_sniff_count 
+43ff 704b8800 jam 0 ,mem_mouse_bt_send_first_package_flag 
+4400 204043f3 call mouse_bt_sniff_param_interval_setup 
+4401 20404409 call mouse_bb_discon_clear_stack 
+4402 6fe1447e fetch app_disc_rsn_size ,mem_app_disconn_reason 
+4403 c283c410 bbit1 app_disc_ble ,mouse4_0_event_bb_disconn 
+4404 c28031c6 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+4405 c280c414 bbit1 app_disc_after_pairing ,mouse_event_light_state_pairing 
+4406 c2814417 bbit1 app_disc_after_reconn ,mouse_event_light_state_hibernate 
+4407 c281c417 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
+4408 20204553 branch mouse_start_discovery 
+
+mouse_bb_discon_clear_stack:
+4409 58000000 setarg 0 
+440a 67e448d9 store 8 ,mem_wheel_tb_old_pinlevel 
+440b e7e20005 istore 4 ,contw 
+440c 7049c800 jam 0 ,mem_mouse_move_flag 
+440d 70445400 jam app_handshake_null ,mem_app_handshake_flag 
+440e 70432600 jam 0 ,mem_ltk_exists 
+440f 20600000 rtn 
+
+mouse4_0_event_bb_disconn:
+4410 2040439d call mouse_le_clean_connect_flag 
+4411 6fe1447e fetch app_disc_rsn_size ,mem_app_disconn_reason 
+4412 c28031c6 bbit1 app_disc_by_button ,app_disconn_reason_clear 
+4413 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_event_light_state_pairing:
+4414 c282c417 bbit1 app_disc_after_handshake ,mouse_event_light_state_hibernate 
+4415 c281c417 bbit1 app_disc_after_sniff ,mouse_event_light_state_hibernate 
+4416 20204553 branch mouse_start_discovery 
+
+mouse_event_light_state_hibernate:
+4417 6fe1478c fetch 2 ,mem_ui_state_map 
+4418 c2864553 bbit1 ui_state_btn_down ,mouse_start_discovery 
+4419 204031c6 call app_disconn_reason_clear 
+441a 20404110 call mouse_key_check_once 
+441b 204044dc call mouse_commbination_key_process 
+441c 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+441d c000be1d beq commbination_key_state_down ,mouse_delay_enter_hibernata 
+441e 6fe0cac4 fetch 1 ,mem_mouse_bluetooth_reconnect_timeout 
+441f 247a0000 nrtn blank 
+4420 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_bt_event_setup_complete:
+4421 20600000 rtn 
+
+mouse_bt_send_first_package_timer_init:
+4422 704b8704 jam 4 ,mem_mouse_bt_send_first_package_timer 
+4423 20600000 rtn 
+
+mouse_bt_hid_handshake:
+4424 70445401 jam app_handshake_done ,mem_app_handshake_flag 
+4425 20403223 call app_lpm_mult_enable 
+4426 2040321f call app_bt_store_reconn_info 
+4427 58000000 setarg 0 
+4428 67e14788 store 2 ,mem_discovery_timeout_timer_count 
+4429 67e0c78a store 1 ,mem_hid_handshake_timer_count 
+442a 20404422 call mouse_bt_send_first_package_timer_init 
+442b 2020321b branch app_bt_enter_sniff 
+
+mouse_bt_hid_handshake_boot_check:
+442c 704b8000 jam 0 ,mem_mouse_bt_boot_mode 
+442d 6fe0c5f5 fetch 1 ,mem_l2cap_rcv_hidtype 
+442e 2feffe00 isolate1 0 ,pdata 
+442f 20608000 rtn true 
+4430 704b8001 jam 1 ,mem_mouse_bt_boot_mode 
+4431 20600000 rtn 
+
+mouse_bb_event_reconn_timeout:
+
+mouse_bb_event_reconn_failed:
+4432 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+4433 c07fc2f8 beq 0xff ,mouse_buletooth_fast_conn_end 
+4434 6fe1478c fetch 2 ,mem_ui_state_map 
+4435 c3860000 rtnbit1 ui_state_btn_down 
+4436 c3830000 rtnbit1 ui_state_bt_discovery 
+4437 c3858000 rtnbit1 ui_state_ble_adv 
+4438 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4439 c3828000 rtnbit1 mouse_bt_discovery_button_down_flag 
+443a c299c553 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+443b c297c81f bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+443c 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_enter_sniff_check:
+443d 6fe0cb7f fetch 1 ,mem_mouse_enter_sniff_count 
+443e c1810000 rtnne 2 
+443f 704b7f00 jam 0 ,mem_mouse_enter_sniff_count 
+4440 204043f3 call mouse_bt_sniff_param_interval_setup 
+4441 20404422 call mouse_bt_send_first_package_timer_init 
+4442 2020321b branch app_bt_enter_sniff 
+
+mouse_sniff_not_accept:
+4443 6fe0cb7f fetch 1 ,mem_mouse_enter_sniff_count 
+4444 c1010000 rtneq 2 
+4445 1fe0fe01 increase 1 ,pdata 
+4446 67e0cb7f store 1 ,mem_mouse_enter_sniff_count 
+4447 70445512 jam 0x12 ,mem_sniff_param_interval 
+4448 20404422 call mouse_bt_send_first_package_timer_init 
+4449 2020321b branch app_bt_enter_sniff 
+
+mouse_bb_event_pincode:
+444a 20405af1 call pincode_reinit 
+444b 202031ea branch app_bt_set_pincode 
+
+mouse_irtual_cable_unplug:
+444c 58000001 setarg 0x01 
+444d 67e30041 store 6 ,mem_plap 
+444e 7000e833 jam rec_3_mode ,mem_record_bt_mode 
+444f 2020458d branch mouse_unplug_clean_bdaddr 
+
+mouse_irtual_cable_unplug1:
+4450 5fffffff setarg -1 
+4451 67e30041 store 6 ,mem_plap 
+4452 7000e833 jam rec_3_mode ,mem_record_bt_mode 
+4453 704ac1ff jam 0xff ,mem_mouse_bluetooth_fast_conn_flag 
+4454 204045a2 call mouse_before_store_reconn_info 
+4455 704939ff jam 0xff ,mem_device1_type 
+4456 202045ee branch mouse_store_device_info_delay 
+
+mouse_bt:
+4457 44ec401b bpatch patch1b_0 ,mem_patch1b 
+4458 20770000 rtn attempt 
+4459 6fe0c454 fetch 1 ,mem_app_handshake_flag 
+445a 207a0000 rtn blank 
+445b 204052f4 call l2cap_malloc_is_fifo_nearly_full 
+445c 247a0000 nrtn blank 
+445d 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+445e c07fc306 beq 0xff ,mouse_bt_fast_conn_send_device_name 
+445f 6fe0caac fetch 1 ,mem_mouse_clear_sensor_data_flag 
+4460 205a42c8 call mouse_clear_sensor_data_by_reset ,blank 
+4461 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4462 c280c48e bbit1 mouse_24g_pairing_flag ,mouse_send_empty_data 
+4463 c280448e bbit1 mouse_select_device_flag ,mouse_send_empty_data 
+4464 c282c48e bbit1 mouse_bt_discovery_button_down_flag ,mouse_send_empty_data 
+4465 c283448e bbit1 mouse_bt_discovery_button_long_down_flag ,mouse_send_empty_data 
+4466 20403f70 call mouse_motion 
+4467 20404324 call mouse_check_125hz 
+4468 24740000 nrtn user 
+4469 2040432f call mouse_current_mult_update 
+446a 204042cb call mouse_data_xy_release 
+446b 2040401d call mouse_wheel_trigger 
+446c 6fe0cb80 fetch 1 ,mem_mouse_bt_boot_mode 
+446d c000c47d beq 1 ,mouse_send_data_boot_mode 
+446e 6fe0cb88 fetch 1 ,mem_mouse_bt_send_first_package_flag 
+446f 207a0000 rtn blank 
+4470 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4471 c30ac474 bbit0 mouse_enable_keyboard ,mouse_send_data 
+4472 6fe0cb8b fetch 1 ,mem_customer_key 
+4473 c000c491 beq 1 ,mouse_bt_send_keyboard_packet 
+
+mouse_send_data:
+4474 da200009 arg 9 ,rega 
+4475 20404dc0 call hid_malloc_tx_buff 
+4476 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+4477 e7e10005 istore 2 ,contw 
+4478 580002a1 setarg 0x02a1 
+4479 e7e10005 istore 2 ,contw 
+447a 6fe3c8d0 fetch 7 ,mem_mouse_key 
+447b e7e38005 istore 7 ,contw 
+447c 20600000 rtn 
+
+mouse_send_data_boot_mode:
+447d 6fe0c8d0 fetch 1 ,mem_mouse_key 
+447e 67e0cb81 store 1 ,mem_mouse_bt_boot_data 
+447f 6fe0c8d1 fetch 1 ,mem_mouse_x 
+4480 e7e08005 istore 1 ,contw 
+4481 6fe0c8d3 fetch 1 ,mem_mouse_y 
+4482 e7e08005 istore 1 ,contw 
+4483 6fe148d5 fetch 2 ,mem_mouse_z 
+4484 e7e10005 istore 2 ,contw 
+4485 da200007 arg 7 ,rega 
+4486 20404dc0 call hid_malloc_tx_buff 
+4487 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+4488 e7e10005 istore 2 ,contw 
+4489 580002a1 setarg 0x02a1 
+448a e7e10005 istore 2 ,contw 
+448b 6fe2cb81 fetch 5 ,mem_mouse_bt_boot_data 
+448c e7e28005 istore 5 ,contw 
+448d 20600000 rtn 
+
+mouse_send_empty_data:
+448e 58000000 setarg 0 
+448f 67e3c8d0 store 7 ,mem_mouse_key 
+4490 20204474 branch mouse_send_data 
+
+mouse_bt_send_keyboard_packet:
+4491 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+4492 203a44b3 branch mouse_bt_release_keyboard_data ,blank 
+4493 6fe44bcd fetch 8 ,mem_customer_key_press + 1 
+
+mouse_bt_send_keyboard_data:
+4494 67e4095c store 8 ,mem_pdatatemp 
+4495 6fe0cbcc fetch 1 ,mem_customer_key_press 
+4496 c001c4a1 beq kb_multikey_report_id ,mouse_bt_send_multimedia_key_data 
+4497 c00144aa beq kb_system_conctrl_report_id ,mouse_bt_send_systemctrl_key_data 
+4498 da20000a arg 10 ,rega 
+4499 20404dc0 call hid_malloc_tx_buff 
+449a 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+449b e7e10005 istore 2 ,contw 
+449c 580001a1 setarg 0x01a1 
+449d e7e10005 istore 2 ,contw 
+449e 6fe4095c fetch 8 ,mem_pdatatemp 
+449f e7e40005 istore 8 ,contw 
+44a0 20600000 rtn 
+
+mouse_bt_send_multimedia_key_data:
+44a1 da200004 arg 4 ,rega 
+44a2 20404dc0 call hid_malloc_tx_buff 
+44a3 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+44a4 e7e10005 istore 2 ,contw 
+44a5 580003a1 setarg 0x03a1 
+44a6 e7e10005 istore 2 ,contw 
+44a7 6fe1095c fetch 2 ,mem_pdatatemp 
+44a8 e7e10005 istore 2 ,contw 
+44a9 20600000 rtn 
+
+mouse_bt_send_systemctrl_key_data:
+44aa da200003 arg 3 ,rega 
+44ab 20404dc0 call hid_malloc_tx_buff 
+44ac 6fe144de fetch 2 ,mem_hid_int_remote_cid 
+44ad e7e10005 istore 2 ,contw 
+44ae 580004a1 setarg 0x04a1 
+44af e7e10005 istore 2 ,contw 
+44b0 6fe0895c fetch 1 ,mem_pdatatemp 
+44b1 e7e08005 istore 1 ,contw 
+44b2 20600000 rtn 
+
+mouse_bt_release_keyboard_data:
+44b3 6fe44bd6 fetch 8 ,mem_customer_key_release + 1 
+44b4 20204494 branch mouse_bt_send_keyboard_data 
+
+mouse_bb_event_timer:
+44b5 44ecc01b bpatch patch1b_1 ,mem_patch1b 
+44b6 20403e9b call mouse_adc_read 
+44b7 20404956 call mouse_low_voltage_led_timer 
+44b8 2040232b call g24_pair_timeout_timer 
+44b9 20402556 call g24_reconn_timeout_timer 
+44ba 204047cd call mouse_24g_long_sleep_param_update_timer 
+44bb 204048be call mouse_device_poweron_timer 
+44bc 204048ef call mouse_dpi_led_blink_delay_timer 
+44bd 2040407c call mouse_dpi_key_check_long_press 
+44be 204044cc call mouse_bt_discovery_check 
+44bf 204044dc call mouse_commbination_key_process 
+44c0 204044ff call mouse_check_discovery_timeout_timer 
+44c1 20404504 call mouse_check_direct_timeout_timer 
+44c2 20404512 call mouse_le_enable_att_list_timer 
+44c3 2040451f call mouse_le_battery_updata_timer 
+44c4 20404515 call mouse_le_send_smp_security_request_timer 
+44c5 2040452a call mouse_check_hid_handshake_timer 
+44c6 2040452d call mouse_bt_check_sniff_req_timeout_timer 
+44c7 20404532 call mouse_check_reconnect_delay_long_sleep 
+44c8 20404535 call mouse_current_mult_update_timer 
+44c9 20404022 call mouse_wheel_trigger_timer 
+44ca 20404547 call mouse_store_information_delay_timer 
+44cb 2020453c branch mouse_check_no_data_timeout_timer 
+
+mouse_bt_discovery_check:
+44cc 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+44cd c29bc4cf bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_bt_discovery_by_pb_button 
+44ce 20600000 rtn 
+
+mouse_bt_discovery_by_pb_button:
+44cf 6fe0cb9e fetch 1 ,mem_select_device_button_statue 
+44d0 c1808000 rtnne pb_button_state_down 
+44d1 da604b9b arg mem_bt_discovery_count ,regc 
+44d2 da4044d4 arg mouse_long_button_bt_discovery ,regb 
+44d3 2020318a branch timer_single_step 
+
+mouse_long_button_bt_discovery:
+44d4 6fe0c938 fetch 1 ,mem_device_flag 
+44d5 c1000000 rtneq mode_24g_device 
+44d6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+44d7 c3830000 rtnbit1 mouse_bt_discovery_button_long_down_flag 
+44d8 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+44d9 204046f0 call mouse_enable_function_flag 
+44da 20403173 call app_evt_button_long_pressed 
+44db 2020454e branch mouse_bb_event_discovery_btn 
+
+mouse_commbination_key_process:
+44dc 6fe0c938 fetch 1 ,mem_device_flag 
+44dd c00044e2 beq mode_24g_device ,mouse_24g_commbination_key_process 
+44de 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+44df c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+44e0 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
+44e1 202044e5 branch mouse_commbination_key_start 
+
+mouse_24g_commbination_key_process:
+44e2 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+44e3 c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+44e4 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+
+mouse_commbination_key_start:
+44e5 6048cb9d storet 1 ,mem_mouse_commbination_key 
+44e6 20404115 call mouse_check_key_gpio 
+44e7 1fe17e07 and pdata ,0x07 ,pdata 
+44e8 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
+44e9 98467c00 isub temp ,null 
+44ea 2022c4f1 branch mouse_commbination_key_down ,zero 
+
+mouse_commbination_key_up:
+44eb 6fe0c78f fetch 1 ,mem_ui_button_timeout 
+44ec 67e0cba0 store 1 ,mem_combination_ui_button_count 
+44ed 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+44ee c1000000 rtneq commbination_key_state_up 
+44ef 704b9f00 jam commbination_key_state_up ,mem_commbination_key_statue 
+44f0 20600000 rtn 
+
+mouse_commbination_key_down:
+44f1 204044f6 call mouse_combination_ui_timer 
+44f2 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+44f3 c1008000 rtneq commbination_key_state_down 
+44f4 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
+44f5 20207931 branch check_51cmd_bb_reconn_cancel 
+
+mouse_combination_ui_timer:
+44f6 da404827 arg mouse_24g_start_pair_mode ,regb 
+44f7 da604ba0 arg mem_combination_ui_button_count ,regc 
+44f8 6fe0c938 fetch 1 ,mem_device_flag 
+44f9 c000318a beq mode_24g_device ,timer_single_step 
+44fa da4044d4 arg mouse_long_button_bt_discovery ,regb 
+44fb 2040318a call timer_single_step 
+44fc 6fe0cba0 fetch 1 ,mem_combination_ui_button_count 
+44fd c000c6e2 beq 1 ,mouse_bt_discovery_button_down_enable 
+44fe 20600000 rtn 
+
+mouse_check_discovery_timeout_timer:
+44ff da604ac2 arg mem_mouse_discovery_timer ,regc 
+4500 da404502 arg mouse_check_discovery_timeout ,regb 
+4501 20203191 branch timer_single_step_2b 
+
+mouse_check_discovery_timeout:
+4502 20404576 call mouse_stop_discovery 
+4503 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_check_direct_timeout_timer:
+4504 da604b77 arg mem_mouse_direct_timer ,regc 
+4505 da40450a arg mouse_check_direct_timeout ,regb 
+4506 20403191 call timer_single_step_2b 
+4507 6fe0cb77 fetch 1 ,mem_mouse_direct_timer 
+4508 c000b203 beq 1 ,app_ble_stop_direct_adv 
+4509 20600000 rtn 
+
+mouse_check_direct_timeout:
+450a 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+450b c07fc2f8 beq 0xff ,mouse_buletooth_fast_conn_end 
+450c 6fe0cab0 fetch 1 ,mem_reconn_times 
+450d 243a470e nbranch mouse_polling_device ,blank 
+450e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+450f c299c553 bbit1 mouse_enable_bt_reconnect_timeout_enter_discovery ,mouse_start_discovery 
+4510 c297c81f bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_bb_event_reconn_timeout 
+4511 20203e20 branch mouse_app_enter_hibernate 
+
+mouse_le_enable_att_list_timer:
+4512 da604b76 arg mem_le_start_encrypt_timer ,regc 
+4513 da40438e arg mouse_le_write_enable ,regb 
+4514 2020318a branch timer_single_step 
+
+mouse_le_send_smp_security_request_timer:
+4515 6fe0cac6 fetch 1 ,mem_mouse_le_bb_connected_flag 
+4516 207a0000 rtn blank 
+4517 da604ac8 arg mem_mouse_send_secutiry_request_timer ,regc 
+4518 da40451a arg mouse_le_pairing_sm_start_check ,regb 
+4519 2020318a branch timer_single_step 
+
+mouse_le_pairing_sm_start_check:
+451a 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+451b 247a0000 nrtn blank 
+451c 6fe0c39b fetch 1 ,mem_le_pairing_state 
+451d c1800000 rtnne flag_le_pairing_null 
+451e 20202090 branch le_pairing_sm_start 
+
+mouse_le_battery_updata_timer:
+451f da604af2 arg mem_le_battery_level_updata_timer ,regc 
+4520 da404522 arg mouse_le_battery_level_updata ,regb 
+4521 2020318a branch timer_single_step 
+
+mouse_le_battery_level_updata:
+4522 6fe14af0 fetch 2 ,mem_le_battery_level_updata_timer_init 
+4523 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+4524 202043cb branch mouse_fill_battery_level_le 
+
+mouse_le_enable_att_list:
+4525 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+4526 c3810000 rtnbit1 ll_pairing_success_flag 
+4527 2040436c call mouse_updata_le_param 
+4528 d8e00000 arg write_req_enable_flag ,queue 
+4529 20204375 branch mouse_le_enable_connect_flag 
+
+mouse_check_hid_handshake_timer:
+452a da60478a arg mem_hid_handshake_timer_count ,regc 
+452b da404424 arg mouse_bt_hid_handshake ,regb 
+452c 2020318a branch timer_single_step 
+
+mouse_bt_check_sniff_req_timeout_timer:
+452d da604b87 arg mem_mouse_bt_send_first_package_timer ,regc 
+452e da404530 arg mouse_bt_send_first_package ,regb 
+452f 2020318a branch timer_single_step 
+
+mouse_bt_send_first_package:
+4530 704b8801 jam 1 ,mem_mouse_bt_send_first_package_flag 
+4531 20600000 rtn 
+
+mouse_check_reconnect_delay_long_sleep:
+4532 da604ac4 arg mem_mouse_bluetooth_reconnect_timeout ,regc 
+4533 da403e20 arg mouse_app_enter_hibernate ,regb 
+4534 2020318a branch timer_single_step 
+
+mouse_current_mult_update_timer:
+4535 da604aaf arg mem_mouse_current_mult_timer ,regc 
+4536 da404538 arg mouse_current_mult_reinit ,regb 
+4537 2020318a branch timer_single_step 
+
+mouse_current_mult_reinit:
+4538 6fe0cb8a fetch 1 ,mem_lpm_mult_init 
+4539 67e0c177 store 1 ,mem_lpm_mult 
+453a 704aae01 jam 1 ,mem_mouse_long_mult_flag 
+453b 20600000 rtn 
+
+mouse_check_no_data_timeout_timer:
+453c 6fe0c92a fetch 1 ,mem_usb_addr 
+453d c3838000 rtnbit1 7 
+453e da604ab2 arg mem_mouse_no_data_timer ,regc 
+453f da404541 arg mouse_check_no_data_timeout ,regb 
+4540 20203191 branch timer_single_step_2b 
+
+mouse_check_no_data_timeout:
+4541 6fe0c938 fetch 1 ,mem_device_flag 
+4542 c00047e1 beq mode_24g_device ,mouse_24g_hibernate_set 
+4543 2020431b branch mouse_disconnect 
+
+mouse_no_data_timer_init:
+4544 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
+4545 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+4546 20600000 rtn 
+
+mouse_store_information_delay_timer:
+4547 da6049bf arg mem_store_information_delay_timer ,regc 
+4548 da40454a arg mouse_store_device_info_check ,regb 
+4549 2020318a branch timer_single_step 
+
+mouse_store_device_info_check:
+454a 204045f1 call mouse_store_device_info 
+454b 6fe0cac5 fetch 1 ,mem_mouse_need_soft_reset 
+454c 243a46c0 nbranch mouse_soft_reset ,blank 
+454d 20600000 rtn 
+
+mouse_bb_event_discovery_btn:
+454e 280ffe26 isolate1 mark_24g ,mark 
+454f 2040c7f2 call mouse_24g_stop ,true 
+4550 2040431b call mouse_disconnect 
+4551 2040439d call mouse_le_clean_connect_flag 
+4552 20204553 branch mouse_start_discovery 
+
+mouse_start_discovery:
+4553 44ed401b bpatch patch1b_2 ,mem_patch1b 
+4554 20404314 call mouse_bluetooth_fast_conn_disable 
+4555 6fe1478c fetch 2 ,mem_ui_state_map 
+4556 c285c55f bbit1 ui_state_ble_adv ,mouse_start_discovery_norandom 
+4557 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4558 c304455f bbit0 mouse_enable_ble_random_addre ,mouse_start_discovery_norandom 
+4559 68494997 fetcht 2 ,mem_random_addr_increase_count 
+455a 18408401 increase 1 ,temp 
+455b 60494997 storet 2 ,mem_random_addr_increase_count 
+455c 6049437b storet 2 ,mem_le_lap + 1 
+455d 180a7e00 random pdata 
+455e 67e0c37a store 1 ,mem_le_lap 
+
+mouse_start_discovery_norandom:
+455f 6fe1cac9 fetch 3 ,mem_mouse_le_lap_temp 
+4560 67e1c37d store 3 ,mem_le_lap + 3 
+4561 20403225 call app_lpm_mult_disable 
+4562 6fe14791 fetch 2 ,mem_discovery_timeout 
+4563 67e14ac2 store 2 ,mem_mouse_discovery_timer 
+4564 7000bd06 jam 6 ,mem_connection_options 
+4565 58000000 setarg 0 
+4566 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+4567 67e0cb77 store 1 ,mem_mouse_direct_timer 
+4568 67e0cac4 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
+4569 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
+456a 67e0caac store 1 ,mem_mouse_clear_sensor_data_flag 
+456b d8e00002 arg mouse_store_eeprom_flag ,queue 
+456c 204046f0 call mouse_enable_function_flag 
+456d 204046e4 call mouse_bt_discovery_button_down_disable 
+456e 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
+456f 2feffe01 isolate1 mode_4_mouse ,pdata 
+4570 2040c3df call mouse_check_51cmd_adv ,true 
+4571 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
+4572 2feffe00 isolate1 mode_3_mouse ,pdata 
+4573 2040f8c4 call check_51cmd_start_discovery ,true 
+4574 2040498e call mouse_low_voltage_led_blink_disable 
+4575 202048cc branch mouse_discover_setting_led_gpio 
+
+mouse_stop_discovery:
+4576 44edc01b bpatch patch1b_3 ,mem_patch1b 
+4577 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
+4578 204046f4 call mouse_disable_function_flag 
+4579 704ac400 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
+457a 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
+457b 2feffe01 isolate1 mode_4_mouse ,pdata 
+457c 2040c581 call mouse_stop_le_adv ,true 
+457d 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
+457e 2feffe00 isolate1 mode_3_mouse ,pdata 
+457f 2040c583 call mouse_stop_bt3_discovery ,true 
+4580 20204912 branch mouse_device_led_off 
+
+mouse_stop_le_adv:
+4581 704b7700 jam 0 ,mem_mouse_direct_timer 
+4582 202078f4 branch check_51cmd_stop_adv 
+
+mouse_stop_bt3_discovery:
+4583 58000000 setarg 0 
+4584 67e14ac2 store 2 ,mem_mouse_discovery_timer 
+4585 202078c9 branch check_51cmd_stop_discovery 
+
+mouse_store_remote_bdaddr:
+4586 44ee401b bpatch patch1b_4 ,mem_patch1b 
+4587 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4588 c4010000 rtnbit0 mouse_store_eeprom_flag 
+4589 204048c6 call mouse_device_poweron_timer_init 
+458a d8e00002 arg mouse_store_eeprom_flag ,queue 
+458b 204046f4 call mouse_disable_function_flag 
+458c 2040458f call mouse_check_device_addr 
+
+mouse_unplug_clean_bdaddr:
+458d 204045a2 call mouse_before_store_reconn_info 
+458e 202045ee branch mouse_store_device_info_delay 
+
+mouse_check_device_addr:
+458f 6fe080e8 fetch 1 ,mem_record_bt_mode 
+4590 c01a4593 beq rec_4_mode ,mouse_check_le_device_addr 
+4591 c019c596 beq rec_3_mode ,mouse_check_bt_device_addr 
+4592 20600000 rtn 
+
+mouse_check_le_device_addr:
+4593 67e0cb78 store 1 ,mem_device_addr_temp 
+4594 6fe30297 fetch 6 ,mem_le_plap 
+4595 20204598 branch mouse_check_bt_device_addr_common 
+
+mouse_check_bt_device_addr:
+4596 67e0cb78 store 1 ,mem_device_addr_temp 
+4597 6fe30041 fetch 6 ,mem_plap 
+
+mouse_check_bt_device_addr_common:
+4598 67e34b79 store 6 ,mem_device_addr_temp + 1 
+4599 6fe3cb78 fetch 7 ,mem_device_addr_temp 
+459a d8c04939 arg mem_device1_type ,contr 
+459b df200003 arg 3 ,loopcnt 
+
+mouse_check_device_addr_end:
+459c e8438006 ifetcht 7 ,contr 
+459d 98467c00 isub temp ,null 
+459e 2022c5b7 branch mouse_clean_addr ,zero 
+459f 18c08c16 increase 22 ,contr 
+45a0 c200459c loop mouse_check_device_addr_end 
+45a1 20600000 rtn 
+
+mouse_before_store_reconn_info:
+45a2 da204939 arg mem_device1_type ,rega 
+45a3 6fe0c938 fetch 1 ,mem_device_flag 
+45a4 1fe0ffff increase -1 ,pdata 
+45a5 1feffe1d mul32 pdata ,29 ,pdata 
+45a6 9a20a200 iadd rega ,rega 
+45a7 6fe080e8 fetch 1 ,mem_record_bt_mode 
+45a8 e7e08011 istore 1 ,rega 
+45a9 c01a45ac beq rec_4_mode ,mouse_store_le_device 
+45aa c019c5b3 beq rec_3_mode ,mouse_store_bt_device 
+45ab 20600000 rtn 
+
+mouse_store_le_device:
+45ac 6fe30297 fetch 6 ,mem_le_plap 
+45ad e7e30005 istore 6 ,contw 
+45ae d8c04316 arg mem_le_ltk ,contr 
+45af 20407d0c call memcpy16 
+45b0 6fe3437a fetch 6 ,mem_le_lap 
+45b1 e7e30005 istore 6 ,contw 
+45b2 20600000 rtn 
+
+mouse_store_bt_device:
+45b3 6fe30041 fetch 6 ,mem_plap 
+45b4 e7e30005 istore 6 ,contw 
+45b5 d8c041cb arg mem_link_key ,contr 
+45b6 20207d0c branch memcpy16 
+
+mouse_clean_addr:
+45b7 18c08dfa increase -6 ,contr 
+45b8 18c20a00 copy contr ,contw 
+45b9 684b4b79 fetcht 6 ,mem_device_addr_temp + 1 
+45ba 18408403 increase 3 ,temp 
+45bb e0430005 istoret 6 ,contw 
+45bc 20600000 rtn 
+
+mouse_select_reconn_device:
+45bd da204939 arg mem_device1_type ,rega 
+45be 6fe0c938 fetch 1 ,mem_device_flag 
+45bf c1000000 rtneq mode_24g_device 
+45c0 1fe0ffff increase -1 ,pdata 
+45c1 1feffe1d mul32 pdata ,29 ,pdata 
+45c2 9a20a200 iadd rega ,rega 
+45c3 efe08011 ifetch 1 ,rega 
+45c4 67e0c482 store 1 ,mem_xrecord_mode 
+45c5 c019c5c8 beq rec_3_mode ,mouse_load_bt_device 
+45c6 c01a45cd beq rec_4_mode ,mouse_load_le_device 
+45c7 20600000 rtn 
+
+mouse_load_bt_device:
+45c8 efe30006 ifetch 6 ,contr 
+
+mouse_load_bt_device_end:
+45c9 67e341dd store 6 ,mem_hci_plap 
+45ca d8a041cb arg mem_link_key ,contw 
+45cb 20407d0c call memcpy16 
+45cc 2020602c branch check_link_key_load 
+
+mouse_load_le_device:
+45cd efe30006 ifetch 6 ,contr 
+
+mouse_load_le_device_end:
+45ce 67e341dd store 6 ,mem_hci_plap 
+45cf d8a04316 arg mem_le_ltk ,contw 
+45d0 20407d0c call memcpy16 
+45d1 efe30006 ifetch 6 ,contr 
+45d2 67e3437a store 6 ,mem_le_lap 
+45d3 20600000 rtn 
+
+mouse_app_initflag_check:
+45d4 6fe14990 fetch 2 ,mem_store_flag 
+45d5 d840aa55 arg eeprom_init_flag ,temp 
+45d6 98467c00 isub temp ,null 
+45d7 2022c5e2 branch mouse_load_device_info ,zero 
+45d8 60494990 storet 2 ,mem_store_flag 
+45d9 204045e7 call mouse_ble_init_address 
+45da 6fe0cab4 fetch 1 ,mem_device_flag_temp 
+45db 67e0c938 store 1 ,mem_device_flag 
+45dc 6fe0c926 fetch 1 ,mem_config_sensor_dpi 
+45dd 67e0c992 store 1 ,mem_mouse_dpi 
+45de 6fe2488d fetch 4 ,mem_24g_fast_conn_addr 
+45df 67e24891 store 4 ,mem_24g_receiver_addr 
+45e0 67e2483c store 4 ,mem_24g_addr 
+45e1 20600000 rtn 
+
+mouse_load_device_info:
+45e2 204045bd call mouse_select_reconn_device 
+45e3 6fe24993 fetch 4 ,mem_mouse_24g_addr 
+45e4 67e24891 store 4 ,mem_24g_receiver_addr 
+45e5 67e2483c store 4 ,mem_24g_addr 
+45e6 20600000 rtn 
+
+mouse_ble_init_address:
+45e7 6fe3437a fetch 6 ,mem_le_lap 
+45e8 67e34950 store 6 ,mem_device1_locall_addr 
+45e9 1fe0ff00 add pdata ,0x0100 ,pdata 
+45ea 67e3496d store 6 ,mem_device2_locall_addr 
+45eb 1fe0ff00 add pdata ,0x0100 ,pdata 
+45ec 67e3498a store 6 ,mem_device3_locall_addr 
+45ed 20600000 rtn 
+
+mouse_store_device_info_delay:
+45ee 6fe0c9c0 fetch 1 ,mem_store_information_delay_timer_init 
+45ef 67e0c9bf store 1 ,mem_store_information_delay_timer 
+45f0 20600000 rtn 
+
+mouse_store_device_info:
+45f1 44eec01b bpatch patch1b_5 ,mem_patch1b 
+45f2 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+45f3 c289c63f bbit1 mouse_enable_eeprom ,mouse_store_eeprom_device_info 
+45f4 c2894603 bbit1 mouse_enable_flash ,mouse_store_flash_device_info 
+45f5 20600000 rtn 
+
+mouse_load_flash_info_check:
+45f6 20405d10 call spid_init_flash 
+45f7 2040460a call mouse_spid_flash_release_form_powerdown 
+45f8 204045fd call mouse_information_flash_parameters 
+45f9 20405d33 call spid_read_flash 
+45fa 20404611 call mouse_spid_flash_powerdown 
+45fb 204045d4 call mouse_app_initflag_check 
+45fc 20203f65 branch mouse_sensor_spi_init 
+
+mouse_information_flash_parameters:
+45fd 580049b8 setarg mem_mouse_information_end 
+45fe d8404938 arg mem_mouse_information_start ,temp 
+45ff 98460400 isub temp ,temp 
+4600 6fe1c9b8 fetch 3 ,mem_flash_base 
+4601 da204938 arg mem_mouse_information_start ,rega 
+4602 20600000 rtn 
+
+mouse_store_flash_device_info:
+4603 20405d10 call spid_init_flash 
+4604 2040460a call mouse_spid_flash_release_form_powerdown 
+4605 2040461f call mouse_flash_erase_sector 
+4606 204045fd call mouse_information_flash_parameters 
+4607 20404622 call mouse_spid_write_flash 
+4608 20404611 call mouse_spid_flash_powerdown 
+4609 20203f65 branch mouse_sensor_spi_init 
+
+mouse_spid_flash_release_form_powerdown:
+460a 700964ab jam flash_command_release_from_powerdown ,mem_temp 
+
+mouse_spid_write_flash_cmd:
+460b 204061d7 call delay_nop100 
+460c 20405d15 call spid_unlock_flash 
+460d da2049bb arg mem_write_flash_head_temp ,rega 
+460e 68488964 fetcht 1 ,mem_temp 
+460f 20404613 call mouse_spid_write_flash_cmd_common 
+4610 202061d7 branch delay_nop100 
+
+mouse_spid_flash_powerdown:
+4611 700964b9 jam flash_command_powerdown ,mem_temp 
+4612 2020460b branch mouse_spid_write_flash_cmd 
+
+mouse_spid_write_flash_cmd_common:
+4613 e0408011 istoret 1 ,rega 
+4614 1ff10400 rshift16 pdata ,temp 
+4615 e0408005 istoret 1 ,contw 
+4616 1fec8400 rshift8 pdata ,temp 
+4617 e0408005 istoret 1 ,contw 
+4618 e7e08005 istore 1 ,contw 
+4619 1a227e00 deposit rega 
+461a 67f1008a store 2 ,core_spid_txaddr 
+461b 58000000 setarg 0 
+461c 67f1008e store 2 ,core_spid_rxlen 
+461d 70800602 jam spid_start ,core_misc_ctrl 
+461e 20205ccf branch wait_spid_done 
+
+mouse_flash_erase_sector:
+461f 6fe1c9b8 fetch 3 ,mem_flash_base 
+4620 67e1c4a5 store 3 ,mem_spi_write_addr 
+4621 20205ceb branch spid_flash_erase_sector + 2 
+
+mouse_spid_write_flash:
+4622 1fe22600 copy pdata ,regc 
+4623 1a227e00 copy rega ,pdata 
+4624 1fe0fffc increase -4 ,pdata 
+4625 1fe22400 copy pdata ,regb 
+4626 efe20012 ifetch 4 ,regb 
+4627 67e249bb store 4 ,mem_write_flash_head_temp 
+4628 1a627e00 copy regc ,pdata 
+4629 20405d22 call spid_write_flash 
+462a 6fe249bb fetch 4 ,mem_write_flash_head_temp 
+462b e7e20012 istore 4 ,regb 
+462c 20600000 rtn 
+
+mouse_flash_power_down:
+462d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+462e c4090000 rtnbit0 mouse_enable_flash 
+462f 20404611 call mouse_spid_flash_powerdown 
+4630 20405b08 call twspi_enable 
+4631 6848c4b5 fetcht 1 ,mem_spi_cs_gpio 
+4632 20406065 call gpio_out_inactive 
+4633 6848c4ba fetcht 1 ,mem_spi_hold_gpio 
+4634 20203f54 branch mouse_gpio_config_input_pd 
+
+mouse_load_eeprom_info_check:
+4635 20405da5 call iicd_read_init_pin 
+4636 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4637 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
+4638 2440ddbf ncall clear_eeprom_size_2k ,true 
+4639 2040463b call mouse_eeprom_load_recon_info 
+463a 202045d4 branch mouse_app_initflag_check 
+
+mouse_eeprom_load_recon_info:
+463b d8400080 arg 128 ,temp 
+463c da204938 arg mem_device_flag ,rega 
+463d da400000 arg mouse_info_eeprom_offect ,regb 
+463e 20205ddc branch iicd_read_eep_data 
+
+mouse_store_eeprom_device_info:
+463f d8400080 arg 128 ,temp 
+4640 da204938 arg mem_device_flag ,rega 
+4641 da400000 arg mouse_info_eeprom_offect ,regb 
+4642 20205dce branch iicd_write_protect_eep_data 
+
+mouse_store_eerpom_dpi:
+4643 d8400001 arg 1 ,temp 
+4644 da204992 arg mem_mouse_dpi ,rega 
+4645 da40005a arg mouse_dpi_eeprom_offect ,regb 
+4646 20205dce branch iicd_write_protect_eep_data 
+
+mouse_load_eeprom_dpi:
+4647 d8400001 arg 1 ,temp 
+4648 da204992 arg mem_mouse_dpi ,rega 
+4649 da40005a arg mouse_dpi_eeprom_offect ,regb 
+464a 20205ddc branch iicd_read_eep_data 
+
+mouse_idle:
+464b 44ef401b bpatch patch1b_6 ,mem_patch1b 
+464c 20404990 call mouse_low_voltage_led_no_enter_lpm 
+464d 20407936 call ui_check_paring_button 
+464e 20404027 call mouse_dpi_check 
+464f 20404655 call mouse_select_device_check 
+4650 204046a0 call mouse_check_select_device_by_switch 
+4651 204046d6 call mouse_bt_button_check 
+4652 20403dbd call mouse_usb_isr 
+4653 20403f88 call mouse_wheel_check 
+4654 20203dd4 branch mouse_usb_mode 
+
+mouse_select_device_check:
+4655 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4656 c294c65a bbit1 mouse_enable_select_device_by_pb_button ,mouse_select_device_by_pb_button 
+4657 c29bc65a bbit1 mouse_enable_pb_button_long_press_disconvery ,mouse_select_device_by_pb_button 
+4658 20600000 rtn 
+
+mouse_select_device_by_pb_button_check_once:
+4659 704b9403 jam 0x03 ,mem_mouse_pbkey_press_status 
+
+mouse_select_device_by_pb_button:
+465a 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
+465b c17f8000 rtneq gpio_disable 
+465c da200000 arg 0 ,rega 
+465d 704b9606 jam mouse_pb_key ,mem_mouse_key_temp 
+465e 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+465f 2040466a call mouse_pb_button_check 
+4660 67e0cb94 store 1 ,mem_mouse_pbkey_press_status 
+4661 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+4662 c07fc667 beq gpio_disable ,mouse_3io6key_pb_button_check_end 
+4663 20404168 call mouse_matrix_public_gpio_reset 
+
+mouse_select_device_by_pb_button_exit:
+4664 1a227e00 copy rega ,pdata 
+4665 c283468b bbit1 mouse_pb_key ,mouse_select_device_button_down 
+4666 20204680 branch mouse_select_device_button_up 
+
+mouse_3io6key_pb_button_check_end:
+4667 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+4668 20403f56 call mouse_gpio_config_input_pu 
+4669 20204664 branch mouse_select_device_by_pb_button_exit 
+
+mouse_pb_button_check:
+466a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+466b c296c676 bbit1 mouse_enable_pb_button_connect_gnd ,mouse_pb_button_connect_gnd 
+466c 6fe0cb94 fetch 1 ,mem_mouse_pbkey_press_status 
+466d 1fe22600 copy pdata ,regc 
+466e 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+466f c07fc195 beq gpio_disable ,mouse_3io6key_check 
+4670 6fe0cb9a fetch 1 ,mem_mouse_ghost_flag 
+4671 243a4673 nbranch mouse_select_device_by_pb_button_end ,blank 
+4672 20204678 branch mouse_pb_button_connect_matrix 
+
+mouse_select_device_by_pb_button_end:
+4673 704b9e00 jam pb_button_state_up ,mem_select_device_button_statue 
+4674 704b9400 jam 0 ,mem_mouse_pbkey_press_status 
+4675 20600000 rtn 
+
+mouse_pb_button_connect_gnd:
+4676 6fe0cb94 fetch 1 ,mem_mouse_pbkey_press_status 
+4677 20204187 branch mouse_check_key_connect_gnd 
+
+mouse_pb_button_connect_matrix:
+4678 20406059 call gpio_get_bit 
+4679 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+467a 2020c676 branch mouse_pb_button_connect_gnd ,true 
+467b 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+467c 20406069 call gpio_out_active 
+467d 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+467e 6fe0cb94 fetch 1 ,mem_mouse_pbkey_press_status 
+467f 20204187 branch mouse_check_key_connect_gnd 
+
+mouse_select_device_button_up:
+4680 6fe0cb9e fetch 1 ,mem_select_device_button_statue 
+4681 c1000000 rtneq pb_button_state_up 
+4682 704b9e00 jam pb_button_state_up ,mem_select_device_button_statue 
+4683 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4684 c39a0000 rtnbit1 mouse_enable_pb_button_short_press_enter_discovery 
+4685 6fe0cb9b fetch 1 ,mem_bt_discovery_count 
+4686 1fe67c14 sub pdata ,20 ,null 
+4687 244146b5 ncall mouse_ready_reconnection_by_button ,positive 
+4688 6fe0c78f fetch 1 ,mem_ui_button_timeout 
+4689 67e0cb9b store 1 ,mem_bt_discovery_count 
+468a 20600000 rtn 
+
+mouse_select_device_button_down:
+468b 20404697 call mouse_select_device_ghost_check 
+468c 20740000 rtn user 
+468d 6fe0cb9e fetch 1 ,mem_select_device_button_statue 
+468e c1008000 rtneq pb_button_state_down 
+468f 704b9e01 jam pb_button_state_down ,mem_select_device_button_statue 
+4690 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4691 c29a44d4 bbit1 mouse_enable_pb_button_short_press_enter_discovery ,mouse_long_button_bt_discovery 
+4692 6fe0cb77 fetch 1 ,mem_mouse_direct_timer 
+4693 207a0000 rtn blank 
+4694 6fe0c902 fetch 1 ,mem_mouse_direct_timeout 
+4695 67e0cb77 store 1 ,mem_mouse_direct_timer 
+4696 20600000 rtn 
+
+mouse_select_device_ghost_check:
+4697 78547c00 disable user 
+4698 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4699 c3968000 rtnbit1 mouse_enable_pb_button_connect_gnd 
+469a 6fe0cb8e fetch 1 ,mem_mouse_lkey_press_status 
+469b 207a0000 rtn blank 
+469c 6fe0cb8f fetch 1 ,mem_mouse_rkey_press_status 
+469d 207a0000 rtn blank 
+469e 78347c00 enable user 
+469f 20600000 rtn 
+
+mouse_check_select_device_by_switch:
+46a0 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46a1 c29546a4 bbit1 mouse_enable_select_device_by_switch_gpio ,mouse_check_select_device_by_switch_gpio 
+46a2 c295be9b bbit1 mouse_enable_select_device_by_switch_adc ,mouse_adc_read 
+46a3 20600000 rtn 
+
+mouse_check_select_device_by_switch_gpio:
+46a4 6848c91e fetcht 1 ,mem_device_switch_gpio 
+46a5 20403f56 call mouse_gpio_config_input_pu 
+46a6 6848c91e fetcht 1 ,mem_device_switch_gpio 
+46a7 20406059 call gpio_get_bit 
+46a8 2020c6ad branch mouse_check_select_24gdevice ,true 
+
+mouse_select_btdevice:
+46a9 6fe0c938 fetch 1 ,mem_device_flag 
+46aa c1008000 rtneq mode_bt_device1 
+46ab 70493801 jam mode_bt_device1 ,mem_device_flag 
+46ac 20204316 branch mouse_stop_bluetooth_mode 
+
+mouse_check_select_24gdevice:
+46ad 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46ae c315c6b1 bbit0 mouse_enable_select_device_by_switch_adc ,mouse_check_select_24g_device 
+46af 6fe348ef fetch 6 ,mem_mouse_vdd_switch_gnd_full_vol 
+46b0 67e348e3 store 6 ,mem_mouse_vdd_calculate_set 
+
+mouse_check_select_24g_device:
+46b1 6fe0c938 fetch 1 ,mem_device_flag 
+46b2 c1000000 rtneq mode_24g_device 
+46b3 70493800 jam mode_24g_device ,mem_device_flag 
+46b4 202047f2 branch mouse_24g_stop 
+
+mouse_ready_reconnection_by_button:
+46b5 44efc01b bpatch patch1b_7 ,mem_patch1b 
+46b6 6fe0cbb4 fetch 1 ,mem_device_number 
+46b7 c1008000 rtneq 1 
+46b8 204046c2 call mouse_select_device_number 
+46b9 6048c938 storet 1 ,mem_device_flag 
+
+mouse_store_device_number_before_reset:
+46ba 7041ca00 jam 0 ,mem_link_key_exists 
+46bb 204046da call mouse_select_device_enable 
+46bc 20404316 call mouse_stop_bluetooth_mode 
+46bd 204046dc call mouse_select_device_disable 
+46be 704ac501 jam 1 ,mem_mouse_need_soft_reset 
+46bf 202045ee branch mouse_store_device_info_delay 
+
+mouse_soft_reset:
+46c0 204046da call mouse_select_device_enable 
+46c1 20205d8c branch soft_reset_chip 
+
+mouse_select_device_number:
+46c2 6848c938 fetcht 1 ,mem_device_flag 
+46c3 18408401 increase 1 ,temp 
+46c4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46c5 c288c6c9 bbit1 mouse_enable_24g ,mouse_select_device_number_24g 
+46c6 18467c02 sub temp ,2 ,null 
+46c7 244146d0 ncall mouse_select_device_count_clean_bt ,positive 
+46c8 20600000 rtn 
+
+mouse_select_device_number_24g:
+46c9 6fe0cbb4 fetch 1 ,mem_device_number 
+46ca 1fe0ffff increase -1 ,pdata 
+46cb 98467c00 isub temp ,null 
+46cc 244146ce ncall mouse_select_device_count_clean_24g ,positive 
+46cd 20600000 rtn 
+
+mouse_select_device_count_clean_24g:
+46ce d8400000 arg 0 ,temp 
+46cf 20600000 rtn 
+
+mouse_select_device_count_clean_bt:
+46d0 d8400001 arg 1 ,temp 
+46d1 20600000 rtn 
+
+mouse_store_device_number2eeprom:
+46d2 d8400001 arg 1 ,temp 
+46d3 da204938 arg mem_device_flag ,rega 
+46d4 da400000 arg 0 ,regb 
+46d5 20205dce branch iicd_write_protect_eep_data 
+
+mouse_bt_button_check:
+46d6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46d7 c41a0000 rtnbit0 mouse_enable_pb_button_short_press_enter_discovery 
+46d8 2040465a call mouse_select_device_by_pb_button 
+46d9 20600000 rtn 
+
+mouse_select_device_enable:
+46da d8e00000 arg mouse_select_device_flag ,queue 
+46db 202046f0 branch mouse_enable_function_flag 
+
+mouse_select_device_disable:
+46dc d8e00000 arg mouse_select_device_flag ,queue 
+46dd 202046f4 branch mouse_disable_function_flag 
+
+mouse_bt_cannel_reconn_enable:
+46de d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+46df 202046f0 branch mouse_enable_function_flag 
+
+mouse_bt_cannel_reconn_disable:
+46e0 d8e00003 arg mouse_bt_cannel_reconn_flag ,queue 
+46e1 202046f4 branch mouse_disable_function_flag 
+
+mouse_bt_discovery_button_down_enable:
+46e2 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+46e3 202046f0 branch mouse_enable_function_flag 
+
+mouse_bt_discovery_button_down_disable:
+46e4 d8e00005 arg mouse_bt_discovery_button_down_flag ,queue 
+46e5 202046f4 branch mouse_disable_function_flag 
+
+mouse_adc_read_enable:
+46e6 d8e00014 arg mouse_enable_adc ,queue 
+46e7 202046f0 branch mouse_enable_function_flag 
+
+mouse_24g_set_250hz:
+46e8 d8e00018 arg mouse_enable_24g_250hz ,queue 
+46e9 202046f0 branch mouse_enable_function_flag 
+
+mouse_24g_search_dongle_enable:
+46ea d8e00016 arg mouse_enable_24g_search_dongle ,queue 
+46eb 202046f0 branch mouse_enable_function_flag 
+
+mouse_16m_enable:
+46ec d8e0000c arg mouse_enable_16m ,queue 
+46ed 202046f0 branch mouse_enable_function_flag 
+
+mouse_dpi_4level_enable:
+46ee d8e0001c arg mouse_enable_dpi_level_4 ,queue 
+46ef 202046f0 branch mouse_enable_function_flag 
+
+mouse_enable_function_flag:
+46f0 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46f1 f9207e00 qset1 pdata 
+46f2 67e44bab store mouse_flag_len ,mem_mouse_flag 
+46f3 20600000 rtn 
+
+mouse_disable_function_flag:
+46f4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+46f5 f93ffe00 qset0 pdata 
+46f6 67e44bab store mouse_flag_len ,mem_mouse_flag 
+46f7 20600000 rtn 
+
+mouse_customer_key_enable:
+46f8 d8e00015 arg mouse_enable_keyboard ,queue 
+46f9 204046f0 call mouse_enable_function_flag 
+46fa 58000000 setarg 0 
+46fb 67e44bcc store 8 ,mem_customer_key_press 
+46fc 67e44bd5 store 8 ,mem_customer_key_release 
+46fd 6fe0c90a fetch 1 ,mem_mouse_enable_flag 
+46fe 1fe17ec0 and pdata ,0xc0 ,pdata 
+46ff c0204705 beq 0x40 ,mouse_customer_key_ctrl_alt_a 
+4700 c0404707 beq 0x80 ,mouse_customer_ac_home 
+4701 c060470c beq 0xc0 ,mouse_customer_key_play 
+4702 58070008 setarg 0x070008 
+
+mouse_customer_standrad_key_set:
+4703 67e44bcd store 8 ,mem_customer_key_press + 1 
+4704 20600000 rtn 
+
+mouse_customer_key_ctrl_alt_a:
+4705 58040005 setarg 0x040005 
+4706 20204703 branch mouse_customer_standrad_key_set 
+
+mouse_customer_ac_home:
+4707 58022303 setarg 0x022303 
+
+mouse_customer_media_key_set:
+4708 67e44bcc store 8 ,mem_customer_key_press 
+4709 58000003 setarg 0x03 
+470a 67e44bd5 store 8 ,mem_customer_key_release 
+470b 20600000 rtn 
+
+mouse_customer_key_play:
+470c 5800cd03 setarg 0x00cd03 
+470d 20204708 branch mouse_customer_media_key_set 
+
+mouse_polling_device:
+470e 44f0401c bpatch patch1c_0 ,mem_patch1c 
+470f 6fe0cab0 fetch 1 ,mem_reconn_times 
+4710 1fe0ffff increase -1 ,pdata 
+4711 67e0cab0 store 1 ,mem_reconn_times 
+4712 6848c938 fetcht 1 ,mem_device_flag 
+4713 18467c01 sub temp ,1 ,null 
+4714 2442c6c2 ncall mouse_select_device_number ,zero 
+4715 6048c938 storet 1 ,mem_device_flag 
+4716 7041ca00 jam 0 ,mem_link_key_exists 
+4717 204046d2 call mouse_store_device_number2eeprom 
+4718 204045a2 call mouse_before_store_reconn_info 
+4719 20203d59 branch mouse_start_reconnect_device 
+
+mouse_drawing_optima:
+471a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+471b c41c0000 rtnbit0 mouse_enable_smoother 
+471c 6fe248d1 fetch 4 ,mem_mouse_x 
+471d 207a0000 rtn blank 
+471e 204047bd call mouse_data_abs_check 
+471f 58000003 setarg 0x03 
+4720 204047b3 call mouse_pdata_greater_than_check 
+4721 205a47af call mouse_disable_asm ,blank 
+4722 245a47b1 ncall mouse_enable_asm ,blank 
+4723 58000002 setarg 0x02 
+4724 204047b8 call mouse_data_less_than_check 
+4725 205a47af call mouse_disable_asm ,blank 
+4726 6fe0c9c9 fetch 1 ,mem_mouse_asm_flag 
+4727 c000c72d beq 1 ,mouse_drawing_optima_modify 
+
+mouse_drawing_optima_init:
+4728 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4729 c41c0000 rtnbit0 mouse_enable_smoother 
+472a df200005 arg 5 ,loopcnt 
+472b d8a049c9 arg mem_mouse_asm_flag ,contw 
+472c 20207d26 branch clear_mem 
+
+mouse_drawing_optima_modify:
+472d 20404741 call mouse_drawing_optima_xy_offset_modify 
+472e 6fe149ca fetch 2 ,mem_mouse_x_pre 
+472f 67e109f8 store 2 ,mem_data_pre 
+4730 6fe148d1 fetch 2 ,mem_mouse_x 
+4731 67e109fa store 2 ,mem_data_current 
+4732 20404779 call mouse_drawing_optima_data_x 
+4733 6fe109f8 fetch 2 ,mem_data_pre 
+4734 67e149ca store 2 ,mem_mouse_x_pre 
+4735 6fe109fa fetch 2 ,mem_data_current 
+4736 67e148d1 store 2 ,mem_mouse_x 
+4737 6fe149cc fetch 2 ,mem_mouse_y_pre 
+4738 67e109f8 store 2 ,mem_data_pre 
+4739 6fe148d3 fetch 2 ,mem_mouse_y 
+473a 67e109fa store 2 ,mem_data_current 
+473b 20404781 call mouse_drawing_optima_data_y 
+473c 6fe109f8 fetch 2 ,mem_data_pre 
+473d 67e149cc store 2 ,mem_mouse_y_pre 
+473e 6fe109fa fetch 2 ,mem_data_current 
+473f 67e148d3 store 2 ,mem_mouse_y 
+4740 20600000 rtn 
+
+mouse_drawing_optima_xy_offset_modify:
+4741 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4742 c41c8000 rtnbit0 mouse_enable_xy_offset 
+4743 6fe149ca fetch 2 ,mem_mouse_x_pre 
+4744 67e109ff store 2 ,mem_data_value 
+4745 20404754 call mouse_pre_xy_data_judge 
+4746 67e149ca store 2 ,mem_mouse_x_pre 
+4747 6fe148d1 fetch 2 ,mem_mouse_x 
+4748 67e109ff store 2 ,mem_data_value 
+4749 20404762 call mouse_current_xy_data_judge 
+474a 67e148d1 store 2 ,mem_mouse_x 
+474b 6fe149cc fetch 2 ,mem_mouse_y_pre 
+474c 67e109ff store 2 ,mem_data_value 
+474d 20404754 call mouse_pre_xy_data_judge 
+474e 67e149cc store 2 ,mem_mouse_y_pre 
+474f 6fe148d3 fetch 2 ,mem_mouse_y 
+4750 67e109ff store 2 ,mem_data_value 
+4751 20404762 call mouse_current_xy_data_judge 
+4752 67e148d3 store 2 ,mem_mouse_y 
+4753 20600000 rtn 
+
+mouse_pre_xy_data_judge:
+4754 6fe08a00 fetch 1 ,mem_data_value + 1 
+4755 203a4757 branch mouse_pre_xy_pdata_offset ,blank 
+4756 2020475c branch mouse_pre_xy_ndata_offset 
+
+mouse_pre_xy_pdata_offset:
+4757 6fe089ff fetch 1 ,mem_data_value 
+4758 2040476f call mouse_pre_xy_get_0_4_times 
+4759 67e089ff store 1 ,mem_data_value 
+
+mouse_xy_data_offset_new:
+475a 6fe109ff fetch 2 ,mem_data_value 
+475b 20600000 rtn 
+
+mouse_pre_xy_ndata_offset:
+475c 6fe089ff fetch 1 ,mem_data_value 
+475d 204047ab call mouse_pdata_invert 
+475e 2040476f call mouse_pre_xy_get_0_4_times 
+475f 205a7e5e call disable_blank ,blank 
+4760 204047a7 call mouse_pdata_get_new_value 
+4761 2020475a branch mouse_xy_data_offset_new 
+
+mouse_current_xy_data_judge:
+4762 6fe08a00 fetch 1 ,mem_data_value + 1 
+4763 203a4765 branch mouse_current_xy_pdata_offset ,blank 
+4764 20204769 branch mouse_current_xy_ndata_offset 
+
+mouse_current_xy_pdata_offset:
+4765 6fe089ff fetch 1 ,mem_data_value 
+4766 20404774 call mouse_current_xy_get_0_6_times 
+4767 67e089ff store 1 ,mem_data_value 
+4768 2020475a branch mouse_xy_data_offset_new 
+
+mouse_current_xy_ndata_offset:
+4769 6fe089ff fetch 1 ,mem_data_value 
+476a 204047ab call mouse_pdata_invert 
+476b 20404774 call mouse_current_xy_get_0_6_times 
+476c 205a7e5e call disable_blank ,blank 
+476d 204047a7 call mouse_pdata_get_new_value 
+476e 2020475a branch mouse_xy_data_offset_new 
+
+mouse_pre_xy_get_0_4_times:
+476f 1feffe04 mul32 pdata ,4 ,pdata 
+4770 1fe6fc05 div pdata ,5 
+4771 20407def call wait_div_end 
+4772 1807fe00 quotient pdata 
+4773 20600000 rtn 
+
+mouse_current_xy_get_0_6_times:
+4774 1feffe0c mul32 pdata ,12 ,pdata 
+4775 1fe6fc0a div pdata ,10 
+4776 20407def call wait_div_end 
+4777 1807fe00 quotient pdata 
+4778 20600000 rtn 
+
+mouse_drawing_optima_data_x:
+4779 6fe109f8 fetch 2 ,mem_data_pre 
+477a 684909fa fetcht 2 ,mem_data_current 
+477b 9840fe00 iadd temp ,pdata 
+477c 6848c9ce fetcht 1 ,mem_mouse_data_xtemp 
+477d 9840fe00 iadd temp ,pdata 
+477e 1fe10401 and pdata ,0x01 ,temp 
+477f 6048c9ce storet 1 ,mem_mouse_data_xtemp 
+4780 20204789 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data_y:
+4781 6fe109f8 fetch 2 ,mem_data_pre 
+4782 684909fa fetcht 2 ,mem_data_current 
+4783 9840fe00 iadd temp ,pdata 
+4784 6848c9cf fetcht 1 ,mem_mouse_data_ytemp 
+4785 9840fe00 iadd temp ,pdata 
+4786 1fe10401 and pdata ,0x01 ,temp 
+4787 6048c9cf storet 1 ,mem_mouse_data_ytemp 
+4788 20204789 branch mouse_drawing_optima_data 
+
+mouse_drawing_optima_data:
+4789 67e189fc store 3 ,mem_data_sum 
+478a 2feffe10 isolate1 16 ,pdata 
+478b 2020c793 branch mouse_data_sum_overflow ,true 
+478c 6fe089fd fetch 1 ,mem_data_sum + 1 
+478d c07fc79a beq 0xff ,mouse_data_sum_n 
+478e 6fe089fc fetch 1 ,mem_data_sum 
+
+mouse_data_store_pre:
+478f 1fe37e00 rshift pdata ,pdata 
+4790 67e109f8 store 2 ,mem_data_pre 
+4791 67e109fa store 2 ,mem_data_current 
+4792 20600000 rtn 
+
+mouse_data_sum_overflow:
+4793 6fe089fd fetch 1 ,mem_data_sum + 1 
+4794 c0004797 beq 0 ,mouse_data_sum_overflow_p 
+4795 6fe189fc fetch 3 ,mem_data_sum 
+4796 2020478f branch mouse_data_store_pre 
+
+mouse_data_sum_overflow_p:
+4797 7009fe00 jam 0 ,mem_data_sum + 2 
+4798 6fe089fc fetch 1 ,mem_data_sum 
+4799 2020478f branch mouse_data_store_pre 
+
+mouse_data_sum_n:
+479a 6fe089fc fetch 1 ,mem_data_sum 
+479b 204047a5 call mouse_pdata_get_half 
+479c 67e089f8 store 1 ,mem_data_pre 
+479d 67e089fa store 1 ,mem_data_current 
+479e 203a47a3 branch mouse_data_zero ,blank 
+479f 580000ff setarg 0xff 
+
+mouse_data_set_direction:
+47a0 67e089f9 store 1 ,mem_data_pre + 1 
+47a1 67e089fb store 1 ,mem_data_current + 1 
+47a2 20600000 rtn 
+
+mouse_data_zero:
+47a3 58000000 setarg 0 
+47a4 202047a0 branch mouse_data_set_direction 
+
+mouse_pdata_get_half:
+47a5 204047ab call mouse_pdata_invert 
+47a6 1fe37e00 rshift pdata ,pdata 
+
+mouse_pdata_get_new_value:
+47a7 204047ac call mouse_rega_in_out 
+47a8 1fe67e00 sub pdata ,0 ,pdata 
+47a9 67e089ff store 1 ,mem_data_value 
+47aa 20600000 rtn 
+
+mouse_pdata_invert:
+47ab 1fe67e00 sub pdata ,0 ,pdata 
+
+mouse_rega_in_out:
+47ac 67e08970 store 1 ,mem_rega 
+47ad 6fe08970 fetch 1 ,mem_rega 
+47ae 20600000 rtn 
+
+mouse_disable_asm:
+47af 7049c900 jam 0 ,mem_mouse_asm_flag 
+47b0 20600000 rtn 
+
+mouse_enable_asm:
+47b1 7049c901 jam 1 ,mem_mouse_asm_flag 
+47b2 20600000 rtn 
+
+mouse_pdata_greater_than_check:
+47b3 9a267c00 isub rega ,null 
+47b4 24217e5e nbranch disable_blank ,positive 
+47b5 9a467c00 isub regb ,null 
+47b6 24217e5e nbranch disable_blank ,positive 
+47b7 20207e60 branch enable_blank 
+
+mouse_data_less_than_check:
+47b8 9a267c00 isub rega ,null 
+47b9 24610000 nrtn positive 
+47ba 9a467c00 isub regb ,null 
+47bb 24610000 nrtn positive 
+47bc 20207e60 branch enable_blank 
+
+mouse_data_abs_check:
+47bd 6fe148d1 fetch 2 ,mem_mouse_x 
+47be 204047c4 call mouse_data_abs 
+47bf 1fe22200 copy pdata ,rega 
+47c0 6fe148d3 fetch 2 ,mem_mouse_y 
+47c1 204047c4 call mouse_data_abs 
+47c2 1fe22400 copy pdata ,regb 
+47c3 20600000 rtn 
+
+mouse_data_abs:
+47c4 67e109fa store 2 ,mem_data_current 
+47c5 6fe089fb fetch 1 ,mem_data_current + 1 
+47c6 c07fc7ca beq 0xff ,mouse_data_reversal 
+47c7 6fe089fa fetch 1 ,mem_data_current 
+
+mouse_data_abs_store:
+47c8 1fe17eff and_into 0xff ,pdata 
+47c9 20600000 rtn 
+
+mouse_data_reversal:
+47ca 6fe109fa fetch 2 ,mem_data_current 
+47cb 1fe67e00 sub pdata ,0 ,pdata 
+47cc 202047c8 branch mouse_data_abs_store 
+
+mouse_24g_long_sleep_param_update_timer:
+47cd da6048c4 arg mem_24g_long_sleep_param_update_timer ,regc 
+47ce da4047d0 arg mouse_24g_long_sleep_normal_param ,regb 
+47cf 2020318a branch timer_single_step 
+
+mouse_24g_long_sleep_normal_param:
+47d0 6fe248b8 fetch 4 ,mem_24g_long_sleep_set1 
+47d1 67e2485c store 4 ,mem_24g_enter_hibernate 
+47d2 704aae01 jam 1 ,mem_mouse_long_mult_flag 
+47d3 20600000 rtn 
+
+mouse_24g_long_sleep_set:
+47d4 c00047db beq 0x00 ,mouse_24g_long_sleep_set_30ms 
+47d5 c000c7dd beq 0x01 ,mouse_24g_long_sleep_set_50ms 
+47d6 c00147d8 beq 0x02 ,mouse_24g_long_sleep_set_80ms 
+47d7 c001c7df beq 0x03 ,mouse_24g_long_sleep_set_100ms 
+
+mouse_24g_long_sleep_set_80ms:
+47d8 580ea600 setarg 0x0ea600 
+
+mouse_24g_long_sleep_set_end:
+47d9 67e248b8 store 4 ,mem_24g_long_sleep_set1 
+47da 20600000 rtn 
+
+mouse_24g_long_sleep_set_30ms:
+47db 5805e740 setarg 0x05e740 
+47dc 202047d9 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_50ms:
+47dd 580927c0 setarg 0x0927c0 
+47de 202047d9 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_long_sleep_set_100ms:
+47df 58124f80 setarg 0x124f80 
+47e0 202047d9 branch mouse_24g_long_sleep_set_end 
+
+mouse_24g_hibernate_set:
+47e1 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
+47e2 20402652 call g24_transmit_next_packet 
+47e3 5fffffff setarg -1 
+47e4 67e2485c store 4 ,mem_24g_enter_hibernate 
+47e5 58000000 setarg 0 
+47e6 67e3c8d0 store 7 ,mem_mouse_key 
+47e7 704be101 jam 1 ,mem_sensor_shutdown_flag 
+47e8 2040423c call mouse_sensor_powerdown 
+47e9 20403e33 call mouse_setgpio_hibernate 
+47ea 202026b5 branch g24_long_sleep 
+
+mouse_wakeup_24g:
+47eb 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+47ec 245a41aa ncall mouse_init_sensor_wakeup ,blank 
+47ed 704be100 jam 0 ,mem_sensor_shutdown_flag 
+47ee 20202651 branch g24_transmit_no_ack 
+
+mouse_24g_transmit_start:
+47ef 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+47f0 243a262c nbranch g24_short_sleep ,blank 
+47f1 20202628 branch g24_transmit_start_next 
+
+mouse_24g_stop:
+47f2 793f8026 set0 mark_24g ,mark 
+47f3 7048a100 jam state_24g_stop ,mem_24g_conn_sm 
+47f4 d8e00001 arg mouse_24g_pairing_flag ,queue 
+47f5 202046f4 branch mouse_disable_function_flag 
+
+mouse_24g_start_mode:
+47f6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+47f7 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+47f8 20403d65 call mouse_wakeup_from_power_check 
+47f9 20344806 branch mouse_24g_reconn_dongle_start ,user 
+47fa 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+47fb c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+47fc c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+47fd 20404110 call mouse_key_check_once 
+47fe 1fe17e07 and pdata ,0x07 ,pdata 
+47ff 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+4800 98467c00 isub temp ,null 
+4801 2022c827 branch mouse_24g_start_pair_mode ,zero 
+4802 2020480c branch mouse_24g_reconn_general_dongle 
+
+mouse_24g_mode_setup_error:
+4803 6fe0cab0 fetch 1 ,mem_reconn_times 
+4804 243a470e nbranch mouse_polling_device ,blank 
+4805 20600000 rtn 
+
+mouse_24g_reconn_dongle_start:
+4806 6fe14885 fetch 2 ,mem_24g_reconn_timeout_init 
+4807 67e14887 store 2 ,mem_24g_reconn_timeout 
+4808 70488b03 jam receiver_and_3_0_addr ,mem_24g_reconn_type 
+4809 20202559 branch g24_reconn_start 
+
+mouse_24g_first_start_auto_pair_mode:
+480a 20403d65 call mouse_wakeup_from_power_check 
+480b 20344816 branch mouse_24g_first_start_reconn ,user 
+
+mouse_24g_reconn_general_dongle:
+480c 70493800 jam mode_24g_device ,mem_device_flag 
+480d 6fe14bba fetch 2 ,mem_mouse_24g_power_on_fast_conn_timer 
+480e 67e14887 store 2 ,mem_24g_reconn_timeout 
+480f 70488b02 jam fast_conn_and_3_0_addr ,mem_24g_reconn_type 
+4810 20202559 branch g24_reconn_start 
+
+mouse_24g_start_auto_pair:
+4811 204048cc call mouse_discover_setting_led_gpio 
+4812 6fe14881 fetch 2 ,mem_24g_pair_timeout_init 
+4813 67e14887 store 2 ,mem_24g_reconn_timeout 
+4814 70488b04 jam pair_and_3_0_addr ,mem_24g_reconn_type 
+4815 20202559 branch g24_reconn_start 
+
+mouse_24g_first_start_reconn:
+4816 6fe0c938 fetch 1 ,mem_device_flag 
+4817 c0004806 beq mode_24g_device ,mouse_24g_reconn_dongle_start 
+4818 20404314 call mouse_bluetooth_fast_conn_disable 
+4819 2020481a branch mouse_24g_first_bluetooth_reconnect 
+
+mouse_24g_first_bluetooth_reconnect:
+481a 204047f2 call mouse_24g_stop 
+481b 2040490e call mouse_device_led_all_off 
+
+mouse_check_bt_reconn_target:
+481c 70493801 jam mode_bt_device1 ,mem_device_flag 
+481d 204045bd call mouse_select_reconn_device 
+481e 20203d59 branch mouse_start_reconnect_device 
+
+mouse_24g_first_bb_event_reconn_timeout:
+481f 20403d65 call mouse_wakeup_from_power_check 
+4820 20343e20 branch mouse_app_enter_hibernate ,user 
+4821 20204553 branch mouse_start_discovery 
+
+mouse_24g_first_store_reconn_info:
+4822 20403d65 call mouse_wakeup_from_power_check 
+4823 20740000 rtn user 
+4824 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4825 c297c5ee bbit1 mouse_enable_24g_first_auto_pairing ,mouse_store_device_info_delay 
+4826 20600000 rtn 
+
+mouse_24g_start_pair_mode:
+4827 d8e00001 arg mouse_24g_pairing_flag ,queue 
+4828 204046f0 call mouse_enable_function_flag 
+4829 58000000 setarg 0 
+482a 67e14887 store 2 ,mem_24g_reconn_timeout 
+482b 20404576 call mouse_stop_discovery 
+482c 2040498e call mouse_low_voltage_led_blink_disable 
+482d 204048cc call mouse_discover_setting_led_gpio 
+482e 70483601 jam type_ms ,mem_24g_data_type 
+482f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4830 c30aa32e bbit0 mouse_enable_keyboard ,g24_pair_start 
+4831 70483602 jam type_kb ,mem_24g_data_type 
+4832 2020232e branch g24_pair_start 
+
+mouse_24g_attempt_fail:
+4833 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
+4834 243a47e1 nbranch mouse_24g_hibernate_set ,blank 
+4835 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+4836 c0014840 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
+4837 c0024844 beq pair_and_3_0_addr ,mouse_24g_auto_pair_attempt_fail 
+4838 c001c849 beq receiver_and_3_0_addr ,mouse_reconn_dongle_attempt_fail 
+
+mouse_24g_attempt_fail_enter_hibernate:
+4839 20404912 call mouse_device_led_off 
+483a 204047f2 call mouse_24g_stop 
+483b 6fe0cab0 fetch 1 ,mem_reconn_times 
+483c 243a470e nbranch mouse_polling_device ,blank 
+483d 6fe0c938 fetch 1 ,mem_device_flag 
+483e c0003e20 beq mode_24g_device ,mouse_app_enter_hibernate 
+483f 20600000 rtn 
+
+mouse_24g_fast_conn_attempt_fail:
+4840 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4841 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+4842 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+4843 20204806 branch mouse_24g_reconn_dongle_start 
+
+mouse_24g_auto_pair_attempt_fail:
+4844 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4845 c317c839 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+4846 6fe0cbb4 fetch 1 ,mem_device_number 
+4847 c000c839 beq 1 ,mouse_24g_attempt_fail_enter_hibernate 
+4848 2020481a branch mouse_24g_first_bluetooth_reconnect 
+
+mouse_reconn_dongle_attempt_fail:
+4849 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+484a c317c839 bbit0 mouse_enable_24g_first_auto_pairing ,mouse_24g_attempt_fail_enter_hibernate 
+484b c289c839 bbit1 mouse_enable_eeprom ,mouse_24g_attempt_fail_enter_hibernate 
+484c c2894839 bbit1 mouse_enable_flash ,mouse_24g_attempt_fail_enter_hibernate 
+484d 20204812 branch mouse_24g_start_auto_pair + 1 
+
+mouse_24g_attempt_success:
+484e 204042ca call mouse_init_sensor_reset 
+484f 704aae00 jam 0 ,mem_mouse_long_mult_flag 
+4850 7048a100 jam 0 ,mem_24g_conn_sm 
+4851 70488b00 jam 0 ,mem_24g_reconn_type 
+4852 6fe24891 fetch 4 ,mem_24g_receiver_addr 
+4853 6fe2488d fetch 4 ,mem_24g_fast_conn_addr 
+4854 98467c00 isub temp ,null 
+4855 20628000 rtn zero 
+4856 20204822 branch mouse_24g_first_store_reconn_info 
+
+mouse_24g_pairing_complete:
+4857 d8e00001 arg mouse_24g_pairing_flag ,queue 
+4858 204046f4 call mouse_disable_function_flag 
+4859 204048c6 call mouse_device_poweron_timer_init 
+485a 58000000 setarg 0 
+485b 67e14883 store 2 ,mem_24g_pair_timeout 
+485c 67e14887 store 2 ,mem_24g_reconn_timeout 
+485d 67e0c8a1 store 1 ,mem_24g_conn_sm 
+485e 67e0c9c8 store 1 ,mem_mouse_move_flag 
+485f 67e0c88b store 1 ,mem_24g_reconn_type 
+4860 204042ca call mouse_init_sensor_reset 
+4861 204042db call mouse_read_sensor_common 
+4862 6fe2483c fetch 4 ,mem_24g_addr 
+4863 67e24891 store 4 ,mem_24g_receiver_addr 
+4864 67e24993 store 4 ,mem_mouse_24g_addr 
+4865 202045ee branch mouse_store_device_info_delay 
+
+mouse_24g_package_data:
+4866 c6930000 rtnmark0 mark_24g 
+4867 20403f70 call mouse_motion 
+4868 24740000 nrtn user 
+4869 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+486a c30ac86d bbit0 mouse_enable_keyboard ,mouse_24g_mouse_package_data 
+486b 6fe0cb8b fetch 1 ,mem_customer_key 
+486c 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
+
+mouse_24g_mouse_package_data:
+486d 204042cb call mouse_data_xy_release 
+486e 6fe0c836 fetch 1 ,mem_24g_data_type 
+486f c280c87c bbit1 1 ,mouse_24g_mouse_package_data_now 
+4870 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
+4871 6fe0c8d0 fetch 1 ,mem_mouse_key 
+4872 9841fe00 ior temp ,pdata 
+4873 67e0c8d0 store 1 ,mem_mouse_key 
+4874 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
+4875 6fe0c8d5 fetch 1 ,mem_mouse_z 
+4876 9840fe00 iadd temp ,pdata 
+4877 67e0c8d5 store 1 ,mem_mouse_z 
+4878 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
+4879 6fe0c8d6 fetch 1 ,mem_mouse_tz 
+487a 9840fe00 iadd temp ,pdata 
+487b 67e0c8d6 store 1 ,mem_mouse_tz 
+
+mouse_24g_mouse_package_data_now:
+487c 70483601 jam type_ms ,mem_24g_data_type 
+487d da200007 arg 7 ,rega 
+487e da4048d0 arg mem_mouse_key ,regb 
+487f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4880 c28c26e1 bbit1 mouse_enable_24g_250hz ,g24_transmit_by_interrupt_enable 
+4881 6fe148d5 fetch 2 ,mem_mouse_z 
+4882 207a0000 rtn blank 
+4883 202026e1 branch g24_transmit_by_interrupt_enable 
+
+mouse_24g_keyboard_package_data:
+4884 70483602 jam type_kb ,mem_24g_data_type 
+4885 da200009 arg 9 ,rega 
+4886 6fe0cb8c fetch 1 ,mem_customer_data_trigger 
+4887 243a488a nbranch mouse_customer_key_press ,blank 
+4888 da404bd5 arg mem_customer_key_release ,regb 
+4889 20600000 rtn 
+
+mouse_customer_key_press:
+488a da404bcc arg mem_customer_key_press ,regb 
+488b 20600000 rtn 
+
+mouse_24g_search_dongle_init:
+488c 58000000 setarg 0 
+488d 67e1cba4 store 3 ,mem_mouse_search_dongle_action 
+488e 20600000 rtn 
+
+mouse_24g_search_dongle:
+488f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4890 c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
+4891 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+4892 207a0000 rtn blank 
+4893 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+4894 207a0000 rtn blank 
+4895 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
+4896 1fe0fe01 increase 1 ,pdata 
+4897 1fe17e03 and_into 3 ,pdata 
+4898 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
+4899 247a0000 nrtn blank 
+489a 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
+
+mouse_24g_search_dongle_loop:
+489b 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
+489c 1fe0fe01 increase 1 ,pdata 
+489d 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
+489e 1fe67c08 sub pdata ,g24_ch_number ,null 
+489f 242148a5 nbranch mouse_24g_search_dongle_loop_end ,positive 
+48a0 2040259a call g24_reconn_data_prep 
+48a1 2040265b call g24_transmit_receive_ack 
+48a2 242c48ab nbranch mouse_24g_search_dongle_loop_retry ,sync 
+48a3 2437c8ab nbranch mouse_24g_search_dongle_loop_retry ,user3 
+48a4 204048b5 call mouse_24g_search_dongle_success 
+
+mouse_24g_search_dongle_loop_end:
+48a5 20402597 call g24_txbuf_clear 
+48a6 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
+48a7 1fe0fe01 increase 1 ,pdata 
+48a8 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
+48a9 c00848ad beq g24_ch_poll_count ,mouse_24g_search_dongle_check 
+48aa 20600000 rtn 
+
+mouse_24g_search_dongle_loop_retry:
+48ab 204022cb call g24_ch 
+48ac 2020489b branch mouse_24g_search_dongle_loop 
+
+mouse_24g_search_dongle_check:
+48ad 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+48ae 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+48af c3800000 rtnbit1 g24_disconn_state 
+48b0 79207e00 set1 g24_disconn_state ,pdata 
+48b1 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+48b2 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+48b3 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+48b4 2020423c branch mouse_sensor_powerdown 
+
+mouse_24g_search_dongle_success:
+48b5 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+48b6 203a488c branch mouse_24g_search_dongle_init ,blank 
+48b7 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+48b8 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+48b9 c4000000 rtnbit0 g24_disconn_state 
+48ba 793ffe00 set0 g24_disconn_state ,pdata 
+48bb 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+48bc 20404544 call mouse_no_data_timer_init 
+48bd 202041aa branch mouse_init_sensor_wakeup 
+
+mouse_device_poweron_timer:
+48be 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+48bf c4100000 rtnbit0 mouse_enable_power_on_led 
+48c0 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+48c1 207a0000 rtn blank 
+48c2 1fe0ffff increase -1 ,pdata 
+48c3 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
+48c4 203a4912 branch mouse_device_led_off ,blank 
+48c5 20204920 branch mouse_device_led_on 
+
+mouse_device_poweron_timer_init:
+48c6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+48c7 c4100000 rtnbit0 mouse_enable_power_on_led 
+48c8 2040498e call mouse_low_voltage_led_blink_disable 
+48c9 6fe0cbc0 fetch 1 ,mem_mouse_device_poweron_timer_count_init 
+48ca 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
+48cb 20600000 rtn 
+
+mouse_discover_setting_led_gpio:
+48cc 704ba700 jam 0 ,mem_mouse_device_poweron_timer_count 
+48cd 6fe14bc4 fetch 2 ,mem_mouse_disconvey_led_blink_time 
+48ce 67e14930 store 2 ,mem_mouse_on_time 
+48cf 67e14932 store 2 ,mem_mouse_off_time 
+
+mouse_setting_led_gpio_comman:
+48d0 6fe0c938 fetch 1 ,mem_device_flag 
+48d1 c00048d5 beq mode_24g_device ,mouse_device_led_24g 
+48d2 c000c8d7 beq mode_bt_device1 ,mouse_device_led_bt1 
+48d3 c00148d9 beq mode_bt_device2 ,mouse_device_led_bt2 
+48d4 20600000 rtn 
+
+mouse_device_led_24g:
+48d5 6fe0c915 fetch 1 ,mem_config_device_24g_led_gpio 
+48d6 202048da branch mouse_led_blink 
+
+mouse_device_led_bt1:
+48d7 6fe0c916 fetch 1 ,mem_config_device_bt1_led_gpio 
+48d8 202048da branch mouse_led_blink 
+
+mouse_device_led_bt2:
+48d9 6fe0c922 fetch 1 ,mem_config_device_bt2_led_gpio 
+
+mouse_led_blink:
+48da 67e08964 store 1 ,mem_temp 
+48db 20404912 call mouse_device_led_off 
+48dc 6fe08964 fetch 1 ,mem_temp 
+48dd 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+48de da200000 arg 0 ,rega 
+48df 70492d01 jam ui_led_state_blink_start ,mem_mouse_led_type 
+48e0 20207806 branch ui_led_blink_start_global 
+
+mouse_dpi_led_blink_delay:
+48e1 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+48e2 c17f8000 rtneq gpio_disable 
+48e3 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+48e4 247a0000 nrtn blank 
+48e5 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+48e6 247a0000 nrtn blank 
+48e7 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+48e8 247a0000 nrtn blank 
+48e9 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+48ea 247a0000 nrtn blank 
+48eb 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+48ec 203a48f2 branch mouse_dpi_led_blink_init ,blank 
+48ed 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
+48ee 20600000 rtn 
+
+mouse_dpi_led_blink_delay_timer:
+48ef da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
+48f0 da4048f2 arg mouse_dpi_led_blink_init ,regb 
+48f1 2020318a branch timer_single_step 
+
+mouse_dpi_led_blink_init:
+48f2 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+48f3 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+48f4 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
+48f5 67e14930 store 2 ,mem_mouse_on_time 
+48f6 67e14932 store 2 ,mem_mouse_off_time 
+48f7 da200000 arg 0 ,rega 
+48f8 6848c992 fetcht 1 ,mem_mouse_dpi 
+48f9 18408401 increase 1 ,temp 
+48fa 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+48fb c30e48ff bbit0 mouse_enable_dpi_level_4 ,mouse_dpi_led_blink_init_end 
+48fc 18408401 increase 1 ,temp 
+48fd 18467c04 sub temp ,4 ,null 
+48fe 24414902 ncall mouse_dpi_led_blink_count_clean ,positive 
+
+mouse_dpi_led_blink_init_end:
+48ff 6048c92e storet 1 ,mem_mouse_blink_count 
+4900 70492d01 jam ui_led_state_blink_start ,mem_mouse_led_type 
+4901 20600000 rtn 
+
+mouse_dpi_led_blink_count_clean:
+4902 d8400001 arg 1 ,temp 
+4903 20600000 rtn 
+
+mouse_check_dpi_blink:
+4904 78547c00 disable user 
+4905 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+4906 6848c92f fetcht 1 ,mem_mouse_struct_led_gpio 
+4907 98467c00 isub temp ,null 
+4908 24628000 nrtn zero 
+4909 6fe0c92e fetch 1 ,mem_mouse_blink_count 
+490a 207a0000 rtn blank 
+490b 7048f900 jam 0 ,mem_adc_low_volatage_led_blink_enable 
+490c 78347c00 enable user 
+490d 20600000 rtn 
+
+mouse_device_led_all_off:
+490e 2040491e call mouse_dpi_led_off 
+490f 20404917 call mouse_device_24g_led_off 
+4910 2040491a call mouse_device_bt1_led_off 
+4911 2020491c branch mouse_device_bt2_led_off 
+
+mouse_device_led_off:
+4912 6fe0c938 fetch 1 ,mem_device_flag 
+4913 c0004917 beq mode_24g_device ,mouse_device_24g_led_off 
+4914 c000c91a beq mode_bt_device1 ,mouse_device_bt1_led_off 
+4915 c001491c beq mode_bt_device2 ,mouse_device_bt2_led_off 
+4916 20600000 rtn 
+
+mouse_device_24g_led_off:
+4917 704baa00 jam 0 ,mem_24g_device_led_status 
+4918 6848c915 fetcht 1 ,mem_config_device_24g_led_gpio 
+4919 2020492b branch mouse_led_off 
+
+mouse_device_bt1_led_off:
+491a 6848c916 fetcht 1 ,mem_config_device_bt1_led_gpio 
+491b 2020492b branch mouse_led_off 
+
+mouse_device_bt2_led_off:
+491c 6848c922 fetcht 1 ,mem_config_device_bt2_led_gpio 
+491d 2020492b branch mouse_led_off 
+
+mouse_dpi_led_off:
+491e 6848c923 fetcht 1 ,mem_dpi_led_gpio 
+491f 2020492b branch mouse_led_off 
+
+mouse_device_led_on:
+4920 6fe0c938 fetch 1 ,mem_device_flag 
+4921 c0004925 beq mode_24g_device ,mouse_device_24g_led_on 
+4922 c000c927 beq mode_bt_device1 ,mouse_device_bt1_led_on 
+4923 c0014929 beq mode_bt_device2 ,mouse_device_bt2_led_on 
+4924 20600000 rtn 
+
+mouse_device_24g_led_on:
+4925 6848c915 fetcht 1 ,mem_config_device_24g_led_gpio 
+4926 2020492f branch mouse_led_on 
+
+mouse_device_bt1_led_on:
+4927 6848c916 fetcht 1 ,mem_config_device_bt1_led_gpio 
+4928 2020492f branch mouse_led_on 
+
+mouse_device_bt2_led_on:
+4929 6848c922 fetcht 1 ,mem_config_device_bt2_led_gpio 
+492a 2020492f branch mouse_led_on 
+
+mouse_led_off:
+492b 44f0c01c bpatch patch1c_1 ,mem_patch1c 
+492c 6048c92f storet 1 ,mem_mouse_struct_led_gpio 
+492d da200000 arg 0 ,rega 
+492e 20207801 branch ui_led_off_global 
+
+mouse_led_on:
+492f 44f1401c bpatch patch1c_2 ,mem_patch1c 
+4930 6048c92f storet 1 ,mem_mouse_struct_led_gpio 
+4931 da200000 arg 0 ,rega 
+4932 202077fc branch ui_led_on_global 
+
+mouse_ui_led_off_static:
+4933 6fe0c915 fetch 1 ,mem_config_device_24g_led_gpio 
+4934 98467c00 isub temp ,null 
+4935 2042c952 call mouse_clear_24g_led_statue ,zero 
+4936 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4937 c3126065 bbit0 mouse_enable_4_led ,gpio_out_inactive 
+4938 20404943 call mouse_check_bt2_led_off 
+4939 20404947 call mouse_check_dpi_led_off 
+493a 2040494b call mouse_check_low_v_led_off 
+493b 6fe0cba9 fetch 1 ,mem_mouse_led_off_4_led 
+493c 203a6065 branch gpio_out_inactive ,blank 
+493d 704ba900 jam 0 ,mem_mouse_led_off_4_led 
+493e 2020607f branch gpio_set_high_impedance 
+
+mouse_ui_led_on_static:
+493f 6fe0c915 fetch 1 ,mem_config_device_24g_led_gpio 
+4940 98467c00 isub temp ,null 
+4941 2042c954 call mouse_set_24g_led_statue ,zero 
+4942 20206069 branch gpio_out_active 
+
+mouse_check_bt2_led_off:
+4943 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4944 c4130000 rtnbit0 mouse_enable_bt2_for_4_led 
+4945 6fe0c922 fetch 1 ,mem_config_device_bt2_led_gpio 
+4946 2020494e branch mouse_check_1gpio_2led_off 
+
+mouse_check_dpi_led_off:
+4947 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4948 c4128000 rtnbit0 mouse_enable_dpi_for_4_led 
+4949 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+494a 2020494e branch mouse_check_1gpio_2led_off 
+
+mouse_check_low_v_led_off:
+494b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+494c c4138000 rtnbit0 mouse_enable_low_v_for_4_led 
+494d 6fe0c921 fetch 1 ,mem_config_low_voltage_alarm_gpio 
+
+mouse_check_1gpio_2led_off:
+494e 98467c00 isub temp ,null 
+494f 24628000 nrtn zero 
+4950 704ba901 jam 1 ,mem_mouse_led_off_4_led 
+4951 20600000 rtn 
+
+mouse_clear_24g_led_statue:
+4952 704baa00 jam 0 ,mem_24g_device_led_status 
+4953 20600000 rtn 
+
+mouse_set_24g_led_statue:
+4954 704baa01 jam 1 ,mem_24g_device_led_status 
+4955 20600000 rtn 
+
+mouse_low_voltage_led_timer:
+4956 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+4957 247a0000 nrtn blank 
+4958 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+4959 247a0000 nrtn blank 
+495a 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+495b 247a0000 nrtn blank 
+495c 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+495d 247a0000 nrtn blank 
+495e 20404904 call mouse_check_dpi_blink 
+495f 20740000 rtn user 
+4960 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4961 c4108000 rtnbit0 mouse_enable_low_voltage_led 
+4962 c4020000 rtnbit0 mouse_low_voltage_flag 
+4963 c291c97c bbit1 mouse_enable_low_voltage_led_blink_n_second ,mouse_low_voltage_led_blink_new_data 
+4964 6fe0c8f8 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+4965 1fe0fe01 increase 1 ,pdata 
+4966 67e0c8f8 store 1 ,mem_adc_low_volatage_led_timer_count 
+4967 1fe67c14 sub pdata ,20 ,null 
+4968 2441496e ncall mouse_adc_low_volatage_led_timer_count_clean ,positive 
+4969 c0014970 beq 2 ,mouse_low_voltage_led_on 
+496a c0024976 beq 4 ,mouse_low_voltage_led_off 
+496b c0034970 beq 6 ,mouse_low_voltage_led_on 
+496c c0044976 beq 8 ,mouse_low_voltage_led_off 
+496d 20600000 rtn 
+
+mouse_adc_low_volatage_led_timer_count_clean:
+496e 7048f801 jam 1 ,mem_adc_low_volatage_led_timer_count 
+496f 20204976 branch mouse_low_voltage_led_off 
+
+mouse_low_voltage_led_on:
+4970 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4971 c2914920 bbit1 mouse_enable_low_voltage_use_mode_led ,mouse_device_led_on 
+4972 6fe0c921 fetch 1 ,mem_config_low_voltage_alarm_gpio 
+4973 c17f8000 rtneq gpio_disable 
+4974 6848c921 fetcht 1 ,mem_config_low_voltage_alarm_gpio 
+4975 2020492f branch mouse_led_on 
+
+mouse_low_voltage_led_off:
+4976 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4977 c2914912 bbit1 mouse_enable_low_voltage_use_mode_led ,mouse_device_led_off 
+4978 6fe0c921 fetch 1 ,mem_config_low_voltage_alarm_gpio 
+4979 c17f8000 rtneq gpio_disable 
+497a 6848c921 fetcht 1 ,mem_config_low_voltage_alarm_gpio 
+497b 2020492b branch mouse_led_off 
+
+mouse_low_voltage_led_blink_new_data:
+497c 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
+497d 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
+497e 98460400 isub temp ,temp 
+497f 6fe14bc8 fetch 2 ,mem_adc_low_volatage_led_blink_timer 
+4980 98467c00 isub temp ,null 
+4981 2421498e nbranch mouse_low_voltage_led_blink_disable ,positive 
+4982 6fe0c8f9 fetch 1 ,mem_adc_low_volatage_led_blink_enable 
+4983 247a0000 nrtn blank 
+4984 7048f901 jam 1 ,mem_adc_low_volatage_led_blink_enable 
+4985 20204986 branch mouse_low_voltage_led_blink_init 
+
+mouse_low_voltage_led_blink_init:
+4986 6fe14bc6 fetch 2 ,mem_mouse_low_v_led_blink_time 
+4987 67e14930 store 2 ,mem_mouse_on_time 
+4988 67e14932 store 2 ,mem_mouse_off_time 
+4989 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+498a c29148d0 bbit1 mouse_enable_low_voltage_use_mode_led ,mouse_setting_led_gpio_comman 
+498b 6fe0c921 fetch 1 ,mem_config_low_voltage_alarm_gpio 
+498c c17f8000 rtneq gpio_disable 
+498d 202048da branch mouse_led_blink 
+
+mouse_low_voltage_led_blink_disable:
+498e 7048f900 jam 0 ,mem_adc_low_volatage_led_blink_enable 
+498f 20204976 branch mouse_low_voltage_led_off 
+
+mouse_low_voltage_led_no_enter_lpm:
+4990 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+4991 c4108000 rtnbit0 mouse_enable_low_voltage_led 
+4992 c4020000 rtnbit0 mouse_low_voltage_flag 
+4993 c291c9a2 bbit1 mouse_enable_low_voltage_led_blink_n_second ,mouse_low_voltage_led_no_enter_lpm_blink 
+4994 6fe0c8f8 fetch 1 ,mem_adc_low_volatage_led_timer_count 
+4995 1fe67c0a sub pdata ,10 ,null 
+4996 2021499e branch mouse_lpm_mode_clear ,positive 
+
+mouse_low_voltage_led_no_enter_lpm_next:
+4997 6fe0c938 fetch 1 ,mem_device_flag 
+4998 c000499b beq mode_24g_device ,g24_transmit_by_interrupt_exit_check 
+4999 70409901 jam 1 ,mem_lpm_mode 
+499a 20600000 rtn 
+
+g24_transmit_by_interrupt_exit_check:
+499b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+499c c38c0000 rtnbit1 mouse_enable_24g_250hz 
+499d 202026d0 branch g24_transmit_by_interrupt_exit 
+
+mouse_lpm_mode_clear:
+499e 6fe0c938 fetch 1 ,mem_device_flag 
+499f c00026e1 beq mode_24g_device ,g24_transmit_by_interrupt_enable 
+49a0 70409900 jam 0 ,mem_lpm_mode 
+49a1 20600000 rtn 
+
+mouse_low_voltage_led_no_enter_lpm_blink:
+49a2 6fe0c8f9 fetch 1 ,mem_adc_low_volatage_led_blink_enable 
+49a3 243a499e nbranch mouse_lpm_mode_clear ,blank 
+49a4 20204997 branch mouse_low_voltage_led_no_enter_lpm_next 
+
+mouse_store_signal_rssi:
+49a5 20401291 call rssi_hex2dec 
+49a6 6fe08018 fetch 1 ,mem_rssi 
+49a7 202025e2 branch rssi_signal 
+
+mouse_le_transmit:
+49a8 204049a5 call mouse_store_signal_rssi 
+49a9 202026ee branch power_ctrl_start 
+
+mouse_bt_slave_match:
+49aa 204049a5 call mouse_store_signal_rssi 
+49ab 6fe08031 fetch 1 ,mem_state 
+49ac 2feffe00 isolate1 state_inconn ,pdata 
+49ad 24608000 nrtn true 
+49ae 6fe08048 fetch 1 ,mem_arq 
+49af 2feffe03 isolate1 wack ,pdata 
+49b0 2040a724 call power_ctrl_pac_succ_decrs ,true 
+49b1 2440a720 ncall power_ctrl_pac_succ_incrs ,true 
+49b2 202026ee branch power_ctrl_start 
+
+mouse_le_set_lpm_mult:
+49b3 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+49b4 2fe00603 compare 3 ,pdata ,3 
+49b5 2420fe5e nbranch disable_blank ,true 
+49b6 20403223 call app_lpm_mult_enable 
+49b7 20207e60 branch enable_blank 
+
+mouse_bt_set_lpm_mult:
+49b8 204052f7 call l2cap_malloc_is_fifo_empty 
+49b9 247a0000 nrtn blank 
+49ba 70008901 jam 1 ,mem_current_sniff_attempt 
+49bb 70008a00 jam 0 ,mem_current_sniff_timeout 
+49bc 20207e60 branch enable_blank 
+
+mouse_set_lpm_mult:
+49bd 6fe1478c fetch 2 ,mem_ui_state_map 
+49be c284c9b3 bbit1 ui_state_ble_connected ,mouse_le_set_lpm_mult 
+49bf 202049b8 branch mouse_bt_set_lpm_mult 
 
Index: output/romcode.rom
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/romcode.rom	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/output/romcode.rom	(working copy)
@@ -1,3 +1,3586 @@
+20403bf0
+204041a7
+2040408e
+20758000
+20403d8a
+20404728
+20403bcf
+2040423c
+6fe0c92a
+c3838000
+6fe1478c
+c2864553
+204046a0
+20203d52
+58004866
+67e1489b
+5800488f
+67e1489d
+58003e40
+67e1489f
+5800439f
+67e14461
+58004457
+67e14463
+58003e3b
+67e1445f
+58004334
+67e14467
+5800464b
+67e14465
+58003e25
+67e1445d
+58004388
+67e1446b
+580044b5
+67e1446f
+58003f69
+67e14473
+58003e13
+67e1445b
+580049a8
+67e1446d
+580049aa
+67e14477
+580049bd
+67e14471
+20600000
+20758000
+20402607
+204022ff
+20403f1e
+20403d13
+20401b16
+20401b3f
+20401b32
+20401b1e
+6fe44bab
+c289c635
+c28945f6
+20600000
+7040c508
+6fe44bab
+c3860000
+7040c518
+20600000
+700b58ff
+704790ff
+70478f1e
+5800492d
+67e1448d
+70448c01
+58004ab5
+67e14899
+70483601
+6fe148fe
+67e14791
+6fe14900
+67e14881
+6fe0c903
+67e14885
+6fe2c905
+67e2c8cb
+6fe0c904
+67e0c87c
+6fe44bab
+247a0000
+58020800
+67e1cbab
+58800700
+e7e18005
+58000300
+e7e10005
+70409901
+6fe0c90a
+2feffe00
+2040c6e6
+6fe0c90a
+2feffe02
+2040c6e8
+6fe0c90a
+2feffe01
+2040c6ea
+6fe0c90a
+2feffe03
+2040c6ec
+6fe0c90a
+2feffe04
+2040c6ee
+6fe0c90a
+2feffe05
+2040c6f8
+6fe0c866
+245a230e
+20403bfd
+6fe0c90b
+1fe10407
+6048c4a1
+1fe97e00
+1fe10401
+6048c866
+1fe37e00
+1fe10403
+6048c8fd
+1feb7e00
+1fe17e03
+204047d4
+6fe0c90c
+1fe10403
+6048c924
+1feb7e00
+1fe10403
+6048c925
+1feb7e00
+1fe17e03
+67e0c926
+67e0c992
+1feb7e00
+1fe17e03
+67e0cbb4
+580b0c0a
+67e1c918
+58ffffff
+e7e18005
+580607ff
+e7e18005
+58ffffff
+e7e18005
+7048f70a
+58000064
+67e14bc8
+20403e7b
+58001770
+67e14bbe
+704bc014
+58000190
+67e14bc6
+67e14bc2
+580003e8
+67e14bc4
+70487d07
+7048ca7d
+7041e800
+70488c01
+58000f0f
+67e1488d
+67e1488f
+6fe140a8
+67e140ac
+d8a0437a
+d8c040a8
+df200006
+20407e68
+704b8a20
+70493934
+6fe3437a
+67e34950
+704bb302
+7043e71f
+58050102
+67e1c3e8
+58120303
+e7e18005
+58190318
+e7e18005
+580003c2
+e7e10005
+5806ff06
+67e1cad2
+58000300
+e7e18005
+58090c80
+e7e18005
+58355442
+e7e18005
+5820322e
+e7e18005
+58756f4d
+e7e18005
+58006573
+e7e10005
+7044071f
+d8c04ad9
+d8a04408
+df20000d
+20407d5f
+6fe0c408
+1fe0ffff
+67e0c2f7
+d8c0440a
+d8a042f8
+df20000b
+20407d5f
+58070007
+67e1c372
+58002000
+e7e18005
+5800012c
+e7e10005
+58181203
+67e1cacc
+580000ff
+67e1cacf
+380000fb
+3806c212
+3808800f
+380c0021
+67e4444c
+70443207
+58000015
+67e14ae7
+58000019
+67e14357
+5800001d
+67e14ae9
+58000021
+67e14aeb
+58000030
+67e14aed
+58000022
+67e143d1
+704af096
+70493800
+20402322
+20402325
+58604800
+67e1c85c
+5800012c
+67e148c2
+58000050
+67e148c0
+58000005
+67e14bba
+58000708
+67e14bbc
+58010403
+67e1c9d0
+582a2002
+e7e18005
+5822153f
+e7e18005
+58114433
+e7e18005
+58265a09
+67e1c9df
+58041934
+e7e18005
+58000009
+e7e10005
+5800ffff
+e7e10005
+580d5a09
+67e1c9f3
+58ed1d10
+e7e18005
+5800807d
+e7e10005
+5800ffff
+e7e10005
+58ff5a09
+67e1ca39
+5840ab27
+e7e18005
+58a0d1be
+e7e18005
+5812a141
+e7e18005
+58a784a5
+e7e18005
+58d0b5ff
+e7e18005
+58ff00b6
+e7e18005
+58000900
+e7e18005
+5800ffff
+e7e10005
+580d5a09
+67e1ca53
+58c50e10
+e7e18005
+58109a5b
+e7e18005
+58421138
+e7e18005
+58412828
+e7e18005
+58394923
+e7e18005
+584bb04a
+e7e18005
+58904ca0
+e7e18005
+5809704d
+e7e18005
+58ffff00
+e7e18005
+5846a509
+67e1ca81
+58101934
+e7e18005
+58690760
+e7e18005
+58207d04
+e7e18005
+5809007e
+e7e18005
+58220d00
+e7e18005
+58ff220e
+e7e18005
+704a96ff
+580b5a09
+67e1caa3
+580009f3
+e7e18005
+5800ffff
+e7e10005
+20203100
+58009468
+67e14660
+58009732
+67e14396
+58002580
+67e1c0b2
+70417803
+70415b08
+704b9e00
+704b9e00
+704b9f00
+58000200
+67e14159
+70438017
+70438217
+58000a77
+67e14484
+38000306
+38044440
+38090000
+380c4408
+67e4c662
+38001224
+38044000
+38080000
+e7e28005
+3803ffff
+3806fe23
+380999d9
+380c020d
+67e440a0
+58004af5
+67e143de
+58000010
+67e143e0
+2040490e
+204048c6
+20403e8e
+6fe44bab
+c30dbd3f
+7044550c
+58000006
+67e14372
+67e14374
+20402613
+6fe44bab
+c30c3d43
+2040260b
+6fe0c938
+67e0cab4
+6fe1c37d
+67e1cac9
+6fe0c8fd
+1fe17efe
+67e0c8fd
+67e0c4a0
+58000000
+67e3c8d0
+6fe0c78f
+67e0cb9b
+67e0cb9c
+20401aa9
+202042a0
+44e1c018
+6fe44bab
+c297c80a
+6fe0c938
+c00047f6
+20403d65
+243442eb
+44e24018
+da204939
+6fe0c938
+1fe0ffff
+1feffe1d
+9a20a200
+efe08011
+67e0c482
+6fe0c482
+c019bd6f
+c01a3d7b
+20204553
+44e2c018
+78547c00
+6fe44bab
+c305bd6c
+6fe08989
+c3013d6c
+78347c00
+6fe0cab1
+67e0cab0
+20600000
+68494bb8
+6fe0cac1
+c07fbd73
+68494bb5
+604940c1
+6fe341dd
+203a31f8
+70447d17
+6fe0c764
+243a31ee
+70447d04
+202031ee
+704ac701
+6848cbb7
+6fe0cac1
+c07fbd80
+6848c902
+6048cb77
+20403225
+6fe1cacf
+67e1c3ec
+204043e8
+58000004
+e7e08006
+d8c04408
+204043ef
+202078ee
+6fe44bab
+c4068000
+58003d90
+67e10b45
+70492ba5
+20203dc1
+20403d93
+20403d98
+20203da8
+70492c00
+6fe44bab
+c40a8000
+70492c5b
+20600000
+6fe44bab
+c28ebd9f
+c28f3da2
+c28fbda5
+70492919
+700b4708
+20600000
+7049290c
+700b4704
+20600000
+70492906
+700b4702
+20600000
+70492903
+700b4701
+20600000
+204079f0
+20403dab
+20203db0
+6fe08b48
+207a0000
+6fe0c92c
+c02db66c
+20203669
+6fe0c92c
+2020366f
+6ff08c02
+c303bdb6
+c283bdb9
+20600000
+6fe0c92a
+c4038000
+20205d8c
+6fe0c92a
+c3838000
+204047f2
+20204316
+6fe44bab
+c4068000
+20407991
+20203dc1
+44e34018
+68488b58
+20406059
+2020bdc6
+20203dcd
+6fe0c92b
+c1528000
+70492ba5
+700bfa00
+7009f600
+700bec00
+20203bcb
+6fe0c92b
+c12d0000
+70492b5a
+204047f2
+20404316
+2040490e
+2020799d
+6fe44bab
+c4068000
+20403db2
+6ff08c02
+67e0c92a
+c4038000
+20403e0b
+6fe24abd
+6848c929
+98408400
+1c427e00
+98467c00
+24610000
+67e24abd
+20403f70
+24740000
+6ff08c02
+c4038000
+6fe44bab
+c30abdea
+6fe0cb8b
+c000bdf0
+20403694
+58000001
+67e08bff
+6fe3c8d0
+e7e38005
+20600000
+6fe0cb8c
+203a3dfb
+6fe44bcd
+67e4095c
+6fe0cbcc
+c001bdfd
+c0013e04
+204036a2
+6fe4095c
+67e40c0f
+20600000
+6fe44bd6
+20203df3
+20403695
+700bf821
+58000003
+67e08c1f
+6fe1095c
+e7e10005
+20600000
+20403695
+700bf822
+58000002
+67e08c2f
+6fe0895c
+e7e08005
+20600000
+684a4abd
+1c427e00
+98467c00
+24413e10
+20600000
+58000000
+67e24abd
+20600000
+c51331dd
+6fe0caac
+203a31dd
+6fe0caf4
+c000b1dd
+6fe144d8
+243a31dd
+6fe0c8e1
+243a31dd
+202031df
+6fe0c902
+67e0cac4
+20600000
+44e3c018
+20404232
+2040423c
+20403e33
+20203217
+44e44019
+78347c00
+6ff20138
+79347e1a
+67f2004c
+2040159a
+20406df7
+2040490e
+20404015
+20403e33
+2040462d
+2040609d
+6848c911
+20206042
+44e4c019
+204042e9
+20407fdc
+20403e40
+20406082
+d8400013
+20403f56
+20203f58
+c6130000
+20403e40
+6fe0809e
+247a0000
+20206042
+44e54019
+20403f88
+6848c91f
+20406069
+20405b04
+6848c918
+20406036
+6848c919
+20406036
+6848c91a
+20406036
+6848c90d
+20406036
+6848c90e
+20406036
+6848c90f
+20406036
+6848c91b
+20406036
+6848c912
+20406036
+6848c913
+20406032
+6848c914
+20406032
+6848c91c
+20406032
+6848c91d
+20406032
+6848c911
+20206036
+6fe1478c
+c284be64
+6fe1478c
+c2803e67
+20600000
+1a227e00
+243a1b26
+20201b28
+1a227e00
+243a1540
+20201542
+6fe0c4a0
+c1810000
+44e5c019
+6848c4a1
+18467c03
+20213e78
+18408405
+6048c8fc
+18422200
+20406098
+c01fc954
+20404952
+1a220400
+2020607f
+18408404
+6048c8fc
+20203e72
+6fe0c8fd
+c0013e84
+c0003e89
+7048fd00
+582c0172
+67e1c8e3
+58014001
+e7e18005
+20600000
+585d0099
+67e1c8e3
+58007100
+e7e18005
+20600000
+58c8012c
+67e1c8e3
+5800dc00
+e7e18005
+20600000
+6fe44bab
+c40a0000
+7048f501
+c3970000
+c3958000
+7048f500
+20600000
+6fe0c8f6
+1fe0fe01
+67e0c8f6
+6848c8f7
+98467c00
+20600000
+6fe44bab
+c40a0000
+20403e6a
+6fe0c8f5
+203a3eb2
+6fe0c4a0
+c0013ea7
+7048f503
+20403e95
+20213ea9
+20403eae
+20203eb8
+7048f502
+20203eb8
+20403e6c
+7044a002
+6fe0cbaa
+245a3eae
+20203eb8
+7048f600
+6fe0c8fd
+67e0c4a0
+20600000
+6fe0c4a0
+c0813eb6
+6fe0cbaa
+247a0000
+20403e95
+24610000
+44e64019
+6fe0cbaa
+247a0000
+7048f600
+20406125
+67e148e9
+6fe0c4a0
+c0813ec6
+684948e9
+184ffe08
+1fe6fc0a
+20407dec
+9840fe00
+67e148e9
+da2048e3
+20403ed8
+6fe0c4a4
+c2813f1a
+c280bf1c
+c3003ed0
+7048fa01
+20203ece
+d8e00004
+202046f0
+d8e00004
+204046f4
+7048f80c
+6fe0c8fa
+207a0000
+7048fa00
+6848c921
+2020492b
+44e6c019
+efe40011
+67e4095c
+6fe0c8f5
+c0003ef0
+c0013edf
+c001bf0f
+6fe44bab
+c3173ee5
+6fe10962
+684948eb
+98467c00
+24213f12
+6fe44bab
+c315bef0
+7048fb00
+6fe10962
+684948ed
+98467c00
+24213eee
+204046a9
+20203ef0
+204046ad
+20203ef0
+20403f16
+2040616e
+20406166
+6fe10962
+6849095e
+98467c00
+2441616a
+68490960
+98467c00
+24416162
+6fe10962
+6849095c
+98467c00
+20213f0b
+6849095e
+98467e00
+24213f0d
+203a3f0d
+1fefa264
+6fe1095c
+6849095e
+98460400
+1a227e00
+9846fc00
+20407dec
+67e0caef
+20600000
+704aef64
+20600000
+704aef00
+20600000
+6fe0c4a0
+c0013edf
+20203ef0
+6848c4a4
+79200402
+6048c4a4
+20600000
+6848c4a4
+793f8402
+6048c4a4
+20600000
+7048fb01
+20600000
+2040490e
+20203e20
+6848c4c1
+20406069
+204079b4
+6848c918
+20403f56
+6848c919
+20403f56
+6848c91a
+20403f56
+6848c90d
+20403f56
+6848c90e
+20403f56
+6848c90f
+20403f56
+6848c910
+20403f56
+6848c91b
+20403f56
+6848c912
+20403f56
+6848c913
+20403f56
+6848c914
+20403f56
+6848c91c
+20403f56
+6848c91d
+20403f56
+6848c911
+20403f56
+6848c91e
+20403f56
+6848caab
+20406069
+6848c921
+20406069
+6848c915
+20406069
+6848c916
+20406069
+6848c922
+20406069
+6848c923
+20406069
+6848c917
+20203f56
+18467cff
+20628000
+18410e7f
+6ff2011c
+afefffff
+2020bf56
+20203f54
+79200407
+20206050
+793f8407
+20206050
+6fe1cbde
+67e1895c
+df200014
+d8400000
+6fe1895c
+2feffe00
+2040e07f
+6fe1895c
+1fe3fe00
+67e1895c
+18408401
+c2003f5c
+20600000
+20403f6a
+70448473
+20403f69
+20205b08
+20205cb5
+6fe0c91f
+d8400021
+20406093
+6fe0c920
+d8400023
+20206093
+44e74019
+78547c00
+58000000
+67e348d1
+20404240
+20403f7e
+20403f83
+204040dc
+6fe0c8d0
+1fe17e1f
+67e0c8d0
+24344728
+2040471a
+20204544
+6fe0c8e0
+207a0000
+67e0c8d5
+7048e000
+20207e54
+6fe0c8dc
+207a0000
+67e0c8d6
+7048dc00
+20207e54
+20403f95
+20403fd1
+6fe0c8da
+6848c8d9
+67e0c8d9
+98467c00
+2422b1e1
+6fe0c8de
+6848c8dd
+67e0c8dd
+98467c00
+2422b1e1
+20600000
+6fe0c91c
+c17f8000
+da200000
+6848c91c
+20406059
+7920a200
+6848c91d
+20406059
+7920a201
+1a227e00
+67e0c8da
+c000bfa5
+c0013fa9
+6fe0c8db
+c283bfb5
+20600000
+6fe0c8d9
+c0003fad
+c001bfaf
+20600000
+6fe0c8d9
+c0003fb1
+c001bfb3
+20600000
+7048db82
+20600000
+7048db81
+20600000
+7048db80
+20600000
+7048db83
+20600000
+6fe0c8db
+793ffe07
+67e0c8db
+c0003fbd
+c000bfc0
+c0013fc3
+c001bfc6
+20600000
+6fe0c8da
+c001bfc9
+20600000
+6fe0c8da
+c0003fc9
+20600000
+6fe0c8da
+c001bfcd
+20600000
+6fe0c8da
+c0003fcd
+20600000
+6fe0c8dc
+1fe0fe01
+67e0c8dc
+20600000
+6fe0c8dc
+1fe0ffff
+67e0c8dc
+20600000
+6fe0c913
+c17f8000
+da200000
+6848c913
+20406059
+7920a200
+6848c914
+20406059
+7920a201
+1a227e00
+67e0c8de
+c000bfe1
+c0013fe5
+6fe0c8df
+c283bff1
+20600000
+6fe0c8dd
+c0003fe9
+c001bfeb
+20600000
+6fe0c8dd
+c0003fed
+c001bfef
+20600000
+7048df82
+20600000
+7048df81
+20600000
+7048df80
+20600000
+7048df83
+20600000
+6fe0c8df
+793ffe07
+67e0c8df
+c0003ff9
+c000bffc
+c0013fff
+c001c002
+20600000
+6fe0c8de
+c001c005
+20600000
+6fe0c8de
+c0004005
+20600000
+6fe0c8de
+c001c009
+20600000
+6fe0c8de
+c0004009
+20600000
+6fe0c8e0
+1fe0fe01
+67e0c8e0
+20600000
+6fe0c8e0
+1fe0ffff
+67e0c8e0
+20600000
+6848c913
+20406032
+6848c914
+20406032
+6848c91c
+20406032
+6848c91d
+20206032
+6848c913
+20403f4d
+6848c914
+20403f4d
+6848c91c
+20403f4d
+6848c91d
+20203f4d
+6fe148d5
+207a0000
+7048e101
+7048e20a
+20600000
+da6048e2
+da404025
+2020318a
+7048e100
+20600000
+6fe44bab
+c2974036
+6fe0c90f
+c17f8000
+da200000
+704b9605
+6848c90f
+20404039
+67e0cb93
+6fe0c910
+c07fc042
+20404168
+1a227e00
+c282c052
+20204059
+6fe0c8fb
+203a4059
+20204052
+6fe44bab
+c2964048
+6fe0cb93
+1fe22600
+6fe0c910
+c07fc195
+6fe0cb9a
+243a4045
+2020404a
+6848c90f
+20403f56
+20204033
+7049dd00
+704b9300
+20600000
+6fe0cb93
+20204187
+20406059
+6848c910
+2020c048
+6848c910
+20406069
+6848c90f
+6fe0cb93
+20204187
+6fe0c9dd
+c1008000
+7049dd01
+6fe44bab
+c3940000
+c39b0000
+20204069
+6fe0c9dd
+c1000000
+7049dd00
+6fe44bab
+c2944060
+c29b4060
+20600000
+6fe0c9de
+243a4064
+6fe0cb9c
+245a4069
+7049de00
+6fe0c78f
+67e0cb9c
+67e0cb9b
+20600000
+44e7c019
+20404072
+20740000
+6fe0c992
+1fe0fe01
+1fe17e03
+67e0c992
+20404095
+202045ee
+78547c00
+6fe44bab
+c3960000
+c3970000
+6fe0cb8e
+207a0000
+6fe0cb8f
+207a0000
+78347c00
+20600000
+6fe44bab
+c2944080
+c29b4087
+20600000
+6fe0c9dd
+c1808000
+da604b9c
+da404085
+2020318a
+7049de01
+202046b5
+6fe0c9dd
+c1808000
+da604b9b
+da40408c
+2020318a
+7049de01
+202044d4
+20204098
+6fe44bab
+c38e0000
+6fe0c992
+c1818000
+70499200
+20600000
+44e8401a
+2040408f
+204048e1
+6fe0c927
+c001c0bb
+c005c0cf
+6fe0c992
+c00040a2
+c000c0a0
+c00140a4
+c001c0a6
+6848c9d1
+202040a8
+6848c9d0
+202040a8
+6848c9d2
+202040a8
+6848c9d3
+202040a8
+6fe0c927
+c00240b7
+c002c0b7
+c00440b9
+c003c0b9
+c00340b7
+6048c9dc
+58000006
+20405b0d
+1fe104f8
+6fe0c9dc
+9840fe00
+1fed7e00
+1fe0fe06
+20205b0c
+184085ff
+202040ae
+18408402
+202040ae
+6fe0c992
+c00040c2
+c000c0c0
+c00140c4
+c001c0c6
+6fe0c9d5
+202040c7
+6fe0c9d4
+202040c7
+6fe0c9d6
+202040c7
+6fe0c9d7
+67e0c9dc
+1fed7e00
+1fe22200
+1fe0fe0d
+20405b0c
+1a227e00
+1fe0fe0e
+20205b0c
+6fe0c992
+c00040d6
+c000c0d4
+c00140d8
+c001c0da
+6fe0c9d9
+202040c7
+6fe0c9d8
+202040c7
+6fe0c9da
+202040c7
+6fe0c9db
+202040c7
+20404115
+204040ed
+20403e5f
+204040e8
+1a227e00
+6848c8d8
+67e0c8d8
+67e0c8d0
+9842fe00
+1fe67c00
+20628000
+20207e54
+c6930000
+1a227e00
+207a0000
+67e0c8d0
+20207e54
+704b9800
+704b9900
+704b9a00
+1fe20400
+204040fd
+20404100
+20404103
+20404106
+6fe0cb99
+207a0000
+6fe0cb98
+207a0000
+704b9a01
+6fe0c8d8
+1fe22200
+20600000
+18417e09
+c004c10e
+20600000
+18417e14
+c00a410e
+20600000
+18417e18
+c00c410c
+20600000
+18417e07
+c001c10c
+c002c10c
+c003410c
+c003c10c
+20600000
+704b9901
+20600000
+704b9801
+20600000
+20404121
+20404115
+58000000
+67e1cb8e
+20600000
+44e8c01a
+6fe0cbe1
+245a4121
+da200000
+20404124
+2040412a
+20404130
+20404136
+2040414f
+2040416a
+1a227e00
+20600000
+58030303
+67e1cb8e
+20600000
+704b9600
+6848c918
+6fe0cb8e
+20404187
+67e0cb8e
+20600000
+704b9601
+6848c919
+6fe0cb8f
+20404187
+67e0cb8f
+20600000
+704b9602
+6848c91a
+6fe0cb90
+20404187
+67e0cb90
+20600000
+6fe0c90d
+c17f8000
+704b9603
+6fe0cb91
+1fe22600
+6848c90d
+6fe0c910
+c07fc14b
+20406059
+2020c147
+6848c910
+20406069
+6848c90d
+6fe0cb91
+20404187
+67e0cb91
+20204168
+6848c910
+6fe0cb91
+20404187
+20204145
+20404195
+67e0cb91
+6848c90d
+20203f56
+6fe0c90e
+c17f8000
+704b9604
+6fe0cb92
+1fe22600
+6848c90e
+6fe0c910
+c07fc164
+20406059
+2020c160
+6848c910
+20406069
+6848c90e
+6fe0cb92
+20404187
+67e0cb92
+20204168
+6848c910
+6fe0cb92
+20404187
+2020415e
+20404195
+67e0cb92
+6848c90e
+20203f56
+6848c910
+20203f56
+704b8b00
+6fe44bab
+c40a8000
+6fe0c912
+c17f8000
+704b9607
+6848c912
+6fe0cb95
+20404187
+67e0cb95
+1a227e00
+c283c17a
+2040417d
+6fe0cb8c
+67e0cb8d
+20600000
+704b8c01
+20404180
+20204177
+704b8c00
+6fe0cb8d
+207a0000
+704b8b01
+20600000
+20406059
+6848cb96
+18420e00
+2020c193
+20204191
+1fe3fe00
+1fe22400
+20406059
+7920a400
+1a417e07
+6848cb96
+18420e00
+c003c193
+c0004191
+20600000
+f93fa200
+20600000
+f9202200
+20600000
+44e9401a
+1a627e00
+67e0cb97
+1fe3fe00
+1fe22400
+18422600
+20403f54
+1a620400
+20406059
+7d20a400
+204041a1
+2020418b
+6848cb97
+18410401
+1a417e01
+98467c00
+2422c32f
+20600000
+44e9c01a
+20403f65
+20758000
+20404236
+204041b5
+c01841bc
+c018c217
+c02c4220
+204041b2
+20001af4
+202041ab
+6fe0c91f
+20405af7
+20203f6a
+58000001
+20405b0d
+67e0c9c2
+58000000
+20405b0d
+67e0c9c1
+20600000
+6fe0c9c2
+c02d41c5
+c06c41cb
+c068c1da
+c06941e3
+c00141ea
+c02a41ed
+c0284214
+202041ab
+70492705
+20404232
+20407d12
+da604a39
+2040422b
+2020408e
+58000016
+20405b0d
+1fe67cbd
+2422c1a7
+58000019
+20405b0d
+1fe67c55
+2422c1a7
+5800001b
+20405b0d
+1fe67c1d
+2422c1a7
+70492706
+da604a71
+2020422b
+70492700
+da6049f3
+2040422b
+da6049fd
+2040422b
+58000943
+20405b0c
+da604a17
+2020422b
+70492702
+da6049e9
+2040422b
+da6049fd
+2040422b
+da604a17
+2020422b
+70492703
+da6049df
+2020422b
+20404229
+58009a5b
+20405b0c
+5800000d
+20405b0d
+1fe67c12
+2022c201
+1fe67c0a
+2422c204
+5800000e
+20405b0d
+1fe67ce5
+2422c1ab
+58000010
+20405b0d
+1fe67ca5
+2022c201
+20404211
+70492708
+20600000
+70492709
+da604a53
+2020422b
+1fe67c10
+2422c1ab
+5800000e
+20405b0d
+1fe67cc5
+2422c1ab
+58000010
+20405b0d
+1fe67c38
+2422c1ab
+20404211
+7049270a
+20600000
+5800005b
+20405b0c
+20204227
+70492707
+da604a97
+2020422b
+20404236
+6fe0c9c2
+c038421e
+c000421c
+202041ab
+70492701
+20600000
+70492704
+20600000
+20404236
+6fe0c9c2
+c02cc224
+202041bc
+7049270b
+da604a81
+2020422b
+58000009
+20205b0c
+58005a09
+20205b0c
+efe10013
+d840ffff
+98467c00
+20628000
+20405b0c
+1a60a602
+2020422b
+58008006
+20405b0c
+20002ee0
+20600000
+44ea401a
+20403f65
+20404232
+da604aa3
+2040422b
+2020408e
+204041a7
+20403f65
+58000806
+20205b0c
+6fe0c4ac
+c1800000
+6fe0c927
+c000424c
+c000c24c
+c004424c
+c001424c
+c001c270
+c002424c
+c0034295
+c005c28e
+2020424c
+204042c4
+78547c00
+6fe0c911
+c07fc253
+6848c911
+20406059
+24608000
+58000000
+20405b0d
+c0984266
+58000002
+20405b0d
+c4038000
+204042db
+6fe0c8d1
+204042d3
+67e148d1
+6fe0c8d3
+204042d3
+67e148d3
+6fe0c928
+c0004268
+c000c26a
+c001426c
+c001c26e
+20600000
+c018c256
+202041b2
+204042ad
+202042e2
+204042b5
+202042e2
+204042b1
+202042e2
+204042bd
+202042e2
+204042c4
+6fe0c911
+c07fc276
+6848c911
+20406059
+24608000
+58000000
+20405b0d
+c09841b2
+58000002
+20405b0d
+c4038000
+204042db
+2040428c
+67e0c8d7
+1ff1fe00
+204042d7
+67e0c8d2
+6fe0c8d7
+1fe17e0f
+204042d7
+67e0c8d4
+6fe0c928
+c00042ad
+c000c2b5
+c00142b1
+c001c2bd
+20600000
+58000012
+20205b0d
+204042c4
+6fe0c911
+c07fc294
+6848c911
+20406059
+24608000
+20204279
+204042c4
+78547c00
+58000002
+20405b0d
+c4038000
+58000008
+20405b0d
+203a4259
+58000000
+67e348d1
+20600000
+6fe0c924
+67e0c928
+6fe0c917
+c17f8000
+6848c917
+20403f56
+6848c917
+20406059
+2040c2aa
+20203f54
+6fe0c925
+67e0c928
+20600000
+6fe148d1
+1fe67e00
+67e148d1
+20207e54
+6fe148d3
+1fe67e00
+67e148d3
+20207e54
+6fe148d3
+1fe67e00
+67e148d3
+6fe148d1
+1fe67e00
+67e148d1
+204042bf
+20207e54
+204042bf
+20207e54
+6fe148d3
+684948d1
+67e148d1
+604948d3
+20600000
+6fe0c9c8
+205a42db
+7049c801
+20600000
+704aac01
+20401b1a
+202041a7
+6fe0c911
+c1ff8000
+6fe0caae
+c1808000
+58000000
+67e0caae
+67e248d1
+202042ca
+c4038000
+d840ff00
+9841fe00
+20600000
+c4018000
+d84000f0
+9841fe00
+20600000
+dfe00003
+20405b0d
+67e148d1
+dfe00004
+20405b0d
+67e148d3
+20600000
+6848c920
+20406059
+20608000
+5800000a
+20405b0d
+200003e8
+202042e2
+58008100
+20205b0c
+704ac1ff
+6fe0cbb3
+c280c2ef
+c28042f4
+70448234
+580f0f0f
+67e1c37a
+67e1c37d
+20203d61
+70448233
+d8c04974
+204045c8
+20203d61
+44eac01a
+204045bd
+20404314
+6fe0c938
+c000c2ff
+c0014301
+20600000
+6fe3493a
+20204302
+6fe34957
+684b4974
+98467c00
+2022c553
+20203d59
+20404314
+6fe0c5fc
+1fe0fe03
+1fe22200
+20404dc0
+6fe144de
+e7e10005
+580004a1
+e7e10005
+6fe0c5fc
+1fe0fe01
+1fe27200
+d8c045fc
+20207d5f
+704ac15a
+20600000
+6fe1478c
+c283c322
+c284b20f
+c28031f6
+20204576
+58000000
+67e14ab2
+6fe1478c
+c284b20f
+6fe1478c
+c28031f6
+20600000
+204046de
+20207931
+6fe44bab
+c40d8000
+2434432c
+6fe0caad
+1fe0fe01
+1fe17e0f
+67e0caad
+247a0000
+704aad00
+78547c00
+20600000
+6fe0c911
+c1ff8000
+70417700
+704aaf1e
+20600000
+44eb401a
+1a627e00
+c00a4350
+c000c3fa
+c00ac35f
+c00143fe
+c002c421
+c008454e
+c0094424
+c0033244
+c0024432
+c009c432
+c00cb1ec
+c015c43d
+c010c443
+c005444a
+c01731da
+c018c36a
+c014c36c
+c019436e
+c01f4379
+c020437a
+c013c44c
+c01cc857
+c01d4833
+c01e484e
+c0224390
+20600000
+704aae00
+204042ca
+704ac601
+20404822
+6fe0cac7
+243a4357
+704ac814
+6fe14480
+793ffe00
+67e14480
+704b7700
+6fe14af0
+67e14af2
+20404544
+20204576
+704ac600
+58000006
+6fe44bab
+c28dc364
+58000007
+67e14372
+67e14374
+704af400
+704aac00
+20401b1c
+202043fe
+d8e00002
+20204375
+70095b12
+2020787a
+6fe0cac7
+c000c371
+20204373
+2040436c
+704b7614
+d8e00001
+20204375
+6fe0cb75
+f9207e00
+67e0cb75
+20600000
+2020321d
+6fe143db
+c1000000
+6fe08289
+1feb7e00
+1fe67c0c
+20610000
+58000009
+67e14372
+67e14374
+2040436c
+704af401
+20600000
+704af400
+20600000
+6fe0cac7
+247a0000
+6fe0c437
+1fe67e22
+24628000
+704b7600
+d8e00000
+20204375
+6fe082c1
+1fe67c0c
+24214384
+6fe082c3
+6848cb8a
+98467c00
+2021439a
+6fe082c3
+67e0c177
+20204386
+6fe0cb8a
+67e0c177
+20204386
+704b7500
+20600000
+44ebc01a
+20401b77
+247a0000
+6fe0cac1
+c07fc3a7
+6fe0cb75
+1fe17e03
+c1818000
+6fe0caac
+205a42c8
+6fe44bab
+c280c3d1
+c28043d1
+c282c3d1
+c28343d1
+20403f70
+20404324
+24740000
+2040432f
+204042cb
+2040401d
+6fe44bab
+c30ac3b8
+6fe0cb8b
+c000c3b9
+202043d3
+6fe0cb8c
+203a43c3
+6fe44bcd
+67e4095c
+6fe0cbcc
+c001c3c5
+c00143c8
+704ae608
+68494ae7
+202043d8
+6fe44bd6
+202043bc
+704ae603
+68494ae9
+202043d8
+704ae602
+68494aeb
+202043d8
+da200001
+68494aed
+20401eb3
+6fe0caef
+e7e08005
+20600000
+58000000
+67e3c8d0
+704ae607
+6fe3c8d0
+67e3895c
+68494357
+202043d8
+6fe0cae6
+1fe22200
+20401eb3
+6848cae6
+18427200
+d8c0095c
+20207d5f
+704ac700
+6fe1cacc
+67e1c3ec
+204043e8
+58000005
+e7e08006
+d8c04ad2
+204043ef
+202078ee
+da2043e8
+efe08011
+207a0000
+98c0a200
+efe08006
+c1008000
+202043e9
+d8a043f3
+df200013
+20407d5f
+20201abe
+5800000c
+67e14455
+6fe44bab
+c38d8000
+5800000e
+67e14455
+20600000
+704aae00
+204042ca
+20404822
+20204576
+704b7f00
+704b8800
+204043f3
+20404409
+6fe1447e
+c283c410
+c28031c6
+c280c414
+c2814417
+c281c417
+20204553
+58000000
+67e448d9
+e7e20005
+7049c800
+70445400
+70432600
+20600000
+2040439d
+6fe1447e
+c28031c6
+20203e20
+c282c417
+c281c417
+20204553
+6fe1478c
+c2864553
+204031c6
+20404110
+204044dc
+6fe0cb9f
+c000be1d
+6fe0cac4
+247a0000
+20203e20
+20600000
+704b8704
+20600000
+70445401
+20403223
+2040321f
+58000000
+67e14788
+67e0c78a
+20404422
+2020321b
+704b8000
+6fe0c5f5
+2feffe00
+20608000
+704b8001
+20600000
+6fe0cac1
+c07fc2f8
+6fe1478c
+c3860000
+c3830000
+c3858000
+6fe44bab
+c3828000
+c299c553
+c297c81f
+20203e20
+6fe0cb7f
+c1810000
+704b7f00
+204043f3
+20404422
+2020321b
+6fe0cb7f
+c1010000
+1fe0fe01
+67e0cb7f
+70445512
+20404422
+2020321b
+20405af1
+202031ea
+58000001
+67e30041
+7000e833
+2020458d
+5fffffff
+67e30041
+7000e833
+704ac1ff
+204045a2
+704939ff
+202045ee
+44ec401b
+20770000
+6fe0c454
+207a0000
+204052f4
+247a0000
+6fe0cac1
+c07fc306
+6fe0caac
+205a42c8
+6fe44bab
+c280c48e
+c280448e
+c282c48e
+c283448e
+20403f70
+20404324
+24740000
+2040432f
+204042cb
+2040401d
+6fe0cb80
+c000c47d
+6fe0cb88
+207a0000
+6fe44bab
+c30ac474
+6fe0cb8b
+c000c491
+da200009
+20404dc0
+6fe144de
+e7e10005
+580002a1
+e7e10005
+6fe3c8d0
+e7e38005
+20600000
+6fe0c8d0
+67e0cb81
+6fe0c8d1
+e7e08005
+6fe0c8d3
+e7e08005
+6fe148d5
+e7e10005
+da200007
+20404dc0
+6fe144de
+e7e10005
+580002a1
+e7e10005
+6fe2cb81
+e7e28005
+20600000
+58000000
+67e3c8d0
+20204474
+6fe0cb8c
+203a44b3
+6fe44bcd
+67e4095c
+6fe0cbcc
+c001c4a1
+c00144aa
+da20000a
+20404dc0
+6fe144de
+e7e10005
+580001a1
+e7e10005
+6fe4095c
+e7e40005
+20600000
+da200004
+20404dc0
+6fe144de
+e7e10005
+580003a1
+e7e10005
+6fe1095c
+e7e10005
+20600000
+da200003
+20404dc0
+6fe144de
+e7e10005
+580004a1
+e7e10005
+6fe0895c
+e7e08005
+20600000
+6fe44bd6
+20204494
+44ecc01b
+20403e9b
+20404956
+2040232b
+20402556
+204047cd
+204048be
+204048ef
+2040407c
+204044cc
+204044dc
+204044ff
+20404504
+20404512
+2040451f
+20404515
+2040452a
+2040452d
+20404532
+20404535
+20404022
+20404547
+2020453c
+6fe44bab
+c29bc4cf
+20600000
+6fe0cb9e
+c1808000
+da604b9b
+da4044d4
+2020318a
+6fe0c938
+c1000000
+6fe44bab
+c3830000
+d8e00006
+204046f0
+20403173
+2020454e
+6fe0c938
+c00044e2
+6fe44bab
+c41a8000
+6848cbca
+202044e5
+6fe44bab
+c4190000
+6848cbcb
+6048cb9d
+20404115
+1fe17e07
+6848cb9d
+98467c00
+2022c4f1
+6fe0c78f
+67e0cba0
+6fe0cb9f
+c1000000
+704b9f00
+20600000
+204044f6
+6fe0cb9f
+c1008000
+704b9f01
+20207931
+da404827
+da604ba0
+6fe0c938
+c000318a
+da4044d4
+2040318a
+6fe0cba0
+c000c6e2
+20600000
+da604ac2
+da404502
+20203191
+20404576
+20203e20
+da604b77
+da40450a
+20403191
+6fe0cb77
+c000b203
+20600000
+6fe0cac1
+c07fc2f8
+6fe0cab0
+243a470e
+6fe44bab
+c299c553
+c297c81f
+20203e20
+da604b76
+da40438e
+2020318a
+6fe0cac6
+207a0000
+da604ac8
+da40451a
+2020318a
+6fe0cac7
+247a0000
+6fe0c39b
+c1800000
+20202090
+da604af2
+da404522
+2020318a
+6fe14af0
+67e14af2
+202043cb
+6fe0cb75
+c3810000
+2040436c
+d8e00000
+20204375
+da60478a
+da404424
+2020318a
+da604b87
+da404530
+2020318a
+704b8801
+20600000
+da604ac4
+da403e20
+2020318a
+da604aaf
+da404538
+2020318a
+6fe0cb8a
+67e0c177
+704aae01
+20600000
+6fe0c92a
+c3838000
+da604ab2
+da404541
+20203191
+6fe0c938
+c00047e1
+2020431b
+6fe14bbe
+67e14ab2
+20600000
+da6049bf
+da40454a
+2020318a
+204045f1
+6fe0cac5
+243a46c0
+20600000
+280ffe26
+2040c7f2
+2040431b
+2040439d
+20204553
+44ed401b
+20404314
+6fe1478c
+c285c55f
+6fe44bab
+c304455f
+68494997
+18408401
+60494997
+6049437b
+180a7e00
+67e0c37a
+6fe1cac9
+67e1c37d
+20403225
+6fe14791
+67e14ac2
+7000bd06
+58000000
+67e14ab2
+67e0cb77
+67e0cac4
+67e0cba7
+67e0caac
+d8e00002
+204046f0
+204046e4
+6fe0cbb3
+2feffe01
+2040c3df
+6fe0cbb3
+2feffe00
+2040f8c4
+2040498e
+202048cc
+44edc01b
+d8e00006
+204046f4
+704ac400
+6fe0cbb3
+2feffe01
+2040c581
+6fe0cbb3
+2feffe00
+2040c583
+20204912
+704b7700
+202078f4
+58000000
+67e14ac2
+202078c9
+44ee401b
+6fe44bab
+c4010000
+204048c6
+d8e00002
+204046f4
+2040458f
+204045a2
+202045ee
+6fe080e8
+c01a4593
+c019c596
+20600000
+67e0cb78
+6fe30297
+20204598
+67e0cb78
+6fe30041
+67e34b79
+6fe3cb78
+d8c04939
+df200003
+e8438006
+98467c00
+2022c5b7
+18c08c16
+c200459c
+20600000
+da204939
+6fe0c938
+1fe0ffff
+1feffe1d
+9a20a200
+6fe080e8
+e7e08011
+c01a45ac
+c019c5b3
+20600000
+6fe30297
+e7e30005
+d8c04316
+20407d0c
+6fe3437a
+e7e30005
+20600000
+6fe30041
+e7e30005
+d8c041cb
+20207d0c
+18c08dfa
+18c20a00
+684b4b79
+18408403
+e0430005
+20600000
+da204939
+6fe0c938
+c1000000
+1fe0ffff
+1feffe1d
+9a20a200
+efe08011
+67e0c482
+c019c5c8
+c01a45cd
+20600000
+efe30006
+67e341dd
+d8a041cb
+20407d0c
+2020602c
+efe30006
+67e341dd
+d8a04316
+20407d0c
+efe30006
+67e3437a
+20600000
+6fe14990
+d840aa55
+98467c00
+2022c5e2
+60494990
+204045e7
+6fe0cab4
+67e0c938
+6fe0c926
+67e0c992
+6fe2488d
+67e24891
+67e2483c
+20600000
+204045bd
+6fe24993
+67e24891
+67e2483c
+20600000
+6fe3437a
+67e34950
+1fe0ff00
+67e3496d
+1fe0ff00
+67e3498a
+20600000
+6fe0c9c0
+67e0c9bf
+20600000
+44eec01b
+6fe44bab
+c289c63f
+c2894603
+20600000
+20405d10
+2040460a
+204045fd
+20405d33
+20404611
+204045d4
+20203f65
+580049b8
+d8404938
+98460400
+6fe1c9b8
+da204938
+20600000
+20405d10
+2040460a
+2040461f
+204045fd
+20404622
+20404611
+20203f65
+700964ab
+204061d7
+20405d15
+da2049bb
+68488964
+20404613
+202061d7
+700964b9
+2020460b
+e0408011
+1ff10400
+e0408005
+1fec8400
+e0408005
+e7e08005
+1a227e00
+67f1008a
+58000000
+67f1008e
+70800602
+20205ccf
+6fe1c9b8
+67e1c4a5
+20205ceb
+1fe22600
+1a227e00
+1fe0fffc
+1fe22400
+efe20012
+67e249bb
+1a627e00
+20405d22
+6fe249bb
+e7e20012
+20600000
+6fe44bab
+c4090000
+20404611
+20405b08
+6848c4b5
+20406065
+6848c4ba
+20203f54
+20405da5
+6fe44bab
+2feffe09
+2440ddbf
+2040463b
+202045d4
+d8400080
+da204938
+da400000
+20205ddc
+d8400080
+da204938
+da400000
+20205dce
+d8400001
+da204992
+da40005a
+20205dce
+d8400001
+da204992
+da40005a
+20205ddc
+44ef401b
+20404990
+20407936
+20404027
+20404655
+204046a0
+204046d6
+20403dbd
+20403f88
+20203dd4
+6fe44bab
+c294c65a
+c29bc65a
+20600000
+704b9403
+6fe0c91b
+c17f8000
+da200000
+704b9606
+6848c91b
+2040466a
+67e0cb94
+6fe0c910
+c07fc667
+20404168
+1a227e00
+c283468b
+20204680
+6848c91b
+20403f56
+20204664
+6fe44bab
+c296c676
+6fe0cb94
+1fe22600
+6fe0c910
+c07fc195
+6fe0cb9a
+243a4673
+20204678
+704b9e00
+704b9400
+20600000
+6fe0cb94
+20204187
+20406059
+6848c910
+2020c676
+6848c910
+20406069
+6848c91b
+6fe0cb94
+20204187
+6fe0cb9e
+c1000000
+704b9e00
+6fe44bab
+c39a0000
+6fe0cb9b
+1fe67c14
+244146b5
+6fe0c78f
+67e0cb9b
+20600000
+20404697
+20740000
+6fe0cb9e
+c1008000
+704b9e01
+6fe44bab
+c29a44d4
+6fe0cb77
+207a0000
+6fe0c902
+67e0cb77
+20600000
+78547c00
+6fe44bab
+c3968000
+6fe0cb8e
+207a0000
+6fe0cb8f
+207a0000
+78347c00
+20600000
+6fe44bab
+c29546a4
+c295be9b
+20600000
+6848c91e
+20403f56
+6848c91e
+20406059
+2020c6ad
+6fe0c938
+c1008000
+70493801
+20204316
+6fe44bab
+c315c6b1
+6fe348ef
+67e348e3
+6fe0c938
+c1000000
+70493800
+202047f2
+44efc01b
+6fe0cbb4
+c1008000
+204046c2
+6048c938
+7041ca00
+204046da
+20404316
+204046dc
+704ac501
+202045ee
+204046da
+20205d8c
+6848c938
+18408401
+6fe44bab
+c288c6c9
+18467c02
+244146d0
+20600000
+6fe0cbb4
+1fe0ffff
+98467c00
+244146ce
+20600000
+d8400000
+20600000
+d8400001
+20600000
+d8400001
+da204938
+da400000
+20205dce
+6fe44bab
+c41a0000
+2040465a
+20600000
+d8e00000
+202046f0
+d8e00000
+202046f4
+d8e00003
+202046f0
+d8e00003
+202046f4
+d8e00005
+202046f0
+d8e00005
+202046f4
+d8e00014
+202046f0
+d8e00018
+202046f0
+d8e00016
+202046f0
+d8e0000c
+202046f0
+d8e0001c
+202046f0
+6fe44bab
+f9207e00
+67e44bab
+20600000
+6fe44bab
+f93ffe00
+67e44bab
+20600000
+d8e00015
+204046f0
+58000000
+67e44bcc
+67e44bd5
+6fe0c90a
+1fe17ec0
+c0204705
+c0404707
+c060470c
+58070008
+67e44bcd
+20600000
+58040005
+20204703
+58022303
+67e44bcc
+58000003
+67e44bd5
+20600000
+5800cd03
+20204708
+44f0401c
+6fe0cab0
+1fe0ffff
+67e0cab0
+6848c938
+18467c01
+2442c6c2
+6048c938
+7041ca00
+204046d2
+204045a2
+20203d59
+6fe44bab
+c41c0000
+6fe248d1
+207a0000
+204047bd
+58000003
+204047b3
+205a47af
+245a47b1
+58000002
+204047b8
+205a47af
+6fe0c9c9
+c000c72d
+6fe44bab
+c41c0000
+df200005
+d8a049c9
+20207d26
+20404741
+6fe149ca
+67e109f8
+6fe148d1
+67e109fa
+20404779
+6fe109f8
+67e149ca
+6fe109fa
+67e148d1
+6fe149cc
+67e109f8
+6fe148d3
+67e109fa
+20404781
+6fe109f8
+67e149cc
+6fe109fa
+67e148d3
+20600000
+6fe44bab
+c41c8000
+6fe149ca
+67e109ff
+20404754
+67e149ca
+6fe148d1
+67e109ff
+20404762
+67e148d1
+6fe149cc
+67e109ff
+20404754
+67e149cc
+6fe148d3
+67e109ff
+20404762
+67e148d3
+20600000
+6fe08a00
+203a4757
+2020475c
+6fe089ff
+2040476f
+67e089ff
+6fe109ff
+20600000
+6fe089ff
+204047ab
+2040476f
+205a7e5e
+204047a7
+2020475a
+6fe08a00
+203a4765
+20204769
+6fe089ff
+20404774
+67e089ff
+2020475a
+6fe089ff
+204047ab
+20404774
+205a7e5e
+204047a7
+2020475a
+1feffe04
+1fe6fc05
+20407def
+1807fe00
+20600000
+1feffe0c
+1fe6fc0a
+20407def
+1807fe00
+20600000
+6fe109f8
+684909fa
+9840fe00
+6848c9ce
+9840fe00
+1fe10401
+6048c9ce
+20204789
+6fe109f8
+684909fa
+9840fe00
+6848c9cf
+9840fe00
+1fe10401
+6048c9cf
+20204789
+67e189fc
+2feffe10
+2020c793
+6fe089fd
+c07fc79a
+6fe089fc
+1fe37e00
+67e109f8
+67e109fa
+20600000
+6fe089fd
+c0004797
+6fe189fc
+2020478f
+7009fe00
+6fe089fc
+2020478f
+6fe089fc
+204047a5
+67e089f8
+67e089fa
+203a47a3
+580000ff
+67e089f9
+67e089fb
+20600000
+58000000
+202047a0
+204047ab
+1fe37e00
+204047ac
+1fe67e00
+67e089ff
+20600000
+1fe67e00
+67e08970
+6fe08970
+20600000
+7049c900
+20600000
+7049c901
+20600000
+9a267c00
+24217e5e
+9a467c00
+24217e5e
+20207e60
+9a267c00
+24610000
+9a467c00
+24610000
+20207e60
+6fe148d1
+204047c4
+1fe22200
+6fe148d3
+204047c4
+1fe22400
+20600000
+67e109fa
+6fe089fb
+c07fc7ca
+6fe089fa
+1fe17eff
+20600000
+6fe109fa
+1fe67e00
+202047c8
+da6048c4
+da4047d0
+2020318a
+6fe248b8
+67e2485c
+704aae01
+20600000
+c00047db
+c000c7dd
+c00147d8
+c001c7df
+580ea600
+67e248b8
+20600000
+5805e740
+202047d9
+580927c0
+202047d9
+58124f80
+202047d9
+7048a500
+20402652
+5fffffff
+67e2485c
+58000000
+67e3c8d0
+704be101
+2040423c
+20403e33
+202026b5
+6fe0cbe1
+245a41aa
+704be100
+20202651
+6fe0cbe1
+243a262c
+20202628
+793f8026
+7048a100
+d8e00001
+202046f4
+6fe44bab
+c308c803
+20403d65
+20344806
+6fe44bab
+c298480c
+c318c80c
+20404110
+1fe17e07
+6848cbcb
+98467c00
+2022c827
+2020480c
+6fe0cab0
+243a470e
+20600000
+6fe14885
+67e14887
+70488b03
+20202559
+20403d65
+20344816
+70493800
+6fe14bba
+67e14887
+70488b02
+20202559
+204048cc
+6fe14881
+67e14887
+70488b04
+20202559
+6fe0c938
+c0004806
+20404314
+2020481a
+204047f2
+2040490e
+70493801
+204045bd
+20203d59
+20403d65
+20343e20
+20204553
+20403d65
+20740000
+6fe44bab
+c297c5ee
+20600000
+d8e00001
+204046f0
+58000000
+67e14887
+20404576
+2040498e
+204048cc
+70483601
+6fe44bab
+c30aa32e
+70483602
+2020232e
+6fe0c8a5
+243a47e1
+6fe0c88b
+c0014840
+c0024844
+c001c849
+20404912
+204047f2
+6fe0cab0
+243a470e
+6fe0c938
+c0003e20
+20600000
+6fe44bab
+c297c811
+c2984811
+20204806
+6fe44bab
+c317c839
+6fe0cbb4
+c000c839
+2020481a
+6fe44bab
+c317c839
+c289c839
+c2894839
+20204812
+204042ca
+704aae00
+7048a100
+70488b00
+6fe24891
+6fe2488d
+98467c00
+20628000
+20204822
+d8e00001
+204046f4
+204048c6
+58000000
+67e14883
+67e14887
+67e0c8a1
+67e0c9c8
+67e0c88b
+204042ca
+204042db
+6fe2483c
+67e24891
+67e24993
+202045ee
+c6930000
+20403f70
+24740000
+6fe44bab
+c30ac86d
+6fe0cb8b
+243a4884
+204042cb
+6fe0c836
+c280c87c
+6848c7c7
+6fe0c8d0
+9841fe00
+67e0c8d0
+6848c7cc
+6fe0c8d5
+9840fe00
+67e0c8d5
+6848c7cd
+6fe0c8d6
+9840fe00
+67e0c8d6
+70483601
+da200007
+da4048d0
+6fe44bab
+c28c26e1
+6fe148d5
+207a0000
+202026e1
+70483602
+da200009
+6fe0cb8c
+243a488a
+da404bd5
+20600000
+da404bcc
+20600000
+58000000
+67e1cba4
+20600000
+6fe44bab
+c40b0000
+6fe0caae
+207a0000
+6fe0c8a7
+207a0000
+6fe0cba1
+1fe0fe01
+1fe17e03
+67e0cba1
+247a0000
+704ba200
+6fe0cba2
+1fe0fe01
+67e0cba2
+1fe67c08
+242148a5
+2040259a
+2040265b
+242c48ab
+2437c8ab
+204048b5
+20402597
+6fe0cba3
+1fe0fe01
+67e0cba3
+c00848ad
+20600000
+204022cb
+2020489b
+704ba300
+6fe0cba4
+c3800000
+79207e00
+67e0cba4
+6fe14bbc
+67e14ab2
+2020423c
+6fe0c8a7
+203a488c
+704ba300
+6fe0cba4
+c4000000
+793ffe00
+67e0cba4
+20404544
+202041aa
+6fe44bab
+c4100000
+6fe0cba7
+207a0000
+1fe0ffff
+67e0cba7
+203a4912
+20204920
+6fe44bab
+c4100000
+2040498e
+6fe0cbc0
+67e0cba7
+20600000
+704ba700
+6fe14bc4
+67e14930
+67e14932
+6fe0c938
+c00048d5
+c000c8d7
+c00148d9
+20600000
+6fe0c915
+202048da
+6fe0c916
+202048da
+6fe0c922
+67e08964
+20404912
+6fe08964
+67e0c92f
+da200000
+70492d01
+20207806
+6fe0c923
+c17f8000
+6fe14ac2
+247a0000
+6fe14883
+247a0000
+6fe14887
+247a0000
+6fe0cba7
+247a0000
+6fe0cbc1
+203a48f2
+67e0cba8
+20600000
+da604ba8
+da4048f2
+2020318a
+6fe0c923
+67e0c92f
+6fe14bc2
+67e14930
+67e14932
+da200000
+6848c992
+18408401
+6fe44bab
+c30e48ff
+18408401
+18467c04
+24414902
+6048c92e
+70492d01
+20600000
+d8400001
+20600000
+78547c00
+6fe0c923
+6848c92f
+98467c00
+24628000
+6fe0c92e
+207a0000
+7048f900
+78347c00
+20600000
+2040491e
+20404917
+2040491a
+2020491c
+6fe0c938
+c0004917
+c000c91a
+c001491c
+20600000
+704baa00
+6848c915
+2020492b
+6848c916
+2020492b
+6848c922
+2020492b
+6848c923
+2020492b
+6fe0c938
+c0004925
+c000c927
+c0014929
+20600000
+6848c915
+2020492f
+6848c916
+2020492f
+6848c922
+2020492f
+44f0c01c
+6048c92f
+da200000
+20207801
+44f1401c
+6048c92f
+da200000
+202077fc
+6fe0c915
+98467c00
+2042c952
+6fe44bab
+c3126065
+20404943
+20404947
+2040494b
+6fe0cba9
+203a6065
+704ba900
+2020607f
+6fe0c915
+98467c00
+2042c954
+20206069
+6fe44bab
+c4130000
+6fe0c922
+2020494e
+6fe44bab
+c4128000
+6fe0c923
+2020494e
+6fe44bab
+c4138000
+6fe0c921
+98467c00
+24628000
+704ba901
+20600000
+704baa00
+20600000
+704baa01
+20600000
+6fe14ac2
+247a0000
+6fe14883
+247a0000
+6fe14887
+247a0000
+6fe0cba7
+247a0000
+20404904
+20740000
+6fe44bab
+c4108000
+c4020000
+c291c97c
+6fe0c8f8
+1fe0fe01
+67e0c8f8
+1fe67c14
+2441496e
+c0014970
+c0024976
+c0034970
+c0044976
+20600000
+7048f801
+20204976
+6fe44bab
+c2914920
+6fe0c921
+c17f8000
+6848c921
+2020492f
+6fe44bab
+c2914912
+6fe0c921
+c17f8000
+6848c921
+2020492b
+6fe14bbe
+68494ab2
+98460400
+6fe14bc8
+98467c00
+2421498e
+6fe0c8f9
+247a0000
+7048f901
+20204986
+6fe14bc6
+67e14930
+67e14932
+6fe44bab
+c29148d0
+6fe0c921
+c17f8000
+202048da
+7048f900
+20204976
+6fe44bab
+c4108000
+c4020000
+c291c9a2
+6fe0c8f8
+1fe67c0a
+2021499e
+6fe0c938
+c000499b
+70409901
+20600000
+6fe44bab
+c38c0000
+202026d0
+6fe0c938
+c00026e1
+70409900
+20600000
+6fe0c8f9
+243a499e
+20204997
+20401291
+6fe08018
+202025e2
+204049a5
+202026ee
+204049a5
+6fe08031
+2feffe00
+24608000
+6fe08048
+2feffe03
+2040a724
+2440a720
+202026ee
+6fe0cb75
+2fe00603
+2420fe5e
+20403223
+20207e60
+204052f7
+247a0000
+70008901
+70008a00
+20207e60
+6fe1478c
+c284c9b3
+202049b8
 00000000
 00000000
 00000000
@@ -13885,17637 +17468,4 @@
 00000000
 00000000
 00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-00000000
-000028a9
+0000ec67
Index: program/app_mouse.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/app_mouse.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/app_mouse.prog	(working copy)
@@ -0,0 +1,4947 @@
+
+ifdef COMPILE_MOUSE
+mouse_init:
+	call mouse_setting_config
+	call mouse_init_sunt
+	call mouse_dpi_config
+	rtn wake
+	call mouse_usb_check_enable
+	call mouse_drawing_optima_init
+	call mouse_cb_fuction
+	call mouse_sensor_powerdown
+	fetch 1,mem_usb_addr
+	rtnbit1 7
+mouse_init_wireless:	
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call mouse_check_select_device_by_switch
+	branch mouse_start_work
+
+
+mouse_cb_fuction:
+	setarg mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	setarg mouse_lpm_before_common
+	store 2,mem_cb_24g_lpm_before
+	setarg mouse_le
+	store 2,mem_cb_le_process
+	setarg mouse_bt
+	store 2,mem_cb_bt_process
+	setarg mouse_process_lpm_before
+	store 2,mem_cb_before_lpm
+	setarg mouse_priority_bb_event
+	store 2,mem_cb_bb_event_process
+	setarg mouse_idle
+	store 2,mem_cb_idle_process
+	setarg mouse_before_hibernate
+	store 2,mem_cb_before_hibernate
+	setarg mouse_le_bb_event_connect_complete
+	store 2,mem_cb_att_write	
+	setarg mouse_bb_event_timer
+	store 2,mem_cb_event_timer
+	setarg mouse_spi_write_flash_cb
+	store 2,mem_cb_spi_flash_write_complate
+	setarg mouse_lpm_check_wake_lock
+	store 2,mem_cb_check_wakelock
+	setarg mouse_le_transmit
+	store 2,mem_cb_ble_transmit
+	setarg mouse_bt_slave_match
+	store 2,mem_cb_bt_slave_match
+	setarg mouse_set_lpm_mult
+	store 2,mem_cb_bt_set_mult
+	rtn
+
+
+mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_gpio_init
+	call mouse_param_init
+mouse_setting_config_next:	
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_load_eeprom_info_check
+	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
+	rtn
+	
+mouse_xtal_init:
+	jam 0x08,mem_fcomp_div		// 0x08--16M 
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_16M
+	jam 0x18,mem_fcomp_div		// 0x18--24M
+	rtn
+
+mouse_default_init:
+	jam 0xff,mem_usb_offline_check_gpio
+	jam 0xff,mem_ui_button_gpio
+	jam 0x1e,mem_ui_button_timeout
+
+	setarg mem_mouse_led_type
+	store 2,mem_ui_led_struct_ptr
+	jam 1,mem_ui_led_struct_num
+
+	setarg mem_mouse_rssi_signal_buf
+	store 2,mem_rssi_signal_buf_ptr
+
+	jam 1,mem_24g_data_type
+	
+	fetch 2,mem_mouse_discovery_timeout
+	store 2,mem_discovery_timeout
+
+	fetch 2,mem_mouse_24g_pair_timeout_init
+	store 2,mem_24g_pair_timeout_init
+
+	fetch 1,mem_mouse_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout_init
+
+	fetch 5,mem_rssi_dis_min_24g_init
+	store 5,mem_rssi_dis_min_24g
+
+	fetch 1,mem_mouse_24g_pair_tx_power
+	store 1,mem_24g_pair_tx_power
+
+
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	nrtn blank
+
+	
+// mouse.dat no configuration parameters
+	setarg 0x020800					//enable poweron direct  & 24g
+	store 3,mem_mouse_flag			
+	setarg 0x800700					// adc led use mode led
+	istore 3,contw
+	setarg 0x0300
+	istore 2,contw
+
+	jam 1,mem_lpm_mode
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_ADC_ENABLE,pdata
+	call mouse_adc_read_enable,true
+
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_24G_250HZ_ENABLE,pdata
+	call mouse_24g_set_250Hz,true
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_SEARCH_DONGLE_ENABLE,pdata
+	call mouse_24g_search_dongle_enable,true
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_CLK_16M_ENABLE,pdata
+	call mouse_16M_enable,true
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_DPI_4_LEVEL_ENABLE,pdata
+	call mouse_dpi_4level_enable,true
+	fetch 1,mem_mouse_enable_flag
+	isolate1 MOUSE_KEYBOARD_ENABLE,pdata
+	call mouse_customer_key_enable,true
+	
+	fetch 1,mem_24g_ch_map_update
+	ncall g24_chamap_param_update,blank
+
+	call mouse_xtal_init
+
+	fetch 1,mem_mouse_global_setup
+	and pdata,0x07,temp
+	storet 1,mem_adc_channel
+	rshift3 pdata,pdata
+	and pdata,0x01,temp
+	storet 1,mem_24g_ch_map_update
+	rshift pdata,pdata
+	and pdata,0x03,temp
+	storet 1,mem_adc_config_flag_init
+	rshift2 pdata,pdata
+	and pdata,0x03,pdata
+	call mouse_24g_long_sleep_set
+
+	fetch 1,mem_mouse_global_setup1
+	and pdata,0x03,temp
+	storet 1,mem_sensor_angle_default
+	rshift2 pdata,pdata
+	and pdata,0x03,temp
+	storet 1,mem_sensor_angle_switch
+	rshift2 pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_config_sensor_dpi
+	store 1,mem_mouse_dpi
+	rshift2 pdata,pdata
+	and pdata,0x03,pdata
+	store 1,mem_device_number
+
+
+	setarg 0x0b0c0a
+	store 3,mem_lbutton_gpio
+	setarg 0xffffff
+	istore 3,contw
+	setarg 0x0607ff			// clk-07  sdio--06
+	istore 3,contw
+	setarg 0xffffff
+	istore 3,contw
+
+/* adc*/
+	jam 0x0a,mem_adc_read_time_init
+	setarg 0x0064
+	store 2,mem_adc_low_volatage_led_blink_timer
+	call mouse_adc_vol_init	
+/****/
+	setarg 0x1770
+	store 2,mem_mouse_no_data_timeout				// 10min
+	jam 0x14,mem_mouse_device_poweron_timer_count_init	// 2s
+	setarg 0x0190
+	store 2,mem_mouse_low_v_led_blink_time			// 200ms on,200ms off
+	store 2,mem_mouse_dpi_led_blink_time
+	setarg 0x03e8
+	store 2,mem_mouse_disconvey_led_blink_time
+	jam 0x07,mem_rssi_buff_index
+	jam 125,mem_power_ctrl_pac_succ_cnt_init
+	jam TX_POWER_0DB,mem_tx_power
+
+	jam 0x01,mem_24g_fast_conn_enable
+	setarg 0x0f0f
+	store 2,mem_24g_fast_conn_addr
+	store 2,mem_24g_fast_conn_addr+2
+	
+//ble
+	fetch 2,mem_lap
+	store 2,mem_lap+4
+	arg mem_le_lap,contw
+	arg mem_lap,contr
+	arg 0x06,loopcnt
+	call reverse_byte
+	
+	jam 0x20,mem_lpm_mult_init
+	jam 0x34,mem_device1_type
+	fetch 6,mem_le_lap
+	store 6,mem_device1_locall_addr
+	jam 0x02,mem_mouse_bluetooth_type
+
+	jam 0x1f,mem_le_adv_data_len
+	
+	setarg 0x050102
+	store 3,mem_le_adv_data
+	setarg 0x120303
+	istore 3,contw
+	setarg 0x190318
+	istore 3,contw
+	setarg 0x03c2
+	istore 2,contw
+
+	setarg 0x06ff06
+	store 3,mem_le_adv_swift_pair
+	setarg 0x000300
+	istore 3,contw
+	setarg 0x090c80
+	istore 3,contw
+
+	setarg 0x355442		// BT5.2 Mouse
+	istore 3,contw
+	setarg 0x20322e
+	istore 3,contw
+	setarg 0x756f4d
+	istore 3,contw
+	setarg 0x6573
+	istore 2,contw
+
+	jam 0x1f,mem_le_scan_data_len
+	arg mem_le_adv_swift_pair+7,contr
+	arg mem_le_scan_data,contw
+	arg 13,loopcnt
+	call memcpy
+
+	fetch 1,mem_le_scan_data
+	increase -1,pdata
+	store 1,mem_le_name_len
+
+	arg mem_le_scan_data+2,contr
+	arg mem_le_name_len+1,contw
+	arg 11,loopcnt
+	call memcpy
+
+	setarg 0x070007
+	store 3,mem_le_interval_min
+	setarg 0x002000
+	istore 3,contw
+	setarg 0x012c
+	istore 2,contw
+
+	setarg 0x181203
+	store 3,mem_le_adv_ind
+
+	setarg 0x0000ff
+	store 3,mem_le_adv_direct_ind
+
+	setsect 0,0xfb
+	setsect 1,0x2c212
+	setsect 2,0x800f
+	setsect 3,0x21
+	store 8,mem_local_rx_max_octets
+
+	jam 0x07,mem_le_adv_channel_map
+
+	setarg 0x0015
+	store 2,mem_le_keyboard_handle
+	setarg 0x0019
+	store 2,mem_le_notify_handle
+	setarg 0x001d
+	store 2,mem_le_multimedia_handle
+	setarg 0x0021
+	store 2,mem_le_systemctrl_handle
+	setarg 0x0030
+	store 2,mem_le_battery_level_handle
+	setarg 0x0022
+	store 2,mem_le_pairing_handle
+
+	jam 0x96,mem_le_battery_level_updata_timer_init
+
+// 24g
+	jam MODE_24G_DEVICE,mem_device_flag
+	call g24_enable_1M
+	call g24_pair_param_init
+	
+	setarg 0x604800
+	store 3,mem_24g_enter_hibernate
+	setarg 0x012c
+	store 2,mem_24g_long_sleep_param_update_timer_init
+	setarg 0x0050
+	store 2,mem_24g_transmit_by_interrupt_exit_count_init
+	setarg 0x05
+	store 2,mem_mouse_24g_power_on_fast_conn_timer	// 200ms
+	setarg 0x0708									//search dongle 3min
+	store 2,mem_mouse_24g_search_dongle_time_init
+
+	
+// sensor
+	setarg 0x010403
+	store 3,mem_mouse_dpi_seting
+	setarg 0x2a2002
+	istore 3,contw
+	setarg 0x22153f
+	istore 3,contw
+	setarg 0x114433
+	istore 3,contw
+
+	setarg 0x265a09
+	store 3,mem_sensor_3212_init
+	setarg 0x041934
+	istore 3,contw
+	setarg 0x0009
+	istore 2,contw
+	setarg 0xffff
+	istore 2,contw
+
+	setarg 0x0d5a09
+	store 3,mem_sensor_3205_init
+	setarg 0xed1d10
+	istore 3,contw
+	setarg 0x807d
+	istore 2,contw
+	setarg 0xffff
+	istore 2,contw
+
+	setarg 0xff5a09
+	store 3,mem_sensor_8650_init
+	setarg 0x40ab27
+	istore 3,contw
+	setarg 0xa0d1be
+	istore 3,contw
+	setarg 0x12a141
+	istore 3,contw
+	setarg 0xa784a5
+	istore 3,contw
+	setarg 0xd0b5ff
+	istore 3,contw
+	setarg 0xff00b6
+	istore 3,contw
+	setarg 0x000900
+	istore 3,contw
+	setarg 0xffff
+	istore 2,contw
+
+	setarg 0x0d5a09
+	store 3,mem_sensor_ka8ul_init
+	setarg 0xc50e10
+	istore 3,contw
+	setarg 0x109a5b
+	istore 3,contw
+	setarg 0x421138
+	istore 3,contw
+	setarg 0x412828
+	istore 3,contw
+	setarg 0x394923
+	istore 3,contw
+	setarg 0x4bb04a
+	istore 3,contw
+	setarg 0x904ca0
+	istore 3,contw
+	setarg 0x09704d
+	istore 3,contw
+	setarg 0xffff00
+	istore 3,contw
+
+	setarg 0x46a509
+	store 3,mem_sensor_ka8g2_init
+	setarg 0x101934
+	istore 3,contw
+	setarg 0x690760
+	istore 3,contw
+	setarg 0x207d04
+	istore 3,contw
+	setarg 0x09007e
+	istore 3,contw
+	setarg 0x220d00
+	istore 3,contw
+	setarg 0xff220e
+	istore 3,contw
+	jam 0xff,mem_sensor_ka8g2_init+21
+		
+	setarg 0x0b5a09
+	store 3,mem_sensor_poweron_init
+	setarg 0x0009f3
+	istore 3,contw
+	setarg 0xffff
+	istore 2,contw
+
+	//sys init
+	branch app_sys_param_init
+	
+
+mouse_param_init:
+	setarg MOUSE_BT_SDP_ADDR				//bt sdp start address
+	store 2,mem_ui_uuid_table
+	setarg MOUSE_BLE_ATT_LIST_ADDR				//ble attlist start address
+	store 2,mem_ui_le_uuid_table
+	setarg 0x2580
+	store 3,mem_class
+	jam 3,mem_lpm_mult_timeout
+	jam 8,mem_lpm_overhead
+	jam DPI_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	setarg 0x0200
+	store 2,mem_lpm_interval
+	jam 0x17,mem_le_local_mtu
+	jam 0x17,mem_le_remote_mtu
+//===========init spi param==============================
+	setarg 0x0a77
+	store 2,mem_spi_init_clk
+//===========all 16bit uuid==================================
+	setsect 0,0x306
+	setsect 1,0x4440
+	setsect 2,0x10000
+	setsect 3,0x4408
+	store 9,mem_all_uuid_16bits
+	setsect 0,0x1224
+	setsect 1,0x4000
+	setsect 2,0x0
+	istore 5,contw
+//===========features=====================================
+	setsect 0,0x3ffff
+	setsect 1,0x2fe23
+	setsect 2,0x199d9
+	setsect 3,0x20d
+	store 8,mem_features
+//======================================================	
+	setarg mem_le_tx_buffer0_omemalloc
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+	
+	call mouse_device_led_all_off
+	call mouse_device_poweron_timer_init
+	call mouse_adc_gpio_mux_init
+
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BT_125Hz,mouse_param_init_intervl_end
+	jam CLASSIC_INTERVAL_7_5MS,mem_sniff_param_interval
+	setarg LE_INTERVAL_7_5MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+mouse_param_init_intervl_end:
+	call g24_interval_param_8ms
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_24g_short_sleep_set_end
+	call g24_interval_param_4ms
+mouse_24g_short_sleep_set_end:
+	fetch 1,mem_device_flag
+	store 1,mem_device_flag_temp
+	fetch 3,mem_le_lap+3
+	store 3,mem_mouse_le_lap_temp
+	fetch 1,mem_adc_config_flag_init
+	and pdata,0xfe,pdata		// hvin = vinlpm
+	store 1,mem_adc_config_flag_init
+	store 1,mem_adc_config_flag
+	setarg 0
+	store 7,mem_mouse_key
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	store 1,mem_select_device_count
+	call le_modified_name
+	branch mouse_sensor_set_angle
+
+
+mouse_start_work:
+	bpatch patch18_3,mem_patch18
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING, mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_start_mode
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	nbranch mouse_buletooth_fast_conn_init,user
+mouse_start_reconnect_device:
+	bpatch patch18_4,mem_patch18
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+mouse_start_reconnect:	
+	fetch 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse3_0_check_reconn_target
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_start_discovery
+
+
+mouse_wakeup_from_power_check:
+	bpatch patch18_5,mem_patch18
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WAKEUP_FROM_POWER,mouse_wakeup_from_power
+	fetch 1,mem_wakup_from_power_flag
+	bbit0 BIT_POWER_ON,mouse_wakeup_from_power
+	enable user		// mouse power on
+mouse_wakeup_from_power:
+	fetch 1,mem_reconn_times_init
+	store 1,mem_reconn_times
+	rtn
+
+
+mouse3_0_check_reconn_target:
+	fetcht 2,mem_mouse_fast_page_to
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse3_0_check_reconn_target_next
+	fetcht 2,mem_mouse_page_to
+mouse3_0_check_reconn_target_next:	
+	storet 2,mem_page_to
+	fetch 6,mem_hci_plap
+	branch app_bt_start_discovery_short,blank
+	jam 0x17,mem_app_connection_options  //ssp
+	fetch 1,mem_ssp_enable
+	nbranch app_bt_start_reconnect,blank
+	jam 0x04,mem_app_connection_options  //no ssp
+	branch app_bt_start_reconnect
+	
+mouse4_0_check_reconn_target:
+	jam 1,mem_mouse_le_reconnect_flag
+	fetcht 1,mem_mouse_fast_direct_timeout
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse4_0_check_reconn_target_next
+	fetcht 1,mem_mouse_direct_timeout
+mouse4_0_check_reconn_target_next:	
+	storet 1,mem_mouse_direct_timer
+	call app_lpm_mult_disable
+	fetch 3,mem_le_adv_direct_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED
+	istore 1,contr
+	arg mem_le_scan_data,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+
+/*************************usb**********************************/
+mouse_usb_check_enable:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	setarg mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	branch mouse_usb_interface_check
+
+mouse_usb_config_param:
+	call mouse_usb_config_kb_check
+	call mouse_usb_config_param_init
+	branch mouse_usb_config_param_setup
+
+mouse_usb_config_kb_check:
+	jam DONGLE_KB_BIND_EEPROM_OFFECT,mem_mouse_usb_keyboard_flag
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	jam DONGLE_KB_BIND_SUCCESS,mem_mouse_usb_keyboard_flag
+	rtn
+
+mouse_usb_config_param_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_USB_250,mouse_usb_report_rate_set_250hz
+	bbit1 MOUSE_ENABLE_USB_500,mouse_usb_report_rate_set_500hz
+	bbit1 MOUSE_ENABLE_USB_1000,mouse_usb_report_rate_set_1000hz
+	jam 0x19,mem_wire_usb_interval
+	jam 0x08,mem_usb_tx_interval
+	rtn
+mouse_usb_report_rate_set_250hz:
+	jam 0x0c,mem_wire_usb_interval
+	jam 0x04,mem_usb_tx_interval
+	rtn
+mouse_usb_report_rate_set_500hz:
+	jam 0x06,mem_wire_usb_interval
+	jam 0x02,mem_usb_tx_interval
+	rtn
+mouse_usb_report_rate_set_1000hz:
+	jam 0x03,mem_wire_usb_interval
+	jam 0x01,mem_usb_tx_interval
+	rtn
+
+mouse_usb_config_param_setup:
+	call usb_tx_interval_config
+	call mouse_usb_vid_pid_config
+	branch mouse_usb_hid_icon_config
+
+mouse_usb_vid_pid_config:
+	fetch 1,mem_usb_vid_pid
+	rtn blank
+	fetch 1,mem_mouse_usb_keyboard_flag
+	beq DONGLE_KB_BIND_SUCCESS,dongle_usb_vid_pid_for_suit
+	branch dongle_usb_vid_pid_for_mouse_only_auto_pair
+
+mouse_usb_hid_icon_config:
+	fetch 1,mem_mouse_usb_keyboard_flag
+	branch dongle_usb_hid_icon_config+1
+
+
+mouse_usb_check:
+	fetch 1,core_usb_addr
+	bbit0 7,mouse_usb_no_exsit
+	bbit1 7,mouse_usb_exsit
+	rtn
+mouse_usb_no_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit0 7
+	branch soft_reset_chip
+mouse_usb_exsit:
+	fetch 1,mem_usb_addr
+	rtnbit1 7
+	call mouse_24g_stop
+	branch mouse_stop_bluetooth_mode
+
+mouse_usb_isr:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call usb_isr
+	branch mouse_usb_interface_check
+//	branch usb_offline_state
+
+
+mouse_usb_interface_check:
+	bpatch patch18_6,mem_patch18
+	fetcht 1,mem_usb_offline_check_gpio
+	call gpio_get_bit
+	branch mouse_usb_gpio_low,true
+	branch mouse_usb_gpio_high
+
+
+mouse_usb_gpio_low:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_REMOVE
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	branch mouse_init_wireless
+	
+	
+mouse_usb_gpio_high:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_INSERT
+	jam MOUSE_USB_INTERFACE_INSERT,mem_mouse_usb_vdd_status
+	call mouse_24g_stop
+	call mouse_stop_bluetooth_mode
+	call mouse_device_led_all_off
+	branch usb_init
+	
+	
+mouse_usb_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_USB
+	call mouse_usb_check
+	fetch 1,core_usb_addr
+	store 1,mem_usb_addr
+	rtnbit0 7
+	call mouse_clkn_check 
+	fetch 4,mem_btclk_sensor
+	fetcht 1,mem_wire_usb_interval
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_btclk_sensor
+	call mouse_motion
+	nrtn user
+mouse_push_data_to_usb:
+	fetch 1,core_usb_addr
+	rtnbit0 7
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_push_mouse_data_to_usb
+	fetch 1,mem_customer_key
+	beq 1,mouse_push_keyboard_data_to_usb
+mouse_push_mouse_data_to_usb:
+	call dongle_usb_tx_ms_data
+	setarg MS_REPORT_ID
+	store 1,mem_usb_mouse_data
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+mouse_push_keyboard_data_to_usb:
+	fetch 1,mem_customer_data_trigger
+	branch mouse_push_release_keyboard_data_to_usb,blank
+	fetch 8,mem_customer_key_press+1
+mouse_push_keyboard_package_data_to_usb:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,mouse_push_multimedia_key_data_to_usb
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_push_systemctrl_key_data_to_usb
+	call dongle_usb_tx_kb_data
+	fetch 8,mem_pdatatemp
+	store 8,mem_usb_kb_data
+	rtn
+	
+mouse_push_release_keyboard_data_to_usb:
+	fetch 8,mem_customer_key_release+1
+	branch mouse_push_keyboard_package_data_to_usb
+
+mouse_push_multimedia_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_MULTIKEY,mem_usb_ep2_data
+	setarg KB_MULTIKEY_REPORT_ID
+	store 1,mem_usb_kb_multikey
+	fetch 2,mem_pdatatemp
+	istore 2,contw
+	rtn
+
+mouse_push_systemctrl_key_data_to_usb:
+	call dongle_usb_tx_enable_ep2
+	jam USB_EP2_SYSTEMKEY,mem_usb_ep2_data
+	setarg KB_SYSTEM_CONCTRL_REPORT_ID
+	store 1,mem_usb_kb_system
+	fetch 1,mem_pdatatemp
+	istore 1,contw
+	rtn
+
+	
+/*************************usb**********************************/
+
+
+/*****************system clk***********************************/
+
+mouse_clkn_check:
+	fetcht 4,mem_btclk_sensor
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall mouse_clkn_timeout,positive
+	rtn
+mouse_clkn_timeout:
+	setarg 0
+	store 4,mem_btclk_sensor
+	rtn
+
+
+/*
+mouse_enable_clock_qdecoder:
+	fetch 2,core_clkoff
+	set0 CLOCK_OFF_QDECODER,pdata
+	store 2,core_clkoff
+	rtn
+*/
+
+mouse_lpm_check_wake_lock:
+	bmark1 mark_24g,app_get_lpm_wake_lock
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	branch app_get_lpm_wake_lock,blank
+	fetch 1,mem_mouse_le_conn_param_reject
+	beq LE_LPM_DISABLE,app_get_lpm_wake_lock
+	fetch 2,mem_sdp_remote_cid
+	nbranch app_get_lpm_wake_lock,blank
+	fetch 1,mem_mouse_wheel_trigger
+	nbranch app_get_lpm_wake_lock,blank
+	branch app_put_lpm_wake_lock
+
+mouse_delay_enter_hibernata:
+	fetch 1,mem_mouse_direct_timeout
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	rtn
+
+
+mouse_app_enter_hibernate:
+	bpatch patch18_7,mem_patch18
+	call mouse_sensor_reset
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch app_enter_hibernate
+
+	
+mouse_before_hibernate:
+	bpatch patch19_0,mem_patch19
+	enable user
+	fetch 4,0x8138
+	setflag user,26,pdata
+	store 4,core_lpm_reg
+	call lpm_write_ctrl
+	call disable_authrom
+	call mouse_device_led_all_off
+	call mouse_before_hibernate_wheel_gpio_set
+	call mouse_setgpio_hibernate
+	call mouse_flash_power_down
+	call gpio_set_before_lpm_common
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_clr_wake
+
+
+mouse_setgpio_hibernate:
+	bpatch patch19_1,mem_patch19
+	call mouse_set_sdio_high
+	call clear_wake
+	call mouse_lpm_before_common
+	call gpio_pd_idle
+	arg 19,temp
+	call mouse_gpio_config_input_pu
+	branch mouse_gpio_set_high_impedance
+	
+
+	
+mouse_process_lpm_before:
+	rtnmark1 mark_24g
+	call mouse_lpm_before_common
+	fetch 1,mem_lpm_current_mult
+	nrtn blank					// 7.5ms, no gpio wakeup
+	branch gpio_clr_wake
+
+mouse_lpm_before_common:
+	bpatch patch19_2,mem_patch19
+	
+	call mouse_wheel_check
+	fetcht 1,mem_mouse_sensor_sclk_gpio					// set sclk high
+	call gpio_config_output
+mouse_lpm_before_common_next:
+	call twspi_disable
+	
+	fetcht 1,mem_lbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_rbutton_gpio
+	call gpio_set_wake
+	fetcht 1,mem_mbutton_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_bk_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_fw_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_dpi_button_gpio
+	call gpio_set_wake
+	fetcht 1,mem_config_select_device_button_gpio
+	call gpio_set_wake
+
+	fetcht 1,mem_customer_key_gpio
+	call gpio_set_wake
+	
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_sensor_motion_gpio
+	branch gpio_set_wake
+
+
+//short mult: no key 
+mouse_set_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_set_ble_mult
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,mouse_set_bt_mult
+	rtn
+mouse_set_ble_mult:
+	copy rega,pdata
+	nbranch le_set_config_short_mult,blank
+	branch le_clr_config_short_mult
+mouse_set_bt_mult:
+	copy rega,pdata
+	nbranch classic_bt_set_mult_short_flag,blank
+	branch classic_bt_clr_mult_short_flag
+
+/*****************system clk***********************************/
+	
+	
+/****************************adc**************************************/	
+mouse_adc_gpio_set:
+	fetch 1,mem_adc_config_flag
+	rtnne ADC_CONFIG_GPIO
+mouse_adc_gpio_check_output:
+	bpatch patch19_3,mem_patch19
+	fetcht 1,mem_adc_channel
+	sub temp,3,null
+	branch mouse_adc_gpio_4_7_set,positive
+	increase 5,temp
+	storet 1,mem_adc_channel_gpio
+mouse_adc_gpio_set_next:
+	copy temp,rega
+	call gpio_get_config
+	beq gpcfg_output_high,mouse_set_24g_led_statue
+	call mouse_clear_24g_led_statue
+	copy rega,temp
+	branch gpio_set_high_impedance
+
+mouse_adc_gpio_4_7_set:
+	increase 4,temp
+	storet 1,mem_adc_channel_gpio
+	branch mouse_adc_gpio_set_next
+
+mouse_adc_vol_init:
+	fetch 1,mem_adc_config_flag_init
+	beq ADC_CONFIG_GPIO,mouse_adc_gpio_vol_init
+	beq ADC_CONFIG_VINLPM,mouse_adc_gpio_vinlpm_init
+	jam ADC_CONFIG_VINLPM,mem_adc_config_flag_init
+	setarg 0x2c0172		// 0x0172--3.7V  0x012c--3.0V  0x0140--3.2V  0x014a--3.3V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x014001
+	istore 3,contw
+	rtn
+mouse_adc_gpio_vol_init:	
+	setarg 0x5d0099		// 0x0099--1.5V   0x005d--0.9V  0x0068--1.0V  0x0071--1.1V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x007100
+	istore 3,contw
+	rtn
+mouse_adc_gpio_vinlpm_init:
+	setarg 0xc8012c		// 0x012c--3.0V  0x00c8--2.0V  0x00dc--2.2V
+	store 3,mem_mouse_vdd_full_vol
+	setarg 0x00dc00
+	istore 3,contw
+	rtn
+	
+
+
+mouse_adc_gpio_mux_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	jam MOUSE_ADC_CHECK_MULTIPLE,mem_adc_mux_status
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_ADC
+	jam MOUSE_ADC_CHECK_BATTERY_ONLY,mem_adc_mux_status
+	rtn
+
+mouse_adc_read_interval:	
+	fetch 1,mem_adc_read_timer
+	increase 1,pdata
+	store 1,mem_adc_read_timer
+	fetcht 1,mem_adc_read_time_init	//1s read adc
+	isub temp,null
+	rtn
+
+
+mouse_adc_read:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	call mouse_adc_gpio_set
+	fetch 1,mem_adc_mux_status
+	branch mouse_adc_read_battery,blank
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_GPIO,mouse_adc_read_gpio_mux_start	// gpio + dpi/switch
+	jam MOUSE_ADC_CHECK_VINLPM_MULTIPLE,mem_adc_mux_status
+	call mouse_adc_read_interval					// vinlpm + dpi/switch
+	branch  mouse_adc_read_gpio, positive
+	call mouse_adc_read_vinlpm
+	branch mouse_adc_read_start
+
+mouse_adc_read_gpio_mux_start:
+	jam MOUSE_ADC_CHECK_GPIO_MULTIPLE,mem_adc_mux_status
+	branch mouse_adc_read_start
+
+mouse_adc_read_gpio:
+	call mouse_adc_gpio_check_output
+	jam ADC_CONFIG_GPIO,mem_adc_config_flag
+	fetch 1,mem_24g_device_led_status
+	ncall mouse_adc_read_vinlpm,blank
+	branch mouse_adc_read_start
+	
+mouse_adc_read_vinlpm:
+	jam 0,mem_adc_read_timer
+	fetch 1,mem_adc_config_flag_init
+	store 1,mem_adc_config_flag
+	rtn	
+	
+mouse_adc_read_battery:		// only get battery
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO,mouse_adc_read_battery_start
+	fetch 1,mem_24g_device_led_status
+	nrtn blank
+mouse_adc_read_battery_start:
+	call mouse_adc_read_interval
+	nrtn positive
+mouse_adc_read_start:
+	bpatch patch19_4,mem_patch19
+	fetch 1,mem_24g_device_led_status
+	nrtn blank
+	jam 0,mem_adc_read_timer
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, mouse_adc_data_process
+	fetcht 2,mem_mouse_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_mouse_vdd_now_vol
+mouse_adc_data_process:	
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+	bbit1 2,mouse_adc_button_press
+	bbit1 1,mouse_power_down
+	bbit0 0,mouse_adc_no_low_voltage
+mouse_adc_data_process_next:
+	jam 1,mem_mouse_adc_last_low_voltage_flag
+	branch mouse_adc_low_voltage
+	
+mouse_adc_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_adc_no_low_voltage:
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 12,mem_adc_low_volatage_led_timer_count
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
+	rtn blank
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+
+
+mouse_adc_bat_percent_lowpower_out:
+	bpatch patch19_5,mem_patch19
+	ifetch 8,rega
+	store 8,mem_pdatatemp
+	fetch 1,mem_adc_mux_status
+	beq MOUSE_ADC_CHECK_BATTERY_ONLY,mouse_adc_bat_percent_lowpower_out_battery
+	beq MOUSE_ADC_CHECK_GPIO_MULTIPLE,mouse_adc_bat_percent_lowpower_out_gpio_multiple
+	beq MOUSE_ADC_CHECK_VINLPM_MULTIPLE,mouse_adc_bat_percent_lowpower_out_vinlpm_multiple
+mouse_adc_bat_percent_lowpower_out_gpio_multiple:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_adc_bat_percent_lowpower_out_gpio_switch
+	fetch 2,mem_pdatatemp+6		               	//now voltage
+	fetcht 2,mem_mouse_vdd_button_press_vol	// button press check
+	isub temp,null
+	nbranch mouse_adc_set_button_press_flag,positive
+	
+mouse_adc_bat_percent_lowpower_out_gpio_switch:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_ADC,mouse_adc_bat_percent_lowpower_out_battery
+	jam 0,mem_mouse_adc_button_press_flag
+	fetch 2,mem_pdatatemp+6				    	        //now voltage	
+	fetcht 2,mem_mouse_vdd_switch_gnd_24g_vol	// switch mode check
+	isub temp,null
+	nbranch mouse_select_24gdevice,positive
+	call mouse_select_btdevice
+	branch mouse_adc_bat_percent_lowpower_out_battery
+
+mouse_select_24gdevice:
+	call mouse_check_select_24gdevice
+	branch mouse_adc_bat_percent_lowpower_out_battery
+
+
+mouse_adc_bat_percent_lowpower_out_battery:	
+	call mouse_adc_clear_button_press_flag
+	call adc_clear_no_power_flag
+	call adc_clear_low_power_flag
+	fetch 2,mem_pdatatemp+6
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,null
+	ncall adc_set_no_power_flag,positive
+
+	fetcht 2,mem_pdatatemp+4		//low voltage
+	isub temp,null
+	ncall adc_set_low_power_flag,positive
+
+mouse_adc_bat_level_set:
+	fetch 2,mem_pdatatemp+6		//now voltage	
+	fetcht 2,mem_pdatatemp		//full voltage
+	isub temp,null
+	branch mouse_adc_bat_level_100_percent,positive		// now >= full
+	fetcht 2,mem_pdatatemp+2	        //shutdown voltage
+	isub temp,pdata
+	nbranch mouse_adc_bat_level_0_percent,positive		// now < shutdown
+	branch mouse_adc_bat_level_0_percent,blank			// now = shutdown
+	mul32 pdata,100,rega								// (now - shutdown)*100 /(full - shutdown)
+	fetch 2,mem_pdatatemp
+	fetcht 2,mem_pdatatemp+2
+	isub temp,temp
+	copy rega,pdata
+	idiv temp
+	call get_div_result
+	store 1,mem_le_battery_level_percentage
+	rtn
+
+mouse_adc_bat_level_100_percent:
+	jam 100,mem_le_battery_level_percentage
+	rtn
+mouse_adc_bat_level_0_percent:	
+	jam 0,mem_le_battery_level_percentage
+	rtn
+
+	
+mouse_adc_bat_percent_lowpower_out_vinlpm_multiple:
+	fetch 1,mem_adc_config_flag
+	beq ADC_CONFIG_GPIO,mouse_adc_bat_percent_lowpower_out_gpio_multiple
+	branch mouse_adc_bat_percent_lowpower_out_battery
+	
+
+mouse_adc_set_button_press_flag:
+	fetcht 1,mem_adc_power_flag
+	set1 2,temp
+	storet 1,mem_adc_power_flag
+	rtn	
+
+mouse_adc_clear_button_press_flag:
+	fetcht 1,mem_adc_power_flag
+	set0 2,temp
+	storet 1,mem_adc_power_flag
+	rtn		
+
+mouse_adc_button_press:
+	jam 1,mem_mouse_adc_button_press_flag
+	rtn
+
+mouse_power_down:
+	call mouse_device_led_all_off
+	branch mouse_app_enter_hibernate
+	
+/****************************adc**************************************/	
+
+/****************************gpio******************************************/
+mouse_gpio_init:
+	fetcht 1,mem_eeprom_wp_gpio
+	call gpio_config_output
+	call usb_offline_check_init
+	fetcht 1,mem_lbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_rbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_mbutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_bk_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_fw_button_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_matrix_public_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_customer_key_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_whee_tb_data_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_sensor_motion_gpio
+	call mouse_gpio_config_input_pu
+
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	
+
+	fetcht 1,mem_sensor_reset_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device_24g_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_config_device_bt1_led_gpio
+	call gpio_config_output
+	
+	fetcht 1,mem_config_device_bt2_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_dpi_led_gpio
+	call gpio_config_output
+
+	fetcht 1,mem_select_sensor_angle_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_gpio_set_pupd_by_input:
+	sub temp,UI_BUTTON_GPIO_DISABLE,null
+	rtn zero
+	and temp,0x7f,queue
+	fetch 4,core_gpio_in
+	qisolate1 pdata
+	branch mouse_gpio_config_input_pu,true
+	branch mouse_gpio_config_input_pd
+
+	
+mouse_gpio_config_input_pd:
+	set1 gpio_active_bit,temp
+	branch gpio_config_input
+
+mouse_gpio_config_input_pu:
+	set0 gpio_active_bit,temp
+	branch gpio_config_input
+
+mouse_gpio_set_high_impedance:
+	fetch 3,mem_mouse_set_high_impedance_bit_set
+	store 3,mem_pdatatemp
+	arg 20,loopcnt
+	arg 0,temp
+mouse_gpio_set_high_impedance_bit_loop:	
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	lshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop mouse_gpio_set_high_impedance_bit_loop
+	rtn
+
+
+
+/****************************gpio******************************************/
+
+/*******************spi*****************************/
+mouse_sensor_spi_init:
+	call mouse_spid_init_pin
+	jam 0x73,mem_spi_init_clk
+//	jam 0x1e,mem_spi_init_delay_time
+	call mouse_spi_init
+	branch twspi_enable
+	
+mouse_spi_write_flash_cb:
+mouse_spi_init:
+	branch spid_init
+	
+mouse_spid_init_pin:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+ 	arg gpcfg_spid_sck,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_sensor_sdio_gpio
+ 	arg gpcfg_spid_sdio,temp
+ 	branch gpio_config_function_int
+
+
+/*******************spi*****************************/
+
+
+
+
+mouse_motion:
+	bpatch patch19_6,mem_patch19
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+	
+
+/*******************wheel*************************/
+mouse_zwheel:
+	fetch 1,mem_mouse_z_data
+	rtn blank	
+	store 1,mem_mouse_z
+	jam 0,mem_mouse_z_data
+	branch enable_user
+	
+mouse_t_zwheel:
+	fetch 1,mem_mouse_tz_data
+	rtn blank	
+	store 1,mem_mouse_tz
+	jam 0,mem_mouse_tz_data
+	branch enable_user
+
+mouse_wheel_check:
+	call mouse_t_wheel_scan
+	call mouse_wheel_scan
+	fetch 1,mem_wheel_tb_new_pinlevel
+	fetcht 1,mem_wheel_tb_old_pinlevel
+	store 1,mem_wheel_tb_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	fetch 1,mem_mwheel_b_new_pinlevel
+	fetcht 1,mem_mwheel_b_old_pinlevel
+	store 1,mem_mwheel_b_old_pinlevel
+	isub temp,null
+	nbranch app_lpm_wake_auto_lock,zero
+	rtn
+mouse_t_wheel_scan:
+	fetch 1,mem_whee_ta_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_tb_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_wheel_tb_new_pinlevel
+	beq 0x01,mouse_t_wheel_scan_judge1
+	beq 0x02,mouse_t_wheel_scan_judge2
+	fetch 1,mem_wheel_tog
+	bbit1 7,mouse_t_wheel_scan_judge3
+	rtn
+
+mouse_t_wheel_scan_judge1:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge11
+	beq 3,mouse_t_wheel_scan_judge12
+	rtn
+mouse_t_wheel_scan_judge2:
+	fetch 1,mem_wheel_tb_old_pinlevel
+	beq 0,mouse_t_wheel_scan_judge21
+	beq 3,mouse_t_wheel_scan_judge22
+	rtn
+mouse_t_wheel_scan_judge11:
+	jam 0x82,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge12:
+	jam 0x81,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge21:
+	jam 0x80,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge22:
+	jam 0x83,mem_wheel_tog
+	rtn
+mouse_t_wheel_scan_judge3:
+	fetch 1,mem_wheel_tog
+	set0 7,pdata
+	store 1,mem_wheel_tog
+	beq 0,mouse_t_wheel_scan_judge30
+	beq 1,mouse_t_wheel_scan_judge31
+	beq 2,mouse_t_wheel_scan_judge32
+	beq 3,mouse_t_wheel_scan_judge33
+	rtn
+mouse_t_wheel_scan_judge30:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge31:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_forward
+	rtn
+mouse_t_wheel_scan_judge32:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 3,mouse_wheel_t_back
+	rtn
+mouse_t_wheel_scan_judge33:
+	fetch 1,mem_wheel_tb_new_pinlevel
+	beq 0,mouse_wheel_t_back
+	rtn
+mouse_wheel_t_forward:
+	fetch 1,mem_mouse_tz_data
+	increase 1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+mouse_wheel_t_back:
+	fetch 1,mem_mouse_tz_data
+	increase -1,pdata
+	store 1,mem_mouse_tz_data
+	rtn
+
+
+mouse_wheel_scan:
+	fetch 1,mem_whee_a_data_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_get_bit
+	setflag true,0,rega
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_get_bit
+	setflag true,1,rega
+	copy rega,pdata
+	store 1,mem_mwheel_b_new_pinlevel
+	beq 0x01,mouse_wheel_scan_judge1
+	beq 0x02,mouse_wheel_scan_judge2
+	fetch 1,mem_mwheel_tog
+	bbit1 7,mouse_wheel_scan_judge3
+	rtn
+
+mouse_wheel_scan_judge1:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge11
+	beq 3,mouse_wheel_scan_judge12
+	rtn
+mouse_wheel_scan_judge2:
+	fetch 1,mem_mwheel_b_old_pinlevel
+	beq 0,mouse_wheel_scan_judge21
+	beq 3,mouse_wheel_scan_judge22
+	rtn
+mouse_wheel_scan_judge11:
+	jam 0x82,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge12:
+	jam 0x81,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge21:
+	jam 0x80,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge22:
+	jam 0x83,mem_mwheel_tog
+	rtn
+mouse_wheel_scan_judge3:
+	fetch 1,mem_mwheel_tog
+	set0 7,pdata
+	store 1,mem_mwheel_tog
+	beq 0,mouse_wheel_scan_judge30
+	beq 1,mouse_wheel_scan_judge31
+	beq 2,mouse_wheel_scan_judge32
+	beq 3,mouse_wheel_scan_judge33
+	rtn
+mouse_wheel_scan_judge30:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge31:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_forward
+	rtn
+mouse_wheel_scan_judge32:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 3,mouse_wheel_back
+	rtn
+mouse_wheel_scan_judge33:
+	fetch 1,mem_mwheel_b_new_pinlevel
+	beq 0,mouse_wheel_back
+	rtn
+mouse_wheel_forward:
+	fetch 1,mem_mouse_z_data
+	increase 1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+mouse_wheel_back:
+	fetch 1,mem_mouse_z_data
+	increase -1,pdata
+	store 1,mem_mouse_z_data
+	rtn
+
+
+mouse_wheel_gpio_set_wake:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_ta_data_gpio
+	call gpio_set_wake_by_current_state
+	fetcht 1,mem_whee_tb_data_gpio
+	branch gpio_set_wake_by_current_state
+	
+mouse_before_hibernate_wheel_gpio_set:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_b_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_ta_data_gpio
+	call mouse_gpio_set_pupd_by_input
+	fetcht 1,mem_whee_tb_data_gpio
+	branch mouse_gpio_set_pupd_by_input
+
+mouse_wheel_trigger:
+	fetch 2,mem_mouse_z
+	rtn blank
+	jam 1,mem_mouse_wheel_trigger
+	jam 10,mem_mouse_wheel_trigger_timer
+	rtn
+
+mouse_wheel_trigger_timer:
+	arg mem_mouse_wheel_trigger_timer,regc
+	arg mouse_wheel_trigger_disable,regb
+	branch timer_single_step
+mouse_wheel_trigger_disable:
+	jam 0,mem_mouse_wheel_trigger
+	rtn
+
+
+/*
+mouse_set_qdecoder_x:
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call mouse_gpio_config_input_pu
+	arg MOUSE_DEFAULT_XA_GPIO,temp
+	call gpio_get_bit
+	rtn true
+	fetch 1,core_qdec_cntx
+	set1 4,pdata
+	store 1,core_qdec_cntx
+	rtn
+*/	
+	
+/*******************wheel*************************/
+
+
+
+/********************dpi******************************/
+mouse_dpi_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_dpi_check_connect_adc
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_dpi_key_check
+mouse_dpi_check_next:
+	store 1,mem_mouse_dpikey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_dpi_check_end
+	call mouse_matrix_public_gpio_reset
+mouse_dpi_check_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_DPI_KEY,mouse_dpi_down
+	branch mouse_dpi_up
+
+mouse_dpi_check_connect_adc:
+	fetch 1,mem_mouse_adc_button_press_flag
+	branch mouse_dpi_up,blank
+	branch mouse_dpi_down
+	
+mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+mouse_dpi_key_check_next:
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_dpi_check_end,blank
+	branch mouse_dpi_key_connect_matrix	
+
+mouse_3io6key_dpi_check_end:
+	fetcht 1,mem_dpi_button_gpio
+	call mouse_gpio_config_input_pu
+	branch mouse_dpi_check_exit
+
+mouse_dpi_check_end:
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	jam 0,mem_mouse_dpikey_press_status
+	rtn
+
+mouse_dpi_key_connect_gnd:
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_dpi_key_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_dpi_key_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_dpi_button_gpio
+	fetch 1,mem_mouse_dpikey_press_status
+	branch mouse_check_key_connect_gnd
+
+
+mouse_dpi_down:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+
+mouse_dpi_up:
+	fetch 1,mem_mouse_dpi_button_state
+	rtneq DPI_BUTTON_STATE_UP
+	jam DPI_BUTTON_STATE_UP,mem_mouse_dpi_button_state
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
+	rtn
+mouse_dpi_up_next:	
+	fetch 1,mem_mouse_dpi_long_press_flag
+	nbranch mouse_dpi_up_after_long_press,blank
+	fetch 1,mem_select_device_count
+	ncall mouse_dpi_process,blank
+mouse_dpi_up_after_long_press:	
+	jam 0,mem_mouse_dpi_long_press_flag
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_select_device_count	
+	store 1,mem_bt_discovery_count	
+	rtn
+	
+mouse_dpi_process:	
+	bpatch patch19_7,mem_patch19
+	call mouse_dpi_ghost_check
+	rtn user
+	fetch 1,mem_mouse_dpi
+	increase 1,pdata
+	and pdata,0x03,pdata
+	store 1,mem_mouse_dpi
+	call mouse_seting_dpi
+	branch mouse_store_device_info_delay
+
+mouse_dpi_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND
+	rtnbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	enable user
+	rtn
+	
+
+mouse_dpi_key_check_long_press:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_select_device_by_dpi_button
+	bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_discovery_by_dpi_button
+	rtn
+
+
+mouse_select_device_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_select_device_count,regc
+	arg mouse_ready_reconnection_by_dpi_button,regb
+	branch timer_single_step
+
+mouse_ready_reconnection_by_dpi_button:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_ready_reconnection_by_button
+
+mouse_discovery_by_dpi_button:
+	fetch 1,mem_mouse_dpi_button_state
+	rtnne DPI_BUTTON_STATE_DOWN	
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_dpi_button_bt_discovery,regb
+	branch timer_single_step
+
+mouse_long_dpi_button_bt_discovery:
+	jam 1,mem_mouse_dpi_long_press_flag
+	branch mouse_long_button_bt_discovery
+
+
+
+mouse_dpi_config:
+	branch mouse_seting_sensor_type
+
+
+mouse_setting_dpi_4_level:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_DPI_LEVEL_4
+	fetch 1,mem_mouse_dpi
+	rtnne MOUSE_DPI_LEVEL4
+	jam MOUSE_DPI_LEVEL1,mem_mouse_dpi
+	rtn
+	
+
+mouse_seting_dpi:
+	bpatch patch1a_0,mem_patch1a
+	call mouse_setting_dpi_4_level
+	call mouse_dpi_led_blink_delay
+mouse_seting_sensor_type:
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_seting_3212_dpi
+	beq KA8G2,mouse_seting_ka8g2_dpi
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_cpi0		//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_cpi1		//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_cpi2		//800
+	beq MOUSE_DPI_LEVEL4,mouse_set_cpi3		//1000
+mouse_set_cpi1:	//320x+8009
+	fetcht 1,mem_320x_dpi_1
+	branch mouse_dpi_store
+mouse_set_cpi0:
+	fetcht 1,mem_320x_dpi_0
+	branch mouse_dpi_store
+mouse_set_cpi2:
+	fetcht 1,mem_320x_dpi_2
+	branch mouse_dpi_store
+mouse_set_cpi3:
+	fetcht 1,mem_320x_dpi_3
+	branch mouse_dpi_store
+
+mouse_dpi_store:
+	fetch 1,mem_config_sensor_type
+	beq P3065_XY,mouse_3065xy_set_dpi
+	beq MX8650,mouse_3065xy_set_dpi
+	beq KA8,mouse_ka8_set_dpi
+	beq P6520,mouse_ka8_set_dpi
+	beq P8009,mouse_3065xy_set_dpi
+mouse_dpi_write:		// 3205  1  2  3  4
+	storet 1,mem_mouse_cpi_count
+	setarg MOUSE_DPI_ADDRESS
+	call twspi_read
+	and pdata,0xf8,temp
+	fetch 1,mem_mouse_cpi_count
+	iadd temp,pdata
+	lshift8 pdata,pdata
+	add pdata,MOUSE_DPI_ADDRESS,pdata
+	branch twspi_write
+
+mouse_3065xy_set_dpi:	// 0 1 2 3
+	increase -1,temp
+	branch mouse_dpi_write
+
+mouse_ka8_set_dpi:	// 3 4 5 6
+	increase 2,temp
+	branch mouse_dpi_write
+
+mouse_seting_3212_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_p3212_cpi0	//1200
+	beq MOUSE_DPI_LEVEL2,mouse_set_p3212_cpi1	//1600
+	beq MOUSE_DPI_LEVEL3,mouse_set_p3212_cpi2	//2400
+	beq MOUSE_DPI_LEVEL4,mouse_set_p3212_cpi3	//800
+mouse_set_p3212_cpi1:
+	fetch 1,mem_3212_dpi_1
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi0:
+	fetch 1,mem_3212_dpi_0
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi2:
+	fetch 1,mem_3212_dpi_2
+	branch mouse_p3212_dpi
+mouse_set_p3212_cpi3:
+	fetch 1,mem_3212_dpi_3
+mouse_p3212_dpi:
+	store 1,mem_mouse_cpi_count
+	lshift8 pdata,pdata
+	copy pdata,rega
+	add pdata,MOUSE_P3212_DPI_XADDRESS,pdata
+  	call twspi_write
+ 	copy rega,pdata
+  	add pdata,MOUSE_P3212_DPI_YADDRESS,pdata
+	branch twspi_write
+
+mouse_seting_ka8g2_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,mouse_set_pka8g2_cpi0		//1600
+	beq MOUSE_DPI_LEVEL2,mouse_set_pka8g2_cpi1		//2400
+	beq MOUSE_DPI_LEVEL3,mouse_set_pka8g2_cpi2		//3200
+	beq MOUSE_DPI_LEVEL4,mouse_set_pka8g2_cpi3		//800
+mouse_set_pka8g2_cpi1:
+	fetch 1,mem_ka8g2_dpi_1
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi0:
+	fetch 1,mem_ka8g2_dpi_0
+	branch mouse_p3212_dpi
+	
+mouse_set_pka8g2_cpi2:
+	fetch 1,mem_ka8g2_dpi_2
+	branch mouse_p3212_dpi
+
+mouse_set_pka8g2_cpi3:
+	fetch 1,mem_ka8g2_dpi_3
+	branch mouse_p3212_dpi
+
+		
+/********************dpi******************************/		
+
+
+/***********************key******************************/
+
+mouse_key:
+	call mouse_check_key_gpio
+	call mouse_ghost_key_check
+	call mouse_set_mult
+	call mouse_24g_key
+	copy rega,pdata
+	fetcht 1,mem_mouse_key_last
+	store 1,mem_mouse_key_last
+	store 1,mem_mouse_key
+	ixor temp,pdata
+	sub pdata,0,null
+	rtn zero
+	branch enable_user
+
+mouse_24g_key:
+	rtnmark0 mark_24g
+	copy rega,pdata
+	rtn blank
+	store 1,mem_mouse_key
+	branch enable_user
+
+mouse_ghost_key_check:
+	jam 0,mem_mouse_matrix_key_cow_count
+	jam 0,mem_mouse_matrix_key_row_count
+	jam 0,mem_mouse_ghost_flag
+	copy pdata,temp
+	call mouse_ghost_key_check_L_BK
+	call mouse_ghost_key_check_M_FW
+	call mouse_ghost_key_check_BK_FW
+	call mouse_ghost_key_check_LMR
+	fetch 1,mem_mouse_matrix_key_row_count
+	rtn blank
+	fetch 1,mem_mouse_matrix_key_cow_count
+	rtn blank
+	jam 1,mem_mouse_ghost_flag
+	fetch 1,mem_mouse_key_last		// matrix have ghost key
+	copy pdata,rega
+	rtn
+
+mouse_ghost_key_check_L_BK:
+	and temp,MOUSE_L_BK_BUTTON,pdata
+	beq MOUSE_L_BK_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_M_FW:
+	and temp,MOUSE_M_FW_BUTTON,pdata
+	beq MOUSE_M_FW_BUTTON,mouse_matrix_cow_more_than_one_key
+	rtn
+mouse_ghost_key_check_BK_FW:
+	and temp,MOUSE_BK_FW_BUTTON,pdata
+	beq MOUSE_BK_FW_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn	
+
+mouse_ghost_key_check_LMR:
+	and temp,MOUSE_LMR_BUTTON,pdata	// key LMR press
+	beq MOUSE_LR_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_RM_BUTTON,mouse_matrix_row_more_than_one_key
+	beq MOUSE_LMR_BUTTON,mouse_matrix_row_more_than_one_key
+	rtn
+
+
+mouse_matrix_row_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_row_count
+	rtn
+
+mouse_matrix_cow_more_than_one_key:
+	jam 1,mem_mouse_matrix_key_cow_count
+	rtn
+
+mouse_key_check_once:
+	call mouse_check_key_gpio_once
+	call mouse_check_key_gpio
+	setarg 0x00
+	store 3,mem_mouse_lkey_press_status
+	rtn
+	
+mouse_check_key_gpio:
+	bpatch patch1a_1,mem_patch1a
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call mouse_check_lkey_gpio
+	call mouse_check_rkey_gpio
+	call mouse_check_mkey_gpio
+	call mouse_check_bkkey_gpio
+	call mouse_check_fwkey_gpio
+mouse_check_key_gpio_next:
+	call mouse_check_customerkey_gpio
+	copy rega,pdata
+	rtn
+
+mouse_check_key_gpio_once:
+	setarg 0x030303
+	store 3,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_lkey_gpio:
+	jam MOUSE_L_KEY,mem_mouse_key_temp
+	fetcht 1,mem_lbutton_gpio
+	fetch 1,mem_mouse_lkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_lkey_press_status
+	rtn
+
+mouse_check_rkey_gpio:
+	jam MOUSE_R_KEY,mem_mouse_key_temp
+	fetcht 1,mem_rbutton_gpio
+	fetch 1,mem_mouse_rkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_rkey_press_status
+	rtn
+	
+mouse_check_mkey_gpio:
+	jam MOUSE_M_KEY,mem_mouse_key_temp
+	fetcht 1,mem_mbutton_gpio
+	fetch 1,mem_mouse_mkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_mkey_press_status
+	rtn
+
+mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_bk_check
+mouse_check_bkkey_gpio_next:
+	call gpio_get_bit
+	branch mouse_check_bk_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_bkkey_gpio_end:	
+	store 1,mem_mouse_bkkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_bk_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_bkkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_bkkey_gpio_end
+
+mouse_3io6key_bk_check:
+	call mouse_3io6key_check
+	store 1,mem_mouse_bkkey_press_status
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_fw_check
+mouse_check_fwkey_gpio_next:
+	call gpio_get_bit
+	branch mouse_check_fw_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+mouse_check_fwkey_gpio_end:	
+	store 1,mem_mouse_fwkey_press_status
+	branch mouse_matrix_public_gpio_reset
+
+mouse_check_fw_button_connect_gnd:
+	fetcht 1,mem_matrix_public_gpio
+	fetch 1,mem_mouse_fwkey_press_status
+	call mouse_check_key_connect_gnd
+	branch mouse_check_fwkey_gpio_end	
+
+mouse_3io6key_fw_check:
+	call mouse_3io6key_check
+	store 1,mem_mouse_fwkey_press_status
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_gpio_config_input_pu
+
+
+mouse_matrix_public_gpio_reset:	
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_gpio_config_input_pu
+
+mouse_check_customerkey_gpio:
+	jam 0,mem_customer_key
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetcht 1,mem_customer_key_gpio
+	fetch 1,mem_mouse_customerkey_press_status
+	call mouse_check_key_connect_gnd
+	store 1,mem_mouse_customerkey_press_status
+mouse_check_customerkey_state:
+	copy rega,pdata
+	bbit1 MOUSE_CUSTOMER_KEY,mouse_customerkey_press
+	call mouse_customerkey_release
+mouse_check_customerkey_gpio_exit:
+	fetch 1,mem_customer_data_trigger
+	store 1,mem_customer_data_trigger_last
+	rtn
+
+
+mouse_customerkey_press:
+	jam 1,mem_customer_data_trigger
+	call mouse_customer_key_need_send
+	branch mouse_check_customerkey_gpio_exit
+
+mouse_customerkey_release:
+	jam 0,mem_customer_data_trigger
+	fetch 1,mem_customer_data_trigger_last
+	rtn blank
+mouse_customer_key_need_send:	
+	jam 1,mem_customer_key
+	rtn	
+
+
+mouse_check_matrix_button_connect_gnd:	
+	call gpio_get_bit
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue	
+	branch  mouse_key_press,true
+	branch mouse_key_release
+
+mouse_check_key_connect_gnd:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp
+	copy temp,queue
+	beq 0x07,mouse_key_press		//  about 17~22ms three times
+	beq 0x00,mouse_key_release
+	rtn
+
+mouse_key_release:
+	qset0 rega
+	rtn		
+
+mouse_key_press:
+	qset1 rega
+	rtn
+
+mouse_3io6key_check:
+	bpatch patch1a_2,mem_patch1a
+	copy regc,pdata
+	store 1,mem_mouse_key_status
+	lshift pdata,pdata
+	copy pdata,regb
+	copy temp,regc
+	call mouse_gpio_config_input_pd
+	copy regc,temp
+	call gpio_get_bit
+	nsetflag true,0,regb
+	call mouse_check_press
+	branch mouse_check_key_connect_gnd+4
+
+mouse_check_press:
+	fetcht 1,mem_mouse_key_status
+	and_into 0x01,temp
+	and regb,0x01,pdata
+	isub temp,null
+	nbranch mouse_current_mult_update,zero
+	rtn
+	
+/*************************key***************************************/
+
+/**********************sensor******************************/	
+mouse_init_sunt:
+	bpatch patch1a_3,mem_patch1a
+	call mouse_sensor_spi_init
+	rtn wake
+mouse_init_sensor_wakeup:	
+	call mouse_sensor_poweron
+mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch mouse_init_sensor
+mouse_twspi_reset:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+	call twspi_reset 
+	branch mouse_spid_init_pin
+
+mouse_read_sensor_id:
+	setarg PAN_REG_PID_H
+	call twspi_read
+	store 1,mem_sensor_id2
+	setarg PAN_REG_PID_L
+	call twspi_read
+	store 1,mem_sensor_id1
+	rtn
+
+	
+
+mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P_MX8650,mouse_mx8650_init_param
+	beq P8009_ID2,mouse_8009_init_param
+	beq P3205_TJ3T_ID2,mouse_3205_3t_init_param
+	beq P3204_TJ3L_ID2,mouse_3204_3l_init_param
+	beq P3212_ID2,mouse_3212_init_param
+	beq PKA8_ID2,mouse_ka8_init_param_check
+	beq P6520A_ID2,mouse_p6520_init_param
+	branch mouse_init_sensor
+	
+mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init,regc
+	call mouse_sensor_wr_seq
+	branch mouse_dpi_config
+
+mouse_8009_init_param:
+	setarg 0x16
+	call twspi_read
+	sub pdata,0xbd,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x19
+	call twspi_read
+	sub pdata,0x55,null 
+	nbranch mouse_init_sunt,zero
+	setarg 0x1b
+	call twspi_read
+	sub pdata,0x1d,null 
+	nbranch mouse_init_sunt,zero
+	jam P8009,mem_config_sensor_type
+	arg mem_sensor_8009_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_3205_3t_init_param:
+	jam P3205,mem_config_sensor_type
+	arg mem_sensor_3205_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	setarg 0x0943
+	call twspi_write
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3204_3l_init_param:
+	jam P3204,mem_config_sensor_type
+	arg mem_sensor_3204_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init,regc
+	call mouse_sensor_wr_seq
+	arg mem_sensor_32xx_init_1,regc
+	branch mouse_sensor_wr_seq	
+
+mouse_3212_init_param:
+	jam P3212,mem_config_sensor_type
+	arg mem_sensor_3212_init,regc
+	branch mouse_sensor_wr_seq
+
+mouse_ka8_init_param_check:	
+	call mouse_sensor_disable_wp
+	setarg 0x9a5b
+	call twspi_write
+	setarg 0x0d
+	call twspi_read
+	sub pdata,0x12,null
+	branch mouse_ka8ul_init_param,zero
+	sub pdata,0x0a,null
+	nbranch mouse_ka8hd_sensor_judge,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xe5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0xa5,null
+	branch mouse_ka8ul_init_param,zero
+	call mouse_enable_ka8_sensor_wp
+mouse_ka8_init_param:
+	jam KA8,mem_config_sensor_type	
+	rtn
+mouse_ka8ul_init_param:
+	jam KA8_UL,mem_config_sensor_type	
+	arg mem_sensor_ka8ul_init,regc
+	branch mouse_sensor_wr_seq
+mouse_ka8hd_sensor_judge:
+	sub pdata,0x10,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x0e
+	call twspi_read
+	sub pdata,0xc5,null
+	nbranch mouse_init_sensor,zero
+	setarg 0x10
+	call twspi_read
+	sub pdata,0x38,null
+	nbranch mouse_init_sensor,zero
+mouse_ka8hd_init_param:
+	call mouse_enable_ka8_sensor_wp
+	jam KA8_HD,mem_config_sensor_type
+	rtn
+mouse_enable_ka8_sensor_wp:
+	setarg 0x005b
+	call twspi_write
+	branch mouse_sensor_enable_wp
+	
+mouse_p6520_init_param:
+	jam P6520,mem_config_sensor_type
+	arg mem_sensor_p6520_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_init_p3065:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq P3065_XY_ID2,mouse_p3065xy_init_param
+	beq P3065_ID2,mouse_p3065_init_param
+	branch mouse_init_sensor
+	
+mouse_p3065_init_param:	
+	jam P3065,mem_config_sensor_type
+	rtn
+
+mouse_p3065xy_init_param:
+	jam P3065_XY,mem_config_sensor_type
+	rtn
+	
+mouse_ka8g2_id2_judge:
+	call mouse_sensor_poweron
+	fetch 1,mem_sensor_id2
+	beq PKA8G2_ID2,mouse_ka8g2_init_param
+	branch mouse_init_p32xx_id2_judge
+mouse_ka8g2_init_param:
+	jam KA8G2,mem_config_sensor_type
+	arg mem_sensor_ka8g2_init,regc
+	branch mouse_sensor_wr_seq
+	
+mouse_sensor_enable_wp:
+	setarg 0x0009
+	branch twspi_write
+mouse_sensor_disable_wp:
+	setarg 0x5a09
+	branch twspi_write
+
+mouse_sensor_wr_seq:
+	ifetch 2,regc
+	arg 0xffff,temp
+	isub temp,null
+	rtn zero
+	call twspi_write
+	increase 2,regc
+	branch mouse_sensor_wr_seq
+
+mouse_sensor_reset:
+	setarg 0x8006		// reset to factory settings
+mouse_sensor_reset_end:
+	call twspi_write
+	nop 12000
+	rtn
+	
+mouse_sensor_poweron:
+	bpatch patch1a_4,mem_patch1a
+	call mouse_sensor_spi_init
+mouse_sensor_poweron_next:
+	call mouse_sensor_reset
+	arg mem_sensor_poweron_init,regc
+mouse_sensor_poweron_end:
+	call mouse_sensor_wr_seq
+	branch mouse_dpi_config
+
+mouse_sensor_powerdown:
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+mouse_sensor_powerdown_end:
+	setarg 0x0806
+	branch twspi_write
+/*********sensor init*************/	
+
+
+
+/*********sensor motion*************/
+mouse_check_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq P3205,mouse_p32xx_sensor_motion
+	beq P3065,mouse_p32xx_sensor_motion
+	beq KA8,mouse_p32xx_sensor_motion
+	beq P3204,mouse_p32xx_sensor_motion
+	beq P3212,mouse_p3212_sensor_motion
+	beq P3065_xy,mouse_p32xx_sensor_motion
+	beq P8009,mouse_p8009_sensor_motion	
+	beq KA8G2,mouse_pka8g2_sensor_motion
+	branch mouse_p32xx_sensor_motion
+
+
+mouse_p32xx_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p32xx_sensor_motion_2
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p32xx_sensor_motion_2:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_p3065_judge   
+mouse_p32xx_sensor_motion_1:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	fetch 1,mem_mouse_x
+	call mouse_data_extsign
+	store 2,mem_mouse_x
+	fetch 1,mem_mouse_y
+	call mouse_data_extsign
+	store 2,mem_mouse_y
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion32xx_6clk_direction_selection
+	beq MOUSE_9CLK_ANGLE,mouse_motion32xx_9clk_direction_selection
+	beq MOUSE_12CLK_ANGLE,mouse_motion32xx_12clk_direction_selection
+	beq MOUSE_3CLK_ANGLE,mouse_motion32xx_3clk_direction_selection
+	rtn
+
+mouse_p3065_judge:
+	beq P3065_ID1,mouse_p32xx_sensor_motion_1
+	branch mouse_twspi_reset
+	
+mouse_motion32xx_6clk_direction_selection:
+	call mouse_motion_6clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_9clk_direction_selection:
+	call mouse_motion_9clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_12clk_direction_selection:
+	call mouse_motion_12clk_direction_dispose
+	branch mouse_sensor_sdio_low
+mouse_motion32xx_3clk_direction_selection:
+	call mouse_motion_3clk_direction_dispose
+	branch mouse_sensor_sdio_low
+
+
+	
+mouse_p3212_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_p3212_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_p3212_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne P32XX_ID1,mouse_twspi_reset
+mouse_p3212_sensor_motion_2:
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	call mouse_read_sensor_common
+	call mouse_read_3212sensor_xy_high
+	store 1,mem_mouse_xy_h
+	rshift4 pdata,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_x+1
+	fetch 1,mem_mouse_xy_h
+	and pdata,0x0f,pdata
+	call mouse_data_extsign_bit3
+	store 1,mem_mouse_y+1
+	fetch 1,mem_config_sensor_angle
+	beq MOUSE_6CLK_ANGLE,mouse_motion_6clk_direction_dispose
+	beq MOUSE_9CLK_ANGLE,mouse_motion_9clk_direction_dispose
+	beq MOUSE_12CLK_ANGLE,mouse_motion_12clk_direction_dispose
+	beq MOUSE_3CLK_ANGLE,mouse_motion_3clk_direction_dispose
+	rtn
+
+mouse_read_3212sensor_xy_high:
+	setarg 0x12
+	branch twspi_read
+
+mouse_pka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+mouse_pka8g2_sensor_motion_1:
+	branch mouse_p3212_sensor_motion_2
+
+
+mouse_p8009_sensor_motion:
+	call mouse_clear_sensor_data
+	disable user
+	setarg PAN_REG_MOTION_STAUS
+	call twspi_read
+	rtnbit0 7
+	setarg PAN_REG_OPRATION_STATE
+	call twspi_read
+	branch mouse_p32xx_sensor_motion_1+3,blank
+	setarg 0
+	store 6,mem_mouse_x
+	rtn
+
+
+
+mouse_sensor_set_angle:
+	fetch 1,mem_sensor_angle_default
+	store 1,mem_config_sensor_angle
+	fetch 1,mem_select_sensor_angle_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_select_sensor_angle_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_get_bit
+	call mouse_sensor_switch_angle,true
+	branch mouse_gpio_config_input_pd
+mouse_sensor_switch_angle:
+	fetch 1,mem_sensor_angle_switch
+	store 1,mem_config_sensor_angle
+	rtn
+	
+mouse_motion_6clk_direction_dispose:
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	branch enable_user
+mouse_motion_12clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	branch enable_user
+mouse_motion_9clk_direction_dispose:
+	fetch 2,mem_mouse_y
+	sub pdata,0,pdata
+	store 2,mem_mouse_y
+	fetch 2,mem_mouse_x
+	sub pdata,0,pdata
+	store 2,mem_mouse_x
+	call mouse_sensor_data_swap_places
+	branch enable_user
+mouse_motion_3clk_direction_dispose:
+	call mouse_sensor_data_swap_places
+	branch enable_user
+
+mouse_sensor_data_swap_places:
+	fetch 2, mem_mouse_y
+	fetcht 2,mem_mouse_x
+	store 2,mem_mouse_x
+	storet 2,mem_mouse_y
+	rtn
+
+	
+mouse_clear_sensor_data:
+	fetch 1,mem_mouse_move_flag
+	call mouse_read_sensor_common,blank
+	jam 1,mem_mouse_move_flag
+	rtn
+
+mouse_clear_sensor_data_by_reset:
+	jam 1,mem_mouse_clear_sensor_data_flag
+	call le_set_config_more_data
+mouse_init_sensor_reset:
+	branch mouse_init_sunt
+
+mouse_data_xy_release:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtnne 1
+	setarg 0
+	store 1,mem_mouse_long_mult_flag
+	store 4,mem_mouse_x
+	branch mouse_init_sensor_reset
+
+mouse_data_extsign:
+	rtnbit0 7
+mouse_data_overflow:
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+mouse_data_extsign_bit3:
+	rtnbit0 3
+	arg 0xf0,temp
+	ior temp,pdata
+	rtn
+
+mouse_read_sensor_common:
+	arg PAN_REG_DELTA_X,pdata
+	call twspi_read
+	store 2,mem_mouse_x
+	arg PAN_REG_DELTA_Y,pdata
+	call twspi_read
+	store 2,mem_mouse_y
+	rtn
+
+	/* sdio high will cost extra 9mA */
+mouse_sensor_sdio_low:
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	rtn true
+	setarg 0x0a
+	call twspi_read
+	nop 1000
+	branch mouse_sensor_sdio_low
+
+mouse_set_sdio_high:		// make sdio high to make 100uA less
+	setarg 0x8100
+	branch twspi_write
+	
+/****************************sensor*************************/
+
+/*******************mouse fast connect******************/
+mouse_buletooth_fast_conn_init:
+	jam 0xff,mem_mouse_bluetooth_fast_conn_flag
+	fetch 1,mem_mouse_bluetooth_type
+	bbit1 MODE_4_MOUSE,mouse_ble_fast_conn_init
+	bbit1 MODE_3_MOUSE,mouse_bt_fast_conn_init
+mouse_ble_fast_conn_init:	
+	jam 0x34,mem_xrecord_mode
+	setarg 0x0f0f0f
+	store 3,mem_le_lap
+	store 3,mem_le_lap+3
+	branch mouse_start_reconnect
+
+mouse_bt_fast_conn_init:
+	jam 0x33,mem_xrecord_mode
+	arg mem_mouse_compare_addr_ff,contr
+	call mouse_load_bt_device
+	branch mouse_start_reconnect
+
+mouse_buletooth_fast_conn_end:
+	bpatch patch1a_5,mem_patch1a
+	call mouse_select_reconn_device
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_device_flag
+	beq MODE_BT_DEVICE1,mouse_device1_check_auto_discover
+	beq MODE_BT_DEVICE2,mouse_device2_check_auto_discover
+	rtn
+mouse_device1_check_auto_discover:
+	fetch 6,mem_device1_addr
+	branch mouse_device_check_auto_discover
+mouse_device2_check_auto_discover:
+	fetch 6,mem_device2_addr
+mouse_device_check_auto_discover:	
+	fetcht 6,mem_mouse_compare_addr_ff
+	isub temp,null
+	branch mouse_start_discovery ,zero
+	branch mouse_start_reconnect_device
+
+mouse_bt_fast_conn_send_device_name:
+	call mouse_bluetooth_fast_conn_disable
+	fetch 1,mem_local_name_length
+	increase 3,pdata
+	copy pdata,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x04a1		// report id = 4
+	istore 2,contw
+	fetch 1,mem_local_name_length
+	increase 1,pdata
+	copy pdata,loopcnt
+	arg mem_local_name_length,contr
+	branch memcpy
+
+mouse_bluetooth_fast_conn_disable:
+	jam 0x5a,mem_mouse_bluetooth_fast_conn_flag
+	rtn	
+/*******************mouse fast connect******************/
+
+mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_RECONNECT,mouse_cancel_reconnect
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	branch mouse_stop_discovery
+
+mouse_disconnect:
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,app_ble_disconnect
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_CONNECTED,app_bt_disconnect
+	rtn
+	
+mouse_cancel_reconnect:
+	call mouse_bt_cannel_reconn_enable
+	branch check_51cmd_bb_reconn_cancel
+
+mouse_check_125Hz:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT_125Hz
+mouse_bluetooth_125Hz:
+	nbranch mouse_bluetooth_125hz_clear,user
+	fetch 1,mem_bluetooth_125hz_cnt
+	increase 1,pdata
+	and_into 0x0f,pdata
+	store 1,mem_bluetooth_125hz_cnt
+	nrtn blank
+mouse_bluetooth_125hz_clear:
+	jam 0,mem_bluetooth_125hz_cnt
+	disable user
+	rtn
+
+
+mouse_current_mult_update:
+	fetch 1,mem_sensor_motion_gpio
+	rtnne GPIO_DISABLE
+	jam 0,mem_lpm_mult
+	jam 30,mem_mouse_current_mult_timer
+	rtn
+
+
+mouse_priority_bb_event:	
+	bpatch patch1a_6,mem_patch1a
+	copy regc,pdata
+	beq BT_EVT_LE_CONNECTED,mouse_le_bb_event_connected
+	beq BT_EVT_BB_CONNECTED,mouse_bb_event_connected
+	beq BT_EVT_LE_DISCONNECTED,mouse_le_bb_disconnected
+	beq BT_EVT_BB_DISCONNECTED,mouse_bb_disconnected
+	beq BT_EVT_SETUP_COMPLETE,mouse_bt_event_setup_complete
+	beq BT_EVT_BUTTON_LONG_PRESSED,mouse_bb_event_discovery_btn
+	beq BT_EVT_HID_HANDSHAKE,mouse_bt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,app_hid_connected
+	beq BT_EVT_RECONN_FAILED,mouse_bb_event_reconn_failed
+	beq BT_EVT_RECONN_PAGE_TIMEOUT,mouse_bb_event_reconn_timeout
+	beq BT_EVT_SWITCH_NOT_ACCEPT,app_bt_role_switch	
+	beq BT_EVT_SWITCH_SUCCESS_MASTER,mouse_enter_sniff_check
+	beq BT_EVT_SNIFF_NOT_ACCEPT,mouse_sniff_not_accept
+	beq BT_EVT_PINCODE_REQ,mouse_bb_event_pincode
+	beq BT_EVT_REMOTE_UNSNIFF,app_start_auto_sniff
+	beq BT_EVT_LE_PAIRING_SUCCESS,mouse_le_pairing_success
+	beq BT_EVT_LE_ENC_INFO,mouse_le_enc_info
+	beq BT_EVT_LE_START_ENC,mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PAIRING_COMPLETE,mouse_le_pairing_complete
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,mouse_le_conn_param_update_rsp_recieved
+	beq BT_EVT_VIRTUAL_CABLE_UNPLUG,mouse_irtual_cable_unplug
+	beq BT_EVT_24G_PAIRING_COMPLETE,mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,mouse_24g_attempt_fail
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,mouse_24g_attempt_success
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,mouse_le_parse_conn_param_accepted
+	rtn
+
+/***************************le*************************/
+mouse_le_bb_event_connected:
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	jam 1,mem_mouse_le_bb_connected_flag
+	call mouse_24g_first_store_reconn_info
+	fetch 1,mem_mouse_le_reconnect_flag
+	nbranch mouse_le_bb_event_connected_next,blank
+	jam 0x14,mem_mouse_send_secutiry_request_timer
+mouse_le_bb_event_connected_next:
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	set0 APP_DISC_BY_BUTTON ,pdata
+	store APP_DISC_RSN_SIZE,mem_app_disconn_reason_flag
+	jam 0,mem_mouse_direct_timer
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_no_data_timer_init
+	branch mouse_stop_discovery
+
+mouse_le_bb_disconnected:
+	jam 0,mem_mouse_le_bb_connected_flag
+	setarg LE_INTERVAL_7_5MS
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next
+	setarg LE_INTERVAL_8_75MS
+mouse_le_bb_disconnected_next:
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	jam 0,mem_mouse_clear_sensor_data_flag
+	call le_clr_config_more_data
+	branch mouse_bb_disconnected
+
+mouse_le_pairing_success:
+	arg LL_PAIRING_SUCCESS_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enc_info:
+mouse_updata_le_param:
+	jam BT_CMD_LE_UPDATE_CONN,mem_fifo_temp
+	branch ui_ipc_send_cmd
+	
+mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,mouse_le_ll_reconn_start_encryt
+	branch mouse_le_ll_enable_start_enc_flag
+mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 20,mem_le_start_encrypt_timer
+mouse_le_ll_enable_start_enc_flag:
+	arg LL_START_ENC_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_enable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset1 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+
+mouse_le_pairing_complete:
+	branch app_ble_store_reconn_info
+
+mouse_le_conn_param_update_rsp_recieved:
+	fetch 2,mem_le_l2cap_signaling_conn_param_update_rsp_result
+	rtneq BLE_SIGNALING_CONNECT_PARAMETER_UPDATE_ACCEPTED
+	fetch 1,mem_le_tsniff
+	rshift2 pdata,pdata
+	sub pdata,LE_INTERVAL_15MS,null
+	rtn positive
+	setarg LE_INTERVAL_11_25MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	call mouse_updata_le_param
+mouse_le_conn_param_lpm_disable:
+	jam LE_LPM_DISABLE,mem_mouse_le_conn_param_reject
+	rtn
+
+mouse_le_conn_param_lpm_enable:
+	jam LE_LPM_ENABLE,mem_mouse_le_conn_param_reject
+	rtn
+
+mouse_le_bb_event_connect_complete:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_att_handle
+	sub pdata,34,pdata
+	nrtn zero
+	jam 0,mem_le_start_encrypt_timer
+mouse_le_write_enable:	
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	fetch 1,mem_le_new_connslavelatency
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+mouse_le_lpm_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+	
+/*
+mouse_le_disable_connect_flag:
+	fetch 1,mem_le_connect_status_flag
+	qset0 pdata
+	store 1,mem_le_connect_status_flag
+	rtn
+*/
+mouse_le_clean_connect_flag:
+	jam 0,mem_le_connect_status_flag
+	rtn
+
+/*
+mouse_le_reconn_write_enable_timer_reinit:
+	fetch 1,mem_mouse_le_reconnect_flag
+	rtn blank
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtneq 0x03
+	jam 2,mem_le_start_encrypt_timer
+	rtn
+*/
+mouse_le:
+	bpatch patch1a_7,mem_patch1a
+	call le_fifo_check_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_le_next
+	fetch 1,mem_le_connect_status_flag
+	and pdata,0x03,pdata
+	rtnne 0x03
+mouse_le_next:	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_le_send_empty_packet
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_le_send_empty_packet
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_le_send_mouse_data
+	fetch 1,mem_customer_key
+	beq 1,mouse_le_send_keyboard_package_data		
+mouse_le_send_mouse_data:
+	branch mouse_fill_mouse_data_le
+
+
+mouse_le_send_keyboard_package_data:
+	fetch 1,mem_customer_data_trigger
+	branch mouse_le_release_keyboard_data,blank
+	fetch 8,mem_customer_key_press+1
+mouse_fill_keyboard_package_data_le:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,mouse_fill_multimedia_key_data_le
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_fill_systemctrl_key_data_le
+	jam 8,mem_le_data_len
+	fetcht 2,mem_le_keyboard_handle
+	branch mouse_fill_data_le
+	
+
+mouse_le_release_keyboard_data:
+	fetch 8,mem_customer_key_release+1
+	branch mouse_fill_keyboard_package_data_le
+
+mouse_fill_multimedia_key_data_le:
+	jam 3,mem_le_data_len
+	fetcht 2,mem_le_multimedia_handle
+	branch mouse_fill_data_le
+
+mouse_fill_systemctrl_key_data_le:
+	jam 2,mem_le_data_len
+	fetcht 2,mem_le_systemctrl_handle
+	branch mouse_fill_data_le
+
+mouse_fill_battery_level_le:
+	arg 1,rega
+	fetcht 2,mem_le_battery_level_handle
+	call le_att_malloc_tx_notify
+	fetch 1,mem_le_battery_level_percentage
+	istore 1,contw
+	rtn
+
+
+mouse_le_send_empty_packet:
+	setarg 0
+	store 7,mem_mouse_key
+mouse_fill_mouse_data_le:
+	jam 7,mem_le_data_len
+	fetch 7,mem_mouse_key
+	store 7,mem_pdatatemp
+	fetcht 2,mem_le_notify_handle
+	branch mouse_fill_data_le
+
+mouse_fill_data_le:
+	fetch 1,mem_le_data_len
+	copy pdata,rega
+	call le_att_malloc_tx_notify
+	fetcht 1,mem_le_data_len
+	copy temp,loopcnt
+	arg mem_pdatatemp,contr
+	branch memcpy	
+
+mouse_check_51cmd_adv:
+	jam 0,mem_mouse_le_reconnect_flag
+	fetch 3,mem_le_adv_ind
+	store 3,mem_le_adv_data+4
+	call mouse_le_check_adv_flag
+	setarg ADV_FLAG_BREDR_NOT_SUPPORTED |ADV_FLAG_LIMITED_DISCOVERABLE
+	istore 1,contr
+	arg mem_le_adv_swift_pair,contr
+	call mouse_le_adv_data_update
+	branch check_51cmd_adv
+
+mouse_le_check_adv_flag:
+	arg mem_le_adv_data,rega
+mouse_le_check_adv_flag_loop:
+	ifetch 1,rega	//length
+	rtn blank
+	iadd contr,rega
+	ifetch 1,contr	//type
+	rtneq 0x01
+	branch mouse_le_check_adv_flag_loop
+	
+mouse_le_adv_data_update:
+	arg mem_le_adv_data+11,contw
+	arg 19,loopcnt
+	call memcpy
+	branch le_modified_name_adv
+	
+/***************************le*************************/
+
+
+/***********************bt****************************/	
+mouse_bt_sniff_param_interval_setup:
+	setarg CLASSIC_INTERVAL_7_5MS
+	store 2,mem_sniff_param_interval
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_BT_125Hz
+	setarg CLASSIC_INTERVAL_8_75MS
+	store 2,mem_sniff_param_interval
+	rtn
+
+mouse_bb_event_connected:
+	jam 0,mem_mouse_long_mult_flag
+	call mouse_init_sensor_reset
+	call mouse_24g_first_store_reconn_info
+	branch mouse_stop_discovery
+
+mouse_bb_disconnected:
+	jam 0,mem_mouse_enter_sniff_count
+	jam 0,mem_mouse_bt_send_first_package_flag
+	call mouse_bt_sniff_param_interval_setup
+	call mouse_bb_discon_clear_stack
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BLE,mouse4_0_event_bb_disconn
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	bbit1 APP_DISC_AFTER_PAIRING,mouse_event_light_state_pairing
+	bbit1 APP_DISC_AFTER_RECONN,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_bb_discon_clear_stack:
+	setarg 0
+	store 8,mem_wheel_tb_old_pinlevel
+	istore 4,contw             //clean wheel statue
+	jam 0,mem_mouse_move_flag
+	jam APP_HANDSHAKE_NULL,mem_app_handshake_flag
+	jam 0,mem_ltk_exists
+	rtn
+
+mouse4_0_event_bb_disconn:
+	call mouse_le_clean_connect_flag
+	fetch APP_DISC_RSN_SIZE,mem_app_disconn_reason
+	bbit1 APP_DISC_BY_BUTTON,app_disconn_reason_clear
+	branch mouse_app_enter_hibernate
+
+
+mouse_event_light_state_pairing:
+	bbit1 APP_DISC_AFTER_HANDSHAKE,mouse_event_light_state_hibernate
+	bbit1 APP_DISC_AFTER_SNIFF,mouse_event_light_state_hibernate
+	branch mouse_start_discovery
+mouse_event_light_state_hibernate:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
+	call app_disconn_reason_clear
+
+	call mouse_key_check_once	//mult_key pair
+	call mouse_commbination_key_process
+	fetch 1,mem_commbination_key_statue
+	beq COMMBINATION_KEY_STATE_DOWN,mouse_delay_enter_hibernata
+	
+	fetch 1,mem_mouse_bluetooth_reconnect_timeout
+	nrtn blank
+	branch mouse_app_enter_hibernate
+
+
+mouse_bt_event_setup_complete:
+	rtn
+
+mouse_bt_send_first_package_timer_init:
+	jam 4,mem_mouse_bt_send_first_package_timer
+	rtn
+
+mouse_bt_hid_handshake:
+	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
+	call app_lpm_mult_enable
+	call app_bt_store_reconn_info
+	setarg 0
+	store 2,mem_discovery_timeout_timer_count
+	store 1,mem_hid_handshake_timer_count
+	call mouse_bt_send_first_package_timer_init
+	branch app_bt_enter_sniff
+
+mouse_bt_hid_handshake_boot_check:	
+	jam 0,mem_mouse_bt_boot_mode
+	fetch 1,mem_l2cap_rcv_hidtype
+	isolate1 0,pdata
+	rtn true
+	jam 1,mem_mouse_bt_boot_mode	//boot mode
+	rtn
+
+	
+mouse_bb_event_reconn_timeout:
+mouse_bb_event_reconn_failed:
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BTN_DOWN
+	rtnbit1 UI_STATE_BT_DISCOVERY
+	rtnbit1 UI_STATE_BLE_ADV
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+
+mouse_enter_sniff_check:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtnne 2
+	jam 0,mem_mouse_enter_sniff_count
+	call mouse_bt_sniff_param_interval_setup
+	call mouse_bt_send_first_package_timer_init
+	branch app_bt_enter_sniff
+
+mouse_sniff_not_accept:
+	fetch 1,mem_mouse_enter_sniff_count
+	rtneq 2
+	increase 1,pdata
+	store 1,mem_mouse_enter_sniff_count
+	jam 0x12,mem_sniff_param_interval	//89Hz
+	call mouse_bt_send_first_package_timer_init
+	branch app_bt_enter_sniff
+
+mouse_bb_event_pincode:
+	call pincode_reinit
+	branch app_bt_set_pincode
+
+mouse_irtual_cable_unplug:
+	setarg 0x01
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	branch mouse_unplug_clean_bdaddr
+
+mouse_irtual_cable_unplug1:
+	setarg -1
+	store 6,mem_plap
+	jam REC_3_MODE,mem_record_bt_mode
+	jam 0xff,mem_mouse_bluetooth_fast_conn_flag
+	call mouse_before_store_reconn_info
+	jam 0xff,mem_device1_type
+	branch mouse_store_device_info_delay
+
+mouse_bt:
+	bpatch patch1b_0,mem_patch1b
+	rtn attempt
+	fetch 1,mem_app_handshake_flag
+	rtn blank
+	call l2cap_malloc_is_fifo_nearly_full
+	nrtn blank
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_bt_fast_conn_send_device_name	
+	fetch 1,mem_mouse_clear_sensor_data_flag
+	call mouse_clear_sensor_data_by_reset,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_24G_PAIRING_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_SELECT_DEVICE_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,mouse_send_empty_data
+	bbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,mouse_send_empty_data
+	call mouse_motion
+	call mouse_check_125Hz
+	nrtn user
+	call mouse_current_mult_update
+	call mouse_data_xy_release
+	call mouse_wheel_trigger
+	fetch 1,mem_mouse_bt_boot_mode
+	beq 1,mouse_send_data_boot_mode	//boot
+	fetch 1,mem_mouse_bt_send_first_package_flag
+	rtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_send_data
+	fetch 1,mem_customer_key
+	beq 1,mouse_bt_send_keyboard_packet
+mouse_send_data:
+	arg 9,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1
+	istore 2,contw
+	fetch 7,mem_mouse_key
+	istore 7,contw
+	rtn
+
+mouse_send_data_boot_mode:
+	fetch 1,mem_mouse_key
+	store 1,mem_mouse_bt_boot_data
+	fetch 1,mem_mouse_x
+	istore 1,contw
+	fetch 1,mem_mouse_y
+	istore 1,contw
+	fetch 2,mem_mouse_z
+	istore 2,contw
+	arg 7,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x02a1		// pid:02  mouse
+	istore 2,contw
+	fetch 5,mem_mouse_bt_boot_data
+	istore 5,contw
+	rtn
+
+mouse_send_empty_data:
+	setarg 0
+	store 7,mem_mouse_key
+	branch mouse_send_data
+
+
+mouse_bt_send_keyboard_packet:
+	fetch 1,mem_customer_data_trigger
+	branch mouse_bt_release_keyboard_data,blank
+	fetch 8,mem_customer_key_press+1
+mouse_bt_send_keyboard_data:
+	store 8,mem_pdatatemp
+	fetch 1,mem_customer_key_press
+	beq KB_MULTIKEY_REPORT_ID,mouse_bt_send_multimedia_key_data
+	beq KB_SYSTEM_CONCTRL_REPORT_ID,mouse_bt_send_systemctrl_key_data
+	arg 10,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x01a1		// pid:01  standard key
+	istore 2,contw
+	fetch 8,mem_pdatatemp
+	istore 8,contw
+	rtn
+
+mouse_bt_send_multimedia_key_data:
+	arg 4,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x03a1		// pid:03  multimedia key
+	istore 2,contw
+	fetch 2,mem_pdatatemp
+	istore 2,contw
+	rtn	
+
+mouse_bt_send_systemctrl_key_data:
+	arg 3,rega
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_int_remote_cid
+	istore 2,contw
+	setarg 0x04a1		// pid:04  systemctrl key	
+	istore 2,contw
+	fetch 1,mem_pdatatemp
+	istore 1,contw
+	rtn		
+
+mouse_bt_release_keyboard_data:
+	fetch 8,mem_customer_key_release+1
+	branch mouse_bt_send_keyboard_data	
+/*******************bt****************************/
+
+
+
+/********************mouse 100ms timer*****************/
+mouse_bb_event_timer:
+	bpatch patch1b_1,mem_patch1b
+	call mouse_adc_read
+	call mouse_low_voltage_led_timer
+	//24g
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+	//led
+	call mouse_device_poweron_timer
+	call mouse_dpi_led_blink_delay_timer
+	//poll
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call mouse_commbination_key_process
+	call mouse_check_discovery_timeout_timer
+	//ble
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call mouse_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+	//bt
+	call mouse_check_hid_handshake_timer
+	call mouse_bt_check_sniff_req_timeout_timer
+	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+	call mouse_current_mult_update_timer
+	call mouse_wheel_trigger_timer
+	call mouse_store_information_delay_timer
+	branch mouse_check_no_data_timeout_timer
+
+
+
+
+mouse_bt_discovery_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_bt_discovery_by_pb_button
+	rtn
+
+mouse_bt_discovery_by_pb_button:
+	fetch 1,mem_select_device_button_statue
+	rtnne PB_BUTTON_STATE_DOWN
+	arg mem_bt_discovery_count,regc
+	arg mouse_long_button_bt_discovery,regb
+	branch timer_single_step
+		
+mouse_long_button_bt_discovery:
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_enable_function_flag
+	call app_evt_button_long_pressed
+	branch mouse_bb_event_discovery_btn
+
+		
+mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch mouse_commbination_key_start
+
+mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch mouse_commbination_key_down,zero
+mouse_commbination_key_up:
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_combination_ui_button_count	//combination key timer init 
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_UP
+	jam COMMBINATION_KEY_STATE_UP,mem_commbination_key_statue	
+	rtn
+		
+mouse_commbination_key_down:
+	call mouse_combination_ui_timer
+	fetch 1,mem_commbination_key_statue
+	rtneq COMMBINATION_KEY_STATE_DOWN
+	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
+	branch check_51cmd_bb_reconn_cancel
+
+
+mouse_combination_ui_timer:
+	arg mouse_24g_start_pair_mode,regb
+	arg mem_combination_ui_button_count,regc
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,timer_single_step
+	arg mouse_long_button_bt_discovery,regb
+	call timer_single_step
+	fetch 1,mem_combination_ui_button_count
+	beq 1,mouse_bt_discovery_button_down_enable	// ble release key press
+	rtn
+
+
+
+mouse_check_discovery_timeout_timer:	
+	arg mem_mouse_discovery_timer,regc
+	arg mouse_check_discovery_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_discovery_timeout:
+	call mouse_stop_discovery
+	branch mouse_app_enter_hibernate
+
+
+mouse_check_direct_timeout_timer:	
+	arg mem_mouse_direct_timer,regc
+	arg mouse_check_direct_timeout,regb
+	call timer_single_step_2B
+	fetch 1,mem_mouse_direct_timer
+	beq 1,app_ble_stop_direct_adv
+	rtn
+
+mouse_check_direct_timeout:
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,mouse_buletooth_fast_conn_end
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,mouse_start_discovery
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_bb_event_reconn_timeout
+	branch mouse_app_enter_hibernate
+	
+mouse_le_enable_att_list_timer:
+	arg mem_le_start_encrypt_timer,regc
+	arg mouse_le_write_enable,regb
+	branch timer_single_step
+
+mouse_le_send_smp_security_request_timer:
+	fetch 1,mem_mouse_le_bb_connected_flag
+	rtn blank
+	arg mem_mouse_send_secutiry_request_timer,regc
+	arg mouse_le_pairing_sm_start_check,regb
+	branch timer_single_step
+mouse_le_pairing_sm_start_check:
+	fetch 1,mem_mouse_le_reconnect_flag
+	nrtn blank
+	fetch 1,mem_le_pairing_state
+	rtnne FLAG_LE_PAIRING_NULL
+	branch le_pairing_sm_start
+
+mouse_le_battery_updata_timer:
+	arg mem_le_battery_level_updata_timer,regc
+	arg mouse_le_battery_level_updata,regb
+	branch timer_single_step
+
+mouse_le_battery_level_updata:
+	fetch 2,mem_le_battery_level_updata_timer_init
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_fill_battery_level_le
+	
+mouse_le_enable_att_list:	
+	fetch 1,mem_le_connect_status_flag
+	rtnbit1 LL_PAIRING_SUCCESS_FLAG
+	call mouse_updata_le_param
+	arg WRITE_REQ_ENABLE_FLAG,queue
+	branch mouse_le_enable_connect_flag
+
+mouse_check_hid_handshake_timer:
+	arg mem_hid_handshake_timer_count,regc
+	arg mouse_bt_hid_handshake,regb
+	branch timer_single_step
+	
+mouse_bt_check_sniff_req_timeout_timer:
+	arg mem_mouse_bt_send_first_package_timer,regc
+	arg mouse_bt_send_first_package,regb
+	branch timer_single_step
+mouse_bt_send_first_package:
+	jam 1,mem_mouse_bt_send_first_package_flag
+	rtn
+
+mouse_check_reconnect_delay_long_sleep:
+	arg mem_mouse_bluetooth_reconnect_timeout,regc
+	arg mouse_app_enter_hibernate,regb
+	branch timer_single_step
+
+
+mouse_current_mult_update_timer:
+	arg mem_mouse_current_mult_timer,regc
+	arg mouse_current_mult_reinit,regb
+	branch timer_single_step
+mouse_current_mult_reinit:
+	fetch 1,mem_lpm_mult_init
+	store 1,mem_lpm_mult
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_check_no_data_timeout_timer:	
+	fetch 1,mem_usb_addr
+	rtnbit1 7
+	arg mem_mouse_no_data_timer,regc
+	arg mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+
+mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_hibernate_set
+	branch mouse_disconnect
+	
+mouse_no_data_timer_init:
+	fetch 2,mem_mouse_no_data_timeout
+	store 2,mem_mouse_no_data_timer
+	rtn
+
+mouse_store_information_delay_timer:
+	arg mem_store_information_delay_timer,regc
+	arg mouse_store_device_info_check,regb
+	branch timer_single_step
+
+mouse_store_device_info_check:
+	call mouse_store_device_info
+	fetch 1,mem_mouse_need_soft_reset
+	nbranch mouse_soft_reset,blank
+	rtn
+
+mouse_bb_event_discovery_btn:
+	isolate1 mark_24g,mark
+	call mouse_24g_stop,true
+	call mouse_disconnect
+	call mouse_le_clean_connect_flag
+	branch mouse_start_discovery
+	
+mouse_start_discovery:
+	bpatch patch1b_2,mem_patch1b
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,mouse_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+mouse_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_device_poweron_timer_count
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_check_51cmd_adv,true
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	call mouse_low_voltage_led_blink_disable
+	branch mouse_discover_setting_led_gpio
+
+
+mouse_stop_discovery:
+	bpatch patch1b_3,mem_patch1b
+	arg MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG,queue
+	call mouse_disable_function_flag
+	jam 0,mem_mouse_bluetooth_reconnect_timeout
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_stop_le_adv,true
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_3_MOUSE,pdata
+	call mouse_stop_bt3_discovery,true
+	branch mouse_device_led_off
+mouse_stop_le_adv:
+	jam 0,mem_mouse_direct_timer
+	branch check_51cmd_stop_adv
+mouse_stop_bt3_discovery:
+	setarg 0
+	store 2,mem_mouse_discovery_timer
+	branch check_51cmd_stop_discovery
+
+mouse_store_remote_bdaddr:
+	bpatch patch1b_4,mem_patch1b
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_STORE_EEPROM_FLAG
+	call mouse_device_poweron_timer_init
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_check_device_addr
+mouse_unplug_clean_bdaddr:
+	call mouse_before_store_reconn_info
+	branch mouse_store_device_info_delay
+
+	
+mouse_check_device_addr:
+	fetch 1,mem_record_bt_mode
+	beq REC_4_MODE,mouse_check_le_device_addr
+	beq REC_3_MODE,mouse_check_bt_device_addr
+	rtn
+mouse_check_le_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_le_plap
+	branch mouse_check_bt_device_addr_common
+mouse_check_bt_device_addr:
+	store 1,mem_device_addr_temp
+	fetch 6,mem_plap
+mouse_check_bt_device_addr_common:
+	store 6,mem_device_addr_temp+1
+	fetch 7,mem_device_addr_temp
+	arg mem_device1_type,contr
+	arg 3,loopcnt
+mouse_check_device_addr_end:
+	ifetcht 7,contr
+	isub temp,null
+	branch mouse_clean_addr,zero
+	increase 22,contr
+	loop mouse_check_device_addr_end
+	rtn
+mouse_before_store_reconn_info:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	fetch 1,mem_record_bt_mode
+	istore 1,rega
+	beq REC_4_MODE,mouse_store_le_device
+	beq REC_3_MODE,mouse_store_bt_device
+	rtn
+	
+mouse_store_le_device:
+	fetch 6,mem_le_plap
+	istore 6,contw
+	arg mem_le_ltk,contr
+	call memcpy16
+	fetch 6,mem_le_lap
+	istore 6,contw
+	rtn
+mouse_store_bt_device:
+	fetch 6,mem_plap
+	istore 6,contw
+	arg mem_link_key,contr
+	branch memcpy16
+
+mouse_clean_addr:
+	increase -6,contr
+	copy contr,contw
+	fetcht 6,mem_device_addr_temp+1
+	increase 3,temp
+	istoret 6,contw
+	rtn
+	
+mouse_select_reconn_device:
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse_load_bt_device
+	beq REC_4_MODE,mouse_load_le_device
+	rtn
+
+mouse_load_bt_device:
+	ifetch 6,contr
+mouse_load_bt_device_end:
+	store 6,mem_hci_plap
+	arg mem_link_key,contw
+	call memcpy16
+	branch check_link_key_load
+
+mouse_load_le_device:
+	ifetch 6,contr
+mouse_load_le_device_end:
+	store 6,mem_hci_plap
+	arg mem_le_ltk,contw
+	call memcpy16
+	ifetch 6,contr
+	store 6,mem_le_lap
+	rtn
+
+
+
+mouse_app_initflag_check:
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+	fetch 1,mem_config_sensor_dpi
+	store 1,mem_mouse_dpi
+	fetch 4,mem_24g_fast_conn_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr	
+	rtn
+
+mouse_load_device_info:
+	call mouse_select_reconn_device
+	fetch 4,mem_mouse_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_24g_addr
+	rtn
+	
+mouse_ble_init_address:
+	fetch 6,mem_le_lap
+	store 6,mem_device1_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device2_locall_addr
+	add pdata,0x0100,pdata
+	store 6,mem_device3_locall_addr
+	rtn
+	
+
+mouse_store_device_info_delay:	
+	fetch 1,mem_store_information_delay_timer_init
+	store 1,mem_store_information_delay_timer
+	rtn
+
+mouse_store_device_info:
+	bpatch patch1b_5,mem_patch1b
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_store_eeprom_device_info
+	bbit1 MOUSE_ENABLE_FLASH,mouse_store_flash_device_info
+	rtn
+
+mouse_load_flash_info_check:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_information_flash_parameters
+	call spid_read_flash
+	call mouse_spid_flash_powerdown
+	call mouse_app_initflag_check
+	branch mouse_sensor_spi_init
+
+
+mouse_information_flash_parameters:
+	setarg mem_mouse_information_end
+	arg mem_mouse_information_start,temp
+	isub temp,temp
+	fetch 3,mem_flash_base
+	arg mem_mouse_information_start,rega
+	rtn
+	
+mouse_store_flash_device_info:
+	call spid_init_flash
+	call mouse_spid_flash_release_form_powerdown
+	call mouse_flash_erase_sector
+
+	call mouse_information_flash_parameters
+	call mouse_spid_write_flash
+	call mouse_spid_flash_powerdown
+	branch mouse_sensor_spi_init
+
+mouse_spid_flash_release_form_powerdown:
+	jam FLASH_COMMAND_RELEASE_FROM_POWERDOWN,mem_temp
+mouse_spid_write_flash_cmd:
+	call delay_nop100
+	call spid_unlock_flash
+	arg mem_write_flash_head_temp,rega
+	fetcht 1,mem_temp
+	call mouse_spid_write_flash_cmd_common
+	branch delay_nop100
+
+mouse_spid_flash_powerdown:
+	jam FLASH_COMMAND_POWERDOWN,mem_temp
+	branch mouse_spid_write_flash_cmd
+
+mouse_spid_write_flash_cmd_common:
+	istoret 1,rega
+	rshift16 pdata,temp
+	istoret 1,contw
+	rshift8 pdata,temp
+	istoret 1,contw
+	istore 1,contw
+	deposit rega
+	store 2,core_spid_txaddr
+	setarg 0
+	store 2,core_spid_rxlen
+	jam spid_start,core_misc_ctrl
+	branch wait_spid_done
+		
+mouse_flash_erase_sector:
+	fetch 3,mem_flash_base
+	store 3,mem_spi_write_addr
+	branch spid_flash_erase_sector+2
+
+mouse_spid_write_flash:
+	copy pdata,regc
+	copy rega,pdata
+	increase -4,pdata
+	copy pdata,regb
+	ifetch 4,regb
+	store 4,mem_write_flash_head_temp
+	copy regc,pdata
+	call spid_write_flash
+	fetch 4,mem_write_flash_head_temp
+	istore 4,regb
+	rtn
+
+mouse_flash_power_down:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_FLASH
+	call mouse_spid_flash_powerdown
+	call twspi_enable	// 2 wire mode
+	fetcht 1,mem_spi_cs_gpio		//disable flash
+	call gpio_out_inactive
+	fetcht 1,mem_spi_hold_gpio
+	branch mouse_gpio_config_input_pd
+
+mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+	branch mouse_app_initflag_check
+
+mouse_eeprom_load_recon_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+mouse_store_eeprom_device_info:
+	arg 128,temp
+	arg mem_device_flag,rega
+	arg MOUSE_INFO_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+
+mouse_store_eerpom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_write_protect_eep_data
+
+mouse_load_eeprom_dpi:
+	arg 1,temp
+	arg mem_mouse_dpi,rega
+	arg MOUSE_DPI_EEPROM_OFFECT,regb
+	branch iicd_read_eep_data
+
+
+
+mouse_idle:
+	bpatch patch1b_6,mem_patch1b
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call mouse_dpi_check
+	call mouse_select_device_check
+	call mouse_check_select_device_by_switch
+	call mouse_bt_button_check
+	call mouse_usb_isr
+	call mouse_wheel_check
+	branch mouse_usb_mode
+
+mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,mouse_select_device_by_pb_button
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,mouse_select_device_by_pb_button
+	rtn
+
+mouse_select_device_by_pb_button_check_once:
+	jam 0x03,mem_mouse_pbkey_press_status
+mouse_select_device_by_pb_button:	
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_pb_button_check_end	
+	call mouse_matrix_public_gpio_reset
+mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down
+	branch mouse_select_device_button_up
+
+mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+	branch mouse_select_device_by_pb_button_exit
+
+
+mouse_pb_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND,mouse_pb_button_connect_gnd
+	fetch 1,mem_mouse_pbkey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,mouse_3io6key_check
+	fetch 1,mem_mouse_ghost_flag
+	nbranch mouse_select_device_by_pb_button_end,blank
+	branch mouse_pb_button_connect_matrix
+
+mouse_select_device_by_pb_button_end:
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue
+	jam 0,mem_mouse_pbkey_press_status
+	rtn
+
+mouse_pb_button_connect_gnd:
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+
+mouse_pb_button_connect_matrix:
+	call gpio_get_bit
+	fetcht 1,mem_matrix_public_gpio
+	branch mouse_pb_button_connect_gnd,true
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_out_active
+	fetcht 1,mem_config_select_device_button_gpio
+	fetch 1,mem_mouse_pbkey_press_status
+	branch mouse_check_key_connect_gnd
+	
+mouse_select_device_button_up:
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_UP
+	jam PB_BUTTON_STATE_UP,mem_select_device_button_statue	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	fetch 1,mem_bt_discovery_count
+	sub pdata,20,null
+	ncall mouse_ready_reconnection_by_button,positive		// press button less than 30-20=1000ms
+	fetch 1,mem_ui_button_timeout
+	store 1,mem_bt_discovery_count
+	rtn
+
+mouse_select_device_button_down:
+	call mouse_select_device_ghost_check
+	rtn user
+	fetch 1,mem_select_device_button_statue
+	rtneq PB_BUTTON_STATE_DOWN
+	jam PB_BUTTON_STATE_DOWN,mem_select_device_button_statue
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY,mouse_long_button_bt_discovery
+	fetch 1,mem_mouse_direct_timer
+	rtn blank
+	fetch 1,mem_mouse_direct_timeout
+	store 1,mem_mouse_direct_timer
+	rtn
+
+mouse_select_device_ghost_check:
+	disable user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
+	fetch 1,mem_mouse_lkey_press_status
+	rtn blank
+	fetch 1,mem_mouse_rkey_press_status
+	rtn blank
+	enable user
+	rtn
+	
+
+
+mouse_check_select_device_by_switch:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO,mouse_check_select_device_by_switch_gpio
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_ADC,mouse_adc_read
+	rtn
+mouse_check_select_device_by_switch_gpio:	
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch mouse_check_select_24gdevice,true
+mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_stop_bluetooth_mode
+	
+	
+mouse_check_select_24gdevice:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_ADC,mouse_check_select_24g_device
+	fetch 6,mem_mouse_vdd_switch_gnd_full_vol
+	store 6,mem_mouse_vdd_calculate_set
+mouse_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	branch mouse_24g_stop
+
+	
+
+mouse_ready_reconnection_by_button:
+	bpatch patch1b_7,mem_patch1b
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+mouse_store_device_number_before_reset:	
+	jam 0,mem_link_key_exists
+	call mouse_select_device_enable
+	call mouse_stop_bluetooth_mode
+	call mouse_select_device_disable
+	jam 1,mem_mouse_need_soft_reset
+	branch mouse_store_device_info_delay
+
+
+mouse_soft_reset:
+	call mouse_select_device_enable
+	branch soft_reset_chip
+
+mouse_select_device_number:
+	fetcht 1,mem_device_flag
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G,mouse_select_device_number_24g
+	sub temp,2,null
+	ncall mouse_select_device_count_clean_bt,positive
+	rtn
+	
+mouse_select_device_number_24g:	
+	fetch 1,mem_device_number
+	increase -1,pdata
+	isub temp,null
+	ncall mouse_select_device_count_clean_24g,positive
+	rtn
+
+mouse_select_device_count_clean_24g:
+	arg 0,temp
+	rtn
+mouse_select_device_count_clean_bt:
+	arg 1,temp
+	rtn
+
+
+mouse_store_device_number2eeprom:
+	arg 1,temp
+	arg mem_device_flag,rega
+	arg 0,regb
+	branch iicd_write_protect_eep_data
+		
+
+mouse_bt_button_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_PB_BUTTON_SHORT_PRESS_ENTER_DISCOVERY
+	call mouse_select_device_by_pb_button
+	rtn
+
+
+
+
+mouse_select_device_enable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_select_device_disable:
+	arg MOUSE_SELECT_DEVICE_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_cannel_reconn_enable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_cannel_reconn_disable:
+	arg MOUSE_BT_CANNEL_RECONN_FLAG,queue
+	branch mouse_disable_function_flag
+mouse_bt_discovery_button_down_enable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_enable_function_flag
+mouse_bt_discovery_button_down_disable:
+	arg MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG,queue
+	branch mouse_disable_function_flag
+
+mouse_adc_read_enable:
+	arg MOUSE_ENABLE_ADC,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_set_250Hz:
+	arg MOUSE_ENABLE_24G_250Hz,queue
+	branch mouse_enable_function_flag
+
+mouse_24g_search_dongle_enable:
+	arg MOUSE_ENABLE_24G_SEARCH_DONGLE,queue
+	branch mouse_enable_function_flag
+	
+mouse_16M_enable:
+	arg MOUSE_ENABLE_16M,queue
+	branch mouse_enable_function_flag
+	
+mouse_dpi_4level_enable:
+	arg MOUSE_ENABLE_DPI_LEVEL_4,queue
+	branch mouse_enable_function_flag
+
+
+mouse_enable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset1 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_disable_function_flag:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	qset0 pdata
+	store MOUSE_FLAG_LEN,mem_mouse_flag
+	rtn
+
+mouse_customer_key_enable:
+	arg MOUSE_ENABLE_KEYBOARD,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 8,mem_customer_key_press
+	store 8,mem_customer_key_release
+	fetch 1,mem_mouse_enable_flag	// 00--win+d     01--ctrl+alt+a    02--AC home    03--play
+	and pdata,0xc0,pdata
+	beq 0x40,mouse_customer_key_ctrl_alt_a
+	beq 0x80,mouse_customer_AC_home
+	beq 0xc0,mouse_customer_key_play
+	setarg 0x070008
+mouse_customer_standrad_key_set:	
+	store 8,mem_customer_key_press+1		// win + d
+	rtn
+
+mouse_customer_key_ctrl_alt_a:
+	setarg 0x040005
+	branch mouse_customer_standrad_key_set
+
+	
+mouse_customer_AC_home:
+	setarg 0x022303
+mouse_customer_media_key_set:	
+	store 8,mem_customer_key_press
+	setarg 0x03
+	store 8,mem_customer_key_release
+	rtn
+	
+mouse_customer_key_play:
+	setarg 0x00cd03
+	branch mouse_customer_media_key_set
+
+	
+
+
+
+	
+mouse_polling_device:
+	bpatch patch1c_0,mem_patch1c
+	fetch 1,mem_reconn_times
+	increase -1,pdata
+	store 1,mem_reconn_times
+	fetcht 1,mem_device_flag
+	sub temp,1,null
+	ncall mouse_select_device_number,zero
+	storet 1,mem_device_flag
+	jam 0,mem_link_key_exists
+	call mouse_store_device_number2eeprom
+	call mouse_before_store_reconn_info
+	branch mouse_start_reconnect_device
+	
+
+
+//notice: need to call p_mouse_drawing_optima_init when waked from mult
+mouse_drawing_optima:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	fetch 4,mem_mouse_x
+	rtn blank
+	call mouse_data_abs_check
+	setarg 0x03	//asm_flag enable condition
+	call mouse_pdata_greater_than_check
+	call mouse_disable_asm,blank
+	ncall mouse_enable_asm,blank
+	setarg 0x02	//asm_flag disable condition
+	call mouse_data_less_than_check
+	call mouse_disable_asm,blank
+	fetch 1,mem_mouse_asm_flag
+	beq 1,mouse_drawing_optima_modify
+mouse_drawing_optima_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SMOOTHER
+	arg 5,loopcnt
+	arg mem_mouse_asm_flag,contw
+	branch clear_mem
+
+mouse_drawing_optima_modify:
+	call mouse_drawing_optima_xy_offset_modify
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_x
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_x
+
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_current
+	call mouse_drawing_optima_data_y
+	fetch 2,mem_data_pre
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_data_current
+	store 2,mem_mouse_y
+	rtn
+
+mouse_drawing_optima_xy_offset_modify:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_XY_OFFSET
+	fetch 2,mem_mouse_x_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_x_pre
+	fetch 2,mem_mouse_x
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_x
+	fetch 2,mem_mouse_y_pre
+	store 2,mem_data_value
+	call mouse_pre_xy_data_judge
+	store 2,mem_mouse_y_pre
+	fetch 2,mem_mouse_y
+	store 2,mem_data_value
+	call mouse_current_xy_data_judge
+	store 2,mem_mouse_y
+	rtn
+
+mouse_pre_xy_data_judge:	
+	fetch 1,mem_data_value+1
+	branch mouse_pre_xy_pdata_offset,blank
+	branch mouse_pre_xy_ndata_offset
+
+mouse_pre_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_pre_xy_get_0_4_times
+	store 1,mem_data_value
+mouse_xy_data_offset_new:
+	fetch 2,mem_data_value
+	rtn
+mouse_pre_xy_ndata_offset:
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_pre_xy_get_0_4_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_current_xy_data_judge:
+	fetch 1,mem_data_value+1
+	branch mouse_current_xy_pdata_offset,blank
+	branch mouse_current_xy_ndata_offset
+mouse_current_xy_pdata_offset:
+	fetch 1,mem_data_value
+	call mouse_current_xy_get_0_6_times
+	store 1,mem_data_value
+	branch mouse_xy_data_offset_new
+mouse_current_xy_ndata_offset:	
+	fetch 1,mem_data_value
+	call mouse_pdata_invert
+	call mouse_current_xy_get_0_6_times
+	call disable_blank,blank
+	call mouse_pdata_get_new_value
+	branch mouse_xy_data_offset_new
+	
+mouse_pre_xy_get_0_4_times:
+	mul32 pdata,4,pdata
+	div pdata,5
+	call wait_div_end
+	quotient pdata
+	rtn
+mouse_current_xy_get_0_6_times:	//0.6 times
+	mul32 pdata,12,pdata
+	div pdata,10
+	call wait_div_end
+	quotient pdata
+	rtn	
+	
+mouse_drawing_optima_data_x:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_xtemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_xtemp
+	branch mouse_drawing_optima_data
+
+mouse_drawing_optima_data_y:
+	fetch 2,mem_data_pre
+	fetcht 2,mem_data_current
+	iadd temp,pdata
+	fetcht 1,mem_mouse_data_ytemp
+	iadd temp,pdata
+	and pdata,0x01,temp
+	storet 1,mem_mouse_data_ytemp
+	branch mouse_drawing_optima_data
+
+/**********
+input:data_pre,data_current
+output:data_pre,data_current after optima
+***********/
+mouse_drawing_optima_data:
+	store 3,mem_data_sum
+	isolate1 16,pdata
+	branch mouse_data_sum_overflow,true
+	fetch 1,mem_data_sum+1
+	beq 0xff,mouse_data_sum_n
+	fetch 1,mem_data_sum
+mouse_data_store_pre:
+	rshift pdata,pdata
+	store 2,mem_data_pre
+	store 2,mem_data_current
+	rtn
+mouse_data_sum_overflow:
+	fetch 1,mem_data_sum+1	//sum positive
+	beq 0,mouse_data_sum_overflow_p
+	fetch 3,mem_data_sum	
+	branch mouse_data_store_pre
+mouse_data_sum_overflow_p:
+	jam 0,mem_data_sum+2
+	fetch 1,mem_data_sum
+	branch mouse_data_store_pre
+
+mouse_data_sum_n:
+	fetch 1,mem_data_sum	//sum negetive
+	call mouse_pdata_get_half
+	store 1,mem_data_pre
+	store 1,mem_data_current
+	branch mouse_data_zero,blank
+	setarg 0xff
+mouse_data_set_direction:	
+	store 1,mem_data_pre+1
+	store 1,mem_data_current+1
+	rtn
+mouse_data_zero:
+	setarg 0
+	branch mouse_data_set_direction
+
+mouse_pdata_get_half:
+	call mouse_pdata_invert
+	rshift pdata,pdata
+mouse_pdata_get_new_value:	
+	call mouse_rega_in_out
+	sub pdata,0,pdata
+	store 1,mem_data_value	
+	rtn
+
+mouse_pdata_invert:
+	sub pdata,0,pdata
+mouse_rega_in_out:	
+	store 1,mem_rega
+	fetch 1,mem_rega
+	rtn
+
+mouse_disable_asm:
+	jam 0,mem_mouse_asm_flag
+	rtn
+mouse_enable_asm:
+	jam 1,mem_mouse_asm_flag
+	rtn
+
+//rega mouse_x, regb mouse_y, pdata refer
+mouse_pdata_greater_than_check:
+	isub rega,null
+	nbranch disable_blank,positive
+	isub regb,null
+	nbranch disable_blank,positive
+	branch enable_blank
+mouse_data_less_than_check:
+	isub rega,null
+	nrtn positive
+	isub regb,null
+	nrtn positive
+	branch enable_blank
+
+mouse_data_abs_check:
+	fetch 2,mem_mouse_x
+	call mouse_data_abs
+	copy pdata,rega
+	fetch 2,mem_mouse_y
+	call mouse_data_abs
+	copy pdata,regb
+	rtn
+
+/***********
+input: data_current
+output:pdata,abs
+************/
+mouse_data_abs:
+	store 2,mem_data_current
+	fetch 1,mem_data_current+1
+	beq 0xff,mouse_data_reversal
+	fetch 1,mem_data_current
+mouse_data_abs_store:
+	and_into 0xff,pdata
+	//output:pdata
+	rtn
+mouse_data_reversal:
+	fetch 2,mem_data_current
+	sub pdata,0,pdata
+	branch mouse_data_abs_store
+
+mouse_24g_long_sleep_param_update_timer:
+	arg mem_24g_long_sleep_param_update_timer,regc
+	arg mouse_24g_long_sleep_normal_param,regb
+	branch timer_single_step
+mouse_24g_long_sleep_normal_param:
+	fetch 4,mem_24g_long_sleep_set1
+	store 4,mem_24g_enter_hibernate
+	jam 1,mem_mouse_long_mult_flag
+	rtn
+
+
+mouse_24g_long_sleep_set:
+	beq 0x00,mouse_24g_long_sleep_set_30ms
+	beq 0x01,mouse_24g_long_sleep_set_50ms
+	beq 0x02,mouse_24g_long_sleep_set_80ms
+	beq 0x03,mouse_24g_long_sleep_set_100ms
+mouse_24g_long_sleep_set_80ms:
+	setarg 0x0ea600
+mouse_24g_long_sleep_set_end:	
+	store 4,mem_24g_long_sleep_set1
+	rtn
+mouse_24g_long_sleep_set_30ms:
+	setarg 0x05e740
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_50ms:
+	setarg 0x0927c0
+	branch mouse_24g_long_sleep_set_end
+mouse_24g_long_sleep_set_100ms:
+	setarg 0x124f80
+	branch mouse_24g_long_sleep_set_end
+
+	
+
+mouse_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 4,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call mouse_sensor_powerdown
+	call mouse_setgpio_hibernate
+	branch g24_long_sleep
+
+mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_init_sensor_wakeup,blank
+	jam 0,mem_sensor_shutdown_flag
+	branch g24_transmit_no_ack
+
+mouse_24g_transmit_start:
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch g24_short_sleep,blank
+	branch g24_transmit_start_next
+
+
+mouse_24g_stop:
+	set0 mark_24g,mark
+	jam STATE_24G_STOP,mem_24g_conn_sm
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	branch mouse_disable_function_flag
+
+
+mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
+	call mouse_key_check_once
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_24g
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_general_dongle
+
+mouse_24g_mode_setup_error:
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	rtn
+
+mouse_24g_reconn_dongle_start:
+	fetch 2,mem_24g_reconn_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam RECEIVER_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+
+mouse_24g_first_start_auto_pair_mode:
+	call mouse_wakeup_from_power_check
+	branch mouse_24g_first_start_reconn,user  	// wake from hibernate :enble user
+mouse_24g_reconn_general_dongle:	
+	jam MODE_24G_DEVICE,mem_device_flag
+	fetch 2,mem_mouse_24g_power_on_fast_conn_timer
+	store 2,mem_24g_reconn_timeout
+	jam FAST_CONN_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+mouse_24g_start_auto_pair:
+	call mouse_discover_setting_led_gpio
+	fetch 2,mem_24g_pair_timeout_init
+	store 2,mem_24g_reconn_timeout
+	jam PAIR_AND_3_0_ADDR,mem_24g_reconn_type
+	branch g24_reconn_start
+
+
+mouse_24g_first_start_reconn:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_24g_reconn_dongle_start
+	call mouse_bluetooth_fast_conn_disable
+	branch mouse_24g_first_bluetooth_reconnect
+	
+mouse_24g_first_bluetooth_reconnect:
+	call mouse_24g_stop
+	call mouse_device_led_all_off
+mouse_check_bt_reconn_target:
+	jam MODE_BT_DEVICE1,mem_device_flag
+	call mouse_select_reconn_device
+	branch mouse_start_reconnect_device
+
+mouse_24g_first_bb_event_reconn_timeout:
+	call mouse_wakeup_from_power_check
+	branch mouse_app_enter_hibernate,user
+	branch mouse_start_discovery
+
+
+mouse_24g_first_store_reconn_info:
+	call mouse_wakeup_from_power_check
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_store_device_info_delay
+	rtn
+
+mouse_24g_start_pair_mode:
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+	call mouse_low_voltage_led_blink_disable
+	call mouse_discover_setting_led_gpio
+	jam TYPE_MS,mem_24g_data_type
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,g24_pair_start
+	jam TYPE_KB,mem_24g_data_type
+	branch g24_pair_start
+
+	
+mouse_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
+mouse_24g_attempt_fail_enter_hibernate:
+	call mouse_device_led_off
+	call mouse_24g_stop
+	fetch 1,mem_reconn_times
+	nbranch mouse_polling_device,blank
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_app_enter_hibernate
+	rtn
+
+mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_start_auto_pair
+	branch mouse_24g_reconn_dongle_start
+
+
+mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
+
+		
+mouse_24g_attempt_success:
+	call mouse_init_sensor_reset
+	jam 0,mem_mouse_long_mult_flag
+	jam 0,mem_24g_conn_sm
+	jam 0,mem_24g_reconn_type
+	fetch 4,mem_24g_receiver_addr
+	fetch 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	branch mouse_24g_first_store_reconn_info
+	
+mouse_24g_pairing_complete:
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	call mouse_device_poweron_timer_init
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_timeout
+	store 1,mem_24g_conn_sm
+	store 1,mem_mouse_move_flag
+	store 1,mem_24g_reconn_type
+
+	call mouse_init_sensor_reset
+	call mouse_read_sensor_common
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr
+	branch mouse_store_device_info_delay
+
+mouse_24g_package_data:
+	rtnmark0 mark_24g
+	call mouse_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_250Hz,g24_transmit_by_interrupt_enable
+	fetch 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+mouse_24g_keyboard_package_data:
+	jam TYPE_KB,mem_24g_data_type
+	arg 9,rega	//length
+	fetch 1,mem_customer_data_trigger
+	nbranch mouse_customer_key_press,blank
+	arg mem_customer_key_release,regb	//tx buff
+	rtn
+mouse_customer_key_press:
+	arg mem_customer_key_press,regb
+	rtn
+
+
+
+/**************************************g24 search receiver*****************************************/
+
+mouse_24g_search_dongle_init:
+	setarg 0
+	store 3,mem_mouse_search_dongle_action
+	rtn
+
+mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+mouse_24g_search_dongle_loop:
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch mouse_24g_search_dongle_loop_retry,sync
+	nbranch mouse_24g_search_dongle_loop_retry,user3
+	call mouse_24g_search_dongle_success
+mouse_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,mouse_24g_search_dongle_check
+	rtn
+
+mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch mouse_24g_search_dongle_loop
+
+mouse_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		//3min
+	store 2,mem_mouse_no_data_timer
+	branch mouse_sensor_powerdown
+
+mouse_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch mouse_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	call mouse_no_data_timer_init
+	branch mouse_init_sensor_wakeup
+
+/**************************************g24 search receiver*****************************************/
+
+
+
+/*******************led*************************/
+mouse_device_poweron_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_POWER_ON_LED
+	fetch 1,mem_mouse_device_poweron_timer_count
+	rtn blank
+	increase -1,pdata
+	store 1,mem_mouse_device_poweron_timer_count
+	branch mouse_device_led_off,blank
+	branch mouse_device_led_on
+	
+mouse_device_poweron_timer_init:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_POWER_ON_LED
+	call mouse_low_voltage_led_blink_disable
+	fetch 1,mem_mouse_device_poweron_timer_count_init
+	store 1,mem_mouse_device_poweron_timer_count
+	rtn	
+
+	
+mouse_discover_setting_led_gpio:
+	jam 0,mem_mouse_device_poweron_timer_count
+	fetch 2,mem_mouse_disconvey_led_blink_time
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time	
+mouse_setting_led_gpio_comman:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_led_24g
+	beq MODE_BT_DEVICE1,mouse_device_led_bt1
+	beq MODE_BT_DEVICE2,mouse_device_led_bt2
+	rtn
+mouse_device_led_24g:
+	fetch 1,mem_config_device_24g_led_gpio
+	branch mouse_led_blink
+mouse_device_led_bt1:
+	fetch 1,mem_config_device_bt1_led_gpio
+	branch mouse_led_blink
+mouse_device_led_bt2:
+	fetch 1,mem_config_device_bt2_led_gpio
+mouse_led_blink:
+	store 1,mem_temp
+	call mouse_device_led_off
+	fetch 1,mem_temp
+	store 1,mem_mouse_struct_led_gpio
+	arg 0,rega
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	branch ui_led_blink_start_global
+
+
+mouse_dpi_led_blink_delay:
+	fetch 1,mem_dpi_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+
+mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg mouse_dpi_led_blink_init,regb
+	branch timer_single_step	
+	
+mouse_dpi_led_blink_init:
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	fetch 2,mem_mouse_dpi_led_blink_time
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	arg 0,rega
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_DPI_LEVEL_4,mouse_dpi_led_blink_init_end
+	increase 1,temp
+	sub temp,4,null
+	ncall mouse_dpi_led_blink_count_clean,positive		// blink count:2 3 4 1
+mouse_dpi_led_blink_init_end:	
+	storet 1,mem_mouse_blink_count
+	jam UI_LED_STATE_BLINK_START,mem_mouse_led_type
+	rtn
+
+mouse_dpi_led_blink_count_clean:
+	arg 1,temp
+	rtn
+
+mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_dpi_led_gpio
+	fetcht 1,mem_mouse_struct_led_gpio
+	isub temp,null
+	nrtn zero
+	fetch 1,mem_mouse_blink_count
+	rtn blank
+	jam 0,mem_adc_low_volatage_led_blink_enable
+	enable user
+	rtn
+
+mouse_device_led_all_off:
+	call mouse_dpi_led_off
+	call mouse_device_24g_led_off
+	call mouse_device_bt1_led_off
+	branch mouse_device_bt2_led_off
+
+mouse_device_led_off:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_off
+	rtn
+
+mouse_device_24g_led_off:
+	jam 0,mem_24g_device_led_status
+	fetcht 1,mem_config_device_24g_led_gpio
+	branch mouse_led_off
+
+mouse_device_bt1_led_off:
+	fetcht 1,mem_config_device_bt1_led_gpio
+	branch mouse_led_off
+	
+mouse_device_bt2_led_off:
+	fetcht 1,mem_config_device_bt2_led_gpio
+	branch mouse_led_off
+
+mouse_dpi_led_off:
+	fetcht 1,mem_dpi_led_gpio
+	branch mouse_led_off
+
+mouse_device_led_on:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,mouse_device_bt2_led_on
+	rtn
+
+mouse_device_24g_led_on:
+	fetcht 1,mem_config_device_24g_led_gpio
+	branch mouse_led_on
+mouse_device_bt1_led_on:
+	fetcht 1,mem_config_device_bt1_led_gpio
+	branch mouse_led_on
+mouse_device_bt2_led_on:
+	fetcht 1,mem_config_device_bt2_led_gpio
+	branch mouse_led_on
+
+mouse_led_off:
+	bpatch patch1c_1,mem_patch1c
+	storet 1,mem_mouse_struct_led_gpio
+	arg 0,rega
+	branch ui_led_off_global
+mouse_led_on:
+	bpatch patch1c_2,mem_patch1c
+	storet 1,mem_mouse_struct_led_gpio
+	arg 0,rega
+	branch ui_led_on_global
+
+mouse_ui_led_off_static:
+	fetch 1,mem_config_device_24g_led_gpio
+	isub temp,null
+	call mouse_clear_24g_led_statue,zero
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_4_LED,gpio_out_inactive
+	call mouse_check_bt2_led_off
+	call mouse_check_dpi_led_off
+	call mouse_check_low_v_led_off
+	fetch 1,mem_mouse_led_off_4_led
+	branch gpio_out_inactive,blank
+	jam 0,mem_mouse_led_off_4_led
+	branch gpio_set_high_impedance
+
+mouse_ui_led_on_static:
+	fetch 1,mem_config_device_24g_led_gpio
+	isub temp,null
+	call mouse_set_24g_led_statue,zero
+	branch gpio_out_active 
+
+
+mouse_check_bt2_led_off:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_BT2_FOR_4_LED
+	fetch 1,mem_config_device_bt2_led_gpio
+	branch mouse_check_1gpio_2led_off
+mouse_check_dpi_led_off:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_FOR_4_LED
+	fetch 1,mem_dpi_led_gpio
+	branch mouse_check_1gpio_2led_off
+mouse_check_low_v_led_off:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_V_FOR_4_LED
+	fetch 1,mem_config_low_voltage_alarm_gpio
+mouse_check_1gpio_2led_off:
+	isub temp,null
+	nrtn zero
+	jam 1,mem_mouse_led_off_4_led
+	rtn
+
+mouse_clear_24g_led_statue:
+	jam 0,mem_24g_device_led_status
+	rtn
+
+mouse_set_24g_led_statue:
+	jam 1,mem_24g_device_led_status
+	rtn
+
+mouse_low_voltage_led_timer:
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_device_poweron_timer_count
+	nrtn blank
+	call mouse_check_dpi_blink
+	rtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_VOLTAGE_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,mouse_low_voltage_led_blink_new_data
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	increase 1,pdata
+	store 1,mem_adc_low_volatage_led_timer_count
+	sub pdata,20,null
+	ncall mouse_adc_low_volatage_led_timer_count_clean,positive
+	beq 2,mouse_low_voltage_led_on
+	beq 4,mouse_low_voltage_led_off
+	beq 6,mouse_low_voltage_led_on
+	beq 8,mouse_low_voltage_led_off
+	rtn
+mouse_adc_low_volatage_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count
+	branch mouse_low_voltage_led_off
+mouse_low_voltage_led_on:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_USE_MODE_LED,mouse_device_led_on
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	branch mouse_led_on
+mouse_low_voltage_led_off:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_USE_MODE_LED,mouse_device_led_off
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	rtneq GPIO_DISABLE
+	fetcht 1,mem_config_low_voltage_alarm_gpio
+	branch mouse_led_off
+
+mouse_low_voltage_led_blink_new_data:
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_adc_low_volatage_led_blink_timer
+	isub temp,null
+	nbranch mouse_low_voltage_led_blink_disable,positive
+	fetch 1,mem_adc_low_volatage_led_blink_enable
+	nrtn blank
+	jam 1,mem_adc_low_volatage_led_blink_enable
+	branch mouse_low_voltage_led_blink_init
+	
+mouse_low_voltage_led_blink_init:
+	fetch 2,mem_mouse_low_v_led_blink_time
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_USE_MODE_LED,mouse_setting_led_gpio_comman
+	fetch 1,mem_config_low_voltage_alarm_gpio
+	rtneq GPIO_DISABLE
+	branch mouse_led_blink
+
+mouse_low_voltage_led_blink_disable:
+	jam 0,mem_adc_low_volatage_led_blink_enable
+	branch mouse_low_voltage_led_off
+
+
+mouse_low_voltage_led_no_enter_lpm:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_LOW_VOLTAGE_LED
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
+	bbit1 MOUSE_ENABLE_LOW_VOLTAGE_LED_BLINK_N_SECOND,mouse_low_voltage_led_no_enter_lpm_blink
+	fetch 1,mem_adc_low_volatage_led_timer_count
+	sub pdata,10,null
+	branch mouse_lpm_mode_clear,positive
+mouse_low_voltage_led_no_enter_lpm_next:	
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_exit_check
+	jam 1,mem_lpm_mode
+	rtn
+
+g24_transmit_by_interrupt_exit_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag	
+	rtnbit1 MOUSE_ENABLE_24G_250Hz	
+	branch g24_transmit_by_interrupt_exit
+
+mouse_lpm_mode_clear:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,g24_transmit_by_interrupt_enable
+	jam 0,mem_lpm_mode
+	rtn
+
+mouse_low_voltage_led_no_enter_lpm_blink:
+	fetch 1,mem_adc_low_volatage_led_blink_enable
+	nbranch mouse_lpm_mode_clear,blank
+	branch mouse_low_voltage_led_no_enter_lpm_next
+	
+	
+/*******************led*************************/	
+mouse_store_signal_rssi:
+	call rssi_hex2dec
+	fetch 1,mem_rssi
+	branch rssi_signal
+
+mouse_le_transmit:
+	call mouse_store_signal_rssi
+	branch power_ctrl_start
+
+mouse_bt_slave_match:
+	call mouse_store_signal_rssi
+	fetch 1,mem_state
+	isolate1 state_inconn,pdata
+	nrtn true
+	fetch 1,mem_arq
+	isolate1 wack,pdata
+	call power_ctrl_pac_succ_decrs,true
+	ncall power_ctrl_pac_succ_incrs,true
+	branch power_ctrl_start
+
+mouse_le_set_lpm_mult:
+	fetch 1,mem_le_connect_status_flag
+	compare 3,pdata,3
+	nbranch disable_blank,true
+	call app_lpm_mult_enable
+	branch enable_blank
+
+mouse_bt_set_lpm_mult:
+	call l2cap_malloc_is_fifo_empty
+	nrtn blank
+	jam 1,mem_current_sniff_attempt
+	jam 0,mem_current_sniff_timeout
+	branch enable_blank
+
+mouse_set_lpm_mult:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_CONNECTED,mouse_le_set_lpm_mult
+	branch mouse_bt_set_lpm_mult
+
+/*****************close define  COMPILE_MOUSE**********/
+else
+mouse_init:
+mouse_irtual_cable_unplug:
+mouse_store_remote_bdaddr:
+mouse_ui_led_off_static:
+mouse_ui_led_on_static:
+mouse_bt_hid_handshake_boot_check:
+mouse_delay_enter_hibernata:
+mouse_low_voltage_led_no_enter_lpm_blink:
+	rtn
+endif
+
+
+
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/patch.prog	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/patch.prog	(working copy)
@@ -1,14 +1,32 @@
 
-define FIRE_KEY
+//define G24_OTA
+//define FIRE_KEY
+//define UART_LOG
+//define RSSI_SORT
+//define DOUBLE_DPI_KEY
+define LOGO_LED
+define S201X_SENSOR
+//define RGB_LED
+//define RGB_LED_MKEY
+//define RGB_LED_ON_AFTER_PAIR
+//define COMMBINATION_DPI
+define G24_RETRANSMIT_DPI
+define YJX_ICE_SELECT_ANGLE
+define PAIR_FAST_POWER_CTRL
+define DISTANCE_DISCON
 
 	bbit1 8,pf_patch_ext
 	beq patch00_0,p_soft_reset
-	beq patch00_3,p_main_loop
+//	beq patch00_3,p_main_loop
+	beq patch10_2,p_shutdown_radio
 	beq patch10_3,p_set_sync_on
+	beq patch10_4,p_set_freq_rx
+	beq patch11_2,p_txon_next
 	beq patch11_3,p_initialize_radio_cont	
+	beq patch11_4,p_save_rssi
 	beq patch13_7,p_init_param
+	beq patch14_4,p_lpm_dispatch
 	beq patch15_6,p_app_init
-	beq patch16_0,p_app_evt_100ms_loop
 	beq patch18_3,p_mouse_start_work
 	beq patch18_4,p_mouse_start_reconnect_device
 	beq patch18_7,p_mouse_app_enter_hibernate
@@ -19,37 +37,134 @@
 	beq patch19_7,p_mouse_dpi_process
 	beq patch1a_0,p_mouse_seting_dpi
 	beq patch1a_1,p_mouse_check_key_gpio
+	beq patch1a_3,p_mouse_init_sunt
 	beq patch1a_4,p_mouse_sensor_poweron
 	beq patch1a_6,p_mouse_priority_bb_event
 	beq patch1b_1,p_mouse_bb_event_timer
 	beq patch1b_2,p_mouse_start_discovery
 	beq patch1b_3,p_mouse_stop_discovery
 	beq patch1b_6,p_mouse_idle
+	beq patch1b_7,p_mouse_ready_reconnection_by_button
+	beq patch1c_1,p_mouse_led_off
+	beq patch1c_2,p_mouse_led_on
 	beq patch1d_0,p_hid_rx_process
 	branch loop
 
 pf_patch_ext:
-	beq patch23_2,p_send_lmp
+	beq patch23_2,p_send_lmp		
+	beq patch24_0,p_twspi_reset
+	beq patch25_3,p_efuse_vdd_off
 	beq patch26_3,p_adc_init_data
 	beq patch26_4,p_enable_adc
 	beq patch30_7,p_ui_timer_check		
 	beq patch34_1,p_le_slave_match
+	beq patch34_3,p_le_slave_unsync
+	beq patch36_5,p_le_transmit
 	beq patch38_0,p_le_parse_l2cap
 	beq patch3b_5,p_g24_dispatch
 	beq patch3c_2,p_g24_pair_dispatch
 	beq patch3d_1,p_g24_reconn_dispatch
 	beq patch3d_2,p_g24_transmit_no_interrupt
+ifdef PAIR_FAST_POWER_CTRL
+	beq patch3d_3,p_g24_transmit_hop_process
+endif
 	beq patch3d_4,p_g24_lpm_wait
+	beq patch3d_5,p_power_ctrl_start
 	branch loop
 
 
 p_soft_reset:
 	clear_stack
 	call app_param_init
+	ncall p_led_num_check,wake
+ifdef RSSI_SORT
+	setarg mem_mouse_rssi_signal_buf_patch
+	store 2,mem_rssi_signal_buf_ptr	
+endif
 	call mouse_xtal_init		// 16M / 24M
 	branch soft_reset+3
 
-/////////////////////////////////// adc//////////////////////////////////////
+p_lpm_dispatch:
+	call lpo_calibration	
+	fetch 3,mem_clks_per_lpo	
+	rtn blank
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtneq ON
+	branch lpm_dispatch+4
+
+p_efuse_vdd_off:
+	fetch 1,core_rf_ldo_en1
+	set0 5,pdata
+	set0 4,pdata
+	set0 0,pdata
+	store 1,core_rf_ldo_en1
+	nop 24
+	set0 3,pdata
+	branch efuse_vdd_off+6
+
+p_mouse_start_reconnect_device:
+	call p_mouse_device_le_reconn_led_config
+	arg mem_device1_type,rega
+	fetch 1,mem_device_flag
+	increase -1,pdata
+	mul32 pdata,29,pdata
+	iadd rega,rega
+	ifetch 1,rega
+	store 1,mem_xrecord_mode
+p_mouse_start_reconnect:	
+	fetch 1,mem_xrecord_mode
+	beq REC_3_MODE,mouse3_0_check_reconn_target
+	beq REC_4_MODE,mouse4_0_check_reconn_target
+	branch mouse_buletooth_fast_conn_init
+
+p_twspi_reset:
+	fetch 1,mem_mouse_sensor_sclk_gpio
+	branch twspi_reset+1
+
+p_mouse_led_on:
+	sub temp,GPIO_DISABLE,null
+	rtneq zero
+	branch mouse_led_on+1
+
+p_mouse_led_off:
+	sub temp,GPIO_DISABLE,null
+	rtneq zero
+	branch mouse_led_off+1
+
+p_led_num_check:		
+	fetch 1,mem_mouse_flag+4
+	nrtn blank
+	jam 0,mem_ui_led_struct_num
+	rtn
+
+p_mouse_ready_reconnection_by_button:
+	fetch 1,mem_device_number
+	rtneq 1		// 1channel
+	call mouse_select_device_number
+	storet 1,mem_device_flag
+	call p_mouse_devide_led_disable
+	call p_mouse_low_voltage_led_off
+p_mouse_store_device_number_before_reset:	
+	jam 0,mem_link_key_exists
+	call mouse_select_device_enable
+	call p_mouse_stop_bluetooth_mode
+	call app_evt_button_long_pressed
+	call p_mouse_le_state_clear
+	branch mouse_store_device_number_before_reset+3
+
+p_mouse_le_state_clear:
+	setarg 0
+	store 8,mem_context
+	jam 0,mem_state
+	jam 0,memui_reconnect_mode
+//	call init_lmp_work
+	rtn
+
+p_mouse_stop_bluetooth_mode:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BT_RECONNECT
+	branch mouse_stop_bluetooth_mode+2
+/*
 p_main_loop:
 ifdef SIMPLE_PAIRING
 	call sp_calc_sequence
@@ -62,32 +177,31 @@
 	call sp_calc_sequence_256_check
 endif
 endif
-	call le_advertising_dispatch+1
+	call le_advertising_dispatch
 	call idle_dispatch
-	call app_process_idle+1
-	call inquiry_dispatch+1
-	call inquiry_scan_dispatch+1
-	call page_scan_dispatch+1
-	call connection_dispatch+1
-	call g24_dispatch+2
-	call p_lpm_dispatch
-	branch main_loop
-	
-p_lpm_dispatch:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	fetch 1,mem_ssp_enable
-	branch p_lpm_dispatch_next,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
+	call p_app_process_idle
+	branch main_loop+7
+
+p_app_process_idle:
+	call p_ui_dispatch
+	branch app_process_idle+2
+
+p_ui_dispatch:
+	call p_ui_led_dispatch
+	branch ui_timer_check
+
+p_ui_led_dispatch:
+	fetch 1,mem_ui_led_struct_num
 	rtn blank
-p_lpm_dispatch_next:
-	fetch 1,mem_sc_calc
-	nrtn blank	
-	branch lpm_dispatch_next+3
+	fetch 2,mem_ui_led_struct_ptr
+	copy pdata,regb
+	add regb,LED_OFFSET_LED_GPIO,regb
+	ifetch 1,regb
+	rtneq GPIO_DISABLE
+	branch ui_led_dispatch+2
+*/
 
+/////////////////////////////////// adc//////////////////////////////////////
 p_set_sync_on:
 	jam 0x5,modem_en
 	nop 2
@@ -96,7 +210,81 @@
 	beq XTAL_24M,set_sync_on_24m
 p_set_sync_on_16m:
 	jam 0x29,core_syn_afc_cfg1
-	branch set_sync_on_16m		
+	branch set_sync_on_16m	
+
+p_set_freq_rx:
+	call set_freq_rx+1
+	setarg 0x7676
+	store 2,0x8968
+	rtn
+
+p_mouse_24g_fast_conn_mode_check:
+	rtnmark0 mark_24g
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch p_mouse_soft_agc_enable,zero
+p_mouse_soft_agc_disable:
+	jam 0xff,mem_gain_fix
+	rtn
+
+p_mouse_soft_agc_enable:
+	jam 0,mem_gain_fix
+	jam TX_POWER_F17DB,mem_tx_power
+	rtn
+
+p_save_rssi:
+	// bit6 is signed bit. 
+	fetch 1,modem_nb_pow 
+	isolate1 6,pdata 
+	setflag true,7,pdata 
+	store 1,mem_modem_rssi 
+	
+	fetch 1,modem_gain 
+	and pdata,0x0f,temp 
+	lshift temp,temp 
+	rshift4 pdata,pdata 
+	iadd temp,temp 
+	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3 
+
+	fetch 1,mem_modem_rssi 
+	call p_byte_sign_extern 
+	sub pdata,0,pdata //-modem_nb_pow 
+	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) 
+	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9 
+	and pdata,0x1ff,pdata 
+	isolate1 8,pdata 
+	nbranch p_save_rssi_store,true 
+	setarg 0 
+p_save_rssi_store:
+	store 1,mem_rssi_hex
+	rtn
+p_byte_sign_extern:
+	isolate1 7,pdata
+	nrtn true
+	branch mouse_data_overflow
+
+p_txon_next:
+	fetch 1,mem_tx_power
+	beq TX_POWER_F17DB,p_set_tx_power_f17db	//fast conn
+	beq TX_POWER_F20DB,p_set_tx_power_pair
+	branch txon_next+1
+
+p_set_tx_power_pair:
+ifdef PAIR_FAST_POWER_CTRL
+	jam 0x04,core_tx_pwr_ctrl0			//BR Test 20-50cm
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+
+else
+	branch set_tx_power_f20db
+endif
+	
+
+p_set_tx_power_f17db:
+	jam 0x5b,core_tx_pwr_ctrl0		
+	jam 0x01,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
 	
 p_adc_init_data:
 	arg mem_temp_block2,rega
@@ -136,57 +324,143 @@
 	storer regb,1,core_rf_ldo_cfg6
 	rtn
 
-
 p_mouse_adc_read_start:
-	fetch 1,mem_24g_device_led_status
-	nrtn blank
 	call p_enable_adc
-	branch mouse_adc_read_start+3
-
-p_app_evt_100ms_loop:
-	fetch 1,mem_app_evt_timer_count
+	jam 0,mem_adc_read_timer
+	call vdd_calculate_by_mode
+	store 2,mem_mouse_vdd_now_vol
+	fetch 1,mem_adc_config_flag
+	bne ADC_CONFIG_GPIO, p_mouse_adc_data_process
+	fetcht 2,mem_mouse_vdd_now_vol	// BAT= 1.5V, R = 200k, a = a*1.8
+	mul32 temp,8,pdata
+	div pdata,10
+	call get_div_result
+	iadd temp,pdata
+	store 2,mem_mouse_vdd_now_vol
+p_mouse_adc_data_process:	
+	arg mem_mouse_vdd_calculate_set,rega
+	call mouse_adc_bat_percent_lowpower_out
+	fetch 1,mem_adc_power_flag
+//	bbit1 2,mouse_adc_button_press
+	bbit1 1,p_mouse_power_down
+	bbit0 0,p_mouse_adc_no_low_voltage
+	branch mouse_adc_data_process_next
+
+p_mouse_power_down:
+	fetch 1,mem_mouse_led_new_interface_config		//can be remove?
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_power_down
+	branch p_mouse_app_enter_hibernate
+	
+p_mouse_adc_no_low_voltage:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_adc_no_low_voltage
+	arg MOUSE_LOW_VOLTAGE_FLAG,queue
+	call mouse_disable_function_flag
+	jam 1,mem_adc_low_volatage_led_timer_count_new
+	fetch 1,mem_mouse_adc_last_low_voltage_flag
 	rtn blank
-	increase -1,pdata
-	store 1,mem_app_evt_timer_count
-	call ui_button_polling
-	call app_lpm_wake_auto_lock_timer
-	call app_unsniff_delay_timer
-	call app_discovery_timer
-	call flash_write_spi_sm_timer
-ifdef SPI2	
-	call flash_write_spi2_sm_timer
-endif	
-//	call adc_wait_timer
-	fetch 2,mem_cb_event_timer
-	call callback_func
-	branch p_app_evt_100ms_loop
+	jam 0,mem_mouse_adc_last_low_voltage_flag
+	branch p_mouse_low_voltage_led_off_judge
 
 /////////////////////////////////// adc//////////////////////////////////////
 
+//============low led start============//
+p_mouse_check_dpi_blink:
+	disable user
+	fetch 1,mem_mouse_multi_led_blink_type		//04:dpi blink
+	sub pdata,4,null
+	nrtn zero
+//	jam 0,mem_adc_low_volatage_led_blink_enable
+	branch enable_user
 
-p_initialize_radio_cont:
+p_mouse_low_voltage_led_timer:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit0 MOUSE_ENABLE_1IO2LED,mouse_low_voltage_led_timer
+p_mouse_low_voltage_led_timer_new:	//new interface,multi lio2led
+	rtnbit0 MOUSE_ENABLE_LOW_LED
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_LOW_VOLTAGE_FLAG
 
-	jam 0xe6,core_syn_aac_cfg1
+	call p_mouse_check_dpi_blink		//need judge blink led=dpi? if led=dpi led->rtn
+	rtn user
+	
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	branch p_mouse_low_led_blink_count_init_judge,blank
+p_mouse_low_led_blink_timer:
+	fetcht 1,mem_adc_low_volatage_led_timer_count_new
+	increase 1,temp
+	storet 1,mem_adc_low_volatage_led_timer_count_new
+	fetch 1,mem_mouse_low_led_blink_timer
+	isub temp,null
+	ncall p_mouse_low_led_timer_count_clean,positive
+	fetch 1,mem_mouse_low_led_blink_half_timer
+	isub temp,null
+	nbranch p_mouse_low_voltage_led_off_judge,positive
+p_mouse_low_voltage_led_on_judge:
+	fetch 1,mem_mouse_led_multi_type
+	beq MOUSE_ENABLE_LOW_FOR_LED,p_mouse_device_multi_led_on+1
+	beq MOUSE_ENABLE_DPI_LOW_FOR_LED,p_mouse_device_multi_led_on+1
+p_mouse_low_voltage_led_on:
+	fetcht 1,mem_mouse_low_gpio 
+	branch p_mouse_multi_led_on
+
+p_mouse_low_led_timer_count_clean:
+	jam 1,mem_adc_low_volatage_led_timer_count_new
+	call p_mouse_low_led_blink_decrease		//blink count decrease
+p_mouse_low_voltage_led_off_judge:
+	fetch 1,mem_mouse_led_multi_type
+	beq MOUSE_ENABLE_LOW_FOR_LED,p_mouse_device_multi_led_off+1
+	beq MOUSE_ENABLE_DPI_LOW_FOR_LED,p_mouse_device_multi_led_off+1
+p_mouse_low_voltage_led_off:
+	fetcht 1,mem_mouse_low_gpio
+	branch p_mouse_multi_led_off
+
+p_mouse_low_led_blink_decrease:
+	fetch 1,mem_mouse_multi_low_led_blink_count
+	increase -1,pdata
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+p_mouse_low_led_blink_count_init_judge:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT,p_mouse_low_voltage_led_off_judge
+	call p_mouse_multi_low_led_blink_count_init
+	branch p_mouse_low_led_blink_timer
+
+//============low led end============//
 
+
+p_initialize_radio_cont:
+	jam 0xe6,core_syn_aac_cfg1
 	call initialize_syn_afc_cfg1
 	call initialize_rf_ldo_cfg1
 	call initialize_rc_cal
-
 	jam 0x09,core_rx_bq_cfg0
-
 	jam 5,core_clkpll_cfg0
 	jam 0x94,core_rx_iqadc_cfg
-
 	jam 0x0b,core_rf_ldo_cfg2
 	jam 0x05,core_rf_ldo_cfg3
 	jam 0x90,core_syn_pfd_lkd_cfg
-
 	jam 0x00,core_syn_loopdiv_dsm_cfg
 	jam 0x40,core_rx_ctrl1
-
 	branch initialize_radio_cont+8
 
 
+p_shutdown_radio:
+	fetch 1,mem_gain_fix	//filter gain_control
+	store 1,mem_temp
+	call shutdown_radio+1
+	jam 0x00,core_rf_ldo_en0	//RFPLL vco_LDO disable
+	fetch 1,mem_temp
+	store 1,mem_gain_fix
+	rtn
 
 p_init_param:
 	jam 0,mem_lmo_tid2			// classic can't reconnect
@@ -194,26 +468,30 @@
 
 /////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
 p_app_init:
-p_mouse_init:
-	ncall p_mouse_le_name_load,wake
+ifdef UART_LOG
+	call p_device_hardware_init
+endif
+	set0 mark_adc_enable,mark
 	call enable_authrom
 	call p_mouse_setting_config
 	call mouse_init_sunt
-	rtn wake
-	call p_mouse_load_default_param
-	call mouse_dpi_config
+	rtn wake	
+ifdef RGB_LED_ON_AFTER_PAIR
+	jam 1,mem_rgb_led_on_continue_1min_timeout_flag
+	call p_mouse_rgb_led_off_time_init
+endif
+
+ifdef COMMBINATION_DPI
+	jam 0,mem_mouse_commbination_dpi_check_enable
+endif
+	call p_mouse_seting_sensor_type
 	call mouse_usb_check_enable
 	call mouse_drawing_optima_init
 	call p_mouse_cb_fuction
 	call p_mouse_sensor_powerdown
 	branch mouse_init+8
 
-p_mouse_load_default_param:
-ifdef FIRE_KEY
-	call p_mouse_firebutton_connect_state_check
-endif
-	branch p_mouse_double_dpi_judge
-
+ifdef DOUBLE_DPI_KEY
 p_mouse_double_dpi_judge:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
@@ -225,6 +503,7 @@
 p_mouse_another_dpi_connect_vin:
 	jam 1,mem_mouse_another_dpi_connect_vin_flag
 	rtn
+endif
 	
 ifdef FIRE_KEY
 p_mouse_firebutton_connect_state_check:
@@ -239,80 +518,90 @@
 	rtn
 endif
 
+p_mouse_customer_key_connect_vin:
+	fetch 1,mem_customer_key_gpio
+	rtneq GPIO_DISABLE
+	rtnbit0 7
+	jam 1,mem_mouse_customer_key_connect_vin_flag
+	rtn
+	
 p_mouse_le_name_load:
-	fetch 8,mem_le_name_patch
-	rtn blank
-
-	fetch 1,mem_le_name_patch_len
-	copy pdata,rega
-	sub pdata,11,null
-	nbranch p_mouse_le_name_patch_len_overflow,positive
-
-	arg mem_le_name_patch,contr	
-	arg mem_le_adv_swift_pair+9,contw
-	copy rega,loopcnt
-	call memcpy
-	
-	arg mem_le_name_patch,contr
-	arg mem_le_scan_data+2,contw
-	copy rega,loopcnt
-	call memcpy
-	
-	arg mem_le_name_patch,contr
-	arg mem_le_name,contw
-	copy rega,loopcnt
-	branch memcpy
-
-p_mouse_le_name_patch_len_overflow:
-	call p_mouse_le_swift_pair_disable
-	fetch 1,mem_le_name_patch_len
-	increase 1,pdata
-	store 1,mem_le_adv_swift_pair
-	jam 9,mem_le_adv_swift_pair+1
-	arg mem_le_name_patch,contr
-	arg mem_le_adv_swift_pair+2,contw
-	copy rega,loopcnt
-	call memcpy
-
 	fetch 1,mem_le_name_patch_len
-	increase 1,pdata
-	store 1,mem_le_scan_data
-	jam 9,mem_le_scan_data+1
-	arg mem_le_name_patch,contr
-	arg mem_le_scan_data+2,contw
-	copy rega,loopcnt
-	call memcpy
-
+	rtn blank
+	add pdata,1,loopcnt
 	arg mem_le_name_patch_len,contr
 	arg mem_le_name_len,contw
-	copy rega,loopcnt
-	increase 1,loopcnt
 	branch memcpy
-	
-p_mouse_le_swift_pair_disable:
-	arg mem_le_adv_swift_pair,contw
-	arg 20,loopcnt
-	branch clear_mem
 
 p_mouse_setting_config:
 	rtn wake
+ifdef G24_OTA
+	ncall p_g24_load_ota_config_poweron,wake
+endif
 	call g24_transmit_init
 	call g24_chmap_param_init
 	call mouse_gpio_init
+	call p_mouse_le_name_load	
 	call mouse_param_init
-	fetch 1,mem_mouse_ice_sdio_for_sensor_angle
-	branch p_mouse_setting_config_next,blank
+	call p_mouse_le_buff_modify
+ifdef YJX_ICE_SELECT_ANGLE
 	call p_mouse_sensor_set_angle
 	fetcht 1,mem_mouse_sensor_sdio_gpio
 	call gpio_config_input
 	call p_ice_gpio_set_float
-p_mouse_setting_config_next:	
-	call p_g24_short_sleep_set_8ms
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_setting_config_next
-	call p_g24_short_sleep_set_4ms
-	branch mouse_setting_config_next
+endif
+	call p_mouse_device_multi_led_parm_init
+ifdef FIRE_KEY
+	call p_mouse_firebutton_connect_state_check
+endif	
+ifdef DOUBLE_DPI_KEY
+	call p_mouse_double_dpi_judge
+endif
+	call p_mouse_customer_key_connect_vin
+	call p_mouse_store_normal_tx_power
+	call le_set_config_fixed_ltk
+	call le_set_justwork
+	call le_set_fixed_ltk
+	call le_set_config_read_authentication
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_EEPROM
+p_mouse_load_eeprom_info_check:
+	call iicd_read_init_pin
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	isolate1 MOUSE_ENABLE_2K_EEPROM,pdata
+	ncall clear_eeprom_size_2k,true
+	call mouse_eeprom_load_recon_info
+
+	call p_mouse_load_device_flag_check
+
+	fetch 2,mem_store_flag
+	arg EEPROM_INIT_FLAG,temp
+	isub temp,null
+	branch mouse_load_device_info,zero
+	storet 2,mem_store_flag
+	call mouse_ble_init_address
+	fetch 1,mem_device_flag_temp
+	store 1,mem_device_flag
+p_mouse_load_default_dpi:
+	fetch 1,mem_config_sensor_dpi
+	store 1,mem_mouse_dpi
+	rtn
 
+p_mouse_load_device_flag_check:
+	fetch 1,mem_device_flag
+	sub pdata,3,null
+	rtn positive
+	jam MODE_24G_DEVICE,mem_device_flag
+	rtn
+
+p_mouse_le_buff_modify:
+	setarg mem_le_tx_buffer0_omemalloc_new
+	store 2,mem_ble_l2cap_tx_buff0_ptr
+	setarg MOUSE_BLE_L2CAP_TXBUFF_SIZE_NEW
+	store 2,mem_ble_l2cap_tx_buff_size_ptr
+	rtn
+
+ifdef YJX_ICE_SELECT_ANGLE
 p_mouse_sensor_set_angle:
 	fetch 1,mem_sensor_angle_default
 	store 1,mem_config_sensor_angle
@@ -321,7 +610,7 @@
 	fetch 1,mem_select_sensor_angle_gpio
 	arg gpcfg_output_low,temp
  	call gpio_config_function_int
-	arg 3,pdata
+ 	arg 0x03,pdata	//gpio3
 	arg gpcfg_output_low,temp
  	call gpio_config_function_int
  	fetcht 1,mem_mouse_sensor_sdio_gpio
@@ -334,16 +623,13 @@
 p_ice_gpio_set_float:
  	fetcht 1,mem_select_sensor_angle_gpio
 	call gpio_set_high_impedance
-	arg 3,temp
+	arg 0x03,temp	//gpio3
 	branch gpio_set_high_impedance
+endif
 
-p_g24_short_sleep_set_8ms:
-	setarg 58000
-	store 3,mem_24g_short_sleep_set
-	rtn
-p_g24_short_sleep_set_4ms:
-	setarg 6000
-	store 3,mem_24g_short_sleep_set
+p_mouse_store_normal_tx_power:
+	fetch 1,mem_tx_power
+	store 1,mem_normal_tx_power
 	rtn
 
 p_mouse_cb_fuction:
@@ -355,8 +641,15 @@
 
 p_mouse_24g_package_data:		// 250Hz
 	rtnmark0 mark_24g
+ifdef G24_OTA
+	fetch 1,mem_g24_ota_mode
+	nbranch p_mouse_24g_package_ota,blank
+endif
 	call mouse_motion
 	nrtn user
+	fetch 1,mem_long_sleep_flag
+	jam 0,mem_long_sleep_flag
+	ncall p_mouse_short_sleep_clear_wake,blank
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
 	fetch 1,mem_customer_key
@@ -381,8 +674,14 @@
 	jam TYPE_MS,mem_24g_data_type
 	arg 7,rega	//length
 	arg mem_mouse_key,regb //tx buff
+	//fetch 2,mem_mouse_z
+	//rtn blank
 	branch g24_transmit_by_interrupt_enable
 
+p_mouse_short_sleep_clear_wake:
+	call clear_wake
+	branch lpm_write_gpio_wakeup
+
 p_mouse_24g_search_dongle:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
@@ -406,19 +705,13 @@
 	call g24_transmit_receive_ack
 	nbranch p_mouse_24g_search_dongle_loop_retry,sync
 	nbranch p_mouse_24g_search_dongle_loop_retry,user3
-	call mouse_24g_search_dongle_success
+	call p_mouse_24g_search_dongle_success
 p_mouse_24g_search_dongle_loop_end:
 	call g24_txbuf_clear
 	fetch 1,mem_mouse_search_dongle_count
 	increase 1,pdata
 	store 1,mem_mouse_search_dongle_count
-	beq G24_CH_POLL_COUNT,p_mouse_24g_search_dongle_check
-	rtn	
-
-p_mouse_24g_search_dongle_loop_retry:
-	call g24_ch
-	branch p_mouse_24g_search_dongle_loop
-
+	rtnne G24_CH_POLL_COUNT
 p_mouse_24g_search_dongle_check:
 	jam 0,mem_mouse_search_dongle_count
 	fetch 1,mem_mouse_search_dongle_action
@@ -429,12 +722,28 @@
 	store 2,mem_mouse_no_data_timer
 	branch p_mouse_sensor_powerdown
 
+p_mouse_24g_search_dongle_success:
+	fetch 1,mem_24g_abort_pac
+	branch mouse_24g_search_dongle_init,blank
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit0 G24_DISCONN_STATE
+	set0 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	call mouse_no_data_timer_init
+	branch p_mouse_init_sensor_wakeup
+
+p_mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch p_mouse_24g_search_dongle_loop
+
 p_g24_transmit_no_interrupt:
 	call g24_txdata_prep
 	nbranch p_g24_nodata_transmit,user
 p_g24_transmit_start:
 	call p_g24_transmit_process
 	call power_ctrl_start
+	call p_mouse_24g_fast_conn_mode_check
 	fetch 1,mem_sensor_shutdown_flag
 	nbranch p_g24_short_sleep,blank
 	fetch 8,mem_24g_long_sleep_set
@@ -458,35 +767,23 @@
 	beq no_ack_24g,g24_transmit_no_ack
 	nbranch p_g24_retransmit,sync
 	nbranch p_g24_retransmit,user3
-	call g24_ackpayload_parse
+	call g24_ackpayload_parse		
+ifdef G24_OTA
+	call p_g24_mouse_parse_rx
+endif
 	call p_mouse_wakeup_24g
 	branch g24_transmit_no_ack
 
-p_mouse_wakeup_24g:
-	fetch 1,mem_sensor_shutdown_flag
-	ncall p_mouse_wakeup_24g_from_long_sleep,blank
-	jam 0,mem_sensor_shutdown_flag
-	rtn	
-	
-p_mouse_wakeup_24g_from_long_sleep:
-	call mouse_init_sensor_wakeup
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-p_mouse_wheel_set_wakeup:
-	fetch 1,mem_whee_a_data_gpio
-	arg gpcfg_pullup,temp
- 	call gpio_config_function_int
-	fetch 1,mem_whee_b_data_gpio
-	arg gpcfg_pullup,temp
- 	branch gpio_config_function_int
 
-p_g24_retransmit:	
+p_g24_retransmit:
 	fetch 1,mem_mouse_need_soft_reset
 	nrtn blank
 	call p_mouse_select_device_by_pb_button
-
+ifdef G24_RETRANSMIT_DPI
+	call p_mouse_select_device_by_dpi_button_once
+endif
 	fetch 1,mem_24g_abort_pac
-	nrtn blank
+	nrtn  blank
 	fetch 2,mem_24g_txfail_cnt
 	increase 1,pdata
 	store 2,mem_24g_txfail_cnt	
@@ -495,7 +792,57 @@
 	call g24_transmit_hop_process
 	call p_delay_40ms
 	branch p_g24_transmit_loop
+	
+p_delay_40ms:
+	fetch 1,mem_24g_txfail_cnt+1
+	sub pdata,0x00,null
+	rtn positive
+	arg 40,loopcnt
+	branch delay_ms_wait
+	
+ifdef PAIR_FAST_POWER_CTRL
+p_g24_transmit_hop_process:
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch p_g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	branch g24_transmit_hop_process+5
+
+p_g24_tx_fast_hop:
+	fetch 4,mem_24g_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch g24_ch,zero		//fast conn->power no chage
+ifdef DISTANCE_DISCON
+	call p_power_ctrl_txpower_incrs
+	call power_ctrl_pac_succ_decrs
+	branch g24_ch
+else
+	branch g24_tx_fast_hop
+endif
+
+endif
+
+ifdef G24_RETRANSMIT_DPI
+p_mouse_select_device_by_dpi_button_once:
+	arg 12,queue
+	call timer_check
+	nrtn blank
+	call p_mouse_dpi_check_once
+	call mouse_dpi_key_check_long_press
+p_mouse_g24_retransmit_100ms_timer_init:
+	arg 12,queue
+	setarg 160
+	branch timer_init
+	
+p_mouse_dpi_check_once:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	branch p_mouse_dpi_check
+endif
 
+p_mouse_select_device_by_pb_button_check_once:
+	jam 0x03,mem_mouse_pbkey_press_status
 p_mouse_select_device_by_pb_button:
 	fetch 1,mem_config_select_device_button_gpio
 	rtneq GPIO_DISABLE
@@ -517,43 +864,62 @@
 	call mouse_gpio_config_input_pu
 	branch p_mouse_select_device_by_pb_button_exit
 
-p_delay_40ms:
-	fetch 1,mem_24g_txfail_cnt+1
-	sub pdata,0x00,null
-	rtn positive
-	arg 40,loopcnt
-	branch delay_ms_wait
-		
+p_mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall p_mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_sensor_shutdown_flag
+	rtn	
+	
+p_mouse_wakeup_24g_from_long_sleep:
+	call p_mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+p_mouse_wheel_set_wakeup:
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_whee_b_data_gpio
+	branch mouse_gpio_config_input_pu
+
 /////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
 	
 p_mouse_app_enter_hibernate:	// 1.3mA hibernate after sensroe reset
+ifdef RGB_LED
+	fetch 1,mem_mouse_rgb_adc_no_power_flag
+	nrtn blank
+	jam 1,mem_mouse_rgb_adc_no_power_flag
+endif
 	setarg PAN_REG_CONFIG
 	call twspi_read
 	bbit1 3,mouse_app_enter_hibernate+3
 	call p_mouse_sensor_reset
 	call p_mouse_sensor_powerdown
+ifdef RGB_LED
+	branch p_mouse_rgb_led_off
+endif
 	branch mouse_app_enter_hibernate+3
 
 p_mouse_setgpio_hibernate:
 	call mouse_set_sdio_high
 	call clear_wake
+ifdef LOGO_LED
 	call p_mouse_logo_led_off
+endif
 	call mouse_before_hibernate_wheel_gpio_set
 	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
 	call gpio_out_active
 	fetcht 1,mem_matrix_public_gpio
 	call gpio_clr_wake
 	fetch 1,mem_mouse_sensor_sdio_gpio
-	arg gpcfg_output_high,temp
-	call gpio_config_function_int
+	call p_mouse_gpio_config_output_high
 	arg 3,temp
 	call mouse_gpio_config_input_pu
-	call mouse_lpm_before_common
+	call p_mouse_lpm_before_common
 	call gpio_pd_idle
+	call p_mouse_device_multi_led_all_off
 	arg 19,temp
 	call mouse_gpio_config_input_pu
 	call p_mouse_device_switch_gpio_high_impedance
-	call p_mouse_gpio_set_high_impedance
+//	call p_mouse_gpio_set_high_impedance
 	call p_mouse_adc_gpio_set_before_hibernate
 	branch p_mouse_wheel_gpio_set_before_hibernate
 
@@ -563,31 +929,46 @@
 	fetcht 1,mem_device_switch_gpio
 	branch gpio_set_high_impedance
 	
-p_mouse_gpio_set_high_impedance:
-	fetch 3,mem_mouse_set_high_impedance_bit_set
-	store 3,mem_pdatatemp
-	arg 20,loopcnt
-	arg 0,temp
-p_mouse_gpio_set_high_impedance_bit_loop:	
-	fetch 3,mem_pdatatemp
-	isolate1 0,pdata
-	call gpio_set_high_impedance,true
-	fetch 3,mem_pdatatemp
-	rshift pdata,pdata
-	store 3,mem_pdatatemp
-	increase 1,temp
-	loop p_mouse_gpio_set_high_impedance_bit_loop
-	rtn
+//p_mouse_gpio_set_high_impedance:
+//	fetch 3,mem_mouse_set_high_impedance_bit_set
+//	store 3,mem_pdatatemp
+//	arg 20,loopcnt
+//	arg 0,temp
+//p_mouse_gpio_set_high_impedance_bit_loop:	
+//	fetch 3,mem_pdatatemp
+//	isolate1 0,pdata
+//	call gpio_set_high_impedance,true
+//	fetch 3,mem_pdatatemp
+//	rshift pdata,pdata
+//	store 3,mem_pdatatemp
+//	increase 1,temp
+//	loop p_mouse_gpio_set_high_impedance_bit_loop
+//	rtn
 
 p_mouse_adc_gpio_set_before_hibernate:	
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_1IO2LED,p_mouse_adc_gpio_set_before_hibernate_next
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_ADC
-	fetch 1,mem_adc_config_flag_init
-	rtnne ADC_CONFIG_GPIO
+p_mouse_adc_gpio_set_before_hibernate_next:
+	call p_mouse_adc_gpio_set
 	fetch 1,mem_adc_channel_gpio	
 	arg gpcfg_no_ie,temp
  	branch gpio_config_function_int
 
+p_mouse_adc_gpio_set:
+	fetcht 1,mem_adc_channel
+	sub temp,3,null
+	branch p_mouse_adc_gpio_4_7_set,positive
+	increase 5,temp
+p_mouse_adc_gpio_store:
+	storet 1,mem_adc_channel_gpio
+	rtn
+
+p_mouse_adc_gpio_4_7_set:
+	increase 4,temp
+	branch p_mouse_adc_gpio_store
+
 p_mouse_wheel_gpio_set_before_hibernate:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
@@ -596,45 +977,21 @@
 	call gpio_clr_wake
 	fetcht 1,mem_whee_b_data_gpio
 	call gpio_clr_wake
-		
-	fetch 1,mem_whee_a_data_gpio
-	arg gpcfg_pulldown,temp
-	call gpio_config_function_int
-	fetch 1,mem_whee_b_data_gpio
-	arg gpcfg_pulldown,temp
-	branch gpio_config_function_int
+	fetcht 1,mem_whee_a_data_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_whee_b_data_gpio
+	branch mouse_gpio_config_input_pd
 
 p_mouse_lpm_before_common:
 	fetcht 1,mem_whee_a_data_gpio		//reinit gpio pu after disable wheel wakeup
 	call gpio_config_input
 	fetcht 1,mem_whee_b_data_gpio
 	call gpio_config_input
-
+	
 	call mouse_wheel_check
 	fetch 1,mem_mouse_sensor_sclk_gpio	// set sclk high
-	arg gpcfg_output_high,temp
- 	call gpio_config_function_int
-
-	fetch 1,mem_mouse_ice_sdio_for_sensor_angle
-	ncall p_mouse_lpm_before_disable_ice_sdio_gpio_wake,blank
-	branch mouse_lpm_before_common_next
-
-p_mouse_lpm_before_disable_ice_sdio_gpio_wake:
-	fetcht 1,mem_select_sensor_angle_gpio	//clear ice wakeup
-	call gpio_clr_wake
-	fetcht 1,mem_mouse_sensor_sdio_gpio	//clear sdio wakeup
-	branch gpio_clr_wake
-
-p_mouse_24g_hibernate_set:
-	jam 0,mem_24g_attempt_fail_flag
-	call g24_transmit_next_packet
-	setarg -1
-	store 4,mem_24g_enter_hibernate
-	setarg 0
-	store 7,mem_mouse_key
-	jam 1,mem_sensor_shutdown_flag
-	call p_mouse_sensor_powerdown
-	branch p_g24_long_sleep
+	call p_mouse_gpio_config_output_high
+	branch mouse_lpm_before_common+4
 
 p_g24_nodata_transmit:
 	fetch 1,mem_24g_abort_pac
@@ -643,11 +1000,13 @@
 	rtneq G24_TX_TIMER_INT_ENABLE
 	call g24_search_receiver
 p_g24_long_sleep:
-	call g24_lpm_wait
+	call p_g24_lpm_wait
 	nrtn user
+	call g24_setgpio_lpm_before
+	jam 1,mem_long_sleep_flag
 	fetch 1,mem_sensor_shutdown_flag
-	ncall mouse_setgpio_hibernate,blank
-	fetch 4,mem_24g_enter_hibernate
+	ncall p_mouse_setgpio_hibernate,blank
+	fetch 8,mem_24g_enter_hibernate
 	branch g24_long_sleep2
 
 p_g24_send_abort_packet:
@@ -669,46 +1028,55 @@
 p_mouse_priority_bb_event:
 	copy regc,pdata
 	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
-	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_disconnected
 	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
 	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
 	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
-	beq BT_EVT_RECONN_FAILED,p_mouse_bb_event_reconn_failed
-	beq BT_EVT_RECONN_PAGE_TIMEOUT,p_mouse_bb_event_reconn_failed
 	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,p_mouse_le_parse_conn_param_accepted
 	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
+	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
+	beq BT_EVT_LE_PARSE_CONN_PAPA_UPDATE_RSP,p_mouse_le_conn_param_update_rsp_recieved
+	beq BT_EVT_HID_HANDSHAKE,p_mouse_bt_hid_handshake
+	beq BT_EVT_HID_CONNECTED,p_app_hid_connected
 	branch mouse_priority_bb_event+2
 
-p_mouse_bb_event_connected:
+p_app_hid_connected:
 	call mouse_no_data_timer_init
-	branch mouse_bb_event_connected
-
-p_mouse_bb_disconnected:
-	call mouse_sensor_powerdown
-	branch mouse_bb_disconnected
+	call mouse_init_sensor_reset
+	call p_mouse_device_poweron_led_config
+	branch app_hid_connected
+
+p_mouse_bt_hid_handshake:
+	jam APP_HANDSHAKE_DONE,mem_app_handshake_flag
+	call app_lpm_mult_enable
+	branch mouse_bt_hid_handshake+3
+
+p_mouse_le_bb_event_connected:
+ifdef RGB_LED_ON_AFTER_PAIR
+	call p_mouse_rgb_led_on_check_next
+endif
+ifdef COMMBINATION_DPI
+	jam 1,mem_mouse_commbination_dpi_check_enable
+endif
+	call p_mouse_device_poweron_led_config
+	branch mouse_le_bb_event_connected
+	
+p_mouse_bb_event_connected:
+ifdef RGB_LED_ON_AFTER_PAIR
+	call p_mouse_rgb_led_on_check_next
+endif
+ifdef COMMBINATION_DPI
+	jam 1,mem_mouse_commbination_dpi_check_enable
+endif
+	jam 0,mem_mouse_long_mult_flag
+	branch mouse_bb_event_connected+2
 	
 p_mouse_le_bb_disconnected:
-	call mouse_sensor_powerdown
 	setarg 0
 	store 2,mem_le_battery_level_updata_timer
-	jam 0,mem_mouse_le_bb_connected_flag
-	setarg LE_INTERVAL_7_5MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next+2
-	setarg LE_INTERVAL_8_75MS
-	branch mouse_le_bb_disconnected_next
-
-p_mouse_bb_event_reconn_failed:
-	fetch 1,mem_mouse_bluetooth_fast_conn_flag
-	beq 0xff,mouse_buletooth_fast_conn_end
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BTN_DOWN
-	rtnbit1 UI_STATE_BT_DISCOVERY
-	rtnbit1 UI_STATE_BLE_ADV
-	branch mouse_app_enter_hibernate
+	store 1,mem_mouse_le_send_conn_param_update
+	store 1,mem_mouse_le_send_conn_param_update_timer
+	store 1,mem_mouse_le_bb_connected_flag	
+	branch mouse_le_bb_disconnected+7
 
 p_mouse_le_ll_start_encryt:
 	fetch 1,mem_mouse_le_reconnect_flag
@@ -717,49 +1085,67 @@
 	branch mouse_le_ll_enable_start_enc_flag
 p_mouse_le_ll_reconn_start_encryt:
 	call mouse_updata_le_param
-	jam 5,mem_le_start_encrypt_timer
+	jam 10,mem_le_start_encrypt_timer
 	branch mouse_le_ll_enable_start_enc_flag
 
-p_mouse_le_parse_conn_param_accepted:
-	fetch 1,mem_le_new_conninterval
-	sub pdata,LE_INTERVAL_15MS,null
-	nbranch mouse_le_conn_param_lpm_disable,positive
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	fetch 1,mem_le_new_connslavelatency
-	branch mouse_le_lpm_mult_reinit,blank
-	fetcht 1,mem_lpm_mult_init
-	isub temp,null
-	branch mouse_le_lpm_mult_reinit,positive
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult_init						// mouse_le_lpm_mult_reinit function will reinit mem_lpm_mult
-	branch mouse_le_conn_param_lpm_enable
-
+p_mouse_le_conn_param_update_rsp_recieved:
+	fetch 1,mem_mouse_le_send_conn_param_update
+	nrtn blank
+	jam 1,mem_mouse_le_send_conn_param_update
+	jam 30,mem_mouse_le_send_conn_param_update_timer
+	rtn
 
+p_mouse_agc_disable_nomal_power:
+	call p_mouse_soft_agc_disable
+p_mouse_fetch_normal_tx_power:
+	fetch 1,mem_normal_tx_power
+	store 1,mem_tx_power
+	rtn
+	
 p_mouse_24g_pairing_complete:
+ifdef RGB_LED_ON_AFTER_PAIR
+	call p_mouse_rgb_led_on_check_next
+endif
+ifdef COMMBINATION_DPI
+	jam 1,mem_mouse_commbination_dpi_check_enable
+endif
+	call p_mouse_agc_disable_nomal_power
 	call mouse_no_data_timer_init
+	call p_mouse_device_poweron_led_config
 	branch mouse_24g_pairing_complete
 
 p_mouse_24g_attempt_success:
+ifdef RGB_LED_ON_AFTER_PAIR
+	call p_mouse_rgb_led_on_check_next
+endif
+ifdef COMMBINATION_DPI
+	jam 1,mem_mouse_commbination_dpi_check_enable
+endif
 	fetch 4,mem_24g_addr
 	store 4,mem_24g_receiver_addr
 	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
 	call g24_ch_syncword_crc8_init
-	call mouse_device_poweron_timer_init
+	call p_mouse_device_poweron_led_config
 	call mouse_no_data_timer_init
+	call mouse_init_sensor_reset
 	jam 0,mem_mouse_long_mult_flag
 	jam 0,mem_24g_conn_sm
 	jam 0,mem_24g_reconn_type
-	branch mouse_init_sensor_reset
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	rtn zero
+	call p_mouse_agc_disable_nomal_power
+	branch mouse_24g_first_store_reconn_info
+
 
 p_mouse_24g_attempt_fail:
+	call p_mouse_agc_disable_nomal_power
 	fetch 1,mem_24g_attempt_fail_flag
 	nbranch p_mouse_24g_hibernate_set,blank
 	fetch 1,mem_24g_reconn_type
 	beq FAST_CONN_AND_3_0_ADDR,p_mouse_24g_fast_conn_attempt_fail
-	beq PAIR_AND_3_0_ADDR,p_mouse_24g_auto_pair_attempt_fail
-	beq RECEIVER_AND_3_0_ADDR,mouse_reconn_dongle_attempt_fail
-	branch p_mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_attempt_fail+4
 
 p_mouse_24g_fast_conn_attempt_fail:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
@@ -771,24 +1157,28 @@
 	isub temp,null
 	branch p_mouse_24g_start_pair_mode,zero
 	branch mouse_24g_reconn_dongle_start
-
+	
 p_mouse_24g_start_pair_mode:
 	jam 0,mem_24g_reconn_type
+	call p_mouse_device_pair_led_config
 	branch mouse_24g_start_pair_mode
 
-p_mouse_24g_auto_pair_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_attempt_fail_enter_hibernate
-	fetch 1,mem_device_number
-	beq 1,mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
-	call p_mouse_bt_reconn_setting_led_gpio
-	branch mouse_24g_first_bluetooth_reconnect
+p_mouse_24g_hibernate_set:
+ifdef RGB_LED
+	set0 mark_24g,mark
+	branch p_mouse_rgb_led_off
+endif
+p_mouse_24g_hibernate_set_next:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 8,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call p_mouse_sensor_powerdown
+	branch p_g24_long_sleep
 
-p_mouse_24g_attempt_fail_enter_hibernate:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL,mouse_24g_attempt_fail_enter_hibernate
-	branch p_mouse_24g_hibernate_set
-	
 p_g24_pair_dispatch:
 	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
 	fetch 2,mem_24g_pair_count
@@ -814,11 +1204,11 @@
 	nbranch p_g24_reconn_device_fail,sync
 	nbranch p_g24_reconn_device_fail,user3
 	call g24_ackpayload_parse
-
 	fetch 4,mem_24g_pair_addr
 	fetcht 4,mem_24g_addr
 	isub temp,null
 	branch g24_pair_start,zero
+	
 	fetch 4,mem_24g_device_addr
 	fetcht 4,mem_24g_addr
 	isub temp,null
@@ -830,153 +1220,589 @@
 	store 2,mem_24g_pair_timeout
 	store 2,mem_24g_reconn_count
 	store 2,mem_24g_reconn_timeout	
-	jam BT_EVT_24G_ATTEMPT_SUCCESS,mem_fifo_temp
-	call ui_ipc_send_event
-	branch g24_txbuf_clear
-
+	branch g24_reconn_attempt_success
+	
 p_g24_store_receiver_addr:
 	fetch 4,mem_24g_rxpayload+2
 	rtn blank
 	store 4,mem_24g_receiver_addr	
 	branch g24_ch_syncword_crc8_init
-
+	
 p_g24_reconn_device_fail:
 	fetch 1,mem_24g_fast_conn_enable
 	branch g24_ch,blank
 	fetch 2,mem_24g_reconn_count
 	increase 1,pdata
 	store 2,mem_24g_reconn_count
-	fetch 1,mem_24g_reconn_count+1
-	isolate1 1,pdata	// each 8 times switch
+	isolate1 9,pdata	// each 8 times switch
 	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
-	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
-	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
 	beq PAIR_AND_3_0_ADDR,p_g24_reconn_pair_and_3_0
-	branch g24_reconn_receiver_addr
+	beq FAST_CONN_AND_3_0_ADDR,p_g24_reconn_fast_conn_and_3_0
+	branch g24_reconn_device_fail+7
 
 p_g24_reconn_pair_and_3_0:
 	branch g24_reconn_device_3_0_addr,true
 	branch g24_pair_init_param
 
+p_g24_reconn_fast_conn_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+p_mouse_fast_conn_tx_power_set:
+	jam TX_POWER_F17DB,mem_tx_power
+	call p_set_tx_power_f17db
+	branch g24_reconn_fast_conn+2
+
+
 p_g24_dispatch:
-	rtnmark1 mark_adc_enable
+ifdef RGB_LED
+	fetch 1,mem_sensor_shutdown_flag
+	ncall p_mouse_enable_g24_mark,blank
+endif
 	bmark1 mark_24g_rxmode,g24_receive_dispatch
 p_g24_transmit_dispatch:
 	rtnmark0 mark_24g
 	fetch 1,mem_24g_conn_sm
-	bbit1 STATE_24G_PAIR,g24_pair_dispatch
-	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
-	branch g24_transmit_no_interrupt
+ifdef G24_OTA
+	bbit1 STATE_24G_OTA,p_g24_ota_dispatch
+endif
+	branch g24_transmit_dispatch+2
 
-p_g24_transmit_by_interrupt:
-	call g24_timer_check
-	nbranch p_g24_transmit_dispatch,user
-	call g24_interval_calibrate
-	fetch 2,mem_24g_transmit_by_interrupt_exit_count
-	increase 1,pdata
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	branch g24_transmit_no_interrupt
+ifdef RGB_LED
+p_mouse_enable_g24_mark:
+	jam ON,mem_rgb_led_on_enable
+	call p_mouse_rgb_led_on_enable_timer_init
+	set1 mark_24g,mark
+	rtn
+p_mouse_rgb_led_on_enable_timer_init:	
+	jam OFF,mem_rgb_led_off_enable	//gpio ouput active 1s enable rgb led
+	jam 11,mem_rgb_led_on_enable_timer
+	rtn
+endif
 
 p_mouse_start_work:
 	fetch 1,mem_wakup_from_power_flag
 	bbit0 BIT_POWER_ON,p_mouse_start_24g_reconn
 	fetch 1,mem_device_flag
 	beq MODE_BT_DEVICE1,mouse_check_bt_reconn_target
-p_mouse_start_24g_reconn:	
+p_mouse_start_24g_reconn:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_start_auto_pair_mode
 	fetch 1,mem_device_flag
 	beq MODE_24G_DEVICE,p_mouse_24g_start_mode
 	branch mouse_start_work+5
-
-p_mouse_start_reconnect_device:
-	arg mem_device1_type,rega
-	fetch 1,mem_device_flag
-	increase -1,pdata
-	mul32 pdata,29,pdata
-	iadd rega,rega
-	ifetch 1,rega
-	store 1,mem_xrecord_mode
-p_mouse_start_reconnect:	
-	fetch 1,mem_xrecord_mode
-	beq REC_3_MODE,mouse3_0_check_reconn_target
-	beq REC_4_MODE,mouse4_0_check_reconn_target
-	branch mouse_buletooth_fast_conn_init
-
+	
 p_mouse_24g_start_mode:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call p_mouse_device_pair_led_config
 	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
 	branch mouse_24g_reconn_dongle_start,user
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,mouse_24g_reconn_general_dongle
 	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,mouse_24g_reconn_general_dongle
-	call mouse_key_check_once		// pdata output:00
+	call mouse_key_check_once		
 	and rega,0x07,pdata
 	branch mouse_24g_start_mode+9
-
-///////////////////dpi led adjust////////////////////////////////////////////////////////////////////
+	
+//=============dpi level setting===========//
 p_mouse_seting_dpi:
 	call mouse_setting_dpi_4_level
 	call p_mouse_dpi_led_blink_delay
+p_mouse_seting_sensor_type:
+ifdef S201X_SENSOR
+	fetch 1,mem_config_sensor_type
+	beq S201X,p_mouse_seting_S201_dpi
+endif
 	branch mouse_seting_sensor_type
 
+ifdef S201X_SENSOR
+p_mouse_seting_S201_dpi:
+	fetch 1,mem_mouse_dpi
+	beq MOUSE_DPI_LEVEL1,p_mouse_set_S201_dpi_0	//1200
+	beq MOUSE_DPI_LEVEL2,p_mouse_set_S201_dpi_2	//2400
+	beq MOUSE_DPI_LEVEL3,p_mouse_set_S201_dpi_3	//3200
+p_mouse_set_S201_dpi_0:	//1200
+	fetch 1,mem_sensor_s201_dpi_0
+	branch p_mouse_dpi_S201_store
+	
+p_mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	branch p_mouse_dpi_s201_store
+
+p_mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+p_mouse_dpi_s201_store:
+	copy pdata,rega
+	setarg 0xc309
+	call twspi_write
+	copy rega,pdata
+	lshift8 pdata,pdata
+	add pdata,0x23,pdata
+	call twspi_write
+	setarg 0x0009
+	branch twspi_write
+
+//p_mouse_set_S201_dpi_1:	//1600
+//	fetch 1,mem_sensor_s201_dpi_1
+//	branch p_mouse_dpi_S201_store
+	
+//p_mouse_set_S201_dpi_4:	//800
+//	fetch 1,mem_sensor_s201_dpi_4
+//	branch p_mouse_dpi_s201_store
+endif
+p_mouse_init_sunt:
+	call mouse_sensor_spi_init		
+	rtn wake
+p_mouse_init_sensor_wakeup:	
+	call mouse_sensor_poweron
+p_mouse_init_sensor:
+	call mouse_read_sensor_id
+	beq P32XX_ID1,p_mouse_init_p32xx_id2_judge
+	beq P3065_ID1,mouse_init_p3065
+	beq PKA8G2_ID1,mouse_ka8g2_id2_judge
+	call mouse_twspi_reset
+	nop 6900
+	branch p_mouse_init_sensor
+
+p_mouse_init_p32xx_id2_judge:
+	fetch 1,mem_sensor_id2
+	beq P3205_TJ3T_ID2,p_mouse_3205_3t_init_param
+	beq P_MX8650,p_mouse_mx8650_init_param
+	branch mouse_init_p32xx_id2_judge+2
+
+p_mouse_mx8650_init_param:
+	jam MX8650,mem_config_sensor_type
+	call mouse_sensor_reset
+	call delay_10ms
+	arg mem_sensor_8650_init_new,regc
+	branch p_mouse_sensor_end
+
+p_mouse_3205_3t_init_param:
+ifdef S201X_SENSOR
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,p_mouse_S201X_init_param
+endif
+	branch mouse_3205_3t_init_param
+
+ifdef S201X_SENSOR
+p_mouse_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
+endif
+
+//===========dpi led blink==============//
 p_mouse_dpi_led_blink_delay:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_1IO2LED,p_mouse_dpi_led_blink_delay_new1
 	fetch 1,mem_dpi_led_gpio
 	rtneq GPIO_DISABLE
+p_mouse_dpi_led_blink_delay_new1:
 	fetch 2,mem_mouse_discovery_timer
 	nrtn blank
 	fetch 2,mem_24g_pair_timeout
 	nrtn blank
 	fetch 2,mem_24g_reconn_timeout
 	nrtn blank
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_1IO2LED,p_mouse_dpi_led_blink_delay_new2
 	fetch 1,mem_mouse_device_poweron_timer_count
 	nrtn blank
+p_mouse_dpi_led_blink_delay_next:
 	fetch 1,mem_mouse_dpi_led_delay_count_init
 	branch p_mouse_dpi_led_blink_init,blank
 	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
 	rtn
-
+p_mouse_dpi_led_blink_delay_new2:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	nrtn blank
+	branch p_mouse_dpi_led_blink_delay_next
 
 p_mouse_bb_event_timer:
 	call mouse_adc_read
-	call mouse_low_voltage_led_timer
+	call p_mouse_low_voltage_led_timer
 	//24g
 	call g24_pair_timeout_timer
 	call g24_reconn_timeout_timer
 	call mouse_24g_long_sleep_param_update_timer
 	//led
-	call p_mouse_device_poweron_timer
+//	call mouse_device_poweron_timer
 	call p_mouse_dpi_led_blink_delay_timer
-
+	call p_mouse_led_multi_timer
+ifdef RGB_LED
+	call p_mouse_rgb_led_off_enable_timer
+	call p_mouse_rgb_led_on_enable_timer
+	call p_mouse_rgb_led_on_timer
+endif
+ifdef LOGO_LED
+	call p_mouse_logo_led_on_timer
+endif
 	call mouse_dpi_key_check_long_press
 	call mouse_bt_discovery_check
 	call p_mouse_commbination_key_process
 	call mouse_check_discovery_timeout_timer
+ifdef COMMBINATION_DPI
+	call p_mouse_commbination_dpi_check_timer
+endif
 	//ble
 	call p_mouse_check_direct_timeout_timer
 	call mouse_le_enable_att_list_timer
 	call p_mouse_le_battery_updata_timer
 	call mouse_le_send_smp_security_request_timer
+	call p_mouse_le_send_conn_param_update_timer
 	//bt
 	call mouse_check_hid_handshake_timer
 	call mouse_bt_check_sniff_req_timeout_timer
-	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+	call p_mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
 	call mouse_current_mult_update_timer
 	call mouse_wheel_trigger_timer
 	call mouse_store_information_delay_timer
-	call p_mouse_logo_led_on_timer
+ifdef G24_OTA	
+	call p_mouse_g24_ota_reset_timer
+endif
 	branch p_mouse_check_no_data_timeout_timer
 
-p_mouse_check_direct_timeout_timer:	
+p_mouse_check_direct_timeout_timer:
 	arg mem_mouse_direct_timer,regc
 	arg mouse_check_direct_timeout,regb
 	call timer_single_step
 	branch mouse_check_direct_timeout_timer+3
+
+p_mouse_check_reconnect_delay_long_sleep:
+	arg mem_mouse_bluetooth_reconnect_timeout,regc
+	arg p_mouse_app_enter_hibernate_check,regb
+	branch timer_single_step
+
+p_mouse_app_enter_hibernate_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_RECONNECT_TIMEOUT_ENTER_DISCOVERY,p_mouse_start_discovery
+	branch mouse_app_enter_hibernate
+
+ifdef COMMBINATION_DPI
+p_mouse_commbination_dpi_check_timer:
+	fetch 1,mem_mouse_commbination_key_dpi
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_commbination_dpi_check_enable
+	rtn blank
+	call p_mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key_dpi
+	isub temp,null
+	branch p_mouse_commbination_dpi_check,zero
+	jam 0x1e,mem_commbination_dpi_timer
+	rtn
+p_mouse_commbination_dpi_check:	
+	arg mem_commbination_dpi_timer,regc
+	arg p_mouse_dpi_process_next,regb		//skip gost key
+	branch timer_single_step
+endif
+
+ifdef RGB_LED
+/**************************rgb led start************************/
+/*********************
+****rgb on--mbutton output active 1s****
+****rgb off--mbutton output active 3s****
+**********************/
+p_mouse_rgb_led_off:
+	jam 0,mem_rgb_led_on_continue_1min_timeout_flag
+	branch p_mouse_rgb_led_off_time_init
 	
+p_mouse_rgb_led_off_enable_timer:
+	fetch 1,mem_rgb_led_off_enable
+	rtn blank
+	arg mem_rgb_led_off_enable_timer,regc
+	arg p_mouse_rgb_led_off_timeout,regb
+	branch timer_single_step
+
+p_mouse_rgb_led_off_timeout:
+	call p_mouse_mbutton_function_enable
+	fetch 1,mem_rgb_led_on_continue_1min_timeout_flag
+	nrtn blank
+	jam 0,mem_rgb_led_on_continue_1min_timeout_flag
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_hibernate_set_next
+	branch mouse_app_enter_hibernate+3
+	
+p_mouse_rgb_led_off_time_init:
+	jam 0x1e,mem_rgb_led_off_enable_timer
+	jam ON,mem_rgb_led_off_enable
+p_mouse_mbutton_function_disable:
+ifdef RGB_LED_MKEY
+	jam ON,mem_mbutton_function_disable
+endif
+	fetcht 1,mem_mouse_rgb_ctrl_gpio
+	branch p_mouse_multi_led_on
+
+p_mouse_rgb_led_on_enable_timer:
+	fetch 1,mem_rgb_led_off_enable
+	nrtn blank
+	fetch 1,mem_rgb_led_on_enable_timer
+	rtn blank
+	beq 1,p_mouse_rgb_led_enable_timeout
+	increase -1,pdata
+	store 1,mem_rgb_led_on_enable_timer
+	branch p_mouse_mbutton_function_disable
+
+p_mouse_rgb_led_enable_timeout:
+	jam 0,mem_rgb_led_on_enable_timer
+p_mouse_mbutton_function_enable:
+ifdef RGB_LED_MKEY
+	jam OFF,mem_mbutton_function_disable
+endif
+	fetcht 1,mem_mouse_rgb_ctrl_gpio
+	call p_mouse_multi_led_on
+ifdef RGB_LED_MKEY
+	nop 12000
+	fetcht 1,mem_mouse_rgb_ctrl_gpio
+	call mouse_gpio_config_input_pu
+endif
+	rtn
+
+p_mouse_rgb_led_on_timer:
+	fetch 1,mem_rgb_led_on_enable
+	nrtn blank
+	fetch 1,mem_rgb_led_off_enable
+	nrtn blank
+p_mouse_rgb_led_on:
+	fetch 2,mem_rgb_led_on_timer
+	increase 1,pdata
+	store 2,mem_rgb_led_on_timer
+	arg 0x0258,temp	//1min
+	isub temp,null
+	nrtn zero
+p_mouse_rgb_led_on_continue_1min:
+	jam 1,mem_rgb_led_on_continue_1min_timeout_flag
+	call p_mouse_rgb_led_on_timer_init
+	branch p_mouse_rgb_led_off_time_init
+
+endif
+
+//================led multi start===================//
+
+//===multi led parm init===//
+p_mouse_device_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_enable
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_1IO2LED
+	call p_mouse_device_multi_led_all_off		//can be remove?
+p_mouse_multi_led_parm_init:
+	jam 0,mem_mouse_multi_led_blink_type
+p_mouse_multi_low_led_blink_timer_init:
+	fetch 1, mem_mouse_low_led_blink_timer
+	rshift pdata,pdata
+	store 1,mem_mouse_low_led_blink_half_timer
+	rtn
+p_mouse_multi_low_led_blink_count_init:
+	fetch 1,mem_mouse_multi_lowled_blink_count_init
+	store 1,mem_mouse_multi_low_led_blink_count
+	rtn
+
+p_mouse_multi_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_led_blink_type		//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	beq 1,p_mouse_device_24g_led_blink_timer_init
+	beq 2,p_mouse_device_le_discovery_led_blink_timer_init
+	beq 3,p_mouse_device_le_reconn_led_blink_timer_init
+p_mouse_multi_dpi_led_blink_timer_init:
+	fetch 1,mem_mouse_dpi_led_blink_timer_init
+p_mouse_store_multi_led_blink_timer:
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+p_mouse_device_24g_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_24gled_blink_timer_init
+	branch p_mouse_store_multi_led_blink_timer
+p_mouse_device_le_discovery_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_discovery_blink_timer_init
+	branch p_mouse_store_multi_led_blink_timer
+p_mouse_device_le_reconn_led_blink_timer_init:
+	fetch 1,mem_mouse_multi_le_reconn_blink_timer_init
+	branch p_mouse_store_multi_led_blink_timer
+
+//===led poweron config===//
+p_mouse_device_poweron_led_config:	//power on
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_1IO2LED
+	fetch 1,mem_mouse_multi_led_powon_timer_init
+	store 1,mem_mouse_multi_led_powon_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+p_mouse_multi_led_enable:
+	jam OFF,mem_mouse_multi_led_state
+	jam ON,mem_mouse_multi_led_blink_enable
+	rtn
+
+//===led blink config===//
+p_mouse_device_pair_led_config:		//24g pair led config
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_1IO2LED
+p_mouse_device_24g_led_blink:
+	jam 1,mem_mouse_multi_led_blink_type
+	call p_mouse_device_24g_led_blink_timer_init
+	call p_mouse_multi_led_blink_enable_init
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_LED_BLINK_LIMIT
+	fetch 1,mem_mouse_multi_24gled_blink_count_init
+	branch p_mouse_device_led_blink_count_init
+
+p_mouse_device_le_reconn_led_config:		//le recon led config
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_1IO2LED
+p_mouse_device_le_reconn_led_blink:
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+	call p_mouse_multi_led_blink_enable_init
+	jam 3,mem_mouse_multi_led_blink_type
+	call p_mouse_device_le_reconn_led_blink_timer_init
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_LED_BLINK_LIMIT
+	fetch 1,mem_mouse_multi_le_reconn_blink_count_init
+p_mouse_device_led_blink_count_init:
+	store 1,mem_mouse_multi_led_blink_count
+	rtn	
+
+p_mouse_device_discovery_led_config:		//ble discovery led config
+	fetch 1,mem_mouse_led_new_interface_config
+	rtnbit0 MOUSE_ENABLE_1IO2LED
+	fetch 1,mem_mouse_led_new_interface_config
+	set0 MOUSE_ENABLE_LED_BLINK_LIMIT,pdata
+	store 1,mem_mouse_led_new_interface_config
+	jam 2,mem_mouse_multi_led_blink_type
+	call p_mouse_device_le_discovery_led_blink_timer_init
+p_mouse_multi_led_blink_enable_init:
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch p_mouse_device_multi_led_on
+	
+//=====multi led blink start====//
+p_mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
+p_mouse_device_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_powon_timer
+	branch p_mouse_device_poweron_led_off,blank
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_powon_timer
+	branch p_mouse_device_multi_led_on+1		//skip led state
+
+p_mouse_device_poweron_led_off:
+	call p_mouse_multi_low_led_blink_count_init
+p_mouse_devide_led_disable:
+	jam 0,mem_mouse_multi_led_blink_enable
+	branch p_mouse_device_multi_led_off+1		//skip led state
+
+p_mouse_multi_led_type_blink:
+	fetch 1,mem_mouse_multi_led_blink_type	//00:rtn	01:24g blink	02:le blink		03:reconn blink 	04:low blink	05:dpi blink
+	rtn blank
+	beq 4,p_mouse_device_led_blink_limit	//dpi blink
+	branch p_mouse_device_led_blink_judge
+
+p_mouse_device_led_blink_judge:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_LED_BLINK_LIMIT,p_mouse_device_led_blink_limit
+	branch p_mouse_multi_led_type_blink_next
+
+p_mouse_device_led_blink_limit:
+	fetch 1,mem_mouse_multi_led_blink_count
+	branch p_mouse_multi_led_off_judge, blank		//blink count =0
+p_mouse_multi_led_type_blink_next:	//blink no limit
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg p_mouse_multi_led_type_blink_start,regb
+	branch timer_single_step	
+
+p_mouse_multi_led_type_blink_start:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,p_mouse_multi_led_blink_count_decrease		//dpi blink
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_LED_BLINK_LIMIT, p_mouse_multi_led_blink_count_decrease
+p_mouse_multi_led_blink:
+	call p_mouse_multi_led_blink_timer_init
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,p_mouse_multi_led_off_judge_next
+	branch p_mouse_multi_led_on_judge
+
+p_mouse_multi_led_blink_count_decrease:
+	fetch 1,mem_mouse_multi_led_blink_count	
+	increase -1,pdata
+	store 1,mem_mouse_multi_led_blink_count
+	branch p_mouse_multi_led_blink
+
+//=====led on/off interface=====//
+p_mouse_multi_led_on_judge:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,p_mouse_multi_dpi_led_on_judge
+p_mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_on
+	rtn
+p_mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch p_mouse_multi_led_on
+p_mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch p_mouse_multi_led_on
+p_mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	branch p_mouse_multi_led_on
+p_mouse_multi_dpi_led_on:
+	fetcht 1,mem_mouse_dpi_gpio
+p_mouse_multi_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+
+p_mouse_multi_led_off_judge:
+	jam 0,mem_mouse_multi_led_blink_enable
+	jam 0,mem_mouse_multi_led_blink_type
+p_mouse_multi_led_off_judge_next:
+	fetch 1,mem_mouse_multi_led_blink_type
+	beq 4,p_mouse_multi_dpi_led_off_judge
+p_mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_off
+	rtn
+p_mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch p_gpio_set_high_impedance
+p_mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch p_gpio_set_high_impedance
+p_mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+p_gpio_set_high_impedance:
+	sub temp,GPIO_DISABLE,null
+	rtn zero
+	branch gpio_set_high_impedance
+
+p_mouse_device_multi_led_all_off:		//dpi+low no
+	call p_mouse_device_24g_led_off
+	call p_mouse_device_bt1_led_off
+	call p_mouse_device_bt2_led_off
+	call p_mouse_low_voltage_led_off_judge
+	branch p_mouse_multi_dpi_led_off_judge
+	
+p_mouse_multi_dpi_led_off_judge:
+	jam OFF,mem_mouse_multi_led_state
+	fetch 1,mem_mouse_led_multi_type
+	beq MOUSE_ENABLE_DPI_FOR_LED,p_mouse_device_multi_led_off
+	beq MOUSE_ENABLE_DPI_LOW_FOR_LED,p_mouse_device_multi_led_off
+p_mouse_multi_dpi_led_off:
+	fetcht 1,mem_mouse_dpi_gpio
+p_mouse_multi_led_off:
+	branch gpio_out_inactive
+	
+p_mouse_multi_dpi_led_on_judge:
+	jam ON,mem_mouse_multi_led_state
+	fetch 1,mem_mouse_led_multi_type
+	beq MOUSE_ENABLE_DPI_FOR_LED,p_mouse_device_multi_led_on
+	beq MOUSE_ENABLE_DPI_LOW_FOR_LED,p_mouse_device_multi_led_on
+	branch p_mouse_multi_dpi_led_on
+
+//================led multi end===================//
+ifdef LOGO_LED
 p_mouse_logo_led_on_timer:
 	fetch 1,mem_mouse_logo_led_gpio
 	rtneq GPIO_DISABLE
@@ -991,10 +1817,10 @@
 p_mouse_logo_led_off:
 	fetcht 1,mem_mouse_logo_led_gpio
 	branch gpio_out_inactive
-
 p_mouse_logo_led_on:
 	fetcht 1,mem_mouse_logo_led_gpio
-	call gpio_out_active
+	branch gpio_out_active
+endif
 
 p_mouse_dpi_led_blink_delay_timer:
 	arg mem_mouse_dpi_led_delay_count,regc
@@ -1002,6 +1828,8 @@
 	branch timer_single_step	
 	
 p_mouse_dpi_led_blink_init:	//result:    level3: 2  3  1     level4: 3  4  1  2
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit1 MOUSE_ENABLE_1IO2LED,p_mouse_dpi_led_blink_init_new1
 	fetch 1,mem_config_sensor_type
 	beq P3212,mouse_dpi_led_blink_init		//result:    level3: 1  2  3     level4: 2  3  4  1
 	beq KA8G2,mouse_dpi_led_blink_init	//result:    level3: 1  2  3     level4: 2  3  4  1
@@ -1023,38 +1851,34 @@
 	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
 	increase 1,temp  	// 2-->3   3-->4
 	rtn
-
 p_mouse_dpi_led_blink_count_clean:
 	increase -3,temp		// 4-->1  5-->2
 	rtn
 
-p_mouse_device_poweron_timer:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_POWER_ON_LED
-	fetch 1,mem_mouse_device_poweron_timer_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_mouse_device_poweron_timer_count
-	branch p_mouse_device_led_off,blank
-	branch mouse_device_led_on
+p_mouse_dpi_led_blink_init_new1:
+	fetch 1,mem_config_sensor_type
+	beq P3212,p_mouse_dpi_led_blink_init_new2		//result:    level3: 1  2  3     level4: 2  3  4  1
+	beq KA8G2,p_mouse_dpi_led_blink_init_new2	//result:    level3: 1  2  3     level4: 2  3  4  1
+	fetcht 1,mem_mouse_dpi
+	increase 2,temp	// 2 3 4 (5)
+p_mouse_dpi_led_blink_init_new1_next:
+	sub temp,3,null
+	call p_mouse_dpi_led_blink_init_level_4,positive
+	ncall p_mouse_dpi_led_blink_count_clean,positive
+	copy temp,pdata
+	iadd pdata,pdata
+	store 1,mem_mouse_multi_led_blink_count
+p_mouse_multi_dpi_led_blink_enable:
+	jam 4,mem_mouse_multi_led_blink_type
+	call p_mouse_multi_dpi_led_blink_timer_init	
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch p_mouse_multi_led_enable
 
-p_mouse_device_led_off:
-	call mouse_device_led_off
-	fetch 1,mem_device_flag
-	rtnne MODE_BT_DEVICE1	
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_CONNECTED
-	rtnbit1 UI_STATE_BT_CONNECTED
-	fetch 1,mem_mouse_bluetooth_fast_conn_flag
-	bne 0xff,p_mouse_bt_reconn_setting_led_gpio
-	branch mouse_discover_setting_led_gpio
+p_mouse_dpi_led_blink_init_new2:
+	fetcht 1,mem_mouse_dpi
+	increase 1,temp
+	branch p_mouse_dpi_led_blink_init_new1_next
 
-p_mouse_bt_reconn_setting_led_gpio:
-	call mouse_low_voltage_led_blink_disable
-	jam 0,mem_mouse_device_poweron_timer_count
-	fetch 2,mem_mouse_bt_reconn_led_blink_time
-	branch mouse_discover_setting_led_gpio+2
-	
 /////////////////////////////////////////////////////////////////////////////////////////////////
 
 p_mouse_commbination_key_process:
@@ -1071,7 +1895,7 @@
 	fetcht 1,mem_mouse_commbination_key_24g
 p_mouse_commbination_key_start:
 	storet 1,mem_mouse_commbination_key
-	call mouse_check_key_gpio
+	call p_mouse_check_key_gpio
 	and pdata,0x07,pdata
 	fetcht 1,mem_mouse_commbination_key
 	isub temp,null
@@ -1095,10 +1919,14 @@
 	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
 	branch mouse_le_battery_updata_timer
 
+p_mouse_le_send_conn_param_update_timer:
+	arg mem_mouse_le_send_conn_param_update_timer,regc
+	arg mouse_updata_le_param,regb
+	branch timer_single_step
 
 p_mouse_check_no_data_timeout_timer:
-	fetch 1,mem_usb_addr
-	rtnbit1 7
+//	fetch 1,mem_usb_addr
+//	rtnbit1 7
 	arg mem_mouse_no_data_timer,regc
 	arg p_mouse_check_no_data_timeout,regb
 	branch timer_single_step_2B
@@ -1109,6 +1937,7 @@
 	branch mouse_disconnect	
 
 p_mouse_start_discovery:
+	call p_mouse_device_discovery_led_config
 	fetch 2,mem_ui_state_map
 	isolate1 UI_STATE_BLE_ADV,pdata
 	call mouse_stop_le_adv,true		//reconnect adv
@@ -1118,7 +1947,7 @@
 	setarg 0
 	store 2,mem_le_battery_level_updata_timer
 	branch mouse_start_discovery+1
-
+	
 p_mouse_stop_discovery:
 	setarg 0
 	store 2,mem_mouse_discovery_timer
@@ -1154,6 +1983,25 @@
 	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
 	branch ui_ipc_send_event
 
+p_send_lmp:
+	disable user
+	call lmo_fifo_process
+	fetch 1,mem_lmp_to_send
+	rtn blank
+/* lmp message to be processed. this will either be because host??? */
+/* wants to send a lmp message or because one resulted from the LMP */
+/* processing section */
+/********* outgoing lmp lookup table *************/
+	bbit1 7,send_lmp_escape
+p_send_lmp0:
+	beq LMP_DETACH,p_send_lmp_detach
+	branch send_lmp0
+
+p_send_lmp_detach:
+	call send_lmp_detach
+	jam 120,mem_conn_timer
+	rtn
+
 
 p_le_slave_match:
 	fetch 1,mem_le_md_count
@@ -1167,6 +2015,22 @@
 	call le_transmit
 	branch le_slave_match+10
 
+p_le_slave_unsync:
+	call end_of_packet
+	branch le_slave_unsync+1
+
+p_le_transmit:
+	call le_prep
+	call le_tx_setfreq
+	call rf_debug_tx_on_line	//H
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call le_wait_tx
+	nop 10	//about delay 0.5us
+	branch le_transmit+9
+
 p_le_parse_l2cap:
 	ifetch 2,contr
 	beq LE_L2CAP_CID_ATT,p_le_parse_att
@@ -1216,74 +2080,121 @@
 	fetcht 2,mem_le_att_handle
 	isub temp,null
 	nbranch le_send_att_write_response_check_auth,zero
-	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
-	branch le_send_att_error_response
-
-p_send_lmp:
-	disable user
-	call lmo_fifo_process
-	fetch 1,mem_lmp_to_send
-	rtn blank
-/* lmp message to be processed. this will either be because host??? */
-/* wants to send a lmp message or because one resulted from the LMP */
-/* processing section */
-/********* outgoing lmp lookup table *************/
-	bbit1 7,send_lmp_escape
-p_send_lmp0:
-	beq LMP_DETACH,p_send_lmp_detach
-	branch send_lmp0
-
-p_send_lmp_detach:
-	call send_lmp_detach
-	jam 120,mem_conn_timer
-	rtn
+	branch le_send_att_read_response_error_insufficient_auth
 
 p_g24_lpm_wait:			// ice connect led
-	fetch 1,mem_24g_device_led_status
-	ncall g24_transmit_by_interrupt_enable,blank
+//	fetch 1,mem_24g_device_led_status
+//	nbranch disable_user,blank
 	enable user
 	call lpo_calibration
 	fetch 3,mem_clks_per_lpo
 	branch disable_user,blank
 	fetch 1,mem_lpm_mode
 	branch disable_user,blank
-	branch g24_setgpio_lpm_before
+	fetch 1,mem_sensor_shutdown_flag
+	nrtn blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	rtn
 
+	
 p_mouse_motion:
 	disable user
 	setarg 0
 	store 6,mem_mouse_x
-	call mouse_check_sensor_data
-	call mouse_dpi_config
+	call p_mouse_check_sensor_data
+	setarg 0x0089
+	call twspi_write
+	call p_mouse_seting_sensor_type
 	call mouse_zwheel
 	call mouse_t_zwheel
 	call p_mouse_key
 	fetch 1,mem_mouse_key
 	and_into 0x1f,pdata
 	store 1,mem_mouse_key
-	nbranch mouse_drawing_optima_init,user
+	nbranch p_mouse_motion_nodata,user
 	call p_mouse_drawing_optima
+ifdef RGB_LED
+	call p_mouse_rgb_led_on_check
+endif
 	branch mouse_no_data_timer_init
 
+p_mouse_check_sensor_data:
+	fetch 1,mem_spi_write_flash_sm
+	rtnne FLASH_SM_NO_BUYS
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_motion
+	branch mouse_check_sensor_data+3
+
+p_mouse_ka8g2_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,mouse_pka8g2_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+p_mouse_pka8g2_sensor_motion_1:
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	branch mouse_p3212_sensor_motion_2
+
+p_mouse_motion_nodata:	
+	call mouse_drawing_optima_init
+ifdef RGB_LED
+	fetch 2,mem_rgb_led_off_check_count
+	increase 1,pdata
+	store 2,mem_rgb_led_off_check_count
+	arg 0x0258,temp
+	isub temp,null
+	nrtn zero
+	setarg 0
+	store 2,mem_rgb_led_off_check_count
+	jam OFF,mem_rgb_led_on_enable
+endif
+	rtn
+
 p_mouse_drawing_optima:
 	fetch 1,mem_config_sensor_type
 	rtneq P3212
+	rtneq KA8G2
 	branch mouse_drawing_optima
 
+ifdef RGB_LED
+p_mouse_rgb_led_on_check:
+	fetch 2,mem_rgb_led_on_check_count
+	increase 1,pdata
+	store 2,mem_rgb_led_on_check_count
+	arg 0x0258,temp
+	isub temp,null
+	nrtn zero
+	setarg 0
+	store 2,mem_rgb_led_on_check_count
+	fetch 1,mem_rgb_led_on_enable
+	rtneq ON
+p_mouse_rgb_led_on_check_next:
+	jam ON,mem_rgb_led_on_enable
+	jam OFF,mem_rgb_led_off_enable
+	jam 11,mem_rgb_led_on_enable_timer
+p_mouse_rgb_led_on_timer_init:
+	setarg 0
+	store 2,mem_rgb_led_on_timer
+	rtn
+endif
 p_mouse_sensor_poweron:
 	call mouse_sensor_spi_init
 	fetch 1,mem_config_sensor_type
 	beq KA8G2,p_mouse_ka8g2_sensor_init
 	call mouse_sensor_reset
 	arg mem_sensor_poweron_init,regc
+p_mouse_sensor_end:
 	call mouse_sensor_wr_seq
-	branch mouse_dpi_config
+	branch p_mouse_seting_sensor_type
 	
 p_mouse_ka8g2_sensor_init:
 	call p_mouse_ka8g2_sensor_reset
 	arg mem_ka8g2_sensor_poweron_init,regc
-	call mouse_sensor_wr_seq
-	branch mouse_dpi_config
+	branch p_mouse_sensor_end
 
 p_mouse_sensor_reset:
 	fetch 1,mem_config_sensor_type
@@ -1291,17 +2202,15 @@
 	branch mouse_sensor_reset
 p_mouse_ka8g2_sensor_reset:
 	setarg 0x9706		// reset to factory settings
-	call twspi_write
-	nop 12000
-	rtn
+	branch mouse_sensor_reset_end
 
 p_mouse_sensor_powerdown:
 	call mouse_init_sunt
 	call mouse_sensor_spi_init
 	fetch 1,mem_config_sensor_type
 	beq KA8G2,p_mouse_ka8g2_sensor_powerdown
-	setarg 0x0806
-	branch twspi_write
+	branch mouse_sensor_powerdown_end
+	
 p_mouse_ka8g2_sensor_powerdown:
 	setarg 0x1f06		
 	branch twspi_write
@@ -1331,7 +2240,8 @@
 ifdef FIRE_KEY	
 	call p_mouse_check_firekey_gpio
 endif
-	branch mouse_check_key_gpio_next
+	call p_mouse_check_customerkey_gpio
+	branch mouse_check_key_gpio_next+1
 
 p_mouse_check_lkey_gpio:
 	fetch 1,mem_lbutton_gpio
@@ -1346,6 +2256,10 @@
 	fetcht 1,mem_rbutton_gpio
 	branch mouse_gpio_config_input_pu
 p_mouse_check_mkey_gpio:
+ifdef RGB_LED_MKEY
+	fetch 1,mem_mbutton_function_disable
+	nrtn blank
+endif
 	fetch 1,mem_mbutton_gpio
 	call p_mouse_gpio_config_output_high
 	call mouse_check_mkey_gpio
@@ -1386,14 +2300,40 @@
 
 //input:pdata gpio number
 p_mouse_gpio_config_output_high:
+	rtneq GPIO_DISABLE
 	arg gpcfg_output_high,temp
 	branch gpio_config_function_int
 		
 //input:pdata gpio number
 p_mouse_gpio_config_output_low:
+	rtneq GPIO_DISABLE
 	arg gpcfg_output_low,temp
 	branch gpio_config_function_int	
 
+p_mouse_check_customerkey_gpio:
+	fetch 1,mem_mouse_customer_key_connect_vin_flag
+	branch mouse_check_customerkey_gpio,blank
+	jam 0,mem_customer_key
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_KEYBOARD
+	
+	fetch 1,mem_customer_key_gpio
+	set0 gpio_active_bit,pdata
+	store 1,mem_customer_key_gpio
+
+	jam MOUSE_CUSTOMER_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_customerkey_press_status
+	copy pdata,regc
+p_mouse_3io6key_customerkey_check:
+	fetch 1,mem_customer_key_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_customer_key_gpio
+	call mouse_3io6key_check
+	store 1,mem_mouse_customerkey_press_status
+	call mouse_check_customerkey_state
+	fetcht 1,mem_customer_key_gpio
+	branch mouse_gpio_config_input_pu
+
 /////////////////////////////////////////////firekey start//////////////////////////////////////////
 
 ifdef FIRE_KEY
@@ -1445,23 +2385,23 @@
 
 p_fire_key_process_start:
 	jam 1,mem_fire_key_status
+p_fire_key_down:
 	jam 1,mem_mouse_key
 	branch enable_user
 
 p_fire_key_process_release1:
 	jam 2,mem_fire_key_status
+p_fire_key_release:
 	jam 0,mem_mouse_key
 	branch enable_user
 
 p_fire_key_process_start2:
 	jam 3,mem_fire_key_status
-	jam 1,mem_mouse_key
-	branch enable_user
+	branch p_fire_key_down
 
 p_fire_key_process_release2:
 	jam 0,mem_fire_key_status
-	jam 0,mem_mouse_key
-	branch enable_user
+	branch p_fire_key_release
 
 p_fire_key_process_end:
 	jam 0,mem_fire_key_status
@@ -1484,14 +2424,33 @@
 /////////////////////////////////////////////firekey end//////////////////////////////////////////
 
 p_mouse_idle:
-	call mouse_low_voltage_led_no_enter_lpm
+	call p_mouse_low_voltage_led_no_enter_lpm
 	call ui_check_paring_button
 	call p_mouse_dpi_check
+ifdef DOUBLE_DPI_KEY
 	call p_mouse_dpi_another_gpio_check
-	branch mouse_idle+4
-p_mouse_dpi_check:
+endif
+	call p_mouse_select_device_check
+	branch mouse_idle+5
+
+p_mouse_low_voltage_led_no_enter_lpm:
+	fetch 1,mem_mouse_led_new_interface_config
+	bbit0 MOUSE_ENABLE_LOW_LED,mouse_low_voltage_led_no_enter_lpm
+p_mouse_low_voltage_led_no_enter_lpm_next:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_dpi_check_connect_adc
+	branch mouse_low_voltage_led_no_enter_lpm+2
+
+p_mouse_select_device_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_PB_BUTTON,p_mouse_select_device_by_pb_button_check_judge
+	bbit1 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY,p_mouse_select_device_by_pb_button_check_judge
+	rtn
+p_mouse_select_device_by_pb_button_check_judge:
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BT_DISCOVERY,p_mouse_select_device_by_pb_button_check_once
+	branch mouse_select_device_by_pb_button
+	
+p_mouse_dpi_check:
 	fetch 1,mem_dpi_button_gpio
 	rtneq GPIO_DISABLE
 	arg 0,rega
@@ -1514,6 +2473,7 @@
 	fetcht 1,mem_dpi_button_gpio
 	branch mouse_3io6key_check
 
+ifdef DOUBLE_DPI_KEY
 p_mouse_dpi_another_gpio_check:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
@@ -1530,7 +2490,6 @@
 	fetch 1,mem_dpi_another_button_gpio
 	set0 gpio_active_bit,pdata
 	store 1,mem_dpi_another_button_gpio
-	fetch 1,mem_dpi_another_button_gpio
 	call p_mouse_gpio_config_output_low
 	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
 	fetcht 1,mem_dpi_another_button_gpio
@@ -1539,16 +2498,6 @@
 	call p_mouse_dpi_another_state_check
 	fetcht 1,mem_dpi_another_button_gpio
 	branch mouse_gpio_config_input_pu	
-
-p_mouse_dpi_another_down_new:
-	call mouse_gpio_config_input_pu	
-	fetch 1,mem_dpi_another_button_state
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
-	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	//rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-	//rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
-	branch mouse_dpi_process
 	
 p_mouse_dpi_another_check:
 	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
@@ -1563,18 +2512,12 @@
 	fetch 1,mem_dpi_another_button_state
 	rtneq DPI_BUTTON_STATE_DOWN
 	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
-	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	//rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-	//rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
 	branch mouse_dpi_process
 
 p_mouse_dpi_another_up:
 	fetch 1,mem_dpi_another_button_state
 	rtneq DPI_BUTTON_STATE_UP
 	jam DPI_BUTTON_STATE_UP,mem_dpi_another_button_state
-	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	//bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON,mouse_dpi_up_next
-	//bbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY,mouse_dpi_up_next
 	rtn
 
 p_mouse_check_key_connect_gnd_new:	
@@ -1608,22 +2551,27 @@
 p_mouse_key_release:
 	jam 0,mem_dpi_another_button_down_enable
 	rtn
+endif
 
 p_mouse_dpi_process:
 	call mouse_dpi_ghost_check
 	rtn user
+p_mouse_dpi_process_next:
 	fetch 1,mem_mouse_dpi
+ifdef DOUBLE_DPI_KEY
 	copy pdata,temp
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,p_mouse_double_dpi_check
 	copy temp,pdata
+endif
 	increase 1,pdata
 	and pdata,0x03,pdata
 p_mouse_dpi_store:
 	store 1,mem_mouse_dpi
-	call mouse_seting_dpi
-	branch mouse_store_device_info_delay
+	call p_mouse_seting_dpi
+	branch mouse_store_eerpom_dpi
 
+ifdef DOUBLE_DPI_KEY
 p_mouse_double_dpi_check:
 	fetch 1,mem_dpi_another_button_down_enable
 	nbranch p_mouse_another_dpi_button_down,blank
@@ -1675,7 +2623,975 @@
 	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_1
 	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
 	rtn
-	
+endif
 //////////////////////////////modify key end///////////////////////////////////////////////
 
 
+///////////////////////////// 2.4g ota start ///////////////////////////////////////////////////////////	
+ifdef G24_OTA
+
+p_g24_load_ota_config_poweron:
+	call iicd_load_gpio_init
+	call p_g24_check_ota_data
+	branch p_g24_load_ota_config,user
+	rtn
+
+p_g24_load_ota_config:	
+	arg iicd_read_eep,regc
+	fetch 2,mem_g24_ota_config_addr
+	increase 3,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	branch load_storage_loop
+
+p_mouse_g24_ota_reset_timer:
+	arg mem_g24_ota_reset_timer,regc
+	arg soft_reset_chip,regb
+	branch timer_single_step
+
+p_g24_parse_rx_ota_sm:
+	fetch 1,mem_g24_ota_mode
+	rtn blank
+	fetch 1,mem_g24_ota_sm
+	beq G24_OTA_SM_TX_VERSION,p_g24_ota_sm_tx_version
+	beq G24_OTA_SM_TX_INFO,p_g24_ota_sm_tx_info
+	beq G24_OTA_SM_TX_CONFIG,p_g24_ota_sm_tx_config
+	beq G24_OTA_SM_TX_SET_CONFIG_END,p_g24_ota_sm_tx_config_end
+	beq G24_OTA_SM_TX_DATA,p_g24_ota_sm_tx_data
+	beq G24_OTA_SM_TX_RESET,p_g24_ota_sm_tx_reset
+	rtn
+
+p_g24_ota_sm_tx_reset:
+	jam G24_OTA_SM_TX_RESET_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_version:
+	jam G24_OTA_SM_TX_VERSION_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_info:
+	jam G24_OTA_SM_TX_INFO_OK,mem_g24_ota_sm
+	rtn	
+
+p_g24_ota_sm_tx_config:
+	jam G24_OTA_SM_TX_CONFIG_OK,mem_g24_ota_sm
+	rtn	
+	
+p_g24_ota_sm_tx_config_end:
+	jam G24_OTA_SM_TX_SET_CONFIG_END_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_ota_sm_tx_data:
+	jam G24_OTA_SM_TX_DATA_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_mouse_parse_rx:
+	fetch 1,mem_24g_rxdata_length
+	branch  p_g24_parse_rx_ota_sm, blank
+	copy pdata,regb //len
+//	fetch 1,mem_g24_ota_mode
+//	nbranch p_g24_mouse_parse_rx_mode_ota,blank
+	jam 0,mem_24g_rxdata_length
+	fetch 1,mem_24g_rxpayload
+	beq DATATYPE_OTA,p_g24_rx_ota	//mouse
+	rtn
+
+p_g24_ota_mode_enable:
+	jam 1,mem_g24_ota_mode
+//	jam CLEAR_INIT,mem_24g_mode_init
+	jam 0,mem_lpm_mode
+	branch p_ota_init
+
+p_g24_ota_dispatch:
+	rtn
+
+p_g24_ota_transmit:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	nrtn sync
+	nrtn user3
+	call g24_txbuf_clear
+	branch g24_ackpayload_parse
+
+p_g24_rx_ota:
+	fetch 1,mem_24g_rxpayload
+	rtnne DATATYPE_OTA
+	ifetch 1,contr
+//	store 1,mem_g24_ota_tx_opcode
+	ifetcht 1,contr
+	sub temp,G24_OTA_TARGET_MOUSE,null
+	nbranch assert,zero
+	beq G24_OTA_CMD_VERSION,p_g24_mouse_ota_process_version
+	beq  G24_OTA_CMD_INFO,p_g24_mouse_ota_process_info
+	beq  G24_OTA_CMD_CONFIG,p_g24_mouse_ota_process_config
+	beq G24_OTA_CMD_SET_CONFIG_END,p_g24_mouse_ota_process_set_config_end
+	beq G24_OTA_CMD_DATA,p_g24_mouse_ota_process_data
+	beq G24_OTA_CMD_RESET,p_g24_mouse_ota_process_reset
+	beq G24_OTA_CMD_PING,p_g24_mouse_ota_process_ping
+	branch assert
+
+p_g24_mouse_ota_process_ping:
+	rtn
+
+p_g24_mouse_ota_process_version:
+//	call  g24_transmit_prep
+	call p_g24_ota_mode_enable 
+	jam G24_OTA_SM_RX_VERSION,mem_g24_ota_sm	
+	rtn
+	
+p_g24_mouse_ota_process_info:
+	jam G24_OTA_SM_RX_INFO,mem_g24_ota_sm
+	rtn
+	
+p_g24_mouse_ota_process_config:
+	jam G24_OTA_SM_RX_CONFIG,mem_g24_ota_sm
+	rtn
+
+p_g24_mouse_ota_process_set_config_end:
+	jam G24_OTA_SM_RX_SET_CONFIG_END,mem_g24_ota_sm
+	ifetch 2,contr
+	ifetcht 2,contr
+	fetchr rega, 2,mem_g24_ota_rx_alllen
+	isub rega,null
+	nbranch p_g24_mouse_ota_process_fail,zero
+	fetch 2,mem_g24_ota_rx_sum
+	isub temp,null
+	nbranch p_g24_mouse_ota_process_fail,zero
+	call p_g24_check_ota_data_all
+	nbranch p_g24_mouse_ota_process_fail,user
+	branch p_g24_mouse_ota_process_ok	
+
+p_g24_check_ota_data_all:
+	call p_g24_check_ota_data
+	nrtn user	
+	fetch 2,mem_g24_ota_rx_sum
+	isub alarm,null
+	nbranch disable_user,zero	
+	fetcht 2,mem_temp_block6
+	fetch 2,mem_g24_ota_rx_alllen
+	increase -5,pdata
+	isub temp,null
+	nbranch disable_user,zero
+	branch enable_user
+
+p_g24_check_ota_data:
+	fetch 2,mem_g24_ota_config_addr
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	arg 3,temp
+	arg mem_temp_block5,rega
+	call iicd_read_eep	
+
+	fetch 1,mem_temp_block5
+	bne  G24_OTA_DATA_HEADER,disable_user
+	ifetcht 2,contr
+//	fetch 2,mem_g24_ota_rx_alllen
+//	increase -5,pdata
+//	isub temp,null
+//	nbranch disable_user,zero
+	storet 2,mem_pdatatemp //len
+	storet 2,mem_temp_block6 //len
+	
+	fetch 1,mem_temp_block5
+	arg 0xffff,rege //crc
+	arg 0,temp
+	arg mem_temp_block5,contr
+	arg 3,loopcnt
+	call p_g24_mouse_data_sum
+	copy temp,alarm
+	
+	fetch 2,mem_g24_ota_config_addr
+	add pdata,3,regf
+	call p_g24_check_ota_data_loop
+
+	byteswap regf,pdata
+	store 2,mem_addr_mi
+	arg 2,temp
+	arg mem_temp_block5,rega
+	call iicd_read_eep	
+	fetch 2,mem_temp_block5
+	isub rege, null
+	nbranch disable_user,zero
+	fetch 1,mem_temp_block5
+	iadd alarm,alarm
+	ifetch 1,contr
+	iadd alarm,alarm
+	setarg 0xffff
+	iand alarm,alarm
+	branch enable_user
+
+p_g24_check_ota_data_loop:
+	fetch 2,mem_pdatatemp
+	rtn blank
+	copy pdata,temp
+	sub pdata,16,null
+	branch p_g24_check_ota_data_loopend,positive
+	increase -16,pdata
+	arg 0x10,temp //len
+p_g24_check_ota_data_loop2:
+	store 2,mem_pdatatemp
+	copy temp,regext
+	copy regf,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	arg mem_temp_block5,rega
+	call iicd_read_eep
+	copy regf,pdata
+	iadd regext,regf
+	copy regext,loopcnt
+	copy rege,pdata
+	arg mem_temp_block5,contr
+	icrc contr
+	copy pdata,rege
+	copy regext,loopcnt
+	arg mem_temp_block5,contr
+	copy alarm,temp
+	call p_g24_mouse_data_sum
+	copy temp,alarm
+	branch p_g24_check_ota_data_loop
+
+p_g24_check_ota_data_loopend:
+	setarg 0
+	branch p_g24_check_ota_data_loop2	
+
+p_g24_mouse_ota_process_data:
+	jam G24_OTA_SM_RX_DATA,mem_g24_ota_sm
+	ifetch 1,contr
+	copy contr,rega
+	fetcht 1,mem_g24_ota_rx_data_count
+	isub temp,null
+	branch p_g24_mouse_ota_process_ok,zero //retrasmit
+	call p_g24_cmd_ota_data_check_count
+	nbranch p_g24_mouse_ota_process_fail,user
+	sub regb,4,null
+	branch p_g24_mouse_ota_process_fail,positive
+	increase -4,regb
+	
+	storer regb,2,mem_hold_contw
+	storer rega,2,mem_hold_contr
+	call iicd_eeprom_write_enable
+	call 	p_dongle_usb_cmd_ota_write_data
+	call iicd_eeprom_write_disable
+	fetchr regb,2,mem_hold_contw
+	fetchr rega,2,mem_hold_contr
+	
+	fetch 2,mem_g24_ota_rx_alllen
+	iadd regb,pdata
+	store 2,mem_g24_ota_rx_alllen
+	copy regb,loopcnt
+	arg 0,temp
+	copy rega,contr
+	call p_g24_mouse_data_sum	
+	fetch 2,mem_g24_ota_rx_sum
+	iadd temp,pdata
+	store 2,mem_g24_ota_rx_sum	
+p_g24_mouse_ota_process_ok:	
+	jam G24_OTA_STATUS_SUCCESS,mem_g24_ota_rtn_state
+	rtn
+	
+p_g24_mouse_ota_process_fail:	
+	jam G24_OTA_STATUS_FAIL,mem_g24_ota_rtn_state
+	rtn
+
+p_dongle_usb_cmd_ota_write_data:
+//	fetch 1,mem_g24_ota_config_type
+	fetch 2,mem_g24_ota_config_addr
+	rtn blank
+	fetcht 2,mem_g24_ota_rx_alllen
+	iadd temp,pdata
+	copy regb,temp
+	branch iicd_write_ota_data 
+
+p_g24_mouse_ota_process_reset:
+	fetch 1,mem_g24_ota_sm
+	rtneq G24_OTA_SM_RX_RESET
+	rtneq G24_OTA_SM_TX_RESET
+	rtneq G24_OTA_SM_TX_RESET_OK
+	jam 5,mem_g24_ota_reset_timer
+	jam G24_OTA_SM_RX_RESET,mem_g24_ota_sm
+	rtn
+	
+p_g24_cmd_ota_data_check_count:
+	fetcht 1,mem_g24_ota_rx_data_count
+	store 1,mem_g24_ota_rx_data_count
+	beq 0,p_g24_cmd_ota_data_check_count_0
+	isub temp,pdata
+	beq  1,enable_user	
+	branch disable_user
+
+p_g24_cmd_ota_data_check_count_0:	
+	sub temp,0xff,null
+	branch enable_user,zero
+	branch disable_user
+
+p_g24_mouse_data_sum:
+	ifetch 1,contr
+	iadd temp,temp
+	loop p_g24_mouse_data_sum
+	rtn
+	
+//input loopcnt :len ; contr :data ptr 
+//ouput pdata :crc
+p_g24_mouse_ota_crc:
+	setarg 0xffff
+	icrc contr
+	rtn
+	
+p_g24_mouse_ota_check_crc:
+	fetchr loopcnt, 1,mem_24g_rxdata_length
+	sub loopcnt,2,null
+	branch disable_user,positive
+	arg mem_24g_rxpayload,pdata
+	iadd loopcnt,contr
+	increase -2,contr
+	ifetcht 2,contr // rx crc
+	arg mem_24g_rxpayload,contr	
+	call p_g24_mouse_ota_crc
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+p_g24_mouse_ota_check_data:
+	ifetch 1,contr
+	bne 0x5a,p_g24_mouse_ota_load_fail
+	copy rega,1,contr
+	fetcht  2,contr
+p_g24_mouse_ota_check_data_loop:
+	sub temp,3,null
+	branch p_g24_mouse_ota_load_fail,positive
+	increase 2,contr
+	ifetchr loopcnt, 1,contr
+	sub loopcnt,0,null
+	nbranch p_g24_mouse_ota_load_fail,zero
+	copy loopcnt,pdata
+	iadd contr,contr
+	copy temp,pdata
+	increase 3,loopcnt
+	isub loopcnt,temp
+	nbranch p_g24_mouse_ota_check_data_loop,zero
+	ifetcht 2,contr //crc
+	add rega,1,contr
+	ifetch 2,contr 
+	add pdata,2,loopcnt
+	add rega,1,contr
+	call p_g24_mouse_ota_crc
+	isub temp,null
+	nbranch p_g24_mouse_ota_load_fail,zero	
+p_g24_mouse_ota_load_success:
+	branch enable_user	
+
+p_g24_mouse_ota_load_fail:
+	branch disable_user
+
+p_g24_mouse_ota_get_otaaddr:
+	fetch 2,mem_g24_ota_config_addr
+	copy pdata,contr
+	call p_g24_mouse_ota_check_data
+	nbranch p_g24_mouse_ota_config_end,user
+	fetchr rega, 2,mem_g24_ota_config_addr
+	add rega,1,contr
+	ifetch 2,contr
+	increase 5,pdata //header 1, len 2, crc 2
+	iadd rega,pdata
+	store 2,mem_g24_ota_config_addr
+	branch p_g24_mouse_ota_get_otaaddr
+
+p_g24_mouse_ota_config_end:
+	fetch 2,mem_g24_ota_storage_size
+	fetcht 2,mem_g24_ota_config_addr
+	isub temp,pdata	
+	rtn
+
+p_ota_init:
+	setarg 0
+	store 2,mem_g24_ota_rx_alllen
+	store 2,mem_g24_ota_rx_sum
+	store 1,mem_g24_ota_rx_data_count
+	store 1,mem_g24_ota_sm
+	rtn
+
+p_mouse_24g_package_ota:
+	call disable_user
+	fetch 1,mem_g24_ota_sm
+	beq G24_OTA_SM_RX_VERSION,p_mouse_24g_package_ota_version
+	beq G24_OTA_SM_RX_INFO,p_mouse_24g_package_ota_info
+	beq G24_OTA_SM_RX_CONFIG,p_mouse_24g_package_ota_config
+	beq G24_OTA_SM_RX_SET_CONFIG_END,p_mouse_24g_package_ota_set_config_end
+	beq G24_OTA_SM_RX_DATA,p_mouse_24g_package_ota_data
+	beq G24_OTA_SM_RX_RESET,p_mouse_24g_package_ota_reset
+	branch p_mouse_24g_package_ping
+	
+p_mouse_24g_package_ota_version:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_VERSION,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	setarg G24_OTA_VERSION
+	store 2,mem_24g_txbuf+4
+	jam TYPE_MS,mem_24g_data_type
+	jam 6,mem_24g_datalen
+//	arg 6,rega	//length
+//	arg mem_g24_ota_txbuf,regb //tx buff	
+//	branch enable_user
+	jam G24_OTA_SM_TX_VERSION,mem_g24_ota_sm
+	rtn
+
+p_mouse_24g_package_ota_info:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_INFO,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	fetch 2,core_chipid
+	store 2,mem_24g_txbuf+4
+	setarg 0x6661
+	istore 2,contw
+	setarg 1
+	istore 6,contw
+	setarg 0
+	istore 2,contw
+	istore 2,contw
+	call p_mouse_24g_storage_type
+	istore 1,contw
+	setarg 0
+	istore 1,contw
+	fetcht 2,mem_g24_ota_config_addr
+	istoret 2,contw
+	fetch 2,mem_g24_ota_storage_size
+	lshift8 pdata,pdata
+	rshift  pdata,pdata 
+	isub temp,pdata
+	nbranch  p_dongle_usb_cmd_ota_info_dongle_empty,positive
+p_dongle_usb_cmd_ota_info_dongle_common:	
+	istore 2,contw	
+	jam 24,mem_24g_datalen	
+	jam TYPE_MS,mem_24g_data_type
+	jam G24_OTA_SM_TX_INFO,mem_g24_ota_sm
+	rtn	
+
+p_dongle_usb_cmd_ota_info_dongle_empty:
+	setarg 0
+	branch p_dongle_usb_cmd_ota_info_dongle_common
+	
+p_mouse_24g_package_ota_config:
+	jam G24_OTA_SM_TX_CONFIG,mem_g24_ota_sm
+	jam G24_OTA_CMD_CONFIG,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	branch p_mouse_24g_package_ota_common_ok
+
+p_mouse_24g_package_ota_reset:
+	jam G24_OTA_SM_TX_RESET,mem_g24_ota_sm
+	jam G24_OTA_CMD_RESET,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	branch p_mouse_24g_package_ota_common_ok	
+
+p_mouse_24g_storage_type:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_storage_type_eeprom
+	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_storage_type_flash
+	setarg G24_OTA_STORAGE_ERROR
+	rtn
+	
+p_mouse_24g_storage_type_eeprom:
+	setarg G24_OTA_STORAGE_EEPROM
+	rtn
+	
+p_mouse_24g_storage_type_flash:
+	setarg G24_OTA_STORAGE_FLASH
+	rtn
+	
+p_mouse_24g_package_ota_common_ok:
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_common_fail:
+	jam G24_OTA_STATUS_FAIL,mem_24g_txbuf+2
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_data:
+	jam G24_OTA_SM_TX_DATA_OK,mem_g24_ota_sm
+	jam G24_OTA_CMD_DATA,mem_24g_txbuf+1
+	fetch 1,mem_g24_ota_rx_data_count
+	store 1,mem_24g_txbuf+4	
+	jam 5,mem_24g_datalen
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	fetch 1,mem_g24_ota_rtn_state
+	store 1,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_set_config_end:
+	jam G24_OTA_SM_TX_SET_CONFIG_END_OK,mem_g24_ota_sm
+	jam G24_OTA_CMD_SET_CONFIG_END,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	fetch 1,mem_g24_ota_rtn_state
+	store 1,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ping:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_PING,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+//	jam DATATYPE_OTA,mem_24g_txbuf
+//	jam G24_OTA_CMD_PING,mem_24g_txbuf+1
+	jam TYPE_MS,mem_24g_data_type
+	jam 4,mem_24g_datalen
+	rtn
+
+p_mouse_24g_package_data_ota:
+	copy pdata,rega //length
+	jam 0,mem_g24_ota_prepare_send_len
+	jam TYPE_MS,mem_24g_data_type
+	arg mem_g24_ota_txbuf,regb //tx buff		
+	rtn
+
+///////////////////////////// 2.4g ota  ///////////////////////////////////////////////////////////	
+endif
+
+
+p_power_ctrl_start:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BT_DISCOVERY	
+ifdef RSSI_SORT
+	call p_rssi_sort
+	call p_rssi_average
+else
+	fetchr rega,2,mem_rssi_signal_buf_ptr
+	call rssi_average
+endif
+	storet 1,mem_rssi_avg_received
+
+ifndef DISTANCE_DISCON
+	branch power_ctrl_rssi_avg_compare
+else
+
+	fetch 1,mem_rssi_dis_max_24g
+	bmark1 mark_24g,p_power_ctrl_start_next
+	fetch 1,mem_rssi_dis_max_ble
+p_power_ctrl_start_next:
+	isub temp,null
+	nbranch p_power_ctrl_txpower_incrs_force,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	sub pdata,2,null
+	nbranch p_power_ctrl_txpower_decrs_check,positive
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	beq 0,p_power_ctrl_txpower_incrs
+	rtn
+
+p_power_ctrl_txpower_decrs_check:
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	fetcht 1,mem_power_ctrl_pac_succ_cnt_init
+	isub temp,null
+	nrtn zero
+	jam 0,mem_power_ctrl_pac_succ_cnt
+p_power_ctrl_txpower_decrs:
+	fetcht 1,mem_rssi_avg_received
+	fetch 1,mem_rssi_dis_min_24g
+	bmark1 mark_24g,p_power_ctrl_txpower_decrs_next
+	fetch 1,mem_rssi_dis_min_ble
+p_power_ctrl_txpower_decrs_next:	
+	isub temp,null
+	nrtn positive
+	fetch 1,mem_power_ctrl_level
+	beq 0,power_ctrl_decrs_level0
+	increase -1,pdata
+	store 1,mem_power_ctrl_level
+	beq 2,p_power_ctrl_decrs_level2				//3-->0-->-5
+	beq 1,power_ctrl_decrs_level1	//0dBm
+	branch power_ctrl_decrs_level0 //-5dBm
+
+p_power_ctrl_txpower_incrs_force:		//0-->3-->5
+	jam 0,mem_power_ctrl_pac_succ_cnt
+p_power_ctrl_txpower_incrs:
+	fetch 1,mem_power_ctrl_level
+	beq 3,p_power_ctrl_incrs_level3
+	increase 1,pdata
+	store 1,mem_power_ctrl_level
+	beq 1,power_ctrl_incrs_level1	//0dBm
+	beq 2,p_power_ctrl_incrs_level2
+p_power_ctrl_incrs_level3:	//+5dBm
+	branch p_power_ctrl_incrs_level2	//+3db
+//	jam TX_POWER_5DB,mem_tx_power
+//	rtn	
+p_power_ctrl_decrs_level2:	
+p_power_ctrl_incrs_level2:	//+3dBm
+	jam TX_POWER_3DB,mem_tx_power
+	rtn
+endif
+
+ifdef RSSI_SORT
+p_rssi_average:
+	arg mem_mouse_rssi_signal_buf_temp+6,rega
+	arg 10,pdata
+	branch rssi_average+2
+
+p_rssi_sort:
+	call p_memcpy16
+	arg mem_mouse_rssi_signal_buf_temp,regb
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	copy pdata,loopcnt
+	branch p_bubble_sort
+
+p_memcpy16:
+	arg mem_mouse_rssi_signal_buf_patch,contr
+	arg mem_mouse_rssi_signal_buf_temp,contw
+	branch memcpy16
+
+//input:regb buff ptr,pdata buff length
+p_bubble_sort:
+	increase -1,loopcnt
+	deposit loopcnt
+	rtn blank
+p_external_loop:
+	copy loopcnt,rega
+	increase -1,rega
+	copy regb,contr
+p_internal_loop:
+	ifetch 1,contr
+	copy contr,contw
+	ifetcht 1,contr
+	isub temp,null
+	call p_sort_up
+	increase -1,contr
+	increase -1,rega
+	branch p_internal_loop,positive
+	loop p_external_loop
+	rtn
+p_sort_up:
+	call p_exchange_data,positive
+	rtn
+p_exchange_data:
+	increase -1,contw
+	istoret 1,contw
+	istore 1,contw
+	rtn
+endif
+
+ifdef UART_LOG
+p_device_hardware_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_device_uart_rx_buffer
+	call uarta_init_dma_mem
+
+	fetch uart_baud_len,mem_device_uart_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	fetch 1,mem_device_uart_tx_gpio
+	arg gpcfg_uart_txd,temp
+	call gpio_config_function_int
+	fetch 1,mem_device_uart_rx_gpio
+
+	arg gpcfg_uart_rxd|gpcfg_pullup,temp
+	call gpio_config_function_int
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	rtn
+	
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii:
+	rshift4 pdata,rega  //high 4bit in rega
+	and_into 0x0f,pdata
+	call hex2ascii_half_byte
+	copy pdata,regb
+	copy rega,pdata
+	call hex2ascii_half_byte
+	lshift8 regb,regb
+	iadd regb,pdata
+//	lshift16 pdata,pdata
+//	arg 0x7830,regb   //0x
+//	iadd regb,pdata
+	rtn
+
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii_half_byte:
+	arg 0xa,temp
+	isub temp,temp
+	nbranch hex2ascii_half_byte_numberic,positive
+	setarg 0x41  // A
+	iadd temp,pdata
+	rtn
+hex2ascii_half_byte_numberic:
+	arg 0x30,temp
+	iadd temp,pdata
+	rtn
+
+//input: loopcnt--length,regc--data ptr	
+log_bytes:
+	copy loopcnt,pdata
+	branch log_len0,blank
+log_bytes_loop:
+	ifetch 1,regc
+	increase 1,regc
+	call log_byte
+	call log_space
+	loop log_bytes_loop
+uart_wait:
+	fetch 1,core_uart_status
+	bbit1 uart_status_tx_busy,uart_wait
+//	nop 12000
+	rtn
+
+log_len0:
+	call uarta_prepare_tx
+	setarg 0x656c
+	istore 2,contwu
+	setarg 0x306e
+	istore 2,contwu
+	call uarta_send
+	branch log_end
+
+//input 1byte @pdata
+log_byte:
+	call uarta_prepare_tx
+	call hex2ascii
+//	istore 4,contu	//0x
+	istore 2,contwu
+	branch uarta_send
+
+log_space:
+	call uarta_prepare_tx
+	setarg 0x20
+	istore 1,contwu
+	branch uarta_send
+
+log_end:
+	call uarta_prepare_tx
+	setarg 0x0a0d
+	istore 2,contwu
+	branch uarta_send
+
+log_colon:
+	call uarta_prepare_tx
+	setarg 0x3a
+	istore 1,contwu
+	branch uarta_send
+	
+//output:"sync_to"
+print_sync_timeout:
+	call uarta_prepare_tx
+	setarg 0x7973
+	istore 2,contu
+	setarg 0x636e
+	istore 2,contu
+	setarg 0x6f745f
+	istore 3,contu
+	call uarta_send
+	branch log_end
+	
+//output:"hec_error"
+print_hec_error:
+	call uarta_prepare_tx
+	setarg 0x636568
+	istore 3,contu
+print_error:
+	setarg 0x72655f
+	istore 3,contu
+	setarg 0x726f72
+	istore 3,contu
+	call uarta_send
+//	call log_space
+	branch log_end
+
+//output:"type_error"
+print_type_error:
+	call uarta_prepare_tx
+	setarg 0x707974
+	istore 3,contu
+	setarg 0x65
+	istore 1,contu
+	branch print_error
+
+//output:"rxlen_error"
+print_rxlen_error:
+	call uarta_prepare_tx
+	setarg 0x6c7872
+	istore 3,contu
+	setarg 0x6e65
+	istore 2,contu
+	branch print_error
+
+//output:"crc_error"
+print_crc_error:
+	call uarta_prepare_tx
+	setarg 0x637263
+	istore 3,contu
+	branch print_error
+
+//output:"rs_ms"
+print_rssi_mouse:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x736d5f
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_mouse
+	call log_byte
+	branch log_space
+
+//output:"rs_dg"
+print_rssi_dongle:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x67645f
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_hex_received
+	call bcd	
+	call log_byte
+	branch log_space
+	
+//output:"agc"
+print_agc:
+	call uarta_prepare_tx
+	setarg 0x636761
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,0x89a3	
+	call log_byte
+	branch log_space
+
+//output:"rs_avg-d"
+print_rssi_avg:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x76615f
+	istore 3,contwu
+	setarg 0x642d67
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_avg_received
+	call log_byte
+	branch log_space
+	
+//output:"pac"
+print_pac_succ_cnt:
+	call uarta_prepare_tx
+	setarg 0x636170		
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	call uarta_prepare_tx
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	call log_byte
+	branch log_end
+
+//output:"ms_pac"
+print_ms_pac:
+	call uarta_prepare_tx
+	setarg 0x5f736d
+	istore 2,contwu
+	setarg 0x636170
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_24g_paccnt
+	call log_byte
+	branch log_space
+
+//output:"ch"
+print_ch:
+	call uarta_prepare_tx
+	setarg 0x6863		
+	istore 2,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_24g_ch
+	call log_byte
+	branch log_space
+
+//output:"ct"
+print_clkn_bt:
+	call uarta_prepare_tx
+	setarg 0x7463		
+	istore 2,contwu
+	call uarta_send
+	call log_colon
+	deposit clke_bt
+	store 4,mem_clkn_bt_patch
+	arg 4,loopcnt
+	arg mem_clkn_bt_patch,regc
+	branch log_bytes
+
+//output:"txp"
+print_txpower:
+	call uarta_prepare_tx
+	setarg 0x707874		
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	call txpower_index_exchange
+	arg 2,loopcnt
+	arg mem_txpower_print,regc
+	branch log_bytes
+
+txpower_index_exchange:
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,print_txpower_0
+	beq TX_POWER_3DB,print_txpower_3
+	beq TX_POWER_5DB,print_txpower_5
+	beq TX_POWER_6DB,print_txpower_6
+	beq TX_POWER_7DB,print_txpower_7
+	beq TX_POWER_10DB,print_txpower_10
+	beq TX_POWER_F3DB,print_txpower_f3
+	beq TX_POWER_F5DB,print_txpower_f5
+	rtn
+print_txpower_0:
+	setarg 0
+	store 2,mem_txpower_print
+	rtn
+print_txpower_3:
+	setarg 3
+	store 2,mem_txpower_print
+	rtn
+print_txpower_5:
+	setarg 5
+	store 2,mem_txpower_print
+	rtn
+print_txpower_6:
+	setarg 6
+	store 2,mem_txpower_print
+	rtn
+print_txpower_7:
+	setarg 7
+	store 2,mem_txpower_print
+	rtn
+print_txpower_10:
+	setarg 10
+	store 2,mem_txpower_print
+	rtn
+print_txpower_f3:
+	setarg 0xf3
+	store 2,mem_txpower_print
+	rtn
+print_txpower_f5:
+	setarg 0xf5
+	store 2,mem_txpower_print
+	rtn	
+endif
+
+	
Index: program/patch_sdk.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/patch_sdk.prog	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/program/patch_sdk.prog	(working copy)
@@ -5,7 +5,11 @@
 define ROMCODE
 define PATCH
 define SDKCODE
+define COMPILE_MOUSE
 ifdef SDKCODE
 INCLUDE "bt_format"
 org 0x0000  // start from patch ram address start
+include patch.prog
+org 0x3bc1
+include app_mouse.prog
 endif
Index: readme.txt
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/readme.txt	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/readme.txt	(working copy)
@@ -1 +1,2 @@
+双击“do_sdk.bat”编译
 双击“YC_Download.bat”编译下载
Index: sched/1308.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/sched/1308.dat	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/sched/1308.dat	(nonexistent)
@@ -1,2 +0,0 @@
-
-
Index: sched/mouse.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/sched/mouse.dat	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/sched/mouse.dat	(working copy)
@@ -9,9 +9,9 @@
 
 
 mem_dig_aon_vsel:00
-#hw agc
 mem_gain_fix:ff
-mem_gain_second_agc_en:00
+mem_gain_table:04 00 00
+mem_gain_second_agc_en:08	#00-disbale,08-enable
 
 mem_mouse_flag:
 #mouse flag byte1
@@ -52,7 +52,7 @@
 #bit5 MOUSE_ENABLE_USB_250
 #bit6 MOUSE_ENABLE_USB_500
 #bit7 MOUSE_ENABLE_USB_1000
-08
+00
 
 #mouse flag byte5
 #bit0 MOUSE_ENABLE_POWER_ON_LED
@@ -63,7 +63,7 @@
 #bit5 MOUSE_ENABLE_DPI_FOR_4_LED
 #bit6 MOUSE_ENABLE_BT2_FOR_4_LED
 #bit7 MOUSE_ENABLE_LOW_V_FOR_4_LED
-01
+00
 
 #mouse flag byte6 
 #bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
@@ -96,11 +96,18 @@
 #bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
 1b
 
-
-mem_mouse_discovery_timeout:08 07	#3min
-mem_mouse_24g_pair_timeout_init:06 00  #600ms	    24g reconn timer&pair timer
-mem_mouse_direct_timeout:50  #8s
-mem_mouse_24g_reconn_timeout_init:06 #600ms
+mem_mouse_led_new_interface_config:
+#bit0 MOUSE_ENABLE_1IO2LED
+#bit1 MOUSE_ENABLE_BT_RECONN_LED_EFFECT
+#bit2 MOUSE_ENABLE_LED_BLINK_LIMIT
+#bit3 MOUSE_ENABLE_LOW_LED
+#bit4 MOUSE_ENABLE_LOW_LED_BLINK_LIMIT
+03
+
+mem_mouse_discovery_timeout:b0 04	#2min
+mem_mouse_24g_pair_timeout_init:0a 00  #1s	    24g reconn timer&pair timer
+mem_mouse_direct_timeout:64  #10s
+mem_mouse_24g_reconn_timeout_init:05 #500ms
 
 mem_mouse_24g_pair_tx_power:94 #-20dBm
 mem_rssi_dis_min_24g_init:85
@@ -118,9 +125,9 @@
 mem_customer_key_gpio:ff
 mem_whee_a_data_gpio:04
 mem_whee_b_data_gpio:05
-mem_config_device_24g_led_gpio:0a
-mem_config_device_bt1_led_gpio:0a
-mem_select_sensor_angle_gpio:13
+mem_config_device_24g_led_gpio:ff
+mem_config_device_bt1_led_gpio:ff
+mem_select_sensor_angle_gpio:ff
 
 mem_lbutton_gpio:0b
 mem_rbutton_gpio:0d
@@ -136,26 +143,50 @@
 mem_dpi_led_gpio:ff #03
 mem_firebutton_gpio:ff
 
+mem_mouse_rgb_ctrl_gpio:ff
 mem_sensor_angle_default:02	#00--6CLK   01--9CLK   02--12CLK   03--3CLK
 mem_sensor_angle_switch:01	#00--6CLK   01--9CLK   02--12CLK   03--3CLK
 mem_config_sensor_dpi:00		#00--1200   01--1600
 
-mem_mouse_logo_led_gpio:ff
+mem_mouse_logo_led_gpio:0a
 mem_mouse_logo_led_on_time_init:58 02	#1min
 
-mem_mouse_ice_sdio_for_sensor_angle:01	#00 disable, 01 enable
+
+#1io2led multi start
+#time parm
+mem_mouse_led_multi_type:00				#00:no multi	01:low+led	02:dpi+led	03:low+dpi_led
+mem_mouse_multi_led_powon_timer_init:14	#2s
+mem_mouse_multi_24gled_blink_timer_init:05			#24gled blink time		500ms on,500ms off
+mem_mouse_multi_le_discovery_blink_timer_init:02		#le discovery blink time	500ms on,500ms off
+mem_mouse_multi_le_reconn_blink_timer_init:05			#le reconn blink time		500ms on,500ms off
+mem_mouse_low_led_blink_timer:14				#low blink time			1000ms on,1000ms off
+mem_mouse_dpi_led_blink_timer_init:02			#dpi blink time			200ms on,200ms off
+#blink count=count/2
+mem_mouse_multi_24gled_blink_count_init:01		#24g count
+mem_mouse_multi_le_reconn_blink_count_init:05	#le reconn count
+mem_mouse_multi_lowled_blink_count_init:0a		#low count=count
+#io config
+mem_mouse_1io2led_multi_24gled:ff
+mem_mouse_1io2led_multi_bt1led:0a
+mem_mouse_1io2led_multi_bt2led:ff
+mem_mouse_low_gpio:ff
+mem_mouse_dpi_gpio:ff
+#1io2led multi end
+
 mem_usb_offline_check_gpio:ff
 
 
 mem_customer_key_press:
 #03 ea 00 00 00 00 00 00 00 #VOL DOWN
 #02 01 00 00 00 00 00 00 00 #POWERDOWN
-00 05 00 04 00 00 00 00 00#CTRL+ALT+A
+#00 05 00 04 00 00 00 00 00#CTRL+ALT+A
+00 08 00 07 00 00 00 00 00#One-click desktop
 
 mem_customer_key_release:
 #03 00 00 00 00 00 00 00 00 #MEDIA RELEASE
 #02 00 00 00 00 00 00 00 00 #SYSTEM CRTL RELEASE
-00 00 00 00 00 00 00 00 00#STANDARD KEY RELEASE
+#00 00 00 00 00 00 00 00 00#STANDARD KEY RELEASE
+00 00 00 00 00 00 00 00 00#One-click desktop
 
 mem_lpm_mode:01
 
@@ -179,32 +210,33 @@
 mem_mouse_page_to:00 40		# 16384*0.625ms=10s
 mem_mouse_fast_direct_timeout:0a #1s
 mem_mouse_fast_page_to:60 06	# 1600*0.625ms = 1s
-mem_mouse_24g_power_on_fast_conn_timer:0a 00 #1s
+mem_mouse_24g_power_on_fast_conn_timer:05 00 #1s
 mem_mouse_24g_search_dongle_time_init: 64 00
 mem_mouse_no_data_timeout:70 17 #10min
 
 mem_mouse_device_poweron_timer_count_init:14	#2s
-mem_mouse_dpi_led_delay_count_init:0a	#1s
-mem_mouse_dpi_led_blink_time:90 01		#200ms on,200ms off
-mem_mouse_disconvey_led_blink_time:90 01	#200ms on,200ms off
-mem_mouse_bt_reconn_led_blink_time:64 00	#100ms on,100ms off
+mem_mouse_dpi_led_delay_count_init:05	#500ms
+mem_mouse_dpi_led_blink_time: 90 01		#200ms on,200ms off
+mem_mouse_disconvey_led_blink_time: e8 03	#500ms on,500ms off
 mem_mouse_low_v_led_blink_time:90 01		#200ms on,200ms off
 
+
 #bit0:mouse_key_l    bit1:mouse_key_r  bit2:mouse_key_m
 mem_mouse_commbination_key_bt:07
-mem_mouse_commbination_key_24g:06
+mem_mouse_commbination_key_24g:03
+mem_mouse_commbination_key_dpi:ff
 
 mem_store_information_delay_timer_init:02
 
 #adc start
 mem_adc_config_flag_init:02 		#00-vinlpm   01-hvin   02-gpio
 mem_adc_channel:05 		#00-gpio4   01-gpio5   02-gpio6  03-gpio7    04-gpio9  05-gpio10  06-gpio11  07-gpio12
-mem_mouse_vdd_full_vol:05 01		#1.5V
-9f 00#mem_mouse_vdd_empty_vol  :0.9V
-b1 00#mem_mouse_vdd_low_vol   :1.0V
-#mem_mouse_vdd_full_vol:3c 01		#3.3V
-#1e 01#mem_mouse_vdd_empty_vol  :3.0V
-#30 01#mem_mouse_vdd_low_vol   :3.2V
+mem_mouse_vdd_full_vol:0f 01		#1.5V
+a2 00#mem_mouse_vdd_empty_vol  :0.9V
+b4 00#mem_mouse_vdd_low_vol   :1.0V
+#mem_mouse_vdd_full_vol:4a 01		#3.3V
+#2c 01#mem_mouse_vdd_empty_vol  :3.0V
+#40 01#mem_mouse_vdd_low_vol   :3.2V
 mem_mouse_vdd_button_press_vol:10 00
 mem_mouse_vdd_switch_gnd_24g_vol:52 00
 mem_mouse_vdd_switch_gnd_full_vol:35 00
@@ -223,7 +255,7 @@
 mem_lpm_mult_init:20
 
 mem_app_connection_options:06
-mem_lap:15 a0 c8 13 23 51
+mem_lap:11 23 48 12 23 51
 mem_local_name_length:
 'BT3.0 Mouse
 mem_sniff_param_interval:
@@ -276,8 +308,8 @@
 'BT5.2 Mouse
 
 mem_le_interval_min:
-07 00 #min interval
-07 00 #max interval
+06 00 #min interval
+09 00 #max interval
 20 00 #latency
 2c 01 #timeout
 
@@ -291,7 +323,7 @@
 mem_le_adv_channel_map:07 
 mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
 
-mem_le_lap:8e b1 3c 0e 8e ed
+mem_le_lap:8e b1 0a 2e 8e ed
 
 
 mem_le_keyboard_handle:15 00
@@ -325,6 +357,13 @@
 11##mem_ka8g2_dpi_2	1000
 0e##mem_ka8g2_dpi_3	800
 
+mem_sensor_s201_dpi:
+8a  ##1200
+8b  ##1600
+83  ##2400
+84  ##3200
+88  ##800
+
 mem_sensor_3212_init:
 09 5a
 26 34
@@ -380,7 +419,7 @@
 09 00
 ff ff
 
-mem_sensor_8650_init:
+mem_sensor_8650_init_new:
 09 5a
 ff 27
 ab 40
@@ -392,6 +431,16 @@
 b5 d0
 b6 00
 ff 00
+35 c8
+25 af
+09 00
+ff ff
+
+mem_sensor_p6520_init:
+05 b9
+09 5a
+0b 72
+0c 52
 09 00
 ff ff
 
@@ -424,7 +473,8 @@
 
 mem_sensor_ka8g2_init:
 09 a5
-46 34
+26 34
+19 04
 60 07
 69 04
 7d 20
@@ -445,7 +495,7 @@
 ff ff	
 
 mem_ui_led_struct_ptr:mem_mouse_led_type
-mem_ui_led_struct_num:01
+mem_ui_led_struct_num:00
 
   
 #24g init
@@ -481,7 +531,21 @@
 mem_eeprom_base:80 1f
 mem_eeprom_block_size:80
 
-mem_tx_power:01#3dbm
+mem_tx_power:03#3dbm
+
+
+
+
+
+#log log log log log log log log log log log
 
+#uart config
+#mem_device_uart_tx_gpio:0c	#0c
+#mem_device_uart_rx_gpio:ff
+#mem_device_uart_baud_rate:1a 00	#921600
+#mem_device_uart_rx_buffer:00 1c
+#mem_device_uart_rx_buffer_end:ff 1f
+#mem_device_uart_tx_buffer:00 4f
+#mem_device_uart_tx_buffer_end:ff 4f
 
 
Index: util/mergepatch.pl
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/util/mergepatch.pl	(revision 4046)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/Standard-129_24G_First_Led_Connect_VIN_SDK/util/mergepatch.pl	(working copy)
@@ -127,6 +127,17 @@
 }
 
 
+sub getdefs {
+	my($def) = @_;
+	my(@ifdefs) = split(/\s*\|\s*/, $def);
+	my $v = 0;
+	foreach (@ifdefs) {
+		s/\s//g;
+		$v = 1 if($defs =~ /(^|\s)$_(\s|$)/);
+	}
+	return $v;
+}
+
 sub parseif {
 	my($fname) = @_;
 	open file, $fname;
@@ -142,11 +153,12 @@
 			$comment = 0 if(/\*\//);
 			next;
 		}
-		$defs .= $1 . " " if(/^define\s+(\w+)\s*/);
-		if(/^\s*ifdef\s+(\w+)\s*/) {
-			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 1 : 0) & $valid[$#valid];
-		} elsif(/^\s*ifndef\s+(\w+)\s*/) {
-			push @valid, ($defs =~ /(^|\s)$1(\s|$)/ ? 0 : 1) & $valid[$#valid];
+		if(/^\s*ifdef\s+(.+)$/) {
+			$v = getdefs($1) ? 1 : 0;
+			push @valid, $v & $valid[$#valid];
+		} elsif(/^\s*ifndef\s+(.+)$/) {
+			$v = getdefs($1) ? 0 : 1;
+			push @valid, $v & $valid[$#valid];
 		} elsif(/^\s*else/) {
 			printf "%s\nelse without if at line %d\n", $f[$i - 3], $i if($#valid == 0);
 			if($#valid == 0) {
@@ -174,6 +186,9 @@
 				close file2;
 				splice(@f, $i + 1, 0, @f2);
 			} else {
+			if(/^define\s+(\w+)\s*/) {
+				$defs .= $1 . " " 
+			}
 				print file $_;
 			}
 		}
@@ -185,7 +200,7 @@
 {
 	print "genpatch\n";
 	$patched = 0;
-	open file,"program/patch.prog";
+	open file,"output/bt_program23.meta";
 	while(<file>) {
 		if(/^\s*beq\s+patch([0-9a-f]+)_([0-7]),/) {
 			$a = hex($1), $b = hex($2);
@@ -223,10 +238,11 @@
 	open file, "output/bt_program23.meta";
 	@f = <file>;
 	close file;
-	for($i = $label = $line = 0, $z = 1;$i < @f;$i++) {
+	for($i = $label = $line[0] = 0, $z = 1;$i < @f;$i++) {
 		$_ = $f[$i];
-		$line = $i - 1 if(/^org\s+0x[23]000/ && $line == 0);
+		$line[0] = $i - 1 if(/^org\s+0x([23]000|800)/ && $line[0] == 0);
 		if(/^org z\s*$/) {
+			$line[$z/0x10000 + 1] = $i - 1;
 			$z += 0x10000;
 			$f[$i] = sprintf("org 0x%x\n", $z);
 			$label = 1;
@@ -237,20 +253,28 @@
 		}
 	}
 	return if($z == 1);
+	$line[$z/0x10000 + 1] = $i - 1;
 	for($i = 0;$i < @f;$i++) {
 		$_ = $f[$i];
 		$label = "";
-		if(/^\s*(branch|nbranch|call|ncall)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall)\s+(\w+)\s*,\s*(\w+)\s*$/) {
+		if(/^\s*(branch|nbranch|call|ncall|setarg)\s+(\w+)\s*$/ || /^\s*(branch|nbranch|call|ncall|arg)\s+(\w+)\s*,\s*(\w+)\s*$/) {
 			$label = $2;
 		}
 		if(/^\s*(bmark|beq|bne|bbit[01])\s+(\w+)\s*,\s*(\w+)\s*$/) {
 			$label = $3;
 		}
+		$branch = /^\s+branch\s+$label\s*$/ ? 1 : 0;
 		if(exists($lab{$label})) {
 			$nlabel = "jmpz_" . $label;
 			$f[$i] =~ s/$label/eval "$nlabel"/e;
 			if($lab{$label} > 100) {
-				$f[$line] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, int($lab{$label}/0x1000));
+				$z = int($lab{$label}/0x1000);
+				$l = $i < $line[1] ? $line[0] : $line[$z/10 - 1];
+				if($branch && $i >= $line[1]) {
+					$f[$i] = sprintf("\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $z);
+				} else {
+					$f[$l] .= sprintf("%s:\n\tsetarg 0x%x\n\tbranch p_zcode_entrance_2Bytes_common\n\n", $nlabel, $z);
+				}
 				$lab{$label} = 1;
 			}
 		}
@@ -269,6 +293,41 @@
 	close file;
 }
 
+sub authrom {
+	$addr = 0x9000;
+	foreach $s (@ARGV) {
+		open f, "../sched/" . $s . ".dat" or die "cannot open dat file $s";
+		@ff = <f>;
+		close f;
+		foreach (@ff) { $_ =~ s/\s//g;push @auth, $_ . "\n"; }
+		printf "0x%x %s_ADDR\n", $addr, uc($s);
+		$addr += $#ff + 1;
+	}
+	open f,">auth.rom";
+	print f @auth;
+	close f;
+	open f,"romcode.rom" or return;
+	@rom = <f>;
+	close f;
+	for($i = 0, $j = $#rom - 0x1ff;$i < 0x200;$i++,$j++) {
+		for($k = 0, $l = "";$k < 4;$k++) {
+			$_ = $auth[$i*4 + $k];
+			s/\s//g;
+			$_ = "00" if(/^$/);
+			$l =  $_ . $l;
+		}
+		$rom[$j] = $l . "\n";
+	}
+	open f,">romcode.rom";
+	print f @rom;
+	close f;
+}
+
+if(@ARGV > 0) {
+	authrom();
+	exit;
+}
+
 parseif("output/bt_program23.meta");
 parseif("output/bt_format.meta");
 genpatch() if($defs !~ / SIM /);
