Index: do.bat
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/do.bat	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/do.bat	(working copy)
@@ -71,6 +71,10 @@
 ::echo exist c51 code
 ::geneep
 
+
+create_exen.pl 1  1024 64
+
+
 if "%device_option%" equ "mouse" (
 cd ..\output
 copy eeprom.dat ..\util\eeprom.dat
Index: format/app_mouse.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/app_mouse.format	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/app_mouse.format	(working copy)
@@ -329,6 +329,35 @@
 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
+
 2 mem_mouse_xy_date_times
 
 0 mem_om16_dpi
@@ -449,6 +478,7 @@
 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
@@ -589,6 +619,8 @@
 0x05 MOUSE_DPI_KEY
 0x06 MOUSE_PB_KEY
 0x07 MOUSE_CUSTOMER_KEY
+
+0x00 MOUSE_DPI_ANOTHER_KEY
 )
 
 
@@ -628,3 +660,53 @@
 7 MOUSE_DEVICE_NUMBER_FLAG
 )
 
+
+//G24 ota
+(
+0x0001 G24_OTA_VERSION
+0x5a G24_OTA_DATA_HEADER
+
+0 G24_OTA_STORAGE_ERROR
+0x02 G24_OTA_STORAGE_EEPROM
+0x03 G24_OTA_STORAGE_OTP
+0x04 G24_OTA_STORAGE_FLASH
+
+0x00 G24_OTA_STATUS_SUCCESS
+0x01 G24_OTA_STATUS_FAIL
+
+0x01 G24_OTA_TARGET_DONGLE
+0x02 G24_OTA_TARGET_MOUSE
+0x03 G24_OTA_TARGET_DONGLE_MOUSE
+
+0x1 G24_OTA_CMD_VERSION
+0x2 G24_OTA_CMD_INFO
+0X3 G24_OTA_CMD_CONFIG
+0X4 G24_OTA_CMD_SET_CONFIG_END
+0X5 G24_OTA_CMD_DATA
+0X6 G24_OTA_CMD_RESET
+0xff G24_OTA_CMD_PING
+
+0x01 G24_OTA_SM_RX_VERSION
+0x02 G24_OTA_SM_TX_VERSION
+0x03 G24_OTA_SM_TX_VERSION_OK
+0X04 G24_OTA_SM_RX_INFO
+0X05 G24_OTA_SM_TX_INFO
+0X06 G24_OTA_SM_TX_INFO_OK
+0X07 G24_OTA_SM_RX_CONFIG
+0X08 G24_OTA_SM_TX_CONFIG
+0X09 G24_OTA_SM_TX_CONFIG_OK
+0X0A G24_OTA_SM_RX_SET_CONFIG_END
+0X0B G24_OTA_SM_TX_SET_CONFIG_END
+0X0C G24_OTA_SM_TX_SET_CONFIG_END_OK
+0X0D G24_OTA_SM_RX_DATA
+0X0E G24_OTA_SM_TX_DATA
+0X0F G24_OTA_SM_TX_DATA_OK
+0X10 G24_OTA_SM_RX_RESET
+0X11 G24_OTA_SM_TX_RESET
+0X12 G24_OTA_SM_TX_RESET_OK
+
+)
+
+
+
+
Index: format/g24_protocol_stack/24g_pair.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/g24_protocol_stack/24g_pair.format	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/g24_protocol_stack/24g_pair.format	(working copy)
@@ -43,6 +43,7 @@
 0x55 DATATYPE_CONFIG	//bind step 2
 0x22 DATATYPE_OK		//bind step 3
 0xff DATATYPE_ATTEMP	//reconn
