Index: format/labels.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/format/labels.format	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/format/labels.format	(working copy)
@@ -2156,6 +2156,7 @@
 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
@@ -2290,9 +2291,11 @@
 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
@@ -2342,15 +2345,18 @@
 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
Index: format/rom.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/format/rom.format	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/format/rom.format	(working copy)
@@ -1208,6 +1208,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 +1235,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
@@ -2716,6 +2718,10 @@
 //byte 8
 0x38 MOUSE_ENABLE_SMOOTHER
 0x39 MOUSE_ENABLE_XY_OFFSET
+0x3a MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+0x3b MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+0x3c MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+0x3d MOUSE_ENABLE_DOUBLE_DPI_KEY
 
 //mouse dpi level
 0x00 MOUSE_DPI_LEVEL1
@@ -2785,6 +2791,7 @@
 0X09 KA8_UL
 0X0a KA8_HD
 0X0b KA8G2
+0X0c S201X
 
 
 //SENSOR REG
@@ -2844,6 +2851,8 @@
 0x05 MOUSE_DPI_KEY
 0x06 MOUSE_PB_KEY
 0x07 MOUSE_CUSTOMER_KEY
+
+0x00 MOUSE_DPI_ANOTHER_KEY
 )
 (
 0 G24_DISCONN_STATE
@@ -2882,6 +2891,51 @@
 1 MULTI_LED_BLINK
 )
 
+//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
+)
+
 (
 // eeprom config
 0xb0 REMOTE_PARAM_EEPROM_CONFIG_ADDR
@@ -4680,6 +4734,7 @@
 	0x89f4 fpga_uart_rdata
 	0x89f5 fpga_uart_status
 
+	0x8921 core_rx_ctrl1
 	0x8a00 core_clkpll_ctrl0              
 	0x8a01 core_clkpll_ctrl1              
 	0x8a02 core_clkpll_ctrl2              
@@ -9584,27 +9639,61 @@
 
 1 mem_sensor_shutdown_flag
 
-2 mem_mouse_bt_reconn_led_blink_time
-6 mem_mouse_factory_addr
+//patch area
+1 mem_power_on_flag
+
+8 mem_ka8g2_sensor_poweron_init
+2 mem_24g_pair_count
+
+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
+
+1 mem_dpi_another_button_gpio
+1 mem_dpi_another_press_status
+1 mem_dpi_another_button_state
+1 mem_dpi_another_button_down_enable
+
+1 mem_mouse_key_temp_patch
+
+1 mem_mouse_reuse_2ice_gpio
+1 mem_mouse_ice_sdio_for_sensor_angle
+
+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
 
-1 mem_mouse_multi_led_blink_enable
-1 mem_mouse_multi_led_gpio
 1 mem_mouse_multi_led_state
 1 mem_mouse_multi_led_type
-1 mem_mouse_multi_led_on_timer
-1 mem_mouse_multi_led_on_timer_init
-1 mem_mouse_multi_led_blink_timer_init
 1 mem_mouse_multi_led_blink_timer
-1 mem_mouse_multi_led_blink_count
-1 mem_mouse_multi_led_blink_count_limited
-1 mem_mouse_multi_led_on_poweron2s_flag
-
-2 mem_mouse_logo_led_on_timer
+1 mem_mouse_multi_led_enable
+1 mem_mouse_le_reconn_flag
+1 mem_mouse_multi_led_on_timer_init
+2 mem_mouse_multi_led_on_timer
 1 mem_mouse_logo_led_on_enable
 1 mem_mouse_logo_led_on_check_count
 
-1 mem_mouse_reuse_2ice_gpio
-
 )
 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/SlideSwitch_3mode_Logo_cloese3.0/output/eeprom.dat	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/eeprom.dat	(working copy)
@@ -2,88 +2,156 @@
 02
 aa
 55
-fa
-07
+fe
+17
 c2
 84
 00
-11
+1b
 c0
 00
 00
-15
+26
+c0
+01
+80
+37
+c0
+41
+80
+50
 c0
 45
 80
-5d
+91
 c0
 4f
 80
-68
+9e
 c0
 57
 00
-19
+a0
 c0
-64
-01
-d0
+58
+00
+85
+c0
+61
+82
+83
+c0
+63
+81
+8b
 c0
 64
-80
-6a
+81
+91
 c0
 65
+01
+ca
+c0
+66
 00
-7d
+81
 c0
 67
-01
-df
+03
+c1
+c0
+67
+84
+69
 c0
 68
-00
-f5
+02
+93
+c0
+68
+83
+f6
+c0
+69
+83
+31
+c0
+6a
+03
+dc
 c0
 6b
-00
-82
+01
+f8
 c0
 6c
-80
-f7
+82
+bb
 c0
 6d
-00
-a9
+03
+64
 c0
-6d
+6f
+04
+2c
+c0
+70
 80
-d1
+2f
 c0
-6f
-01
-62
+71
+00
+2b
 c0
 74
-01
-84
+03
+71
 20
 20
 13
 7c
 c0
+19
+80
+61
+c0
+1a
+00
+66
+c0
+43
+83
+6d
+c0
 50
-81
-98
+83
+85
 c0
 60
+03
+8f
+c0
+6e
+82
+72
+c0
+71
+02
+4d
+c0
+74
+82
+55
+c0
+75
 01
-a2
+54
 c0
 76
-01
-fb
+03
+b6
 20
 20
 13
@@ -96,6 +164,10 @@
 40
 30
 f3
+24
+55
+80
+33
 20
 40
 3b
@@ -104,3200 +176,6293 @@
 20
 08
 04
-20
-40
-6d
-f3
-20
-40
-00
-2b
-20
-40
+18
+42
+7e
 00
-3b
-20
-40
-41
-a7
-20
-40
-40
-8e
-20
-75
+c1
+7f
 80
 00
+1f
+e2
+04
+00
 20
-40
-3d
-8a
-20
-40
-47
-28
-20
-40
-3b
-cf
 20
-40
+49
+30
+18
 42
-3c
-6f
-e0
-c9
-2a
-c3
-83
+7e
+00
+c1
+7f
 80
 00
-6f
-e1
-47
-8c
-c2
-86
-45
-53
-20
-40
-01
-6b
-6f
-e0
-c9
-38
-c0
+1f
+e2
+04
 00
-80
-33
 20
 20
-3d
-52
+49
+2c
 6f
 e0
 cb
-e1
-20
+af
+24
 7a
 00
 00
-6f
-e0
-c9
-13
-d8
-40
+70
+44
+8c
 00
-40
 20
-40
 60
-93
-6f
-e0
-c9
-14
-d8
-40
 00
+00
+20
+40
+70
+6c
+20
 40
+75
+97
 20
+40
+6e
+a7
 20
-60
+40
+1b
 93
 20
 40
-01
-48
-6f
-e3
-49
+08
 3a
-68
-4b
-4b
-e4
-98
-46
-7c
-00
-20
-22
-80
-39
-20
-20
-48
-1c
-70
-49
-38
-01
-20
-20
-45
-53
-20
-75
-80
-00
 20
 40
-26
-07
+31
+08
 20
 40
-22
-ff
+08
+92
 20
 40
-3f
-1e
+0b
+08
 20
 40
-3d
-13
-68
-48
-cb
-eb
+0b
+7b
 20
 40
-60
-69
+08
+23
 20
 40
-1b
-16
+21
+d3
 20
 40
-1b
-3f
+00
+44
 20
-40
-1b
-32
+20
+08
+13
 20
 40
-1b
-1e
+14
+65
 6f
-e4
-4b
-ab
-c2
-89
-80
-4a
-c2
-89
-45
-f6
+e1
+c1
+74
 20
-60
+7a
 00
 00
-20
-40
-5d
-d8
-20
-40
-5d
-9f
 6f
-e4
-4b
-ab
-2f
-ef
-fe
-09
-24
-40
-dd
-bf
-20
-40
-46
-3b
-20
+e0
+c0
+99
 20
+7a
 00
-51
-6f
-e1
-49
-90
-d8
-40
-aa
-55
-98
-46
-7c
 00
-20
-22
-c5
-e2
-60
-49
-49
-90
-20
-40
-45
-e7
 6f
 e0
-c9
-26
-67
-e0
-c9
-92
+c7
+64
+20
+3a
+00
+4d
 6f
-e2
-48
-8d
-67
-e2
-48
-91
-67
-e2
-48
-3c
+e0
+c6
+b9
 20
-60
+7a
+00
+00
+6f
+e0
+c6
+ba
+24
+7a
 00
 00
-70
-8a
-8b
-e6
-20
-40
-12
-6a
 20
-40
-12
-71
 20
-40
-12
-77
-70
-8a
-6d
-09
-70
-8a
-03
-05
-70
-8a
-7a
-94
-70
-8a
-0e
-0b
+14
+ea
 70
-8a
-0f
+89
+00
 05
-70
-8a
-83
-90
-20
 20
-12
-5d
+00
+00
+02
 70
+89
 00
-80
 00
+6f
+e0
+c0
+c5
+c0
+0c
+11
+68
+70
+8a
+87
+29
 20
 20
-13
-b7
+11
+7d
 20
 40
-42
-e9
+5b
+94
 20
 40
-7f
-dc
+04
+d9
 20
-40
-40
-15
-6f
-e0
-c9
-10
-c0
-7f
-80
-73
-68
-48
-c9
-10
-20
-40
-60
-69
-68
-48
-c9
-10
+34
+00
+5b
 20
-40
 60
-42
-68
-48
-cb
-f9
-20
-40
-3f
-56
-6f
-e0
-c9
-20
-d8
-40
 00
-3f
-20
-40
+00
+da
 60
-93
+5d
+e2
 6f
+e1
+4b
+f3
+1f
 e0
-c9
-38
-20
-5a
+fe
+03
+1f
+f0
+fe
 00
-7b
-20
-20
-3e
-36
-68
-48
-c9
-1e
-20
+67
+e1
+02
+e4
 20
-60
-7f
 20
-40
+5b
 3f
-88
-6f
-e0
-c9
-1f
+da
+20
+09
+9e
 d8
 40
 00
-3f
+0c
+58
+00
+00
+30
 20
 40
-60
-93
+5e
+63
 20
 20
-3e
-44
-1a
-62
+60
+bf
+6a
+50
+8a
+12
+70
+8a
+12
+3d
+70
+8a
+11
+aa
+70
+8a
+0a
+0c
+6f
+f0
+8a
+09
+79
+20
 7e
+07
+67
+f0
+8a
+09
+70
+8a
+0b
+04
+20
 00
-c0
-0a
 00
-8d
-c0
+3c
+70
+8a
+16
 00
-80
-94
-c0
-0a
-80
+70
+8a
+17
+06
+20
+40
+61
+1a
+67
+f0
+8a
 97
-c0
-01
-00
-99
-c0
-1d
-00
-e3
-c0
-1e
+70
+80
+dc
+03
+20
 00
-db
-c0
-02
 00
-a2
-c0
-09
+3c
+6f
+f0
 80
-a2
-c0
-19
-00
-9b
+53
+79
 20
+7e
+07
+67
+f0
+80
+53
 20
-43
-36
+00
+03
+e8
+6f
+f1
+01
+50
+67
+e1
+44
+a2
+6f
+f0
+80
+53
+79
+3f
+fe
+07
+67
+f0
+80
+53
 70
-4a
-ae
+8a
+97
 00
+62
+50
+8a
+12
 20
-40
-42
-ca
-70
-4a
-c6
-01
+60
+00
+00
 6f
 e0
-ca
-c7
+cb
+aa
 24
-3a
-43
-57
-70
-4a
-c8
-14
-20
-20
-43
-57
-70
-4a
-ae
+7a
+00
 00
 20
 40
-42
-ca
+00
+66
 20
 20
-45
-76
+3e
+bb
+6f
+e0
+83
+0d
 20
-40
-42
-3c
+7a
+00
+00
+1f
+e0
+ff
+ff
+67
+e0
+83
+0d
 20
+40
+77
+c5
 20
-43
-5f
+40
+31
+e3
 20
 40
-42
-3c
+31
+a4
 20
+40
+31
+aa
 20
-43
-fe
+40
+5c
+dc
 6f
-e0
-ca
-c7
-c0
+e1
+44
+6f
+20
+40
+7e
+05
+20
+20
 00
-80
-9f
+85
 70
-4b
-76
-14
+8a
+8b
+e6
 20
+40
+12
+6a
 20
-43
-73
+40
+12
+71
 20
 40
-43
-6c
+12
+77
 70
-4b
-76
+8a
+6d
+09
+70
+8a
+03
 05
-20
-20
-43
-73
-6f
-e0
-ca
-c1
-c0
-7f
-c2
-f8
-6f
-e1
-47
-8c
-c3
-86
-00
-00
-c3
+70
+8a
+7a
+94
+70
+8a
+0e
+0b
+70
+8a
+0f
+05
+70
+8a
 83
+90
+70
+8a
+85
 00
+70
+89
+21
+40
+20
+20
+12
+5d
+70
 00
-c3
-85
 80
 00
 20
 20
-3e
-20
-6f
-e1
-47
-8c
-2f
-ef
-fe
-0b
+13
+b7
+24
+55
+80
+57
+24
+55
+80
+ac
 20
 40
-c5
-81
-6f
-e1
-47
-8c
-2f
-ef
-fe
-07
+6d
+f3
 20
 40
-c3
-22
+00
+d7
 20
 40
-43
-14
-6f
-e1
-47
-8c
-c2
-85
+03
+31
+20
+75
 80
-ba
-6f
-e4
-4b
-ab
-c3
-04
 00
-ba
-68
-49
-49
-97
-18
+20
+40
+40
+8e
+20
+40
+3d
+8a
+20
+40
+47
+28
+20
 40
-84
 01
-60
-49
-49
-97
-60
-49
-43
-7b
-18
-0a
-7e
-00
-67
-e0
-c3
-7a
-6f
-e1
-ca
-c9
-67
-e1
-c3
-7d
+02
 20
 40
-32
-25
+03
+ee
+20
+20
+3b
+c9
 6f
-e1
-47
-91
-67
-e1
-4a
-c2
-70
+e4
+4c
+1f
+20
+7a
 00
-bd
-06
-58
 00
+6f
+e0
+cc
+1e
+1f
+e2
+22
 00
+1f
+e6
+7c
+0b
+24
+21
 00
-67
-e1
+be
+d8
+c0
+4c
+1f
+d8
+a0
 4a
-b2
-67
-e0
-cb
-77
-67
-e0
-ca
-c4
-67
-e0
-cb
-a7
-67
-e0
-ca
-ac
+db
+1a
+22
+72
+00
+20
+40
+7d
+5f
 d8
-e0
+c0
+4c
+1f
+d8
+a0
+44
+0a
+1a
+22
+72
 00
-02
 20
 40
-46
-f0
+7d
+5f
+d8
+c0
+4c
+1f
+d8
+a0
+42
+f8
+1a
+22
+72
+00
+20
+20
+7d
+5f
 20
 40
-46
-e4
+00
+d4
 6f
 e0
-cb
-b3
-2f
-ef
+cc
+1e
+1f
+e0
 fe
 01
+67
+e0
+ca
+d2
+70
+4a
+d3
+09
+d8
+c0
+4c
+1f
+d8
+a0
+4a
+d4
+1a
+22
+72
+00
 20
 40
-c3
-df
+7d
+5f
 6f
 e0
-cb
-b3
-2f
-ef
+cc
+1e
+1f
+e0
 fe
+01
+67
+e0
+c4
+08
+70
+44
+09
+09
+d8
+c0
+4c
+1f
+d8
+a0
+44
+0a
+1a
+22
+72
 00
 20
 40
-f8
-c4
+7d
+5f
+d8
+c0
+4c
+1e
+d8
+a0
+42
+f7
+1a
+22
+72
+00
+1f
 20
-40
-49
-8e
+f2
+01
 20
 20
-01
-25
+7d
+5f
 d8
-e0
+a0
+4a
+d2
+df
+20
 00
-06
+14
 20
-40
-46
-f4
-70
-4a
-c4
+20
+7d
+26
+20
+75
+80
 00
-6f
-e0
-cb
-b3
-2f
-ef
-fe
-01
 20
 40
-c5
-81
-6f
-e0
-cb
-b3
-2f
-ef
-fe
-00
+26
+07
 20
 40
-c5
-83
+22
+ff
+20
+40
+3f
+1e
 20
+40
+3d
+13
 20
-01
-3e
+40
+02
+d6
 6f
-e2
-48
-3c
-67
-e2
-48
-91
-67
-e2
-49
-93
+e0
+cc
+38
+20
+3a
+00
+e3
 20
 40
-48
-c6
-70
-4a
-ae
 00
-70
+e8
+68
 48
-a1
-00
-70
-48
-8b
-00
+c9
 20
 20
-42
-ca
-6f
-e0
-c8
-a5
-24
-3a
-00
-ea
-6f
-e0
-c8
-8b
-c0
-01
-48
-40
-c0
-02
-48
-39
-c0
-01
-c8
 40
+60
+50
 20
-20
-48
-39
-70
-48
-a5
+40
 00
+f8
 20
 40
-26
-52
-5f
-ff
-ff
-ff
-67
-e2
-48
-5c
-58
-00
-00
 00
-67
-e3
-c8
-d0
-70
+fc
+6f
+e4
 4b
-e1
-01
+ab
+c3
+0c
+3b
+f5
 20
 40
-42
-3c
+00
+ff
 20
-40
-3e
-33
 20
+3b
+f5
+6f
+e0
+c9
+24
+67
+e0
+c9
+28
+6f
+e0
+c9
+17
+c1
+7f
+80
+00
+6f
+e0
+c9
+17
+d8
 40
-01
+00
 3e
 20
-20
-26
-b5
-20
-40
-40
-8f
-20
-20
 40
-98
-20
+60
+93
+6f
+e0
+cc
+37
+d8
 40
+00
 3e
-9b
 20
 40
-49
-56
+60
+93
+68
+48
+c9
 20
-40
-23
-2b
 20
 40
-25
+3f
 56
+68
+48
+c9
 20
-40
-47
-cd
 20
 40
+60
+59
+24
 40
-7c
+c2
+aa
 20
-40
-44
-cc
 20
-40
-01
-4d
+3f
+54
+68
+48
+c9
+17
 20
 40
-44
-ff
+60
+7f
+68
+48
+cc
+37
 20
-40
-45
-04
 20
-40
-45
-12
+60
+7f
+58
+00
+f8
+0c
+67
+e1
+c8
+ad
 20
-40
+60
+00
+00
+58
+00
+2f
+b2
+67
+e1
+c8
+ad
+20
+60
+00
+00
+58
+00
 01
-04
+07
+67
+e1
+48
+9b
+58
+00
+01
+25
+67
+e1
+48
+9d
 20
 20
-44
-c4
+3b
+d3
+c6
+93
+00
+00
 6f
 e0
 cb
-ea
+f6
+24
+3a
+05
+92
 20
-7a
+40
+3f
+70
+24
+74
 00
 00
 6f
+e4
+4b
+ab
+c3
+0a
+81
+10
+6f
 e0
 cb
-ed
-c0
-00
-81
-2e
+8b
+24
+3a
+48
+84
 20
 40
-01
-3b
+42
+cb
 6f
 e0
-cb
-f7
-c0
-00
+c8
+36
+c2
+80
 81
-12
-6f
-e0
-cb
-ee
 1f
+68
+48
+c7
+c7
+6f
 e0
+c8
+d0
+98
+41
 fe
-01
+00
 67
 e0
-cb
-ee
+c8
+d0
 68
 48
-cb
-ef
-98
-46
-7c
-00
-20
-42
-81
-1c
-20
-60
-00
-00
+c7
+cc
 6f
-e1
-4b
-f5
-1f
 e0
+c8
+d5
+98
+40
 fe
-01
+00
 67
-e1
-4b
-f5
-d8
-40
-02
-58
+e0
+c8
+d5
+68
+48
+c7
+cd
+6f
+e0
+c8
+d6
 98
-46
-7c
+40
+fe
 00
+67
+e0
+c8
+d6
+70
+48
+36
+01
+da
 20
-42
-81
-19
-20
-60
-00
-00
-58
 00
+07
+da
+40
+48
+d0
+6f
+e1
+48
+d5
+20
+7a
 00
 00
-67
-e1
-cb
-f5
 20
 20
-01
-40
-70
+26
+e1
+6f
+e4
 4b
-f4
+ab
+c4
+0b
+00
 00
-20
-40
-01
-40
 6f
 e0
-c9
-38
-c1
-80
-80
+ca
+ae
+20
+7a
 00
-6f
-e1
-47
-8c
-c3
-84
-80
 00
-c3
-80
+6f
+e0
+c8
+a7
+20
+7a
 00
 00
 6f
 e0
-ca
-c1
-c0
-ff
-81
-2c
-70
-4b
-f0
-05
-70
-4b
-f3
-00
-70
-4b
-f2
-01
-70
-4b
-f1
-05
-70
-4b
-ea
-01
-70
-4b
-ed
+cb
+a1
+1f
+e0
+fe
 01
-20
-60
+1f
+e1
+7e
+03
+67
+e0
+cb
+a1
+24
+7a
 00
 00
 70
 4b
-f0
+a2
+00
+6f
+e0
+cb
+a2
+1f
+e0
+fe
+01
+67
+e0
+cb
+a2
+1f
+e6
+7c
+08
+24
+21
 01
+3b
 20
+40
+25
+9a
 20
-01
-26
-da
-60
-4b
-f1
-da
 40
+26
+5b
+24
+2c
 01
-31
+4a
+24
+37
+81
+4a
 20
+40
+01
+41
 20
-31
-8a
+40
+25
+97
 6f
 e0
 cb
-f0
+a3
+1f
+e0
+fe
+01
 67
 e0
 cb
-f1
+a3
+c0
+08
+01
+4c
+20
+60
+00
+00
 6f
 e0
-cb
-f3
-20
-3a
-01
-39
-6f
-e0
-cb
-f2
+c8
+a7
 20
 3a
-01
-3e
-1f
-e0
-ff
-ff
-67
-e0
-cb
-f2
+48
+8c
+70
+4b
+a3
+00
 6f
 e0
 cb
-ec
-c0
+a4
+c4
 00
-81
-40
-70
-4b
-ec
-01
-68
-48
-cb
-eb
-20
-20
-60
-69
-58
 00
 00
+79
+3f
+fe
 00
 67
-e1
-cb
-f1
-6f
 e0
 cb
-f2
-24
-3a
-01
+a4
+20
+40
+45
 44
+20
+20
+03
+33
+20
+40
+22
+cb
+20
+20
+01
+31
 70
 4b
-ea
+a3
 00
-70
-4b
-ed
+6f
+e0
+cb
+a4
+c3
+80
 00
-70
-4b
-ee
 00
-70
-4b
-ec
+79
+20
+7e
 00
-68
-48
+67
+e0
 cb
-eb
+a4
+6f
+e1
+4b
+bc
+67
+e1
+4a
+b2
 20
 20
-60
-65
-70
-4b
-f4
+03
+ee
+20
+40
+26
+31
+24
+34
 01
-70
-4b
-ea
+de
+20
+40
 01
-70
-4b
-ed
-00
-70
-4b
-ee
-00
+63
 20
-60
-00
-00
+40
+26
+ee
 6f
 e0
-c9
-38
-c0
-00
+cb
+e1
+24
+3a
 01
-53
+5e
 6f
 e4
-4b
-ab
-c4
-1a
-80
-00
-68
 48
-cb
-ca
-20
-20
-01
-56
-6f
+b0
+67
 e4
-4b
-ab
-c4
-19
-00
-00
-68
 48
-cb
-cb
-60
+5c
+6f
+e1
 48
-cb
-9d
-20
-40
-41
-15
-1f
+c2
+67
 e1
-7e
-07
-68
 48
-cb
-9d
-98
-46
-7c
+c4
+20
+40
+26
+bb
+24
+74
+00
 00
 20
-22
-81
-5d
+40
+7f
+dc
+6f
+e1
+c8
+ad
 20
 20
-44
-eb
+26
+b8
+70
+48
+a6
+00
+69
+61
+01
+5f
+34
+73
+02
+00
 20
 40
-44
-f6
+26
+5b
 6f
 e0
-cb
-9f
-c1
-00
-80
+c8
+2c
+c0
 00
-70
-4b
-9f
+a6
+51
+24
+2c
 01
+7c
+24
+37
+81
+7c
 20
-60
-00
-00
+40
+26
+72
 20
 40
-49
-90
+04
+9a
 20
 40
-79
-36
-20
-40
-40
-27
+01
+6f
 20
-40
-46
-55
 20
-40
+26
+51
+6f
+e0
+cb
+e1
+24
+5a
 01
-6b
-20
-40
-46
-d6
+73
+70
+4b
+e1
+00
 20
-40
-3d
-bd
+60
+00
+00
 20
 40
-3f
-88
-20
-20
-3d
-d4
+03
+33
 6f
 e4
 4b
 ab
-c2
-95
-01
-6f
-c2
-95
-be
-9b
-20
-60
+c4
+1e
 00
 00
-68
-48
+6f
+e0
 c9
-1e
-20
+13
+d8
+40
+00
 40
-3f
-56
-68
-48
-c9
-1e
 20
 40
 60
-59
-20
-20
-81
-7a
+93
 6f
 e0
 c9
-38
-c0
-80
-81
-77
+14
+d8
+40
+00
+40
+20
 20
 60
+93
+6f
+e0
+c8
+a7
+24
+7a
 00
 00
-70
-49
-38
+6f
+e1
+48
+a3
+1f
+e0
+fe
 01
+67
+e1
+48
+a3
+6f
+e0
+c8
+a4
+c2
+80
+a6
+79
+20
+40
+26
+7e
 20
 40
 01
-80
+86
 20
 20
-5d
-8c
+01
+64
 6f
 e0
-c9
-38
-c0
-80
-01
-7d
+c8
+a4
+1f
+e6
+7c
+00
 20
-60
+61
 00
 00
-70
-49
-38
+df
+20
+00
+28
+20
+20
+7d
+13
+58
 00
+00
+06
 20
 40
-01
-80
+5b
+0d
+c2
+81
+be
+23
 20
+40
+03
+e7
 20
-5d
-8c
-d8
 40
-00
-01
-da
+03
+ee
+20
+20
+3e
+23
 20
-49
-38
-da
 40
-00
-00
+42
+e9
 20
+40
+7f
+dc
 20
-5d
-ce
-6f
-e1
+40
 03
+16
+20
+40
+40
 15
-1f
-e2
-0c
-00
-ef
-e0
-80
-06
-67
+68
+48
+c9
+10
+20
+40
+60
+69
+68
+48
+c9
+10
+20
+40
+60
+42
+6f
 e0
-c5
-f5
-1f
-e1
-04
-0f
-1f
-f1
-fe
-00
-c0
-04
-81
-8c
+c9
 20
+d8
+40
+00
+3f
 20
-4d
+40
+60
 93
-da
-20
+d8
+40
 00
+03
+20
+40
+3f
+56
+20
+40
 01
+ca
 20
 40
-4d
-c0
-6f
-e1
-44
-dc
-e7
-e1
-00
-05
-58
-00
-00
-00
-e7
-e0
-80
-05
-70
-09
-50
-01
-6f
-e0
-c4
-e2
-79
-20
-7e
-06
-67
-e0
-c4
-e2
-70
-09
-5b
-12
-20
-20
-78
-71
-6f
-e0
-c3
-dd
-1f
-e0
-fe
-01
-67
-e0
-c3
-dd
-c0
-06
-16
-5a
-20
-40
-19
-1b
-20
-40
-19
-6a
-6f
-e0
+60
 82
-bd
-20
-40
-16
-8b
-20
+d8
 40
-18
-38
-20
-20
-16
-55
-ef
-e1
 00
-06
-c0
-02
-01
-a5
-20
-20
-19
-e4
+13
 20
 40
-7c
-eb
+3f
+56
 20
 40
 01
-bb
+a6
 20
 40
-7c
-e5
-ef
-e1
-80
-06
-67
-e1
-c4
-36
-c0
-05
 01
-ad
-c0
-09
-01
-c2
+aa
 20
+40
+01
+b7
 20
-1c
-d3
 20
-40
-1e
-8d
-68
-49
-44
-37
+01
+be
 6f
 e0
-c3
-c0
-c2
-81
-81
-b5
-6f
-e1
-44
-37
-c0
-18
+c9
 1e
-c8
+c1
+7f
+80
+00
 68
-49
-44
-37
+48
+c9
+1e
 20
 20
-1d
-eb
+60
+7f
 6f
 e1
-43
-d1
-98
-46
-7c
-00
-24
-22
-81
-b1
+cb
+de
+67
+e1
+89
+5c
+df
 20
+00
+14
+d8
 40
-1e
-8d
-24
-34
-01
-b1
-20
-20
-1e
-10
-6f
-e0
-ca
-c7
-20
-7a
 00
 00
 6f
+e1
+89
+5c
+2f
+ef
+fe
+00
+20
+40
 e0
-cb
-75
-1f
+7f
+6f
 e1
+89
+5c
+1f
+e3
 7e
-03
-c1
+00
+67
+e1
+89
+5c
+18
+40
+84
 01
-80
+c2
 00
-70
-4b
-76
-02
+01
+ae
 20
 60
 00
 00
-18
-c2
-22
+6f
+e4
+4b
+ab
+c4
+0a
+00
 00
 6f
-e1
-43
-d4
-1f
 e0
-a5
+c8
 fd
-20
-40
-1a
-25
+c1
+81
+00
+00
 6f
 e0
-ca
-c7
-20
-3a
-1e
-73
-6f
-e0
-cb
-75
-c2
-80
-9e
-73
-58
-00
-00
-1a
-68
-49
-44
-37
-98
-46
-7c
-00
-24
-22
-9e
-73
-70
-02
+c8
+fc
 d8
-05
+40
+00
+c0
 20
 20
+60
+93
+6f
+e4
+4b
+ab
+c4
 1e
-c9
-78
-34
-7c
 00
-6f
-f2
-01
-38
-79
-34
-7e
-1a
-67
-f2
 00
-4c
+68
+48
+c9
+13
 20
 40
-15
-9a
+60
+42
+68
+48
+c9
+14
 20
 40
-6d
-f7
-20
+60
+42
+6f
+e0
+c9
+13
+d8
 40
-01
-3e
+00
+80
 20
 40
+60
+93
+6f
+e0
+c9
+14
+d8
 40
-15
+00
+80
 20
-40
-3e
-33
 20
-40
-46
-2d
+60
+93
+68
+48
+c9
+13
 20
 40
 60
-9d
+50
 68
 48
 c9
-1a
+14
 20
 40
 60
-42
+50
+20
+40
+3f
+88
+6f
+e0
+c9
+1f
+d8
+40
+00
+3f
+20
+40
+60
+93
+20
+40
+3e
+44
 68
 48
 c9
-11
+1a
 20
 20
 60
 42
-78
-54
-7c
+70
+48
+a5
 00
+20
+40
+26
+52
+5f
+ff
+ff
+ff
+67
+e2
+48
+5c
 58
 00
 00
 00
 67
 e3
-48
-d1
+c8
+d0
+70
+4b
+e1
+01
 20
 40
-42
-40
+03
+ee
 20
-40
-40
-8e
 20
-40
-3f
-7e
+01
+e3
+6f
+e0
+c8
+a7
+20
+5a
+01
+ea
+6f
+e0
+c8
+bd
+c1
+00
+80
+00
 20
 40
-3f
-83
+26
+9f
 20
 40
+26
+bb
+24
+74
+00
+00
+20
 40
-dc
+26
+c4
 6f
 e0
-c8
-d0
-1f
+cb
 e1
-7e
-1f
-67
-e0
-c8
-d0
 24
-34
-01
-ee
+5a
+3e
+33
+6f
+e2
+48
+5c
 20
-40
-47
-1a
 20
-40
+26
+b8
+70
+48
+36
+01
+70
+48
+a7
 01
-f1
-20
-20
-45
-44
 20
 40
-47
-28
-70
-4b
-f8
+26
+42
+67
+e0
+c7
+c6
+58
 00
-20
-60
 00
 00
+67
+e3
+c7
+c7
+6f
+e2
+48
+a9
+67
+e2
+47
+ce
+70
+48
+35
+0c
 6f
 e0
-cb
-f8
-1f
-e0
-fe
-01
+c8
+36
+79
+20
+7e
+03
 67
 e0
-cb
-f8
-1f
-e6
-7c
-08
+c8
+36
+20
+40
+22
+91
+20
 20
-61
-00
-00
-70
-4b
-f7
-01
-70
-4b
-ea
 01
-70
-4b
-ed
+56
+1a
+62
+7e
 00
-70
-4b
-ee
+c0
 00
+82
+04
+c0
+1e
+02
+28
+c0
+1c
+82
+25
+c0
+1d
+02
+30
+c0
+19
+02
+11
+c0
+22
+02
+18
+c0
+0a
+82
+07
+c0
+0a
+02
+02
 20
-60
-00
-00
-6f
-e0
-c8
-d0
-c2
-81
-26
+20
+43
+36
+20
+40
+02
 e1
 20
 20
-26
-bc
-91
-be
-aa
-55
+43
+50
+20
 40
-00
-00
+02
+e1
+20
 40
-01
-00
-00
-00
-00
-00
-00
-00
-00
-00
+45
+44
+20
+20
+43
+fa
+58
 00
 00
 00
+67
+e1
+4a
+f2
+70
+4a
+c6
 00
+58
 00
 00
+06
+67
+e1
+43
+72
+67
+e1
+43
+74
+6f
+e4
+4b
+ab
+c2
+8d
+c3
+66
+58
 00
-08
 00
-80
+07
+20
+20
+43
+64
+6f
+e0
+ca
+c7
+c0
 00
+82
+15
+70
+4b
+76
+14
+20
+20
+43
+73
+20
 40
+43
+6c
+70
+4b
+76
+05
+20
+20
+43
+73
+6f
+e0
+82
+c1
+1f
+e6
+7c
+0c
+24
+21
+43
+84
+67
+e1
+43
+72
+67
+e1
+43
+74
+6f
+e0
+82
+c3
+20
+3a
+43
+9a
+68
+48
+cb
+8a
+98
+46
+7c
 00
-00
-00
-47
-41
-4e
-00
-01
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+20
+21
+43
+9a
+6f
+e0
+82
+c3
+67
+e0
+cb
+8a
+20
+20
+43
+86
+20
+40
 02
-00
-00
-00
+e1
+20
+40
+45
+44
+20
+20
+48
+57
+20
+40
+02
+e1
+6f
+e2
+48
+3c
+67
+e2
+48
+91
+67
+e2
+49
+93
+20
+40
+25
+7e
+20
+40
+48
+c6
+20
+40
+45
+44
+20
+20
+48
+4e
+6f
+e0
+c8
+a5
+24
+3a
 01
-00
-00
-00
-00
-10
-00
-00
-aa
-55
+d5
+6f
+e0
+c8
+8b
+c0
 01
-00
-9a
+02
+37
+c0
+02
+02
 40
-08
-aa
-55
-03
-00
-7a
-41
-88
-13
-ce
-aa
-55
+c0
 01
+82
+45
+20
+20
+48
+39
+6f
+e4
+4b
+ab
+c2
+97
+c8
+11
+c2
+98
+48
+11
+c3
+1d
+48
+06
+6f
+e2
+49
+93
+68
+4a
+49
+74
+98
+46
+7c
 00
-c5
-40
-18
-aa
-55
-01
+20
+22
+c8
+27
+20
+20
+48
+06
+6f
+e4
+4b
+ab
+c3
+17
+82
+4a
+6f
+e0
+cb
+b4
+c0
 00
-ef
-41
-ff
-aa
-55
+82
+4a
+20
+20
+48
+1a
+6f
+e4
+4b
+ab
+c3
+17
+82
+4a
+c2
+89
+82
+4a
+c2
+89
 02
-00
-ca
-40
-ef
-41
-aa
-55
+4a
+20
+20
+48
+12
+6f
+e4
+4b
+ab
+c3
+1e
+48
+39
+20
+20
 01
-00
-7d
-41
+d5
 70
-aa
-55
-01
-00
-d0
-44
+48
+8b
 00
-aa
-55
+6f
+e1
+4b
+eb
+1f
+e0
+fe
 01
-00
-ea
-41
+67
+e1
+4b
+eb
+6f
+e0
+cb
+eb
+1f
+e1
+7e
 ff
-aa
-55
-01
+c0
 00
-ee
+23
 41
+20
+60
 00
-aa
-55
-08
 00
-ab
-4b
-04
-09
-4a
-08
+6f
+e1
+48
+89
+d8
+40
 01
-84
-6b
-03
-aa
-55
-0c
+f8
+98
+41
+7e
 00
+20
+3a
+02
+5d
+6f
+e1
+48
+89
+1f
+e0
 fe
+01
+67
+e1
 48
-08
-07
-06
+89
+20
+60
 00
-50
-1e
-94
-85
-90
-63
-75
-80
-aa
-55
-1a
 00
-0d
-49
-ff
-ff
-0b
-ff
-ff
-ff
-05
-04
-ff
-ff
-ff
-0b
-0d
-13
-ff
-ff
-ff
-0c
-07
-06
-ff
-ff
-ff
-02
+20
+40
+25
+9a
+20
+40
+26
+5b
+24
+2c
 02
-00
-aa
-55
+63
+24
+37
+82
+63
+20
+40
+26
+72
+20
+20
+25
+86
+6f
+e0
+c8
+8c
+20
+3a
+22
+cb
+6f
+e1
+48
+89
+1f
+e0
+fe
 01
-00
-eb
-4b
-0a
-aa
-55
-02
-00
+67
+e1
+48
+89
+6f
+e0
+c8
+8a
+2f
 ef
-4b
-14
-03
-aa
-55
+fe
 01
+6f
+e0
+c8
+8b
+c0
 00
-58
-0b
-ff
-aa
-55
+a5
+ad
+c0
 01
-00
-f9
-4b
-03
-aa
-55
-12
-00
-cc
-4b
-00
-05
-00
-04
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
+25
+af
+c0
+01
+a5
+b1
+c0
+02
+02
+70
+20
+20
+25
+6e
+20
+20
+a5
+75
+20
+20
+23
+39
+c6
+1a
 00
 00
+c5
+13
+a4
+0e
+c6
+93
 00
-aa
-55
-01
 00
-99
+6f
+e0
+c8
+a1
+c2
+81
+84
+a4
+c2
+80
+a3
 40
-01
-aa
-55
-02
+c2
+81
+25
+80
+6f
+e0
+c8
+bd
+c0
 00
-b3
-4b
-02
+82
+7c
+20
+20
+26
+21
+20
+40
+22
+ea
+24
+34
 02
-aa
-55
-08
-00
+74
+20
+40
+26
+db
+6f
+e1
+48
+be
+1f
+e0
+fe
+01
+67
+e1
+48
+be
+20
+20
+26
+21
+6f
+e4
+4b
+ab
+c2
+97
+c8
+0a
+6f
+e0
+c9
 38
-49
-ff
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
+c0
 00
-56
-49
+02
+89
+20
+40
+02
+e6
+20
+20
+3d
+57
+6f
+e4
+4b
+ab
+c3
+08
+c8
+03
+20
+40
+3d
+65
+20
 34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-17
-00
-73
-49
-33
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-11
-00
-b5
+48
+06
+6f
+e4
 4b
-00
+ab
+c2
+98
+48
+0c
+c3
+18
+c8
+0c
+20
 40
-0a
-60
+41
+10
+1a
+21
+7e
+07
+20
+20
+47
+ff
+20
+40
+40
+8f
+20
+40
+02
+ad
+6f
+e0
+c9
+27
+c0
 06
-0a
+02
+98
+20
+20
+40
+98
+6f
+e0
+c9
+92
+c0
 00
-64
+02
+9c
+c0
 00
-70
-17
-14
-0a
-90
-01
-90
+82
+9f
+c0
 01
-aa
-55
 02
-00
+a2
+6f
+e0
+cc
+39
+1f
 e2
-4b
-64
-00
-aa
-55
-02
-00
-c6
-4b
-c8
+22
 00
-aa
-55
+20
+20
 02
+a5
+6f
+e0
+cc
+3b
+1f
+e2
+22
 00
-ca
-4b
-07
-06
-aa
-55
-01
-00
-c0
-49
+20
+20
 02
-aa
-55
-01
+a5
+6f
+e0
+cc
+3c
+1f
+e2
+22
 00
-fd
-48
+20
+20
 02
-aa
-55
-01
+a5
+58
 00
-a1
-44
-05
-aa
-55
-06
+c3
+09
+20
+40
+5b
+0c
+1a
+22
+7e
 00
-e3
-48
-05
-01
-9f
-00
-b1
-00
-aa
-55
-0a
-00
-eb
-48
-10
-00
-52
-00
-35
-00
-21
-00
-25
-00
-aa
-55
-01
-00
-f7
-48
-0a
-aa
-55
-02
-00
-c8
-4b
-64
-00
-aa
-55
-03
-00
-de
-4b
-00
-00
-00
-aa
-55
-01
-00
-ab
-4a
-ff
-aa
-55
-01
-00
-77
-41
-20
-aa
-55
-01
+1f
+ed
+7e
 00
-8a
-4b
+1f
+e0
+fe
+23
 20
-aa
-55
-01
-00
-7d
-44
-06
-aa
-55
-06
-00
-a8
 40
-10
-15
-c8
-12
-24
-52
-aa
-55
+5b
 0c
+58
 00
-fc
-45
-0b
-42
-54
-33
-2e
-30
+00
+09
 20
-4d
+20
+5b
+0c
 6f
-75
-73
-65
-aa
-55
-05
-00
-55
-44
-0e
+e0
+c9
+23
+c1
+7f
+80
 00
-01
+6f
+e1
+4a
+c2
+24
+7a
 00
-02
-aa
-55
-01
 00
-41
-46
-0a
-aa
-55
-01
+6f
+e1
+48
+83
+24
+7a
 00
-64
-47
-01
-aa
-55
-01
 00
-78
-46
+6f
+e1
+48
+87
+24
+7a
 00
-aa
-55
-01
 00
-5f
-41
+6f
+e0
+cb
+a7
+24
+7a
 00
-aa
-55
-03
 00
-65
-47
+6f
+e0
+cb
+c1
+20
+3a
 03
+1c
+67
+e0
+cb
+a8
+20
+60
 00
-04
-aa
-55
-01
 00
-8e
+20
+40
+3e
+9b
+20
+40
+49
+56
+20
+40
+23
+2b
+20
+40
+25
+56
+20
+40
 47
-01
-aa
-55
-01
-00
-d8
+cd
+20
+40
+48
+be
+20
 40
-01
-aa
-55
-0c
-00
-e7
-43
-1f
-02
-01
-05
-03
-03
-12
-18
 03
 19
-c2
+20
+40
+40
+7c
+20
+40
+44
+cc
+20
+40
 03
-aa
-55
-14
-00
-d2
-4a
-06
+44
+20
+40
+44
 ff
-06
-00
+20
+40
+45
+04
+20
+40
+45
+12
+20
+40
 03
-00
-80
-0c
-09
-42
-54
-35
-2e
+59
+20
+40
+45
+15
+20
+40
+45
+2a
+20
+40
+45
+2d
+20
+40
+45
 32
 20
-4d
-6f
-75
-73
-65
-aa
-55
-0e
-00
-07
-44
-1f
-0c
-09
-42
-54
+40
+45
 35
-2e
-32
 20
-4d
-6f
-75
-73
-65
-aa
-55
-0c
+40
+40
+22
+20
+40
+45
+47
+20
+40
+02
+ea
+20
+40
+03
+5c
+20
+20
+02
+d3
+da
+60
+4c
+1d
+da
+40
+5d
+8c
+20
+20
+31
+8a
+70
+4c
+41
 00
-f7
-42
-0b
+70
+4c
 42
-54
-35
-2e
-32
+00
 20
-4d
-6f
-75
-73
-65
-aa
-55
-08
+60
 00
-72
-43
-07
 00
-07
+70
+4c
+40
+03
+70
+4c
+42
+01
+20
+20
+02
+de
+70
+4c
+40
+05
+70
+4c
+42
 00
+70
+4c
+41
+01
+70
+4c
+3f
+01
 20
+20
+03
+13
+70
+4c
+46
+01
+70
+4c
+42
 00
-2c
+70
+4c
+41
 01
-aa
-55
-06
+70
+4c
+3f
 00
-cc
-4a
-03
-12
-18
-ff
+20
+60
 00
 00
-aa
-55
-04
+70
+4c
+46
 00
-28
-44
+20
+20
+02
+e3
+70
+4c
+40
+03
+20
+20
+03
+11
+6f
+e0
+cc
+41
+20
+7a
 00
 00
+6f
+e0
+cc
+3f
+c0
 00
+83
+0b
+20
+40
+03
+13
+6f
+e0
+cc
+46
+c0
 00
-aa
-55
-01
+83
 00
-32
+6f
+e0
+cc
 44
-07
-aa
-55
-08
-00
-4c
+1f
+e0
+fe
+01
+67
+e0
+cc
 44
-fb
-00
+68
 48
-08
-fb
+cc
+43
+98
+46
+7c
 00
-48
-08
-aa
-55
-06
-00
-7a
-43
-10
-15
-3a
-0e
-8d
-ed
-aa
-55
-02
+20
+42
+82
+f8
+20
+60
 00
-e7
-4a
-15
 00
-aa
-55
-02
+20
+40
+03
+16
+6f
+e0
+c9
+38
+c1
+80
+80
 00
-57
-43
-19
+6f
+e3
+49
+3a
+68
+4b
+49
+74
+98
+46
+7c
 00
-aa
-55
-06
+20
+22
+82
+dc
+20
+20
+02
+d9
+6f
+e1
+4c
+44
+1f
+e0
+fe
+01
+67
+e1
+4c
+44
+d8
+40
+02
+58
+98
+46
+7c
 00
-e9
-4a
-1d
+20
+42
+83
+07
+20
+60
 00
-21
 00
-30
+58
 00
-aa
-55
-02
 00
-d1
-43
-2d
 00
-aa
-55
-01
+67
+e1
+cc
+44
+67
+e0
+cc
+41
+20
+20
+03
+16
+da
+60
+4c
+40
+da
+40
+03
+0e
+20
+20
+31
+8a
+6f
+e0
+cc
+42
+c0
 00
-f0
-4a
-96
-aa
-55
-01
+82
+e8
+70
+4c
+40
+05
+6f
+e0
+cc
+3e
+c0
 00
-86
-44
-ff
-aa
-55
+83
+16
+70
+4c
+3e
 01
+68
+48
+cb
+ed
+20
+20
+60
+69
+70
+4c
+3e
 00
-90
-47
-ff
-aa
-55
-01
+70
+80
+7a
+c0
+20
+60
 00
-8f
-47
-1e
-aa
-55
-0c
 00
-d0
-49
+da
+60
+4b
+a8
+da
+40
 03
-04
+1c
+20
+20
+31
+8a
+6f
+e0
+c9
+27
+c0
 01
-02
+c8
+f2
+c0
+05
+c8
+f2
+6f
+e0
+c9
+23
+67
+e0
+c9
+2f
+6f
+e1
+4b
+c2
+67
+e1
+49
+30
+67
+e1
+49
+32
+da
 20
-2a
-3f
-15
-06
-0c
-10
-04
-aa
-55
-a2
 00
-df
-49
-09
-5a
-26
-34
-19
-04
-09
 00
-ff
-ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
-ff
-ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
-ff
-ff
-1b
-35
-28
-b4
-29
+68
+48
+c9
+92
+18
+40
+84
+02
+18
 46
-2a
-96
+7c
+03
+20
+41
+03
 2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
+24
 41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
+03
+2f
+20
+20
 48
-7e
-77
-7f
+ff
+6f
+e4
+4b
+ab
+c4
+0e
+00
+00
+18
+40
+84
 01
-0b
+20
+60
 00
-7f
 00
-09
+18
+40
+85
+fd
+20
+60
 00
-ff
-ff
-09
-5a
-ff
-27
-ab
+00
+20
+40
+3f
+65
+20
+75
+80
+00
+20
+40
+42
+36
+20
 40
-be
-d1
-a0
 41
-a1
-12
-a5
-84
-a7
-ff
 b5
-d0
-b6
+c0
+18
+03
+3b
+c0
+18
+c2
+17
+c0
+2c
+42
+20
+20
+40
+41
+b2
+20
 00
-ff
+1a
+f4
+20
+20
+03
+34
+6f
+e0
+c9
+c2
+c0
+68
+83
+3e
+20
+20
+41
+bd
+58
 00
-09
 00
-ff
-ff
-09
-5a
-0d
-10
-0e
-c5
+49
+20
+40
 5b
-9a
-10
-38
-11
+0d
+c0
+50
+83
 42
-28
-28
+20
+20
 41
-23
+da
+70
 49
-39
+27
+0c
+20
+60
+00
+00
+6f
+e0
+c9
+38
+c0
+00
+03
 4a
-b0
+6f
+e4
 4b
-a0
-4c
-90
+ab
+c4
+1a
+80
+00
+68
+48
+cb
+ca
+20
+20
+03
 4d
-70
-09
+6f
+e4
+4b
+ab
+c4
+19
 00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
+00
+68
 48
-0e
-9f
-0f
-ba
-09
-00
-ff
-ff
-aa
-55
-08
-00
-a3
-4a
-09
-5a
-0b
-f3
-09
-00
-ff
-ff
-aa
-55
-02
+cb
+cb
+60
+48
+cb
+9d
+20
+40
+41
+15
+1f
+e1
+7e
+07
+68
+48
+cb
+9d
+98
+46
+7c
 00
-8d
+20
+22
+83
+54
+20
+20
 44
-2d
-49
-aa
-55
-01
-00
-8c
+eb
+20
+40
 44
-01
-aa
-55
-01
+f6
+6f
+e0
+cb
+9f
+c1
 00
-65
-48
-01
-aa
-55
-01
+80
 00
-64
-48
-01
-aa
-55
+70
+4b
+9f
 01
+20
+60
 00
-36
-48
-01
-aa
-55
-01
 00
-a8
-48
-06
-aa
-55
-02
+6f
+e4
+4b
+ab
+c3
+9d
+80
+00
+20
+20
+45
+1f
+6f
+e0
+c9
+2a
+c3
+83
+80
 00
+da
+60
+4a
+b2
+da
+40
+03
+61
+20
+20
+31
+91
+6f
+e0
+c9
 38
-48
 c0
-12
-aa
-55
-03
-00
-54
-48
-19
-19
-1c
-aa
-55
-10
 00
+01
+d5
+20
+20
+43
+1b
+6f
+e1
+47
+8c
+2f
+ef
+fe
+0b
+20
 40
-48
+c5
+81
+6f
+e1
+47
+8c
+2f
+ef
+fe
+07
+20
+40
+c3
+22
+58
 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
+67
+e1
+4a
+f2
+20
+20
+45
+54
+6f
+e0
+cb
+e2
+24
+5a
+78
+61
+70
+4b
+e2
 00
-77
-48
 20
+20
+78
+51
+6f
+e1
+03
 15
-10
-05
-4e
-aa
-55
-05
-00
-8c
-48
-01
-0f
-0f
-0f
-0f
-aa
-55
-06
-00
-ad
-48
+1f
+e2
 0c
-f8
-00
 00
-77
-01
-aa
-55
-03
-00
-5c
-48
-00
-48
-60
-aa
-55
-01
+ef
+e0
+80
+06
+67
+e0
+c5
+f5
+1f
+e1
+04
+0f
+1f
+f1
+fe
 00
-7d
-48
-07
-aa
-55
-02
+c0
+04
+83
+79
+20
+20
+4d
+93
+da
+20
 00
-99
-48
-b5
-4a
-aa
-55
 01
-00
-ca
-48
-32
-aa
-55
-02
-00
-c2
-48
-14
-00
-aa
-55
-02
-00
+20
+40
+4d
 c0
-48
-50
-00
-aa
-55
-03
+6f
+e1
+44
+dc
+e7
+e1
 00
-b8
-48
+05
+58
 00
-a6
-0e
-aa
-55
-03
 00
-b8
-49
 00
+e7
+e0
+80
+05
+70
+09
 50
-00
-aa
-55
-02
-00
+01
+6f
+e0
+c4
+e2
 79
-44
-80
+20
+7e
+06
+67
+e0
+c4
+e2
+70
+09
+5b
+12
+20
+20
+78
+71
+6f
+e0
+c3
+dd
 1f
-aa
-55
+e0
+fe
 01
-00
-83
-44
-80
-aa
+67
+e0
+c3
+dd
+c0
+06
+16
+5a
+20
+40
+19
+1b
+20
+40
+19
+6a
+6f
+e0
+82
+bd
+20
+40
+16
+8b
+20
+40
+18
+38
+20
+20
+16
 55
-01
+ef
+e1
 00
-e8
-41
-01
-aa
-55
 06
-00
+c0
+02
+03
+92
+20
+20
+19
 e4
-4b
-ff
-ff
-ff
-ff
-ff
-ff
-55
-aa
-aa
-55
-8f
-6c
-ac
+ef
+e1
+80
+06
+67
+e1
 c4
+36
+c0
+05
+03
+97
+c0
+09
+03
+a6
+20
+20
+1c
+d3
+6f
+e4
+4b
+ab
+c3
+1d
+9d
+e7
+20
+40
+1e
+8d
+68
+49
+44
+37
+6f
+e0
+c3
+c0
+c2
+81
+83
+a1
+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
+22
+83
+9d
+24
+34
+03
+9d
+20
+20
+1e
+10
+18
+c2
+22
+00
+6f
+e1
+43
+d4
+1f
+e0
+a5
+fd
+20
+40
+1a
+25
+6f
+e0
+ca
+c1
+c0
+7f
+9e
+73
+6f
+e0
+ca
+c7
+20
+3a
+1e
+73
+6f
+e0
+cb
+75
+c2
+80
+9e
+73
+58
+00
+00
+1a
+68
+49
+44
+37
+98
+46
+7c
+00
+24
+22
+9e
+73
+70
+02
+d8
+05
+20
+20
+1e
+c9
+6f
+e0
+cb
+aa
+24
+3a
+7e
+56
+78
+34
+7c
+00
+20
+40
+14
+65
+6f
+e1
+c1
+74
+20
+3a
+7e
+56
+6f
+e0
+c0
+99
+20
+3a
+7e
+56
+6f
+e0
+c8
+bd
+c0
+00
+fe
+56
+20
+60
+00
+00
+78
+54
+7c
+00
+58
+00
+00
+00
+67
+e3
+48
+d1
+20
+40
+42
+40
+20
+40
+02
+95
+20
+40
+3f
+7e
+20
+40
+3f
+83
+20
+40
+40
+dc
+6f
+e0
+c8
+d0
+1f
+e1
+7e
+1f
+67
+e0
+c8
+d0
+24
+34
+03
+d0
+20
+40
+03
+d3
+20
+40
+03
+d9
+20
+20
+45
+44
+20
+40
+47
+28
+70
+4c
+47
+00
+20
+60
+00
+00
+6f
+e0
+cc
+47
+1f
+e0
+fe
+01
+67
+e0
+cc
+47
+1f
+e6
+7c
+08
+20
+61
+00
+00
+20
+20
+02
+e1
+6f
+e0
+c9
+27
+c1
+01
+80
+00
+20
+20
+47
+1a
+20
+40
+3f
+65
+6f
+e0
+c9
+27
+c0
+05
+83
+e3
+20
+40
+42
+32
+da
+60
+4a
+a3
+20
+40
+42
+2b
+20
+20
+40
+8e
+20
+40
+03
+ea
+da
+60
+4b
+e3
+20
+40
+42
+2b
+20
+20
+40
+8e
+6f
+e0
+c9
+27
+c0
+05
+83
+ea
+20
+20
+42
+32
+58
+00
+97
+06
+20
+40
+5b
+0c
+20
+00
+2e
+e0
+20
+60
+00
+00
+20
+40
+41
+a7
+20
+40
+3f
+65
+6f
+e0
+c9
+27
+c0
+05
+83
+f4
+58
+00
+08
+06
+20
+20
+5b
+0c
+58
+00
+1f
+06
+20
+20
+5b
+0c
+6f
+e0
+cb
+e1
+24
+5a
+41
+21
+da
+20
+00
+00
+20
+40
+03
 ff
+20
+40
+04
+04
+20
+40
+04
+09
+20
+40
+04
+0e
+20
+40
+04
+1b
+20
+20
+41
+1e
+6f
+e0
+c9
+18
+20
+40
+04
+28
+20
+40
+41
+24
+68
+48
+c9
+18
+20
+20
+3f
+56
+6f
+e0
+c9
+19
+20
+40
+04
+28
+20
+40
+41
+2a
+68
+48
+c9
+19
+20
+20
+3f
+56
+6f
+e0
+c9
+1a
+20
+40
+04
+28
+20
+40
+41
+30
+68
+48
+c9
+1a
+20
+20
+3f
+56
+6f
+e0
+c9
+0d
+c1
+7f
+80
+00
+70
+4b
+96
+03
+6f
+e0
+cb
+91
+1f
+e2
+26
+00
+68
+48
+c9
+0d
+6f
+e0
+c9
+10
+c0
+7f
+84
+17
+20
+20
+41
+3e
+6f
+e0
+c9
+0d
+20
+40
+04
+2a
+68
+48
+c9
+0d
+20
+20
+41
+4b
+6f
+e0
+c9
+0e
+c1
+7f
+80
+00
+70
+4b
+96
+04
+6f
+e0
+cb
+92
+1f
+e2
+26
+00
+68
+48
+c9
+0e
+6f
+e0
+c9
+10
+c0
+7f
+84
+24
+20
+20
+41
+57
+6f
+e0
+c9
+0e
+20
+40
+04
+2a
+68
+48
+c9
+0e
+20
+20
+41
+64
+d8
+40
+00
+3f
+20
+20
+60
+93
+d8
+40
+00
+3e
+20
+20
+60
+93
+20
+40
+49
+90
+20
+40
+79
+36
+20
+40
+04
+31
+20
+40
+04
+45
+20
+20
+46
+4f
+6f
+e4
+4b
+ab
+c2
+97
+40
+36
+6f
+e0
+c9
+0f
+c1
+7f
+80
+00
+da
+20
+00
+00
+70
+4b
+96
+05
+68
+48
+c9
+0f
+20
+40
+04
+3a
+20
+20
+40
+2f
+6f
+e4
+4b
+ab
+c2
+96
+40
+48
+6f
+e0
+cb
+93
+1f
+e2
+26
+00
+6f
+e0
+c9
+10
+c0
+7f
+84
+41
+20
+20
+40
+3f
+6f
+e0
+c9
+0f
+20
+40
+04
+2a
+68
+48
+c9
+0f
+20
+20
+41
+95
+6f
+e4
+4b
+ab
+c4
+1e
+80
+00
+6f
+e0
+cc
+32
+20
+40
+04
+28
+20
+40
+04
+4c
+68
+48
+cc
+32
+20
+20
+3f
+56
+70
+4c
+36
+00
+68
+48
+cc
+32
+6f
+e0
+cc
+33
+20
+40
+04
+5b
+67
+e0
+cc
+33
+6f
+e0
+cc
+35
+20
+3a
+04
+57
+6f
+e0
+cc
+34
+c1
+00
+80
+00
+70
+4c
+34
+01
+20
+20
+40
+69
+6f
+e0
+cc
+34
+c1
+00
+00
+00
+70
+4c
+34
+00
+20
+60
+00
+00
+1f
+e3
+fe
+00
+1f
+e2
+24
+00
+20
+40
+60
+59
+79
+20
+a4
+00
+1a
+41
+7e
+07
+68
+48
+cc
+36
+18
+42
+0e
+00
+c0
+03
+84
+65
+c0
+00
+04
+67
+20
+60
+00
+00
+70
+4c
+35
+01
+20
+60
+00
+00
+70
+4c
+35
+00
+20
+60
+00
+00
+20
+40
+40
+72
+20
+74
+00
+00
+6f
+e0
+c9
+92
+1f
+e2
+04
+00
+6f
+e4
+4b
+ab
+c2
+9e
+84
+75
+18
+42
+7e
+00
+1f
+e0
+fe
+01
+1f
+e1
+7e
+03
+67
+e0
+c9
+92
+20
+40
+40
+95
+20
+20
+46
+43
+6f
+e0
+cc
+35
+24
+3a
+04
+80
+6f
+e4
+4b
+ab
+c2
+8e
+04
+7d
+18
+42
+7e
+00
+c1
+01
+00
+00
+1f
+e0
+fe
+01
+20
+20
+04
+72
+18
+42
+7e
+00
+c1
+01
+80
+00
+20
+20
+04
+7b
+18
+42
+7e
+00
+c1
+00
+00
+00
+1f
+e0
 ff
 ff
+20
+20
+04
+72
+6f
+e0
+cb
+f6
+20
+7a
+00
+00
+6f
+e0
+cb
+f7
+c0
+01
+04
+90
+c0
+02
+84
+92
+c0
+04
+04
+94
+c0
+05
+84
+96
+c0
+07
+04
+98
+c0
+08
+84
+8e
+20
+60
+00
+00
+70
+4b
+f7
+12
+20
+60
+00
+00
+70
+4b
+f7
+03
+20
+60
+00
+00
+70
+4b
+f7
+06
+20
+60
+00
+00
+70
+4b
+f7
+09
+20
+60
+00
+00
+70
+4b
+f7
+0c
+20
+60
+00
+00
+70
+4b
+f7
+0f
+20
+60
+00
+00
+6f
+e0
+c8
+2a
+20
+3a
+04
+84
+1f
+e2
+24
+00
+70
+48
+2a
+00
+6f
+e0
+c8
+0a
+c0
+57
+84
+ac
+20
+60
+00
+00
+70
+4b
+f6
+01
+70
+40
+99
+00
+20
+20
+05
+8c
+20
+60
+00
+00
+70
+47
+c6
+af
+20
+40
+22
+91
+20
+40
+26
+5b
+24
+6c
+00
+00
+24
+77
+80
+00
+20
+40
+25
+97
+20
+20
+26
+72
+6f
+e0
+c8
+0a
+c1
+d7
+80
+00
+ef
+e0
+80
+06
+e8
+40
+80
+06
+18
+46
+7c
+02
+24
+22
+93
+7a
+c0
+00
+84
+bb
+c0
+01
+04
+be
+c0
+01
+84
+c0
+c0
+02
+04
+c2
+c0
+02
+85
+1a
+c0
+03
+05
+40
+c0
+7f
+84
+ba
+20
+20
+13
+7a
+20
+60
+00
+00
+20
+40
+04
+a1
+70
+4b
+f7
+01
+20
+60
+00
+00
+70
+4b
+f7
+04
+20
+60
+00
+00
+70
+4b
+f7
+07
+20
+60
+00
+00
+70
+4b
+f7
+0a
+ef
+e1
+00
+06
+e8
+41
+00
+06
+6a
+21
+4c
+18
+9a
+26
+7c
+00
+24
+22
+85
+38
+6f
+e1
+4c
+1a
+98
+46
+7c
+00
+24
+22
+85
+38
+20
+40
+04
+ce
+24
+34
+05
+38
+20
+20
+05
+36
+20
+40
+04
+d9
+24
+74
+00
+00
+6f
+e1
+4c
+1a
+9e
+06
+7c
+00
+24
+22
+fe
+56
+68
+49
+09
+e8
+6f
+e1
+4c
+18
+1f
+e0
 ff
+fb
+98
+46
+7c
+00
+24
+22
+fe
+56
+20
+20
+7e
+54
+6f
+e1
+4b
+f3
+1f
+f0
+fe
+00
+67
+e1
+02
+e4
+d8
+40
+00
+03
+da
+20
+09
+d2
+20
+40
+5d
+e2
+6f
+e0
+89
+d2
+c0
+ad
+7e
+56
+e8
+41
+00
+06
+60
+49
+09
+5c
+60
+49
+09
+e8
+6f
+e0
+89
+d2
+dd
+60
 ff
 ff