+0xaf DATATYPE_OTA
 )
 
 (
Index: format/g24_protocol_stack/24g_transmitter.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/g24_protocol_stack/24g_transmitter.format	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/format/g24_protocol_stack/24g_transmitter.format	(working copy)
@@ -39,6 +39,7 @@
 0 STATE_24G_START
 1 STATE_24G_PAIR
 2 STATE_24G_RECONN
+3 STATE_24G_OTA
 )
 
 (//mem_24g_transmit_by_interrupt
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/output/eeprom.dat	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/output/eeprom.dat	(working copy)
@@ -2,100 +2,104 @@
 02
 aa
 55
-c2
-0f
+fe
+17
 c2
 84
 00
-18
+19
 c0
 00
 00
-23
+24
 c0
 01
 80
-27
+28
 c0
 41
 80
-40
+41
 c0
 45
 80
-77
+82
 c0
 4f
 80
-84
+8f
 c0
 57
 00
-86
+91
 c0
 58
 00
-6b
+76
 c0
 61
 82
-11
+50
 c0
 63
 81
-24
+5f
 c0
 64
 81
-2f
+6a
 c0
 65
 01
-62
+9e
 c0
 66
 00
-67
+72
 c0
 67
 03
-00
+54
+c0
+67
+84
+25
 c0
 68
 02
-20
+5f
 c0
 68
 83
-5e
+b2
 c0
 69
-83
-ac
+84
+40
 c0
 6a
 03
-44
+98
 c0
 6b
 01
-8d
+c9
 c0
 6c
 82
-57
+96
 c0
 6d
 02
-a5
+f9
 c0
 6f
 03
-94
+e8
 c0
 74
-02
-b2
+03
+06
 20
 20
 13
@@ -103,43 +107,43 @@
 c0
 19
 80
-47
+52
 c0
 1a
 00
-4c
+57
 c0
 43
-82
-ae
+83
+02
 c0
 50
-82
-c6
+83
+1a
 c0
 60
-02
-d0
+03
+24
 c0
 6e
 82
-01
+3f
 c0
 71
-01
-dc
+02
+1a
 c0
 74
-81
-e4
+82
+22
 c0
 75
-00
-ee
+01
+28
 c0
 76
-02
-f7
+03
+4b
 20
 20
 13
@@ -207,7 +211,7 @@
 20
 40
 00
-34
+35
 20
 20
 08
@@ -239,7 +243,7 @@
 20
 3a
 00
-3d
+3e
 6f
 e0
 c6
@@ -288,6 +292,46 @@
 20
 11
 7d
+20
+40
+5b
+94
+20
+40
+04
+d9
+20
+34
+00
+4c
+20
+60
+00
+00
+da
+60
+5d
+e2
+6f
+e1
+4b
+f3
+1f
+e0
+fe
+03
+1f
+f0
+fe
+00
+67
+e1
+02
+e4
+20
+20
+5b
+3f
 da
 20
 09
@@ -427,7 +471,7 @@
 20
 40
 00
-4c
+57
 20
 20
 3e
@@ -479,7 +523,7 @@
 20
 20
 00
-6b
+76
 70
 8a
 8b
@@ -540,6 +584,14 @@
 20
 13
 b7
+24
+55
+80
+48
+24
+55
+80
+9d
 20
 40
 6d
@@ -547,7 +599,7 @@
 20
 40
 00
-90
+c8
 20
 40
 41
@@ -559,7 +611,7 @@
 20
 40
 03
-4a
+9e
 20
 40
 3d
@@ -571,66 +623,238 @@
 20
 40
 00
-a0
+d8
 20
 40
 03
-56
+aa
 20
 20
 3b
 c9
+6f
+e4
+4c
+1f
 20
-75
-80
+7a
 00
-20
-40
-26
-07
-20
-40
-22
-ff
-20
-40
-3f
+00
+6f
+e0
+cc
 1e
+1f
+e2
+22
+00
+1f
+e6
+7c
+0b
+24
+21
+00
+af
+d8
+c0
+4c
+1f
+d8
+a0
+4a
+db
+1a
+22
+72
+00
 20
 40
-3d
-13
-20
-40
+7d
+5f
+d8
+c0
+4c
+1f
+d8
+a0
+44
+0a
+1a
+22
+72
 00
-9a
-6f
-e4
-4b
-ab
-c3
-0c
-3b
-f5
 20
 40
+7d
+5f
+d8
+c0
+4c
+1f
+d8
+a0
+42
+f8
+1a
+22
+72
 00
-9d
 20
 20
-3b
-f5
-58
-00
-e2
-90
-67
-e1
-c8
-ad
+7d
+5f
 20
-60
-00
+40
+00
+c5
+6f
+e0
+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
+7d
+5f
+6f
+e0
+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
+7d
+5f
+d8
+c0
+4c
+1e
+d8
+a0
+42
+f7
+1a
+22
+72
+00
+1f
+20
+f2
+01
+20
+20
+7d
+5f
+d8
+a0
+4a
+d2
+df
+20
+00
+14
+20
+20
+7d
+26
+20
+75
+80
+00
+20
+40
+26
+07
+20
+40
+22
+ff
+20
+40
+3f
+1e
+20
+40
+3d
+13
+20
+40
+00
+d2
+6f
+e4
+4b
+ab
+c3
+0c
+3b
+f5
+20
+40
+00
+d5
+20
+20
+3b
+f5
+58
+00
+e2
+90
+67
+e1
+c8
+ad
+20
+60
+00
 00
 58
 00
@@ -647,7 +871,7 @@
 58
 00
 00
-a5
+dd
 67
 e1
 48
@@ -655,7 +879,7 @@
 58
 00
 00
-bf
+f9
 67
 e1
 48
@@ -668,6 +892,14 @@
 93
 00
 00
+6f
+e0
+cb
+f6
+24
+3a
+05
+92
 20
 40
 3f
@@ -683,7 +915,7 @@
 c3
 0a
 80
-ac
+e6
 6f
 e0
 cb
@@ -703,7 +935,7 @@
 c2
 80
 80
-bb
+f5
 68
 48
 c7
@@ -834,8 +1066,8 @@
 08
 24
 21
-00
-d5
+01
+0f
 20
 40
 25
@@ -846,16 +1078,16 @@
 5b
 24
 2c
-00
-db
+01
+15
 24
 37
-80
-db
+81
+15
 20
 40
-00
-e5
+01
+1f
 20
 40
 25
@@ -874,8 +1106,8 @@
 a3
 c0
 08
-00
-dd
+01
+17
 20
 60
 00
@@ -886,8 +1118,8 @@
 cb
 20
 20
-00
-cb
+01
+05
 70
 4b
 a3
@@ -919,7 +1151,7 @@
 20
 20
 03
-56
+aa
 6f
 e0
 c8
@@ -954,8 +1186,8 @@
 44
 20
 20
-03
-ae
+04
+42
 20
 40
 26
@@ -963,11 +1195,11 @@
 24
 34
 01
-74
+b0
 20
 40
-00
-fd
+01
+37
 20
 40
 26
@@ -978,8 +1210,8 @@
 e1
 24
 3a
-00
-f8
+01
+32
 6f
 e4
 48
@@ -1043,19 +1275,23 @@
 24
 2c
 01
-15
+50
 24
 37
 81
-15
+50
 20
 40
 26
 72
 20
 40
+04
+9a
+20
+40
 01
-08
+43
 20
 20
 26
@@ -1067,7 +1303,7 @@
 24
 5a
 01
-0c
+47
 70
 4b
 e1
@@ -1078,8 +1314,8 @@
 00
 20
 40
-03
-ae
+04
+42
 6f
 e4
 4b
@@ -1147,11 +1383,11 @@
 20
 40
 01
-1f
+5a
 20
 20
-00
-fe
+01
+38
 6f
 e0
 c8
@@ -1179,7 +1415,7 @@
 c0
 06
 01
-2c
+67
 58
 00
 00
@@ -1195,11 +1431,11 @@
 20
 40
 03
-4f
+a3
 20
 40
 03
-56
+aa
 20
 20
 3e
@@ -1226,6 +1462,10 @@
 dc
 20
 40
+02
+bb
+20
+40
 40
 15
 68
@@ -1283,15 +1523,15 @@
 20
 40
 01
-42
+7e
 20
 40
 01
-4f
+8b
 20
 20
 01
-56
+92
 6f
 e1
 cb
@@ -1339,7 +1579,7 @@
 c2
 00
 01
-46
+82
 20
 60
 00
@@ -1487,11 +1727,11 @@
 20
 40
 03
-56
+aa
 20
 20
 01
-79
+b5
 6f
 e0
 c8
@@ -1499,7 +1739,7 @@
 20
 5a
 01
-7f
+bb
 6f
 e0
 c8
@@ -1590,8 +1830,8 @@
 91
 20
 20
-00
-f0
+01
+2a
 1a
 62
 7e
@@ -1599,31 +1839,31 @@
 c0
 00
 81
-96
+d2
 c0
 1e
 01
-b8
+f4
 c0
 1c
 81
-b6
+f2
 c0
 1d
 01
-bf
+fb
 c0
 19
 01
-a2
+de
 c0
 22
 01
-a9
+e5
 c0
 0a
 81
-98
+d4
 20
 20
 43
@@ -1683,7 +1923,7 @@
 c0
 00
 81
-a6
+e2
 70
 4b
 76
@@ -1799,23 +2039,23 @@
 24
 3a
 01
-6b
+a7
 6f
 e0
 c8
 8b
 c0
 01
-01
-c6
+02
+02
 c0
 02
-01
-cf
+02
+0d
 c0
 01
-81
-d4
+82
+12
 20
 20
 48
@@ -1850,28 +2090,36 @@
 00
 20
 22
-c8
-27
+82
+0b
 20
 20
 48
 06
+70
+48
+8b
+00
+20
+20
+48
+27
 6f
 e4
 4b
 ab
 c3
 17
-81
-d9
+82
+17
 6f
 e0
 cb
 b4
 c0
 00
-81
-d9
+82
+17
 20
 20
 48
@@ -1882,16 +2130,16 @@
 ab
 c3
 17
-81
-d9
+82
+17
 c2
 89
-81
-d9
+82
+17
 c2
 89
-01
-d9
+02
+17
 20
 20
 48
@@ -1907,7 +2155,7 @@
 20
 20
 01
-6b
+a7
 70
 48
 8b
@@ -1954,8 +2202,8 @@
 00
 20
 3a
-01
-ec
+02
+2a
 6f
 e1
 48
@@ -1982,12 +2230,12 @@
 5b
 24
 2c
-01
-f2
+02
+30
 24
 37
-81
-f2
+82
+30
 20
 40
 26
@@ -2042,8 +2290,8 @@
 b1
 c0
 02
-01
-ff
+02
+3d
 20
 20
 25
@@ -2073,6 +2321,10 @@
 c8
 a1
 c2
+81
+84
+a4
+c2
 80
 a3
 40
@@ -2087,7 +2339,7 @@
 c0
 00
 82
-0a
+49
 20
 20
 26
@@ -2099,7 +2351,7 @@
 24
 34
 02
-03
+41
 20
 40
 26
@@ -2135,7 +2387,7 @@
 c0
 00
 02
-16
+55
 20
 20
 3d
@@ -2187,7 +2439,7 @@
 20
 40
 02
-49
+88
 6f
 e0
 c9
@@ -2195,11 +2447,11 @@
 c0
 06
 02
-26
+65
 c0
 06
 82
-33
+72
 20
 20
 40
@@ -2211,47 +2463,47 @@
 c0
 00
 02
-2d
+6c
 c0
 00
 82
-2b
+6a
 c0
 01
 02
-2f
+6e
 c0
 01
 82
-31
+70
 68
 48
-cb
-f0
+cc
+3a
 20
 20
 40
 a8
 68
 48
-cb
-ef
+cc
+39
 20
 20
 40
 a8
 68
 48
-cb
-f1
+cc
+3b
 20
 20
 40
 a8
 68
 48
-cb
-f2
+cc
+3c
 20
 20
 40
@@ -2267,19 +2519,19 @@
 c0
 00
 02
-3b
+7a
 c0
 00
 82
-39
+78
 c0
 01
 02
-3d
+7c
 c0
 01
 82
-3f
+7e
 6f
 e0
 c9
@@ -2287,7 +2539,7 @@
 20
 20
 02
-40
+7f
 6f
 e0
 c9
@@ -2295,7 +2547,7 @@
 20
 20
 02
-40
+7f
 6f
 e0
 c9
@@ -2303,7 +2555,7 @@
 20
 20
 02
-40
+7f
 6f
 e0
 c9
@@ -2391,7 +2643,7 @@
 20
 3a
 02
-70
+c2
 67
 e0
 cb
@@ -2427,7 +2679,7 @@
 20
 40
 02
-6d
+bf
 20
 40
 40
@@ -2439,7 +2691,7 @@
 20
 40
 02
-85
+d7
 20
 40
 44
@@ -2455,7 +2707,7 @@
 20
 40
 02
-9a
+ee
 20
 40
 45
@@ -2485,9 +2737,85 @@
 45
 47
 20
+40
+02
+b1
 20
+40
 02
-9d
+f1
+20
+20
+02
+ae
+da
+60
+4c
+1d
+da
+40
+5d
+8c
+20
+20
+31
+8a
+6f
+e0
+cb
+ed
+c1
+7f
+80
+00
+6f
+e1
+4a
+b2
+20
+7a
+00
+00
+6f
+e1
+4b
+be
+68
+49
+4a
+b2
+98
+46
+04
+00
+6f
+e1
+4b
+ee
+98
+46
+7e
+00
+20
+21
+02
+bd
+68
+48
+cb
+ed
+20
+20
+60
+65
+68
+48
+cb
+ed
+20
+40
+60
+69
 da
 60
 4b
@@ -2495,7 +2823,7 @@
 da
 40
 02
-70
+c2
 20
 20
 31
@@ -2551,11 +2879,11 @@
 20
 41
 02
-7f
+d1
 24
 41
 02
-83
+d5
 20
 20
 48
@@ -2591,7 +2919,7 @@
 c0
 00
 02
-8b
+dd
 6f
 e4
 4b
@@ -2607,7 +2935,7 @@
 20
 20
 02
-8e
+e0
 6f
 e4
 4b
@@ -2643,15 +2971,15 @@
 20
 22
 82
-95
+e7
 20
 20
 44
 eb
 20
 40
-44
-f6
+02
+ec
 6f
 e0
 cb
@@ -2668,6 +2996,14 @@
 60
 00
 00
+da
+40
+02
+0b
+20
+20
+44
+f7
 6f
 e4
 4b
@@ -2695,7 +3031,7 @@
 da
 40
 02
-a2
+f6
 20
 20
 31
@@ -2707,7 +3043,7 @@
 c0
 00
 01
-6b
+a7
 20
 20
 43
@@ -2790,8 +3126,8 @@
 00
 c0
 04
-82
-ba
+83
+0e
 20
 20
 4d
@@ -2890,8 +3226,8 @@
 06
 c0
 02
-02
-d3
+03
+27
 20
 20
 19
@@ -2906,12 +3242,12 @@
 36
 c0
 05
-02
-d8
-c0
+03
+2c
+c0
 09
-02
-e7
+03
+3b
 20
 20
 1c
@@ -2938,8 +3274,8 @@
 c0
 c2
 81
-82
-e2
+83
+36
 6f
 e1
 44
@@ -2966,12 +3302,12 @@
 00
 24
 22
-82
-de
+83
+32
 24
 34
-02
-de
+03
+32
 20
 20
 1e
@@ -3091,15 +3427,15 @@
 20
 40
 03
-13
+67
 20
 40
 03
-4a
+9e
 20
 40
-03
-c5
+04
+59
 20
 40
 3f
@@ -3131,7 +3467,7 @@
 20
 40
 03
-0f
+63
 20
 20
 45
@@ -3159,7 +3495,7 @@
 c0
 06
 83
-16
+6a
 20
 20
 42
@@ -3175,7 +3511,7 @@
 c0
 7f
 83
-1c
+70
 68
 48
 c9
@@ -3259,19 +3595,19 @@
 c0
 00
 03
-32
+86
 c0
 00
 83
-39
+8d
 c0
 01
 03
-3e
+92
 c0
 01
 83
-3f
+93
 20
 60
 00
@@ -3359,7 +3695,7 @@
 c0
 05
 83
-4b
+9f
 20
 40
 42
@@ -3375,11 +3711,11 @@
 20
 20
 02
-22
+61
 20
 40
 03
-52
+a6
 da
 60
 4b
@@ -3391,7 +3727,7 @@
 20
 20
 03
-4a
+9e
 6f
 e0
 c9
@@ -3399,7 +3735,7 @@
 c0
 05
 83
-52
+a6
 20
 20
 42
@@ -3435,7 +3771,7 @@
 c0
 05
 83
-5c
+b0
 58
 00
 08
@@ -3467,23 +3803,23 @@
 20
 40
 03
-67
+bb
 20
 40
 03
-6c
+c0
 20
 40
 03
-71
+c5
 20
 40
 03
-76
+ca
 20
 40
 03
-83
+d7
 20
 20
 41
@@ -3495,7 +3831,7 @@
 20
 40
 03
-90
+e4
 20
 40
 41
@@ -3515,7 +3851,7 @@
 20
 40
 03
-90
+e4
 20
 40
 41
@@ -3535,7 +3871,7 @@
 20
 40
 03
-90
+e4
 20
 40
 41
@@ -3579,7 +3915,7 @@
 c0
 7f
 83
-7f
+d3
 20
 20
 41
@@ -3591,7 +3927,7 @@
 20
 40
 03
-92
+e6
 68
 48
 c9
@@ -3631,7 +3967,7 @@
 c0
 7f
 83
-8c
+e0
 20
 20
 41
@@ -3643,7 +3979,7 @@
 20
 40
 03
-92
+e6
 68
 48
 c9
@@ -3679,7 +4015,11 @@
 20
 40
 03
-98
+ed
+20
+40
+04
+01
 20
 20
 46
@@ -3715,7 +4055,7 @@
 20
 40
 03
-a1
+f6
 20
 20
 40
@@ -3743,7 +4083,7 @@
 c0
 7f
 83
-a8
+fd
 20
 20
 40
@@ -3755,7 +4095,7 @@
 20
 40
 03
-92
+e6
 68
 48
 c9
@@ -3764,3611 +4104,2350 @@
 20
 41
 95
-20
-40
-3f
-65
-20
-75
+6f
+e4
+4b
+ab
+c4
+1e
 80
 00
+6f
+e0
+cc
+32
 20
 40
-42
-36
-20
-40
-41
-b5
-c0
-18
-03
-b7
-c0
-18
-c2
-17
-c0
-2c
-42
-20
-c0
-0c
 03
-bc
+e4
 20
 40
-41
-b2
-20
-00
-1a
-f4
+04
+08
+68
+48
+cc
+32
 20
 20
-03
-af
+3f
+56
+70
+4c
+36
+00
+68
+48
+cc
+32
 6f
 e0
-c9
-c2
-c0
-29
-03
-ba
-20
-20
-41
-bd
-70
-49
-27
-0c
+cc
+33
 20
+40
+04
+17
+67
+e0
+cc
+33
+6f
+e0
+cc
+35
 20
-46
-ee
-70
-49
-27
-0d
-58
+3a
+04
+13
+6f
+e0
+cc
+34
+c1
 00
 80
-06
-20
-40
-5b
-0c
-20
-40
-03
-c3
-da
-60
-4b
-f3
-20
-40
-42
-2b
-20
-20
-02
-22
-df
-20
 00
-0f
+70
+4c
+34
+01
 20
 20
-7d
-13
+40
+69
 6f
 e0
-c9
-27
+cc
+34
 c1
-86
 00
 00
-6f
-e0
-c9
-92
-c0
 00
-83
-ca
+70
+4c
+34
+00
 20
 60
 00
 00
-58
+1f
+e3
+fe
+00
+1f
+e2
+24
 00
-02
-04
-67
-e1
-4b
-ed
 20
 40
-03
-dd
-6f
-e0
-c8
-d3
-c2
-83
-83
-d2
+60
+59
+79
 20
-40
+a4
+00
+1a
+41
+7e
+07
+68
+48
+cc
+36
+18
+42
+0e
+00
+c0
 03
-e5
-67
-e0
-c8
-d3
+84
+21
+c0
+00
+04
+23
 20
 60
 00
 00
-20
-40
-03
-d5
-67
-e0
-c8
-d3
+70
+4c
+35
+01
 20
 60
 00
 00
-1f
-e2
-04
+70
+4c
+35
 00
-df
-e0
-01
+20
+60
 00
-98
-46
-7e
 00
 20
 40
-03
-e5
+40
+72
+20
+74
+00
+00
+6f
+e0
+c9
+92
 1f
 e2
 04
 00
-df
-e0
-01
-00
-98
-46
+6f
+e4
+4b
+ab
+c2
+9e
+84
+31
+18
+42
 7e
 00
-20
-60
-00
-00
-6f
+1f
 e0
-c8
-d1
-c2
-83
-83
-e2
-20
-40
+fe
+01
+1f
+e1
+7e
 03
-e5
 67
 e0
-c8
-d1
-20
-60
-00
-00
+c9
+92
 20
 40
-03
-d5
-67
-e0
-c8
-d1
+40
+95
 20
-60
-00
-00
-68
-48
-cb
-ed
-98
-4f
-fe
-00
-68
-48
-cb
-ee
-98
-46
-fc
-00
 20
-40
-7d
-ef
+45
+ee
+6f
+e0
+cc
+35
+24
+3a
+04
+3c
+6f
+e4
+4b
+ab
+c2
+8e
+04
+39
 18
-07
-fe
+42
+7e
 00
-1f
-e6
-7c
-7f
-24
-21
-03
-ee
-20
-60
+c1
+01
 00
 00
-58
+1f
+e0
+fe
+01
+20
+20
+04
+2e
+18
+42
+7e
 00
+c1
+01
+80
 00
-7f
 20
-60
+20
+04
+37
+18
+42
+7e
 00
+c1
 00
-cf
-cd
-aa
-55
-40
 00
 00
+1f
+e0
+ff
+ff
+20
+20
+04
+2e
+20
 40
-09
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-08
-08
-00
+3f
+65
+20
+75
 80
 00
+20
 40
-01
-00
-88
-56
-5b
-46
-00
-01
-00
-00
-00
-00
-00
-00
-00
-00
+42
+36
+20
+40
+41
+b5
+c0
 18
+04
+4b
+c0
+18
+c2
+17
+c0
+2c
+42
+20
+c0
+0c
+04
+50
+20
+40
+41
+b2
+20
 00
+1a
+f4
+20
+20
+04
+43
+6f
+e0
+c9
+c2
+c0
+29
+04
+4e
+20
+20
+41
+bd
+70
+49
+27
+0c
+20
+20
+46
+ee
+70
+49
+27
+0d
+58
 00
+80
+06
+20
+40
+5b
+0c
+20
+40
+04
+57
+da
+60
+4c
+3d
+20
+40
+42
+2b
+20
+20
+02
+61
+df
+20
 00
+0f
+20
+20
+7d
+13
+6f
+e0
+c9
+27
+c1
+86
 00
 00
+6f
+e0
+c9
+92
+c0
 00
+84
+5e
+20
+60
 00
 00
+58
 00
-80
-00
+02
+04
+67
+e1
+4c
+37
+20
+40
+04
+71
+6f
+e0
+c8
+d3
+c2
+83
+84
+66
+20
+40
+04
+79
+67
+e0
+c8
+d3
+20
+60
 00
 00
-02
+20
+40
+04
+69
+67
+e0
+c8
+d3
+20
+60
 00
 00
+1f
+e2
+04
 00
+df
+e0
 01
 00
+98
+46
+7e
 00
 20
+40
+04
+79
+1f
+e2
 04
-16
-00
 00
-aa
-55
+df
+e0
 01
 00
-9a
-40
-08
-aa
-55
-03
+98
+46
+7e
 00
-7a
-41
-88
-12
-ce
-aa
-55
-01
+20
+60
 00
-c5
+00
+6f
+e0
+c8
+d1
+c2
+83
+84
+76
+20
 40
-18
-aa
-55
-01
+04
+79
+67
+e0
+c8
+d1
+20
+60
 00
-ef
-41
-ff
-aa
-55
-02
 00
-ca
+20
 40
-ef
-41
-aa
-55
-01
+04
+69
+67
+e0
+c8
+d1
+20
+60
 00
-7d
-41
-70
-aa
-55
-01
 00
-d0
-44
+68
+48
+cc
+37
+98
+4f
+fe
 00
-aa
-55
-01
+68
+48
+cc
+38
+98
+46
+fc
 00
-ea
-41
-ff
-aa
-55
-01
+20
+40
+7d
+ef
+18
+07
+fe
 00
-ee
-41
+1f
+e6
+7c
+7f
+24
+21
+04
+82
+20
+60
 00
-aa
-55
-08
 00
-ab
-4b
-04
-08
-0a
+58
 00
-01
-80
-03
-1b
-aa
-55
-0c
 00
-fe
-48
-b0
+7f
+20
+60
+00
+00
+6f
+e0
+cb
+f6
+20
+7a
+00
+00
+6f
+e0
+cb
+f7
+c0
+01
 04
-58
+90
+c0
 02
-64
-64
+84
+92
+c0
+04
+04
 94
-85
-90
-63
-75
-80
-aa
-55
-1a
-00
-0d
-49
-0b
-0c
-0d
-ff
-ff
-ff
+c0
 05
+84
+96
+c0
+07
 04
-03
-03
+98
+c0
 08
-0b
-0c
-0d
-ff
-ff
-ff
-ff
-07
-06
-ff
-ff
-ff
-03
-00
-00
-aa
-55
-01
+84
+8e
+20
+60
 00
-58
-0b
-ff
-aa
-55
-12
 00
-cc
+70
 4b
+f7
+12
+20
+60
 00
-05
 00
-04
+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
-aa
-55
+70
+4b
+f6
 01
-00
-99
+70
 40
-01
-aa
-55
-02
+99
 00
-b3
-4b
-03
-01
-aa
-55
-08
+20
+20
+05
+8c
+20
+60
 00
-38
-49
 00
-34
-ff
-ff
-ff
-ff
-ff
-ff
-aa
-55
-07
+70
+47
+c6
+af
+20
+40
+22
+91
+20
+40
+26
+5b
+24
+6c
 00
-56
-49
-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
-13
-00
-b5
-4b
+24
+77
+80
 00
+20
 40
+25
+97
+20
+20
+26
+72
+6f
+e0
+c8
 0a
-60
-06
-0a
-00
-64
+c1
+d7
+80
 00
-70
-17
-14
-0a
-90
-01
+ef
+e0
+80
+06
 e8
-03
-90
-01
-aa
-55
+40
+80
+06
+18
+46
+7c
 02
+24
+22
+93
+7a
+c0
 00
-ca
-4b
-07
-06
-aa
-55
+84
+bb
+c0
 01
-00
+04
+be
 c0
-49
-02
-aa
-55
 01
-00
-fd
-48
+84
+c0
+c0
 02
-aa
-55
-01
-00
-a1
-44
-05
-aa
-55
-06
-00
-e3
-48
+04
+c2
+c0
+02
+85
+1a
+c0
+03
 05
-01
-9f
-00
-b1
-00
-aa
-55
-0a
-00
-eb
-48
-10
-00
-52
-00
-35
-00
-21
+40
+c0
+7f
+84
+ba
+20
+20
+13
+7a
+20
+60
 00
-25
 00
-aa
-55
+20
+40
+04
+a1
+70
+4b
+f7
 01
+20
+60
 00
-f7
-48
-0a
-aa
-55
-02
 00
-c8
+70
 4b
-64
+f7
+04
+20
+60
 00
-aa
-55
-03
 00
-de
+70
 4b
+f7
+07
+20
+60
 00
 00
-00
-aa
-55
-01
-00
-ab
-4a
-ff
-aa
-55
-01
-00
-e2
+70
 4b
-01
-aa
-55
-01
+f7
+0a
+ef
+e1
 00
-77
+06
+e8
 41
-20
-aa
-55
-01
-00
-8a
-4b
-20
-aa
-55
-01
 00
-7d
-44
-06
-aa
-55
 06
+6a
+21
+4c
+18
+9a
+26
+7c
 00
-a8
-40
-15
-a0
-c8
-12
-23
-51
-aa
-55
-0c
-00
-fc
-45
-0b
-42
-54
-33
-2e
-30
-20
-4d
+24
+22
+85
+38
 6f
-75
-73
-65
-aa
-55
+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
-55
-44
-0e
 00
-01
+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
-aa
-55
-01
+e4
+d8
+40
 00
+03
+da
+20
+09
+d2
+20
+40
+5d
+e2
+6f
+e0
+89
+d2
+c0
+ad
+7e
+56
+e8
 41
-46
-0a
-aa
-55
-01
-00
-64
-47
-01
-aa
-55
-01
 00
-78
-46
+06
+60
+49
+09
+5c
+60
+49
+09
+e8
+6f
+e0
+89
+d2
+dd
+60
+ff
+ff
+d8
+40
 00
-aa
-55
-01
 00
-5f
-41
+d8
+c0
+09
+d2
+df
+20
 00
-aa
-55
 03
+20
+40
+05
+50
+18
+42
+60
 00
-65
-47
+6f
+e1
+4b
+f3
+1f
+e0
+ee
 03
-00
+20
+40
 04
-aa
-55
-01
-00
-8e
-47
-01
-aa
-55
-01
+fd
+1e
+f0
+fe
 00
+67
+e1
+02
+e4
 d8
 40
-01
-aa
-55
-0c
 00
-e7
-43
-1f
 02
-01
-05
-03
-03
-12
-18
-03
-19
-c2
-03
-aa
-55
-14
+da
+20
+09
+d2
+20
+40
+5d
+e2
+6f
+e1
+09
+d2
+9d
+66
+7c
 00
+24
+22
+fe
+56
+6f
+e0
+89
 d2
-4a
-06
-ff
-06
+9e
 00
-03
+e0
 00
+ef
+e0
 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
-08
-00
-72
-43
-07
+06
+9e
 00
-07
+e0
 00
-20
+58
 00
-2c
+ff
+ff
+9e
 01
-aa
-55
-06
+60
 00
-cc
-4a
-03
-12
-18
-ff
+20
+20
+7e
+54
+6f
+e1
+09
+5c
+20
+7a
 00
 00
-aa
-55
+1f
+e2
 04
 00
-28
-44
-00
-00
-00
-00
-aa
-55
-01
-00
-32
-44
-07
-aa
-55
-08
+1f
+e6
+7c
+10
+20
+21
+05
+18
+1f
+e0
+ff
+f0
+d8
+40
 00
-4c
-44
-fb
+10
+67
+e1
+09
+5c
+18
+42
+5e
 00
-48
-08
-fb
+1e
+e2
+7e
 00
-48
-08
-aa
-55
-06
+1f
+f0
+fe
 00
-7a
-43
-8e
-b1
-3a
-0e
-8e
-ed
-aa
-55
+67
+e1
 02
+e4
+da
+20
+09
+d2
+20
+40
+5d
+e2
+1e
+e2
+7e
 00
-e7
-4a
-15
+9d
+e0
+ee
 00
-aa
-55
-02
+1d
+e2
+72
 00
-57
-43
-19
+1d
+62
+7e
+00
+d8
+c0
+09
+d2
+ef
+e0
 00
-aa
-55
 06
+1f
+e2
+56
 00
-e9
-4a
 1d
+e2
+72
 00
-21
-00
-30
-00
-aa
-55
+d8
+c0
+09
+d2
+1e
 02
+04
 00
-d1
-43
-2d
-00
-aa
-55
-01
-00
-f0
-4a
-96
-aa
-55
-01
+20
+40
+05
+50
+18
+42
+60
 00
-86
-44
-ff
-aa
-55
-01
+20
+20
+04
+fd
+58
 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
-04
-00
-ef
-4b
-07
+20
 05
 04
-06
-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
+70
+4b
+f7
 0d
-10
-1d
-ed
-7d
+ef
+e0
 80
-ff
-ff
-1b
-35
-28
-b4
-29
+06
+18
+c2
+22
+00
+68
+48
+cc
+1c
+98
 46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
+7c
+00
+20
+22
+85
+36
+20
+40
+05
 47
-42
-10
-ff
-ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
+24
+34
+05
+38
+1a
 46
-7a
-e5
 7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
+04
+20
+21
+05
+38
+1a
+40
+a5
+fc
+62
+41
 09
-00
-ff
-ff
+59
+62
+21
 09
-5a
-ff
-27
-ab
+57
+20
 40
-be
-d1
-a0
+5d
+d3
+20
+40
+05
+3a
+20
+40
+5d
+da
+6a
 41
-a1
-12
-a5
-84
-a7
-ff
-b5
-d0
-b6
-00
-ff
-00
 09
-00
-ff
-ff
+59
+6a
+21
 09
-5a
-0d
-10
-0e
-c5
-5b
+57
+6f
+e1
+4c
+18
 9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
+40
+fe
+00
+67
+e1
 4c
-90
-4d
-70
-09
+18
+1a
+42
+72
 00
-ff
-ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
+d8
+40
 00
-ff
-ff
-09
-a5
-46
-34
-60
-07
-69
-04
-7d
-20
-7e
 00
-09
+1a
+22
+0c
 00
-ff
-ff
-aa
-55
-12
-00
-f3
-4b
-09
-5a
-62
-63
-6e
-63
+20
+40
+05
+50
 6f
-63
+e1
+4c
+1a
+98
+40
+fe
+00
+67
+e1
+4c
+1a
 70
-63
-71
-63
-19
-04
-09
+4b
+f5
 00
-ff
-ff
-aa
-55
-08
+20
+60
 00
-a3
-4a
-09
-5a
-0b
-f3
-09
 00
-ff
-ff
-aa
-55
-08
+70
+4b
+f5
+01
+20
+60
 00
-e3
+00
+6f
+e1
 4b
-09
-a5
-0b
 f3
-09
+20
+7a
 00
-ff
-ff
-aa
-55
-02
 00
-8d
-44
-2d
+68
 49
-aa
-55
-01
+4c
+18
+98
+40
+fe
 00
-8c
-44
-01
-aa
-55
-01
+1a
+42
+04
 00
-65
-48
-01
-aa
-55
-01
+20
+20
+5e
+04
+6f
+e0
+cb
+f7
+c1
+08
 00
-64
-48
-01
-aa
-55
-01
 00
-36
-48
-01
-aa
-55
-01
+c1
+08
+80
 00
-a8
-48
-06
-aa
-55
-02
+c1
+09
 00
-38
-48
-c0
-12
-aa
-55
-03
 00
-54
-48
-19
-19
-1c
-aa
-55
+70
+4c
+1d
+05
+70
+4b
+f7
 10
+20
+60
 00
-40
-48
-00
-13
-2c
-42
-06
-15
-36
-48
-0f
-1a
-3a
-4c
-11
-23
-31
-4d
-aa
-55
-01
 00
-5b
+68
 48
+cc
+1c
+67
+e0
+cc
+1c
+c0
 00
-aa
-55
 05
+4d
+98
+46
+7e
 00
-77
-48
-20
-15
-10
-05
-4e
-aa
-55
-05
+c0
 00
-8c
-48
-01
-0f
-0f
-0f
-0f
-aa
-55
+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
-ad
-48
-0c
-f8
+c2
 00
+05
+50
+20
+60
 00
-77
-01
-aa
-55
-03
 00
-5c
-48
+58
 00
-48
-60
-aa
-55
-01
+ff
+ff
+ef
+e0
 00
-7d
-48
-07
-aa
-55
-02
+06
+20
+60
 00
-99
+00
+6f
+20
+c8
+2a
+1f
+26
+7c
+02
+20
+21
+7e
+56
+df
+e0
 48
-b5
-4a
-aa
-55
-01
+0a
+9f
+20
+8c
 00
-ca
+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
-aa
-55
+06
+c0
+ad
+05
+7c
+1a
+22
 02
 00
-c2
-48
-14
+68
+49
 00
-aa
-55
+06
+18
+46
+7c
+03
+20
+21
+05
+7c
+18
+c0
+8c
 02
+ef
+20
+80
+06
+1f
+26
+7c
 00
-c0
-48
-50
+24
+22
+85
+7c
+1f
+22
+7e
 00
-aa
-55
-03
+98
+c0
+8c
 00
-b8
-48
+18
+42
+7e
 00
-a6
-0e
-aa
-55
+1f
+20
+f2
 03
+9f
+26
+04
 00
-b8
-49
+24
+22
+85
+67
+e8
+41
 00
-50
+06
+1a
+20
+8c
+01
+ef
+e1
 00
-aa
-55
+06
+1f
+e0
+f2
 02
+1a
+20
+8c
+01
+20
+40
+05
+54
+98
+46
+7c
 00
-79
-44
-80
+24
+22
+85
+7c
+20
+20
+7e
+54
+20
+20
+7e
+56
+6f
+e1
+4b
+f3
 1f
-aa
-55
-01
+e2
+0c
 00
-83
-44
-80
-aa
-55
+20
+40
+05
+63
+24
+34
+05
+88
+6a
+21
+4b
+f3
+1a
+20
+8c
 01
+ef
+e1
 00
-e8
-41
-01
-15
-e9
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+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
+d0
+40
+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
+00
+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
+12
+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
+08
+0a
+00
+01
+80
+03
+1b
+aa
+55
+0c
+00
+fe
+48
+b0
+04
+58
+02
+64
+64
+94
+85
+90
+63
+75
+80
+aa
+55
+03
+00
+0d
+49
+0b
+0c
+0d
+aa
+55
+01
+00
+32
+4c
 ff
+aa
+55
+17
+00
+10
+49
 ff
 ff
 ff
+05
+04
+03
+03
+08
+0b
+0c
+0d
 ff
 ff
 ff
 ff
+07
+06
 ff
 ff
 ff
+03
+00
+00
+aa
+55
+03
+00
+ed
+4b
 ff
+58
+02
+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
+03
+01
+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
@@ -7391,38 +6470,959 @@
 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
+12
+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
+3a
+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
+04
+00
+39
+4c
+07
+05
+04
+06
+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
+12
+00
+3d
+4c
+09
+5a
+62
+63
+6e
+63
+6f
+63
+70
+63
+71
+63
+19
+04
+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
+aa
+55
+05
+00
+f0
+4b
+02
+40
+00
+02
+1d
+32
+f0
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-0e
-ec
+04
+4c
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/output/memmap.format	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/output/memmap.format	(working copy)
@@ -2206,13 +2206,34 @@
 0x4be2 mem_power_on_flag
 0x4be3 mem_ka8g2_sensor_poweron_init
 0x4beb mem_24g_pair_count
-0x4bed mem_mouse_xy_date_times
-0x4bef mem_om16_dpi
-0x4bef mem_om16_dpi_0
-0x4bf0 mem_om16_dpi_1
-0x4bf1 mem_om16_dpi_2
-0x4bf2 mem_om16_dpi_3
-0x4bf3 mem_sensor_om18_init
+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_xy_date_times
+0x4c39 mem_om16_dpi
+0x4c39 mem_om16_dpi_0
+0x4c3a mem_om16_dpi_1
+0x4c3b mem_om16_dpi_2
+0x4c3c mem_om16_dpi_3
+0x4c3d mem_sensor_om18_init
 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/XZR/mouse_public_xzr/output/program.lis	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/output/program.lis	(working copy)
@@ -1,1329 +1,2018 @@
               include "bt_format "
               org 0x0000
-0000 c2840018 bbit1 8 ,pf_patch_ext 
-0001 c0000023 beq patch00_0 ,p_soft_reset 
-0002 c0018027 beq patch00_3 ,p_main_loop 
-0003 c0418040 beq patch10_3 ,p_set_sync_on 
-0004 c0458077 beq patch11_3 ,p_initialize_radio_cont 
-0005 c04f8084 beq patch13_7 ,p_init_param 
-0006 c0570086 beq patch15_6 ,p_app_init 
-0007 c058006b beq patch16_0 ,p_app_evt_100ms_loop 
-0008 c0618211 beq patch18_3 ,p_mouse_start_work 
-0009 c0638124 beq patch18_7 ,p_mouse_app_enter_hibernate 
-000a c064812f beq patch19_1 ,p_mouse_setgpio_hibernate 
-000b c0650162 beq patch19_2 ,p_mouse_lpm_before_common 
-000c c0660067 beq patch19_4 ,p_mouse_adc_read_start 
-000d c0670300 beq patch19_6 ,p_mouse_motion 
-000e c0680220 beq patch1a_0 ,p_mouse_seting_dpi 
-000f c068835e beq patch1a_1 ,p_mouse_check_key_gpio 
-0010 c06983ac beq patch1a_3 ,p_mouse_init_sunt 
-0011 c06a0344 beq patch1a_4 ,p_mouse_sensor_poweron 
-0012 c06b018d beq patch1a_6 ,p_mouse_priority_bb_event 
-0013 c06c8257 beq patch1b_1 ,p_mouse_bb_event_timer 
-0014 c06d02a5 beq patch1b_2 ,p_mouse_start_discovery 
-0015 c06f0394 beq patch1b_6 ,p_mouse_idle 
-0016 c07402b2 beq patch1d_0 ,p_hid_rx_process 
-0017 2020137c branch loop 
+0000 c2840019 bbit1 8 ,pf_patch_ext 
+0001 c0000024 beq patch00_0 ,p_soft_reset 
+0002 c0018028 beq patch00_3 ,p_main_loop 
+0003 c0418041 beq patch10_3 ,p_set_sync_on 
+0004 c0458082 beq patch11_3 ,p_initialize_radio_cont 
+0005 c04f808f beq patch13_7 ,p_init_param 
+0006 c0570091 beq patch15_6 ,p_app_init 
+0007 c0580076 beq patch16_0 ,p_app_evt_100ms_loop 
+0008 c0618250 beq patch18_3 ,p_mouse_start_work 
+0009 c063815f beq patch18_7 ,p_mouse_app_enter_hibernate 
+000a c064816a beq patch19_1 ,p_mouse_setgpio_hibernate 
+000b c065019e beq patch19_2 ,p_mouse_lpm_before_common 
+000c c0660072 beq patch19_4 ,p_mouse_adc_read_start 
+000d c0670354 beq patch19_6 ,p_mouse_motion 
+000e c0678425 beq patch19_7 ,p_mouse_dpi_process 
+000f c068025f beq patch1a_0 ,p_mouse_seting_dpi 
+0010 c06883b2 beq patch1a_1 ,p_mouse_check_key_gpio 
+0011 c0698440 beq patch1a_3 ,p_mouse_init_sunt 
+0012 c06a0398 beq patch1a_4 ,p_mouse_sensor_poweron 
+0013 c06b01c9 beq patch1a_6 ,p_mouse_priority_bb_event 
+0014 c06c8296 beq patch1b_1 ,p_mouse_bb_event_timer 
+0015 c06d02f9 beq patch1b_2 ,p_mouse_start_discovery 
+0016 c06f03e8 beq patch1b_6 ,p_mouse_idle 
+0017 c0740306 beq patch1d_0 ,p_hid_rx_process 
+0018 2020137c branch loop 
 
 pf_patch_ext:
-0018 c0198047 beq patch26_3 ,p_adc_init_data 
-0019 c01a004c beq patch26_4 ,p_enable_adc 
-001a c04382ae beq patch30_7 ,p_ui_timer_check 
-001b c05082c6 beq patch34_1 ,p_le_slave_match 
-001c c06002d0 beq patch38_0 ,p_le_parse_l2cap 
-001d c06e8201 beq patch3b_5 ,p_g24_dispatch 
-001e c07101dc beq patch3c_2 ,p_g24_pair_dispatch 
-001f c07481e4 beq patch3d_1 ,p_g24_reconn_dispatch 
-0020 c07500ee beq patch3d_2 ,p_g24_transmit_no_interrupt 
-0021 c07602f7 beq patch3d_4 ,p_g24_lpm_wait 
-0022 2020137c branch loop 
+0019 c0198052 beq patch26_3 ,p_adc_init_data 
+001a c01a0057 beq patch26_4 ,p_enable_adc 
+001b c0438302 beq patch30_7 ,p_ui_timer_check 
+001c c050831a beq patch34_1 ,p_le_slave_match 
+001d c0600324 beq patch38_0 ,p_le_parse_l2cap 
+001e c06e823f beq patch3b_5 ,p_g24_dispatch 
+001f c071021a beq patch3c_2 ,p_g24_pair_dispatch 
+0020 c0748222 beq patch3d_1 ,p_g24_reconn_dispatch 
+0021 c0750128 beq patch3d_2 ,p_g24_transmit_no_interrupt 
+0022 c076034b beq patch3d_4 ,p_g24_lpm_wait 
+0023 2020137c branch loop 
 
 p_soft_reset:
-0023 20800000 clear_stack 
-0024 204030f3 call app_param_init 
-0025 20403bfd call mouse_xtal_init 
-0026 20200804 branch soft_reset + 3 
+0024 20800000 clear_stack 
+0025 204030f3 call app_param_init 
+0026 20403bfd call mouse_xtal_init 
+0027 20200804 branch soft_reset + 3 
 
 p_main_loop:
-0027 2040706c call sp_calc_sequence 
-0028 20407597 call sp_calc_sequence_256 
-0029 20406ea7 call sp_calc_sequence_256_check 
-002a 20401b93 call le_advertising_dispatch + 1 
-002b 2040083a call idle_dispatch 
-002c 20403108 call app_process_idle + 1 
-002d 20400892 call inquiry_dispatch + 1 
-002e 20400b08 call inquiry_scan_dispatch + 1 
-002f 20400b7b call page_scan_dispatch + 1 
-0030 20400823 call connection_dispatch + 1 
-0031 204021d3 call g24_dispatch + 2 
-0032 20400034 call p_lpm_dispatch 
-0033 20200813 branch main_loop 
+0028 2040706c call sp_calc_sequence 
+0029 20407597 call sp_calc_sequence_256 
+002a 20406ea7 call sp_calc_sequence_256_check 
+002b 20401b93 call le_advertising_dispatch + 1 
+002c 2040083a call idle_dispatch 
+002d 20403108 call app_process_idle + 1 
+002e 20400892 call inquiry_dispatch + 1 
+002f 20400b08 call inquiry_scan_dispatch + 1 
+0030 20400b7b call page_scan_dispatch + 1 
+0031 20400823 call connection_dispatch + 1 
+0032 204021d3 call g24_dispatch + 2 
+0033 20400035 call p_lpm_dispatch 
+0034 20200813 branch main_loop 
 
 p_lpm_dispatch:
-0034 20401465 call lpo_calibration 
-0035 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-0036 207a0000 rtn blank 
-0037 6fe0c099 fetch 1 ,mem_lpm_mode 
-0038 207a0000 rtn blank 
-0039 6fe0c764 fetch 1 ,mem_ssp_enable 
-003a 203a003d branch p_lpm_dispatch_next ,blank 
-003b 6fe0c6b9 fetch 1 ,mem_sp_local_key_invalid 
-003c 207a0000 rtn blank 
+0035 20401465 call lpo_calibration 
+0036 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+0037 207a0000 rtn blank 
+0038 6fe0c099 fetch 1 ,mem_lpm_mode 
+0039 207a0000 rtn blank 
+003a 6fe0c764 fetch 1 ,mem_ssp_enable 
+003b 203a003e branch p_lpm_dispatch_next ,blank 
+003c 6fe0c6b9 fetch 1 ,mem_sp_local_key_invalid 
+003d 207a0000 rtn blank 
 
 p_lpm_dispatch_next:
-003d 6fe0c6ba fetch 1 ,mem_sc_calc 
-003e 247a0000 nrtn blank 
-003f 202014ea branch lpm_dispatch_next + 3 
+003e 6fe0c6ba fetch 1 ,mem_sc_calc 
+003f 247a0000 nrtn blank 
+0040 202014ea branch lpm_dispatch_next + 3 
 
 p_set_sync_on:
-0040 70890005 jam 0x5 ,modem_en 
-0041 20000002 nop 2 
-0042 70890000 jam 0x0 ,modem_en 
-0043 6fe0c0c5 fetch 1 ,mem_fcomp_div 
-0044 c00c1168 beq xtal_24m ,set_sync_on_24m 
+0041 70890005 jam 0x5 ,modem_en 
+0042 20000002 nop 2 
+0043 70890000 jam 0x0 ,modem_en 
+0044 6fe0c0c5 fetch 1 ,mem_fcomp_div 
+0045 c00c1168 beq xtal_24m ,set_sync_on_24m 
 
 p_set_sync_on_16m:
-0045 708a8729 jam 0x29 ,core_syn_afc_cfg1 
-0046 2020117d branch set_sync_on_16m 
+0046 708a8729 jam 0x29 ,core_syn_afc_cfg1 
+0047 2020117d branch set_sync_on_16m 
+
+p_g24_load_ota_config_poweron:
+0048 20405b94 call iicd_load_gpio_init 
+0049 204004d9 call p_g24_check_ota_data 
+004a 2034004c branch p_g24_load_ota_config ,user 
+004b 20600000 rtn 
+
+p_g24_load_ota_config:
+004c da605de2 arg iicd_read_eep ,regc 
+004d 6fe14bf3 fetch 2 ,mem_g24_ota_config_addr 
+004e 1fe0fe03 increase 3 ,pdata 
+004f 1ff0fe00 byteswap pdata ,pdata 
+0050 67e102e4 store 2 ,mem_addr_mi 
+0051 20205b3f branch load_storage_loop 
 
 p_adc_init_data:
-0047 da20099e arg mem_temp_block2 ,rega 
-0048 d840000c arg 12 ,temp 
-0049 58000030 setarg efuse_offset_adc_param 
-004a 20405e63 call efuse_read_data 
-004b 202060bf branch adc_init_data + 6 
+0052 da20099e arg mem_temp_block2 ,rega 
+0053 d840000c arg 12 ,temp 
+0054 58000030 setarg efuse_offset_adc_param 
+0055 20405e63 call efuse_read_data 
+0056 202060bf branch adc_init_data + 6 
 
 p_enable_adc:
-004c 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
-004d 708a123d jam 0x3d ,core_rf_ldo_cfg6 
-004e 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
-004f 708a0a0c jam 0x0c ,core_rf_ldo_en0 
-0050 6ff08a09 fetch 1 ,core_clkpll_cfg6 
-0051 79207e07 set1 7 ,pdata 
-0052 67f08a09 store 1 ,core_clkpll_cfg6 
-0053 708a0b04 jam 0x04 ,core_rf_ldo_en1 
-0054 2000003c nop 60 
-0055 708a1600 jam 0 ,core_syn_en 
-0056 708a1706 jam 6 ,core_rx_en0 
-0057 2040611a call read_adc_mode 
-0058 67f08a97 store 1 ,core_gpadc_ctrl 
-0059 7080dc03 jam 0x03 ,core_sum_ctrl 
-005a 2000003c nop 60 
-005b 6ff08053 fetch 1 ,core_sum_en 
+0057 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
+0058 708a123d jam 0x3d ,core_rf_ldo_cfg6 
+0059 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
+005a 708a0a0c jam 0x0c ,core_rf_ldo_en0 
+005b 6ff08a09 fetch 1 ,core_clkpll_cfg6 
 005c 79207e07 set1 7 ,pdata 
-005d 67f08053 store 1 ,core_sum_en 
-005e 200003e8 nop 1000 
-005f 6ff10150 fetch 2 ,core_adc_sum 
-0060 67e144a2 store 2 ,mem_adc_current_value 
-0061 6ff08053 fetch 1 ,core_sum_en 
-0062 793ffe07 set0 7 ,pdata 
-0063 67f08053 store 1 ,core_sum_en 
-0064 708a9700 jam 0 ,core_gpadc_ctrl 
-0065 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
-0066 20600000 rtn 
+005d 67f08a09 store 1 ,core_clkpll_cfg6 
+005e 708a0b04 jam 0x04 ,core_rf_ldo_en1 
+005f 2000003c nop 60 
+0060 708a1600 jam 0 ,core_syn_en 
+0061 708a1706 jam 6 ,core_rx_en0 
+0062 2040611a call read_adc_mode 
+0063 67f08a97 store 1 ,core_gpadc_ctrl 
+0064 7080dc03 jam 0x03 ,core_sum_ctrl 
+0065 2000003c nop 60 
+0066 6ff08053 fetch 1 ,core_sum_en 
+0067 79207e07 set1 7 ,pdata 
+0068 67f08053 store 1 ,core_sum_en 
+0069 200003e8 nop 1000 
+006a 6ff10150 fetch 2 ,core_adc_sum 
+006b 67e144a2 store 2 ,mem_adc_current_value 
+006c 6ff08053 fetch 1 ,core_sum_en 
+006d 793ffe07 set0 7 ,pdata 
+006e 67f08053 store 1 ,core_sum_en 
+006f 708a9700 jam 0 ,core_gpadc_ctrl 
+0070 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
+0071 20600000 rtn 
 
 p_mouse_adc_read_start:
-0067 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-0068 247a0000 nrtn blank 
-0069 2040004c call p_enable_adc 
-006a 20203ebb branch mouse_adc_read_start + 3 
+0072 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+0073 247a0000 nrtn blank 
+0074 20400057 call p_enable_adc 
+0075 20203ebb branch mouse_adc_read_start + 3 
 
 p_app_evt_100ms_loop:
-006b 6fe0830d fetch 1 ,mem_app_evt_timer_count 
-006c 207a0000 rtn blank 
-006d 1fe0ffff increase -1 ,pdata 
-006e 67e0830d store 1 ,mem_app_evt_timer_count 
-006f 204077c5 call ui_button_polling 
-0070 204031e3 call app_lpm_wake_auto_lock_timer 
-0071 204031a4 call app_unsniff_delay_timer 
-0072 204031aa call app_discovery_timer 
-0073 20405cdc call flash_write_spi_sm_timer 
-0074 6fe1446f fetch 2 ,mem_cb_event_timer 
-0075 20407e05 call callback_func 
-0076 2020006b branch p_app_evt_100ms_loop 
+0076 6fe0830d fetch 1 ,mem_app_evt_timer_count 
+0077 207a0000 rtn blank 
+0078 1fe0ffff increase -1 ,pdata 
+0079 67e0830d store 1 ,mem_app_evt_timer_count 
+007a 204077c5 call ui_button_polling 
+007b 204031e3 call app_lpm_wake_auto_lock_timer 
+007c 204031a4 call app_unsniff_delay_timer 
+007d 204031aa call app_discovery_timer 
+007e 20405cdc call flash_write_spi_sm_timer 
+007f 6fe1446f fetch 2 ,mem_cb_event_timer 
+0080 20407e05 call callback_func 
+0081 20200076 branch p_app_evt_100ms_loop 
 
 p_initialize_radio_cont:
-0077 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-0078 2040126a call initialize_syn_afc_cfg1 
-0079 20401271 call initialize_rf_ldo_cfg1 
-007a 20401277 call initialize_rc_cal 
-007b 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
-007c 708a0305 jam 5 ,core_clkpll_cfg0 
-007d 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-007e 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-007f 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0080 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-0081 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
-0082 70892140 jam 0x40 ,core_rx_ctrl1 
-0083 2020125d branch initialize_radio_cont + 8 
+0082 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+0083 2040126a call initialize_syn_afc_cfg1 
+0084 20401271 call initialize_rf_ldo_cfg1 
+0085 20401277 call initialize_rc_cal 
+0086 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
+0087 708a0305 jam 5 ,core_clkpll_cfg0 
+0088 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0089 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+008a 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+008b 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+008c 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
+008d 70892140 jam 0x40 ,core_rx_ctrl1 
+008e 2020125d branch initialize_radio_cont + 8 
 
 p_init_param:
-0084 70008000 jam 0 ,mem_lmo_tid2 
-0085 202013b7 branch init_param_next + 1 
+008f 70008000 jam 0 ,mem_lmo_tid2 
+0090 202013b7 branch init_param_next + 1 
 
 p_app_init:
 
 p_mouse_init:
-0086 20406df3 call enable_authrom 
-0087 20400090 call p_mouse_setting_config 
-0088 204041a7 call mouse_init_sunt 
-0089 20758000 rtn wake 
-008a 2040034a call p_mouse_dpi_config 
-008b 20403d8a call mouse_usb_check_enable 
-008c 20404728 call mouse_drawing_optima_init 
-008d 204000a0 call p_mouse_cb_fuction 
-008e 20400356 call p_mouse_sensor_powerdown 
-008f 20203bc9 branch mouse_init + 8 
+0091 24558048 ncall p_g24_load_ota_config_poweron ,wake 
+0092 2455809d ncall p_mouse_le_name_load ,wake 
+0093 20406df3 call enable_authrom 
+0094 204000c8 call p_mouse_setting_config 
+0095 204041a7 call mouse_init_sunt 
+0096 20758000 rtn wake 
+0097 2040039e call p_mouse_dpi_config 
+0098 20403d8a call mouse_usb_check_enable 
+0099 20404728 call mouse_drawing_optima_init 
+009a 204000d8 call p_mouse_cb_fuction 
+009b 204003aa call p_mouse_sensor_powerdown 
+009c 20203bc9 branch mouse_init + 8 
+
+p_mouse_le_name_load:
+009d 6fe44c1f fetch 8 ,mem_le_name_patch 
+009e 207a0000 rtn blank 
+009f 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00a0 1fe22200 copy pdata ,rega 
+00a1 1fe67c0b sub pdata ,11 ,null 
+00a2 242100af nbranch p_mouse_le_name_patch_len_overflow ,positive 
+00a3 d8c04c1f arg mem_le_name_patch ,contr 
+00a4 d8a04adb arg mem_le_adv_swift_pair + 9 ,contw 
+00a5 1a227200 copy rega ,loopcnt 
+00a6 20407d5f call memcpy 
+00a7 d8c04c1f arg mem_le_name_patch ,contr 
+00a8 d8a0440a arg mem_le_scan_data + 2 ,contw 
+00a9 1a227200 copy rega ,loopcnt 
+00aa 20407d5f call memcpy 
+00ab d8c04c1f arg mem_le_name_patch ,contr 
+00ac d8a042f8 arg mem_le_name ,contw 
+00ad 1a227200 copy rega ,loopcnt 
+00ae 20207d5f branch memcpy 
+
+p_mouse_le_name_patch_len_overflow:
+00af 204000c5 call p_mouse_le_swift_pair_disable 
+00b0 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00b1 1fe0fe01 increase 1 ,pdata 
+00b2 67e0cad2 store 1 ,mem_le_adv_swift_pair 
+00b3 704ad309 jam 9 ,mem_le_adv_swift_pair + 1 
+00b4 d8c04c1f arg mem_le_name_patch ,contr 
+00b5 d8a04ad4 arg mem_le_adv_swift_pair + 2 ,contw 
+00b6 1a227200 copy rega ,loopcnt 
+00b7 20407d5f call memcpy 
+00b8 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
+00b9 1fe0fe01 increase 1 ,pdata 
+00ba 67e0c408 store 1 ,mem_le_scan_data 
+00bb 70440909 jam 9 ,mem_le_scan_data + 1 
+00bc d8c04c1f arg mem_le_name_patch ,contr 
+00bd d8a0440a arg mem_le_scan_data + 2 ,contw 
+00be 1a227200 copy rega ,loopcnt 
+00bf 20407d5f call memcpy 
+00c0 d8c04c1e arg mem_le_name_patch_len ,contr 
+00c1 d8a042f7 arg mem_le_name_len ,contw 
+00c2 1a227200 copy rega ,loopcnt 
+00c3 1f20f201 increase 1 ,loopcnt 
+00c4 20207d5f branch memcpy 
+
+p_mouse_le_swift_pair_disable:
+00c5 d8a04ad2 arg mem_le_adv_swift_pair ,contw 
+00c6 df200014 arg 20 ,loopcnt 
+00c7 20207d26 branch clear_mem 
 
 p_mouse_setting_config:
-0090 20758000 rtn wake 
-0091 20402607 call g24_transmit_init 
-0092 204022ff call g24_chmap_param_init 
-0093 20403f1e call mouse_gpio_init 
-0094 20403d13 call mouse_param_init 
-0095 2040009a call p_g24_short_sleep_set_8ms 
-0096 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0097 c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
-0098 2040009d call p_g24_short_sleep_set_4ms 
-0099 20203bf5 branch mouse_setting_config_next 
+00c8 20758000 rtn wake 
+00c9 20402607 call g24_transmit_init 
+00ca 204022ff call g24_chmap_param_init 
+00cb 20403f1e call mouse_gpio_init 
+00cc 20403d13 call mouse_param_init 
+00cd 204000d2 call p_g24_short_sleep_set_8ms 
+00ce 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00cf c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
+00d0 204000d5 call p_g24_short_sleep_set_4ms 
+00d1 20203bf5 branch mouse_setting_config_next 
 
 p_g24_short_sleep_set_8ms:
-009a 5800e290 setarg 58000 
-009b 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-009c 20600000 rtn 
+00d2 5800e290 setarg 58000 
+00d3 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+00d4 20600000 rtn 
 
 p_g24_short_sleep_set_4ms:
-009d 58001770 setarg 6000 
-009e 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-009f 20600000 rtn 
+00d5 58001770 setarg 6000 
+00d6 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+00d7 20600000 rtn 
 
 p_mouse_cb_fuction:
-00a0 580000a5 setarg p_mouse_24g_package_data 
-00a1 67e1489b store 2 ,mem_cb_24g_transmit_data 
-00a2 580000bf setarg p_mouse_24g_search_dongle 
-00a3 67e1489d store 2 ,mem_cb_24g_search_receiver 
-00a4 20203bd3 branch mouse_cb_fuction + 4 
+00d8 580000dd setarg p_mouse_24g_package_data 
+00d9 67e1489b store 2 ,mem_cb_24g_transmit_data 
+00da 580000f9 setarg p_mouse_24g_search_dongle 
+00db 67e1489d store 2 ,mem_cb_24g_search_receiver 
+00dc 20203bd3 branch mouse_cb_fuction + 4 
 
 p_mouse_24g_package_data:
-00a5 c6930000 rtnmark0 mark_24g 
-00a6 20403f70 call mouse_motion 
-00a7 24740000 nrtn user 
-00a8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-00a9 c30a80ac bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
-00aa 6fe0cb8b fetch 1 ,mem_customer_key 
-00ab 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
+00dd c6930000 rtnmark0 mark_24g 
+00de 6fe0cbf6 fetch 1 ,mem_g24_ota_mode 
+00df 243a0592 nbranch p_mouse_24g_package_ota ,blank 
+00e0 20403f70 call mouse_motion 
+00e1 24740000 nrtn user 
+00e2 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00e3 c30a80e6 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
+00e4 6fe0cb8b fetch 1 ,mem_customer_key 
+00e5 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
 
 p_mouse_24g_mouse_package_data:
-00ac 204042cb call mouse_data_xy_release 
-00ad 6fe0c836 fetch 1 ,mem_24g_data_type 
-00ae c28080bb bbit1 1 ,p_mouse_24g_mouse_package_data_now 
-00af 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
-00b0 6fe0c8d0 fetch 1 ,mem_mouse_key 
-00b1 9841fe00 ior temp ,pdata 
-00b2 67e0c8d0 store 1 ,mem_mouse_key 
-00b3 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
-00b4 6fe0c8d5 fetch 1 ,mem_mouse_z 
-00b5 9840fe00 iadd temp ,pdata 
-00b6 67e0c8d5 store 1 ,mem_mouse_z 
-00b7 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
-00b8 6fe0c8d6 fetch 1 ,mem_mouse_tz 
-00b9 9840fe00 iadd temp ,pdata 
-00ba 67e0c8d6 store 1 ,mem_mouse_tz 
+00e6 204042cb call mouse_data_xy_release 
+00e7 6fe0c836 fetch 1 ,mem_24g_data_type 
+00e8 c28080f5 bbit1 1 ,p_mouse_24g_mouse_package_data_now 
+00e9 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
+00ea 6fe0c8d0 fetch 1 ,mem_mouse_key 
+00eb 9841fe00 ior temp ,pdata 
+00ec 67e0c8d0 store 1 ,mem_mouse_key 
+00ed 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
+00ee 6fe0c8d5 fetch 1 ,mem_mouse_z 
+00ef 9840fe00 iadd temp ,pdata 
+00f0 67e0c8d5 store 1 ,mem_mouse_z 
+00f1 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
+00f2 6fe0c8d6 fetch 1 ,mem_mouse_tz 
+00f3 9840fe00 iadd temp ,pdata 
+00f4 67e0c8d6 store 1 ,mem_mouse_tz 
 
 p_mouse_24g_mouse_package_data_now:
-00bb 70483601 jam type_ms ,mem_24g_data_type 
-00bc da200007 arg 7 ,rega 
-00bd da4048d0 arg mem_mouse_key ,regb 
-00be 202026e1 branch g24_transmit_by_interrupt_enable 
+00f5 70483601 jam type_ms ,mem_24g_data_type 
+00f6 da200007 arg 7 ,rega 
+00f7 da4048d0 arg mem_mouse_key ,regb 
+00f8 202026e1 branch g24_transmit_by_interrupt_enable 
 
 p_mouse_24g_search_dongle:
-00bf 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-00c0 c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
-00c1 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
-00c2 207a0000 rtn blank 
-00c3 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-00c4 207a0000 rtn blank 
-00c5 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
-00c6 1fe0fe01 increase 1 ,pdata 
-00c7 1fe17e03 and_into 3 ,pdata 
-00c8 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
-00c9 247a0000 nrtn blank 
-00ca 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
+00f9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00fa c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
+00fb 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+00fc 207a0000 rtn blank 
+00fd 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+00fe 207a0000 rtn blank 
+00ff 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
+0100 1fe0fe01 increase 1 ,pdata 
+0101 1fe17e03 and_into 3 ,pdata 
+0102 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
+0103 247a0000 nrtn blank 
+0104 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
 
 p_mouse_24g_search_dongle_loop:
-00cb 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
-00cc 1fe0fe01 increase 1 ,pdata 
-00cd 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
-00ce 1fe67c08 sub pdata ,g24_ch_number ,null 
-00cf 242100d5 nbranch p_mouse_24g_search_dongle_loop_end ,positive 
-00d0 2040259a call g24_reconn_data_prep 
-00d1 2040265b call g24_transmit_receive_ack 
-00d2 242c00db nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
-00d3 243780db nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
-00d4 204000e5 call p_mouse_24g_search_dongle_success 
+0105 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
+0106 1fe0fe01 increase 1 ,pdata 
+0107 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
+0108 1fe67c08 sub pdata ,g24_ch_number ,null 
+0109 2421010f nbranch p_mouse_24g_search_dongle_loop_end ,positive 
+010a 2040259a call g24_reconn_data_prep 
+010b 2040265b call g24_transmit_receive_ack 
+010c 242c0115 nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
+010d 24378115 nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
+010e 2040011f call p_mouse_24g_search_dongle_success 
 
 p_mouse_24g_search_dongle_loop_end:
-00d5 20402597 call g24_txbuf_clear 
-00d6 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
-00d7 1fe0fe01 increase 1 ,pdata 
-00d8 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
-00d9 c00800dd beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
-00da 20600000 rtn 
+010f 20402597 call g24_txbuf_clear 
+0110 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
+0111 1fe0fe01 increase 1 ,pdata 
+0112 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
+0113 c0080117 beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
+0114 20600000 rtn 
 
 p_mouse_24g_search_dongle_loop_retry:
-00db 204022cb call g24_ch 
-00dc 202000cb branch p_mouse_24g_search_dongle_loop 
+0115 204022cb call g24_ch 
+0116 20200105 branch p_mouse_24g_search_dongle_loop 
 
 p_mouse_24g_search_dongle_check:
-00dd 704ba300 jam 0 ,mem_mouse_search_dongle_count 
-00de 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
-00df c3800000 rtnbit1 g24_disconn_state 
-00e0 79207e00 set1 g24_disconn_state ,pdata 
-00e1 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
-00e2 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
-00e3 67e14ab2 store 2 ,mem_mouse_no_data_timer 
-00e4 20200356 branch p_mouse_sensor_powerdown 
+0117 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+0118 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+0119 c3800000 rtnbit1 g24_disconn_state 
+011a 79207e00 set1 g24_disconn_state ,pdata 
+011b 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+011c 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+011d 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+011e 202003aa branch p_mouse_sensor_powerdown 
 
 p_mouse_24g_search_dongle_success:
-00e5 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-00e6 203a488c branch mouse_24g_search_dongle_init ,blank 
-00e7 704ba300 jam 0 ,mem_mouse_search_dongle_count 
-00e8 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
-00e9 c4000000 rtnbit0 g24_disconn_state 
-00ea 793ffe00 set0 g24_disconn_state ,pdata 
-00eb 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
-00ec 20404544 call mouse_no_data_timer_init 
-00ed 202003ae branch p_mouse_init_sensor_wakeup 
+011f 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0120 203a488c branch mouse_24g_search_dongle_init ,blank 
+0121 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+0122 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+0123 c4000000 rtnbit0 g24_disconn_state 
+0124 793ffe00 set0 g24_disconn_state ,pdata 
+0125 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+0126 20404544 call mouse_no_data_timer_init 
+0127 20200442 branch p_mouse_init_sensor_wakeup 
 
 p_g24_transmit_no_interrupt:
-00ee 20402631 call g24_txdata_prep 
-00ef 24340174 nbranch p_g24_nodata_transmit ,user 
+0128 20402631 call g24_txdata_prep 
+0129 243401b0 nbranch p_g24_nodata_transmit ,user 
 
 p_g24_transmit_start:
-00f0 204000fd call p_g24_transmit_process 
-00f1 204026ee call power_ctrl_start 
-00f2 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-00f3 243a00f8 nbranch p_g24_short_sleep ,blank 
-00f4 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
-00f5 67e4485c store 8 ,mem_24g_enter_hibernate 
-00f6 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
-00f7 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
+012a 20400137 call p_g24_transmit_process 
+012b 204026ee call power_ctrl_start 
+012c 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+012d 243a0132 nbranch p_g24_short_sleep ,blank 
+012e 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
+012f 67e4485c store 8 ,mem_24g_enter_hibernate 
+0130 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0131 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
 
 p_g24_short_sleep:
-00f8 204026bb call g24_lpm_wait 
-00f9 24740000 nrtn user 
-00fa 20407fdc call clear_wake 
-00fb 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-00fc 202026b8 branch g24_long_sleep2 
+0132 204026bb call g24_lpm_wait 
+0133 24740000 nrtn user 
+0134 20407fdc call clear_wake 
+0135 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+0136 202026b8 branch g24_long_sleep2 
 
 p_g24_transmit_process:
-00fd 7048a600 jam 0 ,mem_24g_retry 
+0137 7048a600 jam 0 ,mem_24g_retry 
 
 p_g24_transmit_loop:
-00fe 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
-00ff 34730200 until clkn_rt ,meet 
-0100 2040265b call g24_transmit_receive_ack 
-0101 6fe0c82c fetch 1 ,mem_24g_no_ack 
-0102 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
-0103 242c0115 nbranch p_g24_retransmit ,sync 
-0104 24378115 nbranch p_g24_retransmit ,user3 
-0105 20402672 call g24_ackpayload_parse 
-0106 20400108 call p_mouse_wakeup_24g 
-0107 20202651 branch g24_transmit_no_ack 
+0138 6961015f fetchr timeup ,2 ,mem_param_rx_setup 
+0139 34730200 until clkn_rt ,meet 
+013a 2040265b call g24_transmit_receive_ack 
+013b 6fe0c82c fetch 1 ,mem_24g_no_ack 
+013c c000a651 beq no_ack_24g ,g24_transmit_no_ack 
+013d 242c0150 nbranch p_g24_retransmit ,sync 
+013e 24378150 nbranch p_g24_retransmit ,user3 
+013f 20402672 call g24_ackpayload_parse 
+0140 2040049a call p_g24_mouse_parse_rx 
+0141 20400143 call p_mouse_wakeup_24g 
+0142 20202651 branch g24_transmit_no_ack 
 
 p_mouse_wakeup_24g:
-0108 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-0109 245a010c ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
-010a 704be100 jam 0 ,mem_sensor_shutdown_flag 
-010b 20600000 rtn 
+0143 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0144 245a0147 ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
+0145 704be100 jam 0 ,mem_sensor_shutdown_flag 
+0146 20600000 rtn 
 
 p_mouse_wakeup_24g_from_long_sleep:
-010c 204003ae call p_mouse_init_sensor_wakeup 
-010d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-010e c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+0147 20400442 call p_mouse_init_sensor_wakeup 
+0148 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0149 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
 p_mouse_wheel_set_wakeup:
-010f 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-0110 d8400040 arg gpcfg_pullup ,temp 
-0111 20406093 call gpio_config_function_int 
-0112 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-0113 d8400040 arg gpcfg_pullup ,temp 
-0114 20206093 branch gpio_config_function_int 
+014a 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+014b d8400040 arg gpcfg_pullup ,temp 
+014c 20406093 call gpio_config_function_int 
+014d 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+014e d8400040 arg gpcfg_pullup ,temp 
+014f 20206093 branch gpio_config_function_int 
 
 p_g24_retransmit:
-0115 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-0116 247a0000 nrtn blank 
-0117 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
-0118 1fe0fe01 increase 1 ,pdata 
-0119 67e148a3 store 2 ,mem_24g_txfail_cnt 
-011a 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-011b c280a679 bbit1 1 ,g24_tx_attempt_fail 
-011c 2040267e call g24_transmit_hop_process 
-011d 2040011f call p_delay_40ms 
-011e 202000fe branch p_g24_transmit_loop 
+0150 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0151 247a0000 nrtn blank 
+0152 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
+0153 1fe0fe01 increase 1 ,pdata 
+0154 67e148a3 store 2 ,mem_24g_txfail_cnt 
+0155 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+0156 c280a679 bbit1 1 ,g24_tx_attempt_fail 
+0157 2040267e call g24_transmit_hop_process 
+0158 2040015a call p_delay_40ms 
+0159 20200138 branch p_g24_transmit_loop 
 
 p_delay_40ms:
-011f 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-0120 1fe67c00 sub pdata ,0x00 ,null 
-0121 20610000 rtn positive 
-0122 df200028 arg 40 ,loopcnt 
-0123 20207d13 branch delay_ms_wait 
+015a 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+015b 1fe67c00 sub pdata ,0x00 ,null 
+015c 20610000 rtn positive 
+015d df200028 arg 40 ,loopcnt 
+015e 20207d13 branch delay_ms_wait 
 
 p_mouse_app_enter_hibernate:
-0124 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0125 c006012c beq om16 ,p_mouse_om16_enter_hibernate 
-0126 58000006 setarg pan_reg_config 
-0127 20405b0d call twspi_read 
-0128 c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
-0129 2040034f call p_mouse_sensor_reset 
-012a 20400356 call p_mouse_sensor_powerdown 
-012b 20203e23 branch mouse_app_enter_hibernate + 3 
+015f 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0160 c0060167 beq om16 ,p_mouse_om16_enter_hibernate 
+0161 58000006 setarg pan_reg_config 
+0162 20405b0d call twspi_read 
+0163 c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
+0164 204003a3 call p_mouse_sensor_reset 
+0165 204003aa call p_mouse_sensor_powerdown 
+0166 20203e23 branch mouse_app_enter_hibernate + 3 
 
 p_mouse_om16_enter_hibernate:
-012c 58000806 setarg 0x0806 
-012d 20405b0c call twspi_write 
-012e 20203e23 branch mouse_app_enter_hibernate + 3 
+0167 58000806 setarg 0x0806 
+0168 20405b0c call twspi_write 
+0169 20203e23 branch mouse_app_enter_hibernate + 3 
 
 p_mouse_setgpio_hibernate:
-012f 204042e9 call mouse_set_sdio_high 
-0130 20407fdc call clear_wake 
-0131 20404015 call mouse_before_hibernate_wheel_gpio_set 
-0132 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0133 20406069 call gpio_out_active 
-0134 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-0135 20406042 call gpio_clr_wake 
-0136 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-0137 d840003f arg gpcfg_output_high ,temp 
-0138 20406093 call gpio_config_function_int 
-0139 d8400003 arg 3 ,temp 
-013a 20403f56 call mouse_gpio_config_input_pu 
-013b 20403e40 call mouse_lpm_before_common 
-013c 20406082 call gpio_pd_idle 
-013d d8400013 arg 19 ,temp 
-013e 20403f56 call mouse_gpio_config_input_pu 
-013f 20400142 call p_mouse_gpio_set_high_impedance 
-0140 2040014f call p_mouse_adc_gpio_set_before_hibernate 
-0141 20200156 branch p_mouse_wheel_gpio_set_before_hibernate 
+016a 204042e9 call mouse_set_sdio_high 
+016b 20407fdc call clear_wake 
+016c 204002bb call p_mouse_logo_led_off 
+016d 20404015 call mouse_before_hibernate_wheel_gpio_set 
+016e 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+016f 20406069 call gpio_out_active 
+0170 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+0171 20406042 call gpio_clr_wake 
+0172 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+0173 d840003f arg gpcfg_output_high ,temp 
+0174 20406093 call gpio_config_function_int 
+0175 d8400003 arg 3 ,temp 
+0176 20403f56 call mouse_gpio_config_input_pu 
+0177 20403e40 call mouse_lpm_before_common 
+0178 20406082 call gpio_pd_idle 
+0179 d8400013 arg 19 ,temp 
+017a 20403f56 call mouse_gpio_config_input_pu 
+017b 2040017e call p_mouse_gpio_set_high_impedance 
+017c 2040018b call p_mouse_adc_gpio_set_before_hibernate 
+017d 20200192 branch p_mouse_wheel_gpio_set_before_hibernate 
 
 p_mouse_gpio_set_high_impedance:
-0142 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
-0143 67e1895c store 3 ,mem_pdatatemp 
-0144 df200014 arg 20 ,loopcnt 
-0145 d8400000 arg 0 ,temp 
+017e 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+017f 67e1895c store 3 ,mem_pdatatemp 
+0180 df200014 arg 20 ,loopcnt 
+0181 d8400000 arg 0 ,temp 
 
 p_mouse_gpio_set_high_impedance_bit_loop:
-0146 6fe1895c fetch 3 ,mem_pdatatemp 
-0147 2feffe00 isolate1 0 ,pdata 
-0148 2040e07f call gpio_set_high_impedance ,true 
-0149 6fe1895c fetch 3 ,mem_pdatatemp 
-014a 1fe37e00 rshift pdata ,pdata 
-014b 67e1895c store 3 ,mem_pdatatemp 
-014c 18408401 increase 1 ,temp 
-014d c2000146 loop p_mouse_gpio_set_high_impedance_bit_loop 
-014e 20600000 rtn 
+0182 6fe1895c fetch 3 ,mem_pdatatemp 
+0183 2feffe00 isolate1 0 ,pdata 
+0184 2040e07f call gpio_set_high_impedance ,true 
+0185 6fe1895c fetch 3 ,mem_pdatatemp 
+0186 1fe37e00 rshift pdata ,pdata 
+0187 67e1895c store 3 ,mem_pdatatemp 
+0188 18408401 increase 1 ,temp 
+0189 c2000182 loop p_mouse_gpio_set_high_impedance_bit_loop 
+018a 20600000 rtn 
 
 p_mouse_adc_gpio_set_before_hibernate:
-014f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0150 c40a0000 rtnbit0 mouse_enable_adc 
-0151 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
-0152 c1810000 rtnne adc_config_gpio 
-0153 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
-0154 d84000c0 arg gpcfg_no_ie ,temp 
-0155 20206093 branch gpio_config_function_int 
+018b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+018c c40a0000 rtnbit0 mouse_enable_adc 
+018d 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+018e c1810000 rtnne adc_config_gpio 
+018f 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
+0190 d84000c0 arg gpcfg_no_ie ,temp 
+0191 20206093 branch gpio_config_function_int 
 
 p_mouse_wheel_gpio_set_before_hibernate:
-0156 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0157 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+0192 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0193 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
 p_mouse_wheel_clr_wakeup:
-0158 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-0159 20406042 call gpio_clr_wake 
-015a 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-015b 20406042 call gpio_clr_wake 
-015c 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-015d d8400080 arg gpcfg_pulldown ,temp 
-015e 20406093 call gpio_config_function_int 
-015f 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-0160 d8400080 arg gpcfg_pulldown ,temp 
-0161 20206093 branch gpio_config_function_int 
+0194 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+0195 20406042 call gpio_clr_wake 
+0196 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+0197 20406042 call gpio_clr_wake 
+0198 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+0199 d8400080 arg gpcfg_pulldown ,temp 
+019a 20406093 call gpio_config_function_int 
+019b 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+019c d8400080 arg gpcfg_pulldown ,temp 
+019d 20206093 branch gpio_config_function_int 
 
 p_mouse_lpm_before_common:
-0162 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-0163 20406050 call gpio_config_input 
-0164 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-0165 20406050 call gpio_config_input 
-0166 20403f88 call mouse_wheel_check 
-0167 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-0168 d840003f arg gpcfg_output_high ,temp 
-0169 20406093 call gpio_config_function_int 
-016a 20203e44 branch mouse_lpm_before_common_next 
+019e 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+019f 20406050 call gpio_config_input 
+01a0 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+01a1 20406050 call gpio_config_input 
+01a2 20403f88 call mouse_wheel_check 
+01a3 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+01a4 d840003f arg gpcfg_output_high ,temp 
+01a5 20406093 call gpio_config_function_int 
+01a6 20203e44 branch mouse_lpm_before_common_next 
 
 p_mouse_24g_hibernate_set:
-016b 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
-016c 20402652 call g24_transmit_next_packet 
-016d 5fffffff setarg -1 
-016e 67e2485c store 4 ,mem_24g_enter_hibernate 
-016f 58000000 setarg 0 
-0170 67e3c8d0 store 7 ,mem_mouse_key 
-0171 704be101 jam 1 ,mem_sensor_shutdown_flag 
-0172 20400356 call p_mouse_sensor_powerdown 
-0173 20200179 branch p_g24_long_sleep 
+01a7 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
+01a8 20402652 call g24_transmit_next_packet 
+01a9 5fffffff setarg -1 
+01aa 67e2485c store 4 ,mem_24g_enter_hibernate 
+01ab 58000000 setarg 0 
+01ac 67e3c8d0 store 7 ,mem_mouse_key 
+01ad 704be101 jam 1 ,mem_sensor_shutdown_flag 
+01ae 204003aa call p_mouse_sensor_powerdown 
+01af 202001b5 branch p_g24_long_sleep 
 
 p_g24_nodata_transmit:
-0174 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-0175 205a017f call p_g24_send_abort_packet ,blank 
-0176 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0177 c1008000 rtneq g24_tx_timer_int_enable 
-0178 2040269f call g24_search_receiver 
+01b0 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+01b1 205a01bb call p_g24_send_abort_packet ,blank 
+01b2 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+01b3 c1008000 rtneq g24_tx_timer_int_enable 
+01b4 2040269f call g24_search_receiver 
 
 p_g24_long_sleep:
-0179 204026bb call g24_lpm_wait 
-017a 24740000 nrtn user 
-017b 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-017c 245a3e33 ncall mouse_setgpio_hibernate ,blank 
-017d 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
-017e 202026b8 branch g24_long_sleep2 
+01b5 204026bb call g24_lpm_wait 
+01b6 24740000 nrtn user 
+01b7 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+01b8 245a3e33 ncall mouse_setgpio_hibernate ,blank 
+01b9 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
+01ba 202026b8 branch g24_long_sleep2 
 
 p_g24_send_abort_packet:
-017f 70483601 jam type_ms ,mem_24g_data_type 
-0180 7048a701 jam 1 ,mem_24g_abort_pac 
-0181 20402642 call g24_transmit_rf_ctrl_clear 
-0182 67e0c7c6 store 1 ,mem_24g_txbuf 
-0183 58000000 setarg 0 
-0184 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
-0185 6fe248a9 fetch 4 ,mem_24g_device_addr 
-0186 67e247ce store 4 ,mem_24g_txbuf + 8 
-0187 7048350c jam 12 ,mem_24g_datalen 
-0188 6fe0c836 fetch 1 ,mem_24g_data_type 
-0189 79207e03 set1 bit_abort ,pdata 
-018a 67e0c836 store 1 ,mem_24g_data_type 
-018b 20402291 call g24_transmit_prep 
-018c 202000f0 branch p_g24_transmit_start 
+01bb 70483601 jam type_ms ,mem_24g_data_type 
+01bc 7048a701 jam 1 ,mem_24g_abort_pac 
+01bd 20402642 call g24_transmit_rf_ctrl_clear 
+01be 67e0c7c6 store 1 ,mem_24g_txbuf 
+01bf 58000000 setarg 0 
+01c0 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
+01c1 6fe248a9 fetch 4 ,mem_24g_device_addr 
+01c2 67e247ce store 4 ,mem_24g_txbuf + 8 
+01c3 7048350c jam 12 ,mem_24g_datalen 
+01c4 6fe0c836 fetch 1 ,mem_24g_data_type 
+01c5 79207e03 set1 bit_abort ,pdata 
+01c6 67e0c836 store 1 ,mem_24g_data_type 
+01c7 20402291 call g24_transmit_prep 
+01c8 2020012a branch p_g24_transmit_start 
 
 p_mouse_priority_bb_event:
-018d 1a627e00 copy regc ,pdata 
-018e c0008196 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-018f c01e01b8 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-0190 c01c81b6 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-0191 c01d01bf beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-0192 c01901a2 beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-0193 c02201a9 beq bt_evt_le_parse_conn_param_accepted ,p_mouse_le_parse_conn_param_accepted 
-0194 c00a8198 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-0195 20204336 branch mouse_priority_bb_event + 2 
+01c9 1a627e00 copy regc ,pdata 
+01ca c00081d2 beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
+01cb c01e01f4 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+01cc c01c81f2 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+01cd c01d01fb beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+01ce c01901de beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
+01cf c02201e5 beq bt_evt_le_parse_conn_param_accepted ,p_mouse_le_parse_conn_param_accepted 
+01d0 c00a81d4 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
+01d1 20204336 branch mouse_priority_bb_event + 2 
 
 p_mouse_bb_event_connected:
-0196 20404544 call mouse_no_data_timer_init 
-0197 202043fa branch mouse_bb_event_connected 
+01d2 20404544 call mouse_no_data_timer_init 
+01d3 202043fa branch mouse_bb_event_connected 
 
 p_mouse_le_bb_disconnected:
-0198 58000000 setarg 0 
-0199 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-019a 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
-019b 58000006 setarg le_interval_7_5ms 
-019c 67e14372 store 2 ,mem_le_interval_min 
-019d 67e14374 store 2 ,mem_le_interval_min + 2 
-019e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-019f c28dc366 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next + 2 
-01a0 58000007 setarg le_interval_8_75ms 
-01a1 20204364 branch mouse_le_bb_disconnected_next 
+01d4 58000000 setarg 0 
+01d5 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+01d6 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
+01d7 58000006 setarg le_interval_7_5ms 
+01d8 67e14372 store 2 ,mem_le_interval_min 
+01d9 67e14374 store 2 ,mem_le_interval_min + 2 
+01da 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01db c28dc366 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next + 2 
+01dc 58000007 setarg le_interval_8_75ms 
+01dd 20204364 branch mouse_le_bb_disconnected_next 
 
 p_mouse_le_ll_start_encryt:
-01a2 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-01a3 c00081a6 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-01a4 704b7614 jam 20 ,mem_le_start_encrypt_timer 
-01a5 20204373 branch mouse_le_ll_enable_start_enc_flag 
+01de 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+01df c00081e2 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
+01e0 704b7614 jam 20 ,mem_le_start_encrypt_timer 
+01e1 20204373 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_ll_reconn_start_encryt:
-01a6 2040436c call mouse_updata_le_param 
-01a7 704b7605 jam 5 ,mem_le_start_encrypt_timer 
-01a8 20204373 branch mouse_le_ll_enable_start_enc_flag 
+01e2 2040436c call mouse_updata_le_param 
+01e3 704b7605 jam 5 ,mem_le_start_encrypt_timer 
+01e4 20204373 branch mouse_le_ll_enable_start_enc_flag 
 
 p_mouse_le_parse_conn_param_accepted:
-01a9 6fe082c1 fetch 1 ,mem_le_new_conninterval 
-01aa 1fe67c0c sub pdata ,le_interval_15ms ,null 
-01ab 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
-01ac 67e14372 store 2 ,mem_le_interval_min 
-01ad 67e14374 store 2 ,mem_le_interval_min + 2 
-01ae 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-01af 203a439a branch mouse_le_lpm_mult_reinit ,blank 
-01b0 6848cb8a fetcht 1 ,mem_lpm_mult_init 
-01b1 98467c00 isub temp ,null 
-01b2 2021439a branch mouse_le_lpm_mult_reinit ,positive 
-01b3 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-01b4 67e0cb8a store 1 ,mem_lpm_mult_init 
-01b5 20204386 branch mouse_le_conn_param_lpm_enable 
+01e5 6fe082c1 fetch 1 ,mem_le_new_conninterval 
+01e6 1fe67c0c sub pdata ,le_interval_15ms ,null 
+01e7 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
+01e8 67e14372 store 2 ,mem_le_interval_min 
+01e9 67e14374 store 2 ,mem_le_interval_min + 2 
+01ea 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+01eb 203a439a branch mouse_le_lpm_mult_reinit ,blank 
+01ec 6848cb8a fetcht 1 ,mem_lpm_mult_init 
+01ed 98467c00 isub temp ,null 
+01ee 2021439a branch mouse_le_lpm_mult_reinit ,positive 
+01ef 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
+01f0 67e0cb8a store 1 ,mem_lpm_mult_init 
+01f1 20204386 branch mouse_le_conn_param_lpm_enable 
 
 p_mouse_24g_pairing_complete:
-01b6 20404544 call mouse_no_data_timer_init 
-01b7 20204857 branch mouse_24g_pairing_complete 
+01f2 20404544 call mouse_no_data_timer_init 
+01f3 20204857 branch mouse_24g_pairing_complete 
 
 p_mouse_24g_attempt_success:
-01b8 6fe2483c fetch 4 ,mem_24g_addr 
-01b9 67e24891 store 4 ,mem_24g_receiver_addr 
-01ba 67e24993 store 4 ,mem_mouse_24g_addr 
-01bb 2040257e call g24_ch_syncword_crc8_init 
-01bc 204048c6 call mouse_device_poweron_timer_init 
-01bd 20404544 call mouse_no_data_timer_init 
-01be 2020484e branch mouse_24g_attempt_success 
+01f4 6fe2483c fetch 4 ,mem_24g_addr 
+01f5 67e24891 store 4 ,mem_24g_receiver_addr 
+01f6 67e24993 store 4 ,mem_mouse_24g_addr 
+01f7 2040257e call g24_ch_syncword_crc8_init 
+01f8 204048c6 call mouse_device_poweron_timer_init 
+01f9 20404544 call mouse_no_data_timer_init 
+01fa 2020484e branch mouse_24g_attempt_success 
 
 p_mouse_24g_attempt_fail:
-01bf 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
-01c0 243a016b nbranch p_mouse_24g_hibernate_set ,blank 
-01c1 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-01c2 c00101c6 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
-01c3 c00201cf beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
-01c4 c00181d4 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
-01c5 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
+01fb 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
+01fc 243a01a7 nbranch p_mouse_24g_hibernate_set ,blank 
+01fd 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+01fe c0010202 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
+01ff c002020d beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
+0200 c0018212 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
+0201 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
 
 p_mouse_24g_fast_conn_attempt_fail:
-01c6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01c7 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
-01c8 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
-01c9 c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
-01ca 6fe24993 fetch 4 ,mem_mouse_24g_addr 
-01cb 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
-01cc 98467c00 isub temp ,null 
-01cd 2022c827 branch mouse_24g_start_pair_mode ,zero 
-01ce 20204806 branch mouse_24g_reconn_dongle_start 
+0202 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0203 c297c811 bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_start_auto_pair 
+0204 c2984811 bbit1 mouse_enable_auto_24g_paring ,mouse_24g_start_auto_pair 
+0205 c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0206 6fe24993 fetch 4 ,mem_mouse_24g_addr 
+0207 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
+0208 98467c00 isub temp ,null 
+0209 2022820b branch p_mouse_24g_start_pair_mode ,zero 
+020a 20204806 branch mouse_24g_reconn_dongle_start 
+
+p_mouse_24g_start_pair_mode:
+020b 70488b00 jam 0 ,mem_24g_reconn_type 
+020c 20204827 branch mouse_24g_start_pair_mode 
 
 p_mouse_24g_auto_pair_attempt_fail:
-01cf 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01d0 c31781d9 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
-01d1 6fe0cbb4 fetch 1 ,mem_device_number 
-01d2 c00081d9 beq 1 ,p_mouse_24g_attempt_fail_enter_hibernate 
-01d3 2020481a branch mouse_24g_first_bluetooth_reconnect 
+020d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+020e c3178217 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+020f 6fe0cbb4 fetch 1 ,mem_device_number 
+0210 c0008217 beq 1 ,p_mouse_24g_attempt_fail_enter_hibernate 
+0211 2020481a branch mouse_24g_first_bluetooth_reconnect 
 
 p_mouse_reconn_dongle_attempt_fail:
-01d4 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01d5 c31781d9 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
-01d6 c28981d9 bbit1 mouse_enable_eeprom ,p_mouse_24g_attempt_fail_enter_hibernate 
-01d7 c28901d9 bbit1 mouse_enable_flash ,p_mouse_24g_attempt_fail_enter_hibernate 
-01d8 20204812 branch mouse_24g_start_auto_pair + 1 
+0212 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0213 c3178217 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+0214 c2898217 bbit1 mouse_enable_eeprom ,p_mouse_24g_attempt_fail_enter_hibernate 
+0215 c2890217 bbit1 mouse_enable_flash ,p_mouse_24g_attempt_fail_enter_hibernate 
+0216 20204812 branch mouse_24g_start_auto_pair + 1 
 
 p_mouse_24g_attempt_fail_enter_hibernate:
-01d9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-01da c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
-01db 2020016b branch p_mouse_24g_hibernate_set 
+0217 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0218 c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
+0219 202001a7 branch p_mouse_24g_hibernate_set 
 
 p_g24_pair_dispatch:
-01dc 70488b00 jam default_24g_device ,mem_24g_reconn_type 
-01dd 6fe14beb fetch 2 ,mem_24g_pair_count 
-01de 1fe0fe01 increase 1 ,pdata 
-01df 67e14beb store 2 ,mem_24g_pair_count 
-01e0 6fe0cbeb fetch 1 ,mem_24g_pair_count 
-01e1 1fe17eff and pdata ,0xff ,pdata 
-01e2 c0002341 beq 0 ,g24_pair_dispatch + 1 
-01e3 20600000 rtn 
+021a 70488b00 jam default_24g_device ,mem_24g_reconn_type 
+021b 6fe14beb fetch 2 ,mem_24g_pair_count 
+021c 1fe0fe01 increase 1 ,pdata 
+021d 67e14beb store 2 ,mem_24g_pair_count 
+021e 6fe0cbeb fetch 1 ,mem_24g_pair_count 
+021f 1fe17eff and pdata ,0xff ,pdata 
+0220 c0002341 beq 0 ,g24_pair_dispatch + 1 
+0221 20600000 rtn 
 
 p_g24_reconn_dispatch:
-01e4 6fe14889 fetch 2 ,mem_24g_reconn_count 
-01e5 d84001f8 arg 0x01f8 ,temp 
-01e6 98417e00 iand temp ,pdata 
-01e7 203a01ec branch p_g24_reconn_dispatch_next ,blank 
-01e8 6fe14889 fetch 2 ,mem_24g_reconn_count 
-01e9 1fe0fe01 increase 1 ,pdata 
-01ea 67e14889 store 2 ,mem_24g_reconn_count 
-01eb 20600000 rtn 
+0222 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0223 d84001f8 arg 0x01f8 ,temp 
+0224 98417e00 iand temp ,pdata 
+0225 203a022a branch p_g24_reconn_dispatch_next ,blank 
+0226 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0227 1fe0fe01 increase 1 ,pdata 
+0228 67e14889 store 2 ,mem_24g_reconn_count 
+0229 20600000 rtn 
 
 p_g24_reconn_dispatch_next:
-01ec 2040259a call g24_reconn_data_prep 
-01ed 2040265b call g24_transmit_receive_ack 
-01ee 242c01f2 nbranch p_g24_reconn_device_fail ,sync 
-01ef 243781f2 nbranch p_g24_reconn_device_fail ,user3 
-01f0 20402672 call g24_ackpayload_parse 
-01f1 20202586 branch g24_reconn_receiver_succ 
+022a 2040259a call g24_reconn_data_prep 
+022b 2040265b call g24_transmit_receive_ack 
+022c 242c0230 nbranch p_g24_reconn_device_fail ,sync 
+022d 24378230 nbranch p_g24_reconn_device_fail ,user3 
+022e 20402672 call g24_ackpayload_parse 
+022f 20202586 branch g24_reconn_receiver_succ 
 
 p_g24_reconn_device_fail:
-01f2 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
-01f3 203a22cb branch g24_ch ,blank 
-01f4 6fe14889 fetch 2 ,mem_24g_reconn_count 
-01f5 1fe0fe01 increase 1 ,pdata 
-01f6 67e14889 store 2 ,mem_24g_reconn_count 
-01f7 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
-01f8 2feffe01 isolate1 1 ,pdata 
-01f9 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-01fa c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
-01fb c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
-01fc c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
-01fd c00201ff beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
-01fe 2020256e branch g24_reconn_receiver_addr 
+0230 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
+0231 203a22cb branch g24_ch ,blank 
+0232 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0233 1fe0fe01 increase 1 ,pdata 
+0234 67e14889 store 2 ,mem_24g_reconn_count 
+0235 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
+0236 2feffe01 isolate1 1 ,pdata 
+0237 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+0238 c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+0239 c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+023a c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+023b c002023d beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
+023c 2020256e branch g24_reconn_receiver_addr 
 
 p_g24_reconn_pair_and_3_0:
-01ff 2020a575 branch g24_reconn_device_3_0_addr ,true 
-0200 20202339 branch g24_pair_init_param 
+023d 2020a575 branch g24_reconn_device_3_0_addr ,true 
+023e 20202339 branch g24_pair_init_param 
 
 p_g24_dispatch:
-0201 c61a0000 rtnmark1 mark_adc_enable 
-0202 c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+023f c61a0000 rtnmark1 mark_adc_enable 
+0240 c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
 
 p_g24_transmit_dispatch:
-0203 c6930000 rtnmark0 mark_24g 
-0204 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
-0205 c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
-0206 c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
-0207 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0208 c000820a beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
-0209 20202621 branch g24_transmit_no_interrupt 
+0241 c6930000 rtnmark0 mark_24g 
+0242 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+0243 c28184a4 bbit1 state_24g_ota ,p_g24_ota_dispatch 
+0244 c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
+0245 c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0246 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+0247 c0008249 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+0248 20202621 branch g24_transmit_no_interrupt 
 
 p_g24_transmit_by_interrupt:
-020a 204022ea call g24_timer_check 
-020b 24340203 nbranch p_g24_transmit_dispatch ,user 
-020c 204026db call g24_interval_calibrate 
-020d 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-020e 1fe0fe01 increase 1 ,pdata 
-020f 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-0210 20202621 branch g24_transmit_no_interrupt 
+0249 204022ea call g24_timer_check 
+024a 24340241 nbranch p_g24_transmit_dispatch ,user 
+024b 204026db call g24_interval_calibrate 
+024c 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+024d 1fe0fe01 increase 1 ,pdata 
+024e 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+024f 20202621 branch g24_transmit_no_interrupt 
 
 p_mouse_start_work:
-0211 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0212 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-0213 6fe0c938 fetch 1 ,mem_device_flag 
-0214 c0000216 beq mode_24g_device ,p_mouse_24g_start_mode 
-0215 20203d57 branch mouse_start_work + 5 
+0250 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0251 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0252 6fe0c938 fetch 1 ,mem_device_flag 
+0253 c0000255 beq mode_24g_device ,p_mouse_24g_start_mode 
+0254 20203d57 branch mouse_start_work + 5 
 
 p_mouse_24g_start_mode:
-0216 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0217 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-0218 20403d65 call mouse_wakeup_from_power_check 
-0219 20344806 branch mouse_24g_reconn_dongle_start ,user 
-021a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-021b c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
-021c c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
-021d 20404110 call mouse_key_check_once 
-021e 1a217e07 and rega ,0x07 ,pdata 
-021f 202047ff branch mouse_24g_start_mode + 9 
+0255 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0256 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+0257 20403d65 call mouse_wakeup_from_power_check 
+0258 20344806 branch mouse_24g_reconn_dongle_start ,user 
+0259 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+025a c298480c bbit1 mouse_enable_auto_24g_paring ,mouse_24g_reconn_general_dongle 
+025b c318c80c bbit0 mouse_enable_24g_power_on_pairing ,mouse_24g_reconn_general_dongle 
+025c 20404110 call mouse_key_check_once 
+025d 1a217e07 and rega ,0x07 ,pdata 
+025e 202047ff branch mouse_24g_start_mode + 9 
 
 p_mouse_seting_dpi:
-0220 2040408f call mouse_setting_dpi_4_level 
-0221 20400249 call p_mouse_dpi_led_blink_delay 
+025f 2040408f call mouse_setting_dpi_4_level 
+0260 20400288 call p_mouse_dpi_led_blink_delay 
 
 p_mouse_seting_sensor_type:
-0222 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0223 c0060226 beq om16 ,p_mouse_seting_om16_dpi 
-0224 c0068233 beq om18 ,p_mouse_seting_om18_dpi 
-0225 20204098 branch mouse_seting_sensor_type 
+0261 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0262 c0060265 beq om16 ,p_mouse_seting_om16_dpi 
+0263 c0068272 beq om18 ,p_mouse_seting_om18_dpi 
+0264 20204098 branch mouse_seting_sensor_type 
 
 p_mouse_seting_om16_dpi:
-0226 6fe0c992 fetch 1 ,mem_mouse_dpi 
-0227 c000022d beq mouse_dpi_level1 ,p_mouse_om16_set_cpi0 
-0228 c000822b beq mouse_dpi_level2 ,p_mouse_om16_set_cpi1 
-0229 c001022f beq mouse_dpi_level3 ,p_mouse_om16_set_cpi2 
-022a c0018231 beq mouse_dpi_level4 ,p_mouse_om16_set_cpi3 
+0265 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0266 c000026c beq mouse_dpi_level1 ,p_mouse_om16_set_cpi0 
+0267 c000826a beq mouse_dpi_level2 ,p_mouse_om16_set_cpi1 
+0268 c001026e beq mouse_dpi_level3 ,p_mouse_om16_set_cpi2 
+0269 c0018270 beq mouse_dpi_level4 ,p_mouse_om16_set_cpi3 
 
 p_mouse_om16_set_cpi1:
-022b 6848cbf0 fetcht 1 ,mem_om16_dpi_1 
-022c 202040a8 branch mouse_dpi_store 
+026a 6848cc3a fetcht 1 ,mem_om16_dpi_1 
+026b 202040a8 branch mouse_dpi_store 
 
 p_mouse_om16_set_cpi0:
-022d 6848cbef fetcht 1 ,mem_om16_dpi_0 
-022e 202040a8 branch mouse_dpi_store 
+026c 6848cc39 fetcht 1 ,mem_om16_dpi_0 
+026d 202040a8 branch mouse_dpi_store 
 
 p_mouse_om16_set_cpi2:
-022f 6848cbf1 fetcht 1 ,mem_om16_dpi_2 
-0230 202040a8 branch mouse_dpi_store 
+026e 6848cc3b fetcht 1 ,mem_om16_dpi_2 
+026f 202040a8 branch mouse_dpi_store 
 
 p_mouse_om16_set_cpi3:
-0231 6848cbf2 fetcht 1 ,mem_om16_dpi_3 
-0232 202040a8 branch mouse_dpi_store 
+0270 6848cc3c fetcht 1 ,mem_om16_dpi_3 
+0271 202040a8 branch mouse_dpi_store 
 
 p_mouse_seting_om18_dpi:
-0233 20404229 call mouse_sensor_disable_wp 
-0234 6fe0c992 fetch 1 ,mem_mouse_dpi 
-0235 c000023b beq mouse_dpi_level1 ,p_mouse_set_om18_cpi0 
-0236 c0008239 beq mouse_dpi_level2 ,p_mouse_set_om18_cpi1 
-0237 c001023d beq mouse_dpi_level3 ,p_mouse_set_om18_cpi2 
-0238 c001823f beq mouse_dpi_level4 ,p_mouse_set_om18_cpi3 
+0272 20404229 call mouse_sensor_disable_wp 
+0273 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0274 c000027a beq mouse_dpi_level1 ,p_mouse_set_om18_cpi0 
+0275 c0008278 beq mouse_dpi_level2 ,p_mouse_set_om18_cpi1 
+0276 c001027c beq mouse_dpi_level3 ,p_mouse_set_om18_cpi2 
+0277 c001827e beq mouse_dpi_level4 ,p_mouse_set_om18_cpi3 
 
 p_mouse_set_om18_cpi1:
-0239 6fe0c9d5 fetch 1 ,mem_3212_dpi_1 
-023a 20200240 branch p_mouse_om18_dpi 
+0278 6fe0c9d5 fetch 1 ,mem_3212_dpi_1 
+0279 2020027f branch p_mouse_om18_dpi 
 
 p_mouse_set_om18_cpi0:
-023b 6fe0c9d4 fetch 1 ,mem_3212_dpi_0 
-023c 20200240 branch p_mouse_om18_dpi 
+027a 6fe0c9d4 fetch 1 ,mem_3212_dpi_0 
+027b 2020027f branch p_mouse_om18_dpi 
 
 p_mouse_set_om18_cpi2:
-023d 6fe0c9d6 fetch 1 ,mem_3212_dpi_2 
-023e 20200240 branch p_mouse_om18_dpi 
+027c 6fe0c9d6 fetch 1 ,mem_3212_dpi_2 
+027d 2020027f branch p_mouse_om18_dpi 
 
 p_mouse_set_om18_cpi3:
-023f 6fe0c9d7 fetch 1 ,mem_3212_dpi_3 
+027e 6fe0c9d7 fetch 1 ,mem_3212_dpi_3 
 
 p_mouse_om18_dpi:
-0240 67e0c9dc store 1 ,mem_mouse_cpi_count 
-0241 1fed7e00 lshift8 pdata ,pdata 
-0242 1fe22200 copy pdata ,rega 
-0243 1fe0fe10 add pdata ,mouse_om18_dpi_xaddress ,pdata 
-0244 20405b0c call twspi_write 
-0245 1a227e00 copy rega ,pdata 
-0246 1fe0fe11 add pdata ,mouse_om18_dpi_yaddress ,pdata 
-0247 20405b0c call twspi_write 
-0248 20204227 branch mouse_sensor_enable_wp 
+027f 67e0c9dc store 1 ,mem_mouse_cpi_count 
+0280 1fed7e00 lshift8 pdata ,pdata 
+0281 1fe22200 copy pdata ,rega 
+0282 1fe0fe10 add pdata ,mouse_om18_dpi_xaddress ,pdata 
+0283 20405b0c call twspi_write 
+0284 1a227e00 copy rega ,pdata 
+0285 1fe0fe11 add pdata ,mouse_om18_dpi_yaddress ,pdata 
+0286 20405b0c call twspi_write 
+0287 20204227 branch mouse_sensor_enable_wp 
 
 p_mouse_dpi_led_blink_delay:
-0249 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-024a c17f8000 rtneq gpio_disable 
-024b 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
-024c 247a0000 nrtn blank 
-024d 6fe14883 fetch 2 ,mem_24g_pair_timeout 
-024e 247a0000 nrtn blank 
-024f 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
-0250 247a0000 nrtn blank 
-0251 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-0252 247a0000 nrtn blank 
-0253 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
-0254 203a0270 branch p_mouse_dpi_led_blink_init ,blank 
-0255 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
-0256 20600000 rtn 
+0288 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+0289 c17f8000 rtneq gpio_disable 
+028a 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+028b 247a0000 nrtn blank 
+028c 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+028d 247a0000 nrtn blank 
+028e 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+028f 247a0000 nrtn blank 
+0290 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+0291 247a0000 nrtn blank 
+0292 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+0293 203a02c2 branch p_mouse_dpi_led_blink_init ,blank 
+0294 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
+0295 20600000 rtn 
 
 p_mouse_bb_event_timer:
-0257 20403e9b call mouse_adc_read 
-0258 20404956 call mouse_low_voltage_led_timer 
-0259 2040232b call g24_pair_timeout_timer 
-025a 20402556 call g24_reconn_timeout_timer 
-025b 204047cd call mouse_24g_long_sleep_param_update_timer 
-025c 204048be call mouse_device_poweron_timer 
-025d 2040026d call p_mouse_dpi_led_blink_delay_timer 
-025e 2040407c call mouse_dpi_key_check_long_press 
-025f 204044cc call mouse_bt_discovery_check 
-0260 20400285 call p_mouse_commbination_key_process 
-0261 204044ff call mouse_check_discovery_timeout_timer 
-0262 20404504 call mouse_check_direct_timeout_timer 
-0263 20404512 call mouse_le_enable_att_list_timer 
-0264 2040029a call p_mouse_le_battery_updata_timer 
-0265 20404515 call mouse_le_send_smp_security_request_timer 
-0266 2040452a call mouse_check_hid_handshake_timer 
-0267 2040452d call mouse_bt_check_sniff_req_timeout_timer 
-0268 20404532 call mouse_check_reconnect_delay_long_sleep 
-0269 20404535 call mouse_current_mult_update_timer 
-026a 20404022 call mouse_wheel_trigger_timer 
-026b 20404547 call mouse_store_information_delay_timer 
-026c 2020029d branch p_mouse_check_no_data_timeout_timer 
+0296 20403e9b call mouse_adc_read 
+0297 20404956 call mouse_low_voltage_led_timer 
+0298 2040232b call g24_pair_timeout_timer 
+0299 20402556 call g24_reconn_timeout_timer 
+029a 204047cd call mouse_24g_long_sleep_param_update_timer 
+029b 204048be call mouse_device_poweron_timer 
+029c 204002bf call p_mouse_dpi_led_blink_delay_timer 
+029d 2040407c call mouse_dpi_key_check_long_press 
+029e 204044cc call mouse_bt_discovery_check 
+029f 204002d7 call p_mouse_commbination_key_process 
+02a0 204044ff call mouse_check_discovery_timeout_timer 
+02a1 20404504 call mouse_check_direct_timeout_timer 
+02a2 20404512 call mouse_le_enable_att_list_timer 
+02a3 204002ee call p_mouse_le_battery_updata_timer 
+02a4 20404515 call mouse_le_send_smp_security_request_timer 
+02a5 2040452a call mouse_check_hid_handshake_timer 
+02a6 2040452d call mouse_bt_check_sniff_req_timeout_timer 
+02a7 20404532 call mouse_check_reconnect_delay_long_sleep 
+02a8 20404535 call mouse_current_mult_update_timer 
+02a9 20404022 call mouse_wheel_trigger_timer 
+02aa 20404547 call mouse_store_information_delay_timer 
+02ab 204002b1 call p_mouse_logo_led_on_timer 
+02ac 204002f1 call p_mouse_check_no_data_timeout_timer 
+02ad 202002ae branch p_mouse_g24_ota_reset_timer 
+
+p_mouse_g24_ota_reset_timer:
+02ae da604c1d arg mem_g24_ota_reset_timer ,regc 
+02af da405d8c arg soft_reset_chip ,regb 
+02b0 2020318a branch timer_single_step 
+
+p_mouse_logo_led_on_timer:
+02b1 6fe0cbed fetch 1 ,mem_mouse_logo_led_gpio 
+02b2 c17f8000 rtneq gpio_disable 
+02b3 6fe14ab2 fetch 2 ,mem_mouse_no_data_timer 
+02b4 207a0000 rtn blank 
+02b5 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
+02b6 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
+02b7 98460400 isub temp ,temp 
+02b8 6fe14bee fetch 2 ,mem_mouse_logo_led_on_time_init 
+02b9 98467e00 isub temp ,pdata 
+02ba 202102bd branch p_mouse_logo_led_on ,positive 
+
+p_mouse_logo_led_off:
+02bb 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+02bc 20206065 branch gpio_out_inactive 
+
+p_mouse_logo_led_on:
+02bd 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+02be 20406069 call gpio_out_active 
 
 p_mouse_dpi_led_blink_delay_timer:
-026d da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
-026e da400270 arg p_mouse_dpi_led_blink_init ,regb 
-026f 2020318a branch timer_single_step 
+02bf da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
+02c0 da4002c2 arg p_mouse_dpi_led_blink_init ,regb 
+02c1 2020318a branch timer_single_step 
 
 p_mouse_dpi_led_blink_init:
-0270 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0271 c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
-0272 c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
-0273 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-0274 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
-0275 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
-0276 67e14930 store 2 ,mem_mouse_on_time 
-0277 67e14932 store 2 ,mem_mouse_off_time 
-0278 da200000 arg 0 ,rega 
-0279 6848c992 fetcht 1 ,mem_mouse_dpi 
-027a 18408402 increase 2 ,temp 
-027b 18467c03 sub temp ,3 ,null 
-027c 2041027f call p_mouse_dpi_led_blink_init_level_4 ,positive 
-027d 24410283 ncall p_mouse_dpi_led_blink_count_clean ,positive 
-027e 202048ff branch mouse_dpi_led_blink_init_end 
+02c2 6fe0c927 fetch 1 ,mem_config_sensor_type 
+02c3 c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
+02c4 c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
+02c5 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+02c6 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+02c7 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
+02c8 67e14930 store 2 ,mem_mouse_on_time 
+02c9 67e14932 store 2 ,mem_mouse_off_time 
+02ca da200000 arg 0 ,rega 
+02cb 6848c992 fetcht 1 ,mem_mouse_dpi 
+02cc 18408402 increase 2 ,temp 
+02cd 18467c03 sub temp ,3 ,null 
+02ce 204102d1 call p_mouse_dpi_led_blink_init_level_4 ,positive 
+02cf 244102d5 ncall p_mouse_dpi_led_blink_count_clean ,positive 
+02d0 202048ff branch mouse_dpi_led_blink_init_end 
 
 p_mouse_dpi_led_blink_init_level_4:
-027f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0280 c40e0000 rtnbit0 mouse_enable_dpi_level_4 
-0281 18408401 increase 1 ,temp 
-0282 20600000 rtn 
+02d1 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02d2 c40e0000 rtnbit0 mouse_enable_dpi_level_4 
+02d3 18408401 increase 1 ,temp 
+02d4 20600000 rtn 
 
 p_mouse_dpi_led_blink_count_clean:
-0283 184085fd increase -3 ,temp 
-0284 20600000 rtn 
+02d5 184085fd increase -3 ,temp 
+02d6 20600000 rtn 
 
 p_mouse_commbination_key_process:
-0285 6fe0c938 fetch 1 ,mem_device_flag 
-0286 c000028b beq mode_24g_device ,p_mouse_24g_commbination_key_process 
-0287 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0288 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
-0289 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
-028a 2020028e branch p_mouse_commbination_key_start 
+02d7 6fe0c938 fetch 1 ,mem_device_flag 
+02d8 c00002dd beq mode_24g_device ,p_mouse_24g_commbination_key_process 
+02d9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02da c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+02db 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
+02dc 202002e0 branch p_mouse_commbination_key_start 
 
 p_mouse_24g_commbination_key_process:
-028b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-028c c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
-028d 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+02dd 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02de c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+02df 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
 
 p_mouse_commbination_key_start:
-028e 6048cb9d storet 1 ,mem_mouse_commbination_key 
-028f 20404115 call mouse_check_key_gpio 
-0290 1fe17e07 and pdata ,0x07 ,pdata 
-0291 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
-0292 98467c00 isub temp ,null 
-0293 20228295 branch p_mouse_commbination_key_down ,zero 
-0294 202044eb branch mouse_commbination_key_up 
+02e0 6048cb9d storet 1 ,mem_mouse_commbination_key 
+02e1 20404115 call mouse_check_key_gpio 
+02e2 1fe17e07 and pdata ,0x07 ,pdata 
+02e3 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
+02e4 98467c00 isub temp ,null 
+02e5 202282e7 branch p_mouse_commbination_key_down ,zero 
+02e6 202044eb branch mouse_commbination_key_up 
 
 p_mouse_commbination_key_down:
-0295 204044f6 call mouse_combination_ui_timer 
-0296 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
-0297 c1008000 rtneq commbination_key_state_down 
-0298 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
-0299 20600000 rtn 
+02e7 204002ec call p_mouse_combination_ui_timer 
+02e8 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+02e9 c1008000 rtneq commbination_key_state_down 
+02ea 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
+02eb 20600000 rtn 
+
+p_mouse_combination_ui_timer:
+02ec da40020b arg p_mouse_24g_start_pair_mode ,regb 
+02ed 202044f7 branch mouse_combination_ui_timer + 1 
 
 p_mouse_le_battery_updata_timer:
-029a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-029b c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
-029c 2020451f branch mouse_le_battery_updata_timer 
+02ee 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02ef c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
+02f0 2020451f branch mouse_le_battery_updata_timer 
 
 p_mouse_check_no_data_timeout_timer:
-029d 6fe0c92a fetch 1 ,mem_usb_addr 
-029e c3838000 rtnbit1 7 
-029f da604ab2 arg mem_mouse_no_data_timer ,regc 
-02a0 da4002a2 arg p_mouse_check_no_data_timeout ,regb 
-02a1 20203191 branch timer_single_step_2b 
+02f1 6fe0c92a fetch 1 ,mem_usb_addr 
+02f2 c3838000 rtnbit1 7 
+02f3 da604ab2 arg mem_mouse_no_data_timer ,regc 
+02f4 da4002f6 arg p_mouse_check_no_data_timeout ,regb 
+02f5 20203191 branch timer_single_step_2b 
 
 p_mouse_check_no_data_timeout:
-02a2 6fe0c938 fetch 1 ,mem_device_flag 
-02a3 c000016b beq mode_24g_device ,p_mouse_24g_hibernate_set 
-02a4 2020431b branch mouse_disconnect 
+02f6 6fe0c938 fetch 1 ,mem_device_flag 
+02f7 c00001a7 beq mode_24g_device ,p_mouse_24g_hibernate_set 
+02f8 2020431b branch mouse_disconnect 
 
 p_mouse_start_discovery:
-02a5 6fe1478c fetch 2 ,mem_ui_state_map 
-02a6 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-02a7 2040c581 call mouse_stop_le_adv ,true 
-02a8 6fe1478c fetch 2 ,mem_ui_state_map 
-02a9 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-02aa 2040c322 call mouse_cancel_reconnect ,true 
-02ab 58000000 setarg 0 
-02ac 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-02ad 20204554 branch mouse_start_discovery + 1 
+02f9 6fe1478c fetch 2 ,mem_ui_state_map 
+02fa 2feffe0b isolate1 ui_state_ble_adv ,pdata 
+02fb 2040c581 call mouse_stop_le_adv ,true 
+02fc 6fe1478c fetch 2 ,mem_ui_state_map 
+02fd 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
+02fe 2040c322 call mouse_cancel_reconnect ,true 
+02ff 58000000 setarg 0 
+0300 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
+0301 20204554 branch mouse_start_discovery + 1 
 
 p_ui_timer_check:
-02ae 6fe0cbe2 fetch 1 ,mem_power_on_flag 
-02af 245a7861 ncall ui_timer_init ,blank 
-02b0 704be200 jam 0 ,mem_power_on_flag 
-02b1 20207851 branch ui_timer_check + 1 
+0302 6fe0cbe2 fetch 1 ,mem_power_on_flag 
+0303 245a7861 ncall ui_timer_init ,blank 
+0304 704be200 jam 0 ,mem_power_on_flag 
+0305 20207851 branch ui_timer_check + 1 
 
 p_hid_rx_process:
-02b2 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
-02b3 1fe20c00 copy pdata ,contr 
-02b4 efe08006 ifetch 1 ,contr 
-02b5 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
-02b6 1fe1040f and pdata ,0x0f ,temp 
-02b7 1ff1fe00 rshift4 pdata ,pdata 
-02b8 c00482ba beq hid_type_set_idle ,p_hid_rx_process_handshake 
-02b9 20204d93 branch hid_rx_process + 7 
+0306 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
+0307 1fe20c00 copy pdata ,contr 
+0308 efe08006 ifetch 1 ,contr 
+0309 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
+030a 1fe1040f and pdata ,0x0f ,temp 
+030b 1ff1fe00 rshift4 pdata ,pdata 
+030c c004830e beq hid_type_set_idle ,p_hid_rx_process_handshake 
+030d 20204d93 branch hid_rx_process + 7 
 
 p_hid_rx_process_handshake:
-02ba da200001 arg 1 ,rega 
-02bb 20404dc0 call hid_malloc_tx_buff 
-02bc 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
-02bd e7e10005 istore 2 ,contw 
-02be 58000000 setarg 0 
-02bf e7e08005 istore 1 ,contw 
-02c0 70095001 jam 1 ,mem_ui_data_txbuff_length 
-02c1 6fe0c4e2 fetch 1 ,mem_hid_control_state 
-02c2 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
-02c3 67e0c4e2 store 1 ,mem_hid_control_state 
-02c4 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
-02c5 20207871 branch ui_ipc_send_event 
+030e da200001 arg 1 ,rega 
+030f 20404dc0 call hid_malloc_tx_buff 
+0310 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
+0311 e7e10005 istore 2 ,contw 
+0312 58000000 setarg 0 
+0313 e7e08005 istore 1 ,contw 
+0314 70095001 jam 1 ,mem_ui_data_txbuff_length 
+0315 6fe0c4e2 fetch 1 ,mem_hid_control_state 
+0316 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
+0317 67e0c4e2 store 1 ,mem_hid_control_state 
+0318 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
+0319 20207871 branch ui_ipc_send_event 
 
 p_le_slave_match:
-02c6 6fe0c3dd fetch 1 ,mem_le_md_count 
-02c7 1fe0fe01 pincrease 1 
-02c8 67e0c3dd store 1 ,mem_le_md_count 
-02c9 c006165a beq le_md_max_count ,le_slave_cont 
-02ca 2040191b call le_acknowledge 
-02cb 2040196a call le_prepare_tx 
-02cc 6fe082bd fetch 1 ,mem_le_tx_phy 
-02cd 2040168b call le_enable_phy_by_pdata 
-02ce 20401838 call le_transmit 
-02cf 20201655 branch le_slave_match + 10 
+031a 6fe0c3dd fetch 1 ,mem_le_md_count 
+031b 1fe0fe01 pincrease 1 
+031c 67e0c3dd store 1 ,mem_le_md_count 
+031d c006165a beq le_md_max_count ,le_slave_cont 
+031e 2040191b call le_acknowledge 
+031f 2040196a call le_prepare_tx 
+0320 6fe082bd fetch 1 ,mem_le_tx_phy 
+0321 2040168b call le_enable_phy_by_pdata 
+0322 20401838 call le_transmit 
+0323 20201655 branch le_slave_match + 10 
 
 p_le_parse_l2cap:
-02d0 efe10006 ifetch 2 ,contr 
-02d1 c00202d3 beq le_l2cap_cid_att ,p_le_parse_att 
-02d2 202019e4 branch le_parse_l2cap + 10 
+0324 efe10006 ifetch 2 ,contr 
+0325 c0020327 beq le_l2cap_cid_att ,p_le_parse_att 
+0326 202019e4 branch le_parse_l2cap + 10 
 
 p_le_parse_att:
-02d3 efe18006 ifetch 3 ,contr 
-02d4 67e1c436 store 3 ,mem_le_att_opcode 
-02d5 c00502d8 beq attop_read_request ,p_le_parse_att_read_request 
-02d6 c00902e7 beq attop_write_request ,p_le_parse_att_write_request 
-02d7 20201cd3 branch le_parse_att + 2 
+0327 efe18006 ifetch 3 ,contr 
+0328 67e1c436 store 3 ,mem_le_att_opcode 
+0329 c005032c beq attop_read_request ,p_le_parse_att_read_request 
+032a c009033b beq attop_write_request ,p_le_parse_att_write_request 
+032b 20201cd3 branch le_parse_att + 2 
 
 p_le_parse_att_read_request:
-02d8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02d9 c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
-02da 20401e8d call le_check_encrypt_state 
-02db 68494437 fetcht 2 ,mem_le_att_handle 
-02dc 6fe0c3c0 fetch 1 ,mem_le_configuration 
-02dd c28182e2 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
+032c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+032d c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
+032e 20401e8d call le_check_encrypt_state 
+032f 68494437 fetcht 2 ,mem_le_att_handle 
+0330 6fe0c3c0 fetch 1 ,mem_le_configuration 
+0331 c2818336 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
 
 p_le_send_att_read_response:
-02de 6fe14437 fetch 2 ,mem_le_att_handle 
-02df c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
-02e0 68494437 fetcht 2 ,mem_le_att_handle 
-02e1 20201deb branch le_send_att_read_response 
+0332 6fe14437 fetch 2 ,mem_le_att_handle 
+0333 c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
+0334 68494437 fetcht 2 ,mem_le_att_handle 
+0335 20201deb branch le_send_att_read_response 
 
 p_le_send_att_read_response_check_auth:
-02e2 6fe143d1 fetch 2 ,mem_le_pairing_handle 
-02e3 98467c00 isub temp ,null 
-02e4 242282de nbranch p_le_send_att_read_response ,zero 
-02e5 243402de nbranch p_le_send_att_read_response ,user 
-02e6 20201e10 branch le_send_att_read_response_error_insufficient_auth 
+0336 6fe143d1 fetch 2 ,mem_le_pairing_handle 
+0337 98467c00 isub temp ,null 
+0338 24228332 nbranch p_le_send_att_read_response ,zero 
+0339 24340332 nbranch p_le_send_att_read_response ,user 
+033a 20201e10 branch le_send_att_read_response_error_insufficient_auth 
 
 p_le_parse_att_write_request:
-02e7 18c22200 copy contr ,rega 
-02e8 6fe143d4 fetch 2 ,mem_le_l2cap_size 
-02e9 1fe0a5fd add pdata ,-3 ,regb 
-02ea 20401a25 call le_writeatt_cb 
-02eb 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-02ec c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
-02ed 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-02ee 203a1e73 branch le_send_att_write_response_check_auth ,blank 
-02ef 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
-02f0 c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-02f1 5800001a setarg 0x001a 
-02f2 68494437 fetcht 2 ,mem_le_att_handle 
-02f3 98467c00 isub temp ,null 
-02f4 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
-02f5 7002d805 jam att_err_insufficient_authentication ,mem_le_err_code 
-02f6 20201ec9 branch le_send_att_error_response 
+033b 18c22200 copy contr ,rega 
+033c 6fe143d4 fetch 2 ,mem_le_l2cap_size 
+033d 1fe0a5fd add pdata ,-3 ,regb 
+033e 20401a25 call le_writeatt_cb 
+033f 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
+0340 c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
+0341 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
+0342 203a1e73 branch le_send_att_write_response_check_auth ,blank 
+0343 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
+0344 c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
+0345 5800001a setarg 0x001a 
+0346 68494437 fetcht 2 ,mem_le_att_handle 
+0347 98467c00 isub temp ,null 
+0348 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
+0349 7002d805 jam att_err_insufficient_authentication ,mem_le_err_code 
+034a 20201ec9 branch le_send_att_error_response 
 
 p_g24_lpm_wait:
-02f7 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-02f8 245a26e1 ncall g24_transmit_by_interrupt_enable ,blank 
-02f9 78347c00 enable user 
-02fa 20401465 call lpo_calibration 
-02fb 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-02fc 203a7e56 branch disable_user ,blank 
-02fd 6fe0c099 fetch 1 ,mem_lpm_mode 
-02fe 203a7e56 branch disable_user ,blank 
-02ff 202026c4 branch g24_setgpio_lpm_before 
+034b 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+034c 245a26e1 ncall g24_transmit_by_interrupt_enable ,blank 
+034d 78347c00 enable user 
+034e 20401465 call lpo_calibration 
+034f 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+0350 203a7e56 branch disable_user ,blank 
+0351 6fe0c099 fetch 1 ,mem_lpm_mode 
+0352 203a7e56 branch disable_user ,blank 
+0353 202026c4 branch g24_setgpio_lpm_before 
 
 p_mouse_motion:
-0300 78547c00 disable user 
-0301 58000000 setarg 0 
-0302 67e348d1 store 6 ,mem_mouse_x 
-0303 20400313 call p_mouse_check_sensor_data 
-0304 2040034a call p_mouse_dpi_config 
-0305 204003c5 call p_mouse_sensor_data_mul 
-0306 20403f7e call mouse_zwheel 
-0307 20403f83 call mouse_t_zwheel 
-0308 204040dc call mouse_key 
-0309 6fe0c8d0 fetch 1 ,mem_mouse_key 
-030a 1fe17e1f and_into 0x1f ,pdata 
-030b 67e0c8d0 store 1 ,mem_mouse_key 
-030c 24344728 nbranch mouse_drawing_optima_init ,user 
-030d 2040030f call p_mouse_drawing_optima 
-030e 20204544 branch mouse_no_data_timer_init 
+0354 78547c00 disable user 
+0355 58000000 setarg 0 
+0356 67e348d1 store 6 ,mem_mouse_x 
+0357 20400367 call p_mouse_check_sensor_data 
+0358 2040039e call p_mouse_dpi_config 
+0359 20400459 call p_mouse_sensor_data_mul 
+035a 20403f7e call mouse_zwheel 
+035b 20403f83 call mouse_t_zwheel 
+035c 204040dc call mouse_key 
+035d 6fe0c8d0 fetch 1 ,mem_mouse_key 
+035e 1fe17e1f and_into 0x1f ,pdata 
+035f 67e0c8d0 store 1 ,mem_mouse_key 
+0360 24344728 nbranch mouse_drawing_optima_init ,user 
+0361 20400363 call p_mouse_drawing_optima 
+0362 20204544 branch mouse_no_data_timer_init 
 
 p_mouse_drawing_optima:
-030f 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0310 c1018000 rtneq p3212 
-0311 c1068000 rtneq om18 
-0312 2020471a branch mouse_drawing_optima 
+0363 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0364 c1018000 rtneq p3212 
+0365 c1068000 rtneq om18 
+0366 2020471a branch mouse_drawing_optima 
 
 p_mouse_check_sensor_data:
-0313 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0314 c0068316 beq om18 ,p_mouse_om18_sensor_motion 
-0315 20204240 branch mouse_check_sensor_data 
+0367 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0368 c006836a beq om18 ,p_mouse_om18_sensor_motion 
+0369 20204240 branch mouse_check_sensor_data 
 
 p_mouse_om18_sensor_motion:
-0316 204042c4 call mouse_clear_sensor_data 
-0317 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
-0318 c07f831c beq gpio_disable ,p_mouse_om18_sensor_motion_skip_motion_pin 
-0319 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
-031a 20406059 call gpio_get_bit 
-031b 24608000 nrtn true 
+036a 204042c4 call mouse_clear_sensor_data 
+036b 6fe0c911 fetch 1 ,mem_sensor_motion_gpio 
+036c c07f8370 beq gpio_disable ,p_mouse_om18_sensor_motion_skip_motion_pin 
+036d 6848c911 fetcht 1 ,mem_sensor_motion_gpio 
+036e 20406059 call gpio_get_bit 
+036f 24608000 nrtn true 
 
 p_mouse_om18_sensor_motion_skip_motion_pin:
-031c 58000000 setarg pan_reg_pid_l 
-031d 20405b0d call twspi_read 
-031e c08c41b2 bne om18_id ,mouse_twspi_reset 
-031f 58000002 setarg pan_reg_motion_staus 
-0320 20405b0d call twspi_read 
-0321 c4038000 rtnbit0 7 
-0322 204042db call mouse_read_sensor_common 
-0323 2040428c call mouse_read_3212sensor_xy_high 
-0324 67e0c8d7 store 1 ,mem_mouse_xy_h 
-0325 1ff1fe00 rshift4 pdata ,pdata 
-0326 204042d7 call mouse_data_extsign_bit3 
-0327 67e0c8d2 store 1 ,mem_mouse_x + 1 
-0328 6fe0c8d7 fetch 1 ,mem_mouse_xy_h 
-0329 1fe17e0f and pdata ,0x0f ,pdata 
-032a 204042d7 call mouse_data_extsign_bit3 
-032b 67e0c8d4 store 1 ,mem_mouse_y + 1 
-032c 6fe0c928 fetch 1 ,mem_config_sensor_angle 
-032d c0000332 beq mouse_6clk_angle ,p_mouse_motion_6clk_direction_dispose 
-032e c0008339 beq mouse_9clk_angle ,p_mouse_motion_9clk_direction_dispose 
-032f c001033e beq mouse_12clk_angle ,p_mouse_motion_12clk_direction_dispose 
-0330 c001833f beq mouse_3clk_angle ,p_mouse_motion_3clk_direction_dispose 
-0331 20600000 rtn 
+0370 58000000 setarg pan_reg_pid_l 
+0371 20405b0d call twspi_read 
+0372 c08c41b2 bne om18_id ,mouse_twspi_reset 
+0373 58000002 setarg pan_reg_motion_staus 
+0374 20405b0d call twspi_read 
+0375 c4038000 rtnbit0 7 
+0376 204042db call mouse_read_sensor_common 
+0377 2040428c call mouse_read_3212sensor_xy_high 
+0378 67e0c8d7 store 1 ,mem_mouse_xy_h 
+0379 1ff1fe00 rshift4 pdata ,pdata 
+037a 204042d7 call mouse_data_extsign_bit3 
+037b 67e0c8d2 store 1 ,mem_mouse_x + 1 
+037c 6fe0c8d7 fetch 1 ,mem_mouse_xy_h 
+037d 1fe17e0f and pdata ,0x0f ,pdata 
+037e 204042d7 call mouse_data_extsign_bit3 
+037f 67e0c8d4 store 1 ,mem_mouse_y + 1 
+0380 6fe0c928 fetch 1 ,mem_config_sensor_angle 
+0381 c0000386 beq mouse_6clk_angle ,p_mouse_motion_6clk_direction_dispose 
+0382 c000838d beq mouse_9clk_angle ,p_mouse_motion_9clk_direction_dispose 
+0383 c0010392 beq mouse_12clk_angle ,p_mouse_motion_12clk_direction_dispose 
+0384 c0018393 beq mouse_3clk_angle ,p_mouse_motion_3clk_direction_dispose 
+0385 20600000 rtn 
 
 p_mouse_motion_6clk_direction_dispose:
-0332 6fe148d1 fetch 2 ,mem_mouse_x 
-0333 1fe67e00 sub pdata ,0 ,pdata 
-0334 67e148d1 store 2 ,mem_mouse_x 
-0335 6fe148d3 fetch 2 ,mem_mouse_y 
-0336 1fe67e00 sub pdata ,0 ,pdata 
-0337 67e148d3 store 2 ,mem_mouse_y 
-0338 20207e54 branch enable_user 
+0386 6fe148d1 fetch 2 ,mem_mouse_x 
+0387 1fe67e00 sub pdata ,0 ,pdata 
+0388 67e148d1 store 2 ,mem_mouse_x 
+0389 6fe148d3 fetch 2 ,mem_mouse_y 
+038a 1fe67e00 sub pdata ,0 ,pdata 
+038b 67e148d3 store 2 ,mem_mouse_y 
+038c 20207e54 branch enable_user 
 
 p_mouse_motion_9clk_direction_dispose:
-0339 204042bf call mouse_sensor_data_swap_places 
-033a 6fe148d1 fetch 2 ,mem_mouse_x 
-033b 1fe67e00 sub pdata ,0 ,pdata 
-033c 67e148d1 store 2 ,mem_mouse_x 
-033d 20207e54 branch enable_user 
+038d 204042bf call mouse_sensor_data_swap_places 
+038e 6fe148d1 fetch 2 ,mem_mouse_x 
+038f 1fe67e00 sub pdata ,0 ,pdata 
+0390 67e148d1 store 2 ,mem_mouse_x 
+0391 20207e54 branch enable_user 
 
 p_mouse_motion_12clk_direction_dispose:
-033e 20207e54 branch enable_user 
+0392 20207e54 branch enable_user 
 
 p_mouse_motion_3clk_direction_dispose:
-033f 204042bf call mouse_sensor_data_swap_places 
-0340 6fe148d3 fetch 2 ,mem_mouse_y 
-0341 1fe67e00 sub pdata ,0 ,pdata 
-0342 67e148d3 store 2 ,mem_mouse_y 
-0343 20207e54 branch enable_user 
+0393 204042bf call mouse_sensor_data_swap_places 
+0394 6fe148d3 fetch 2 ,mem_mouse_y 
+0395 1fe67e00 sub pdata ,0 ,pdata 
+0396 67e148d3 store 2 ,mem_mouse_y 
+0397 20207e54 branch enable_user 
 
 p_mouse_sensor_poweron:
-0344 20403f65 call mouse_sensor_spi_init 
-0345 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0346 c005834b beq ka8g2 ,p_mouse_ka8g2_sensor_init 
-0347 20404232 call mouse_sensor_reset 
-0348 da604aa3 arg mem_sensor_poweron_init ,regc 
-0349 2040422b call mouse_sensor_wr_seq 
+0398 20403f65 call mouse_sensor_spi_init 
+0399 6fe0c927 fetch 1 ,mem_config_sensor_type 
+039a c005839f beq ka8g2 ,p_mouse_ka8g2_sensor_init 
+039b 20404232 call mouse_sensor_reset 
+039c da604aa3 arg mem_sensor_poweron_init ,regc 
+039d 2040422b call mouse_sensor_wr_seq 
 
 p_mouse_dpi_config:
-034a 20200222 branch p_mouse_seting_sensor_type 
+039e 20200261 branch p_mouse_seting_sensor_type 
 
 p_mouse_ka8g2_sensor_init:
-034b 20400352 call p_mouse_ka8g2_sensor_reset 
-034c da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
-034d 2040422b call mouse_sensor_wr_seq 
-034e 2020034a branch p_mouse_dpi_config 
+039f 204003a6 call p_mouse_ka8g2_sensor_reset 
+03a0 da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
+03a1 2040422b call mouse_sensor_wr_seq 
+03a2 2020039e branch p_mouse_dpi_config 
 
 p_mouse_sensor_reset:
-034f 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0350 c0058352 beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
-0351 20204232 branch mouse_sensor_reset 
+03a3 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03a4 c00583a6 beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
+03a5 20204232 branch mouse_sensor_reset 
 
 p_mouse_ka8g2_sensor_reset:
-0352 58009706 setarg 0x9706 
-0353 20405b0c call twspi_write 
-0354 20002ee0 nop 12000 
-0355 20600000 rtn 
+03a6 58009706 setarg 0x9706 
+03a7 20405b0c call twspi_write 
+03a8 20002ee0 nop 12000 
+03a9 20600000 rtn 
 
 p_mouse_sensor_powerdown:
-0356 204041a7 call mouse_init_sunt 
-0357 20403f65 call mouse_sensor_spi_init 
-0358 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0359 c005835c beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
-035a 58000806 setarg 0x0806 
-035b 20205b0c branch twspi_write 
+03aa 204041a7 call mouse_init_sunt 
+03ab 20403f65 call mouse_sensor_spi_init 
+03ac 6fe0c927 fetch 1 ,mem_config_sensor_type 
+03ad c00583b0 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
+03ae 58000806 setarg 0x0806 
+03af 20205b0c branch twspi_write 
 
 p_mouse_ka8g2_sensor_powerdown:
-035c 58001f06 setarg 0x1f06 
-035d 20205b0c branch twspi_write 
+03b0 58001f06 setarg 0x1f06 
+03b1 20205b0c branch twspi_write 
 
 p_mouse_check_key_gpio:
-035e 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-035f 245a4121 ncall mouse_check_key_gpio_once ,blank 
-0360 da200000 arg 0 ,rega 
-0361 20400367 call p_mouse_check_lkey_gpio 
-0362 2040036c call p_mouse_check_rkey_gpio 
-0363 20400371 call p_mouse_check_mkey_gpio 
-0364 20400376 call p_mouse_check_bkkey_gpio 
-0365 20400383 call p_mouse_check_fwkey_gpio 
-0366 2020411e branch mouse_check_key_gpio_next 
+03b2 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+03b3 245a4121 ncall mouse_check_key_gpio_once ,blank 
+03b4 da200000 arg 0 ,rega 
+03b5 204003bb call p_mouse_check_lkey_gpio 
+03b6 204003c0 call p_mouse_check_rkey_gpio 
+03b7 204003c5 call p_mouse_check_mkey_gpio 
+03b8 204003ca call p_mouse_check_bkkey_gpio 
+03b9 204003d7 call p_mouse_check_fwkey_gpio 
+03ba 2020411e branch mouse_check_key_gpio_next 
 
 p_mouse_check_lkey_gpio:
-0367 6fe0c918 fetch 1 ,mem_lbutton_gpio 
-0368 20400390 call p_mouse_gpio_config_output_high 
-0369 20404124 call mouse_check_lkey_gpio 
-036a 6848c918 fetcht 1 ,mem_lbutton_gpio 
-036b 20203f56 branch mouse_gpio_config_input_pu 
+03bb 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+03bc 204003e4 call p_mouse_gpio_config_output_high 
+03bd 20404124 call mouse_check_lkey_gpio 
+03be 6848c918 fetcht 1 ,mem_lbutton_gpio 
+03bf 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-036c 6fe0c919 fetch 1 ,mem_rbutton_gpio 
-036d 20400390 call p_mouse_gpio_config_output_high 
-036e 2040412a call mouse_check_rkey_gpio 
-036f 6848c919 fetcht 1 ,mem_rbutton_gpio 
-0370 20203f56 branch mouse_gpio_config_input_pu 
+03c0 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+03c1 204003e4 call p_mouse_gpio_config_output_high 
+03c2 2040412a call mouse_check_rkey_gpio 
+03c3 6848c919 fetcht 1 ,mem_rbutton_gpio 
+03c4 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-0371 6fe0c91a fetch 1 ,mem_mbutton_gpio 
-0372 20400390 call p_mouse_gpio_config_output_high 
-0373 20404130 call mouse_check_mkey_gpio 
-0374 6848c91a fetcht 1 ,mem_mbutton_gpio 
-0375 20203f56 branch mouse_gpio_config_input_pu 
+03c5 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+03c6 204003e4 call p_mouse_gpio_config_output_high 
+03c7 20404130 call mouse_check_mkey_gpio 
+03c8 6848c91a fetcht 1 ,mem_mbutton_gpio 
+03c9 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-0376 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-0377 c17f8000 rtneq gpio_disable 
-0378 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-0379 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
-037a 1fe22600 copy pdata ,regc 
-037b 6848c90d fetcht 1 ,mem_bk_button_gpio 
-037c 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-037d c07f837f beq gpio_disable ,p_mouse_3io6key_bk_check 
-037e 2020413e branch mouse_check_bkkey_gpio_next 
+03ca 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+03cb c17f8000 rtneq gpio_disable 
+03cc 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+03cd 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+03ce 1fe22600 copy pdata ,regc 
+03cf 6848c90d fetcht 1 ,mem_bk_button_gpio 
+03d0 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+03d1 c07f83d3 beq gpio_disable ,p_mouse_3io6key_bk_check 
+03d2 2020413e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-037f 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-0380 20400392 call p_mouse_gpio_config_output_low 
-0381 6848c90d fetcht 1 ,mem_bk_button_gpio 
-0382 2020414b branch mouse_3io6key_bk_check 
+03d3 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+03d4 204003e6 call p_mouse_gpio_config_output_low 
+03d5 6848c90d fetcht 1 ,mem_bk_button_gpio 
+03d6 2020414b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-0383 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-0384 c17f8000 rtneq gpio_disable 
-0385 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-0386 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
-0387 1fe22600 copy pdata ,regc 
-0388 6848c90e fetcht 1 ,mem_fw_button_gpio 
-0389 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-038a c07f838c beq gpio_disable ,p_mouse_3io6key_fw_check 
-038b 20204157 branch mouse_check_fwkey_gpio_next 
+03d7 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+03d8 c17f8000 rtneq gpio_disable 
+03d9 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+03da 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+03db 1fe22600 copy pdata ,regc 
+03dc 6848c90e fetcht 1 ,mem_fw_button_gpio 
+03dd 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+03de c07f83e0 beq gpio_disable ,p_mouse_3io6key_fw_check 
+03df 20204157 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-038c 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-038d 20400392 call p_mouse_gpio_config_output_low 
-038e 6848c90e fetcht 1 ,mem_fw_button_gpio 
-038f 20204164 branch mouse_3io6key_fw_check 
+03e0 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+03e1 204003e6 call p_mouse_gpio_config_output_low 
+03e2 6848c90e fetcht 1 ,mem_fw_button_gpio 
+03e3 20204164 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-0390 d840003f arg gpcfg_output_high ,temp 
-0391 20206093 branch gpio_config_function_int 
+03e4 d840003f arg gpcfg_output_high ,temp 
+03e5 20206093 branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-0392 d840003e arg gpcfg_output_low ,temp 
-0393 20206093 branch gpio_config_function_int 
+03e6 d840003e arg gpcfg_output_low ,temp 
+03e7 20206093 branch gpio_config_function_int 
 
 p_mouse_idle:
-0394 20404990 call mouse_low_voltage_led_no_enter_lpm 
-0395 20407936 call ui_check_paring_button 
-0396 20400398 call p_mouse_dpi_check 
-0397 2020464f branch mouse_idle + 4 
+03e8 20404990 call mouse_low_voltage_led_no_enter_lpm 
+03e9 20407936 call ui_check_paring_button 
+03ea 204003ed call p_mouse_dpi_check 
+03eb 20400401 call p_mouse_dpi_another_gpio_check 
+03ec 2020464f branch mouse_idle + 4 
 
 p_mouse_dpi_check:
-0398 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0399 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
-039a 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-039b c17f8000 rtneq gpio_disable 
-039c da200000 arg 0 ,rega 
-039d 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-039e 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-039f 204003a1 call p_mouse_dpi_key_check 
-03a0 2020402f branch mouse_dpi_check_next 
+03ed 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+03ee c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
+03ef 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+03f0 c17f8000 rtneq gpio_disable 
+03f1 da200000 arg 0 ,rega 
+03f2 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+03f3 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+03f4 204003f6 call p_mouse_dpi_key_check 
+03f5 2020402f branch mouse_dpi_check_next 
 
 p_mouse_dpi_key_check:
-03a1 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-03a2 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-03a3 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-03a4 1fe22600 copy pdata ,regc 
-03a5 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-03a6 c07f83a8 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-03a7 2020403f branch mouse_dpi_key_check_next 
+03f6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+03f7 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+03f8 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+03f9 1fe22600 copy pdata ,regc 
+03fa 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+03fb c07f83fd beq gpio_disable ,p_mouse_3io6key_dpi_check 
+03fc 2020403f branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-03a8 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-03a9 20400392 call p_mouse_gpio_config_output_low 
-03aa 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-03ab 20204195 branch mouse_3io6key_check 
+03fd 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+03fe 204003e6 call p_mouse_gpio_config_output_low 
+03ff 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+0400 20204195 branch mouse_3io6key_check 
+
+p_mouse_dpi_another_gpio_check:
+0401 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0402 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
+0403 6fe0cc32 fetch 1 ,mem_dpi_another_button_gpio 
+0404 204003e4 call p_mouse_gpio_config_output_high 
+0405 20400408 call p_mouse_dpi_another_check 
+0406 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+0407 20203f56 branch mouse_gpio_config_input_pu 
+
+p_mouse_dpi_another_check:
+0408 704c3600 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+0409 6848cc32 fetcht 1 ,mem_dpi_another_button_gpio 
+040a 6fe0cc33 fetch 1 ,mem_dpi_another_press_status 
+040b 20400417 call p_mouse_check_key_connect_gnd_new 
+040c 67e0cc33 store 1 ,mem_dpi_another_press_status 
+040d 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+040e 203a0413 branch p_mouse_dpi_another_up ,blank 
+
+p_mouse_dpi_another_down:
+040f 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+0410 c1008000 rtneq dpi_button_state_down 
+0411 704c3401 jam dpi_button_state_down ,mem_dpi_another_button_state 
+0412 20204069 branch mouse_dpi_process 
+
+p_mouse_dpi_another_up:
+0413 6fe0cc34 fetch 1 ,mem_dpi_another_button_state 
+0414 c1000000 rtneq dpi_button_state_up 
+0415 704c3400 jam dpi_button_state_up ,mem_dpi_another_button_state 
+0416 20600000 rtn 
+
+p_mouse_check_key_connect_gnd_new:
+0417 1fe3fe00 lshift pdata ,pdata 
+0418 1fe22400 copy pdata ,regb 
+0419 20406059 call gpio_get_bit 
+041a 7920a400 setflag true ,0 ,regb 
+041b 1a417e07 and regb ,0x07 ,pdata 
+041c 6848cc36 fetcht 1 ,mem_mouse_key_temp_patch 
+041d 18420e00 copy temp ,queue 
+041e c0038421 beq 0x07 ,p_mouse_key_press 
+041f c0000423 beq 0x00 ,p_mouse_key_release 
+0420 20600000 rtn 
+
+p_mouse_key_press:
+0421 704c3501 jam 1 ,mem_dpi_another_button_down_enable 
+0422 20600000 rtn 
+
+p_mouse_key_release:
+0423 704c3500 jam 0 ,mem_dpi_another_button_down_enable 
+0424 20600000 rtn 
+
+p_mouse_dpi_process:
+0425 20404072 call mouse_dpi_ghost_check 
+0426 20740000 rtn user 
+0427 6fe0c992 fetch 1 ,mem_mouse_dpi 
+0428 1fe20400 copy pdata ,temp 
+0429 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+042a c29e8431 bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
+042b 18427e00 copy temp ,pdata 
+042c 1fe0fe01 increase 1 ,pdata 
+042d 1fe17e03 and pdata ,0x03 ,pdata 
+
+p_mouse_dpi_store:
+042e 67e0c992 store 1 ,mem_mouse_dpi 
+042f 20404095 call mouse_seting_dpi 
+0430 202045ee branch mouse_store_device_info_delay 
+
+p_mouse_double_dpi_check:
+0431 6fe0cc35 fetch 1 ,mem_dpi_another_button_down_enable 
+0432 243a043c nbranch p_mouse_another_dpi_button_down ,blank 
+
+p_mouse_dpi_increase:
+0433 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0434 c28e0439 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
+0435 18427e00 copy temp ,pdata 
+0436 c1010000 rtneq mouse_dpi_level3 
+
+p_mouse_dpi_increase_level:
+0437 1fe0fe01 increase 1 ,pdata 
+0438 2020042e branch p_mouse_dpi_store 
+
+p_mouse_dpi_increase_level_4:
+0439 18427e00 copy temp ,pdata 
+043a c1018000 rtneq mouse_dpi_level4 
+043b 20200437 branch p_mouse_dpi_increase_level 
+
+p_mouse_another_dpi_button_down:
+
+p_mouse_dpi_decrease:
+043c 18427e00 copy temp ,pdata 
+043d c1000000 rtneq mouse_dpi_level1 
+043e 1fe0ffff increase -1 ,pdata 
+043f 2020042e branch p_mouse_dpi_store 
 
 p_mouse_init_sunt:
-03ac 20403f65 call mouse_sensor_spi_init 
-03ad 20758000 rtn wake 
+0440 20403f65 call mouse_sensor_spi_init 
+0441 20758000 rtn wake 
 
 p_mouse_init_sensor_wakeup:
-03ae 20404236 call mouse_sensor_poweron 
+0442 20404236 call mouse_sensor_poweron 
 
 p_mouse_init_sensor:
-03af 204041b5 call mouse_read_sensor_id 
-03b0 c01803b7 beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
-03b1 c018c217 beq p3065_id1 ,mouse_init_p3065 
-03b2 c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
-03b3 c00c03bc beq om18_id ,p_mouse_om18_init_param 
-03b4 204041b2 call mouse_twspi_reset 
-03b5 20001af4 nop 6900 
-03b6 202003af branch p_mouse_init_sensor 
+0443 204041b5 call mouse_read_sensor_id 
+0444 c018044b beq p32xx_id1 ,p_mouse_init_p32xx_id2_judge 
+0445 c018c217 beq p3065_id1 ,mouse_init_p3065 
+0446 c02c4220 beq pka8g2_id1 ,mouse_ka8g2_id2_judge 
+0447 c00c0450 beq om18_id ,p_mouse_om18_init_param 
+0448 204041b2 call mouse_twspi_reset 
+0449 20001af4 nop 6900 
+044a 20200443 branch p_mouse_init_sensor 
 
 p_mouse_init_p32xx_id2_judge:
-03b7 6fe0c9c2 fetch 1 ,mem_sensor_id2 
-03b8 c02903ba beq om16_id2 ,p_mouse_om16_init_param 
-03b9 202041bd branch mouse_init_p32xx_id2_judge + 1 
+044b 6fe0c9c2 fetch 1 ,mem_sensor_id2 
+044c c029044e beq om16_id2 ,p_mouse_om16_init_param 
+044d 202041bd branch mouse_init_p32xx_id2_judge + 1 
 
 p_mouse_om16_init_param:
-03ba 7049270c jam om16 ,mem_config_sensor_type 
-03bb 202046ee branch mouse_dpi_4level_enable 
+044e 7049270c jam om16 ,mem_config_sensor_type 
+044f 202046ee branch mouse_dpi_4level_enable 
 
 p_mouse_om18_init_param:
-03bc 7049270d jam om18 ,mem_config_sensor_type 
-03bd 58008006 setarg 0x8006 
-03be 20405b0c call twspi_write 
-03bf 204003c3 call p_delay_15ms 
-03c0 da604bf3 arg mem_sensor_om18_init ,regc 
-03c1 2040422b call mouse_sensor_wr_seq 
-03c2 20200222 branch p_mouse_seting_sensor_type 
+0450 7049270d jam om18 ,mem_config_sensor_type 
+0451 58008006 setarg 0x8006 
+0452 20405b0c call twspi_write 
+0453 20400457 call p_delay_15ms 
+0454 da604c3d arg mem_sensor_om18_init ,regc 
+0455 2040422b call mouse_sensor_wr_seq 
+0456 20200261 branch p_mouse_seting_sensor_type 
 
 p_delay_15ms:
-03c3 df20000f arg 15 ,loopcnt 
-03c4 20207d13 branch delay_ms_wait 
+0457 df20000f arg 15 ,loopcnt 
+0458 20207d13 branch delay_ms_wait 
 
 p_mouse_sensor_data_mul:
-03c5 6fe0c927 fetch 1 ,mem_config_sensor_type 
-03c6 c1860000 rtnne om16 
-03c7 6fe0c992 fetch 1 ,mem_mouse_dpi 
-03c8 c00083ca beq mouse_dpi_level2 ,p_mouse_sensor_data_set 
-03c9 20600000 rtn 
+0459 6fe0c927 fetch 1 ,mem_config_sensor_type 
+045a c1860000 rtnne om16 
+045b 6fe0c992 fetch 1 ,mem_mouse_dpi 
+045c c000845e beq mouse_dpi_level2 ,p_mouse_sensor_data_set 
+045d 20600000 rtn 
 
 p_mouse_sensor_data_set:
-03ca 58000204 setarg 0x0204 
-03cb 67e14bed store 2 ,mem_mouse_xy_date_times 
-03cc 204003dd call p_mouse_sensor_data_set_x 
+045e 58000204 setarg 0x0204 
+045f 67e14c37 store 2 ,mem_mouse_xy_date_times 
+0460 20400471 call p_mouse_sensor_data_set_x 
 
 p_mouse_sensor_data_set_y:
-03cd 6fe0c8d3 fetch 1 ,mem_mouse_y 
-03ce c28383d2 bbit1 7 ,p_mouse_sensor_data_set_y_next 
-03cf 204003e5 call p_mouse_sensor_data_set_next 
-03d0 67e0c8d3 store 1 ,mem_mouse_y 
-03d1 20600000 rtn 
+0461 6fe0c8d3 fetch 1 ,mem_mouse_y 
+0462 c2838466 bbit1 7 ,p_mouse_sensor_data_set_y_next 
+0463 20400479 call p_mouse_sensor_data_set_next 
+0464 67e0c8d3 store 1 ,mem_mouse_y 
+0465 20600000 rtn 
 
 p_mouse_sensor_data_set_y_next:
-03d2 204003d5 call p_mouse_sensor_data_set_reverse 
-03d3 67e0c8d3 store 1 ,mem_mouse_y 
-03d4 20600000 rtn 
+0466 20400469 call p_mouse_sensor_data_set_reverse 
+0467 67e0c8d3 store 1 ,mem_mouse_y 
+0468 20600000 rtn 
 
 p_mouse_sensor_data_set_reverse:
-03d5 1fe20400 copy pdata ,temp 
-03d6 dfe00100 arg 0x100 ,pdata 
-03d7 98467e00 isub temp ,pdata 
-03d8 204003e5 call p_mouse_sensor_data_set_next 
-03d9 1fe20400 copy pdata ,temp 
-03da dfe00100 arg 0x100 ,pdata 
-03db 98467e00 isub temp ,pdata 
-03dc 20600000 rtn 
+0469 1fe20400 copy pdata ,temp 
+046a dfe00100 arg 0x100 ,pdata 
+046b 98467e00 isub temp ,pdata 
+046c 20400479 call p_mouse_sensor_data_set_next 
+046d 1fe20400 copy pdata ,temp 
+046e dfe00100 arg 0x100 ,pdata 
+046f 98467e00 isub temp ,pdata 
+0470 20600000 rtn 
 
 p_mouse_sensor_data_set_x:
-03dd 6fe0c8d1 fetch 1 ,mem_mouse_x 
-03de c28383e2 bbit1 7 ,p_mouse_sensor_data_set_x_next 
-03df 204003e5 call p_mouse_sensor_data_set_next 
-03e0 67e0c8d1 store 1 ,mem_mouse_x 
-03e1 20600000 rtn 
+0471 6fe0c8d1 fetch 1 ,mem_mouse_x 
+0472 c2838476 bbit1 7 ,p_mouse_sensor_data_set_x_next 
+0473 20400479 call p_mouse_sensor_data_set_next 
+0474 67e0c8d1 store 1 ,mem_mouse_x 
+0475 20600000 rtn 
 
 p_mouse_sensor_data_set_x_next:
-03e2 204003d5 call p_mouse_sensor_data_set_reverse 
-03e3 67e0c8d1 store 1 ,mem_mouse_x 
-03e4 20600000 rtn 
+0476 20400469 call p_mouse_sensor_data_set_reverse 
+0477 67e0c8d1 store 1 ,mem_mouse_x 
+0478 20600000 rtn 
 
 p_mouse_sensor_data_set_next:
-03e5 6848cbed fetcht 1 ,mem_mouse_xy_date_times 
-03e6 984ffe00 imul32 temp ,pdata 
-03e7 6848cbee fetcht 1 ,mem_mouse_xy_date_times + 1 
-03e8 9846fc00 idiv temp 
-03e9 20407def call wait_div_end 
-03ea 1807fe00 quotient pdata 
-03eb 1fe67c7f sub pdata ,0x7f ,null 
-03ec 242103ee nbranch p_mouse_sensor_data_set_next2 ,positive 
-03ed 20600000 rtn 
+0479 6848cc37 fetcht 1 ,mem_mouse_xy_date_times 
+047a 984ffe00 imul32 temp ,pdata 
+047b 6848cc38 fetcht 1 ,mem_mouse_xy_date_times + 1 
+047c 9846fc00 idiv temp 
+047d 20407def call wait_div_end 
+047e 1807fe00 quotient pdata 
+047f 1fe67c7f sub pdata ,0x7f ,null 
+0480 24210482 nbranch p_mouse_sensor_data_set_next2 ,positive 
+0481 20600000 rtn 
 
 p_mouse_sensor_data_set_next2:
-03ee 5800007f setarg 0x7f 
-03ef 20600000 rtn 
+0482 5800007f setarg 0x7f 
+0483 20600000 rtn 
+
+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 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/program/patch.prog	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/program/patch.prog	(working copy)
@@ -14,6 +14,7 @@
 	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
@@ -94,6 +95,22 @@
 	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_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
@@ -191,6 +208,8 @@
 /////////////////////////////////// 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 mouse_init_sunt
@@ -202,6 +221,61 @@
 	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
@@ -232,6 +306,8 @@
 
 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
@@ -347,6 +423,7 @@
 	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
 
@@ -406,6 +483,7 @@
 p_mouse_setgpio_hibernate:
 	call mouse_set_sdio_high
 	call clear_wake
+	call p_mouse_logo_led_off
 	call mouse_before_hibernate_wheel_gpio_set
 	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
 	call gpio_out_active
@@ -602,9 +680,13 @@
 	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 p_mouse_24g_start_pair_mode,zero
 	branch mouse_24g_reconn_dongle_start
 
+p_mouse_24g_start_pair_mode:
+	jam 0,mem_24g_reconn_type
+	branch mouse_24g_start_pair_mode
+
 p_mouse_24g_auto_pair_attempt_fail:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
 	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
@@ -676,6 +758,7 @@
 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
@@ -811,7 +894,34 @@
 	call mouse_current_mult_update_timer
 	call mouse_wheel_trigger_timer
 	call mouse_store_information_delay_timer
-	branch p_mouse_check_no_data_timeout_timer
+	call p_mouse_logo_led_on_timer
+	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	
+
+
+p_mouse_logo_led_on_timer:
+	fetch 1,mem_mouse_logo_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_no_data_timer
+	rtn blank
+	fetch 2,mem_mouse_no_data_timeout
+	fetcht 2,mem_mouse_no_data_timer
+	isub temp,temp
+	fetch 2,mem_mouse_logo_led_on_time_init
+	isub temp,pdata
+	branch p_mouse_logo_led_on,positive
+p_mouse_logo_led_off:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch gpio_out_inactive
+
+p_mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	call gpio_out_active
 
 p_mouse_dpi_led_blink_delay_timer:
 	arg mem_mouse_dpi_led_delay_count,regc
@@ -869,12 +979,16 @@
 
 		
 p_mouse_commbination_key_down:		// enter hibernate when reconnect
-	call mouse_combination_ui_timer
+	call p_mouse_combination_ui_timer
 	fetch 1,mem_commbination_key_statue
 	rtneq COMMBINATION_KEY_STATE_DOWN
 	jam COMMBINATION_KEY_STATE_DOWN,mem_commbination_key_statue
 	rtn
 
+p_mouse_combination_ui_timer:
+	arg p_mouse_24g_start_pair_mode,regb
+	branch mouse_combination_ui_timer+1
+
 p_mouse_le_battery_updata_timer:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
@@ -1208,6 +1322,7 @@
 	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
@@ -1233,6 +1348,99 @@
 	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_device_info_delay
+
+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///////////////////////////////////////////////
 
@@ -1327,5 +1535,514 @@
 	rtn
 ////////////////////////////// sensor data mul end ///////////////////////////////////////////////
 
+///////////////////////////// 2.4g ota start ///////////////////////////////////////////////////////////	
+p_g24_parse_rx_ota_sm:
+	fetch 1,mem_g24_ota_mode
+	rtn blank
+	fetch 1,mem_g24_ota_sm
+	beq G24_OTA_SM_TX_VERSION,p_g24_ota_sm_tx_version
+	beq G24_OTA_SM_TX_INFO,p_g24_ota_sm_tx_info
+	beq G24_OTA_SM_TX_CONFIG,p_g24_ota_sm_tx_config
+	beq G24_OTA_SM_TX_SET_CONFIG_END,p_g24_ota_sm_tx_config_end
+	beq G24_OTA_SM_TX_DATA,p_g24_ota_sm_tx_data
+	beq G24_OTA_SM_TX_RESET,p_g24_ota_sm_tx_reset
+	rtn
+
+p_g24_ota_sm_tx_reset:
+	jam G24_OTA_SM_TX_RESET_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_version:
+	jam G24_OTA_SM_TX_VERSION_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_info:
+	jam G24_OTA_SM_TX_INFO_OK,mem_g24_ota_sm
+	rtn	
+
+p_g24_ota_sm_tx_config:
+	jam G24_OTA_SM_TX_CONFIG_OK,mem_g24_ota_sm
+	rtn	
+	
+p_g24_ota_sm_tx_config_end:
+	jam G24_OTA_SM_TX_SET_CONFIG_END_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_ota_sm_tx_data:
+	jam G24_OTA_SM_TX_DATA_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_mouse_parse_rx:
+	fetch 1,mem_24g_rxdata_length
+	branch  p_g24_parse_rx_ota_sm, blank
+	copy pdata,regb //len
+//	fetch 1,mem_g24_ota_mode
+//	nbranch p_g24_mouse_parse_rx_mode_ota,blank
+	jam 0,mem_24g_rxdata_length
+	fetch 1,mem_24g_rxpayload
+	beq DATATYPE_OTA,p_g24_rx_ota	//mouse
+	rtn
+
+p_g24_ota_mode_enable:
+	jam 1,mem_g24_ota_mode
+//	jam CLEAR_INIT,mem_24g_mode_init
+	jam 0,mem_lpm_mode
+	branch p_ota_init
+
+p_g24_ota_dispatch:
+	rtn
+
+p_g24_ota_transmit:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	call g24_transmit_prep
+	call g24_transmit_receive_ack
+	nrtn sync
+	nrtn user3
+	call g24_txbuf_clear
+	branch g24_ackpayload_parse
+
+p_g24_rx_ota:
+	fetch 1,mem_24g_rxpayload
+	rtnne DATATYPE_OTA
+	ifetch 1,contr
+//	store 1,mem_g24_ota_tx_opcode
+	ifetcht 1,contr
+	sub temp,G24_OTA_TARGET_MOUSE,null
+	nbranch assert,zero
+	beq G24_OTA_CMD_VERSION,p_g24_mouse_ota_process_version
+	beq  G24_OTA_CMD_INFO,p_g24_mouse_ota_process_info
+	beq  G24_OTA_CMD_CONFIG,p_g24_mouse_ota_process_config
+	beq G24_OTA_CMD_SET_CONFIG_END,p_g24_mouse_ota_process_set_config_end
+	beq G24_OTA_CMD_DATA,p_g24_mouse_ota_process_data
+	beq G24_OTA_CMD_RESET,p_g24_mouse_ota_process_reset
+	beq G24_OTA_CMD_PING,p_g24_mouse_ota_process_ping
+	branch assert
+
+p_g24_mouse_ota_process_ping:
+	rtn
+
+p_g24_mouse_ota_process_version:
+//	call  g24_transmit_prep
+	call p_g24_ota_mode_enable 
+	jam G24_OTA_SM_RX_VERSION,mem_g24_ota_sm	
+	rtn
+	
+p_g24_mouse_ota_process_info:
+	jam G24_OTA_SM_RX_INFO,mem_g24_ota_sm
+	rtn
+	
+p_g24_mouse_ota_process_config:
+	jam G24_OTA_SM_RX_CONFIG,mem_g24_ota_sm
+	rtn
+
+p_g24_mouse_ota_process_set_config_end:
+	jam G24_OTA_SM_RX_SET_CONFIG_END,mem_g24_ota_sm
+	ifetch 2,contr
+	ifetcht 2,contr
+	fetchr rega, 2,mem_g24_ota_rx_alllen
+	isub rega,null
+	nbranch p_g24_mouse_ota_process_fail,zero
+	fetch 2,mem_g24_ota_rx_sum
+	isub temp,null
+	nbranch p_g24_mouse_ota_process_fail,zero
+	call p_g24_check_ota_data_all
+	nbranch p_g24_mouse_ota_process_fail,user
+	branch p_g24_mouse_ota_process_ok	
+
+p_g24_check_ota_data_all:
+	call p_g24_check_ota_data
+	nrtn user	
+	fetch 2,mem_g24_ota_rx_sum
+	isub alarm,null
+	nbranch disable_user,zero	
+	fetcht 2,mem_temp_block6
+	fetch 2,mem_g24_ota_rx_alllen
+	increase -5,pdata
+	isub temp,null
+	nbranch disable_user,zero
+	branch enable_user
+
+p_g24_check_ota_data:
+	fetch 2,mem_g24_ota_config_addr
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	arg 3,temp
+	arg mem_temp_block5,rega
+	call iicd_read_eep	
+
+	fetch 1,mem_temp_block5
+	bne  G24_OTA_DATA_HEADER,disable_user
+	ifetcht 2,contr
+//	fetch 2,mem_g24_ota_rx_alllen
+//	increase -5,pdata
+//	isub temp,null
+//	nbranch disable_user,zero
+	storet 2,mem_pdatatemp //len
+	storet 2,mem_temp_block6 //len
+	
+	fetch 1,mem_temp_block5
+	arg 0xffff,rege //crc
+	arg 0,temp
+	arg mem_temp_block5,contr
+	arg 3,loopcnt
+	call p_g24_mouse_data_sum
+	copy temp,alarm
+	
+	fetch 2,mem_g24_ota_config_addr
+	add pdata,3,regf
+	call p_g24_check_ota_data_loop
+
+	byteswap regf,pdata
+	store 2,mem_addr_mi
+	arg 2,temp
+	arg mem_temp_block5,rega
+	call iicd_read_eep	
+	fetch 2,mem_temp_block5
+	isub rege, null
+	nbranch disable_user,zero
+	fetch 1,mem_temp_block5
+	iadd alarm,alarm
+	ifetch 1,contr
+	iadd alarm,alarm
+	setarg 0xffff
+	iand alarm,alarm
+	branch enable_user
+
+p_g24_check_ota_data_loop:
+	fetch 2,mem_pdatatemp
+	rtn blank
+	copy pdata,temp
+	sub pdata,16,null
+	branch p_g24_check_ota_data_loopend,positive
+	increase -16,pdata
+	arg 0x10,temp //len
+p_g24_check_ota_data_loop2:
+	store 2,mem_pdatatemp
+	copy temp,regext
+	copy regf,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	arg mem_temp_block5,rega
+	call iicd_read_eep
+	copy regf,pdata
+	iadd regext,regf
+	copy regext,loopcnt
+	copy rege,pdata
+	arg mem_temp_block5,contr
+	icrc contr
+	copy pdata,rege
+	copy regext,loopcnt
+	arg mem_temp_block5,contr
+	copy alarm,temp
+	call p_g24_mouse_data_sum
+	copy temp,alarm
+	branch p_g24_check_ota_data_loop
+
+p_g24_check_ota_data_loopend:
+	setarg 0
+	branch p_g24_check_ota_data_loop2	
+
+p_g24_mouse_ota_process_data:
+	jam G24_OTA_SM_RX_DATA,mem_g24_ota_sm
+	ifetch 1,contr
+	copy contr,rega
+	fetcht 1,mem_g24_ota_rx_data_count
+	isub temp,null
+	branch p_g24_mouse_ota_process_ok,zero //retrasmit
+	call p_g24_cmd_ota_data_check_count
+	nbranch p_g24_mouse_ota_process_fail,user
+	sub regb,4,null
+	branch p_g24_mouse_ota_process_fail,positive
+	increase -4,regb
+	
+	storer regb,2,mem_hold_contw
+	storer rega,2,mem_hold_contr
+	call iicd_eeprom_write_enable
+	call 	p_dongle_usb_cmd_ota_write_data
+	call iicd_eeprom_write_disable
+	fetchr regb,2,mem_hold_contw
+	fetchr rega,2,mem_hold_contr
+	
+	fetch 2,mem_g24_ota_rx_alllen
+	iadd regb,pdata
+	store 2,mem_g24_ota_rx_alllen
+	copy regb,loopcnt
+	arg 0,temp
+	copy rega,contr
+	call p_g24_mouse_data_sum	
+	fetch 2,mem_g24_ota_rx_sum
+	iadd temp,pdata
+	store 2,mem_g24_ota_rx_sum	
+p_g24_mouse_ota_process_ok:	
+	jam G24_OTA_STATUS_SUCCESS,mem_g24_ota_rtn_state
+	rtn
+	
+p_g24_mouse_ota_process_fail:	
+	jam G24_OTA_STATUS_FAIL,mem_g24_ota_rtn_state
+	rtn
+
+p_dongle_usb_cmd_ota_write_data:
+//	fetch 1,mem_g24_ota_config_type
+	fetch 2,mem_g24_ota_config_addr
+	rtn blank
+	fetcht 2,mem_g24_ota_rx_alllen
+	iadd temp,pdata
+	copy regb,temp
+	branch iicd_write_ota_data 
+
+p_g24_mouse_ota_process_reset:
+	fetch 1,mem_g24_ota_sm
+	rtneq G24_OTA_SM_RX_RESET
+	rtneq G24_OTA_SM_TX_RESET
+	rtneq G24_OTA_SM_TX_RESET_OK
+	jam 5,mem_g24_ota_reset_timer
+	jam G24_OTA_SM_RX_RESET,mem_g24_ota_sm
+	rtn
+	
+p_g24_cmd_ota_data_check_count:
+	fetcht 1,mem_g24_ota_rx_data_count
+	store 1,mem_g24_ota_rx_data_count
+	beq 0,p_g24_cmd_ota_data_check_count_0
+	isub temp,pdata
+	beq  1,enable_user	
+	branch disable_user
+
+p_g24_cmd_ota_data_check_count_0:	
+	sub temp,0xff,null
+	branch enable_user,zero
+	branch disable_user
+
+p_g24_mouse_data_sum:
+	ifetch 1,contr
+	iadd temp,temp
+	loop p_g24_mouse_data_sum
+	rtn
+	
+//input loopcnt :len ; contr :data ptr 
+//ouput pdata :crc
+p_g24_mouse_ota_crc:
+	setarg 0xffff
+	icrc contr
+	rtn
+	
+p_g24_mouse_ota_check_crc:
+	fetchr loopcnt, 1,mem_24g_rxdata_length
+	sub loopcnt,2,null
+	branch disable_user,positive
+	arg mem_24g_rxpayload,pdata
+	iadd loopcnt,contr
+	increase -2,contr
+	ifetcht 2,contr // rx crc
+	arg mem_24g_rxpayload,contr	
+	call p_g24_mouse_ota_crc
+	isub temp,null
+	branch enable_user,zero
+	branch disable_user
+
+p_g24_mouse_ota_check_data:
+	ifetch 1,contr
+	bne 0x5a,p_g24_mouse_ota_load_fail
+	copy rega,1,contr
+	fetcht  2,contr
+p_g24_mouse_ota_check_data_loop:
+	sub temp,3,null
+	branch p_g24_mouse_ota_load_fail,positive
+	increase 2,contr
+	ifetchr loopcnt, 1,contr
+	sub loopcnt,0,null
+	nbranch p_g24_mouse_ota_load_fail,zero
+	copy loopcnt,pdata
+	iadd contr,contr
+	copy temp,pdata
+	increase 3,loopcnt
+	isub loopcnt,temp
+	nbranch p_g24_mouse_ota_check_data_loop,zero
+	ifetcht 2,contr //crc
+	add rega,1,contr
+	ifetch 2,contr 
+	add pdata,2,loopcnt
+	add rega,1,contr
+	call p_g24_mouse_ota_crc
+	isub temp,null
+	nbranch p_g24_mouse_ota_load_fail,zero	
+p_g24_mouse_ota_load_success:
+	branch enable_user	
+
+p_g24_mouse_ota_load_fail:
+	branch disable_user
+
+p_g24_mouse_ota_get_otaaddr:
+	fetch 2,mem_g24_ota_config_addr
+	copy pdata,contr
+	call p_g24_mouse_ota_check_data
+	nbranch p_g24_mouse_ota_config_end,user
+	fetchr rega, 2,mem_g24_ota_config_addr
+	add rega,1,contr
+	ifetch 2,contr
+	increase 5,pdata //header 1, len 2, crc 2
+	iadd rega,pdata
+	store 2,mem_g24_ota_config_addr
+	branch p_g24_mouse_ota_get_otaaddr
+
+p_g24_mouse_ota_config_end:
+	fetch 2,mem_g24_ota_storage_size
+	fetcht 2,mem_g24_ota_config_addr
+	isub temp,pdata	
+	rtn
+
+p_ota_init:
+	setarg 0
+	store 2,mem_g24_ota_rx_alllen
+	store 2,mem_g24_ota_rx_sum
+	store 1,mem_g24_ota_rx_data_count
+	store 1,mem_g24_ota_sm
+	rtn
+
+p_mouse_24g_package_ota:
+	call disable_user
+	fetch 1,mem_g24_ota_sm
+	beq G24_OTA_SM_RX_VERSION,p_mouse_24g_package_ota_version
+	beq G24_OTA_SM_RX_INFO,p_mouse_24g_package_ota_info
+	beq G24_OTA_SM_RX_CONFIG,p_mouse_24g_package_ota_config
+	beq G24_OTA_SM_RX_SET_CONFIG_END,p_mouse_24g_package_ota_set_config_end
+	beq G24_OTA_SM_RX_DATA,p_mouse_24g_package_ota_data
+	beq G24_OTA_SM_RX_RESET,p_mouse_24g_package_ota_reset
+	branch p_mouse_24g_package_ping
+	
+p_mouse_24g_package_ota_version:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_VERSION,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	setarg G24_OTA_VERSION
+	store 2,mem_24g_txbuf+4
+	jam TYPE_MS,mem_24g_data_type
+	jam 6,mem_24g_datalen
+//	arg 6,rega	//length
+//	arg mem_g24_ota_txbuf,regb //tx buff	
+//	branch enable_user
+	jam G24_OTA_SM_TX_VERSION,mem_g24_ota_sm
+	rtn
+
+p_mouse_24g_package_ota_info:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_INFO,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	fetch 2,core_chipid
+	store 2,mem_24g_txbuf+4
+	setarg 0x6661
+	istore 2,contw
+	setarg 1
+	istore 6,contw
+	setarg 0
+	istore 2,contw
+	istore 2,contw
+	call p_mouse_24g_storage_type
+	istore 1,contw
+	setarg 0
+	istore 1,contw
+	fetcht 2,mem_g24_ota_config_addr
+	istoret 2,contw
+	fetch 2,mem_g24_ota_storage_size
+	lshift8 pdata,pdata
+	rshift  pdata,pdata 
+	isub temp,pdata
+	nbranch  p_dongle_usb_cmd_ota_info_dongle_empty,positive
+p_dongle_usb_cmd_ota_info_dongle_common:	
+	istore 2,contw	
+	jam 24,mem_24g_datalen	
+	jam TYPE_MS,mem_24g_data_type
+	jam G24_OTA_SM_TX_INFO,mem_g24_ota_sm
+	rtn	
+
+p_dongle_usb_cmd_ota_info_dongle_empty:
+	setarg 0
+	branch p_dongle_usb_cmd_ota_info_dongle_common
+	
+p_mouse_24g_package_ota_config:
+	jam G24_OTA_SM_TX_CONFIG,mem_g24_ota_sm
+	jam G24_OTA_CMD_CONFIG,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	branch p_mouse_24g_package_ota_common_ok
+
+p_mouse_24g_package_ota_reset:
+	jam G24_OTA_SM_TX_RESET,mem_g24_ota_sm
+	jam G24_OTA_CMD_RESET,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	branch p_mouse_24g_package_ota_common_ok	
+
+p_mouse_24g_storage_type:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_storage_type_eeprom
+	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_storage_type_flash
+	setarg G24_OTA_STORAGE_ERROR
+	rtn
+	
+p_mouse_24g_storage_type_eeprom:
+	setarg G24_OTA_STORAGE_EEPROM
+	rtn
+	
+p_mouse_24g_storage_type_flash:
+	setarg G24_OTA_STORAGE_FLASH
+	rtn
+	
+p_mouse_24g_package_ota_common_ok:
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_common_fail:
+	jam G24_OTA_STATUS_FAIL,mem_24g_txbuf+2
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_data:
+	jam G24_OTA_SM_TX_DATA_OK,mem_g24_ota_sm
+	jam G24_OTA_CMD_DATA,mem_24g_txbuf+1
+	fetch 1,mem_g24_ota_rx_data_count
+	store 1,mem_24g_txbuf+4	
+	jam 5,mem_24g_datalen
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	fetch 1,mem_g24_ota_rtn_state
+	store 1,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ota_set_config_end:
+	jam G24_OTA_SM_TX_SET_CONFIG_END_OK,mem_g24_ota_sm
+	jam G24_OTA_CMD_SET_CONFIG_END,mem_24g_txbuf+1
+	jam 4,mem_24g_datalen
+	jam TYPE_MS,mem_24g_data_type
+	jam DATATYPE_OTA,mem_24g_txbuf
+	fetch 1,mem_g24_ota_rtn_state
+	store 1,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+	rtn
+
+p_mouse_24g_package_ping:
+	jam DATATYPE_OTA,mem_24g_txbuf
+	jam G24_OTA_CMD_PING,mem_24g_txbuf+1
+	jam G24_OTA_STATUS_SUCCESS,mem_24g_txbuf+2
+	jam G24_OTA_TARGET_MOUSE,mem_24g_txbuf+3
+//	jam DATATYPE_OTA,mem_24g_txbuf
+//	jam G24_OTA_CMD_PING,mem_24g_txbuf+1
+	jam TYPE_MS,mem_24g_data_type
+	jam 4,mem_24g_datalen
+	rtn
+
+p_mouse_24g_package_data_ota:
+	copy pdata,rega //length
+	jam 0,mem_g24_ota_prepare_send_len
+	jam TYPE_MS,mem_24g_data_type
+	arg mem_g24_ota_txbuf,regb //tx buff		
+	rtn
+
+///////////////////////////// 2.4g ota start ///////////////////////////////////////////////////////////	
 
 
Index: sched/mouse.dat
===================================================================
--- /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/sched/mouse.dat	(revision 1011)
+++ /YC1308AC/branch/mouse_project/XZR/mouse_public_xzr/sched/mouse.dat	(working copy)
@@ -93,6 +93,7 @@
 #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
 
 
@@ -111,6 +112,7 @@
 mem_bk_button_gpio:0b
 mem_fw_button_gpio:0c
 mem_dpi_button_gpio:0d
+mem_dpi_another_button_gpio:ff
 mem_matrix_public_gpio:ff
 mem_sensor_motion_gpio:ff
 mem_customer_key_gpio:ff
@@ -137,6 +139,8 @@
 mem_sensor_angle_switch:00	#00--6CLK   01--9CLK   02--12CLK   03--3CLK
 mem_config_sensor_dpi:00		#00--1200   01--1600
 
+mem_mouse_logo_led_gpio:ff
+mem_mouse_logo_led_on_time_init:58 02	#1min
 
 
 mem_usb_offline_check_gpio:ff
@@ -267,6 +271,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