+d8
+40
+00
+00
+d8
+c0
+09
+d2
+df
+20
+00
+03
+20
+40
+05
+50
+18
+42
+60
+00
+6f
+e1
+4b
+f3
+1f
+e0
+ee
+03
+20
+40
+04
+fd
+1e
+f0
+fe
+00
+67
+e1
+02
+e4
+d8
+40
+00
+02
+da
+20
+09
+d2
+20
+40
+5d
+e2
+6f
+e1
+09
+d2
+9d
+66
+7c
+00
+24
+22
+fe
+56
+6f
+e0
+89
+d2
+9e
+00
+e0
+00
+ef
+e0
+80
+06
+9e
+00
+e0
+00
+58
+00
 ff
 ff
+9e
+01
+60
+00
+20
+20
+7e
+54
+6f
+e1
+09
+5c
+20
+7a
+00
+00
+1f
+e2
+04
+00
+1f
+e6
+7c
+10
+20
+21
+05
+18
+1f
+e0
 ff
+f0
+d8
+40
+00
+10
+67
+e1
+09
+5c
+18
+42
+5e
+00
+1e
+e2
+7e
+00
+1f
+f0
+fe
+00
+67
+e1
+02
+e4
+da
+20
+09
+d2
+20
+40
+5d
+e2
+1e
+e2
+7e
+00
+9d
+e0
+ee
+00
+1d
+e2
+72
+00
+1d
+62
+7e
+00
+d8
+c0
+09
+d2
+ef
+e0
+00
+06
+1f
+e2
+56
+00
+1d
+e2
+72
+00
+d8
+c0
+09
+d2
+1e
+02
+04
+00
+20
+40
+05
+50
+18
+42
+60
+00
+20
+20
+04
+fd
+58
+00
+00
+00
+20
+20
+05
+04
+70
+4b
+f7
+0d
+ef
+e0
+80
+06
+18
+c2
+22
+00
+68
+48
+cc
+1c
+98
+46
+7c
+00
+20
+22
+85
+36
+20
+40
+05
+47
+24
+34
+05
+38
+1a
+46
+7c
+04
+20
+21
+05
+38
+1a
+40
+a5
+fc
+62
+41
+09
+59
+62
+21
+09
+57
+20
+40
+5d
+d3
+20
+40
+05
+3a
+20
+40
+5d
+da
+6a
+41
+09
+59
+6a
+21
+09
+57
+6f
+e1
+4c
+18
+9a
+40
+fe
+00
+67
+e1
+4c
+18
+1a
+42
+72
+00
+d8
+40
+00
+00
+1a
+22
+0c
+00
+20
+40
+05
+50
+6f
+e1
+4c
+1a
+98
+40
+fe
+00
+67
+e1
+4c
+1a
+70
+4b
+f5
+00
+20
+60
+00
+00
+70
+4b
+f5
+01
+20
+60
+00
+00
+6f
+e1
+4b
+f3
+20
+7a
+00
+00
+68
+49
+4c
+18
+98
+40
+fe
+00
+1a
+42
+04
+00
+20
+20
+5e
+04
+6f
+e0
+cb
+f7
+c1
+08
+00
+00
+c1
+08
+80
+00
+c1
+09
+00
+00
+70
+4c
+1d
+05
+70
+4b
+f7
+10
+20
+60
+00
+00
+68
+48
+cc
+1c
+67
+e0
+cc
+1c
+c0
+00
+05
+4d
+98
+46
+7e
+00
+c0
+00
+fe
+54
+20
+20
+7e
+56
+18
+46
+7c
 ff
+20
+22
+fe
+54
+20
+20
+7e
+56
+ef
+e0
+80
+06
+98
+40
+84
+00
+c2
+00
+05
+50
+20
+60
+00
+00
+58
+00
 ff
 ff
+ef
+e0
+00
+06
+20
+60
+00
+00
+6f
+20
+c8
+2a
+1f
+26
+7c
+02
+20
+21
+7e
+56
+df
+e0
+48
+0a
+9f
+20
+8c
+00
+18
+c0
+8d
+fe
+e8
+41
+00
+06
+d8
+c0
+48
+0a
+20
+40
+05
+54
+98
+46
+7c
+00
+20
+22
+fe
+54
+20
+20
+7e
+56
+ef
+e0
+80
+06
+c0
+ad
+05
+7c
+1a
+22
+02
+00
+68
+49
+00
+06
+18
+46
+7c
+03
+20
+21
+05
+7c
+18
+c0
+8c
+02
+ef
+20
+80
+06
+1f
+26
+7c
+00
+24
+22
+85
+7c
+1f
+22
+7e
+00
+98
+c0
+8c
+00
+18
+42
+7e
+00
+1f
+20
+f2
+03
+9f
+26
+04
+00
+24
+22
+85
+67
+e8
+41
+00
+06
+1a
+20
+8c
+01
+ef
+e1
+00
+06
+1f
+e0
+f2
+02
+1a
+20
+8c
+01
+20
+40
+05
+54
+98
+46
+7c
+00
+24
+22
+85
+7c
+20
+20
+7e
+54
+20
+20
+7e
+56
+6f
+e1
+4b
+f3
+1f
+e2
+0c
+00
+20
+40
+05
+63
+24
+34
+05
+88
+6a
+21
+4b
+f3
+1a
+20
+8c
+01
+ef
+e1
+00
+06
+1f
+e0
+fe
+05
+9a
+20
+fe
+00
+67
+e1
+4b
+f3
+20
+20
+05
+7d
+6f
+e1
+4b
+f1
+68
+49
+4b
+f3
+98
+46
+7e
+00
+20
+60
+00
+00
+58
+00
+00
+00
+67
+e1
+4c
+18
+67
+e1
+4c
+1a
+67
+e0
+cc
+1c
+67
+e0
+cb
+f7
+20
+60
+00
+00
+20
+40
+7e
+56
+6f
+e0
+cb
+f7
+c0
+00
+85
+9b
+c0
+02
+05
+a5
+c0
+03
+85
+c4
+c0
+05
+05
+ea
+c0
+06
+85
+df
+c0
+08
+05
+c8
+20
+20
+05
+f3
+70
+47
+c6
+af
+70
+47
+c7
+01
+70
+47
+c8
+00
+70
+47
+c9
+02
+58
+00
+00
+01
+67
+e1
+47
+ca
+70
+48
+36
+01
+70
+48
+35
+06
+70
+4b
+f7
+02
+20
+60
+00
+00
+70
+47
+c6
+af
+70
+47
+c7
+02
+70
+47
+c8
+00
+70
+47
+c9
+02
+6f
+f1
+00
+00
+67
+e1
+47
+ca
+58
+00
+66
+61
+e7
+e1
+00
+05
+58
+00
+00
+01
+e7
+e3
+00
+05
+58
+00
+00
+00
+e7
+e1
+00
+05
+e7
+e1
+00
+05
+20
+40
+05
+cc
+e7
+e0
+80
+05
+58
+00
+00
+00
+e7
+e0
+80
+05
+68
+49
+4b
+f3
+e0
+41
+00
+05
+6f
+e1
+4b
+f1
+1f
+ed
+7e
+00
+1f
+e3
+7e
+00
+98
+46
+7e
+00
+24
+21
+05
+c2
+e7
+e1
+00
+05
+70
+48
+35
+18
+70
+48
+36
+01
+70
+4b
+f7
+05
+20
+60
+00
+00
+58
+00
+00
+00
+20
+20
+05
+bd
+70
+4b
+f7
+08
+70
+47
+c7
+03
+70
+48
+35
+04
+20
+20
+05
+d5
+70
+4b
+f7
+11
+70
+47
+c7
+06
+70
+48
+35
+04
+20
+20
+05
+d5
+6f
+e4
+4b
+ab
+c2
+89
+85
+d1
+c2
+89
+05
+d3
+58
+00
+00
+00
+20
+60
+00
+00
+58
+00
+00
+02
+20
+60
+00
+00
+58
+00
+00
+04
+20
+60
+00
+00
+70
+48
+36
+01
+70
+47
+c6
+af
+70
+47
+c8
+00
+70
+47
+c9
+02
+20
+60
+00
+00
+70
+47
+c8
+01
+70
+48
+36
+01
+70
+47
+c6
+af
+70
+47
+c9
+02
+20
+60
+00
+00
+70
+4b
+f7
+0f
+70
+47
+c7
+05
+6f
+e0
+cc
+1c
+67
+e0
+c7
+ca
+70
+48
+35
+05
+70
+48
+36
+01
+70
+47
+c6
+af
+6f
+e0
+cb
+f5
+67
+e0
+c7
+c8
+70
+47
+c9
+02
+20
+60
+00
+00
+70
+4b
+f7
+0c
+70
+47
+c7
+04
+70
+48
+35
+04
+70
+48
+36
+01
+70
+47
+c6
+af
+6f
+e0
+cb
+f5
+67
+e0
+c7
+c8
+70
+47
+c9
+02
+20
+60
+00
+00
+70
+47
+c6
+af
+70
+47
+c7
 ff
+70
+47
+c8
+00
+70
+47
+c9
+02
+70
+48
+36
+01
+70
+48
+35
+04
+20
+60
+00
+00
+1f
+e2
+22
+00
+70
+4b
+f8
+00
+70
+48
+36
+01
+da
+40
+4b
+f9
+20
+60
+00
+00
+96
+b0
+aa
+55
+40
+00
+00
+40
+09
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+08
+08
+00
+80
+00
+40
+01
+00
+88
+d6
+5b
+46
+06
+01
+00
+00
+00
+00
+00
+00
+00
+00
+18
+00
+00
+00
+00
+00
+00
+00
+00
+00
+80
+00
+00
+00
+02
+00
+00
+00
+01
+00
+00
+20
+04
+16
+00
+00
+aa
+55
+01
+00
+9a
+40
+08
+aa
+55
+03
+00
+7a
+41
+88
+16
+ce
+aa
+55
+01
+00
+c5
+40
+18
+aa
+55
+01
+00
+ef
+41
 ff
+aa
+55
+02
+00
+ca
+40
+ef
+41
+aa
+55
+01
+00
+7d
+41
+70
+aa
+55
+01
+00
+d0
+44
+00
+aa
+55
+01
+00
+ea
+41
 ff
+aa
+55
+01
+00
+ee
+41
+00
+aa
+55
+08
+00
+ab
+4b
+04
+09
+4a
+08
+00
+04
+6b
+1b
+aa
+55
+0c
+00
+fe
+48
+08
+07
+06
+00
+50
+1e
+94
+85
+90
+63
+75
+80
+aa
+55
+03
+00
+0d
+49
 ff
 ff
+0b
+aa
+55
+01
+00
+32
+4c
 ff
+aa
+55
+17
+00
+10
+49
 ff
 ff
 ff
+05
+04
 ff
 ff
 ff
+0b
+0d
+13
 ff
 ff
 ff
+0c
+07
+06
 ff
 ff
 ff
+02
+02
+01
+aa
+55
+03
+00
+ed
+4b
+0a
+58
+02
+aa
+55
+01
+00
+43
+4c
+14
+aa
+55
+02
+00
+37
+4c
+03
+00
+aa
+55
+01
+00
+58
+0b
 ff
+aa
+55
+12
+00
+cc
+4b
+00
+05
+00
+04
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+01
+00
+99
+40
+01
+aa
+55
+02
+00
+b3
+4b
+02
+02
+aa
+55
+08
+00
+38
+49
+00
+34
 ff
 ff
 ff
 ff
 ff
 ff
+aa
+55
+07
+00
+56
+49
+34
 ff
 ff
 ff
 ff
 ff
 ff
+aa
+55
+17
+00
+73
+49
+33
 ff
 ff
 ff
@@ -3320,36 +6485,931 @@
 ff
 ff
 ff
+aa
+55
+13
+00
+b5
+4b
+00
+40
+0a
+60
+06
+0a
+00
+64
+00
+70
+17
+14
+0a
+90
+01
+e8
+03
+90
+01
+aa
+55
+02
+00
+ca
+4b
+07
+06
+aa
+55
+01
+00
+c0
+49
+02
+aa
+55
+01
+00
+fd
+48
+02
+aa
+55
+01
+00
+a1
+44
+05
+aa
+55
+06
+00
+e3
+48
+05
+01
+9f
+00
+b1
+00
+aa
+55
+0a
+00
+eb
+48
+10
+00
+52
+00
+35
+00
+21
+00
+25
+00
+aa
+55
+01
+00
+f7
+48
+0a
+aa
+55
+02
+00
+c8
+4b
+64
+00
+aa
+55
+03
+00
+de
+4b
+00
+00
+00
+aa
+55
+01
+00
+ab
+4a
 ff
+aa
+55
+01
+00
+e2
+4b
+01
+aa
+55
+01
+00
+77
+41
+20
+aa
+55
+01
+00
+8a
+4b
+20
+aa
+55
+01
+00
+7d
+44
+06
+aa
+55
+06
+00
+a8
+40
+15
+a0
+c8
+13
+23
+51
+aa
+55
+0c
+00
+fc
+45
+0b
+42
+54
+33
+2e
+30
+20
+4d
+6f
+75
+73
+65
+aa
+55
+05
+00
+55
+44
+0e
+00
+01
+00
+02
+aa
+55
+01
+00
+41
+46
+0a
+aa
+55
+01
+00
+64
+47
+01
+aa
+55
+01
+00
+78
+46
+00
+aa
+55
+01
+00
+5f
+41
+00
+aa
+55
+03
+00
+65
+47
+03
+00
+04
+aa
+55
+01
+00
+8e
+47
+01
+aa
+55
+01
+00
+d8
+40
+01
+aa
+55
+0c
+00
+e7
+43
+1f
+02
+01
+05
+03
+03
+12
+18
+03
+19
+c2
+03
+aa
+55
+14
+00
+d2
+4a
+06
 ff
+06
+00
+03
+00
+80
+0c
+09
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0e
+00
+07
+44
+1f
+0c
+09
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0c
+00
+f7
+42
+0b
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
+aa
+55
+0c
+00
+1e
+4c
+0b
+42
+54
+35
+2e
+32
+20
+4d
+6f
+75
+73
+65
+aa
+55
+08
+00
+72
+43
+07
+00
+07
+00
+20
+00
+2c
+01
+aa
+55
+06
+00
+cc
+4a
+03
+12
+18
 ff
+00
+00
+aa
+55
+04
+00
+28
+44
+00
+00
+00
+00
+aa
+55
+01
+00
+32
+44
+07
+aa
+55
+08
+00
+4c
+44
+fb
+00
+48
+08
+fb
+00
+48
+08
+aa
+55
+06
+00
+7a
+43
+8e
+b1
+3c
+0e
+8e
+ed
+aa
+55
+02
+00
+e7
+4a
+15
+00
+aa
+55
+02
+00
+57
+43
+19
+00
+aa
+55
+06
+00
+e9
+4a
+1d
+00
+21
+00
+30
+00
+aa
+55
+02
+00
+d1
+43
+2d
+00
+aa
+55
+01
+00
+f0
+4a
+96
+aa
+55
+01
+00
+86
+44
 ff
+aa
+55
+01
+00
+90
+47
 ff
+aa
+55
+01
+00
+8f
+47
+1e
+aa
+55
+0c
+00
+d0
+49
+03
+04
+01
+02
+20
+2a
+3f
+15
+14
+1b
+11
+0e
+aa
+55
+05
+00
+39
+4c
+8a
+8b
+83
+84
+88
+aa
+55
+b2
+00
+df
+49
+09
+5a
+26
+34
+19
+04
+09
+00
 ff
 ff
+09
+5a
+0d
+f0
+1d
+e3
+7d
+d2
 ff
 ff
+09
+5a
+0d
+10
+1d
+ed
+7d
+80
 ff
 ff
+1b
+35
+28
+b4
+29
+46
+2a
+96
+2b
+8c
+2c
+6e
+2d
+64
+38
+5f
+39
+0f
+3a
+32
+3b
+47
+42
+10
 ff
 ff
+54
+2e
+55
+f2
+61
+f4
+63
+70
+75
+52
+76
+41
+77
+ed
+78
+23
+79
+46
+7a
+e5
+7c
+48
+7e
+77
+7f
+01
+0b
+00
+7f
+00
+09
+00
 ff
 ff
+09
+5a
 ff
+27
+ab
+40
+be
+d1
+a0
+41
+a1
+12
+a5
+84
+a7
 ff
+b5
+d0
+b6
+00
 ff
+00
+09
+00
 ff
 ff
+09
+5a
+0d
+10
+0e
+c5
+5b
+9a
+10
+38
+11
+42
+28
+28
+41
+23
+49
+39
+4a
+b0
+4b
+a0
+4c
+90
+4d
+70
+09
+00
 ff
 ff
+09
+5a
+06
+02
+09
+69
+0d
+48
+0e
+9f
+0f
+ba
+09
+00
 ff
 ff
+09
+a5
+46
+34
+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
+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
+ab
+7b
+a4
+c9
 ff
 ff
 ff
@@ -4128,4065 +8188,5 @@
 ff
 ff
 ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-e1
-82
+18
+4e
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/memmap.format	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/memmap.format	(working copy)
@@ -2203,23 +2203,47 @@
 0x4bd5 mem_customer_key_release
 0x4bde mem_mouse_set_high_impedance_bit_set
 0x4be1 mem_sensor_shutdown_flag
-0x4be2 mem_mouse_bt_reconn_led_blink_time
-0x4be4 mem_mouse_factory_addr
-0x4bea mem_mouse_multi_led_blink_enable
-0x4beb mem_mouse_multi_led_gpio
-0x4bec mem_mouse_multi_led_state
-0x4bed mem_mouse_multi_led_type
-0x4bee mem_mouse_multi_led_on_timer
-0x4bef mem_mouse_multi_led_on_timer_init
-0x4bf0 mem_mouse_multi_led_blink_timer_init
-0x4bf1 mem_mouse_multi_led_blink_timer
-0x4bf2 mem_mouse_multi_led_blink_count
-0x4bf3 mem_mouse_multi_led_blink_count_limited
-0x4bf4 mem_mouse_multi_led_on_poweron2s_flag
-0x4bf5 mem_mouse_logo_led_on_timer
-0x4bf7 mem_mouse_logo_led_on_enable
-0x4bf8 mem_mouse_logo_led_on_check_count
-0x4bf9 mem_mouse_reuse_2ice_gpio
+0x4be2 mem_power_on_flag
+0x4be3 mem_ka8g2_sensor_poweron_init
+0x4beb mem_24g_pair_count
+0x4bed mem_mouse_logo_led_gpio
+0x4bee mem_mouse_logo_led_on_time_init
+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_dpi_another_button_gpio
+0x4c33 mem_dpi_another_press_status
+0x4c34 mem_dpi_another_button_state
+0x4c35 mem_dpi_another_button_down_enable
+0x4c36 mem_mouse_key_temp_patch
+0x4c37 mem_mouse_reuse_2ice_gpio
+0x4c38 mem_mouse_ice_sdio_for_sensor_angle
+0x4c39 mem_sensor_s201_dpi
+0x4c39 mem_sensor_s201_dpi_0
+0x4c3a mem_sensor_s201_dpi_1
+0x4c3b mem_sensor_s201_dpi_2
+0x4c3c mem_sensor_s201_dpi_3
+0x4c3d mem_sensor_s201_dpi_4
+0x4c3e mem_mouse_multi_led_state
+0x4c3f mem_mouse_multi_led_type
+0x4c40 mem_mouse_multi_led_blink_timer
+0x4c41 mem_mouse_multi_led_enable
+0x4c42 mem_mouse_le_reconn_flag
+0x4c43 mem_mouse_multi_led_on_timer_init
+0x4c44 mem_mouse_multi_led_on_timer
+0x4c46 mem_mouse_logo_led_on_enable
+0x4c47 mem_mouse_logo_led_on_check_count
 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/SlideSwitch_3mode_Logo_cloese3.0/output/program.lis	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/program.lis	(working copy)
@@ -1,675 +1,2012 @@
               include "bt_format "
               org 0x0000
-0000 c2840011 bbit1 8 ,pf_patch_ext 
-0001 c0000015 beq patch00_0 ,p_soft_reset 
-0002 c045805d beq patch11_3 ,p_initialize_radio_cont 
-0003 c04f8068 beq patch13_7 ,p_init_param 
-0004 c0570019 beq patch15_6 ,p_app_init 
-0005 c06401d0 beq patch19_0 ,p_mouse_before_hibernate 
-0006 c064806a beq patch19_1 ,p_mouse_setgpio_hibernate 
-0007 c065007d beq patch19_2 ,p_mouse_lpm_before_common 
-0008 c06701df beq patch19_6 ,p_mouse_motion 
-0009 c06800f5 beq patch1a_0 ,p_mouse_seting_dpi 
-000a c06b0082 beq patch1a_6 ,p_mouse_priority_bb_event 
-000b c06c80f7 beq patch1b_1 ,p_mouse_bb_event_timer 
-000c c06d00a9 beq patch1b_2 ,p_mouse_start_discovery 
-000d c06d80d1 beq patch1b_3 ,p_mouse_stop_discovery 
-000e c06f0162 beq patch1b_6 ,p_mouse_idle 
-000f c0740184 beq patch1d_0 ,p_hid_rx_process 
-0010 2020137c branch loop 
+0000 c284001b bbit1 8 ,pf_patch_ext 
+0001 c0000026 beq patch00_0 ,p_soft_reset 
+0002 c0018037 beq patch00_3 ,p_main_loop 
+0003 c0418050 beq patch10_3 ,p_set_sync_on 
+0004 c0458091 beq patch11_3 ,p_initialize_radio_cont 
+0005 c04f809e beq patch13_7 ,p_init_param 
+0006 c05700a0 beq patch15_6 ,p_app_init 
+0007 c0580085 beq patch16_0 ,p_app_evt_100ms_loop 
+0008 c0618283 beq patch18_3 ,p_mouse_start_work 
+0009 c063818b beq patch18_7 ,p_mouse_app_enter_hibernate 
+000a c0648191 beq patch19_1 ,p_mouse_setgpio_hibernate 
+000b c06501ca beq patch19_2 ,p_mouse_lpm_before_common 
+000c c0660081 beq patch19_4 ,p_mouse_adc_read_start 
+000d c06703c1 beq patch19_6 ,p_mouse_motion 
+000e c0678469 beq patch19_7 ,p_mouse_dpi_process 
+000f c0680293 beq patch1a_0 ,p_mouse_seting_dpi 
+0010 c06883f6 beq patch1a_1 ,p_mouse_check_key_gpio 
+0011 c0698331 beq patch1a_3 ,p_mouse_init_sunt 
+0012 c06a03dc beq patch1a_4 ,p_mouse_sensor_poweron 
+0013 c06b01f8 beq patch1a_6 ,p_mouse_priority_bb_event 
+0014 c06c82bb beq patch1b_1 ,p_mouse_bb_event_timer 
+0015 c06d0364 beq patch1b_2 ,p_mouse_start_discovery 
+0016 c06f042c beq patch1b_6 ,p_mouse_idle 
+0017 c070802f beq patch1c_1 ,p_mouse_led_off 
+0018 c071002b beq patch1c_2 ,p_mouse_led_on 
+0019 c0740371 beq patch1d_0 ,p_hid_rx_process 
+001a 2020137c branch loop 
 
 pf_patch_ext:
-0011 c0508198 beq patch34_1 ,p_le_slave_match 
-0012 c06001a2 beq patch38_0 ,p_le_parse_l2cap 
-0013 c07601fb beq patch3d_4 ,p_g24_lpm_wait 
-0014 2020137c branch loop 
+001b c0198061 beq patch26_3 ,p_adc_init_data 
+001c c01a0066 beq patch26_4 ,p_enable_adc 
+001d c043836d beq patch30_7 ,p_ui_timer_check 
+001e c0508385 beq patch34_1 ,p_le_slave_match 
+001f c060038f beq patch38_0 ,p_le_parse_l2cap 
+0020 c06e8272 beq patch3b_5 ,p_g24_dispatch 
+0021 c071024d beq patch3c_2 ,p_g24_pair_dispatch 
+0022 c0748255 beq patch3d_1 ,p_g24_reconn_dispatch 
+0023 c0750154 beq patch3d_2 ,p_g24_transmit_no_interrupt 
+0024 c07603b6 beq patch3d_4 ,p_g24_lpm_wait 
+0025 2020137c branch loop 
 
 p_soft_reset:
-0015 20800000 clear_stack 
-0016 204030f3 call app_param_init 
-0017 20403bfd call mouse_xtal_init 
-0018 20200804 branch soft_reset + 3 
+0026 20800000 clear_stack 
+0027 204030f3 call app_param_init 
+0028 24558033 ncall p_led_num_check ,wake 
+0029 20403bfd call mouse_xtal_init 
+002a 20200804 branch soft_reset + 3 
+
+p_mouse_led_on:
+002b 18427e00 copy temp ,pdata 
+002c c17f8000 rtneq gpio_disable 
+002d 1fe20400 copy pdata ,temp 
+002e 20204930 branch mouse_led_on + 1 
+
+p_mouse_led_off:
+002f 18427e00 copy temp ,pdata 
+0030 c17f8000 rtneq gpio_disable 
+0031 1fe20400 copy pdata ,temp 
+0032 2020492c branch mouse_led_off + 1 
+
+p_led_num_check:
+0033 6fe0cbaf fetch 1 ,mem_mouse_flag + 4 
+0034 247a0000 nrtn blank 
+0035 70448c00 jam 0 ,mem_ui_led_struct_num 
+0036 20600000 rtn 
+
+p_main_loop:
+0037 2040706c call sp_calc_sequence 
+0038 20407597 call sp_calc_sequence_256 
+0039 20406ea7 call sp_calc_sequence_256_check 
+003a 20401b93 call le_advertising_dispatch + 1 
+003b 2040083a call idle_dispatch 
+003c 20403108 call app_process_idle + 1 
+003d 20400892 call inquiry_dispatch + 1 
+003e 20400b08 call inquiry_scan_dispatch + 1 
+003f 20400b7b call page_scan_dispatch + 1 
+0040 20400823 call connection_dispatch + 1 
+0041 204021d3 call g24_dispatch + 2 
+0042 20400044 call p_lpm_dispatch 
+0043 20200813 branch main_loop 
+
+p_lpm_dispatch:
+0044 20401465 call lpo_calibration 
+0045 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+0046 207a0000 rtn blank 
+0047 6fe0c099 fetch 1 ,mem_lpm_mode 
+0048 207a0000 rtn blank 
+0049 6fe0c764 fetch 1 ,mem_ssp_enable 
+004a 203a004d branch p_lpm_dispatch_next ,blank 
+004b 6fe0c6b9 fetch 1 ,mem_sp_local_key_invalid 
+004c 207a0000 rtn blank 
+
+p_lpm_dispatch_next:
+004d 6fe0c6ba fetch 1 ,mem_sc_calc 
+004e 247a0000 nrtn blank 
+004f 202014ea branch lpm_dispatch_next + 3 
+
+p_set_sync_on:
+0050 70890005 jam 0x5 ,modem_en 
+0051 20000002 nop 2 
+0052 70890000 jam 0x0 ,modem_en 
+0053 6fe0c0c5 fetch 1 ,mem_fcomp_div 
+0054 c00c1168 beq xtal_24m ,set_sync_on_24m 
+
+p_set_sync_on_16m:
+0055 708a8729 jam 0x29 ,core_syn_afc_cfg1 
+0056 2020117d branch set_sync_on_16m 
+
+p_g24_load_ota_config_poweron:
+0057 20405b94 call iicd_load_gpio_init 
+0058 204004d9 call p_g24_check_ota_data 
+0059 2034005b branch p_g24_load_ota_config ,user 
+005a 20600000 rtn 
+
+p_g24_load_ota_config:
+005b da605de2 arg iicd_read_eep ,regc 
+005c 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+005d 1fe0fe03 increase 3 ,pdata 
+005e 1ff0fe00 byteswap pdata ,pdata 
+005f 67e102e4 store 2 ,mem_addr_mi 
+0060 20205b3f branch load_storage_loop 
+
+p_adc_init_data:
+0061 da20099e arg mem_temp_block2 ,rega 
+0062 d840000c arg 12 ,temp 
+0063 58000030 setarg efuse_offset_adc_param 
+0064 20405e63 call efuse_read_data 
+0065 202060bf branch adc_init_data + 6 
+
+p_enable_adc:
+0066 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
+0067 708a123d jam 0x3d ,core_rf_ldo_cfg6 
+0068 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
+0069 708a0a0c jam 0x0c ,core_rf_ldo_en0 
+006a 6ff08a09 fetch 1 ,core_clkpll_cfg6 
+006b 79207e07 set1 7 ,pdata 
+006c 67f08a09 store 1 ,core_clkpll_cfg6 
+006d 708a0b04 jam 0x04 ,core_rf_ldo_en1 
+006e 2000003c nop 60 
+006f 708a1600 jam 0 ,core_syn_en 
+0070 708a1706 jam 6 ,core_rx_en0 
+0071 2040611a call read_adc_mode 
+0072 67f08a97 store 1 ,core_gpadc_ctrl 
+0073 7080dc03 jam 0x03 ,core_sum_ctrl 
+0074 2000003c nop 60 
+0075 6ff08053 fetch 1 ,core_sum_en 
+0076 79207e07 set1 7 ,pdata 
+0077 67f08053 store 1 ,core_sum_en 
+0078 200003e8 nop 1000 
+0079 6ff10150 fetch 2 ,core_adc_sum 
+007a 67e144a2 store 2 ,mem_adc_current_value 
+007b 6ff08053 fetch 1 ,core_sum_en 
+007c 793ffe07 set0 7 ,pdata 
+007d 67f08053 store 1 ,core_sum_en 
+007e 708a9700 jam 0 ,core_gpadc_ctrl 
+007f 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
+0080 20600000 rtn 
+
+p_mouse_adc_read_start:
+0081 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+0082 247a0000 nrtn blank 
+0083 20400066 call p_enable_adc 
+0084 20203ebb branch mouse_adc_read_start + 3 
+
+p_app_evt_100ms_loop:
+0085 6fe0830d fetch 1 ,mem_app_evt_timer_count 
+0086 207a0000 rtn blank 
+0087 1fe0ffff increase -1 ,pdata 
+0088 67e0830d store 1 ,mem_app_evt_timer_count 
+0089 204077c5 call ui_button_polling 
+008a 204031e3 call app_lpm_wake_auto_lock_timer 
+008b 204031a4 call app_unsniff_delay_timer 
+008c 204031aa call app_discovery_timer 
+008d 20405cdc call flash_write_spi_sm_timer 
+008e 6fe1446f fetch 2 ,mem_cb_event_timer 
+008f 20407e05 call callback_func 
+0090 20200085 branch p_app_evt_100ms_loop 
+
+p_initialize_radio_cont:
+0091 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+0092 2040126a call initialize_syn_afc_cfg1 
+0093 20401271 call initialize_rf_ldo_cfg1 
+0094 20401277 call initialize_rc_cal 
+0095 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
+0096 708a0305 jam 5 ,core_clkpll_cfg0 
+0097 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0098 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0099 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+009a 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+009b 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
+009c 70892140 jam 0x40 ,core_rx_ctrl1 
+009d 2020125d branch initialize_radio_cont + 8 
+
+p_init_param:
+009e 70008000 jam 0 ,mem_lmo_tid2 
+009f 202013b7 branch init_param_next + 1 
 
 p_app_init:
 
 p_mouse_init:
-0019 20406df3 call enable_authrom 
-001a 2040002b call p_mouse_wheel_set_wakeup 
-001b 2040003b call p_mouse_setting_config 
-001c 204041a7 call mouse_init_sunt 
-001d 2040408e call mouse_dpi_config 
-001e 20758000 rtn wake 
-001f 20403d8a call mouse_usb_check_enable 
-0020 20404728 call mouse_drawing_optima_init 
-0021 20403bcf call mouse_cb_fuction 
-0022 2040423c call mouse_sensor_powerdown 
-0023 6fe0c92a fetch 1 ,mem_usb_addr 
-0024 c3838000 rtnbit1 7 
-
-p_mouse_init_wireless:
-0025 6fe1478c fetch 2 ,mem_ui_state_map 
-0026 c2864553 bbit1 ui_state_btn_down ,mouse_start_discovery 
-0027 2040016b call p_mouse_check_select_device_by_switch 
-0028 6fe0c938 fetch 1 ,mem_device_flag 
-0029 c0008033 beq mode_bt_device1 ,p_mouse_check_bt_reconn_target 
-002a 20203d52 branch mouse_start_work 
-
-p_mouse_wheel_set_wakeup:
-002b 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-002c 207a0000 rtn blank 
-002d 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-002e d8400040 arg gpcfg_pullup ,temp 
-002f 20406093 call gpio_config_function_int 
-0030 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-0031 d8400040 arg gpcfg_pullup ,temp 
-0032 20206093 branch gpio_config_function_int 
-
-p_mouse_check_bt_reconn_target:
-0033 20400148 call p_mouse_mode_bt_device1_multi_led_on 
-0034 6fe3493a fetch 6 ,mem_device1_addr 
-0035 684b4be4 fetcht 6 ,mem_mouse_factory_addr 
-0036 98467c00 isub temp ,null 
-0037 20228039 branch p_mouse_start_discovery_init ,zero 
-0038 2020481c branch mouse_check_bt_reconn_target 
-
-p_mouse_start_discovery_init:
-0039 70493801 jam mode_bt_device1 ,mem_device_flag 
-003a 20204553 branch mouse_start_discovery 
+00a0 24558057 ncall p_g24_load_ota_config_poweron ,wake 
+00a1 245580ac ncall p_mouse_le_name_load ,wake 
+00a2 20406df3 call enable_authrom 
+00a3 204000d7 call p_mouse_setting_config 
+00a4 20400331 call p_mouse_init_sunt 
+00a5 20758000 rtn wake 
+00a6 2040408e call mouse_dpi_config 
+00a7 20403d8a call mouse_usb_check_enable 
+00a8 20404728 call mouse_drawing_optima_init 
+00a9 20400102 call p_mouse_cb_fuction 
+00aa 204003ee call p_mouse_sensor_powerdown 
+00ab 20203bc9 branch mouse_init + 8 
+
+p_mouse_le_name_load:
+00ac 6fe44c1f fetch 8 ,mem_le_name_patch 
+00ad 207a0000 rtn blank 
+00ae 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00af 1fe22200 copy pdata ,rega 
+00b0 1fe67c0b sub pdata ,11 ,null 
+00b1 242100be nbranch p_mouse_le_name_patch_len_overflow ,positive 
+00b2 d8c04c1f arg mem_le_name_patch ,contr 
+00b3 d8a04adb arg mem_le_adv_swift_pair + 9 ,contw 
+00b4 1a227200 copy rega ,loopcnt 
+00b5 20407d5f call memcpy 
+00b6 d8c04c1f arg mem_le_name_patch ,contr 
+00b7 d8a0440a arg mem_le_scan_data + 2 ,contw 
+00b8 1a227200 copy rega ,loopcnt 
+00b9 20407d5f call memcpy 
+00ba d8c04c1f arg mem_le_name_patch ,contr 
+00bb d8a042f8 arg mem_le_name ,contw 
+00bc 1a227200 copy rega ,loopcnt 
+00bd 20207d5f branch memcpy 
+
+p_mouse_le_name_patch_len_overflow:
+00be 204000d4 call p_mouse_le_swift_pair_disable 
+00bf 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00c0 1fe0fe01 increase 1 ,pdata 
+00c1 67e0cad2 store 1 ,mem_le_adv_swift_pair 
+00c2 704ad309 jam 9 ,mem_le_adv_swift_pair + 1 
+00c3 d8c04c1f arg mem_le_name_patch ,contr 
+00c4 d8a04ad4 arg mem_le_adv_swift_pair + 2 ,contw 
+00c5 1a227200 copy rega ,loopcnt 
+00c6 20407d5f call memcpy 
+00c7 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00c8 1fe0fe01 increase 1 ,pdata 
+00c9 67e0c408 store 1 ,mem_le_scan_data 
+00ca 70440909 jam 9 ,mem_le_scan_data + 1 
+00cb d8c04c1f arg mem_le_name_patch ,contr 
+00cc d8a0440a arg mem_le_scan_data + 2 ,contw 
+00cd 1a227200 copy rega ,loopcnt 
+00ce 20407d5f call memcpy 
+00cf d8c04c1e arg mem_le_name_patch_len ,contr 
+00d0 d8a042f7 arg mem_le_name_len ,contw 
+00d1 1a227200 copy rega ,loopcnt 
+00d2 1f20f201 increase 1 ,loopcnt 
+00d3 20207d5f branch memcpy 
+
+p_mouse_le_swift_pair_disable:
+00d4 d8a04ad2 arg mem_le_adv_swift_pair ,contw 
+00d5 df200014 arg 20 ,loopcnt 
+00d6 20207d26 branch clear_mem 
 
 p_mouse_setting_config:
-003b 20758000 rtn wake 
-003c 20402607 call g24_transmit_init 
-003d 204022ff call g24_chmap_param_init 
-003e 20403f1e call mouse_gpio_init 
-003f 20403d13 call mouse_param_init 
-0040 6848cbeb fetcht 1 ,mem_mouse_multi_led_gpio 
-0041 20406069 call gpio_config_output 
-0042 20401b16 call le_set_config_fixed_ltk 
-0043 20401b3f call le_set_justwork 
-0044 20401b32 call le_set_fixed_ltk 
-0045 20401b1e call le_set_config_read_authentication 
-0046 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0047 c289804a bbit1 mouse_enable_eeprom ,p_mouse_load_eeprom_info_check 
-0048 c28945f6 bbit1 mouse_enable_flash ,mouse_load_flash_info_check 
-0049 20600000 rtn 
-
-p_mouse_load_eeprom_info_check:
-004a 20405dd8 call iicd_wp_gpio_output_low 
-004b 20405d9f call iicd_init_pin_scl_sda 
-004c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-004d 2feffe09 isolate1 mouse_enable_2k_eeprom ,pdata 
-004e 2440ddbf ncall clear_eeprom_size_2k ,true 
-004f 2040463b call mouse_eeprom_load_recon_info 
-0050 20200051 branch p_mouse_app_initflag_check 
-
-p_mouse_app_initflag_check:
-0051 6fe14990 fetch 2 ,mem_store_flag 
-0052 d840aa55 arg eeprom_init_flag ,temp 
-0053 98467c00 isub temp ,null 
-0054 2022c5e2 branch mouse_load_device_info ,zero 
-0055 60494990 storet 2 ,mem_store_flag 
-0056 204045e7 call mouse_ble_init_address 
-0057 6fe0c926 fetch 1 ,mem_config_sensor_dpi 
-0058 67e0c992 store 1 ,mem_mouse_dpi 
-0059 6fe2488d fetch 4 ,mem_24g_fast_conn_addr 
-005a 67e24891 store 4 ,mem_24g_receiver_addr 
-005b 67e2483c store 4 ,mem_24g_addr 
-005c 20600000 rtn 
-
-p_initialize_radio_cont:
-005d 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-005e 2040126a call initialize_syn_afc_cfg1 
-005f 20401271 call initialize_rf_ldo_cfg1 
-0060 20401277 call initialize_rc_cal 
-0061 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
-0062 708a0305 jam 5 ,core_clkpll_cfg0 
-0063 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-0064 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-0065 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0066 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-0067 2020125d branch initialize_radio_cont + 8 
+00d7 20758000 rtn wake 
+00d8 20402607 call g24_transmit_init 
+00d9 204022ff call g24_chmap_param_init 
+00da 20403f1e call mouse_gpio_init 
+00db 20403d13 call mouse_param_init 
+00dc 204002d6 call p_mouse_multi_led_init_parm 
+00dd 6fe0cc38 fetch 1 ,mem_mouse_ice_sdio_for_sensor_angle 
+00de 203a00e3 branch p_mouse_setting_config_next ,blank 
+00df 204000e8 call p_mouse_sensor_set_angle 
+00e0 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+00e1 20406050 call gpio_config_input 
+00e2 204000f8 call p_ice_gpio_set_float 
+
+p_mouse_setting_config_next:
+00e3 204000fc call p_g24_short_sleep_set_8ms 
+00e4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00e5 c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
+00e6 204000ff call p_g24_short_sleep_set_4ms 
+00e7 20203bf5 branch mouse_setting_config_next 
+
+p_mouse_sensor_set_angle:
+00e8 6fe0c924 fetch 1 ,mem_sensor_angle_default 
+00e9 67e0c928 store 1 ,mem_config_sensor_angle 
+00ea 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
+00eb c17f8000 rtneq gpio_disable 
+00ec 6fe0c917 fetch 1 ,mem_select_sensor_angle_gpio 
+00ed d840003e arg gpcfg_output_low ,temp 
+00ee 20406093 call gpio_config_function_int 
+00ef 6fe0cc37 fetch 1 ,mem_mouse_reuse_2ice_gpio 
+00f0 d840003e arg gpcfg_output_low ,temp 
+00f1 20406093 call gpio_config_function_int 
+00f2 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+00f3 20403f56 call mouse_gpio_config_input_pu 
+00f4 6848c920 fetcht 1 ,mem_mouse_sensor_sdio_gpio 
+00f5 20406059 call gpio_get_bit 
+00f6 2440c2aa ncall mouse_sensor_switch_angle ,true 
+00f7 20203f54 branch mouse_gpio_config_input_pd 
+
+p_ice_gpio_set_float:
+00f8 6848c917 fetcht 1 ,mem_select_sensor_angle_gpio 
+00f9 2040607f call gpio_set_high_impedance 
+00fa 6848cc37 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
+00fb 2020607f branch gpio_set_high_impedance 
+
+p_g24_short_sleep_set_8ms:
+00fc 5800f80c setarg g24_8ms_interval_param 
+00fd 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+00fe 20600000 rtn 
+
+p_g24_short_sleep_set_4ms:
+00ff 58002fb2 setarg g24_4ms_interval_param 
+0100 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+0101 20600000 rtn 
+
+p_mouse_cb_fuction:
+0102 58000107 setarg p_mouse_24g_package_data 
+0103 67e1489b store 2 ,mem_cb_24g_transmit_data 
+0104 58000125 setarg p_mouse_24g_search_dongle 
+0105 67e1489d store 2 ,mem_cb_24g_search_receiver 
+0106 20203bd3 branch mouse_cb_fuction + 4 
+
+p_mouse_24g_package_data:
+0107 c6930000 rtnmark0 mark_24g 
+0108 6fe0cbf6 fetch 1 ,mem_g24_ota_mode 
+0109 243a0592 nbranch p_mouse_24g_package_ota ,blank 
+010a 20403f70 call mouse_motion 
+010b 24740000 nrtn user 
+010c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+010d c30a8110 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
+010e 6fe0cb8b fetch 1 ,mem_customer_key 
+010f 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
+
+p_mouse_24g_mouse_package_data:
+0110 204042cb call mouse_data_xy_release 
+0111 6fe0c836 fetch 1 ,mem_24g_data_type 
+0112 c280811f bbit1 1 ,p_mouse_24g_mouse_package_data_now 
+0113 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
+0114 6fe0c8d0 fetch 1 ,mem_mouse_key 
+0115 9841fe00 ior temp ,pdata 
+0116 67e0c8d0 store 1 ,mem_mouse_key 
+0117 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
+0118 6fe0c8d5 fetch 1 ,mem_mouse_z 
+0119 9840fe00 iadd temp ,pdata 
+011a 67e0c8d5 store 1 ,mem_mouse_z 
+011b 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
+011c 6fe0c8d6 fetch 1 ,mem_mouse_tz 
+011d 9840fe00 iadd temp ,pdata 
+011e 67e0c8d6 store 1 ,mem_mouse_tz 
+
+p_mouse_24g_mouse_package_data_now:
+011f 70483601 jam type_ms ,mem_24g_data_type 
+0120 da200007 arg 7 ,rega 
+0121 da4048d0 arg mem_mouse_key ,regb 
+0122 6fe148d5 fetch 2 ,mem_mouse_z 
+0123 207a0000 rtn blank 
+0124 202026e1 branch g24_transmit_by_interrupt_enable 
+
+p_mouse_24g_search_dongle:
+0125 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0126 c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
+0127 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+0128 207a0000 rtn blank 
+0129 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+012a 207a0000 rtn blank 
+012b 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
+012c 1fe0fe01 increase 1 ,pdata 
+012d 1fe17e03 and_into 3 ,pdata 
+012e 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
+012f 247a0000 nrtn blank 
+0130 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
+
+p_mouse_24g_search_dongle_loop:
+0131 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
+0132 1fe0fe01 increase 1 ,pdata 
+0133 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
+0134 1fe67c08 sub pdata ,g24_ch_number ,null 
+0135 2421013b nbranch p_mouse_24g_search_dongle_loop_end ,positive 
+0136 2040259a call g24_reconn_data_prep 
+0137 2040265b call g24_transmit_receive_ack 
+0138 242c014a nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
+0139 2437814a nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
+013a 20400141 call p_mouse_24g_search_dongle_success 
+
+p_mouse_24g_search_dongle_loop_end:
+013b 20402597 call g24_txbuf_clear 
+013c 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
+013d 1fe0fe01 increase 1 ,pdata 
+013e 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
+013f c008014c beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
+0140 20600000 rtn 
+
+p_mouse_24g_search_dongle_success:
+0141 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0142 203a488c branch mouse_24g_search_dongle_init ,blank 
+0143 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+0144 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+0145 c4000000 rtnbit0 g24_disconn_state 
+0146 793ffe00 set0 g24_disconn_state ,pdata 
+0147 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+0148 20404544 call mouse_no_data_timer_init 
+0149 20200333 branch p_mouse_init_sensor_wakeup 
+
+p_mouse_24g_search_dongle_loop_retry:
+014a 204022cb call g24_ch 
+014b 20200131 branch p_mouse_24g_search_dongle_loop 
+
+p_mouse_24g_search_dongle_check:
+014c 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+014d 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+014e c3800000 rtnbit1 g24_disconn_state 
+014f 79207e00 set1 g24_disconn_state ,pdata 
+0150 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+0151 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+0152 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+0153 202003ee branch p_mouse_sensor_powerdown 
+
+p_g24_transmit_no_interrupt:
+0154 20402631 call g24_txdata_prep 
+0155 243401de nbranch p_g24_nodata_transmit ,user 
+
+p_g24_transmit_start:
+0156 20400163 call p_g24_transmit_process 
+0157 204026ee call power_ctrl_start 
+0158 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0159 243a015e nbranch p_g24_short_sleep ,blank 
+015a 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
+015b 67e4485c store 8 ,mem_24g_enter_hibernate 
+015c 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+015d 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
+
+p_g24_short_sleep:
+015e 204026bb call g24_lpm_wait 
+015f 24740000 nrtn user 
+0160 20407fdc call clear_wake 
+0161 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+0162 202026b8 branch g24_long_sleep2 
+
+p_g24_transmit_process:
+0163 7048a600 jam 0 ,mem_24g_retry 
+
+p_g24_transmit_loop:
+0164 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
+0165 34730200 until clkn_rt ,meet 
+0166 2040265b call g24_transmit_receive_ack 
+0167 6fe0c82c fetch 1 ,mem_24g_no_ack 
+0168 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
+0169 242c017c nbranch p_g24_retransmit ,sync 
+016a 2437817c nbranch p_g24_retransmit ,user3 
+016b 20402672 call g24_ackpayload_parse 
+016c 2040049a call p_g24_mouse_parse_rx 
+016d 2040016f call p_mouse_wakeup_24g 
+016e 20202651 branch g24_transmit_no_ack 
+
+p_mouse_wakeup_24g:
+016f 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0170 245a0173 ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
+0171 704be100 jam 0 ,mem_sensor_shutdown_flag 
+0172 20600000 rtn 
+
+p_mouse_wakeup_24g_from_long_sleep:
+0173 20400333 call p_mouse_init_sensor_wakeup 
+0174 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0175 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
-p_init_param:
-0068 70008000 jam 0 ,mem_lmo_tid2 
-0069 202013b7 branch init_param_next + 1 
+p_mouse_wheel_set_wakeup:
+0176 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+0177 d8400040 arg gpcfg_pullup ,temp 
+0178 20406093 call gpio_config_function_int 
+0179 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+017a d8400040 arg gpcfg_pullup ,temp 
+017b 20206093 branch gpio_config_function_int 
+
+p_g24_retransmit:
+017c 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+017d 247a0000 nrtn blank 
+017e 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
+017f 1fe0fe01 increase 1 ,pdata 
+0180 67e148a3 store 2 ,mem_24g_txfail_cnt 
+0181 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0182 c280a679 bbit1 1 ,g24_tx_attempt_fail 
+0183 2040267e call g24_transmit_hop_process 
+0184 20400186 call p_delay_40ms 
+0185 20200164 branch p_g24_transmit_loop 
+
+p_delay_40ms:
+0186 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0187 1fe67c00 sub pdata ,0x00 ,null 
+0188 20610000 rtn positive 
+0189 df200028 arg 40 ,loopcnt 
+018a 20207d13 branch delay_ms_wait 
+
+p_mouse_app_enter_hibernate:
+018b 58000006 setarg pan_reg_config 
+018c 20405b0d call twspi_read 
+018d c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
+018e 204003e7 call p_mouse_sensor_reset 
+018f 204003ee call p_mouse_sensor_powerdown 
+0190 20203e23 branch mouse_app_enter_hibernate + 3 
 
 p_mouse_setgpio_hibernate:
-006a 204042e9 call mouse_set_sdio_high 
-006b 20407fdc call clear_wake 
-006c 20404015 call mouse_before_hibernate_wheel_gpio_set 
-006d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-006e c07f8073 beq gpio_disable ,p_mouse_setgpio_hibernate_skip_public_gpio 
-006f 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0070 20406069 call gpio_out_active 
-0071 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0072 20406042 call gpio_clr_wake 
-
-p_mouse_setgpio_hibernate_skip_public_gpio:
-0073 6848cbf9 fetcht 1 ,mem_mouse_reuse_2ice_gpio 
-0074 20403f56 call mouse_gpio_config_input_pu 
-0075 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-0076 d840003f arg gpcfg_output_high ,temp 
-0077 20406093 call gpio_config_function_int 
-0078 6fe0c938 fetch 1 ,mem_device_flag 
-0079 205a007b call p_mouse_select_device_button_gpio_set_suspend ,blank 
-007a 20203e36 branch mouse_setgpio_hibernate + 3 
+0191 204042e9 call mouse_set_sdio_high 
+0192 20407fdc call clear_wake 
+0193 20400316 call p_mouse_multi_logo_led_off 
+0194 20404015 call mouse_before_hibernate_wheel_gpio_set 
+0195 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+0196 20406069 call gpio_out_active 
+0197 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+0198 20406042 call gpio_clr_wake 
+0199 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+019a d840003f arg gpcfg_output_high ,temp 
+019b 20406093 call gpio_config_function_int 
+019c d8400003 arg 3 ,temp 
+019d 20403f56 call mouse_gpio_config_input_pu 
+019e 204001ca call p_mouse_lpm_before_common 
+019f 20406082 call gpio_pd_idle 
+01a0 d8400013 arg 19 ,temp 
+01a1 20403f56 call mouse_gpio_config_input_pu 
+01a2 204001a6 call p_mouse_select_device_button_gpio_set_suspend 
+01a3 204001aa call p_mouse_gpio_set_high_impedance 
+01a4 204001b7 call p_mouse_adc_gpio_set_before_hibernate 
+01a5 202001be branch p_mouse_wheel_gpio_set_before_hibernate 
 
 p_mouse_select_device_button_gpio_set_suspend:
-007b 6848c91e fetcht 1 ,mem_device_switch_gpio 
-007c 2020607f branch gpio_set_high_impedance 
+01a6 6fe0c91e fetch 1 ,mem_device_switch_gpio 
+01a7 c17f8000 rtneq gpio_disable 
+01a8 6848c91e fetcht 1 ,mem_device_switch_gpio 
+01a9 2020607f branch gpio_set_high_impedance 
+
+p_mouse_gpio_set_high_impedance:
+01aa 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+01ab 67e1895c store 3 ,mem_pdatatemp 
+01ac df200014 arg 20 ,loopcnt 
+01ad d8400000 arg 0 ,temp 
+
+p_mouse_gpio_set_high_impedance_bit_loop:
+01ae 6fe1895c fetch 3 ,mem_pdatatemp 
+01af 2feffe00 isolate1 0 ,pdata 
+01b0 2040e07f call gpio_set_high_impedance ,true 
+01b1 6fe1895c fetch 3 ,mem_pdatatemp 
+01b2 1fe37e00 rshift pdata ,pdata 
+01b3 67e1895c store 3 ,mem_pdatatemp 
+01b4 18408401 increase 1 ,temp 
+01b5 c20001ae loop p_mouse_gpio_set_high_impedance_bit_loop 
+01b6 20600000 rtn 
+
+p_mouse_adc_gpio_set_before_hibernate:
+01b7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01b8 c40a0000 rtnbit0 mouse_enable_adc 
+01b9 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+01ba c1810000 rtnne adc_config_gpio 
+01bb 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
+01bc d84000c0 arg gpcfg_no_ie ,temp 
+01bd 20206093 branch gpio_config_function_int 
+
+p_mouse_wheel_gpio_set_before_hibernate:
+01be 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01bf c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+
+p_mouse_wheel_clr_wakeup:
+01c0 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+01c1 20406042 call gpio_clr_wake 
+01c2 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+01c3 20406042 call gpio_clr_wake 
+01c4 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+01c5 d8400080 arg gpcfg_pulldown ,temp 
+01c6 20406093 call gpio_config_function_int 
+01c7 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+01c8 d8400080 arg gpcfg_pulldown ,temp 
+01c9 20206093 branch gpio_config_function_int 
 
 p_mouse_lpm_before_common:
-007d 20403f88 call mouse_wheel_check 
-007e 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-007f d840003f arg gpcfg_output_high ,temp 
-0080 20406093 call gpio_config_function_int 
-0081 20203e44 branch mouse_lpm_before_common_next 
+01ca 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+01cb 20406050 call gpio_config_input 
+01cc 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+01cd 20406050 call gpio_config_input 
+01ce 20403f88 call mouse_wheel_check 
+01cf 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+01d0 d840003f arg gpcfg_output_high ,temp 
+01d1 20406093 call gpio_config_function_int 
+01d2 20403e44 call mouse_lpm_before_common_next 
+01d3 6848c91a fetcht 1 ,mem_mbutton_gpio 
+01d4 20206042 branch gpio_clr_wake 
+
+p_mouse_24g_hibernate_set:
+01d5 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
+01d6 20402652 call g24_transmit_next_packet 
+01d7 5fffffff setarg -1 
+01d8 67e2485c store 4 ,mem_24g_enter_hibernate 
+01d9 58000000 setarg 0 
+01da 67e3c8d0 store 7 ,mem_mouse_key 
+01db 704be101 jam 1 ,mem_sensor_shutdown_flag 
+01dc 204003ee call p_mouse_sensor_powerdown 
+01dd 202001e3 branch p_g24_long_sleep 
+
+p_g24_nodata_transmit:
+01de 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+01df 205a01ea call p_g24_send_abort_packet ,blank 
+01e0 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+01e1 c1008000 rtneq g24_tx_timer_int_enable 
+01e2 2040269f call g24_search_receiver 
+
+p_g24_long_sleep:
+01e3 204026bb call g24_lpm_wait 
+01e4 24740000 nrtn user 
+01e5 204026c4 call g24_setgpio_lpm_before 
+01e6 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+01e7 245a3e33 ncall mouse_setgpio_hibernate ,blank 
+01e8 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
+01e9 202026b8 branch g24_long_sleep2 
+
+p_g24_send_abort_packet:
+01ea 70483601 jam type_ms ,mem_24g_data_type 
+01eb 7048a701 jam 1 ,mem_24g_abort_pac 
+01ec 20402642 call g24_transmit_rf_ctrl_clear 
+01ed 67e0c7c6 store 1 ,mem_24g_txbuf 
+01ee 58000000 setarg 0 
+01ef 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
+01f0 6fe248a9 fetch 4 ,mem_24g_device_addr 
+01f1 67e247ce store 4 ,mem_24g_txbuf + 8 
+01f2 7048350c jam 12 ,mem_24g_datalen 
+01f3 6fe0c836 fetch 1 ,mem_24g_data_type 
+01f4 79207e03 set1 bit_abort ,pdata 
+01f5 67e0c836 store 1 ,mem_24g_data_type 
+01f6 20402291 call g24_transmit_prep 
+01f7 20200156 branch p_g24_transmit_start 
 
 p_mouse_priority_bb_event:
-0082 1a627e00 copy regc ,pdata 
-0083 c00a008d beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-0084 c0008094 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-0085 c00a8097 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-0086 c0010099 beq bt_evt_bb_disconnected ,p_mouse_bb_disconnected 
-0087 c01d00e3 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-0088 c01e00db beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-0089 c00200a2 beq bt_evt_reconn_failed ,p_mouse_bb_event_reconn_failed 
-008a c00980a2 beq bt_evt_reconn_page_timeout ,p_mouse_bb_event_reconn_failed 
-008b c019009b beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-008c 20204336 branch mouse_priority_bb_event + 2 
+01f8 1a627e00 copy regc ,pdata 
+01f9 c0008204 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
+01fa c01e0228 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+01fb c01c8225 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+01fc c01d0230 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+01fd c0190211 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+01fe c0220218 beq bt_evt_le_parse_conn_param_accepted ,p_mouse_le_parse_conn_param_accepted 
+01ff c00a8207 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+0200 c00a0202 beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
+0201 20204336 branch mouse_priority_bb_event + 2 
 
 p_mouse_le_bb_event_connected:
-008d 704aae00 jam 0 ,mem_mouse_long_mult_flag 
-008e 204042ca call mouse_init_sensor_reset 
-008f 704ac601 jam 1 ,mem_mouse_le_bb_connected_flag 
-0090 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-0091 243a4357 nbranch mouse_le_bb_event_connected_next ,blank 
-0092 704ac814 jam 0x14 ,mem_mouse_send_secutiry_request_timer 
-0093 20204357 branch mouse_le_bb_event_connected_next 
+0202 204002e1 call p_mouse_multi_on_enable 
+0203 20204350 branch mouse_le_bb_event_connected 
 
 p_mouse_bb_event_connected:
-0094 704aae00 jam 0 ,mem_mouse_long_mult_flag 
-0095 204042ca call mouse_init_sensor_reset 
-0096 20204576 branch mouse_stop_discovery 
+0204 204002e1 call p_mouse_multi_on_enable 
+0205 20404544 call mouse_no_data_timer_init 
+0206 202043fa branch mouse_bb_event_connected 
 
 p_mouse_le_bb_disconnected:
-0097 2040423c call mouse_sensor_powerdown 
-0098 2020435f branch mouse_le_bb_disconnected 
-
-p_mouse_bb_disconnected:
-0099 2040423c call mouse_sensor_powerdown 
-009a 202043fe branch mouse_bb_disconnected 
+0207 58000000 setarg 0 
+0208 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+0209 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
+020a 58000006 setarg le_interval_7_5ms 
+020b 67e14372 store 2 ,mem_le_interval_min 
+020c 67e14374 store 2 ,mem_le_interval_min + 2 
+020d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+020e c28dc366 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next + 2 
+020f 58000007 setarg le_interval_8_75ms 
+0210 20204364 branch mouse_le_bb_disconnected_next 
 
 p_mouse_le_ll_start_encryt:
-009b 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-009c c000809f beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-009d 704b7614 jam 20 ,mem_le_start_encrypt_timer 
-009e 20204373 branch mouse_le_ll_enable_start_enc_flag 
+0211 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+0212 c0008215 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
+0213 704b7614 jam 20 ,mem_le_start_encrypt_timer 
+0214 20204373 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_ll_reconn_start_encryt:
-009f 2040436c call mouse_updata_le_param 
-00a0 704b7605 jam 5 ,mem_le_start_encrypt_timer 
-00a1 20204373 branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_bb_event_reconn_failed:
-00a2 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-00a3 c07fc2f8 beq 0xff ,mouse_buletooth_fast_conn_end 
-00a4 6fe1478c fetch 2 ,mem_ui_state_map 
-00a5 c3860000 rtnbit1 ui_state_btn_down 
-00a6 c3830000 rtnbit1 ui_state_bt_discovery 
-00a7 c3858000 rtnbit1 ui_state_ble_adv 
-00a8 20203e20 branch mouse_app_enter_hibernate 
-
-p_mouse_start_discovery:
-00a9 6fe1478c fetch 2 ,mem_ui_state_map 
-00aa 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-00ab 2040c581 call mouse_stop_le_adv ,true 
-00ac 6fe1478c fetch 2 ,mem_ui_state_map 
-00ad 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-00ae 2040c322 call mouse_cancel_reconnect ,true 
-00af 20404314 call mouse_bluetooth_fast_conn_disable 
-00b0 6fe1478c fetch 2 ,mem_ui_state_map 
-00b1 c28580ba bbit1 ui_state_ble_adv ,p_mouse_start_discovery_norandom 
-00b2 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-00b3 c30400ba bbit0 mouse_enable_ble_random_addre ,p_mouse_start_discovery_norandom 
-00b4 68494997 fetcht 2 ,mem_random_addr_increase_count 
-00b5 18408401 increase 1 ,temp 
-00b6 60494997 storet 2 ,mem_random_addr_increase_count 
-00b7 6049437b storet 2 ,mem_le_lap + 1 
-00b8 180a7e00 random pdata 
-00b9 67e0c37a store 1 ,mem_le_lap 
-
-p_mouse_start_discovery_norandom:
-00ba 6fe1cac9 fetch 3 ,mem_mouse_le_lap_temp 
-00bb 67e1c37d store 3 ,mem_le_lap + 3 
-00bc 20403225 call app_lpm_mult_disable 
-00bd 6fe14791 fetch 2 ,mem_discovery_timeout 
-00be 67e14ac2 store 2 ,mem_mouse_discovery_timer 
-00bf 7000bd06 jam 6 ,mem_connection_options 
-00c0 58000000 setarg 0 
-00c1 67e14ab2 store 2 ,mem_mouse_no_data_timer 
-00c2 67e0cb77 store 1 ,mem_mouse_direct_timer 
-00c3 67e0cac4 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
-00c4 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
-00c5 67e0caac store 1 ,mem_mouse_clear_sensor_data_flag 
-00c6 d8e00002 arg mouse_store_eeprom_flag ,queue 
-00c7 204046f0 call mouse_enable_function_flag 
-00c8 204046e4 call mouse_bt_discovery_button_down_disable 
-00c9 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-00ca 2feffe01 isolate1 mode_4_mouse ,pdata 
-00cb 2040c3df call mouse_check_51cmd_adv ,true 
-00cc 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-00cd 2feffe00 isolate1 mode_3_mouse ,pdata 
-00ce 2040f8c4 call check_51cmd_start_discovery ,true 
-00cf 2040498e call mouse_low_voltage_led_blink_disable 
-00d0 20200125 branch p_mouse_discovery_multi_led_blink 
-
-p_mouse_stop_discovery:
-00d1 d8e00006 arg mouse_bt_discovery_button_long_down_flag ,queue 
-00d2 204046f4 call mouse_disable_function_flag 
-00d3 704ac400 jam 0 ,mem_mouse_bluetooth_reconnect_timeout 
-00d4 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-00d5 2feffe01 isolate1 mode_4_mouse ,pdata 
-00d6 2040c581 call mouse_stop_le_adv ,true 
-00d7 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-00d8 2feffe00 isolate1 mode_3_mouse ,pdata 
-00d9 2040c583 call mouse_stop_bt3_discovery ,true 
-00da 2020013e branch p_mouse_discovey_led_blink_off 
+0215 2040436c call mouse_updata_le_param 
+0216 704b7605 jam 5 ,mem_le_start_encrypt_timer 
+0217 20204373 branch mouse_le_ll_enable_start_enc_flag 
+
+p_mouse_le_parse_conn_param_accepted:
+0218 6fe082c1 fetch 1 ,mem_le_new_conninterval 
+0219 1fe67c0c sub pdata ,le_interval_15ms ,null 
+021a 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
+021b 67e14372 store 2 ,mem_le_interval_min 
+021c 67e14374 store 2 ,mem_le_interval_min + 2 
+021d 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+021e 203a439a branch mouse_le_lpm_mult_reinit ,blank 
+021f 6848cb8a fetcht 1 ,mem_lpm_mult_init 
+0220 98467c00 isub temp ,null 
+0221 2021439a branch mouse_le_lpm_mult_reinit ,positive 
+0222 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+0223 67e0cb8a store 1 ,mem_lpm_mult_init 
+0224 20204386 branch mouse_le_conn_param_lpm_enable 
+
+p_mouse_24g_pairing_complete:
+0225 204002e1 call p_mouse_multi_on_enable 
+0226 20404544 call mouse_no_data_timer_init 
+0227 20204857 branch mouse_24g_pairing_complete 
 
 p_mouse_24g_attempt_success:
-00db 6fe2483c fetch 4 ,mem_24g_addr 
-00dc 67e24891 store 4 ,mem_24g_receiver_addr 
-00dd 67e24993 store 4 ,mem_mouse_24g_addr 
-00de 204048c6 call mouse_device_poweron_timer_init 
-00df 704aae00 jam 0 ,mem_mouse_long_mult_flag 
-00e0 7048a100 jam 0 ,mem_24g_conn_sm 
-00e1 70488b00 jam 0 ,mem_24g_reconn_type 
-00e2 202042ca branch mouse_init_sensor_reset 
+0228 204002e1 call p_mouse_multi_on_enable 
+0229 6fe2483c fetch 4 ,mem_24g_addr 
+022a 67e24891 store 4 ,mem_24g_receiver_addr 
+022b 67e24993 store 4 ,mem_mouse_24g_addr 
+022c 2040257e call g24_ch_syncword_crc8_init 
+022d 204048c6 call mouse_device_poweron_timer_init 
+022e 20404544 call mouse_no_data_timer_init 
+022f 2020484e branch mouse_24g_attempt_success 
 
 p_mouse_24g_attempt_fail:
-00e3 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
-00e4 243a00ea nbranch p_mouse_24g_hibernate_set ,blank 
-00e5 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-00e6 c0014840 beq fast_conn_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
-00e7 c0024839 beq pair_and_3_0_addr ,mouse_24g_attempt_fail_enter_hibernate 
-00e8 c001c840 beq receiver_and_3_0_addr ,mouse_24g_fast_conn_attempt_fail 
-00e9 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
-
-p_mouse_24g_hibernate_set:
-00ea 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
-00eb 20402652 call g24_transmit_next_packet 
-00ec 5fffffff setarg -1 
-00ed 67e2485c store 4 ,mem_24g_enter_hibernate 
-00ee 58000000 setarg 0 
-00ef 67e3c8d0 store 7 ,mem_mouse_key 
-00f0 704be101 jam 1 ,mem_sensor_shutdown_flag 
-00f1 2040423c call mouse_sensor_powerdown 
-00f2 20403e33 call mouse_setgpio_hibernate 
-00f3 2040013e call p_mouse_multi_led_blink_off 
-00f4 202026b5 branch g24_long_sleep 
+0230 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
+0231 243a01d5 nbranch p_mouse_24g_hibernate_set ,blank 
+0232 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+0233 c0010237 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
+0234 c0020240 beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
+0235 c0018245 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
+0236 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
+
+p_mouse_24g_fast_conn_attempt_fail:
+0237 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0238 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0239 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+023a c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+023b 6fe24993 fetch 4 ,mem_mouse_24g_addr 
+023c 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
+023d 98467c00 isub temp ,null 
+023e 2022c827 branch mouse_24g_start_pair_mode ,zero 
+023f 20204806 branch mouse_24g_reconn_dongle_start 
+
+p_mouse_24g_auto_pair_attempt_fail:
+0240 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0241 c317824a bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+0242 6fe0cbb4 fetch 1 ,mem_device_number 
+0243 c000824a beq 1 ,p_mouse_24g_attempt_fail_enter_hibernate 
+0244 2020481a branch mouse_24g_first_bluetooth_reconnect 
+
+p_mouse_reconn_dongle_attempt_fail:
+0245 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0246 c317824a bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+0247 c289824a bbit1 mouse_enable_eeprom ,p_mouse_24g_attempt_fail_enter_hibernate 
+0248 c289024a bbit1 mouse_enable_flash ,p_mouse_24g_attempt_fail_enter_hibernate 
+0249 20204812 branch mouse_24g_start_auto_pair + 1 
+
+p_mouse_24g_attempt_fail_enter_hibernate:
+024a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+024b c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
+024c 202001d5 branch p_mouse_24g_hibernate_set 
+
+p_g24_pair_dispatch:
+024d 70488b00 jam default_24g_device ,mem_24g_reconn_type 
+024e 6fe14beb fetch 2 ,mem_24g_pair_count 
+024f 1fe0fe01 increase 1 ,pdata 
+0250 67e14beb store 2 ,mem_24g_pair_count 
+0251 6fe0cbeb fetch 1 ,mem_24g_pair_count 
+0252 1fe17eff and pdata ,0xff ,pdata 
+0253 c0002341 beq 0 ,g24_pair_dispatch + 1 
+0254 20600000 rtn 
+
+p_g24_reconn_dispatch:
+0255 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0256 d84001f8 arg 0x01f8 ,temp 
+0257 98417e00 iand temp ,pdata 
+0258 203a025d branch p_g24_reconn_dispatch_next ,blank 
+0259 6fe14889 fetch 2 ,mem_24g_reconn_count 
+025a 1fe0fe01 increase 1 ,pdata 
+025b 67e14889 store 2 ,mem_24g_reconn_count 
+025c 20600000 rtn 
+
+p_g24_reconn_dispatch_next:
+025d 2040259a call g24_reconn_data_prep 
+025e 2040265b call g24_transmit_receive_ack 
+025f 242c0263 nbranch p_g24_reconn_device_fail ,sync 
+0260 24378263 nbranch p_g24_reconn_device_fail ,user3 
+0261 20402672 call g24_ackpayload_parse 
+0262 20202586 branch g24_reconn_receiver_succ 
+
+p_g24_reconn_device_fail:
+0263 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
+0264 203a22cb branch g24_ch ,blank 
+0265 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0266 1fe0fe01 increase 1 ,pdata 
+0267 67e14889 store 2 ,mem_24g_reconn_count 
+0268 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
+0269 2feffe01 isolate1 1 ,pdata 
+026a 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+026b c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+026c c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+026d c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+026e c0020270 beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
+026f 2020256e branch g24_reconn_receiver_addr 
+
+p_g24_reconn_pair_and_3_0:
+0270 2020a575 branch g24_reconn_device_3_0_addr ,true 
+0271 20202339 branch g24_pair_init_param 
+
+p_g24_dispatch:
+0272 c61a0000 rtnmark1 mark_adc_enable 
+0273 c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+
+p_g24_transmit_dispatch:
+0274 c6930000 rtnmark0 mark_24g 
+0275 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+0276 c28184a4 bbit1 state_24g_ota ,p_g24_ota_dispatch 
+0277 c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
+0278 c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0279 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+027a c000827c beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+027b 20202621 branch g24_transmit_no_interrupt 
+
+p_g24_transmit_by_interrupt:
+027c 204022ea call g24_timer_check 
+027d 24340274 nbranch p_g24_transmit_dispatch ,user 
+027e 204026db call g24_interval_calibrate 
+027f 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0280 1fe0fe01 increase 1 ,pdata 
+0281 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0282 20202621 branch g24_transmit_no_interrupt 
+
+p_mouse_start_work:
+0283 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0284 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0285 6fe0c938 fetch 1 ,mem_device_flag 
+0286 c0000289 beq mode_24g_device ,p_mouse_24g_start_mode 
+0287 204002e6 call p_mouse_multi_poweron2s_enable 
+0288 20203d57 branch mouse_start_work + 5 
+
+p_mouse_24g_start_mode:
+0289 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+028a c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+028b 20403d65 call mouse_wakeup_from_power_check 
+028c 20344806 branch mouse_24g_reconn_dongle_start ,user 
+028d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+028e c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+028f c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+0290 20404110 call mouse_key_check_once 
+0291 1a217e07 and rega ,0x07 ,pdata 
+0292 202047ff branch mouse_24g_start_mode + 9 
 
 p_mouse_seting_dpi:
-00f5 2040408f call mouse_setting_dpi_4_level 
-00f6 20204098 branch mouse_seting_sensor_type 
+0293 2040408f call mouse_setting_dpi_4_level 
+0294 204002ad call p_mouse_dpi_led_blink_delay 
+
+p_mouse_seting_sensor_type:
+0295 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0296 c0060298 beq s201x ,p_mouse_seting_s201_dpi 
+0297 20204098 branch mouse_seting_sensor_type 
+
+p_mouse_seting_s201_dpi:
+0298 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0299 c000029c beq mouse_dpi_level1 ,p_mouse_set_s201_dpi_0 
+029a c000829f beq mouse_dpi_level2 ,p_mouse_set_s201_dpi_2 
+029b c00102a2 beq mouse_dpi_level3 ,p_mouse_set_s201_dpi_3 
+
+p_mouse_set_s201_dpi_0:
+029c 6fe0cc39 fetch 1 ,mem_sensor_s201_dpi_0 
+029d 1fe22200 copy pdata ,rega 
+029e 202002a5 branch p_mouse_dpi_s201_store 
+
+p_mouse_set_s201_dpi_2:
+029f 6fe0cc3b fetch 1 ,mem_sensor_s201_dpi_2 
+02a0 1fe22200 copy pdata ,rega 
+02a1 202002a5 branch p_mouse_dpi_s201_store 
+
+p_mouse_set_s201_dpi_3:
+02a2 6fe0cc3c fetch 1 ,mem_sensor_s201_dpi_3 
+02a3 1fe22200 copy pdata ,rega 
+02a4 202002a5 branch p_mouse_dpi_s201_store 
+
+p_mouse_dpi_s201_store:
+02a5 5800c309 setarg 0xc309 
+02a6 20405b0c call twspi_write 
+02a7 1a227e00 copy rega ,pdata 
+02a8 1fed7e00 lshift8 pdata ,pdata 
+02a9 1fe0fe23 add pdata ,0x23 ,pdata 
+02aa 20405b0c call twspi_write 
+02ab 58000009 setarg 0x0009 
+02ac 20205b0c branch twspi_write 
+
+p_mouse_dpi_led_blink_delay:
+02ad 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+02ae c17f8000 rtneq gpio_disable 
+02af 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+02b0 247a0000 nrtn blank 
+02b1 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+02b2 247a0000 nrtn blank 
+02b3 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+02b4 247a0000 nrtn blank 
+02b5 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+02b6 247a0000 nrtn blank 
+02b7 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+02b8 203a031c branch p_mouse_dpi_led_blink_init ,blank 
+02b9 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
+02ba 20600000 rtn 
 
 p_mouse_bb_event_timer:
-00f7 20403e9b call mouse_adc_read 
-00f8 20404956 call mouse_low_voltage_led_timer 
-00f9 2040232b call g24_pair_timeout_timer 
-00fa 20402556 call g24_reconn_timeout_timer 
-00fb 204047cd call mouse_24g_long_sleep_param_update_timer 
-00fc 2040407c call mouse_dpi_key_check_long_press 
-00fd 204044cc call mouse_bt_discovery_check 
-00fe 2040014d call p_mouse_commbination_key_process 
-00ff 204044ff call mouse_check_discovery_timeout_timer 
-0100 20404504 call mouse_check_direct_timeout_timer 
-0101 20404512 call mouse_le_enable_att_list_timer 
-0102 20400104 call p_mouse_multi_led_blink_timer 
-0103 202044c4 branch mouse_bb_event_timer_next 
+02bb 20403e9b call mouse_adc_read 
+02bc 20404956 call mouse_low_voltage_led_timer 
+02bd 2040232b call g24_pair_timeout_timer 
+02be 20402556 call g24_reconn_timeout_timer 
+02bf 204047cd call mouse_24g_long_sleep_param_update_timer 
+02c0 204048be call mouse_device_poweron_timer 
+02c1 20400319 call p_mouse_dpi_led_blink_delay_timer 
+02c2 2040407c call mouse_dpi_key_check_long_press 
+02c3 204044cc call mouse_bt_discovery_check 
+02c4 20400344 call p_mouse_commbination_key_process 
+02c5 204044ff call mouse_check_discovery_timeout_timer 
+02c6 20404504 call mouse_check_direct_timeout_timer 
+02c7 20404512 call mouse_le_enable_att_list_timer 
+02c8 20400359 call p_mouse_le_battery_updata_timer 
+02c9 20404515 call mouse_le_send_smp_security_request_timer 
+02ca 2040452a call mouse_check_hid_handshake_timer 
+02cb 2040452d call mouse_bt_check_sniff_req_timeout_timer 
+02cc 20404532 call mouse_check_reconnect_delay_long_sleep 
+02cd 20404535 call mouse_current_mult_update_timer 
+02ce 20404022 call mouse_wheel_trigger_timer 
+02cf 20404547 call mouse_store_information_delay_timer 
+02d0 204002ea call p_mouse_multi_led_blink_timer 
+02d1 2040035c call p_mouse_check_no_data_timeout_timer 
+02d2 202002d3 branch p_mouse_g24_ota_reset_timer 
+
+p_mouse_g24_ota_reset_timer:
+02d3 da604c1d arg mem_g24_ota_reset_timer ,regc 
+02d4 da405d8c arg soft_reset_chip ,regb 
+02d5 2020318a branch timer_single_step 
+
+p_mouse_multi_led_init_parm:
+02d6 704c4100 jam off ,mem_mouse_multi_led_enable 
+02d7 704c4200 jam 0 ,mem_mouse_le_reconn_flag 
+02d8 20600000 rtn 
+
+p_mouse_multi_recon_blink_enable:
+02d9 704c4003 jam 3 ,mem_mouse_multi_led_blink_timer 
+02da 704c4201 jam 1 ,mem_mouse_le_reconn_flag 
+02db 202002de branch p_mouse_multi_blink_enable 
+
+p_mouse_multi_discovery_blink_enable:
+02dc 704c4005 jam 5 ,mem_mouse_multi_led_blink_timer 
+02dd 704c4200 jam 0 ,mem_mouse_le_reconn_flag 
+
+p_mouse_multi_blink_enable:
+02de 704c4101 jam on ,mem_mouse_multi_led_enable 
+02df 704c3f01 jam multi_led_blink ,mem_mouse_multi_led_type 
+02e0 20200313 branch p_mouse_multi_logo_led_on 
+
+p_mouse_multi_on_enable:
+02e1 704c4601 jam on ,mem_mouse_logo_led_on_enable 
+02e2 704c4200 jam 0 ,mem_mouse_le_reconn_flag 
+
+p_mouse_multi_on_enable_next:
+02e3 704c4101 jam on ,mem_mouse_multi_led_enable 
+02e4 704c3f00 jam multi_led_on ,mem_mouse_multi_led_type 
+02e5 20600000 rtn 
+
+p_mouse_multi_poweron2s_enable:
+02e6 704c4600 jam off ,mem_mouse_logo_led_on_enable 
+02e7 202002e3 branch p_mouse_multi_on_enable_next 
+
+p_mouse_le_recon_blink_timer_init:
+02e8 704c4003 jam 3 ,mem_mouse_multi_led_blink_timer 
+02e9 20200311 branch p_mouse_multi_led_led_blink_timeout_next 
 
 p_mouse_multi_led_blink_timer:
-0104 6fe0cbea fetch 1 ,mem_mouse_multi_led_blink_enable 
-0105 207a0000 rtn blank 
-0106 6fe0cbed fetch 1 ,mem_mouse_multi_led_type 
-0107 c000812e beq multi_led_blink ,p_mouse_multi_led_type_blink 
-
-p_mouse_multi_led_type_on:
-0108 2040013b call p_mouse_multi_led_on 
-0109 6fe0cbf7 fetch 1 ,mem_mouse_logo_led_on_enable 
-010a c0008112 beq on ,p_mouse_logo_led_on_timer_check 
-010b 6fe0cbee fetch 1 ,mem_mouse_multi_led_on_timer 
-010c 1fe0fe01 increase 1 ,pdata 
-010d 67e0cbee store 1 ,mem_mouse_multi_led_on_timer 
-010e 6848cbef fetcht 1 ,mem_mouse_multi_led_on_timer_init 
-010f 98467c00 isub temp ,null 
-0110 2042811c call p_mouse_multi_led_off_poweron2s ,zero 
-0111 20600000 rtn 
+02ea 6fe0cc41 fetch 1 ,mem_mouse_multi_led_enable 
+02eb 207a0000 rtn blank 
+02ec 6fe0cc3f fetch 1 ,mem_mouse_multi_led_type 
+02ed c000830b beq multi_led_blink ,p_mouse_multi_bt_led_blink 
+
+p_mouse_multi_led_logo_on:
+02ee 20400313 call p_mouse_multi_logo_led_on 
+02ef 6fe0cc46 fetch 1 ,mem_mouse_logo_led_on_enable 
+02f0 c0008300 beq on ,p_mouse_logo_led_on_timer_check 
+02f1 6fe0cc44 fetch 1 ,mem_mouse_multi_led_on_timer 
+02f2 1fe0fe01 increase 1 ,pdata 
+02f3 67e0cc44 store 1 ,mem_mouse_multi_led_on_timer 
+02f4 6848cc43 fetcht 1 ,mem_mouse_multi_led_on_timer_init 
+02f5 98467c00 isub temp ,null 
+02f6 204282f8 call p_mouse_multi_led_off_poweron2s ,zero 
+02f7 20600000 rtn 
+
+p_mouse_multi_led_off_poweron2s:
+02f8 20400316 call p_mouse_multi_logo_led_off 
+02f9 6fe0c938 fetch 1 ,mem_device_flag 
+02fa c1808000 rtnne mode_bt_device1 
+02fb 6fe3493a fetch 6 ,mem_device1_addr 
+02fc 684b4974 fetcht 6 ,mem_mouse_compare_addr_ff 
+02fd 98467c00 isub temp ,null 
+02fe 202282dc branch p_mouse_multi_discovery_blink_enable ,zero 
+02ff 202002d9 branch p_mouse_multi_recon_blink_enable 
 
 p_mouse_logo_led_on_timer_check:
-0112 6fe14bf5 fetch 2 ,mem_mouse_logo_led_on_timer 
-0113 1fe0fe01 increase 1 ,pdata 
-0114 67e14bf5 store 2 ,mem_mouse_logo_led_on_timer 
-0115 d8400258 arg 0x0258 ,temp 
-0116 98467c00 isub temp ,null 
-0117 20428119 call p_mouse_multi_led_off_continue_1min ,zero 
-0118 20600000 rtn 
+0300 6fe14c44 fetch 2 ,mem_mouse_multi_led_on_timer 
+0301 1fe0fe01 increase 1 ,pdata 
+0302 67e14c44 store 2 ,mem_mouse_multi_led_on_timer 
+0303 d8400258 arg 0x0258 ,temp 
+0304 98467c00 isub temp ,null 
+0305 20428307 call p_mouse_multi_led_off_continue_1min ,zero 
+0306 20600000 rtn 
 
 p_mouse_multi_led_off_continue_1min:
-0119 58000000 setarg 0 
-011a 67e1cbf5 store 3 ,mem_mouse_logo_led_on_timer 
-011b 20200140 branch p_mouse_multi_led_off 
-
-p_mouse_multi_led_off_poweron2s:
-011c 704bf400 jam 0 ,mem_mouse_multi_led_on_poweron2s_flag 
-011d 20400140 call p_mouse_multi_led_off 
-011e 6fe0c938 fetch 1 ,mem_device_flag 
-011f c1808000 rtnne mode_bt_device1 
-0120 6fe1478c fetch 2 ,mem_ui_state_map 
-0121 c3848000 rtnbit1 ui_state_ble_connected 
-0122 c3800000 rtnbit1 ui_state_bt_connected 
-0123 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-0124 c0ff812c bne 0xff ,p_mouse_bt_reconn_multi_led_blink 
-
-p_mouse_discovery_multi_led_blink:
-0125 704bf005 jam 5 ,mem_mouse_multi_led_blink_timer_init 
-
-p_mouse_discovery_multi_led_blink1:
-0126 704bf300 jam 0 ,mem_mouse_multi_led_blink_count_limited 
-0127 704bf201 jam 1 ,mem_mouse_multi_led_blink_count 
-
-p_mouse_multi_led_blink_enable:
-0128 704bf105 jam 5 ,mem_mouse_multi_led_blink_timer 
-0129 704bea01 jam on ,mem_mouse_multi_led_blink_enable 
-012a 704bed01 jam multi_led_blink ,mem_mouse_multi_led_type 
-012b 20600000 rtn 
-
-p_mouse_bt_reconn_multi_led_blink:
-012c 704bf001 jam 1 ,mem_mouse_multi_led_blink_timer_init 
-012d 20200126 branch p_mouse_discovery_multi_led_blink1 
-
-p_mouse_multi_led_type_blink:
-012e da604bf1 arg mem_mouse_multi_led_blink_timer ,regc 
-012f da400131 arg p_mouse_multi_led_type_blink_timeout ,regb 
-0130 2020318a branch timer_single_step 
-
-p_mouse_multi_led_type_blink_timeout:
-0131 6fe0cbf0 fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-0132 67e0cbf1 store 1 ,mem_mouse_multi_led_blink_timer 
-0133 6fe0cbf3 fetch 1 ,mem_mouse_multi_led_blink_count_limited 
-0134 203a0139 branch p_mouse_multi_led_blink_count_no_limited ,blank 
-0135 6fe0cbf2 fetch 1 ,mem_mouse_multi_led_blink_count 
-0136 203a013e branch p_mouse_multi_led_blink_off ,blank 
-0137 1fe0ffff increase -1 ,pdata 
-0138 67e0cbf2 store 1 ,mem_mouse_multi_led_blink_count 
-
-p_mouse_multi_led_blink_count_no_limited:
-0139 6fe0cbec fetch 1 ,mem_mouse_multi_led_state 
-013a c0008140 beq on ,p_mouse_multi_led_off 
-
-p_mouse_multi_led_on:
-013b 704bec01 jam on ,mem_mouse_multi_led_state 
-013c 6848cbeb fetcht 1 ,mem_mouse_multi_led_gpio 
-013d 20206069 branch gpio_out_active 
-
-p_mouse_discovey_led_blink_off:
-
-p_mouse_multi_led_blink_off:
-013e 58000000 setarg 0 
-013f 67e1cbf1 store 3 ,mem_mouse_multi_led_blink_timer 
-
-p_mouse_multi_led_off:
-0140 6fe0cbf2 fetch 1 ,mem_mouse_multi_led_blink_count 
-0141 243a0144 nbranch p_mouse_multi_led_off_wait_blink_over ,blank 
-0142 704bea00 jam 0 ,mem_mouse_multi_led_blink_enable 
-0143 704bed00 jam 0 ,mem_mouse_multi_led_type 
-
-p_mouse_multi_led_off_wait_blink_over:
-0144 704bee00 jam 0 ,mem_mouse_multi_led_on_timer 
-0145 704bec00 jam off ,mem_mouse_multi_led_state 
-
-p_mouse_multi_led_gpio_set_high:
-0146 6848cbeb fetcht 1 ,mem_mouse_multi_led_gpio 
-0147 20206065 branch gpio_out_inactive 
-
-p_mouse_mode_bt_device1_multi_led_on:
-
-p_mouse_mode_24g_device_multi_led_on:
-0148 704bf401 jam 1 ,mem_mouse_multi_led_on_poweron2s_flag 
-0149 704bea01 jam on ,mem_mouse_multi_led_blink_enable 
-014a 704bed00 jam multi_led_on ,mem_mouse_multi_led_type 
-014b 704bee00 jam 0 ,mem_mouse_multi_led_on_timer 
-014c 20600000 rtn 
+0307 58000000 setarg 0 
+0308 67e1cc44 store 3 ,mem_mouse_multi_led_on_timer 
+0309 67e0cc41 store 1 ,mem_mouse_multi_led_enable 
+030a 20200316 branch p_mouse_multi_logo_led_off 
+
+p_mouse_multi_bt_led_blink:
+030b da604c40 arg mem_mouse_multi_led_blink_timer ,regc 
+030c da40030e arg p_mouse_multi_led_led_blink_timeout ,regb 
+030d 2020318a branch timer_single_step 
+
+p_mouse_multi_led_led_blink_timeout:
+030e 6fe0cc42 fetch 1 ,mem_mouse_le_reconn_flag 
+030f c00082e8 beq 1 ,p_mouse_le_recon_blink_timer_init 
+0310 704c4005 jam 5 ,mem_mouse_multi_led_blink_timer 
+
+p_mouse_multi_led_led_blink_timeout_next:
+0311 6fe0cc3e fetch 1 ,mem_mouse_multi_led_state 
+0312 c0008316 beq on ,p_mouse_multi_logo_led_off 
+
+p_mouse_multi_logo_led_on:
+0313 704c3e01 jam on ,mem_mouse_multi_led_state 
+0314 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+0315 20206069 branch gpio_out_active 
+
+p_mouse_multi_logo_led_off:
+0316 704c3e00 jam off ,mem_mouse_multi_led_state 
+0317 70807ac0 jam 0xc0 ,807a 
+0318 20600000 rtn 
+
+p_mouse_dpi_led_blink_delay_timer:
+0319 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
+031a da40031c arg p_mouse_dpi_led_blink_init ,regb 
+031b 2020318a branch timer_single_step 
+
+p_mouse_dpi_led_blink_init:
+031c 6fe0c927 fetch 1 ,mem_config_sensor_type 
+031d c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
+031e c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
+031f 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+0320 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+0321 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
+0322 67e14930 store 2 ,mem_mouse_on_time 
+0323 67e14932 store 2 ,mem_mouse_off_time 
+0324 da200000 arg 0 ,rega 
+0325 6848c992 fetcht 1 ,mem_mouse_dpi 
+0326 18408402 increase 2 ,temp 
+0327 18467c03 sub temp ,3 ,null 
+0328 2041032b call p_mouse_dpi_led_blink_init_level_4 ,positive 
+0329 2441032f ncall p_mouse_dpi_led_blink_count_clean ,positive 
+032a 202048ff branch mouse_dpi_led_blink_init_end 
+
+p_mouse_dpi_led_blink_init_level_4:
+032b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+032c c40e0000 rtnbit0 mouse_enable_dpi_level_4 
+032d 18408401 increase 1 ,temp 
+032e 20600000 rtn 
+
+p_mouse_dpi_led_blink_count_clean:
+032f 184085fd increase -3 ,temp 
+0330 20600000 rtn 
+
+p_mouse_init_sunt:
+0331 20403f65 call mouse_sensor_spi_init 
+0332 20758000 rtn wake 
+
+p_mouse_init_sensor_wakeup:
+0333 20404236 call mouse_sensor_poweron 
+
+p_mouse_init_sensor:
+0334 204041b5 call mouse_read_sensor_id 
+0335 c018033b beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+0336 c018c217 beq p3065_id1 ,mouse_init_p3065 
+0337 c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0338 204041b2 call mouse_twspi_reset 
+0339 20001af4 nop 6900 
+033a 20200334 branch p_mouse_init_sensor 
+
+p_mouse_init_p32xx_id2_judge:
+033b 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+033c c068833e beq p3205_tj3t_id2 ,p_mouse_3205_3t_init_param 
+033d 202041bd branch mouse_init_p32xx_id2_judge + 1 
+
+p_mouse_3205_3t_init_param:
+033e 58000049 setarg 0x49 
+033f 20405b0d call twspi_read 
+0340 c0508342 beq 0xa1 ,p_mouse_s201x_init_param 
+0341 202041da branch mouse_3205_3t_init_param 
+
+p_mouse_s201x_init_param:
+0342 7049270c jam s201x ,mem_config_sensor_type 
+0343 20600000 rtn 
 
 p_mouse_commbination_key_process:
-014d 6fe0c938 fetch 1 ,mem_device_flag 
-014e c0000153 beq mode_24g_device ,p_mouse_24g_commbination_key_process 
-014f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0150 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
-0151 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
-0152 20200156 branch p_mouse_commbination_key_start 
+0344 6fe0c938 fetch 1 ,mem_device_flag 
+0345 c000034a beq mode_24g_device ,p_mouse_24g_commbination_key_process 
+0346 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0347 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+0348 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
+0349 2020034d branch p_mouse_commbination_key_start 
 
 p_mouse_24g_commbination_key_process:
-0153 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0154 c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
-0155 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+034a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+034b c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+034c 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
 
 p_mouse_commbination_key_start:
-0156 6048cb9d storet 1 ,mem_mouse_commbination_key 
-0157 20404115 call mouse_check_key_gpio 
-0158 1fe17e07 and pdata ,0x07 ,pdata 
-0159 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
-015a 98467c00 isub temp ,null 
-015b 2022815d branch p_mouse_commbination_key_down ,zero 
-015c 202044eb branch mouse_commbination_key_up 
+034d 6048cb9d storet 1 ,mem_mouse_commbination_key 
+034e 20404115 call mouse_check_key_gpio 
+034f 1fe17e07 and pdata ,0x07 ,pdata 
+0350 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
+0351 98467c00 isub temp ,null 
+0352 20228354 branch p_mouse_commbination_key_down ,zero 
+0353 202044eb branch mouse_commbination_key_up 
 
 p_mouse_commbination_key_down:
-015d 204044f6 call mouse_combination_ui_timer 
-015e 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
-015f c1008000 rtneq commbination_key_state_down 
-0160 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
-0161 20600000 rtn 
+0354 204044f6 call mouse_combination_ui_timer 
+0355 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+0356 c1008000 rtneq commbination_key_state_down 
+0357 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
+0358 20600000 rtn 
+
+p_mouse_le_battery_updata_timer:
+0359 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+035a c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+035b 2020451f branch mouse_le_battery_updata_timer 
+
+p_mouse_check_no_data_timeout_timer:
+035c 6fe0c92a fetch 1 ,mem_usb_addr 
+035d c3838000 rtnbit1 7 
+035e da604ab2 arg mem_mouse_no_data_timer ,regc 
+035f da400361 arg p_mouse_check_no_data_timeout ,regb 
+0360 20203191 branch timer_single_step_2b 
+
+p_mouse_check_no_data_timeout:
+0361 6fe0c938 fetch 1 ,mem_device_flag 
+0362 c00001d5 beq mode_24g_device ,p_mouse_24g_hibernate_set 
+0363 2020431b branch mouse_disconnect 
 
-p_mouse_idle:
-0162 20404990 call mouse_low_voltage_led_no_enter_lpm 
-0163 20407936 call ui_check_paring_button 
-0164 20404027 call mouse_dpi_check 
-0165 20404655 call mouse_select_device_check 
-0166 2040016b call p_mouse_check_select_device_by_switch 
-0167 204046d6 call mouse_bt_button_check 
-0168 20403dbd call mouse_usb_isr 
-0169 20403f88 call mouse_wheel_check 
-016a 20203dd4 branch mouse_usb_mode 
-
-p_mouse_check_select_device_by_switch:
-016b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-016c c295016f bbit1 mouse_enable_select_device_by_switch_gpio ,p_mouse_check_select_device_by_switch_gpio 
-016d c295be9b bbit1 mouse_enable_select_device_by_switch_adc ,mouse_adc_read 
-016e 20600000 rtn 
-
-p_mouse_check_select_device_by_switch_gpio:
-016f 6848c91e fetcht 1 ,mem_device_switch_gpio 
-0170 20403f56 call mouse_gpio_config_input_pu 
-0171 6848c91e fetcht 1 ,mem_device_switch_gpio 
-0172 20406059 call gpio_get_bit 
-0173 2020817a branch p_mouse_check_select_24gdevice ,true 
-
-p_mouse_select_btdevice:
-0174 6fe0c938 fetch 1 ,mem_device_flag 
-0175 c0808177 bne mode_bt_device1 ,p_select_btdevice_info_store 
-0176 20600000 rtn 
-
-p_select_btdevice_info_store:
-0177 70493801 jam mode_bt_device1 ,mem_device_flag 
-0178 20400180 call p_mouse_store_eeprom_device_flag 
-0179 20205d8c branch soft_reset_chip 
-
-p_mouse_check_select_24gdevice:
-017a 6fe0c938 fetch 1 ,mem_device_flag 
-017b c080017d bne mode_24g_device ,p_select_24gdevice_info_store 
-017c 20600000 rtn 
-
-p_select_24gdevice_info_store:
-017d 70493800 jam mode_24g_device ,mem_device_flag 
-017e 20400180 call p_mouse_store_eeprom_device_flag 
-017f 20205d8c branch soft_reset_chip 
-
-p_mouse_store_eeprom_device_flag:
-0180 d8400001 arg 1 ,temp 
-0181 da204938 arg mem_device_flag ,rega 
-0182 da400000 arg mouse_info_eeprom_offect ,regb 
-0183 20205dce branch iicd_write_protect_eep_data 
+p_mouse_start_discovery:
+0364 6fe1478c fetch 2 ,mem_ui_state_map 
+0365 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+0366 2040c581 call mouse_stop_le_adv ,true 
+0367 6fe1478c fetch 2 ,mem_ui_state_map 
+0368 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+0369 2040c322 call mouse_cancel_reconnect ,true 
+036a 58000000 setarg 0 
+036b 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+036c 20204554 branch mouse_start_discovery + 1 
+
+p_ui_timer_check:
+036d 6fe0cbe2 fetch 1 ,mem_power_on_flag 
+036e 245a7861 ncall ui_timer_init ,blank 
+036f 704be200 jam 0 ,mem_power_on_flag 
+0370 20207851 branch ui_timer_check + 1 
 
 p_hid_rx_process:
-0184 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
-0185 1fe20c00 copy pdata ,contr 
-0186 efe08006 ifetch 1 ,contr 
-0187 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
-0188 1fe1040f and pdata ,0x0f ,temp 
-0189 1ff1fe00 rshift4 pdata ,pdata 
-018a c004818c beq hid_type_set_idle ,p_hid_rx_process_handshake 
-018b 20204d93 branch hid_rx_process + 7 
+0371 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
+0372 1fe20c00 copy pdata ,contr 
+0373 efe08006 ifetch 1 ,contr 
+0374 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
+0375 1fe1040f and pdata ,0x0f ,temp 
+0376 1ff1fe00 rshift4 pdata ,pdata 
+0377 c0048379 beq hid_type_set_idle ,p_hid_rx_process_handshake 
+0378 20204d93 branch hid_rx_process + 7 
 
 p_hid_rx_process_handshake:
-018c da200001 arg 1 ,rega 
-018d 20404dc0 call hid_malloc_tx_buff 
-018e 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
-018f e7e10005 istore 2 ,contw 
-0190 58000000 setarg 0 
-0191 e7e08005 istore 1 ,contw 
-0192 70095001 jam 1 ,mem_ui_data_txbuff_length 
-0193 6fe0c4e2 fetch 1 ,mem_hid_control_state 
-0194 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
-0195 67e0c4e2 store 1 ,mem_hid_control_state 
-0196 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
-0197 20207871 branch ui_ipc_send_event 
+0379 da200001 arg 1 ,rega 
+037a 20404dc0 call hid_malloc_tx_buff 
+037b 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
+037c e7e10005 istore 2 ,contw 
+037d 58000000 setarg 0 
+037e e7e08005 istore 1 ,contw 
+037f 70095001 jam 1 ,mem_ui_data_txbuff_length 
+0380 6fe0c4e2 fetch 1 ,mem_hid_control_state 
+0381 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
+0382 67e0c4e2 store 1 ,mem_hid_control_state 
+0383 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
+0384 20207871 branch ui_ipc_send_event 
 
 p_le_slave_match:
-0198 6fe0c3dd fetch 1 ,mem_le_md_count 
-0199 1fe0fe01 pincrease 1 
-019a 67e0c3dd store 1 ,mem_le_md_count 
-019b c006165a beq le_md_max_count ,le_slave_cont 
-019c 2040191b call le_acknowledge 
-019d 2040196a call le_prepare_tx 
-019e 6fe082bd fetch 1 ,mem_le_tx_phy 
-019f 2040168b call le_enable_phy_by_pdata 
-01a0 20401838 call le_transmit 
-01a1 20201655 branch le_slave_match + 10 
+0385 6fe0c3dd fetch 1 ,mem_le_md_count 
+0386 1fe0fe01 pincrease 1 
+0387 67e0c3dd store 1 ,mem_le_md_count 
+0388 c006165a beq le_md_max_count ,le_slave_cont 
+0389 2040191b call le_acknowledge 
+038a 2040196a call le_prepare_tx 
+038b 6fe082bd fetch 1 ,mem_le_tx_phy 
+038c 2040168b call le_enable_phy_by_pdata 
+038d 20401838 call le_transmit 
+038e 20201655 branch le_slave_match + 10 
 
 p_le_parse_l2cap:
-01a2 efe10006 ifetch 2 ,contr 
-01a3 c00201a5 beq le_l2cap_cid_att ,p_le_parse_att 
-01a4 202019e4 branch le_parse_l2cap + 10 
+038f efe10006 ifetch 2 ,contr 
+0390 c0020392 beq le_l2cap_cid_att ,p_le_parse_att 
+0391 202019e4 branch le_parse_l2cap + 10 
 
 p_le_parse_att:
-01a5 20407ceb call store_contr 
-01a6 204001bb call p_mouse_le_reconn_write_enable_timer_reinit 
-01a7 20407ce5 call get_contr 
-01a8 efe18006 ifetch 3 ,contr 
-01a9 67e1c436 store 3 ,mem_le_att_opcode 
-01aa c00501ad beq attop_read_request ,p_le_parse_att_read_request 
-01ab c00901c2 beq attop_write_request ,p_le_parse_att_write_request 
-01ac 20201cd3 branch le_parse_att + 2 
+0392 efe18006 ifetch 3 ,contr 
+0393 67e1c436 store 3 ,mem_le_att_opcode 
+0394 c0050397 beq attop_read_request ,p_le_parse_att_read_request 
+0395 c00903a6 beq attop_write_request ,p_le_parse_att_write_request 
+0396 20201cd3 branch le_parse_att + 2 
 
 p_le_parse_att_read_request:
-01ad 20401e8d call le_check_encrypt_state 
-01ae 68494437 fetcht 2 ,mem_le_att_handle 
-01af 6fe0c3c0 fetch 1 ,mem_le_configuration 
-01b0 c28181b5 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+0397 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0398 c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+0399 20401e8d call le_check_encrypt_state 
+039a 68494437 fetcht 2 ,mem_le_att_handle 
+039b 6fe0c3c0 fetch 1 ,mem_le_configuration 
+039c c28183a1 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
 
 p_le_send_att_read_response:
-01b1 6fe14437 fetch 2 ,mem_le_att_handle 
-01b2 c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
-01b3 68494437 fetcht 2 ,mem_le_att_handle 
-01b4 20201deb branch le_send_att_read_response 
+039d 6fe14437 fetch 2 ,mem_le_att_handle 
+039e c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
+039f 68494437 fetcht 2 ,mem_le_att_handle 
+03a0 20201deb branch le_send_att_read_response 
 
 p_le_send_att_read_response_check_auth:
-01b5 6fe143d1 fetch 2 ,mem_le_pairing_handle 
-01b6 98467c00 isub temp ,null 
-01b7 242281b1 nbranch p_le_send_att_read_response ,zero 
-01b8 20401e8d call le_check_encrypt_state 
-01b9 243401b1 nbranch p_le_send_att_read_response ,user 
-01ba 20201e10 branch le_send_att_read_response_error_insufficient_auth 
-
-p_mouse_le_reconn_write_enable_timer_reinit:
-01bb 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-01bc 207a0000 rtn blank 
-01bd 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
-01be 1fe17e03 and pdata ,0x03 ,pdata 
-01bf c1018000 rtneq 0x03 
-01c0 704b7602 jam 2 ,mem_le_start_encrypt_timer 
-01c1 20600000 rtn 
+03a1 6fe143d1 fetch 2 ,mem_le_pairing_handle 
+03a2 98467c00 isub temp ,null 
+03a3 2422839d nbranch p_le_send_att_read_response ,zero 
+03a4 2434039d nbranch p_le_send_att_read_response ,user 
+03a5 20201e10 branch le_send_att_read_response_error_insufficient_auth 
 
 p_le_parse_att_write_request:
-01c2 18c22200 copy contr ,rega 
-01c3 6fe143d4 fetch 2 ,mem_le_l2cap_size 
-01c4 1fe0a5fd add pdata ,-3 ,regb 
-01c5 20401a25 call le_writeatt_cb 
-01c6 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-01c7 203a1e73 branch le_send_att_write_response_check_auth ,blank 
-01c8 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
-01c9 c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-01ca 5800001a setarg 0x001a 
-01cb 68494437 fetcht 2 ,mem_le_att_handle 
-01cc 98467c00 isub temp ,null 
-01cd 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
-01ce 7002d805 jam att_err_insufficient_authentication ,mem_le_err_code 
-01cf 20201ec9 branch le_send_att_error_response 
-
-p_mouse_before_hibernate:
-01d0 78347c00 enable user 
-01d1 6ff20138 fetch 4 ,0x8138 
-01d2 79347e1a setflag user ,26 ,pdata 
-01d3 67f2004c store 4 ,core_lpm_reg 
-01d4 2040159a call lpm_write_ctrl 
-01d5 20406df7 call disable_authrom 
-01d6 2040013e call p_mouse_multi_led_blink_off 
-01d7 20404015 call mouse_before_hibernate_wheel_gpio_set 
-01d8 20403e33 call mouse_setgpio_hibernate 
-01d9 2040462d call mouse_flash_power_down 
-01da 2040609d call gpio_set_before_lpm_common 
-01db 6848c91a fetcht 1 ,mem_mbutton_gpio 
-01dc 20406042 call gpio_clr_wake 
-01dd 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
-01de 20206042 branch gpio_clr_wake 
+03a6 18c22200 copy contr ,rega 
+03a7 6fe143d4 fetch 2 ,mem_le_l2cap_size 
+03a8 1fe0a5fd add pdata ,-3 ,regb 
+03a9 20401a25 call le_writeatt_cb 
+03aa 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+03ab c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
+03ac 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+03ad 203a1e73 branch le_send_att_write_response_check_auth ,blank 
+03ae 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+03af c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+03b0 5800001a setarg 0x001a 
+03b1 68494437 fetcht 2 ,mem_le_att_handle 
+03b2 98467c00 isub temp ,null 
+03b3 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
+03b4 7002d805 jam att_err_insufficient_authentication ,mem_le_err_code 
+03b5 20201ec9 branch le_send_att_error_response 
+
+p_g24_lpm_wait:
+03b6 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+03b7 243a7e56 nbranch disable_user ,blank 
+03b8 78347c00 enable user 
+03b9 20401465 call lpo_calibration 
+03ba 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+03bb 203a7e56 branch disable_user ,blank 
+03bc 6fe0c099 fetch 1 ,mem_lpm_mode 
+03bd 203a7e56 branch disable_user ,blank 
+03be 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+03bf c000fe56 beq g24_tx_timer_int_enable ,disable_user 
+03c0 20600000 rtn 
 
 p_mouse_motion:
-01df 78547c00 disable user 
-01e0 58000000 setarg 0 
-01e1 67e348d1 store 6 ,mem_mouse_x 
-01e2 20404240 call mouse_check_sensor_data 
-01e3 2040408e call mouse_dpi_config 
-01e4 20403f7e call mouse_zwheel 
-01e5 20403f83 call mouse_t_zwheel 
-01e6 204040dc call mouse_key 
-01e7 6fe0c8d0 fetch 1 ,mem_mouse_key 
-01e8 1fe17e1f and_into 0x1f ,pdata 
-01e9 67e0c8d0 store 1 ,mem_mouse_key 
-01ea 243401ee nbranch p_mouse_motion_nodata ,user 
-01eb 2040471a call mouse_drawing_optima 
-01ec 204001f1 call p_mouse_logo_led_on_check 
-01ed 20204544 branch mouse_no_data_timer_init 
-
-p_mouse_motion_nodata:
-01ee 20404728 call mouse_drawing_optima_init 
-01ef 704bf800 jam 0 ,mem_mouse_logo_led_on_check_count 
-01f0 20600000 rtn 
+03c1 78547c00 disable user 
+03c2 58000000 setarg 0 
+03c3 67e348d1 store 6 ,mem_mouse_x 
+03c4 20404240 call mouse_check_sensor_data 
+03c5 20400295 call p_mouse_seting_sensor_type 
+03c6 20403f7e call mouse_zwheel 
+03c7 20403f83 call mouse_t_zwheel 
+03c8 204040dc call mouse_key 
+03c9 6fe0c8d0 fetch 1 ,mem_mouse_key 
+03ca 1fe17e1f and_into 0x1f ,pdata 
+03cb 67e0c8d0 store 1 ,mem_mouse_key 
+03cc 243403d0 nbranch p_mouse_drawing_optima_init ,user 
+03cd 204003d3 call p_mouse_logo_led_on_check 
+03ce 204003d9 call p_mouse_drawing_optima 
+03cf 20204544 branch mouse_no_data_timer_init 
+
+p_mouse_drawing_optima_init:
+03d0 20404728 call mouse_drawing_optima_init 
+03d1 704c4700 jam 0 ,mem_mouse_logo_led_on_check_count 
+03d2 20600000 rtn 
 
 p_mouse_logo_led_on_check:
-01f1 6fe0cbf8 fetch 1 ,mem_mouse_logo_led_on_check_count 
-01f2 1fe0fe01 increase 1 ,pdata 
-01f3 67e0cbf8 store 1 ,mem_mouse_logo_led_on_check_count 
-01f4 1fe67c08 sub pdata ,low_voltage_led_count ,null 
-01f5 20610000 rtn positive 
-
-p_mouse_logo_led_on:
-01f6 704bf701 jam on ,mem_mouse_logo_led_on_enable 
-01f7 704bea01 jam on ,mem_mouse_multi_led_blink_enable 
-01f8 704bed00 jam multi_led_on ,mem_mouse_multi_led_type 
-01f9 704bee00 jam 0 ,mem_mouse_multi_led_on_timer 
-01fa 20600000 rtn 
+03d3 6fe0cc47 fetch 1 ,mem_mouse_logo_led_on_check_count 
+03d4 1fe0fe01 increase 1 ,pdata 
+03d5 67e0cc47 store 1 ,mem_mouse_logo_led_on_check_count 
+03d6 1fe67c08 sub pdata ,8 ,null 
+03d7 20610000 rtn positive 
+03d8 202002e1 branch p_mouse_multi_on_enable 
+
+p_mouse_drawing_optima:
+03d9 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03da c1018000 rtneq p3212 
+03db 2020471a branch mouse_drawing_optima 
+
+p_mouse_sensor_poweron:
+03dc 20403f65 call mouse_sensor_spi_init 
+03dd 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03de c00583e3 beq ka8g2 ,p_mouse_ka8g2_sensor_init 
+03df 20404232 call mouse_sensor_reset 
+03e0 da604aa3 arg mem_sensor_poweron_init ,regc 
+03e1 2040422b call mouse_sensor_wr_seq 
+03e2 2020408e branch mouse_dpi_config 
+
+p_mouse_ka8g2_sensor_init:
+03e3 204003ea call p_mouse_ka8g2_sensor_reset 
+03e4 da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
+03e5 2040422b call mouse_sensor_wr_seq 
+03e6 2020408e branch mouse_dpi_config 
+
+p_mouse_sensor_reset:
+03e7 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03e8 c00583ea beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
+03e9 20204232 branch mouse_sensor_reset 
+
+p_mouse_ka8g2_sensor_reset:
+03ea 58009706 setarg 0x9706 
+03eb 20405b0c call twspi_write 
+03ec 20002ee0 nop 12000 
+03ed 20600000 rtn 
+
+p_mouse_sensor_powerdown:
+03ee 204041a7 call mouse_init_sunt 
+03ef 20403f65 call mouse_sensor_spi_init 
+03f0 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03f1 c00583f4 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
+03f2 58000806 setarg 0x0806 
+03f3 20205b0c branch twspi_write 
+
+p_mouse_ka8g2_sensor_powerdown:
+03f4 58001f06 setarg 0x1f06 
+03f5 20205b0c branch twspi_write 
+
+p_mouse_check_key_gpio:
+03f6 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+03f7 245a4121 ncall mouse_check_key_gpio_once ,blank 
+03f8 da200000 arg 0 ,rega 
+03f9 204003ff call p_mouse_check_lkey_gpio 
+03fa 20400404 call p_mouse_check_rkey_gpio 
+03fb 20400409 call p_mouse_check_mkey_gpio 
+03fc 2040040e call p_mouse_check_bkkey_gpio 
+03fd 2040041b call p_mouse_check_fwkey_gpio 
+03fe 2020411e branch mouse_check_key_gpio_next 
+
+p_mouse_check_lkey_gpio:
+03ff 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+0400 20400428 call p_mouse_gpio_config_output_high 
+0401 20404124 call mouse_check_lkey_gpio 
+0402 6848c918 fetcht 1 ,mem_lbutton_gpio 
+0403 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_check_rkey_gpio:
+0404 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+0405 20400428 call p_mouse_gpio_config_output_high 
+0406 2040412a call mouse_check_rkey_gpio 
+0407 6848c919 fetcht 1 ,mem_rbutton_gpio 
+0408 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_check_mkey_gpio:
+0409 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+040a 20400428 call p_mouse_gpio_config_output_high 
+040b 20404130 call mouse_check_mkey_gpio 
+040c 6848c91a fetcht 1 ,mem_mbutton_gpio 
+040d 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_check_bkkey_gpio:
+040e 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+040f c17f8000 rtneq gpio_disable 
+0410 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+0411 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+0412 1fe22600 copy pdata ,regc 
+0413 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0414 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0415 c07f8417 beq gpio_disable ,p_mouse_3io6key_bk_check 
+0416 2020413e branch mouse_check_bkkey_gpio_next 
+
+p_mouse_3io6key_bk_check:
+0417 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+0418 2040042a call p_mouse_gpio_config_output_low 
+0419 6848c90d fetcht 1 ,mem_bk_button_gpio 
+041a 2020414b branch mouse_3io6key_bk_check 
+
+p_mouse_check_fwkey_gpio:
+041b 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+041c c17f8000 rtneq gpio_disable 
+041d 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+041e 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+041f 1fe22600 copy pdata ,regc 
+0420 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0421 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0422 c07f8424 beq gpio_disable ,p_mouse_3io6key_fw_check 
+0423 20204157 branch mouse_check_fwkey_gpio_next 
+
+p_mouse_3io6key_fw_check:
+0424 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+0425 2040042a call p_mouse_gpio_config_output_low 
+0426 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0427 20204164 branch mouse_3io6key_fw_check 
+
+p_mouse_gpio_config_output_high:
+0428 d840003f arg gpcfg_output_high ,temp 
+0429 20206093 branch gpio_config_function_int 
+
+p_mouse_gpio_config_output_low:
+042a d840003e arg gpcfg_output_low ,temp 
+042b 20206093 branch gpio_config_function_int 
 
-p_g24_lpm_wait:
-01fb 6fe0c8d0 fetch 1 ,mem_mouse_key 
-01fc c28126e1 bbit1 2 ,g24_transmit_by_interrupt_enable 
-01fd 202026bc branch g24_lpm_wait + 1 
+p_mouse_idle:
+042c 20404990 call mouse_low_voltage_led_no_enter_lpm 
+042d 20407936 call ui_check_paring_button 
+042e 20400431 call p_mouse_dpi_check 
+042f 20400445 call p_mouse_dpi_another_gpio_check 
+0430 2020464f branch mouse_idle + 4 
+
+p_mouse_dpi_check:
+0431 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0432 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
+0433 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+0434 c17f8000 rtneq gpio_disable 
+0435 da200000 arg 0 ,rega 
+0436 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+0437 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0438 2040043a call p_mouse_dpi_key_check 
+0439 2020402f branch mouse_dpi_check_next 
+
+p_mouse_dpi_key_check:
+043a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+043b c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+043c 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+043d 1fe22600 copy pdata ,regc 
+043e 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+043f c07f8441 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+0440 2020403f branch mouse_dpi_key_check_next 
+
+p_mouse_3io6key_dpi_check:
+0441 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+0442 2040042a call p_mouse_gpio_config_output_low 
+0443 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0444 20204195 branch mouse_3io6key_check 
+
+p_mouse_dpi_another_gpio_check:
+0445 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0446 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
+0447 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
+0448 20400428 call p_mouse_gpio_config_output_high 
+0449 2040044c call p_mouse_dpi_another_check 
+044a 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+044b 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_dpi_another_check:
+044c 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+044d 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+044e 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
+044f 2040045b call p_mouse_check_key_connect_gnd_new 
+0450 67e0cc33 store 1 ,mem_dpi_another_press_status 
+0451 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+0452 203a0457 branch p_mouse_dpi_another_up ,blank 
+
+p_mouse_dpi_another_down:
+0453 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+0454 c1008000 rtneq dpi_button_state_down 
+0455 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0456 20204069 branch mouse_dpi_process 
+
+p_mouse_dpi_another_up:
+0457 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+0458 c1000000 rtneq dpi_button_state_up 
+0459 704c3400 jam dpi_button_state_up ,mem_dpi_another_button_state 
+045a 20600000 rtn 
+
+p_mouse_check_key_connect_gnd_new:
+045b 1fe3fe00 lshift pdata ,pdata 
+045c 1fe22400 copy pdata ,regb 
+045d 20406059 call gpio_get_bit 
+045e 7920a400 setflag true ,0 ,regb 
+045f 1a417e07 and regb ,0x07 ,pdata 
+0460 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
+0461 18420e00 copy temp ,queue 
+0462 c0038465 beq 0x07 ,p_mouse_key_press 
+0463 c0000467 beq 0x00 ,p_mouse_key_release 
+0464 20600000 rtn 
+
+p_mouse_key_press:
+0465 704c3501 jam 1 ,mem_dpi_another_button_down_enable 
+0466 20600000 rtn 
+
+p_mouse_key_release:
+0467 704c3500 jam 0 ,mem_dpi_another_button_down_enable 
+0468 20600000 rtn 
+
+p_mouse_dpi_process:
+0469 20404072 call mouse_dpi_ghost_check 
+046a 20740000 rtn user 
+046b 6fe0c992 fetch 1 ,mem_mouse_dpi 
+046c 1fe20400 copy pdata ,temp 
+046d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+046e c29e8475 bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
+046f 18427e00 copy temp ,pdata 
+0470 1fe0fe01 increase 1 ,pdata 
+0471 1fe17e03 and pdata ,0x03 ,pdata 
+
+p_mouse_dpi_store:
+0472 67e0c992 store 1 ,mem_mouse_dpi 
+0473 20404095 call mouse_seting_dpi 
+0474 20204643 branch mouse_store_eerpom_dpi 
+
+p_mouse_double_dpi_check:
+0475 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+0476 243a0480 nbranch p_mouse_another_dpi_button_down ,blank 
+
+p_mouse_dpi_increase:
+0477 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0478 c28e047d bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
+0479 18427e00 copy temp ,pdata 
+047a c1010000 rtneq mouse_dpi_level3 
+
+p_mouse_dpi_increase_level:
+047b 1fe0fe01 increase 1 ,pdata 
+047c 20200472 branch p_mouse_dpi_store 
+
+p_mouse_dpi_increase_level_4:
+047d 18427e00 copy temp ,pdata 
+047e c1018000 rtneq mouse_dpi_level4 
+047f 2020047b branch p_mouse_dpi_increase_level 
+
+p_mouse_another_dpi_button_down:
+
+p_mouse_dpi_decrease:
+0480 18427e00 copy temp ,pdata 
+0481 c1000000 rtneq mouse_dpi_level1 
+0482 1fe0ffff increase -1 ,pdata 
+0483 20200472 branch p_mouse_dpi_store 
+
+p_g24_parse_rx_ota_sm:
+0484 6fe0cbf6 fetch 1 ,mem_g24_ota_mode 
+0485 207a0000 rtn blank 
+0486 6fe0cbf7 fetch 1 ,mem_g24_ota_sm 
+0487 c0010490 beq g24_ota_sm_tx_version ,p_g24_ota_sm_tx_version 
+0488 c0028492 beq g24_ota_sm_tx_info ,p_g24_ota_sm_tx_info 
+0489 c0040494 beq g24_ota_sm_tx_config ,p_g24_ota_sm_tx_config 
+048a c0058496 beq g24_ota_sm_tx_set_config_end ,p_g24_ota_sm_tx_config_end 
+048b c0070498 beq g24_ota_sm_tx_data ,p_g24_ota_sm_tx_data 
+048c c008848e beq g24_ota_sm_tx_reset ,p_g24_ota_sm_tx_reset 
+048d 20600000 rtn 
+
+p_g24_ota_sm_tx_reset:
+048e 704bf712 jam g24_ota_sm_tx_reset_ok ,mem_g24_ota_sm 
+048f 20600000 rtn 
+
+p_g24_ota_sm_tx_version:
+0490 704bf703 jam g24_ota_sm_tx_version_ok ,mem_g24_ota_sm 
+0491 20600000 rtn 
+
+p_g24_ota_sm_tx_info:
+0492 704bf706 jam g24_ota_sm_tx_info_ok ,mem_g24_ota_sm 
+0493 20600000 rtn 
+
+p_g24_ota_sm_tx_config:
+0494 704bf709 jam g24_ota_sm_tx_config_ok ,mem_g24_ota_sm 
+0495 20600000 rtn 
+
+p_g24_ota_sm_tx_config_end:
+0496 704bf70c jam g24_ota_sm_tx_set_config_end_ok ,mem_g24_ota_sm 
+0497 20600000 rtn 
+
+p_g24_ota_sm_tx_data:
+0498 704bf70f jam g24_ota_sm_tx_data_ok ,mem_g24_ota_sm 
+0499 20600000 rtn 
+
+p_g24_mouse_parse_rx:
+049a 6fe0c82a fetch 1 ,mem_24g_rxdata_length 
+049b 203a0484 branch p_g24_parse_rx_ota_sm ,blank 
+049c 1fe22400 copy pdata ,regb 
+049d 70482a00 jam 0 ,mem_24g_rxdata_length 
+049e 6fe0c80a fetch 1 ,mem_24g_rxpayload 
+049f c05784ac beq datatype_ota ,p_g24_rx_ota 
+04a0 20600000 rtn 
+
+p_g24_ota_mode_enable:
+04a1 704bf601 jam 1 ,mem_g24_ota_mode 
+04a2 70409900 jam 0 ,mem_lpm_mode 
+04a3 2020058c branch p_ota_init 
+
+p_g24_ota_dispatch:
+04a4 20600000 rtn 
+
+p_g24_ota_transmit:
+04a5 7047c6af jam datatype_ota ,mem_24g_txbuf 
+04a6 20402291 call g24_transmit_prep 
+04a7 2040265b call g24_transmit_receive_ack 
+04a8 246c0000 nrtn sync 
+04a9 24778000 nrtn user3 
+04aa 20402597 call g24_txbuf_clear 
+04ab 20202672 branch g24_ackpayload_parse 
+
+p_g24_rx_ota:
+04ac 6fe0c80a fetch 1 ,mem_24g_rxpayload 
+04ad c1d78000 rtnne datatype_ota 
+04ae efe08006 ifetch 1 ,contr 
+04af e8408006 ifetcht 1 ,contr 
+04b0 18467c02 sub temp ,g24_ota_target_mouse ,null 
+04b1 2422937a nbranch assert ,zero 
+04b2 c00084bb beq g24_ota_cmd_version ,p_g24_mouse_ota_process_version 
+04b3 c00104be beq g24_ota_cmd_info ,p_g24_mouse_ota_process_info 
+04b4 c00184c0 beq g24_ota_cmd_config ,p_g24_mouse_ota_process_config 
+04b5 c00204c2 beq g24_ota_cmd_set_config_end ,p_g24_mouse_ota_process_set_config_end 
+04b6 c002851a beq g24_ota_cmd_data ,p_g24_mouse_ota_process_data 
+04b7 c0030540 beq g24_ota_cmd_reset ,p_g24_mouse_ota_process_reset 
+04b8 c07f84ba beq g24_ota_cmd_ping ,p_g24_mouse_ota_process_ping 
+04b9 2020137a branch assert 
+
+p_g24_mouse_ota_process_ping:
+04ba 20600000 rtn 
+
+p_g24_mouse_ota_process_version:
+04bb 204004a1 call p_g24_ota_mode_enable 
+04bc 704bf701 jam g24_ota_sm_rx_version ,mem_g24_ota_sm 
+04bd 20600000 rtn 
+
+p_g24_mouse_ota_process_info:
+04be 704bf704 jam g24_ota_sm_rx_info ,mem_g24_ota_sm 
+04bf 20600000 rtn 
+
+p_g24_mouse_ota_process_config:
+04c0 704bf707 jam g24_ota_sm_rx_config ,mem_g24_ota_sm 
+04c1 20600000 rtn 
+
+p_g24_mouse_ota_process_set_config_end:
+04c2 704bf70a jam g24_ota_sm_rx_set_config_end ,mem_g24_ota_sm 
+04c3 efe10006 ifetch 2 ,contr 
+04c4 e8410006 ifetcht 2 ,contr 
+04c5 6a214c18 fetchr rega ,2 ,mem_g24_ota_rx_alllen 
+04c6 9a267c00 isub rega ,null 
+04c7 24228538 nbranch p_g24_mouse_ota_process_fail ,zero 
+04c8 6fe14c1a fetch 2 ,mem_g24_ota_rx_sum 
+04c9 98467c00 isub temp ,null 
+04ca 24228538 nbranch p_g24_mouse_ota_process_fail ,zero 
+04cb 204004ce call p_g24_check_ota_data_all 
+04cc 24340538 nbranch p_g24_mouse_ota_process_fail ,user 
+04cd 20200536 branch p_g24_mouse_ota_process_ok 
+
+p_g24_check_ota_data_all:
+04ce 204004d9 call p_g24_check_ota_data 
+04cf 24740000 nrtn user 
+04d0 6fe14c1a fetch 2 ,mem_g24_ota_rx_sum 
+04d1 9e067c00 isub alarm ,null 
+04d2 2422fe56 nbranch disable_user ,zero 
+04d3 684909e8 fetcht 2 ,mem_temp_block6 
+04d4 6fe14c18 fetch 2 ,mem_g24_ota_rx_alllen 
+04d5 1fe0fffb increase -5 ,pdata 
+04d6 98467c00 isub temp ,null 
+04d7 2422fe56 nbranch disable_user ,zero 
+04d8 20207e54 branch enable_user 
+
+p_g24_check_ota_data:
+04d9 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+04da 1ff0fe00 byteswap pdata ,pdata 
+04db 67e102e4 store 2 ,mem_addr_mi 
+04dc d8400003 arg 3 ,temp 
+04dd da2009d2 arg mem_temp_block5 ,rega 
+04de 20405de2 call iicd_read_eep 
+04df 6fe089d2 fetch 1 ,mem_temp_block5 
+04e0 c0ad7e56 bne g24_ota_data_header ,disable_user 
+04e1 e8410006 ifetcht 2 ,contr 
+04e2 6049095c storet 2 ,mem_pdatatemp 
+04e3 604909e8 storet 2 ,mem_temp_block6 
+04e4 6fe089d2 fetch 1 ,mem_temp_block5 
+04e5 dd60ffff arg 0xffff ,rege 
+04e6 d8400000 arg 0 ,temp 
+04e7 d8c009d2 arg mem_temp_block5 ,contr 
+04e8 df200003 arg 3 ,loopcnt 
+04e9 20400550 call p_g24_mouse_data_sum 
+04ea 18426000 copy temp ,alarm 
+04eb 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+04ec 1fe0ee03 add pdata ,3 ,regf 
+04ed 204004fd call p_g24_check_ota_data_loop 
+04ee 1ef0fe00 byteswap regf ,pdata 
+04ef 67e102e4 store 2 ,mem_addr_mi 
+04f0 d8400002 arg 2 ,temp 
+04f1 da2009d2 arg mem_temp_block5 ,rega 
+04f2 20405de2 call iicd_read_eep 
+04f3 6fe109d2 fetch 2 ,mem_temp_block5 
+04f4 9d667c00 isub rege ,null 
+04f5 2422fe56 nbranch disable_user ,zero 
+04f6 6fe089d2 fetch 1 ,mem_temp_block5 
+04f7 9e00e000 iadd alarm ,alarm 
+04f8 efe08006 ifetch 1 ,contr 
+04f9 9e00e000 iadd alarm ,alarm 
+04fa 5800ffff setarg 0xffff 
+04fb 9e016000 iand alarm ,alarm 
+04fc 20207e54 branch enable_user 
+
+p_g24_check_ota_data_loop:
+04fd 6fe1095c fetch 2 ,mem_pdatatemp 
+04fe 207a0000 rtn blank 
+04ff 1fe20400 copy pdata ,temp 
+0500 1fe67c10 sub pdata ,16 ,null 
+0501 20210518 branch p_g24_check_ota_data_loopend ,positive 
+0502 1fe0fff0 increase -16 ,pdata 
+0503 d8400010 arg 0x10 ,temp 
+
+p_g24_check_ota_data_loop2:
+0504 67e1095c store 2 ,mem_pdatatemp 
+0505 18425e00 copy temp ,regext 
+0506 1ee27e00 copy regf ,pdata 
+0507 1ff0fe00 byteswap pdata ,pdata 
+0508 67e102e4 store 2 ,mem_addr_mi 
+0509 da2009d2 arg mem_temp_block5 ,rega 
+050a 20405de2 call iicd_read_eep 
+050b 1ee27e00 copy regf ,pdata 
+050c 9de0ee00 iadd regext ,regf 
+050d 1de27200 copy regext ,loopcnt 
+050e 1d627e00 copy rege ,pdata 
+050f d8c009d2 arg mem_temp_block5 ,contr 
+0510 efe00006 icrc contr 
+0511 1fe25600 copy pdata ,rege 
+0512 1de27200 copy regext ,loopcnt 
+0513 d8c009d2 arg mem_temp_block5 ,contr 
+0514 1e020400 copy alarm ,temp 
+0515 20400550 call p_g24_mouse_data_sum 
+0516 18426000 copy temp ,alarm 
+0517 202004fd branch p_g24_check_ota_data_loop 
+
+p_g24_check_ota_data_loopend:
+0518 58000000 setarg 0 
+0519 20200504 branch p_g24_check_ota_data_loop2 
+
+p_g24_mouse_ota_process_data:
+051a 704bf70d jam g24_ota_sm_rx_data ,mem_g24_ota_sm 
+051b efe08006 ifetch 1 ,contr 
+051c 18c22200 copy contr ,rega 
+051d 6848cc1c fetcht 1 ,mem_g24_ota_rx_data_count 
+051e 98467c00 isub temp ,null 
+051f 20228536 branch p_g24_mouse_ota_process_ok ,zero 
+0520 20400547 call p_g24_cmd_ota_data_check_count 
+0521 24340538 nbranch p_g24_mouse_ota_process_fail ,user 
+0522 1a467c04 sub regb ,4 ,null 
+0523 20210538 branch p_g24_mouse_ota_process_fail ,positive 
+0524 1a40a5fc increase -4 ,regb 
+0525 62410959 storer regb ,2 ,mem_hold_contw 
+0526 62210957 storer rega ,2 ,mem_hold_contr 
+0527 20405dd3 call iicd_eeprom_write_enable 
+0528 2040053a call p_dongle_usb_cmd_ota_write_data 
+0529 20405dda call iicd_eeprom_write_disable 
+052a 6a410959 fetchr regb ,2 ,mem_hold_contw 
+052b 6a210957 fetchr rega ,2 ,mem_hold_contr 
+052c 6fe14c18 fetch 2 ,mem_g24_ota_rx_alllen 
+052d 9a40fe00 iadd regb ,pdata 
+052e 67e14c18 store 2 ,mem_g24_ota_rx_alllen 
+052f 1a427200 copy regb ,loopcnt 
+0530 d8400000 arg 0 ,temp 
+0531 1a220c00 copy rega ,contr 
+0532 20400550 call p_g24_mouse_data_sum 
+0533 6fe14c1a fetch 2 ,mem_g24_ota_rx_sum 
+0534 9840fe00 iadd temp ,pdata 
+0535 67e14c1a store 2 ,mem_g24_ota_rx_sum 
+
+p_g24_mouse_ota_process_ok:
+0536 704bf500 jam g24_ota_status_success ,mem_g24_ota_rtn_state 
+0537 20600000 rtn 
+
+p_g24_mouse_ota_process_fail:
+0538 704bf501 jam g24_ota_status_fail ,mem_g24_ota_rtn_state 
+0539 20600000 rtn 
+
+p_dongle_usb_cmd_ota_write_data:
+053a 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+053b 207a0000 rtn blank 
+053c 68494c18 fetcht 2 ,mem_g24_ota_rx_alllen 
+053d 9840fe00 iadd temp ,pdata 
+053e 1a420400 copy regb ,temp 
+053f 20205e04 branch iicd_write_ota_data 
+
+p_g24_mouse_ota_process_reset:
+0540 6fe0cbf7 fetch 1 ,mem_g24_ota_sm 
+0541 c1080000 rtneq g24_ota_sm_rx_reset 
+0542 c1088000 rtneq g24_ota_sm_tx_reset 
+0543 c1090000 rtneq g24_ota_sm_tx_reset_ok 
+0544 704c1d05 jam 5 ,mem_g24_ota_reset_timer 
+0545 704bf710 jam g24_ota_sm_rx_reset ,mem_g24_ota_sm 
+0546 20600000 rtn 
+
+p_g24_cmd_ota_data_check_count:
+0547 6848cc1c fetcht 1 ,mem_g24_ota_rx_data_count 
+0548 67e0cc1c store 1 ,mem_g24_ota_rx_data_count 
+0549 c000054d beq 0 ,p_g24_cmd_ota_data_check_count_0 
+054a 98467e00 isub temp ,pdata 
+054b c000fe54 beq 1 ,enable_user 
+054c 20207e56 branch disable_user 
+
+p_g24_cmd_ota_data_check_count_0:
+054d 18467cff sub temp ,0xff ,null 
+054e 2022fe54 branch enable_user ,zero 
+054f 20207e56 branch disable_user 
+
+p_g24_mouse_data_sum:
+0550 efe08006 ifetch 1 ,contr 
+0551 98408400 iadd temp ,temp 
+0552 c2000550 loop p_g24_mouse_data_sum 
+0553 20600000 rtn 
+
+p_g24_mouse_ota_crc:
+0554 5800ffff setarg 0xffff 
+0555 efe00006 icrc contr 
+0556 20600000 rtn 
+
+p_g24_mouse_ota_check_crc:
+0557 6f20c82a fetchr loopcnt ,1 ,mem_24g_rxdata_length 
+0558 1f267c02 sub loopcnt ,2 ,null 
+0559 20217e56 branch disable_user ,positive 
+055a dfe0480a arg mem_24g_rxpayload ,pdata 
+055b 9f208c00 iadd loopcnt ,contr 
+055c 18c08dfe increase -2 ,contr 
+055d e8410006 ifetcht 2 ,contr 
+055e d8c0480a arg mem_24g_rxpayload ,contr 
+055f 20400554 call p_g24_mouse_ota_crc 
+0560 98467c00 isub temp ,null 
+0561 2022fe54 branch enable_user ,zero 
+0562 20207e56 branch disable_user 
+
+p_g24_mouse_ota_check_data:
+0563 efe08006 ifetch 1 ,contr 
+0564 c0ad057c bne 0x5a ,p_g24_mouse_ota_load_fail 
+0565 1a220200 copy rega ,1 ,contr 
+0566 68490006 fetcht 2 ,contr 
+
+p_g24_mouse_ota_check_data_loop:
+0567 18467c03 sub temp ,3 ,null 
+0568 2021057c branch p_g24_mouse_ota_load_fail ,positive 
+0569 18c08c02 increase 2 ,contr 
+056a ef208006 ifetchr loopcnt ,1 ,contr 
+056b 1f267c00 sub loopcnt ,0 ,null 
+056c 2422857c nbranch p_g24_mouse_ota_load_fail ,zero 
+056d 1f227e00 copy loopcnt ,pdata 
+056e 98c08c00 iadd contr ,contr 
+056f 18427e00 copy temp ,pdata 
+0570 1f20f203 increase 3 ,loopcnt 
+0571 9f260400 isub loopcnt ,temp 
+0572 24228567 nbranch p_g24_mouse_ota_check_data_loop ,zero 
+0573 e8410006 ifetcht 2 ,contr 
+0574 1a208c01 add rega ,1 ,contr 
+0575 efe10006 ifetch 2 ,contr 
+0576 1fe0f202 add pdata ,2 ,loopcnt 
+0577 1a208c01 add rega ,1 ,contr 
+0578 20400554 call p_g24_mouse_ota_crc 
+0579 98467c00 isub temp ,null 
+057a 2422857c nbranch p_g24_mouse_ota_load_fail ,zero 
+
+p_g24_mouse_ota_load_success:
+057b 20207e54 branch enable_user 
+
+p_g24_mouse_ota_load_fail:
+057c 20207e56 branch disable_user 
+
+p_g24_mouse_ota_get_otaaddr:
+057d 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+057e 1fe20c00 copy pdata ,contr 
+057f 20400563 call p_g24_mouse_ota_check_data 
+0580 24340588 nbranch p_g24_mouse_ota_config_end ,user 
+0581 6a214bf3 fetchr rega ,2 ,mem_g24_ota_config_addr 
+0582 1a208c01 add rega ,1 ,contr 
+0583 efe10006 ifetch 2 ,contr 
+0584 1fe0fe05 increase 5 ,pdata 
+0585 9a20fe00 iadd rega ,pdata 
+0586 67e14bf3 store 2 ,mem_g24_ota_config_addr 
+0587 2020057d branch p_g24_mouse_ota_get_otaaddr 
+
+p_g24_mouse_ota_config_end:
+0588 6fe14bf1 fetch 2 ,mem_g24_ota_storage_size 
+0589 68494bf3 fetcht 2 ,mem_g24_ota_config_addr 
+058a 98467e00 isub temp ,pdata 
+058b 20600000 rtn 
+
+p_ota_init:
+058c 58000000 setarg 0 
+058d 67e14c18 store 2 ,mem_g24_ota_rx_alllen 
+058e 67e14c1a store 2 ,mem_g24_ota_rx_sum 
+058f 67e0cc1c store 1 ,mem_g24_ota_rx_data_count 
+0590 67e0cbf7 store 1 ,mem_g24_ota_sm 
+0591 20600000 rtn 
+
+p_mouse_24g_package_ota:
+0592 20407e56 call disable_user 
+0593 6fe0cbf7 fetch 1 ,mem_g24_ota_sm 
+0594 c000859b beq g24_ota_sm_rx_version ,p_mouse_24g_package_ota_version 
+0595 c00205a5 beq g24_ota_sm_rx_info ,p_mouse_24g_package_ota_info 
+0596 c00385c4 beq g24_ota_sm_rx_config ,p_mouse_24g_package_ota_config 
+0597 c00505ea beq g24_ota_sm_rx_set_config_end ,p_mouse_24g_package_ota_set_config_end 
+0598 c00685df beq g24_ota_sm_rx_data ,p_mouse_24g_package_ota_data 
+0599 c00805c8 beq g24_ota_sm_rx_reset ,p_mouse_24g_package_ota_reset 
+059a 202005f3 branch p_mouse_24g_package_ping 
+
+p_mouse_24g_package_ota_version:
+059b 7047c6af jam datatype_ota ,mem_24g_txbuf 
+059c 7047c701 jam g24_ota_cmd_version ,mem_24g_txbuf + 1 
+059d 7047c800 jam g24_ota_status_success ,mem_24g_txbuf + 2 
+059e 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+059f 58000001 setarg g24_ota_version 
+05a0 67e147ca store 2 ,mem_24g_txbuf + 4 
+05a1 70483601 jam type_ms ,mem_24g_data_type 
+05a2 70483506 jam 6 ,mem_24g_datalen 
+05a3 704bf702 jam g24_ota_sm_tx_version ,mem_g24_ota_sm 
+05a4 20600000 rtn 
+
+p_mouse_24g_package_ota_info:
+05a5 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05a6 7047c702 jam g24_ota_cmd_info ,mem_24g_txbuf + 1 
+05a7 7047c800 jam g24_ota_status_success ,mem_24g_txbuf + 2 
+05a8 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05a9 6ff10000 fetch 2 ,core_chipid 
+05aa 67e147ca store 2 ,mem_24g_txbuf + 4 
+05ab 58006661 setarg 0x6661 
+05ac e7e10005 istore 2 ,contw 
+05ad 58000001 setarg 1 
+05ae e7e30005 istore 6 ,contw 
+05af 58000000 setarg 0 
+05b0 e7e10005 istore 2 ,contw 
+05b1 e7e10005 istore 2 ,contw 
+05b2 204005cc call p_mouse_24g_storage_type 
+05b3 e7e08005 istore 1 ,contw 
+05b4 58000000 setarg 0 
+05b5 e7e08005 istore 1 ,contw 
+05b6 68494bf3 fetcht 2 ,mem_g24_ota_config_addr 
+05b7 e0410005 istoret 2 ,contw 
+05b8 6fe14bf1 fetch 2 ,mem_g24_ota_storage_size 
+05b9 1fed7e00 lshift8 pdata ,pdata 
+05ba 1fe37e00 rshift pdata ,pdata 
+05bb 98467e00 isub temp ,pdata 
+05bc 242105c2 nbranch p_dongle_usb_cmd_ota_info_dongle_empty ,positive 
+
+p_dongle_usb_cmd_ota_info_dongle_common:
+05bd e7e10005 istore 2 ,contw 
+05be 70483518 jam 24 ,mem_24g_datalen 
+05bf 70483601 jam type_ms ,mem_24g_data_type 
+05c0 704bf705 jam g24_ota_sm_tx_info ,mem_g24_ota_sm 
+05c1 20600000 rtn 
+
+p_dongle_usb_cmd_ota_info_dongle_empty:
+05c2 58000000 setarg 0 
+05c3 202005bd branch p_dongle_usb_cmd_ota_info_dongle_common 
+
+p_mouse_24g_package_ota_config:
+05c4 704bf708 jam g24_ota_sm_tx_config ,mem_g24_ota_sm 
+05c5 7047c703 jam g24_ota_cmd_config ,mem_24g_txbuf + 1 
+05c6 70483504 jam 4 ,mem_24g_datalen 
+05c7 202005d5 branch p_mouse_24g_package_ota_common_ok 
+
+p_mouse_24g_package_ota_reset:
+05c8 704bf711 jam g24_ota_sm_tx_reset ,mem_g24_ota_sm 
+05c9 7047c706 jam g24_ota_cmd_reset ,mem_24g_txbuf + 1 
+05ca 70483504 jam 4 ,mem_24g_datalen 
+05cb 202005d5 branch p_mouse_24g_package_ota_common_ok 
+
+p_mouse_24g_storage_type:
+05cc 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05cd c28985d1 bbit1 mouse_enable_eeprom ,p_mouse_24g_storage_type_eeprom 
+05ce c28905d3 bbit1 mouse_enable_flash ,p_mouse_24g_storage_type_flash 
+05cf 58000000 setarg g24_ota_storage_error 
+05d0 20600000 rtn 
+
+p_mouse_24g_storage_type_eeprom:
+05d1 58000002 setarg g24_ota_storage_eeprom 
+05d2 20600000 rtn 
+
+p_mouse_24g_storage_type_flash:
+05d3 58000004 setarg g24_ota_storage_flash 
+05d4 20600000 rtn 
+
+p_mouse_24g_package_ota_common_ok:
+05d5 70483601 jam type_ms ,mem_24g_data_type 
+05d6 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05d7 7047c800 jam g24_ota_status_success ,mem_24g_txbuf + 2 
+05d8 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05d9 20600000 rtn 
+
+p_mouse_24g_package_ota_common_fail:
+05da 7047c801 jam g24_ota_status_fail ,mem_24g_txbuf + 2 
+05db 70483601 jam type_ms ,mem_24g_data_type 
+05dc 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05dd 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05de 20600000 rtn 
+
+p_mouse_24g_package_ota_data:
+05df 704bf70f jam g24_ota_sm_tx_data_ok ,mem_g24_ota_sm 
+05e0 7047c705 jam g24_ota_cmd_data ,mem_24g_txbuf + 1 
+05e1 6fe0cc1c fetch 1 ,mem_g24_ota_rx_data_count 
+05e2 67e0c7ca store 1 ,mem_24g_txbuf + 4 
+05e3 70483505 jam 5 ,mem_24g_datalen 
+05e4 70483601 jam type_ms ,mem_24g_data_type 
+05e5 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05e6 6fe0cbf5 fetch 1 ,mem_g24_ota_rtn_state 
+05e7 67e0c7c8 store 1 ,mem_24g_txbuf + 2 
+05e8 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05e9 20600000 rtn 
+
+p_mouse_24g_package_ota_set_config_end:
+05ea 704bf70c jam g24_ota_sm_tx_set_config_end_ok ,mem_g24_ota_sm 
+05eb 7047c704 jam g24_ota_cmd_set_config_end ,mem_24g_txbuf + 1 
+05ec 70483504 jam 4 ,mem_24g_datalen 
+05ed 70483601 jam type_ms ,mem_24g_data_type 
+05ee 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05ef 6fe0cbf5 fetch 1 ,mem_g24_ota_rtn_state 
+05f0 67e0c7c8 store 1 ,mem_24g_txbuf + 2 
+05f1 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05f2 20600000 rtn 
+
+p_mouse_24g_package_ping:
+05f3 7047c6af jam datatype_ota ,mem_24g_txbuf 
+05f4 7047c7ff jam g24_ota_cmd_ping ,mem_24g_txbuf + 1 
+05f5 7047c800 jam g24_ota_status_success ,mem_24g_txbuf + 2 
+05f6 7047c902 jam g24_ota_target_mouse ,mem_24g_txbuf + 3 
+05f7 70483601 jam type_ms ,mem_24g_data_type 
+05f8 70483504 jam 4 ,mem_24g_datalen 
+05f9 20600000 rtn 
+
+p_mouse_24g_package_data_ota:
+05fa 1fe22200 copy pdata ,rega 
+05fb 704bf800 jam 0 ,mem_g24_ota_prepare_send_len 
+05fc 70483601 jam type_ms ,mem_24g_data_type 
+05fd da404bf9 arg mem_g24_ota_txbuf ,regb 
+05fe 20600000 rtn 
 
Index: output/romcode.rom
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/romcode.rom	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/output/romcode.rom	(working copy)
@@ -31230,1029 +31230,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
-0000b391
+0000d9a1
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/program/patch.prog	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/program/patch.prog	(working copy)
@@ -1,30 +1,43 @@
 
-define BATTERY_SERVICE_CANCEL
 
 	bbit1 8,pf_patch_ext
 	beq patch00_0,p_soft_reset
+	beq patch00_3,p_main_loop
+	beq patch10_3,p_set_sync_on
 	beq patch11_3,p_initialize_radio_cont	
 	beq patch13_7,p_init_param
 	beq patch15_6,p_app_init
-	beq patch19_0,p_mouse_before_hibernate
+	beq patch16_0,p_app_evt_100ms_loop
+	beq patch18_3,p_mouse_start_work
+	beq patch18_7,p_mouse_app_enter_hibernate
 	beq patch19_1,p_mouse_setgpio_hibernate
 	beq patch19_2,p_mouse_lpm_before_common
+	beq patch19_4,p_mouse_adc_read_start
 	beq patch19_6,p_mouse_motion
+	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 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 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
-	
-ifdef BATTERY_SERVICE_CANCEL
 	beq patch38_0,p_le_parse_l2cap
-endif	
+	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
 	beq patch3d_4,p_g24_lpm_wait
 	branch loop
 
@@ -32,105 +45,167 @@
 p_soft_reset:
 	clear_stack
 	call app_param_init
+	ncall p_led_num_check,wake
 	call mouse_xtal_init		// 16M / 24M
 	branch soft_reset+3
 
+p_mouse_led_on:
+	copy temp,pdata
+	rtneq GPIO_DISABLE
+	copy pdata,temp
+	branch mouse_led_on+1
+
+p_mouse_led_off:
+	copy temp,pdata
+	rtneq GPIO_DISABLE
+	copy pdata,temp
+	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_app_init:
-p_mouse_init:
-	call enable_authrom
-	call p_mouse_wheel_set_wakeup
-	call p_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
-p_mouse_init_wireless:	
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BTN_DOWN,mouse_start_discovery
-	call p_mouse_check_select_device_by_switch
-	fetch 1,mem_device_flag
-	beq MODE_BT_DEVICE1,p_mouse_check_bt_reconn_target
-	branch mouse_start_work
-
-p_mouse_wheel_set_wakeup:
-	fetch 1,mem_sensor_shutdown_flag
+/////////////////////////////////// adc//////////////////////////////////////
+p_main_loop:
+ifdef SIMPLE_PAIRING
+	call sp_calc_sequence
+endif
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256
+endif
+ifdef SIMPLE_PAIRING
+ifdef SECURE_CONNECTION
+	call sp_calc_sequence_256_check
+endif
+endif
+	call le_advertising_dispatch+1
+	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_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
+	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
+	rtn blank
+p_lpm_dispatch_next:
+	fetch 1,mem_sc_calc
+	nrtn blank	
+	branch lpm_dispatch_next+3
+
+p_set_sync_on:
+	jam 0x5,modem_en
+	nop 2
+	jam 0x0,modem_en					/* if called from tx or rx */
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,set_sync_on_24m
+p_set_sync_on_16m:
+	jam 0x29,core_syn_afc_cfg1
+	branch set_sync_on_16m	
+
+
+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_mouse_check_bt_reconn_target:
-	call p_mouse_mode_bt_device1_multi_led_on
-	fetch 6,mem_device1_addr
-	fetcht 6,mem_mouse_factory_addr
-	isub temp,null
-	branch p_mouse_start_discovery_init,zero
-	branch mouse_check_bt_reconn_target
+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_adc_init_data:
+	arg mem_temp_block2,rega
+	arg 12,temp
+	setarg EFUSE_OFFSET_ADC_PARAM
+	call efuse_read_data
+	branch adc_init_data+6
+
+p_enable_adc:	
+	fetchr regb,1,core_rf_ldo_cfg6
+	jam 0x3d,core_rf_ldo_cfg6
+	jam 0xaa,core_rf_ldo_cfg5
+	jam 0x0c,core_rf_ldo_en0
+	fetch 1,core_clkpll_cfg6
+	set1 7,pdata
+	store 1,core_clkpll_cfg6
+	jam 0x04,core_rf_ldo_en1
+	nop 60
+	jam 0,core_syn_en
+	jam 6,core_rx_en0
+	call read_adc_mode
+	store 1,core_gpadc_ctrl
+//	jam 0x07,core_gpadc_ctrl
+	jam 0x03,core_sum_ctrl
+	nop 60
+	fetch 1,core_sum_en
+	set1 7,pdata
+	store 1,core_sum_en
+	nop 1000
+	fetch 2,core_adc_sum
+	store 2,mem_adc_current_value
+	fetch 1,core_sum_en
+	set0 7,pdata
+	store 1,core_sum_en
+	jam 0,core_gpadc_ctrl
+	
+	storer regb,1,core_rf_ldo_cfg6
+	rtn
 
-p_mouse_start_discovery_init:
-	jam MODE_BT_DEVICE1,mem_device_flag
-	branch mouse_start_discovery
 
-p_mouse_setting_config:
-	rtn wake
-	call g24_transmit_init
-	call g24_chmap_param_init
-	call mouse_gpio_init
-	call mouse_param_init
+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
+	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
+
+/////////////////////////////////// adc//////////////////////////////////////
+
 
-	fetcht 1,mem_mouse_multi_led_gpio
-	call gpio_config_output
-	
-	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,p_mouse_load_eeprom_info_check
-	bbit1 MOUSE_ENABLE_FLASH,mouse_load_flash_info_check
-	rtn
-
-p_mouse_load_eeprom_info_check:
-	call iicd_wp_gpio_output_low
-	call iicd_init_pin_scl_sda
-	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 p_mouse_app_initflag_check
-	
-p_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
-	
 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
@@ -140,87 +215,479 @@
 	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_init_param:
 	jam 0,mem_lmo_tid2			// classic can't reconnect
 	branch init_param_next+1
 
+/////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
+p_app_init:
+p_mouse_init:
+	ncall p_g24_load_ota_config_poweron,wake
+	ncall p_mouse_le_name_load,wake
+	call enable_authrom
+	call p_mouse_setting_config
+	call p_mouse_init_sunt
+	rtn wake
+	call mouse_dpi_config
+	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_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
+
+	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
+	call g24_transmit_init
+	call g24_chmap_param_init
+	call mouse_gpio_init
+	call mouse_param_init
+	call p_mouse_multi_led_init_parm
+	fetch 1,mem_mouse_ice_sdio_for_sensor_angle
+	branch p_mouse_setting_config_next,blank
+	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
+
+p_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
+	fetch 1,mem_select_sensor_angle_gpio
+	arg gpcfg_output_low,temp
+ 	call gpio_config_function_int
+ 	fetch 1,mem_mouse_reuse_2ice_gpio
+	arg gpcfg_output_low,temp
+ 	call gpio_config_function_int
+ 	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_mouse_sensor_sdio_gpio
+	call gpio_get_bit
+	ncall mouse_sensor_switch_angle,true
+	branch mouse_gpio_config_input_pd	
+
+p_ice_gpio_set_float:
+ 	fetcht 1,mem_select_sensor_angle_gpio
+	call gpio_set_high_impedance
+	fetcht 1,mem_mouse_reuse_2ice_gpio
+	branch gpio_set_high_impedance
+
+p_g24_short_sleep_set_8ms:
+	setarg G24_8MS_INTERVAL_PARAM	//63500
+	store 3,mem_24g_short_sleep_set
+	rtn
+p_g24_short_sleep_set_4ms:
+	setarg G24_4MS_INTERVAL_PARAM	//12210
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+p_mouse_cb_fuction:
+	setarg p_mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg p_mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	branch mouse_cb_fuction+4
+
+p_mouse_24g_package_data:		// 250Hz
+	rtnmark0 mark_24g
+	fetch 1,mem_g24_ota_mode
+	nbranch p_mouse_24g_package_ota,blank
+	call mouse_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+p_mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,p_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	
+p_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 2,mem_mouse_z
+	rtn blank
+	branch g24_transmit_by_interrupt_enable
+
+p_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
+p_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 p_mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch p_mouse_24g_search_dongle_loop_retry,sync
+	nbranch p_mouse_24g_search_dongle_loop_retry,user3
+	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_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_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		
+	store 2,mem_mouse_no_data_timer
+	branch p_mouse_sensor_powerdown
+
+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
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch p_g24_short_sleep,blank
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+p_g24_short_sleep:
+	call g24_lpm_wait
+	nrtn user
+	call clear_wake
+	fetch 3,mem_24g_short_sleep_set
+	branch g24_long_sleep2
+
+p_g24_transmit_process:
+	jam 0,mem_24g_retry
+p_g24_transmit_loop:
+	fetchr timeup,2,mem_param_rx_setup
+	until clkn_rt,meet
+	call g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch p_g24_retransmit,sync
+	nbranch p_g24_retransmit,user3
+	call g24_ackpayload_parse
+	call p_g24_mouse_parse_rx
+	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 p_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:	
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt+1
+	bbit1 1,g24_tx_attempt_fail
+	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
+		
+/////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
+	
+p_mouse_app_enter_hibernate:	// 1.3mA hibernate after sensroe reset
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate+3
+	call p_mouse_sensor_reset
+	call p_mouse_sensor_powerdown
+	branch mouse_app_enter_hibernate+3
 
 p_mouse_setgpio_hibernate:
 	call mouse_set_sdio_high
 	call clear_wake
+	call p_mouse_multi_logo_led_off
 	call mouse_before_hibernate_wheel_gpio_set
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,p_mouse_setgpio_hibernate_skip_public_gpio
 	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
-p_mouse_setgpio_hibernate_skip_public_gpio:
-	fetcht 1,mem_mouse_reuse_2ice_gpio
-	call mouse_gpio_config_input_pu
 	fetch 1,mem_mouse_sensor_sdio_gpio
 	arg gpcfg_output_high,temp
 	call gpio_config_function_int
-
-	fetch 1,mem_device_flag
-	call p_mouse_select_device_button_gpio_set_suspend,blank
-	
-	branch mouse_setgpio_hibernate+3
+	arg 3,temp
+	call mouse_gpio_config_input_pu
+	call p_mouse_lpm_before_common
+	call gpio_pd_idle
+	arg 19,temp
+	call mouse_gpio_config_input_pu
+	call p_mouse_select_device_button_gpio_set_suspend
+	call p_mouse_gpio_set_high_impedance
+	call p_mouse_adc_gpio_set_before_hibernate
+	branch p_mouse_wheel_gpio_set_before_hibernate
 
 p_mouse_select_device_button_gpio_set_suspend:
+	fetch 1,mem_device_switch_gpio
+	rtneq GPIO_DISABLE
 	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_adc_gpio_set_before_hibernate:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag_init
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel_gpio	
+	arg gpcfg_no_ie,temp
+ 	branch gpio_config_function_int
+
+p_mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+p_mouse_wheel_clr_wakeup:
+	fetcht 1,mem_whee_a_data_gpio
+	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
 
 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
+	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
+	call mouse_lpm_before_common_next
+	fetcht 1,mem_mbutton_gpio	//clear ice wakeup
+	branch gpio_clr_wake
 
- 	branch mouse_lpm_before_common_next
+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
 
+p_g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call p_g24_send_abort_packet,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+p_g24_long_sleep:
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_sleep2
+
+p_g24_send_abort_packet:
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	setarg 0
+	store 7,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+8
+	jam 12,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_24g_data_type
+	call g24_transmit_prep
+	branch p_g24_transmit_start
+	
 p_mouse_priority_bb_event:
 	copy regc,pdata
-	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
 	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
-	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
-	beq BT_EVT_BB_DISCONNECTED,p_mouse_bb_disconnected
-	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
 	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
-	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_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
 	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
 	branch mouse_priority_bb_event+2
 
 p_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
-	fetch 1,mem_mouse_le_reconnect_flag
-	nbranch mouse_le_bb_event_connected_next,blank
-	jam 0x14,mem_mouse_send_secutiry_request_timer
-	branch mouse_le_bb_event_connected_next
+	call p_mouse_multi_on_enable
+	branch mouse_le_bb_event_connected
 
 p_mouse_bb_event_connected:
-	jam 0,mem_mouse_long_mult_flag
-	call mouse_init_sensor_reset
-	branch mouse_stop_discovery
-
+	call p_mouse_multi_on_enable
+	call mouse_no_data_timer_init
+	branch mouse_bb_event_connected
+	
 p_mouse_le_bb_disconnected:
-	call mouse_sensor_powerdown
-	branch mouse_le_bb_disconnected
+	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_disconnected:
-	call mouse_sensor_powerdown
-	branch mouse_bb_disconnected
-	
 p_mouse_le_ll_start_encryt:
 	fetch 1,mem_mouse_le_reconnect_flag
 	beq 1,p_mouse_le_ll_reconn_start_encryt
@@ -231,124 +698,227 @@
 	jam 5,mem_le_start_encrypt_timer
 	branch mouse_le_ll_enable_start_enc_flag
 
-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
+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_start_discovery:
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BLE_ADV,pdata
-	call mouse_stop_le_adv,true		//reconnect adv
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BT_RECONNECT,pdata
-	call mouse_cancel_reconnect,true
 
-	call mouse_bluetooth_fast_conn_disable
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_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
-p_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 p_mouse_discovery_multi_led_blink
-
-p_mouse_stop_discovery:
-	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 p_mouse_discovey_led_blink_off
+p_mouse_24g_pairing_complete:
+	call p_mouse_multi_on_enable
+	call mouse_no_data_timer_init
+	branch mouse_24g_pairing_complete
 
 p_mouse_24g_attempt_success:
+	call p_mouse_multi_on_enable
 	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
-	jam 0,mem_mouse_long_mult_flag
-	jam 0,mem_24g_conn_sm
-	jam 0,mem_24g_reconn_type
-	branch mouse_init_sensor_reset
+	call mouse_no_data_timer_init
+	branch mouse_24g_attempt_success
+
 
 p_mouse_24g_attempt_fail:
 	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,mouse_24g_fast_conn_attempt_fail
-	beq PAIR_AND_3_0_ADDR,mouse_24g_attempt_fail_enter_hibernate
-	beq RECEIVER_AND_3_0_ADDR,mouse_24g_fast_conn_attempt_fail
+	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,p_mouse_reconn_dongle_attempt_fail
 	branch mouse_24g_attempt_fail_enter_hibernate
 
-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 mouse_sensor_powerdown
-	call mouse_setgpio_hibernate
-	call p_mouse_multi_led_blink_off
-	branch g24_long_sleep
+p_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
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	fetcht 4,mem_mouse_compare_addr_ff
+	isub temp,null
+	branch mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+p_mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,p_mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+p_mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
+
+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
+	increase 1,pdata
+	store 2,mem_24g_pair_count
+	fetch 1,mem_24g_pair_count
+	and pdata,0xff,pdata
+	beq 0,g24_pair_dispatch+1
+	rtn
+
+p_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	arg 0x01f8,temp
+	iand temp,pdata
+	branch p_g24_reconn_dispatch_next,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+p_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call g24_transmit_receive_ack
+	nbranch p_g24_reconn_device_fail,sync
+	nbranch p_g24_reconn_device_fail,user3
+	call g24_ackpayload_parse
+	branch g24_reconn_receiver_succ
+	
+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
+	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
+
+p_g24_reconn_pair_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_pair_init_param
+
+p_g24_dispatch:
+	rtnmark1 mark_adc_enable
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+p_g24_transmit_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+	bbit1 STATE_24G_OTA,p_g24_ota_dispatch
+	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
+
+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
+
+p_mouse_start_work:
+	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 
+	call p_mouse_multi_poweron2s_enable
+	branch mouse_start_work+5
+
+p_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		// pdata output:00
+	and rega,0x07,pdata
+	branch mouse_24g_start_mode+9
 
 ///////////////////dpi led adjust////////////////////////////////////////////////////////////////////
 p_mouse_seting_dpi:
 	call mouse_setting_dpi_4_level
-	//call p_mouse_dpi_led_blink_delay
+	call p_mouse_dpi_led_blink_delay
+p_mouse_seting_sensor_type:
+	fetch 1,mem_config_sensor_type
+	beq S201X,p_mouse_seting_S201_dpi
 	branch mouse_seting_sensor_type
 
-//p_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 p_mouse_dpi_led_blink_init,blank
-//	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
-//	rtn
+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
+	copy pdata,rega
+	branch p_mouse_dpi_S201_store
+	
+//p_mouse_set_S201_dpi_1:	//1600
+//	fetch 1,mem_sensor_s201_dpi_1
+//	copy pdata,rega
+//	branch p_mouse_dpi_S201_store
+	
+p_mouse_set_S201_dpi_2:	//2400
+	fetch 1,mem_sensor_s201_dpi_2
+	copy pdata,rega
+	branch p_mouse_dpi_s201_store
+
+p_mouse_set_S201_dpi_3:	//3200
+	fetch 1,mem_sensor_s201_dpi_3
+	copy pdata,rega
+	branch p_mouse_dpi_s201_store
+
+//p_mouse_set_S201_dpi_4:	//800
+//	fetch 1,mem_sensor_s201_dpi_4
+//	copy pdata,rega
+p_mouse_dpi_s201_store:
+	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_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 p_mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
 
 
 p_mouse_bb_event_timer:
@@ -359,27 +929,76 @@
 	call g24_reconn_timeout_timer
 	call mouse_24g_long_sleep_param_update_timer
 	//led
-	//call p_mouse_device_poweron_timer
-	//call p_mouse_dpi_led_blink_delay_timer
+	call mouse_device_poweron_timer
+	call p_mouse_dpi_led_blink_delay_timer
 
 	call mouse_dpi_key_check_long_press
 	call mouse_bt_discovery_check
 	call p_mouse_commbination_key_process
 	call mouse_check_discovery_timeout_timer
 	//ble
-	call mouse_check_direct_timeout_timer	
+	call mouse_check_direct_timeout_timer
 	call mouse_le_enable_att_list_timer
-	//call mouse_le_battery_updata_timer
+	call p_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
 	call p_mouse_multi_led_blink_timer
-	branch mouse_bb_event_timer_next
+	call p_mouse_check_no_data_timeout_timer
+	branch p_mouse_g24_ota_reset_timer
 	
+p_mouse_g24_ota_reset_timer:
+	arg mem_g24_ota_reset_timer,regc
+	arg soft_reset_chip,regb
+	branch timer_single_step	
+
+//=========logo+bt  led multi start==============//
+p_mouse_multi_led_init_parm:
+	jam OFF,mem_mouse_multi_led_enable
+	jam 0,mem_mouse_le_reconn_flag
+	rtn
+
+p_mouse_multi_recon_blink_enable:
+	jam 3,mem_mouse_multi_led_blink_timer
+	jam 1,mem_mouse_le_reconn_flag
+	branch p_mouse_multi_blink_enable
+
+p_mouse_multi_discovery_blink_enable:
+	jam 5,mem_mouse_multi_led_blink_timer
+	jam 0,mem_mouse_le_reconn_flag
+p_mouse_multi_blink_enable:
+	jam ON,mem_mouse_multi_led_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	branch p_mouse_multi_logo_led_on
+	
+p_mouse_multi_on_enable:
+	jam ON,mem_mouse_logo_led_on_enable
+	jam 0,mem_mouse_le_reconn_flag
+p_mouse_multi_on_enable_next:
+	jam ON,mem_mouse_multi_led_enable
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+	rtn
+
+p_mouse_multi_poweron2s_enable:
+	jam OFF,mem_mouse_logo_led_on_enable
+	branch p_mouse_multi_on_enable_next
+
+p_mouse_le_recon_blink_timer_init:
+	jam 3,mem_mouse_multi_led_blink_timer
+	branch p_mouse_multi_led_led_blink_timeout_next
+
 p_mouse_multi_led_blink_timer:
-	fetch 1,mem_mouse_multi_led_blink_enable
+	fetch 1,mem_mouse_multi_led_enable
 	rtn blank
 	fetch 1,mem_mouse_multi_led_type
-	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
-p_mouse_multi_led_type_on:
-	call p_mouse_multi_led_on
+	beq MULTI_LED_BLINK,p_mouse_multi_bt_led_blink
+p_mouse_multi_led_logo_on:
+	call p_mouse_multi_logo_led_on
 	fetch 1,mem_mouse_logo_led_on_enable
 	beq ON,p_mouse_logo_led_on_timer_check
 	fetch 1,mem_mouse_multi_led_on_timer
@@ -389,95 +1008,55 @@
 	isub temp,null
 	call p_mouse_multi_led_off_poweron2s,zero
 	rtn
+
+p_mouse_multi_led_off_poweron2s:
+	call p_mouse_multi_logo_led_off
+	fetch 1,mem_device_flag
+	rtnne MODE_BT_DEVICE1
+	fetch 6,mem_device1_addr
+	fetcht 6,mem_mouse_compare_addr_ff
+	isub temp,null
+	branch p_mouse_multi_discovery_blink_enable,zero
+	branch p_mouse_multi_recon_blink_enable
 	
 p_mouse_logo_led_on_timer_check:
-	fetch 2,mem_mouse_logo_led_on_timer
+	fetch 2,mem_mouse_multi_led_on_timer
 	increase 1,pdata
-	store 2,mem_mouse_logo_led_on_timer
+	store 2,mem_mouse_multi_led_on_timer
 	arg 0x0258,temp	//1min
 	isub temp,null
 	call p_mouse_multi_led_off_continue_1min,zero
 	rtn
+	
 p_mouse_multi_led_off_continue_1min:
 	setarg 0
-	store 3,mem_mouse_logo_led_on_timer
-	branch p_mouse_multi_led_off
-
-p_mouse_multi_led_off_poweron2s:
-	jam 0,mem_mouse_multi_led_on_poweron2s_flag
-	call p_mouse_multi_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_multi_led_blink
-p_mouse_discovery_multi_led_blink:
-	jam 5,mem_mouse_multi_led_blink_timer_init	//300ms
-p_mouse_discovery_multi_led_blink1:	
-	jam 0,mem_mouse_multi_led_blink_count_limited
-	jam 1,mem_mouse_multi_led_blink_count//0 will clear mem_mouse_multi_led_blink_enable/mem_mouse_multi_led_type
-p_mouse_multi_led_blink_enable:
-	jam 5,mem_mouse_multi_led_blink_timer
-	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	rtn
-
-p_mouse_bt_reconn_multi_led_blink:
-	jam 1,mem_mouse_multi_led_blink_timer_init	//500ms
-	branch p_mouse_discovery_multi_led_blink1
+	store 3,mem_mouse_multi_led_on_timer
+	store 1,mem_mouse_multi_led_enable
+	branch p_mouse_multi_logo_led_off
 
-p_mouse_multi_led_type_blink:
+p_mouse_multi_bt_led_blink:
 	arg mem_mouse_multi_led_blink_timer,regc
-	arg p_mouse_multi_led_type_blink_timeout,regb
+	arg p_mouse_multi_led_led_blink_timeout,regb
 	branch timer_single_step
-p_mouse_multi_led_type_blink_timeout:
-	fetch 1,mem_mouse_multi_led_blink_timer_init
-	store 1,mem_mouse_multi_led_blink_timer
-	fetch 1,mem_mouse_multi_led_blink_count_limited
-	branch p_mouse_multi_led_blink_count_no_limited,blank
-	fetch 1,mem_mouse_multi_led_blink_count
-	branch p_mouse_multi_led_blink_off,blank
-	increase -1,pdata
-	store 1,mem_mouse_multi_led_blink_count
-p_mouse_multi_led_blink_count_no_limited:
+p_mouse_multi_led_led_blink_timeout:
+	fetch 1,mem_mouse_le_reconn_flag
+	beq 1,p_mouse_le_recon_blink_timer_init
+	jam 5,mem_mouse_multi_led_blink_timer
+p_mouse_multi_led_led_blink_timeout_next:
 	fetch 1,mem_mouse_multi_led_state
-	beq ON,p_mouse_multi_led_off
-p_mouse_multi_led_on:
-	jam ON,mem_mouse_multi_led_state	
-	fetcht 1,mem_mouse_multi_led_gpio
+	beq ON,p_mouse_multi_logo_led_off
+p_mouse_multi_logo_led_on:
+	jam ON,mem_mouse_multi_led_state
+	fetcht 1,mem_mouse_logo_led_gpio
 	branch gpio_out_active
 
-p_mouse_discovey_led_blink_off:
-//	fetch 1,mem_mouse_multi_led_on_timer
-//	nrtn blank
-//	fetch 1,mem_mouse_multi_led_on_poweron2s_flag
-//	nrtn blank
-p_mouse_multi_led_blink_off:
-	setarg 0
-	store 3,mem_mouse_multi_led_blink_timer
-p_mouse_multi_led_off:
-	fetch 1,mem_mouse_multi_led_blink_count
-	nbranch p_mouse_multi_led_off_wait_blink_over,blank
-	jam 0,mem_mouse_multi_led_blink_enable
-	jam 0,mem_mouse_multi_led_type
-p_mouse_multi_led_off_wait_blink_over:
-	jam 0,mem_mouse_multi_led_on_timer
+p_mouse_multi_logo_led_off:
 	jam OFF,mem_mouse_multi_led_state
-p_mouse_multi_led_gpio_set_high:
-	fetcht 1,mem_mouse_multi_led_gpio
-	branch gpio_out_inactive
-
-p_mouse_mode_bt_device1_multi_led_on:
-p_mouse_mode_24g_device_multi_led_on:
-	jam 1,mem_mouse_multi_led_on_poweron2s_flag
-	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_ON,mem_mouse_multi_led_type
-	jam 0,mem_mouse_multi_led_on_timer
+	jam 0xc0,807a
 	rtn
+
+//=========logo+bt  led multi end==============//
 	
-/*	
 p_mouse_dpi_led_blink_delay_timer:
 	arg mem_mouse_dpi_led_delay_count,regc
 	arg p_mouse_dpi_led_blink_init,regb
@@ -510,35 +1089,37 @@
 	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_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
+	branch mouse_init_p32xx_id2_judge+1
+
+p_mouse_3205_3t_init_param:
+	setarg 0x49		// id3
+	call twspi_read
+	beq 0xa1,p_mouse_S201X_init_param
+	branch mouse_3205_3t_init_param
 
-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_S201X_init_param:
+	jam S201X,mem_config_sensor_type
+	rtn
 
-p_mouse_bt_reconn_setting_led_gpio:
-	jam 0,mem_mouse_device_poweron_timer_count
-	fetch 2,mem_mouse_bt_reconn_led_blink_time
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time	
-	branch mouse_setting_led_gpio_comman
-*/	
 /////////////////////////////////////////////////////////////////////////////////////////////////
+
 p_mouse_commbination_key_process:
 	fetch 1,mem_device_flag
 	beq MODE_24G_DEVICE,p_mouse_24g_commbination_key_process
@@ -560,6 +1141,7 @@
 	branch p_mouse_commbination_key_down,zero
 	branch mouse_commbination_key_up
 
+		
 p_mouse_commbination_key_down:		// enter hibernate when reconnect
 	call mouse_combination_ui_timer
 	fetch 1,mem_commbination_key_statue
@@ -567,52 +1149,41 @@
 	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
 	rtn
 
-p_mouse_idle:
-	call mouse_low_voltage_led_no_enter_lpm
-	call ui_check_paring_button
-	call mouse_dpi_check
-	call mouse_select_device_check
-	call p_mouse_check_select_device_by_switch
-	call mouse_bt_button_check
-	call mouse_usb_isr
-	call mouse_wheel_check
-	branch mouse_usb_mode
-
-p_mouse_check_select_device_by_switch:
+p_mouse_le_battery_updata_timer:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO,p_mouse_check_select_device_by_switch_gpio
-	bbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_ADC,mouse_adc_read
-	rtn
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	branch mouse_le_battery_updata_timer
 
-p_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 p_mouse_check_select_24gdevice,true
-p_mouse_select_btdevice:	
-	fetch 1,mem_device_flag 
-	bne MODE_BT_DEVICE1,p_select_btdevice_info_store 
-	rtn
-p_select_btdevice_info_store:
-	jam MODE_BT_DEVICE1,mem_device_flag
-	call p_mouse_store_eeprom_device_flag
-	branch soft_reset_chip
-
-p_mouse_check_select_24gdevice:
-	fetch 1,mem_device_flag 
-	bne MODE_24G_DEVICE,p_select_24gdevice_info_store 
-	rtn
-p_select_24gdevice_info_store:
-	jam MODE_24G_DEVICE,mem_device_flag
-	call p_mouse_store_eeprom_device_flag
-	branch soft_reset_chip
-
-p_mouse_store_eeprom_device_flag:
-	arg 1,temp
-	arg mem_device_flag,rega
-	arg MOUSE_INFO_EEPROM_OFFECT,regb
-	branch iicd_write_protect_eep_data
+
+p_mouse_check_no_data_timeout_timer:
+	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
+
+p_mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_hibernate_set
+	branch mouse_disconnect	
+
+p_mouse_start_discovery:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BT_RECONNECT,pdata
+	call mouse_cancel_reconnect,true
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	branch mouse_start_discovery+1
+
+
+p_ui_timer_check:		// 100ms timer will return 4 or 5 times when power on
+	fetch 1,mem_power_on_flag
+	ncall ui_timer_init,blank
+	jam 0,mem_power_on_flag
+	branch ui_timer_check+1
 
 p_hid_rx_process:
 	fetch 2,mem_l2cap_payload_ptr
@@ -636,7 +1207,8 @@
 	set1 l2cap_channel_hid_handshake_done,pdata
 	store 1,mem_hid_control_state
 	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
-	branch ui_ipc_send_event	
+	branch ui_ipc_send_event
+
 
 p_le_slave_match:
 	fetch 1,mem_le_md_count
@@ -650,22 +1222,21 @@
 	call le_transmit
 	branch le_slave_match+10
 
-ifdef BATTERY_SERVICE_CANCEL
 p_le_parse_l2cap:
 	ifetch 2,contr
 	beq LE_L2CAP_CID_ATT,p_le_parse_att
 	branch le_parse_l2cap+10
-	
+		
 p_le_parse_att:
-	call store_contr
-	call p_mouse_le_reconn_write_enable_timer_reinit
-	call get_contr
 	ifetch 3,contr
 	store 3,mem_le_att_opcode
 	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request	
 	branch le_parse_att+2
+	
 p_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
 	call le_check_encrypt_state
 	fetcht 2,mem_le_att_handle
 	fetch 1,mem_le_configuration
@@ -681,25 +1252,17 @@
 	fetch 2,mem_le_pairing_handle
 	isub temp,null
 	nbranch p_le_send_att_read_response,zero
-	call le_check_encrypt_state
 	nbranch p_le_send_att_read_response,user
 	branch le_send_att_read_response_error_insufficient_auth
 
-p_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
-endif
 
 p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
 	copy contr,rega
 	fetch 2,mem_le_l2cap_size
 	add pdata,-3,regb
 	call le_writeatt_cb
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth	
 	fetch 1,mem_mouse_le_reconnect_flag
 	branch le_send_att_write_response_check_auth,blank
 	fetch 1,mem_le_connect_status_flag
@@ -711,42 +1274,37 @@
 	jam ATT_ERR_INSUFFICIENT_AUTHENTICATION,mem_le_err_code
 	branch le_send_att_error_response
 
-p_mouse_before_hibernate:
+p_g24_lpm_wait:			// ice connect led
+	fetch 1,mem_24g_device_led_status
+	nbranch disable_user,blank
 	enable user
-	fetch 4,0x8138
-	setflag user,26,pdata
-	store 4,core_lpm_reg
-	call lpm_write_ctrl
-	call disable_authrom
-	call p_mouse_multi_led_blink_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_mbutton_gpio	//clear ice wakeup
-	call gpio_clr_wake
-	fetcht 1,mem_sensor_motion_gpio
-	branch gpio_clr_wake
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,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_seting_sensor_type
 	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 p_mouse_motion_nodata,user
-	call mouse_drawing_optima
+	nbranch p_mouse_drawing_optima_init,user
 	call p_mouse_logo_led_on_check
+	call p_mouse_drawing_optima
 	branch mouse_no_data_timer_init
 
-p_mouse_motion_nodata:	
+p_mouse_drawing_optima_init:
 	call mouse_drawing_optima_init
 	jam 0,mem_mouse_logo_led_on_check_count
 	rtn
@@ -755,18 +1313,782 @@
 	fetch 1,mem_mouse_logo_led_on_check_count
 	increase 1,pdata
 	store 1,mem_mouse_logo_led_on_check_count
-	sub pdata,LOW_VOLTAGE_LED_COUNT,null
+	sub pdata,8,null
 	rtn positive
-p_mouse_logo_led_on:	
-	jam ON,mem_mouse_logo_led_on_enable
-	jam ON,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_ON,mem_mouse_multi_led_type
-	jam 0,mem_mouse_multi_led_on_timer
+	branch p_mouse_multi_on_enable
+
+p_mouse_drawing_optima:
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	branch mouse_drawing_optima
+
+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
+	call mouse_sensor_wr_seq
+	branch mouse_dpi_config
+	
+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
+
+p_mouse_sensor_reset:
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_reset
+	branch mouse_sensor_reset
+p_mouse_ka8g2_sensor_reset:
+	setarg 0x9706		// reset to factory settings
+	call twspi_write
+	nop 12000
 	rtn
 
-p_g24_lpm_wait:
-	fetch 1,mem_mouse_key
-	bbit1 2,g24_transmit_by_interrupt_enable		//MButton
-	branch g24_lpm_wait+1
+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
+p_mouse_ka8g2_sensor_powerdown:
+	setarg 0x1f06		
+	branch twspi_write
+
+
+//////////////////////////////modify key start///////////////////////////////////////////////
+p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call p_mouse_check_lkey_gpio
+	call p_mouse_check_rkey_gpio
+	call p_mouse_check_mkey_gpio
+	call p_mouse_check_bkkey_gpio
+	call p_mouse_check_fwkey_gpio
+	branch mouse_check_key_gpio_next
+
+p_mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_lkey_gpio
+	fetcht 1,mem_lbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_rkey_gpio
+	fetcht 1,mem_rbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_mkey_gpio
+	fetcht 1,mem_mbutton_gpio
+	branch mouse_gpio_config_input_pu	
+
+p_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,p_mouse_3io6key_bk_check
+	branch mouse_check_bkkey_gpio_next
+p_mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_3io6key_bk_check	
+
+p_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,p_mouse_3io6key_fw_check
+	branch mouse_check_fwkey_gpio_next
+p_mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_3io6key_fw_check
+
+//input:pdata gpio number
+p_mouse_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+		
+//input:pdata gpio number
+p_mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+
+p_mouse_idle:
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call p_mouse_dpi_check
+	call p_mouse_dpi_another_gpio_check
+	branch mouse_idle+4
+p_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 p_mouse_dpi_key_check
+	branch mouse_dpi_check_next
+
+p_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,p_mouse_3io6key_dpi_check
+	branch mouse_dpi_key_check_next
+p_mouse_3io6key_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+p_mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	fetch 1,mem_dpi_another_button_gpio
+	call p_mouse_gpio_config_output_high
+	call p_mouse_dpi_another_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+	
+p_mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call p_mouse_check_key_connect_gnd_new
+	store 1,mem_dpi_another_press_status
+	fetch 1,mem_dpi_another_button_down_enable
+	branch p_mouse_dpi_another_up,blank
+p_mouse_dpi_another_down:
+	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:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call gpio_get_bit
+	setflag true,0,regb
+	and regb,0x07,pdata
+	fetcht 1,mem_mouse_key_temp_patch
+	copy temp,queue
+	beq 0x07,p_mouse_key_press		//  about 17~22ms three times
+	beq 0x00,p_mouse_key_release
+	rtn
+
+p_mouse_key_press:
+	jam 1,mem_dpi_another_button_down_enable
+	rtn
+p_mouse_key_release:
+	jam 0,mem_dpi_another_button_down_enable
+	rtn
+
+p_mouse_dpi_process:
+	call mouse_dpi_ghost_check
+	rtn user
+	fetch 1,mem_mouse_dpi
+	copy pdata,temp
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DOUBLE_DPI_KEY,p_mouse_double_dpi_check
+	copy temp,pdata
+	increase 1,pdata
+	and pdata,0x03,pdata
+p_mouse_dpi_store:
+	store 1,mem_mouse_dpi
+	call mouse_seting_dpi
+	branch mouse_store_eerpom_dpi
+
+p_mouse_double_dpi_check:
+	fetch 1,mem_dpi_another_button_down_enable
+	nbranch p_mouse_another_dpi_button_down,blank
+p_mouse_dpi_increase:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,p_mouse_dpi_increase_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+p_mouse_dpi_increase_level:
+	increase 1,pdata
+	branch p_mouse_dpi_store
+
+p_mouse_dpi_increase_level_4:
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL4
+	branch p_mouse_dpi_increase_level
+
+p_mouse_another_dpi_button_down:
+p_mouse_dpi_decrease:
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL1
+	increase -1,pdata
+	branch p_mouse_dpi_store
+	
+//////////////////////////////modify key end///////////////////////////////////////////////
+
+
+
+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
 
Index: sched/mouse.dat
===================================================================
--- /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/sched/mouse.dat	(revision 2242)
+++ /YC1308AC/branch/mouse_project/YJX_Project/1011-T_Project/SDK/SlideSwitch_3mode_Logo_cloese3.0/sched/mouse.dat	(working copy)
@@ -1,6 +1,6 @@
 mem_device_option:08	#08 mouse
 
-mem_lpm_config:88 13 ce	#4khz
+mem_lpm_config:88 16 ce	#4khz
 mem_fcomp_div:18
 
 mem_rf_init_data:ff
@@ -13,7 +13,7 @@
 mem_gain_fix:ff
 mem_gain_second_agc_en:00
 
-
+mem_mouse_flag:
 #mouse flag byte1
 #bit0 MOUSE_SELECT_DEVICE_FLAG
 #bit1 MOUSE_24G_PAIRING_FLAG
@@ -22,7 +22,7 @@
 #bit4 MOUSE_LOW_VOLTAGE_FLAG
 #bit5 MOUSE_BT_DISCOVERY_BUTTON_DOWN_FLAG
 #bit6 MOUSE_BT_DISCOVERY_BUTTON_LONG_DOWN_FLAG
-
+04
 
 #mouse flag byte2
 #bit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE
@@ -31,6 +31,7 @@
 #bit3 MOUSE_ENABLE_WAKEUP_FROM_POWER
 #bit4 MOUSE_ENABLE_16M
 #bit5 MOUSE_ENABLE_USB
+09
 
 #mouse flag byte3
 #bit0 MOUSE_ENABLE_SPI2
@@ -40,6 +41,7 @@
 #bit4 MOUSE_ENABLE_ADC
 #bit5 MOUSE_ENABLE_KEYBOARD
 #bit6 MOUSE_ENABLE_24G_SEARCH_DONGLE
+4a
 
 #mouse flag byte4
 #bit0 MOUSE_ENABLE_24G_250Hz
@@ -50,6 +52,7 @@
 #bit5 MOUSE_ENABLE_USB_250
 #bit6 MOUSE_ENABLE_USB_500
 #bit7 MOUSE_ENABLE_USB_1000
+08
 
 #mouse flag byte5
 #bit0 MOUSE_ENABLE_POWER_ON_LED
@@ -60,6 +63,7 @@
 #bit5 MOUSE_ENABLE_DPI_FOR_4_LED
 #bit6 MOUSE_ENABLE_BT2_FOR_4_LED
 #bit7 MOUSE_ENABLE_LOW_V_FOR_4_LED
+00
 
 #mouse flag byte6 
 #bit0 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
@@ -70,6 +74,7 @@
 #bit5 MOUSE_ENABLE_PB_BUTTON_CONNECT_GND
 #bit6 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC
 #bit7 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING
+04
 
 #mouse flag byte7
 #bit0 MOUSE_ENABLE_AUTO_24G_PARING
@@ -80,34 +85,18 @@
 #bit5 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
 #bit6 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
 #bit7 MOUSE_ENABLE_PB_BUTTON_LONG_PRESS_DISCONVERY
+6b
 
 #mouse flag byte8
 #bit0 MOUSE_ENABLE_SMOOTHER
 #bit1 MOUSE_ENABLE_XY_OFFSET
+#bit2 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED
+#bit3 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+#bit4 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+#bit5 MOUSE_ENABLE_DOUBLE_DPI_KEY
+1b
 
 
-
-mem_mouse_flag:
-04
-
-#clk selsect/usb  1byte
-09    #24M
-
-#2.4g+ee/flash+adc+customize key select  1byte
-4a	#2.4g+eeprom
-
-#sensor select  1byte
-08 #3level dpi+(2.4g:125+bt/ble:115)Hz
-
-#led select  1byte
-01 #poweron
-
-#mode switch+pair/discovery  2byte 
-84 6b #dip(matrix)+2.4 first
-
-#updata 1byte
-03
-
 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
@@ -123,6 +112,7 @@
 mem_bk_button_gpio:ff
 mem_fw_button_gpio:ff
 mem_dpi_button_gpio:0b
+mem_dpi_another_button_gpio:ff
 mem_matrix_public_gpio:ff
 mem_sensor_motion_gpio:ff
 mem_customer_key_gpio:ff
@@ -147,16 +137,16 @@
 
 mem_sensor_angle_default:02	#00--6CLK   01--9CLK   02--12CLK   03--3CLK
 mem_sensor_angle_switch:02	#00--6CLK   01--9CLK   02--12CLK   03--3CLK
-mem_config_sensor_dpi:00		#00--1200   01--1600
-
+mem_config_sensor_dpi:01		#00--1200   01--1600
 
-mem_mouse_multi_led_gpio:0a
+mem_mouse_logo_led_gpio:0a
+mem_mouse_logo_led_on_time_init:58 02	#1min
 mem_mouse_multi_led_on_timer_init:14
-mem_mouse_multi_led_blink_timer_init:03
 
-
-mem_usb_offline_check_gpio:ff
 mem_mouse_reuse_2ice_gpio:03
+mem_mouse_ice_sdio_for_sensor_angle:00	#00 disable, 01 enable
+mem_usb_offline_check_gpio:ff
+
 
 mem_customer_key_press:
 #03 ea 00 00 00 00 00 00 00 #VOL DOWN
@@ -175,7 +165,7 @@
 mem_device_number:02  #max device number   value:01,02,03
 
 mem_device_flag:
-ff
+00
 34
 ff ff ff ff ff ff
 mem_device2_type:
@@ -196,10 +186,9 @@
 
 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		#400ms on,400ms off
-mem_mouse_disconvey_led_blink_time:90 01	#400ms on,400ms off
-mem_mouse_bt_reconn_led_blink_time:64 00	#100ms on,100ms off
-mem_mouse_low_v_led_blink_time:c8 00		#200ms on,200ms off
+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
@@ -214,6 +203,9 @@
 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_button_press_vol:10 00
 mem_mouse_vdd_switch_gnd_24g_vol:52 00
 mem_mouse_vdd_switch_gnd_full_vol:35 00
@@ -226,12 +218,13 @@
 mem_mouse_set_high_impedance_bit_set:00 00  00
 mem_sensor_reset_gpio:ff
 
+mem_power_on_flag:01
 
 mem_lpm_mult:20
 mem_lpm_mult_init:20
 
 mem_app_connection_options:06
-mem_lap:10 15 c8 12 24 52
+mem_lap:15 a0 c8 13 23 51
 mem_local_name_length:
 'BT3.0 Mouse
 mem_sniff_param_interval:
@@ -280,6 +273,8 @@
 mem_le_name_len:
 'BT5.2 Mouse
 
+mem_le_name_patch_len:	#max 18bytes
+'BT5.2 Mouse
 
 mem_le_interval_min:
 07 00 #min interval
@@ -297,7 +292,7 @@
 mem_le_adv_channel_map:07 
 mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
 
-mem_le_lap:10 15 3a 0e 8d ed
+mem_le_lap:8e b1 3c 0e 8e ed
 
 
 mem_le_keyboard_handle:15 00
@@ -318,18 +313,25 @@
 mem_mouse_dpi_seting:
 03##mem_320x_dpi_0  	1200/1300
 04##mem_320x_dpi_1  	1600
-01##mem_320x_dpi_2   	800
+01##mem_320x_dpi_2   800
 02##mem_320x_dpi_3  	1000
 
 20##mem_3212_dpi_0	1200
 2a##mem_3212_dpi_1	1600
 3f ##mem_3212_dpi_2	2400
-15##mem_3212_dpi_3   	800
+15##mem_3212_dpi_3   800
 
-06##mem_ka8g2_dpi_0	1200
-0c##mem_ka8g2_dpi_1	2400
-10##mem_ka8g2_dpi_2	3000
-04##mem_ka8g2_dpi_3	800
+14##mem_ka8g2_dpi_0	1200
+1b##mem_ka8g2_dpi_1	1600
+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
@@ -428,12 +430,27 @@
 09 00
 ff ff
 
+mem_sensor_ka8g2_init:
+09 a5
+46 34
+60 07
+69 04
+7d 20
+7e 00
+09 00
+ff ff
+
 mem_sensor_poweron_init:
 09 5a
 0b f3
 09 00
 ff ff
 
+mem_ka8g2_sensor_poweron_init:
+09 a5
+0b f3
+09 00
+ff ff	
 
 mem_ui_led_struct_ptr:mem_mouse_led_type
 mem_ui_led_struct_num:01
@@ -462,7 +479,7 @@
 mem_24g_enter_hibernate:00 48 60
 mem_rssi_buff_index:07
 mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf
-mem_power_ctrl_pac_succ_cnt_init:32
+mem_power_ctrl_pac_succ_cnt_init:80
 mem_24g_long_sleep_param_update_timer_init:14 00
 mem_24g_transmit_by_interrupt_exit_count_init:50 00
 
@@ -474,5 +491,5 @@
 
 mem_tx_power:01#3dbm
 
-mem_mouse_factory_addr:ff ff ff ff ff ff
+
 
