Index: do.bat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/do.bat	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/do.bat	(working copy)
@@ -4,63 +4,42 @@
 @set YC_PATCH_FILE=yc_patch_yc1021.h
 @set enc=1
 @set enckey=0000000000000000
-@rem set device_option=rfbqb
-@set device_option=mouse
-@rem set device_option=shutter
-@rem set device_option=hci
-@rem set device_option=antilost
-@rem set device_option=dongle
-@rem set device_option=module
-@rem set device_option=car
-@rem set device_option=remote_car
-@rem set device_option=mesh
 @echo off
 
 setlocal enabledelayedexpansion
+for /f %%f in ('dir /b /o program_patch\*.prog') do @if not %%f==main_patch.prog set progs_patch=!progs_patch! program_patch\%%f
+for /f %%f in ('dir /b /o program_patch\24g_spec_code\*.prog') do @set progs_patch=!progs_patch! program_patch\24g_spec_code\%%f
+for /f %%f in ('dir /b /o program_patch\ble_spec_code\*.prog') do @set progs_patch=!progs_patch! program_patch\ble_spec_code\%%f
+for /f %%f in ('dir /b /o program_patch\bt_spec_code\*.prog') do @set progs_patch=!progs_patch! program_patch\bt_spec_code\%%f
+for /f %%f in ('dir /b /o program_patch\debug_spec_code\*.prog') do @set progs_patch=!progs_patch! program_patch\debug_spec_code\%%f
+type program_patch\main_patch.prog %progs_patch% > program\patch.prog
+
 for %%f in (program\ble_protocol_stack\*.prog) do @set progs=!progs! %%f
 for %%f in (program\g24_protocol_stack\*.prog) do @set progs=!progs! %%f
 for %%f in (program\mesh_protocol_stack\*.prog) do @set progs=!progs! %%f
 for %%f in (program\*.prog) do @if not %%f==program\bt.prog if not %%f==program\patch.prog if not %%f==program\sim.prog set progs=!progs! %%f
 type program\bt.prog %progs% > output\bt_program23.meta
 
-::for %%f in (format\peipherals_config\*.format) do set fmts=!fmts! %%f
 for %%f in (format\ble_protocol_stack\*.format) do set fmts=!fmts! %%f
 for %%f in (format\g24_protocol_stack\*.format) do set fmts=!fmts! %%f
 for %%f in (format\mesh_protocol_stack\*.format) do set fmts=!fmts! %%f
 for %%f in (format\*.format) do @if not %%f==format\bt.format if not %%f==format\command.format set fmts=!fmts! %%f
 type format\bt.format %fmts% format\command.format > output\bt_format.meta
-::perl util/memalloc.pl output/bt_format.meta
 
-if "%device_option%" equ "hci" (
-  copy sched\hci_boot.dat output\sched.rom
-) else if "%device_option%" equ "mouse" (
-  copy sched\mouse.dat output\sched.rom
-) else if "%device_option%" equ "module" (
-  copy sched\DM_module.dat + sched\1308.dat output\sched.rom
-) else if "%device_option%" equ "shutter" (
-  copy sched\shutter.dat output\sched.rom
-) else if "%device_option%" equ "antilost" (
-  copy sched\antilost.dat + sched\1308.dat output\sched.rom
-) else if "%device_option%" equ "dongle" (
-  copy sched\dongle.dat output\sched.rom
-) else if "%device_option%" equ "car" (
-  copy sched\car.dat + sched\1308.dat output\sched.rom
-) else if "%device_option%" equ "remote_car" (
-  copy sched\remote_car.dat + sched\1308.dat output\sched.rom
-) else if "%device_option%" equ "esl" (
-  copy sched\esl.dat + sched\1308.dat output\sched.rom  
- ) else if "%device_option%" equ "mesh" (
-  copy sched\mesh.dat output\sched.rom
-) else (
-
-cd ..
-echo **********************************
-echo Error: illegal device_option !
-echo **********************************
-goto end
-) 
 
-perl util/mergepatch.pl 
+rem +sched\common.dat^
+rem +sched\mouse.dat^
+rem +sched\g24.dat^
+rem +sched\usb.dat^
+rem +sched\ble.dat^
+rem +sched\classic.dat^
+
+copy sched\common.dat^
+    +sched\mouse.dat^
+    +sched\g24.dat^
+    output\sched.rom
+
+perl util/mergepatch.pl
 
 cd output
 osiuasm bt_program23 -O-W
@@ -68,14 +47,9 @@
 ::geneep -n -k key.dat
 echo no c51 code
 geneep -n
-::echo exist c51 code
-::geneep
-
 
 ::create_exen.pl 1  1024 64
 
-
-if "%device_option%" equ "mouse" (
 cd ..\output
 copy eeprom.dat ..\util\eeprom.dat
 cd ..\util
@@ -86,15 +60,6 @@
 cd ..\output
 copy eeprom.dat ..\output\flash.dat 
 
-)
-
-
-if "%device_option%" equ "module" (
-	perl eeprom2hciimage_1021s.pl
-
-)
-:: perl ..\util\eeprom2hciimage.pl
-:: perl ..\util\bin2array.pl > bt_patch.h
 
 :end
 
Index: format/app_mouse.format
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/format/app_mouse.format	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/format/app_mouse.format	(working copy)
@@ -401,7 +401,7 @@
 16 mem_mouse_rssi_signal_buf_patch
 16 mem_mouse_rssi_signal_buf_temp
 
-1 mem_g24_fast_conn_enable
+1 mem_soft_agc_en
 1 mem_xtal_cache
 
 //uart start 
Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/output/eeprom.dat	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/output/eeprom.dat	(working copy)
@@ -2,1160 +2,916 @@
 02
 aa
 55
-5a
-1a
+8a
+15
 c2
 84
 00
-1d
+18
 c0
 00
-00
-2e
-c0
-01
-80
-4b
+02
+ef
 c0
 41
-80
-64
+83
+2c
 c0
 42
-00
-6b
+03
+33
 c0
 42
-80
-6f
+83
+37
 c0
 45
-00
-98
+03
+4a
 c0
 45
-80
-ce
+83
+1f
 c0
 46
-00
-7e
-c0
-4f
-80
-db
+03
+50
 c0
 57
 00
-f0
-c0
-58
-00
-c2
+23
 c0
 61
-83
-8e
+80
+63
 c0
 62
 00
-48
+78
 c0
 63
-82
-51
+80
+7f
 c0
 64
-82
-57
+80
+85
 c0
 65
-02
-8c
+00
+ba
 c0
 66
 00
-be
+7b
 c0
 67
-04
-f1
+00
+49
 c0
 67
-85
-e7
+82
+6c
 c0
 68
-03
-c3
+02
+3e
 c0
 68
-85
-1e
+81
+61
 c0
 6a
-05
-04
+01
+47
 c0
 6b
-02
-b1
+00
+5e
 c0
 6c
-83
-d4
-c0
-6d
-04
-71
+80
+c3
 c0
 6f
-05
-8d
-c0
-74
-04
-a1
+00
+59
 20
 20
 13
 7c
 c0
 19
-80
-9e
+83
+6a
 c0
 1a
-00
-a3
+03
+6f
 c0
 43
-84
-9d
-c0
-50
-84
-b5
-c0
-60
-04
-bf
+83
+8a
 c0
 6e
 83
-7e
+fa
 c0
 6f
-01
-f9
+03
+ae
 c0
 70
 83
-a3
+8e
 c0
 71
-03
-26
+04
+c5
 c0
 74
-83
-4e
+84
+ec
 c0
 75
-01
-a7
-c0
-76
 04
-e5
+0a
 c0
 76
-86
-5d
+04
+73
 20
 20
 13
 7c
+79
+3f
+80
+34
+20
+40
+6d
+f3
+20
+40
+00
+32
+20
+40
+41
+a7
+20
+75
+80
+00
+20
+40
+02
+9c
 6f
-e0
-c1
-7b
+e1
+c8
+ad
 67
-e0
+e1
 cc
-93
+64
 20
-60
-00
+40
+04
+c1
+20
+40
+40
+8e
+20
+40
+3d
+8a
+20
+40
+47
+28
+20
+40
 00
+44
 20
+40
+01
+53
+20
+20
+3b
+c9
+20
+75
 80
 00
-00
-24
-55
-80
-2b
 20
 40
-30
-f3
+26
+07
+d8
+40
+03
 58
-00
-4c
-72
-67
-e1
+60
+49
 48
-99
+38
 20
 40
-3b
-fd
+22
+ff
 20
 40
-12
-4a
-6f
-e0
-cc
-93
-67
-e0
-c1
-7b
-58
 00
-0f
-0f
-d8
-a0
-0f
-ff
-98
-a1
-0a
+41
+20
+40
+3d
+13
+20
+40
+01
+fd
+20
+40
 00
+d4
+20
+40
+02
+64
+20
+40
+02
+a9
+6f
+e4
+4b
+ab
+c3
+0c
+3b
+f5
+20
+40
+02
+ac
+20
+20
+3b
+f5
 6f
 e0
-c1
-7a
-1f
-e1
-7e
-f0
-1f
-ed
-7e
-00
-98
-a1
-fe
-00
-79
+cc
+40
+24
+5a
+01
+11
+20
+20
 3f
-fe
+1e
+58
+00
 02
+af
 67
-f1
-00
-4c
-ef
 e1
+48
+9b
+58
 00
-06
-e7
+02
+c9
+67
 e1
+48
+9d
+20
+20
+3b
+d3
+78
+54
+7c
 00
-05
 58
 00
 00
-01
-37
-d9
-82
 00
 67
-f0
-80
-05
-70
-41
-7b
-08
-70
-80
-42
-04
-20
+e3
+48
+d1
 20
-08
-05
-6f
-e0
-cc
+40
 42
-24
-5a
-03
-f1
-20
-20
-3d
-5a
-20
 40
-70
-6c
+58
+00
+00
+89
 20
 40
-75
-97
+5b
+0c
 20
 40
-6e
-a7
-20
 40
-1b
-93
+8e
 20
 40
-08
-3a
+3f
+7e
 20
 40
-31
-08
+3f
+83
 20
 40
-08
-92
+01
+5a
+6f
+e0
+c8
+d0
+1f
+e1
+7e
+1f
+67
+e0
+c8
+d0
+24
+34
+47
+28
 20
 40
-0b
-08
+01
+44
+20
+20
+45
+44
 20
 40
-0b
-7b
+49
+90
 20
 40
-08
-23
+79
+36
 20
 40
-21
-d3
+01
+98
 20
 40
-00
-58
+01
+ac
 20
 20
-08
-13
+46
+4f
+1a
+62
+7e
+00
+c0
+1e
+05
+23
+c0
+1c
+85
+1c
+c0
+1d
+05
+2e
 20
-40
-14
-65
-6f
-e1
-c1
-74
 20
-7a
-00
-00
+43
+36
+6f
+e4
+4b
+ab
+c2
+97
+c8
+0a
 6f
 e0
+c9
+38
 c0
-99
-20
-7a
 00
 00
-6f
-e0
-c7
-64
+68
 20
-3a
-00
-61
-6f
-e0
-c6
-b9
 20
-7a
-00
-00
+3d
+57
 6f
-e0
-c6
-ba
-24
-7a
+e4
+4b
+ab
+c3
+08
+c8
+03
+20
+40
+3d
+65
+20
+34
 00
+72
+6f
+e4
+4b
+ab
+c2
+98
 00
+75
+c3
+18
+80
+75
 20
+40
+41
+10
+1a
+21
+7e
+07
 20
-14
-ea
-70
-89
-00
-05
 20
-00
-00
-02
-70
-89
-00
-00
+47
+ff
 6f
 e0
-c0
-c5
-c0
-0c
-11
-68
-70
-8a
-87
-29
-20
+cc
+40
+24
+5a
+00
+d9
 20
-11
-7d
 20
+48
+06
+6f
+e0
+cc
 40
-11
-90
-58
+24
+5a
 00
-76
-76
-67
-f1
-09
-68
+d9
 20
-60
-00
-00
+20
+48
+0c
 6f
 e0
 cc
-92
+42
 24
-3a
+5a
 00
-79
+d9
 20
+20
+3d
+5a
+6f
+e0
+cb
+aa
+24
+7a
+00
 00
-01
-2c
 20
 40
-4c
-a7
-d8
-c0
-41
-eb
-98
-c0
-8c
+03
+6f
+20
+20
+3e
+bb
+58
+00
 00
-ef
-e0
-80
 06
-67
-f0
-89
-61
-70
-89
-60
-2e
 20
+40
+5b
+0d
+c2
+81
+be
+23
 20
-11
-b3
-6f
-f0
-89
-60
-1f
-e1
-fe
+40
 01
-67
-f0
-89
-60
-70
-89
-61
-04
+4e
 20
+40
+01
+53
 20
-11
-b3
-6f
-f0
-89
-a2
-2f
-ef
-fe
-06
-79
 20
-fe
-07
-67
-e0
-c1
+3e
+23
+20
+40
+42
 e9
-6f
-f0
-89
-a3
-1f
-e1
-04
-0f
-18
-43
-84
-00
-1f
-f1
-fe
-00
-98
+20
 40
-84
-00
-18
-4f
-a2
-03
+7f
+dc
+20
+40
+01
+1e
+20
+40
+01
+11
+20
+40
+40
+15
+68
+48
+c9
+10
+20
+40
+60
+69
+68
+48
+c9
+10
+20
+40
+60
+42
 6f
 e0
-c1
-e9
+c9
 20
+d8
 40
 00
-93
-1f
-e6
-7e
-00
-9a
+3f
 20
-fe
-00
-1f
-e0
-ff
-f7
-1f
-e1
-7f
-ff
-2f
-ef
-fe
-08
-24
-20
-80
-91
-58
-00
-00
-00
-67
-e0
-80
-19
-20
-60
-00
-00
-2f
-ef
-fe
-07
-24
+40
 60
-80
-00
+93
 d8
 40
-ff
-00
-98
-41
-fe
-00
-20
-60
-00
-00
-6f
-e0
-cc
-92
-24
-3a
 00
-9b
-20
-20
-12
-3b
-70
-8a
-39
-5b
-70
-8a
-3a
-01
+03
 20
+40
+3f
+56
 20
-12
-2a
-da
+40
+3e
+40
 20
-09
-9e
+40
+60
+82
 d8
 40
 00
-0c
-58
-00
+13
+20
+40
+3f
+56
+20
+40
 00
-30
+9a
 20
 40
-5e
-63
+00
+a7
 20
 20
-60
-bf
-6a
-50
-8a
-12
-70
-8a
-12
-3d
-70
-8a
-11
-aa
-70
-8a
-0a
-0c
+00
+ae
 6f
-f0
-8a
-09
-79
-20
-7e
-07
+e1
+cb
+de
 67
-f0
-8a
-09
-70
-8a
-0b
-04
+e1
+89
+5c
+df
 20
 00
-00
-3c
-70
-8a
-16
-00
-70
-8a
-17
-06
-20
+14
+d8
 40
-61
-1a
-67
-f0
-8a
-97
-70
-80
-dc
-03
-20
 00
 00
-3c
 6f
-f0
-80
-53
-79
+e1
+89
+5c
+2f
+ef
+fe
+00
 20
+40
+e0
+7f
+6f
+e1
+89
+5c
+1f
+e3
 7e
-07
-67
-f0
-80
-53
-20
 00
-03
-e8
-6f
-f1
-01
-50
 67
 e1
-44
-a2
-6f
-f0
-80
-53
-79
-3f
-fe
-07
-67
-f0
-80
-53
-70
-8a
-97
+89
+5c
+18
+40
+84
+01
+c2
 00
-62
-50
-8a
-12
+00
+9e
 20
 60
 00
 00
 6f
+e4
+4b
+ab
+c4
+0a
+00
+00
+6f
 e0
-cb
-aa
-24
-7a
+c8
+fd
+c1
+81
 00
 00
-20
+6f
+e0
+c8
+fc
+d8
 40
 00
-a3
+c0
 20
 20
-3e
-bb
+60
+93
 6f
-e0
-83
-0d
-20
-7a
+e4
+4b
+ab
+c4
+1e
 00
 00
-1f
-e0
-ff
-ff
-67
-e0
-83
-0d
-20
-40
-77
-c5
-20
-40
-31
-e3
-20
-40
-31
-a4
+68
+48
+c9
+13
 20
 40
-31
-aa
+60
+42
+68
+48
+c9
+14
 20
 40
-5c
-dc
-6f
-e1
-44
+60
+42
 6f
-20
+e0
+c9
+13
+d8
 40
-7e
-05
-20
-20
 00
-c2
-70
-8a
-8b
-e6
-20
-40
-12
-6a
-20
-40
-12
-71
+80
 20
 40
-12
-77
-70
-8a
-6d
-09
-70
-8a
-03
-05
-70
-8a
-7a
-94
-70
-8a
-0e
-0b
-70
-8a
-0f
-05
-70
-8a
-83
-90
-70
-8a
-85
-00
-70
-89
-21
+60
+93
+6f
+e0
+c9
+14
+d8
 40
-20
-20
-12
-5d
-70
 00
 80
-00
 20
 20
+60
+93
+68
+48
+c9
 13
-b7
-58
-00
-00
-00
-67
-f1
-8a
-00
-70
-4c
-63
-8c
 20
 40
-12
-cf
-6f
-e2
-41
-64
-98
-40
-fe
-00
-67
-e2
-41
-64
-18
-02
-7e
-00
-67
-e4
-41
-9d
-d8
-c0
-80
-70
-d8
-a0
-41
-86
+60
+50
+68
+48
+c9
+14
 20
 40
-7d
-01
-6f
-f0
-80
-86
-67
-e0
-c1
-a5
+60
+50
 20
 40
-14
 3f
+88
 6f
-f0
-80
-42
-1f
-e1
-fe
-14
-67
-f0
-80
-42
-20
-20
-14
-9e
-24
-55
-81
+e0
+c9
 1f
-20
+d8
 40
-6d
-f3
+00
+3f
 20
 40
-01
-4a
+60
+93
 20
-40
-41
-a7
 20
-75
-80
-00
+3e
+44
 20
 40
-01
-00
-6f
-e1
-c8
-ad
-67
-e1
-cc
-64
+3e
+9b
 20
 40
-06
-59
+49
+56
 20
 40
-01
-0d
+23
+2b
 20
 40
-40
-8e
+25
+56
 20
 40
-3d
-8a
+47
+cd
 20
 40
-47
-28
+48
+be
 20
 40
 01
-62
+24
 20
 40
-05
-10
-20
+00
+e2
 20
-3b
-c9
-58
+40
 01
-77
-00
-67
-e1
-cc
-4e
+14
 20
 40
-26
-13
-70
-48
-c6
-1e
-6f
-e4
-4b
-ab
-c4
-0c
-00
-00
+40
+7c
 20
 40
-26
-0b
-70
-48
-c6
-0f
-58
-00
-bb
-80
-67
-e1
+44
 cc
-4e
-58
-00
-48
-00
-67
-e1
-c8
-ad
-20
-60
-00
-00
 20
 40
 01
-18
+27
 20
 40
-03
-ec
+44
+ff
+20
+40
+45
+35
+20
+40
+40
+22
+20
+40
+45
+47
 20
 20
 01
-10
+3e
 6f
-e4
-4b
-ab
-c4
-1e
-80
-00
+e0
+cc
+46
+67
+e0
+cc
+47
 6f
 e0
 cc
-3b
-c2
-83
-81
-16
-70
-4c
-3a
-00
+44
+67
+e0
+cc
+45
 20
 60
 00
 00
 70
 4c
-3a
+41
+01
+70
+4c
+43
 01
-20
-60
-00
-00
 6f
 e0
 cc
-38
-c1
-7f
-80
-00
-c2
-83
-81
-1d
-70
+4b
+67
+e0
+cc
 4c
-39
-00
 20
 60
 00
 00
 70
 4c
-39
+41
 01
+70
+4c
+4c
+00
+70
+4c
+43
+00
 20
 60
 00
 00
 6f
-e4
-4c
-1f
+e0
+cc
+41
 20
 7a
 00
@@ -1163,1099 +919,1059 @@
 6f
 e0
 cc
-1e
-1f
-e2
-22
+43
+c0
 00
-1f
-e6
-7c
-0b
+80
+f2
+6f
+e0
+cc
+45
 24
-21
-01
-31
-d8
-c0
-4c
-1f
-d8
-a0
-4a
-db
-1a
-22
-72
+3a
 00
-20
-40
-7d
-5f
-d8
-c0
+ea
+70
 4c
-1f
-d8
-a0
-44
-0a
-1a
-22
-72
+41
 00
 20
-40
-7d
-5f
-d8
-c0
-4c
-1f
-d8
-a0
-42
-f8
-1a
-22
-72
+60
+00
 00
-20
-20
-7d
-5f
-20
-40
-01
-47
 6f
 e0
 cc
-1e
+47
+20
+3a
+00
+ef
 1f
 e0
-fe
-01
+ff
+ff
 67
 e0
-ca
-d2
+cc
+47
+20
+20
+00
+f9
 70
-4a
-d3
-09
-d8
-c0
 4c
-1f
-d8
-a0
-4a
-d4
-1a
-22
-72
+45
+00
+70
+4c
+41
 00
 20
-40
-7d
-5f
+20
+01
+05
+da
+60
+4c
+4c
+da
+40
+00
+f5
+20
+20
+31
+8a
 6f
 e0
 cc
-1e
-1f
-e0
-fe
-01
+4b
 67
 e0
-c4
-08
-70
-44
-09
-09
-d8
+cc
+4c
+6f
+e0
+cc
+4d
 c0
+00
+81
+05
+70
 4c
-1f
-d8
-a0
-44
-0a
-1a
-22
-72
+4d
+01
+6f
+e0
+c9
+38
+c0
 00
-20
-40
-7d
-5f
-d8
+00
+ff
 c0
-4c
-1e
-d8
-a0
-42
-f7
-1a
-22
-72
 00
-1f
+81
+01
+c0
+01
+01
+03
+20
+60
+00
+00
+68
+48
+cc
+48
+20
 20
-f2
 01
+04
+68
+48
+cc
+49
 20
 20
-7d
-5f
-d8
-a0
+01
+04
+68
+48
+cc
 4a
-d2
-df
 20
-00
-14
 20
+60
+69
+70
+4c
+4d
+00
+6f
+e0
+c9
+38
+c0
+00
+01
+0b
+c0
+00
+81
+0d
+c0
+01
+01
+0f
 20
-7d
-26
-20
-75
-80
+60
 00
+00
+68
+48
+cc
+48
+20
 20
-40
-26
-07
-d8
-40
-03
-58
 60
-49
+7f
+68
 48
-38
+cc
+49
 20
-40
-22
-ff
 20
-40
-01
-5c
+60
+7f
+68
+48
+cc
+4a
 20
-40
-3d
-13
+20
+60
+7f
 20
 40
 01
-56
-6f
-e4
-4b
-ab
-c3
-0c
-3b
-f5
+0b
 20
 40
 01
-59
+0d
 20
 20
-3b
-f5
-58
+01
+0f
+6f
+e0
+cb
+ed
+c1
+7f
+80
 00
-e2
-90
-67
+6f
 e1
-c8
-ad
+4a
+b2
 20
-60
-00
+7a
 00
-58
 00
-17
-70
-67
+6f
 e1
-c8
-ad
-20
-60
+4b
+be
+68
+49
+4a
+b2
+98
+46
+04
 00
+6f
+e1
+4b
+ee
+98
+46
+7e
 00
+20
+21
+01
+22
+68
+48
+cb
+ed
 6f
 e0
 cc
 40
-24
-5a
-01
-5f
+c0
+00
+e0
+7f
 20
 20
-3f
-1e
+60
+65
+68
+48
+cb
+ed
 20
-40
-04
-23
 20
+60
+69
+da
+60
+4b
+a8
+da
 40
-04
-25
+02
+4f
 20
 20
-04
-27
-58
+31
+8a
+6f
+e0
+c9
+38
+c0
 00
 01
-67
-67
-e1
-48
-9b
-58
+2d
+6f
+e4
+4b
+ab
+c4
+1a
+80
 00
-01
-81
-67
-e1
+68
 48
-9d
-20
+cb
+ca
 20
-3b
-d3
-c6
-93
-00
-00
 20
-40
-3f
-70
-24
-74
-00
-00
+01
+30
 6f
 e4
 4b
 ab
-c3
-0a
-81
-6e
-6f
-e0
+c4
+19
+00
+00
+68
+48
 cb
-8b
-24
-3a
+cb
+60
 48
-84
+cb
+9d
 20
 40
-42
-cb
-6f
-e0
-c8
-36
-c2
-80
-81
-7d
-68
-48
-c7
-c7
-6f
-e0
-c8
-d0
-98
 41
-fe
-00
-67
-e0
-c8
-d0
+15
+1f
+e1
+7e
+07
 68
 48
-c7
-cc
-6f
-e0
-c8
-d5
+cb
+9d
 98
-40
-fe
+46
+7c
 00
-67
-e0
-c8
-d5
-68
-48
-c7
-cd
+20
+22
+81
+37
+20
+20
+44
+eb
+20
+40
+01
+3c
 6f
 e0
-c8
-d6
-98
-40
-fe
+cb
+9f
+c1
+00
+80
 00
-67
-e0
-c8
-d6
 70
-48
-36
+4b
+9f
 01
-da
 20
+60
+00
 00
-07
 da
 40
-48
-d0
+05
+42
+20
 20
+44
+f7
+da
 60
-00
-00
-6f
-e4
-4b
-ab
-c4
-0b
-00
-00
-6f
-e0
-ca
-ae
+4a
+b2
+da
+40
+01
+41
 20
-7a
-00
-00
+20
+31
+91
 6f
 e0
-c8
-a7
-20
-7a
-00
+c9
+38
+c0
 00
+05
+59
+20
+20
+43
+1b
 6f
 e0
-cb
-a1
-1f
-e0
-fe
+c9
+27
+c1
 01
-1f
-e1
-7e
-03
-67
-e0
-cb
-a1
-24
-7a
-00
-00
-70
-4b
-a2
+80
 00
+20
+20
+47
+1a
+20
+40
+3f
+65
 6f
 e0
-cb
-a2
-1f
-e0
-fe
-01
-67
-e0
-cb
-a2
-1f
-e6
-7c
-08
-24
-21
-01
-97
+c9
+27
+c0
+05
+81
+4b
 20
-40
-25
-9a
+20
+42
+38
 20
 40
 01
-e8
-24
-2c
-01
-9d
-24
-37
-81
-9d
+51
+da
+60
+4b
+e3
 20
-40
-48
-b5
 20
-40
-25
-97
+42
+3a
 6f
 e0
-cb
-a3
-1f
-e0
-fe
-01
-67
-e0
-cb
-a3
+c9
+27
 c0
-08
-01
-9f
+05
+81
+51
 20
-60
-00
+20
+42
+32
+58
 00
+97
+06
 20
-40
-22
-cb
 20
+42
+33
 20
-01
-8d
-70
-4b
-a3
-00
+40
+41
+a7
+20
+40
+3f
+65
 6f
 e0
-cb
-a4
-c3
-80
-00
-00
-79
+c9
+27
+c0
+05
+81
+58
 20
-7e
+20
+42
+3e
+58
 00
-67
-e0
-cb
-a4
-6f
-e1
-4b
-bc
-67
-e1
-4a
-b2
+1f
+06
 20
 20
-05
-10
+5b
+0c
 20
 40
-26
-31
+02
+04
+6f
+e0
+cc
+37
 24
-34
+3a
 02
-95
+1b
+6f
+e0
+cc
+32
+24
+3a
+02
+1a
 20
 40
 01
-dc
+61
+20
 20
 40
-26
-ee
+dd
 6f
 e0
 cb
 e1
 24
-3a
-01
-b1
-6f
-e4
-48
-b0
-67
-e4
-48
-5c
-6f
-e1
-48
-c2
-67
-e1
-48
-c4
+5a
+41
+21
+da
 20
-40
-26
-bb
-24
-74
 00
 00
+20
+40
+01
+6b
+20
+40
+01
+70
+20
+40
+01
+75
+20
+40
+01
+7a
+20
+40
+01
+87
+20
+40
+02
+04
+20
+20
+41
+1e
 6f
 e0
-cc
-69
-70
-4c
-69
-00
-1f
-e6
-7c
-00
+c9
+18
+20
+40
+01
+94
+20
+40
+41
 24
-22
-81
-d6
 68
-49
-4c
-67
+48
+c9
 18
-46
-7c
-00
 20
-22
-81
-cc
+20
+3f
+56
 6f
-e2
-4c
-59
+e0
+c9
+19
 20
-3a
+40
 01
-cc
+94
+20
+40
+41
+2a
 68
-4a
-4c
-4e
-98
-46
-04
-00
-60
-4a
-4c
-6e
-24
-21
-01
-cf
+48
+c9
+19
+20
+20
+3f
+56
 6f
-e1
-c8
-ad
-98
-46
-7e
-00
-24
-21
-01
-da
-d8
-40
-06
-00
-98
-46
-7c
-00
-24
-21
-01
-da
-67
-e2
-4c
-6a
+e0
+c9
+1a
 20
 40
 01
-d3
-6f
-e2
-4c
-6a
+94
 20
 40
-7d
-aa
-60
-4a
 41
-60
+30
+68
+48
+c9
+1a
 20
 20
+3f
+56
+6f
+e0
+c9
+0d
+c1
+7f
+80
 00
-dd
+70
+4b
+96
+03
+6f
+e0
+cb
+91
+1f
+e2
+26
+00
+68
+48
+c9
+0d
+6f
+e0
+c9
+10
+c0
+7f
+81
+83
+20
+20
+41
+3e
+6f
+e0
+c9
+0d
 20
 40
 01
-d3
-6f
-e1
-c8
-ad
+96
+68
+48
+c9
+0d
 20
 20
-01
-c6
-18
-46
-04
+41
+4b
+6f
+e0
+c9
+0e
+c1
+7f
+80
 00
+70
+4b
+96
+04
 6f
-e1
-c8
-ad
-98
-40
-fe
+e0
+cb
+92
+1f
+e2
+26
 00
+68
+48
+c9
+0e
+6f
+e0
+c9
+10
+c0
+7f
+81
+90
+20
 20
+41
+57
+6f
+e0
+c9
+0e
 20
+40
 01
-c6
-58
-00
-00
+96
+68
+48
+c9
+0e
+20
+20
+41
+64
+d8
+40
 00
-67
-e2
-4c
-6e
+3f
+20
 20
 60
-00
-00
-6f
-e2
-4c
-59
-68
-4a
-4c
-6e
-98
+93
+d8
 40
-fe
 00
+3e
 20
 20
-01
-bc
-70
-4c
-69
-01
-20
 60
+93
+6f
+e4
+4b
+ab
+c2
+97
+40
+36
+6f
+e0
+c9
+0f
+c1
+7f
+80
+00
+da
+20
 00
 00
 70
+4b
+96
+05
+68
 48
-a6
-00
-58
-00
-00
-00
-67
-e1
-4c
-67
+c9
+0f
 20
 40
 01
-e8
+a1
+20
+20
+40
+2f
 6f
-e0
-c8
-2c
-c0
-00
-a6
-51
-24
-2c
-02
-15
-24
-37
-82
-15
-20
-40
-06
-17
-20
-40
-26
-72
-20
+e4
+4b
+ab
+c2
+96
 40
-02
-44
-20
-20
+48
+6f
+e0
+cb
+93
+1f
+e2
 26
-51
-78
-57
-fc
 00
-20
-40
-22
-46
 6f
 e0
-c8
-2c
+c9
+10
 c0
-00
-a2
+7f
+81
+a8
+20
+20
+40
 3f
-18
-00
-2a
-00
 6f
-e2
-48
-3c
-98
-00
-12
-00
+e0
+c9
+0f
 20
 40
-10
-b0
+01
+96
 68
 48
-80
-17
+c9
+0f
 20
-40
-11
-8f
 20
-40
-11
-a6
+41
+95
+6f
+e4
+4b
+ab
+c4
+1e
+80
+00
+6f
+e0
+cc
+3a
+24
+3a
+01
+b5
+6f
+e0
+cc
+3b
 20
 40
-02
-04
-20
-57
-81
-f6
+01
+94
 20
-60
-00
-00
-70
-8a
-0a
-00
-70
-8a
-0b
-00
+40
+01
+c5
+68
+48
+cc
+3b
 20
 20
-12
-9c
+3f
+56
 6f
 e0
-c8
-64
+cc
+3b
+79
+3f
+fe
+07
+67
+e0
+cc
+3b
 20
 40
-16
-8b
-6f
-e2
+01
+96
+70
+4c
+3f
+00
+68
 48
+cc
+3b
+6f
+e0
+cc
 3c
-98
-00
-12
-00
 20
 40
-10
-b0
+01
+de
 20
 40
-11
-61
+01
+c9
 68
 48
-c8
-3a
+cc
+3b
+20
+20
+3f
+56
 20
 40
-16
-c8
+3f
+56
 6f
-f0
-89
-60
-79
+e0
+cc
+3d
+c1
+00
+80
+00
+70
+4c
+3d
+01
 20
-7e
-03
-67
-f0
-89
-60
 20
 40
-21
-d5
-c5
-97
-82
-09
-78
-3c
-fc
+69
+70
+4c
+3f
 00
+68
+48
+cc
+3b
+6f
+e0
+cc
+3c
+20
+40
+01
+d4
+67
+e0
+cc
+3c
+6f
+e0
+cc
+3e
 20
+3a
+01
+d0
+6f
+e0
+cc
+3d
+c1
 00
+80
 00
-1e
+70
+4c
+3d
+01
+20
 20
 40
-21
-d5
-78
-57
-fc
-00
-78
-26
-fc
+69
+6f
+e0
+cc
+3d
+c1
 00
-78
-30
-fc
 00
-78
-50
-7c
 00
-78
-28
-7c
+70
+4c
+3d
 00
-6f
-e1
-48
-38
-98
+20
+60
 00
-36
 00
-37
-c1
-84
+1f
+e3
+fe
 00
+1f
+e2
 24
-2c
-22
-3d
+00
 20
 40
-4c
-af
-c5
-17
-a1
-f6
-20
+60
+59
+79
 20
-21
-f6
-6f
-e0
-ca
-c5
-24
-7a
+a4
+00
+1a
+41
+7e
+07
+68
+48
+cc
+3f
+18
+42
+0e
 00
+c0
+03
+81
+e9
+c0
 00
+01
+eb
 20
-40
-02
-34
-6f
-e0
-c8
-a7
-24
-7a
+60
 00
 00
-6f
-e1
-48
-a3
 1f
-e0
+e3
 fe
-01
-67
-e1
-48
-a3
-6f
-e0
-c8
-a4
-c2
-82
-26
-79
+00
+1f
+e2
+24
+00
 20
 40
-02
-24
-6f
-e1
-4c
-67
-1f
-e0
-fe
-01
-67
-e1
-4c
-67
+3f
+54
 20
+40
+60
+59
+79
 20
-01
-df
+a4
+00
+1a
+41
+7e
+07
 68
 48
-c8
-a6
-6f
-e0
-c8
-c6
-98
-46
-7c
-00
-24
-21
-26
-9c
+cc
+3f
 18
-40
-84
-01
-60
-48
-c8
-a6
-6f
-e0
-c8
-c6
-c0
-07
-82
-30
-6f
-e0
-c8
-a6
+42
+0e
+00
 c0
-0a
-26
-96
+03
+81
+e9
 c0
-0f
-26
-96
+00
+01
+eb
 20
 60
 00
 00
-6f
-e0
-c8
-a6
-c0
-05
-26
-96
-c0
-07
-a6
-96
+70
+4c
+3e
+01
+20
+60
+00
+00
+70
+4c
+3e
+00
 20
 60
 00
@@ -2294,8 +2010,8 @@
 10
 c0
 7f
-82
-41
+81
+fa
 20
 40
 41
@@ -2322,2700 +2038,2528 @@
 56
 20
 20
-02
-3e
+01
+f7
 6f
 e0
-cb
-e1
-24
-5a
+cc
+38
+c1
+7f
+80
+00
+c2
+83
+82
 02
-48
 70
-4b
-e1
+4c
+39
 00
 20
 60
 00
 00
+70
+4c
+39
+01
 20
+60
+00
+00
+da
 40
-41
-aa
-6f
-e4
-4b
-ab
-c4
-1e
 00
 00
 6f
 e0
-c9
-13
-d8
-40
+cc
+38
+c1
+7f
+80
 00
-40
-20
-40
-60
-93
 6f
 e0
-c9
-14
-d8
-40
-00
-40
-20
-20
-60
-93
-58
-00
-00
-06
-20
-40
-5b
-0d
-c2
-81
-be
-23
-20
-40
-05
-0b
-20
-40
-05
-10
-20
-20
-3e
-23
-20
-40
-42
-e9
-20
-40
-7f
-dc
-20
-40
-04
-33
-20
-40
-01
-5f
-20
-40
-40
-15
+cc
+39
+24
+3a
+02
+11
 68
 48
-c9
-10
+cc
+38
 20
 40
-60
-69
+3f
+56
 68
 48
-c9
-10
+cc
+38
 20
 40
 60
-42
-6f
-e0
-c9
+59
+79
 20
-d8
-40
+a4
 00
-3f
+1a
+42
+7e
+00
+67
+e0
+cc
+37
 20
-40
 60
-93
-d8
-40
 00
-03
-20
-40
+00
+6f
+e0
+cc
+38
+79
 3f
-56
+fe
+07
+67
+e0
+cc
+38
+68
+48
+cc
+38
 20
 40
-3e
-40
+3f
+54
+68
+48
+cc
+38
 20
 40
 60
-82
-d8
-40
+59
+7d
+20
+a4
 00
-13
 20
-40
-3f
-56
 20
-40
 02
-6c
-20
-40
+0e
+c0
 02
-79
-20
-20
 02
-80
-6f
-e1
-cb
-de
-67
-e1
-89
-5c
-df
+33
 20
-00
-14
-d8
 40
-00
-00
+02
+36
 6f
-e1
-89
-5c
-2f
-ef
-fe
-00
-20
+e2
+4c
+33
+d8
 40
-e0
-7f
-6f
-e1
-89
-5c
-1f
-e3
-7e
 00
-67
-e1
-89
-5c
-18
+a0
+98
 40
 84
-01
-c2
 00
-02
-70
-20
-60
+1c
+42
+7e
 00
+98
+46
+7c
 00
-6f
-e4
-4b
-ab
-c4
-0a
+24
+61
 00
 00
+67
+e2
+4c
+33
 6f
 e0
-c8
-fd
-c1
-81
-00
+cc
+32
+c0
 00
-6f
-e0
-c8
-fc
-d8
-40
+02
+29
+c0
 00
+82
+2c
 c0
-20
-20
-60
-93
-6f
-e4
-4b
-ab
-c4
-1e
+01
+02
+2f
+c0
+01
+82
+31
+20
+60
 00
 00
-68
+70
+4c
+32
+01
+70
 48
-c9
-13
+d0
+01
 20
-40
-60
-42
-68
-48
-c9
-14
 20
-40
-60
-42
-6f
-e0
-c9
-13
-d8
-40
+7e
+54
+70
+4c
+32
+02
+70
+48
+d0
 00
-80
 20
-40
-60
-93
-6f
-e0
-c9
-14
-d8
-40
+20
+7e
+54
+70
+4c
+32
+03
+20
+20
+02
+2a
+70
+4c
+32
 00
-80
 20
 20
-60
-93
-68
+02
+2d
+70
+4c
+32
+00
+70
 48
-c9
-13
+d0
+00
 20
-40
 60
-50
+00
+00
 68
-48
-c9
-14
+4a
+4c
+33
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+02
+3b
 20
-40
 60
-50
+00
+00
+58
+00
+00
+00
+67
+e2
+4c
+33
 20
-40
-3f
-88
-6f
-e0
-c9
-1f
-d8
-40
+60
+00
 00
-3f
 20
 40
-60
-93
+40
+8f
 20
+40
+02
+41
 20
-3e
-44
-6f
-e0
-c8
-a7
 20
-5a
-02
-a3
+40
+98
 6f
 e0
-c8
-bd
+c9
+23
 c1
-00
+7f
 80
 00
-20
-40
-26
-9f
-20
-40
-26
-bb
+6f
+e1
+4a
+c2
 24
-74
-00
+7a
 00
-20
-40
-26
-c4
-70
-4c
-69
 00
-20
-40
-06
-59
 6f
-e0
-cb
 e1
+48
+83
 24
-5a
-3e
-33
+7a
+00
+00
 6f
-e2
-48
-5c
-20
-20
-26
-b8
-70
-48
-36
-01
-70
+e1
 48
-a7
-01
-20
-40
-26
-42
-67
-e0
-c7
-c6
-58
-00
+87
+24
+7a
 00
 00
-67
-e3
-c7
-c7
 6f
-e2
-48
-a9
-67
-e2
-47
-ce
-70
-48
-35
-0c
+e0
+cb
+a7
+24
+7a
+00
+00
 6f
 e0
-c8
-36
-79
+cb
+c1
 20
-7e
-03
+3a
+02
+4f
 67
 e0
-c8
-36
-20
-40
-22
-91
-20
+cb
+a8
 20
-01
-a9
-1a
-62
-7e
+60
 00
-c0
-1e
-02
-e7
-c0
-1c
-82
+00
+6f
 e0
+c9
+27
 c0
-1d
-02
+01
+c8
 f2
 c0
-00
-82
-be
-c0
-19
-02
-cc
-c0
-22
-02
-d3
-c0
-0a
-82
-c2
-c0
-0a
-02
-bb
-20
-20
-43
-36
+05
+c8
+f2
 6f
 e0
-cc
+c9
+23
+67
+e0
+c9
+2f
+6f
+e1
+4b
+c2
+67
+e1
+49
+30
+67
+e1
+49
+32
+da
+20
+00
+00
+68
+48
+c9
+92
+18
 40
-24
-5a
+84
+02
+18
+46
+7c
 03
-f6
-20
 20
-43
-50
-20
-40
-45
-44
-6f
-e0
-cc
-40
+41
+02
+5e
 24
-5a
-03
-f6
+41
+02
+62
 20
 20
-43
-fa
-58
+48
+ff
+6f
+e4
+4b
+ab
+c4
+0e
 00
 00
+18
+40
+84
+01
+20
+60
 00
-67
-e1
-4a
-f2
-70
-4a
-c6
 00
-58
+18
+40
+85
+fd
+20
+60
 00
 00
-06
-67
-e1
-43
-72
-67
-e1
-43
-74
 6f
 e4
 4b
 ab
-c2
-8d
-c3
-66
-58
-00
+c4
+1e
+80
 00
-07
-20
-20
-43
-64
 6f
 e0
-ca
-c7
-c0
-00
+cc
+3b
+c2
+83
 82
-d0
+6a
 70
-4b
-76
-14
+4c
+3a
+00
 20
+60
+00
+00
+70
+4c
+3a
+01
 20
-43
-73
+60
+00
+00
 20
 40
-43
-6c
-70
-4b
-76
-05
-20
+40
+72
 20
-43
-73
+74
+00
+00
 6f
 e0
+c9
+92
+1f
+e2
+04
+00
+6f
+e4
+4b
+ab
+c2
+9e
 82
-c1
+78
+18
+42
+7e
+00
+1f
+e0
+fe
+01
 1f
-e6
-7c
-0c
-24
-21
-43
-84
-67
 e1
-43
-72
+7e
+03
 67
-e1
-43
-74
-6f
 e0
-82
-c3
-20
-3a
-43
-9a
-68
-48
-cb
-8a
-98
-46
-7c
-00
-20
-21
-43
-9a
-6f
-e0
-82
-c3
-67
-e0
-cb
-8a
+c9
+92
 20
+40
+40
+95
 20
-43
-86
 20
-40
 45
-44
-d8
-e0
-00
-01
-20
-40
-46
-f4
+ee
 6f
 e0
 cc
-40
-c0
-00
-48
-59
-20
-40
-03
-f6
-20
-20
-48
-5a
+3e
+24
+3a
+02
+95
 6f
-e2
-48
-3c
-67
-e2
-48
-91
-67
-e2
-49
-93
-20
-40
-25
+e4
+4b
+ab
+c2
+8e
+02
+89
+18
+42
 7e
-6f
-e0
-cc
-40
+00
+c1
+00
+80
+00
 c0
 00
 02
-ef
+85
+c0
+01
+02
+83
 20
-40
-03
-f6
+60
+00
+00
+58
+00
+00
+02
 20
 20
 02
-f0
+75
+58
+00
+00
+00
 20
-40
-48
-c6
 20
-40
-45
-44
+02
+75
+58
+00
+00
+01
 20
 20
-48
-4e
-6f
-e0
-c8
-a5
-24
-3a
+02
+75
+58
+00
+00
 03
-1d
-6f
-e0
-c8
-8b
+20
+20
+02
+75
+18
+42
+7e
+00
+c1
+00
+80
+00
 c0
-01
+00
 02
-f9
+85
 c0
+01
 02
-03
-11
+87
 c0
 01
+82
 83
-16
 20
+60
+00
+00
+18
+42
+7e
+00
+c1
+01
+00
+00
+c0
+00
+02
+87
+c0
+00
+82
+83
+c0
+01
+82
+81
 20
-48
-39
+60
+00
+00
 6f
 e4
 4b
 ab
 c2
-97
-83
+8e
 02
-c2
-98
-03
+8f
+18
+42
+7e
+00
+c1
+01
+00
+00
+c0
+00
 02
-c3
-1d
-48
-06
-6f
-e2
-49
-93
-68
-4a
-49
-74
-98
-46
-7c
+81
+c0
 00
-20
-22
+82
 83
-06
 20
+60
+00
+00
+58
+01
+77
+00
+67
+e1
+cc
+4e
 20
+40
+26
+13
+70
 48
-06
+c6
+1e
 6f
-e0
-cc
-40
-c0
+e4
+4b
+ab
+c4
+0c
+00
 00
-48
-11
 20
 40
-03
-f1
-20
-20
-48
-12
+26
+0b
 70
 48
-8b
+c6
+0f
+58
 00
-d8
-e0
+bb
+80
+67
+e1
+cc
+4e
+58
 00
-01
+48
+00
+67
+e1
+c8
+ad
 20
-40
-46
-f0
-58
+60
 00
 00
+58
 00
+e2
+90
 67
 e1
-48
-87
+c8
+ad
 20
-40
-45
-76
+60
+00
+00
+58
+00
+17
+70
+67
+e1
+c8
+ad
 20
-40
-49
-8e
-6f
-e0
-cc
-40
-c0
+60
+00
+00
+c6
+93
+00
 00
-48
-2d
 20
 40
-03
-f1
-20
-20
-48
-2e
+3f
+70
+24
+74
+00
+00
 6f
 e4
 4b
 ab
 c3
-17
-83
-1b
+0a
+82
+b6
 6f
 e0
 cb
-b4
-c0
-00
-83
-1b
-20
-20
+8b
+24
+3a
 48
-1a
+84
+20
+40
+42
+cb
 6f
-e4
-4b
-ab
-c3
-17
-83
-1b
-c2
-89
-83
-1b
+e0
+c8
+36
 c2
-89
-03
-1b
-20
-20
+80
+82
+c5
+68
 48
-12
+c7
+c7
 6f
-e4
-4b
-ab
-c3
-1e
-48
-39
-70
-48
-a5
+e0
+c8
+d0
+98
+41
+fe
 00
-20
-40
-26
-52
-5f
-ff
-ff
-ff
 67
-e2
+e0
+c8
+d0
+68
 48
-5c
-58
-00
+c7
+cc
+6f
+e0
+c8
+d5
+98
+40
+fe
 00
+67
+e0
+c8
+d5
+68
+48
+c7
+cd
+6f
+e0
+c8
+d6
+98
+40
+fe
 00
 67
-e3
+e0
 c8
-d0
+d6
 70
-4b
-e1
+48
+36
 01
+da
 20
+00
+07
+da
 40
-05
-10
-20
-20
-02
-9a
-70
 48
-8b
+d0
+20
+60
+00
 00
 6f
-e1
+e4
 4b
-eb
-1f
+ab
+c4
+0b
+00
+00
+6f
 e0
-fe
-01
-67
-e1
-4b
-eb
+ca
+ae
+20
+7a
+00
+00
+6f
+e0
+c8
+a7
+20
+7a
+00
+00
 6f
 e0
 cb
-eb
+a1
+1f
+e0
+fe
+01
 1f
 e1
 7e
-ff
-c0
-00
 03
-2e
-20
-60
+67
+e0
+cb
+a1
+24
+7a
 00
 00
-6f
-e0
-c8
-7f
-c0
-7f
-a3
-8e
-c0
+70
+4b
+a2
 00
-83
-35
-c0
+6f
+e0
+cb
+a2
+1f
+e0
+fe
 01
+67
+e0
+cb
+a2
+1f
+e6
+7c
+08
+24
+21
+02
+df
+20
+40
+25
+9a
+20
+40
 03
+d9
+24
+2c
+02
+e5
+24
 37
-c0
+82
+e5
+20
+40
+48
+b5
+20
+40
+25
+97
+6f
+e0
+cb
+a3
+1f
+e0
+fe
 01
-83
-3d
+67
+e0
+cb
+a3
 c0
+08
 02
-03
-43
+e7
 20
 60
 00
 00
-70
-47
-c6
-ff
-20
-20
-03
-44
-6f
-e0
-c8
-5b
-20
-3a
-03
-3b
-6f
-e2
-48
-a9
 20
 40
 22
-dc
-70
-47
-c6
-aa
+cb
 20
 20
-03
-44
+02
+d5
 70
-47
-c6
-55
+4b
+a3
+00
 6f
 e0
-c8
-5b
+cb
+a4
+c3
+80
+00
+00
+79
 20
-3a
-03
-44
+7e
+00
+67
+e0
+cb
+a4
 6f
-e2
-48
-91
+e1
+4b
+bc
 67
-e2
-47
-c8
+e1
+4a
+b2
 20
 20
-03
-46
-70
-47
-c6
-22
-6f
-e2
-48
-a9
+01
+53
+20
+80
+00
+00
+24
+55
+83
+09
+20
+40
+30
+f3
+58
+00
+4c
+72
 67
-e2
-47
-c8
-6f
-e0
-c8
-36
-1f
 e1
-7e
-07
-67
-e0
-c7
-c7
-70
-47
-cc
-00
-70
 48
-35
-07
+99
 20
 40
-22
-91
+3b
+fd
 20
 40
-01
-e8
-20
-20
-23
-60
+12
+4a
 6f
-e1
-48
-89
+e0
+cc
+93
+67
+e0
+c1
+7b
+58
+00
+0f
+0f
 d8
-40
-01
-f8
+a0
+0f
+ff
 98
-41
-7e
+a1
+0a
 00
-20
-3a
-03
-56
 6f
+e0
+c1
+7a
+1f
 e1
-48
-89
+7e
+f0
 1f
-e0
+ed
+7e
+00
+98
+a1
 fe
-01
-67
-e1
-48
-89
-20
-60
+00
+79
+3f
+fe
+02
+67
+f1
+00
+4c
+ef
+e1
+00
+06
+e7
+e1
+00
+05
+58
 00
 00
-20
-40
-25
-9a
-20
-40
 01
-e8
-24
-2c
-03
-6f
-24
 37
-83
-6f
-20
-40
-26
-72
-6f
-e2
-48
-77
-68
-4a
-48
-3c
-98
-46
-7c
+d9
+82
 00
+67
+f0
+80
+05
+70
+41
+7b
+08
+70
+80
+42
+04
 20
-22
-a3
-2e
-6f
-e2
-48
-a9
-68
-4a
-48
-3c
-98
-46
-7c
-00
 20
-42
-83
-6b
+08
+05
 6f
 e0
-c8
-a1
-79
-3f
-fe
-02
+c1
+7b
 67
 e0
-c8
-a1
+cc
+93
+20
+60
+00
+00
 58
 00
 00
 00
 67
-e1
-48
-83
-67
-e1
-48
-89
-67
-e1
-48
-87
-20
+f1
+8a
+00
+70
+4c
+63
+8c
 20
-25
-95
+40
+12
+cf
 6f
 e2
-48
-0c
-20
-7a
-00
+41
+64
+98
+40
+fe
 00
 67
 e2
-48
-91
-20
-20
-25
+41
+64
+18
+02
 7e
+00
+67
+e4
+41
+9d
+d8
+c0
+80
+70
+d8
+a0
+41
+86
+20
+40
+7d
+01
 6f
+f0
+80
+86
+67
 e0
-c8
-8c
+c1
+a5
 20
-3a
-22
-cb
+40
+14
+3f
 6f
-e1
-48
-89
+f0
+80
+42
 1f
-e0
-fe
-01
-67
 e1
-48
-89
-6f
-e0
-c8
-8a
-2f
-ef
 fe
-01
-6f
-e0
-c8
-8b
-c0
-00
-a5
-ad
-c0
-01
-25
-af
-c0
-01
-a5
-b1
-c0
-02
-03
-7c
-20
+14
+67
+f0
+80
+42
 20
-25
-6e
 20
+14
+9e
+70
+8a
+8b
+e6
 20
-a5
-75
+40
+12
+6a
 20
+40
+12
+71
 20
-23
-39
-c6
-1a
-00
-00
-c5
-13
-a4
-0e
-c6
-93
-00
-00
-6f
-e0
-c8
-a1
-c2
-80
-a3
 40
-c2
-81
-25
-80
-6f
-e0
-c8
-bd
-c0
-00
+12
+77
+70
+8a
+6d
+09
+70
+8a
+03
+05
+70
+8a
+7a
+94
+70
+8a
+0e
+0b
+70
+8a
+0f
+05
+70
+8a
 83
-87
-20
-20
-26
+90
+70
+8a
+85
+00
+70
+89
 21
-20
 40
-22
-ea
-24
-34
-03
-80
 20
-40
-26
-db
-6f
-e1
-48
-be
-1f
-e0
-fe
-01
-67
-e1
-48
-be
 20
+12
+5d
+70
+89
+00
+05
 20
-26
-21
-6f
-e4
-4b
-ab
-c2
-97
-c8
-0a
+00
+00
+02
+70
+89
+00
+00
 6f
 e0
-c9
-38
 c0
-00
-03
-93
+c5
+c0
+0c
+11
+68
+70
+8a
+87
+29
 20
 20
-3d
-57
-6f
-e4
-4b
-ab
-c3
-08
-c8
-03
+11
+7d
 20
 40
-3d
-65
+11
+90
+58
+00
+76
+76
+67
+f1
+09
+68
 20
-34
-03
-9d
+60
+00
+00
 6f
-e4
-4b
-ab
-c2
-98
+e0
+cc
+92
+24
+3a
 03
-a0
-c3
-18
-83
-a0
+41
+20
+00
+01
+2c
 20
 40
+4c
+a7
+d8
+c0
 41
-10
-1a
-21
-7e
-07
+eb
+98
+c0
+8c
+00
+ef
+e0
+80
+06
+67
+f0
+89
+61
+70
+89
+60
+2e
 20
 20
-47
-ff
+11
+b3
 6f
-e0
-cc
-40
-24
-5a
-03
-f1
+f0
+89
+60
+1f
+e1
+fe
+01
+67
+f0
+89
+60
+70
+89
+61
+04
 20
 20
-48
-06
+11
+b3
+70
+4c
+92
+00
+20
+60
+00
+00
+70
+4c
+92
+01
+20
+60
+00
+00
 6f
 e0
 cc
-40
+92
 24
-5a
+3a
 03
-f1
-20
+4d
 20
-48
-0c
-6f
-e0
-c8
-65
 20
-40
-16
-8b
-6f
-e2
-48
-3c
-98
-00
 12
-00
+3b
+70
+8a
+39
+5b
+70
+8a
+3a
+01
 20
-40
-21
-d5
-20
-40
-22
-43
-79
 20
+12
 2a
-00
-78
-2e
-fc
-00
-78
-30
-7c
-00
-78
-50
-fc
-00
-20
-40
-4c
-b5
-78
-5d
-7c
-00
-c5
-17
+6f
+f0
+89
 a2
-73
-c5
-16
-83
-b7
-19
-31
-7e
-00
-1f
-ec
+2f
+ef
 fe
+06
+79
+20
+fe
+07
+67
+e0
+c1
+e9
+6f
+f0
+89
+a3
+1f
+e1
+04
+0f
+18
+43
+84
 00
 1f
 f1
 fe
 00
-08
+98
+40
+84
 00
-86
-28
-c5
-17
+18
+4f
 a2
-5c
-20
-20
-22
-5c
+03
 6f
 e0
 c1
-f0
-1f
-e3
-72
-00
+e9
 20
-00
-00
-02
-c2
-00
+40
 03
-b9
-19
-31
+65
+1f
+e6
 7e
 00
-1f
-ec
+9a
+20
 fe
 00
 1f
-f1
-84
-00
-18
-42
-7e
-00
+e0
+ff
+f7
+1f
+e1
+7f
+ff
+2f
+ef
+fe
 08
+24
+20
+83
+63
+58
 00
-86
-08
-18
-42
-7e
 00
-08
 00
-86
-28
-20
-20
-03
-b5
-20
-40
-40
-8f
-20
-40
-03
-c6
-20
-20
-40
-98
-6f
+67
 e0
-c9
-23
-c1
-7f
 80
+19
+20
+60
 00
-6f
-e1
-4a
-c2
+00
+2f
+ef
+fe
+07
 24
-7a
+60
+80
 00
+d8
+40
+ff
 00
-6f
-e1
-48
-83
-24
-7a
+98
+41
+fe
 00
+20
+60
 00
-6f
-e1
-48
-87
-24
-7a
 00
+da
+20
+09
+9e
+d8
+40
 00
-6f
-e0
-cb
-a7
-24
-7a
+0c
+58
 00
 00
+30
+20
+40
+5e
+63
+20
+20
+60
+bf
+6a
+50
+8a
+12
+70
+8a
+12
+3d
+70
+8a
+11
+aa
+70
+8a
+0a
+0c
 6f
-e0
-cb
-c1
+f0
+8a
+09
+79
 20
-3a
-04
-3c
+7e
+07
 67
-e0
-cb
-a8
+f0
+8a
+09
+70
+8a
+0b
+04
 20
-60
 00
 00
+3c
+70
+8a
+16
+00
+70
+8a
+17
+06
 20
 40
-3e
-9b
-20
-40
-49
-56
-20
-40
-23
-2b
-20
-40
-25
-56
-20
-40
-47
-cd
+61
+1a
+67
+f0
+8a
+97
+70
+80
+dc
+03
 20
-40
-48
-be
+00
+00
+3c
+6f
+f0
+80
+53
+79
 20
-40
-04
-39
+7e
+07
+67
+f0
+80
+53
 20
-40
+00
 03
-fa
-20
-40
-40
-7c
-20
-40
+e8
+6f
+f1
+01
+50
+67
+e1
 44
-cc
+a2
+6f
+f0
+80
+53
+79
+3f
+fe
+07
+67
+f0
+80
+53
+70
+8a
+97
+00
+62
+50
+8a
+12
 20
-40
-04
-51
+60
+00
+00
+6f
+e0
+cb
+e2
+24
+5a
+78
+61
+70
+4b
+e2
+00
 20
-40
-44
-ff
 20
-40
-45
-04
+78
+51
+6f
+e0
+c8
+65
 20
 40
-45
+16
+8b
+6f
+e2
+48
+3c
+98
+00
 12
+00
 20
 40
-04
-68
+21
+d5
 20
 40
-45
-15
+22
+43
+79
 20
-40
-45
 2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
 20
 40
-45
-2d
-20
-40
-45
-32
+4c
+b5
+78
+5d
+7c
+00
+c5
+17
+a2
+73
+c5
+16
+83
+a2
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+c5
+17
+a2
+5c
 20
-40
-45
-35
 20
-40
-40
 22
-20
-40
-45
-47
-20
-40
-04
-29
-20
-20
-04
-6b
-6f
-e0
-cc
-46
-67
-e0
-cc
-47
+5c
 6f
 e0
-cc
-44
-67
-e0
-cc
-45
-20
-60
-00
+c1
+f0
+1f
+e3
+72
 00
-70
-4c
-41
-01
-70
-4c
-43
-01
-6f
-e0
-cc
-4b
-67
-e0
-cc
-4c
 20
-60
 00
 00
-70
-4c
-41
-01
-70
-4c
-4c
+02
+c2
 00
-70
-4c
-43
+03
+a4
+19
+31
+7e
 00
-20
-60
+1f
+ec
+fe
 00
+1f
+f1
+84
 00
-6f
-e0
-cc
-41
-20
-7a
+18
+42
+7e
 00
+08
 00
-6f
-e0
-cc
-43
-c0
+86
+08
+18
+42
+7e
 00
-84
-0a
-6f
-e0
-cc
-45
-24
-3a
-04
-02
-70
-4c
-41
+08
 00
+86
+28
 20
-60
-00
-00
+20
+03
+a0
 6f
 e0
-cc
-47
+c8
+64
 20
-3a
-04
-07
-1f
-e0
-ff
-ff
-67
-e0
-cc
-47
+40
+16
+8b
+6f
+e2
+48
+3c
+98
+00
+12
+00
 20
+40
+10
+b0
 20
-04
+40
 11
-70
-4c
-45
-00
-70
-4c
-41
-00
+61
+68
+48
+c8
+3a
 20
+40
+16
+c8
+6f
+f0
+89
+60
+79
 20
-04
-1d
-da
+7e
+03
+67
+f0
+89
 60
-4c
-4c
-da
+20
 40
-04
-0d
+21
+d5
+c5
+97
+83
+be
+78
+3c
+fc
+00
 20
+00
+00
+1e
 20
-31
-8a
-6f
-e0
-cc
-4b
-67
-e0
-cc
-4c
-6f
-e0
-cc
-4d
-c0
+40
+21
+d5
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
 00
-84
-1d
-70
-4c
-4d
-01
 6f
-e0
-c9
+e1
+48
 38
-c0
+98
 00
-04
-17
-c0
+36
 00
+37
+c1
 84
-19
-c0
-01
-04
-1b
-20
-60
-00
 00
-68
-48
-cc
-48
-20
-20
-04
-1c
-68
-48
-cc
-49
-20
+24
+2c
+22
+3d
 20
-04
-1c
-68
-48
-cc
-4a
+40
+4c
+af
+c5
+17
+a1
+f6
 20
 20
-60
-69
-70
-4c
-4d
-00
+21
+f6
 6f
 e0
-c9
-38
-c0
+ca
+c5
+24
+7a
 00
-04
-23
-c0
 00
-84
-25
-c0
-01
-04
-27
 20
-60
-00
-00
-68
-48
-cc
-48
-20
-20
-60
-7f
-68
-48
-cc
-49
-20
-20
-60
-7f
-68
-48
-cc
-4a
-20
-20
-60
-7f
-6f
-e0
-cb
+40
+01
 ed
-c1
-7f
-80
-00
 6f
-e1
-4a
-b2
-20
+e0
+c8
+a7
+24
 7a
 00
 00
 6f
 e1
-4b
-be
-68
-49
-4a
-b2
-98
-46
-04
-00
-6f
+48
+a3
+1f
+e0
+fe
+01
+67
 e1
-4b
-ee
-98
-46
-7e
-00
-20
-21
-04
-37
-68
 48
-cb
-ed
+a3
 6f
 e0
-cc
+c8
+a4
+c2
+82
+26
+79
+20
 40
-c0
-00
+03
+ea
+6f
+e1
+4c
+67
+1f
 e0
-7f
-20
+fe
+01
+67
+e1
+4c
+67
 20
-60
-65
-68
-48
-cb
-ed
 20
-40
-60
-69
-da
-60
-4b
-a8
-da
-40
 04
-3c
-20
+41
+78
+57
+fc
+00
 20
-31
-8a
+40
+22
+46
 6f
 e0
-c9
-27
-c0
-01
 c8
-f2
+2c
 c0
-05
-c8
-f2
-6f
-e0
-c9
-23
-67
-e0
-c9
-2f
+00
+a2
+3f
+18
+00
+2a
+00
 6f
-e1
-4b
-c2
-67
-e1
-49
-30
-67
-e1
-49
-32
-da
-20
+e2
+48
+3c
+98
 00
+12
 00
+20
+40
+10
+b0
 68
 48
-c9
-92
-18
+80
+17
+20
+40
+11
+8f
+20
+40
+11
+a6
+20
 40
-84
-02
-18
-46
-7c
 03
+b9
 20
-41
-04
-4b
-24
-41
-04
-4f
+57
+83
+e7
+20
+60
+00
+00
+70
+8a
+0a
+00
+70
+8a
+0b
+00
 20
 20
+12
+9c
+68
 48
-ff
+c8
+a6
 6f
-e4
-4b
-ab
-c4
-0e
-00
+e0
+c8
+c6
+98
+46
+7c
 00
+24
+21
+26
+9c
 18
 40
 84
 01
-20
-60
-00
-00
-18
-40
-85
-fd
-20
 60
-00
-00
+48
+c8
+a6
 6f
 e0
-c9
-38
+c8
+c6
 c0
-00
-04
-57
+07
+83
+f6
 6f
-e4
-4b
-ab
-c4
-1a
-80
-00
-68
-48
-cb
-ca
-20
+e0
+c8
+a6
+c0
+0a
+26
+96
+c0
+0f
+26
+96
 20
-04
-5a
-6f
-e4
-4b
-ab
-c4
-19
-00
-00
-68
-48
-cb
-cb
 60
-48
-cb
-9d
-20
-40
-41
-15
-1f
-e1
-7e
-07
-68
-48
-cb
-9d
-98
-46
-7c
 00
-20
-22
-84
-61
-20
-20
-44
-eb
-20
-40
-04
-66
+00
 6f
 e0
-cb
-9f
-c1
-00
-80
-00
-70
-4b
-9f
-01
+c8
+a6
+c0
+05
+26
+96
+c0
+07
+a6
+96
 20
 60
 00
 00
-da
-40
-03
-06
-20
-20
-44
-f7
+c6
+1a
+00
+00
+c5
+13
+a4
+0e
+c6
+93
+00
+00
 6f
-e4
-4b
-ab
-c3
-9d
+e0
+c8
+a1
+c2
 80
-00
-20
-20
-45
-1f
-da
-60
-4a
-b2
-da
+a3
 40
-04
-6e
-20
-20
-31
-91
+c2
+81
+25
+80
 6f
 e0
-c9
-38
+c8
+bd
 c0
 00
+84
 03
-1d
 20
 20
-43
-1b
-6f
-e1
-47
-8c
-2f
-ef
-fe
-0b
+26
+21
 20
 40
-c5
-81
+22
+ea
+24
+34
+03
+fc
+20
+40
+26
+db
 6f
 e1
-47
-8c
-2f
-ef
+48
+be
+1f
+e0
 fe
-07
-20
-40
-c3
-22
-58
-00
-00
-00
+01
 67
 e1
-4a
-f2
+48
+be
+20
+20
+26
+21
 20
 40
-43
-14
+26
+31
+24
+34
+04
+57
+20
+40
+04
+3e
 6f
+e0
+cb
 e1
-47
-8c
-c2
-85
-84
-84
+24
+3a
+04
+13
 6f
 e4
-4b
-ab
-c3
-04
-04
-84
-68
-49
-49
-97
-18
-40
-84
-01
-60
-49
-49
-97
-60
-49
-43
-7b
-18
-0a
-7e
-00
+48
+b0
 67
-e0
-c3
-7a
+e4
+48
+5c
 6f
 e1
-ca
-c9
+48
+c2
 67
 e1
-c3
-7d
+48
+c4
 20
 40
-32
-25
+26
+bb
+24
+74
+00
+00
 6f
-e1
-47
-91
-67
-e1
-4a
-c2
+e0
+cc
+69
 70
+4c
+69
 00
-bd
-06
-58
+1f
+e6
+7c
 00
+24
+22
+84
+38
+68
+49
+4c
+67
+18
+46
+7c
 00
+20
+22
+84
+2e
+6f
+e2
+4c
+59
+20
+3a
+04
+2e
+68
+4a
+4c
+4e
+98
+46
+04
 00
-67
-e1
+60
 4a
-b2
-67
-e0
-cb
-77
-67
-e0
-ca
-c4
-67
-e0
-cb
-a7
-67
-e0
-ca
-ac
-d8
-e0
+4c
+6e
+24
+21
+04
+31
+6f
+e1
+c8
+ad
+98
+46
+7e
 00
-02
-20
+24
+21
+04
+3c
+d8
 40
+06
+00
+98
 46
-f0
+7c
+00
+24
+21
+04
+3c
+67
+e2
+4c
+6a
 20
 40
-46
-e4
+04
+35
 6f
-e0
-cb
-b3
-2f
-ef
-fe
-01
+e2
+4c
+6a
 20
 40
-c3
-df
-6f
-e0
-cb
-b3
-2f
-ef
-fe
-00
+7d
+aa
+60
+4a
+41
+60
 20
-40
-f8
-c4
 20
-40
-49
-8e
-6f
-e0
-cc
-40
-24
-3a
 03
-f1
-20
+0c
 20
-48
-cc
+40
+04
+35
 6f
-e0
-cb
-e2
-24
-5a
-78
-61
-70
-4b
-e2
-00
+e1
+c8
+ad
 20
 20
-78
-51
-6f
-e1
-03
-15
-1f
-e2
-0c
+04
+28
+18
+46
+04
 00
-ef
-e0
-80
-06
-67
-e0
-c5
-f5
-1f
+6f
 e1
-04
-0f
-1f
-f1
+c8
+ad
+98
+40
 fe
 00
-c0
-04
-84
-a9
 20
 20
-4d
-93
-da
-20
+04
+28
+58
 00
-01
-20
-40
-4d
-c0
-6f
-e1
-44
-dc
-e7
-e1
 00
-05
-58
 00
+67
+e2
+4c
+6e
+20
+60
 00
 00
-e7
-e0
-80
-05
-70
-09
-50
-01
 6f
-e0
-c4
 e2
-79
-20
-7e
-06
-67
-e0
-c4
-e2
-70
-09
-5b
-12
+4c
+59
+68
+4a
+4c
+6e
+98
+40
+fe
+00
 20
 20
-78
-71
-6f
-e0
-c3
-dd
-1f
-e0
-fe
+04
+1e
+70
+4c
+69
 01
-67
-e0
-c3
-dd
-c0
-06
-16
-5a
 20
-40
-19
-1b
+60
+00
+00
+70
+48
+a6
+00
+58
+00
+00
+00
+67
+e1
+4c
+67
 20
 40
-19
-6a
+03
+d9
 6f
 e0
-82
-bd
+c8
+2c
+c0
+00
+a6
+51
+24
+2c
+03
+ca
+24
+37
+83
+ca
 20
 40
-16
-8b
+04
+7f
 20
 40
-18
-38
-20
+26
+72
 20
-16
-55
-ef
-e1
-00
-06
-c0
-02
+40
 04
-c2
+4a
 20
 20
-19
-e4
-ef
-e1
-80
-06
-67
+26
+51
+6f
+e0
+cb
 e1
-c4
-36
-c0
-05
-04
-c7
-c0
-09
+24
+5a
 04
-d6
+4e
+70
+4b
+e1
+00
 20
+60
+00
+00
 20
-1c
-d3
+40
+41
+aa
 6f
 e4
 4b
 ab
-c3
-1d
-9d
-e7
+c4
+1e
+00
+00
+6f
+e0
+c9
+13
+d8
+40
+00
+40
 20
 40
-1e
-8d
-68
-49
-44
-37
+60
+93
 6f
 e0
-c3
-c0
-c2
-81
-84
-d1
+c9
+14
+d8
+40
+00
+40
+20
+20
+60
+93
 6f
-e1
-44
-37
-c0
-18
-1e
+e0
 c8
-68
-49
-44
-37
-20
+a7
 20
-1d
-eb
+5a
+04
+65
 6f
-e1
-43
-d1
-98
-46
-7c
+e0
+c8
+bd
+c1
+00
+80
 00
-24
-22
-84
-cd
-24
-34
-04
-cd
 20
+40
+26
+9f
 20
-1e
-10
-18
-c2
-22
+40
+26
+bb
+24
+74
+00
 00
-6f
-e1
-43
-d4
-1f
-e0
-a5
-fd
 20
 40
-1a
-25
-6f
-e0
-ca
+26
+c4
+70
+4c
+69
+00
+20
+40
+04
 c1
-c0
-7f
-9e
-73
 6f
 e0
-ca
-c7
-20
-3a
-1e
-73
+cb
+e1
+24
+5a
+3e
+33
 6f
+e2
+48
+5c
+20
+20
+26
+b8
+70
+48
+36
+01
+70
+48
+a7
+01
+20
+40
+26
+42
+67
 e0
-cb
-75
-c2
-80
-9e
-73
+c7
+c6
 58
 00
 00
-1a
-68
-49
-44
-37
-98
-46
-7c
 00
-24
+67
+e3
+c7
+c7
+6f
+e2
+48
+a9
+67
+e2
+47
+ce
+70
+48
+35
+0c
+6f
+e0
+c8
+36
+79
+20
+7e
+03
+67
+e0
+c8
+36
+20
+40
 22
-9e
-73
+91
 20
 20
-1e
-10
+04
+0c
 6f
 e0
 cb
@@ -5064,2051 +4608,3383 @@
 60
 00
 00
-78
-54
-7c
-00
-58
-00
+6f
+e0
+c8
+bd
+c0
 00
+84
+bd
+6f
+e0
+cc
+52
+20
+3a
+04
+bd
+1b
+22
+7e
 00
+68
+4b
+4c
+53
 67
 e3
-48
-d1
+4c
+53
 20
 40
-42
-40
-58
+7d
+95
+67
+e2
+4c
+59
+6f
+e0
+cc
+69
+24
+7a
 00
 00
-89
-20
-40
-5b
-0c
-20
-40
-40
-8e
-20
-40
-3f
-7e
-20
-40
-3f
-83
-20
-40
-05
-17
 6f
-e0
-c8
-d0
-1f
 e1
-7e
-1f
+4c
 67
-e0
-c8
-d0
 24
-34
-47
-28
-20
-40
-05
-01
-20
-20
-45
-44
-6f
-e0
-c9
-27
-c1
-01
-80
+7a
 00
-20
-20
-47
-1a
-20
+00
+6f
+e2
+4c
+59
+68
+4a
+cc
+5d
+98
 40
-3f
-65
+fe
+00
+67
+e2
+cc
+5d
+68
+48
+cc
+52
 6f
 e0
-c9
-27
-c0
-05
-85
-08
-20
-20
-42
-38
+cc
+62
+98
+46
+7c
+00
 20
+22
+84
+97
+18
 40
-05
-0e
-da
+84
+01
 60
-4b
-e3
-20
+48
+cc
+52
 20
-42
-3a
+60
+00
+00
+70
+4c
+52
+01
+d8
+40
+00
+00
 6f
-e0
-c9
-27
-c0
-05
-85
-0e
-20
-20
-42
-32
-58
+e2
+cc
+5d
+60
+4a
+cc
+5d
+68
+48
+cc
+62
+98
+46
+fc
 00
-97
-06
-20
-20
-42
-33
-20
-40
-41
-a7
 20
 40
-3f
-65
+7d
+ef
+18
+07
+a2
+00
 6f
-e0
-c9
-27
-c0
-05
+e2
+4c
+4e
+68
+48
+cc
+63
+98
+46
+04
+00
+18
+40
 85
-15
-20
+d8
+1a
+22
+7e
+00
+98
+46
+7e
+00
 20
-42
-3e
-58
+21
+04
+b1
+1f
+e6
+7e
 00
 1f
-06
-20
-20
-5b
-0c
-20
+eb
+7e
+00
+68
+49
+c8
+ad
+98
 40
-05
-53
-6f
-e0
-cc
-37
-24
-3a
-05
-6a
+84
+00
 6f
-e0
+e1
 cc
-32
-24
-3a
-05
-69
-20
-40
-05
-1e
+64
+da
 20
+18
+00
+9a
 20
-40
-dd
-6f
-e0
-cb
-e1
+fe
+00
+98
+46
+7c
+00
 24
-5a
-41
 21
-da
+04
+bb
+60
+49
+c8
+ad
 20
+60
 00
 00
+1f
+eb
+04
+00
+6f
+e1
+c8
+ad
+98
+46
+04
+00
+6f
+e1
+cc
+64
+da
 20
-40
-05
+18
+00
+9a
 26
+7e
+00
+98
+46
+7c
+00
 20
-40
-05
-35
+21
+04
+bb
+60
+49
+c8
+ad
 20
-40
-05
-42
+60
+00
+00
+67
+e1
+c8
+ad
 20
-40
-05
+60
+00
+00
+70
+4c
+52
+01
+1b
+22
+7e
+00
+67
+e3
+4c
 53
 20
-20
-41
-1e
-6f
+60
+00
+00
+58
+00
+00
+00
+67
 e0
-c9
-18
-20
-40
-05
-4f
+cc
+52
+67
+e2
+cc
+5d
 20
-40
-41
-24
-68
+60
+00
+00
+70
 48
-c9
-18
-20
-40
-3f
-56
+8b
+00
 6f
+e1
+4b
+eb
+1f
 e0
-c9
-19
-20
-40
-05
-4f
-20
-40
-41
-2a
-68
-48
-c9
-19
-20
-40
-3f
-56
-6f
-e0
-c9
-1a
-20
-40
-05
-4f
-20
-40
-41
-30
-68
-48
-c9
-1a
-20
-20
-3f
-56
-6f
-e0
-c9
-0d
-c1
-7f
-80
-00
-70
+fe
+01
+67
+e1
 4b
-96
-03
+eb
 6f
 e0
 cb
-91
+eb
 1f
-e2
-26
+e1
+7e
+ff
+24
+7a
+00
 00
-68
-48
-c9
-0d
 6f
 e0
-c9
-10
+c8
+7f
 c0
 7f
-85
-3e
+a3
+8e
+c0
+00
+84
+d3
+c0
+01
+04
+d5
+c0
+01
+84
+db
+c0
+02
+04
+e1
 20
+60
+00
+00
+70
+47
+c6
+ff
 20
-41
-3e
+20
+04
+e2
 6f
 e0
-c9
-0d
+c8
+5b
 20
-40
-05
-51
-68
+3a
+04
+d9
+6f
+e2
 48
-c9
-0d
+a9
+20
+40
+22
+dc
+70
+47
+c6
+aa
 20
 20
-41
-4b
+04
+e2
+70
+47
+c6
+55
 6f
 e0
-c9
-0e
-c1
-7f
-80
-00
-70
-4b
-96
+c8
+5b
+20
+3a
 04
+e2
 6f
-e0
-cb
-92
-1f
 e2
-26
-00
-68
 48
-c9
-0e
-6f
-e0
-c9
-10
-c0
-7f
-85
-4b
+91
+67
+e2
+47
+c8
 20
 20
-41
-57
+04
+e4
+70
+47
+c6
+22
+6f
+e2
+48
+a9
+67
+e2
+47
+c8
 6f
 e0
-c9
-0e
-20
-40
-05
-51
-68
+c8
+36
+1f
+e1
+7e
+07
+67
+e0
+c7
+c7
+70
+47
+cc
+00
+70
 48
-c9
-0e
+35
+07
 20
+40
+22
+91
 20
-41
-64
-d8
 40
-00
-3f
+03
+d9
 20
 20
+23
 60
-93
+6f
+e1
+48
+89
 d8
 40
+01
+f8
+98
+41
+7e
 00
-3e
 20
+3a
+04
+f4
+6f
+e1
+48
+89
+1f
+e0
+fe
+01
+67
+e1
+48
+89
 20
 60
-93
-da
-40
 00
 00
-6f
-e0
-cc
-38
-c1
-7f
-80
-00
-6f
-e0
-cc
-39
+20
+40
+25
+9a
+20
+40
+03
+d9
 24
-3a
+2c
 05
-60
-68
-48
-cc
-38
+0d
+24
+37
+85
+0d
 20
 40
-3f
-56
+26
+72
+6f
+e2
+48
+77
 68
+4a
 48
-cc
-38
-20
-40
-60
-59
-79
-20
-a4
-00
-1a
-42
-7e
+3c
+98
+46
+7c
 00
-67
-e0
-cc
-37
 20
-60
-00
+22
+a3
+2e
+6f
+e2
+48
+a9
+68
+4a
+48
+3c
+98
+46
+7c
 00
+20
+42
+85
+09
 6f
 e0
-cc
-38
+c8
+a1
 79
 3f
 fe
-07
+02
 67
 e0
-cc
-38
-68
+c8
+a1
+58
+00
+00
+00
+67
+e1
 48
-cc
-38
-20
-40
-3f
-54
-68
+83
+67
+e1
 48
-cc
-38
+89
+67
+e1
+48
+87
 20
-40
-60
-59
-7d
 20
-a4
+25
+95
+6f
+e2
+48
+0c
+20
+7a
+00
 00
+67
+e2
+48
+91
 20
 20
-05
-5d
+25
+7e
+6f
+e0
+c8
+8c
+20
+3a
+22
+cb
+6f
+e1
+48
+89
+1f
+e0
+fe
+01
+67
+e1
+48
+89
+6f
+e0
+c8
+8a
+2f
+ef
+fe
+01
+6f
+e0
+c8
+8b
+c0
+00
+a5
+ad
+c0
+01
+25
+af
+c0
+01
+a5
+b1
 c0
 02
 05
-82
+1a
+20
+20
+25
+6e
+20
+20
+a5
+75
+20
+20
+23
+39
 20
 40
-05
-85
-6f
-e2
-4c
-33
+45
+44
 d8
-40
+e0
 00
-a0
-98
+01
+20
 40
-84
-00
-1c
-42
-7e
-00
-98
 46
-7c
-00
-24
-61
+f4
+6f
+e0
+cc
+40
+c0
 00
+48
+59
+20
+40
 00
+de
+20
+20
+48
+5a
+6f
+e2
+48
+3c
 67
 e2
-4c
-33
+48
+91
+67
+e2
+49
+93
+20
+40
+25
+7e
 6f
 e0
 cc
-32
+40
 c0
 00
 05
-78
-c0
+2b
+20
+40
 00
-85
-7b
-c0
-01
-05
-7e
-c0
-01
-85
-80
+de
 20
-60
-00
-00
-70
-4c
-32
-01
-70
-48
-d0
-01
 20
+05
+2c
 20
-7e
-54
-70
-4c
-32
-02
-70
+40
 48
-d0
-00
-20
+c6
 20
-7e
-54
-70
-4c
-32
-03
+40
+45
+44
 20
 20
+48
+4e
+6f
+e0
+c8
+a5
+24
+3a
 05
-79
-70
-4c
-32
-00
+59
+6f
+e0
+c8
+8b
+c0
+01
+05
+35
+c0
+02
+05
+4d
+c0
+01
+85
+52
 20
 20
+48
+39
+6f
+e4
+4b
+ab
+c2
+97
+85
+3e
+c2
+98
 05
-7c
-70
-4c
-32
-00
-70
+3e
+c3
+1d
 48
-d0
-00
-20
-60
-00
-00
+06
+6f
+e2
+49
+93
 68
 4a
-4c
-33
-1c
-42
-7e
-00
+49
+74
 98
 46
 7c
 00
-24
-41
-05
-8a
 20
-60
-00
-00
-58
-00
-00
-00
-67
-e2
-4c
-33
+22
+85
+42
 20
-60
-00
-00
 20
+48
+06
+6f
+e0
+cc
 40
-49
-90
+c0
+00
+48
+11
 20
 40
-79
-36
+00
+d9
 20
-40
-05
-92
+20
+48
+12
+70
+48
+8b
+00
+d8
+e0
+00
+01
 20
 40
-05
-a6
+46
+f0
+58
+00
+00
+00
+67
+e1
+48
+87
 20
+40
+45
+76
 20
-46
-4f
-6f
-e4
-4b
-ab
-c2
-97
 40
-36
+49
+8e
 6f
 e0
-c9
-0f
-c1
-7f
-80
-00
-da
-20
-00
+cc
+40
+c0
 00
-70
-4b
-96
-05
-68
 48
-c9
-0f
+2d
 20
 40
-05
-9b
+00
+d9
 20
 20
-40
-2f
+48
+2e
 6f
 e4
 4b
 ab
-c2
-96
-40
-48
+c3
+17
+85
+57
 6f
 e0
 cb
-93
-1f
-e2
-26
-00
-6f
-e0
-c9
-10
+b4
 c0
-7f
+00
 85
-a2
-20
+57
 20
-40
-3f
-6f
-e0
-c9
-0f
 20
-40
-05
-51
-68
 48
-c9
-0f
-20
-20
-41
-95
+1a
 6f
 e4
 4b
 ab
-c4
-1e
-80
-00
-6f
-e0
-cc
-3a
-24
-3a
+c3
+17
+85
+57
+c2
+89
+85
+57
+c2
+89
 05
-af
-6f
-e0
-cc
-3b
+57
 20
-40
-05
-4f
 20
-40
-05
-bf
-68
 48
-cc
-3b
-20
-20
-3f
-56
+12
 6f
-e0
-cc
-3b
-79
-3f
-fe
-07
-67
-e0
-cc
-3b
-20
-40
-05
-51
+e4
+4b
+ab
+c3
+1e
+48
+39
 70
-4c
-3f
-00
-68
 48
-cc
-3b
-6f
-e0
-cc
-3c
-20
-40
-05
-d8
+a5
+00
 20
 40
-05
-c3
-68
+26
+52
+5f
+ff
+ff
+ff
+67
+e2
 48
-cc
-3b
-20
-20
-3f
-56
-20
-40
-3f
-56
-6f
-e0
-cc
-3d
-c1
+5c
+58
+00
 00
-80
 00
+67
+e3
+c8
+d0
 70
-4c
-3d
+4b
+e1
 01
 20
-20
 40
-69
-70
-4c
-3f
-00
-68
-48
-cc
-3b
-6f
-e0
-cc
-3c
+01
+53
 20
-40
-05
-ce
-67
-e0
-cc
-3c
-6f
-e0
-cc
-3e
 20
-3a
-05
-ca
-6f
-e0
-cc
-3d
-c1
+04
+5c
+5e
+2f
+aa
+55
+40
 00
-80
 00
-70
-4c
-3d
-01
-20
-20
 40
-69
-6f
-e0
-cc
-3d
-c1
+01
 00
 00
 00
-70
-4c
-3d
 00
-20
-60
 00
 00
-1f
-e3
-fe
 00
-1f
-e2
-24
 00
-20
-40
-60
-59
-79
-20
-a4
 00
-1a
-41
-7e
-07
-68
-48
-cc
-3f
-18
-42
-0e
 00
-c0
-03
-85
-e3
-c0
 00
-05
-e5
-20
-60
 00
 00
-1f
-e3
-fe
 00
-1f
-e2
-24
 00
-20
-40
-3f
-54
-20
+38
+1c
+00
+00
+00
 40
-60
-59
-79
-20
-a4
 00
-1a
-41
-7e
-07
-68
-48
-cc
-3f
-18
+00
+98
+d6
+53
 42
-0e
 00
-c0
-03
-85
-e3
-c0
 00
-05
-e5
-20
-60
 00
 00
-70
-4c
-3e
-01
-20
-60
-00
-00
-70
-4c
-3e
 00
-20
-60
 00
 00
-20
-40
-40
-72
-20
-74
 00
 00
-6f
-e0
-c9
-92
-1f
-e2
-04
 00
-6f
-e4
-4b
-ab
-c2
-9e
-85
-f3
 18
-42
-7e
 00
-1f
-e0
-fe
-01
-1f
-e1
-7e
-03
-67
-e0
-c9
-92
-20
-40
-40
-95
-20
-20
-45
-ee
-6f
-e0
-cc
-3e
-24
-3a
-06
-10
-6f
-e4
-4b
-ab
-c2
-8e
-06
-04
-18
-42
-7e
 00
-c1
 00
-80
 00
-c0
 00
-06
 00
-c0
-01
-05
-fe
-20
-60
 00
 00
-58
 00
+80
 00
-02
-20
-20
-05
-f0
-58
 00
 00
 00
-20
-20
-05
-f0
-58
 00
 00
-01
-20
-20
-05
-f0
-58
 00
 00
-03
-20
-20
-05
-f0
-18
-42
-7e
 00
-c1
 00
-80
+60
+06
+16
 00
-c0
 00
-06
+aa
+55
+04
 00
-c0
-01
-06
-02
-c0
+7a
+41
+88
+16
+ce
+0d
+aa
+55
 01
-85
-fe
-20
-60
-00
 00
+c5
+40
 18
-42
-7e
-00
-c1
+aa
+55
 01
 00
+e8
+41
+01
+aa
+55
+01
 00
-c0
+ef
+41
+ff
+aa
+55
+02
 00
-06
+ca
+40
+ef
+41
+aa
+55
 02
-c0
 00
-85
-fe
-c0
+79
+44
+80
+1f
+aa
+55
 01
-85
-fc
-20
-60
-00
-00
-6f
-e4
-4b
-ab
-c2
-8e
-06
-0a
-18
-42
-7e
 00
-c1
+83
+44
+80
+aa
+55
 01
 00
+d0
+44
 00
-c0
-00
-05
-fc
-c0
+aa
+55
+01
 00
-85
-fe
-20
-60
+ea
+41
+ff
+aa
+55
+01
 00
+ee
+41
 00
-6f
-e0
-c8
-bd
-c0
+aa
+55
+01
 00
 86
+44
+ff
+aa
 55
-6f
-e0
-cc
-52
-20
-3a
-06
+02
+00
+99
+40
+01
+08
+aa
 55
-1b
-22
-7e
+08
 00
-68
+ab
 4b
+04
+09
+4a
+01
+01
+80
+03
+03
+aa
+55
+0c
+00
+fe
+48
+b0
+04
+58
+02
+64
+64
+94
+75
+85
+63
+75
+80
+aa
+55
+03
+00
+0d
+49
+0b
+0c
+0d
+aa
+55
+01
+00
+3b
 4c
-53
-67
-e3
-4c
-53
-20
-40
-7d
-95
-67
-e2
-4c
-59
-6f
-e0
-cc
-69
-24
-7a
+ff
+aa
+55
+14
 00
+10
+49
+ff
+ff
+ff
+05
+04
+ff
+ff
+08
+0b
+0c
+0d
+ff
+ff
+ff
+ff
+07
+06
+ff
+ff
+ff
+aa
+55
+01
 00
-6f
-e1
+38
 4c
-67
+ff
+aa
+55
+03
+00
 24
-7a
+49
+03
 00
 00
-6f
-e2
-4c
-59
-68
-4a
-cc
-5d
-98
-40
-fe
+aa
+55
+03
 00
-67
-e2
-cc
-5d
-68
-48
-cc
-52
-6f
-e0
-cc
-62
-98
-46
-7c
+ed
+4b
+ff
+58
+02
+aa
+55
+01
 00
-20
-22
-86
-2f
-18
 40
-84
-01
-60
-48
-cc
-52
-20
-60
+4c
 00
+aa
+55
+01
 00
-70
+42
 4c
-52
+00
+aa
+55
 01
-d8
-40
 00
+44
+4c
+00
+aa
+55
+01
 00
-6f
-e2
-cc
-5d
-60
-4a
-cc
-5d
-68
-48
-cc
-62
-98
 46
-fc
-00
-20
-40
-7d
-ef
-18
-07
-a2
+4c
+14
+aa
+55
+01
 00
-6f
-e2
+4b
 4c
-4e
-68
+03
+aa
+55
+03
+00
 48
+4c
+ff
+ff
+ff
+aa
+55
+12
+00
 cc
-63
-98
-46
+4b
+00
+05
+00
 04
 00
-18
-40
-85
-d8
-1a
-22
-7e
 00
-98
-46
-7e
 00
-20
-21
-06
-49
-1f
-e6
-7e
 00
-1f
-eb
-7e
 00
-68
-49
-c8
-ad
-98
-40
-84
 00
-6f
-e1
-cc
-64
-da
-20
-18
 00
-9a
-20
-fe
 00
-98
-46
-7c
 00
-24
-21
-06
-53
-60
-49
-c8
-ad
-20
-60
 00
 00
-1f
-eb
-04
 00
-6f
-e1
-c8
-ad
-98
-46
-04
 00
-6f
-e1
-cc
-64
-da
-20
-18
 00
-9a
-26
-7e
+aa
+55
+02
 00
-98
-46
-7c
+b3
+4b
+03
+01
+aa
+55
+08
 00
-20
-21
-06
-53
-60
+38
 49
-c8
-ad
-20
-60
 00
+34
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+07
 00
-67
-e1
-c8
-ad
-20
+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
+00
+40
+0a
 60
+06
+0a
 00
+64
 00
 70
-4c
-52
+17
+14
+0a
+90
 01
-1b
-22
-7e
+e8
+03
+90
+01
+aa
+55
+02
 00
-67
-e3
-4c
-53
-20
-60
+ca
+4b
+07
+06
+aa
+55
+01
 00
+c0
+49
+02
+aa
+55
+01
 00
-58
+fd
+48
+02
+aa
+55
+01
 00
+a1
+44
+05
+aa
+55
+06
 00
+e3
+48
+0f
+01
+a2
 00
-67
-e0
-cc
-52
-67
-e2
-cc
-5d
-20
-60
+b4
 00
+aa
+55
+0a
 00
-6f
-e1
-47
-8c
-c3
-85
-80
+eb
+48
+10
 00
-c3
-83
-80
+52
 00
-c3
-83
+35
 00
+21
 00
-20
-40
-06
-77
-20
-40
-06
-74
-60
-48
-c8
-c7
-20
-40
-06
-69
-6f
-e0
-cc
-92
-24
-3a
-06
-72
-68
-48
-c8
-c7
-20
-20
-26
-f6
-c6
-93
+25
 00
+aa
+55
+01
 00
-6f
-e2
-48
-91
-68
-4a
+f7
 48
-8d
-98
-46
-7c
+0a
+aa
+55
+02
 00
-20
-22
-86
-70
-70
-4c
-92
+c8
+4b
+64
 00
-20
-60
+aa
+55
+03
 00
+de
+4b
 00
-70
-4c
-92
-01
-20
-60
 00
 00
-70
-41
-e8
 aa
-20
-60
+55
+01
+00
+ab
+4a
+ff
+aa
+55
+01
 00
+e2
+4b
+01
+aa
+55
+0c
 00
-da
+d0
+49
+03
+04
+01
+02
 20
-4c
-88
+2a
+3f
+15
+14
+1b
+11
+0e
+aa
+55
+b2
+00
 df
-e0
+49
+09
+5a
+26
+34
+19
+04
+09
 00
-0a
-20
-20
-25
-cd
-20
-40
-06
+ff
+ff
+09
+5a
+0d
+f0
+1d
+e3
 7d
-da
-40
-4c
-82
-6f
-e0
-c8
+d2
+ff
+ff
+09
+5a
+0d
+10
+1d
+ed
 7d
-1f
-e0
-fe
-01
-1f
-e2
-72
-00
-20
-20
-06
 80
-d8
-c0
-4c
-72
-d8
-a0
-4c
-82
-20
-20
-7d
-0c
-1f
-20
-f3
 ff
-1f
-22
-7e
-00
-20
-7a
-00
-00
-1f
-22
-22
-00
-1a
-20
-a3
 ff
-1a
+1b
+35
+28
+b4
+29
+46
+2a
+96
+2b
+8c
+2c
+6e
+2d
+64
+38
+5f
+39
+0f
+3a
+32
+3b
+47
 42
-0c
-00
-ef
-e0
-80
-06
-18
-c2
-0a
-00
-e8
-40
-80
-06
-98
+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
-20
-40
-06
-90
-18
-c0
-8d
 ff
-1a
-20
-a3
 ff
-20
-21
-06
-86
-c2
+09
+5a
+ff
+27
+ab
+40
+be
+d1
+a0
+41
+a1
+12
+a5
+84
+a7
+ff
+b5
+d0
+b6
 00
-06
-83
-20
-60
+ff
 00
+09
 00
-20
+ff
+ff
+09
+5a
+0d
+10
+0e
+c5
+5b
+9a
+10
+38
+11
+42
+28
+28
 41
-06
-92
-20
-60
+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
-18
-a0
-8b
 ff
-e0
-40
-80
-05
-e7
-e0
-80
-05
-20
+ff
+09
+a5
+46
+34
 60
+07
+69
+04
+7d
+20
+7e
 00
+09
 00
-b1
-33
+ff
+ff
 aa
 55
-40
-00
+08
 00
-40
+a3
+4a
+09
+5a
+0b
+f3
 09
 00
+ff
+ff
+aa
+55
+08
 00
+e3
+4b
+09
+a5
+0b
+f3
+09
 00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-38
-1c
-00
-80
-00
-40
-01
-00
-98
-d6
-53
-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
-60
-06
-36
-00
-00
+ff
+ff
 aa
 55
 01
 00
-9a
-40
-08
+65
+48
+02
 aa
 55
-03
+01
 00
-7a
-41
-88
-16
-ce
+64
+48
+02
 aa
 55
 01
 00
-c5
-40
-18
+36
+48
+01
 aa
 55
 01
 00
-ef
-41
-ff
+a8
+48
+06
 aa
 55
 02
 00
-ca
-40
-ef
-41
+38
+48
+c0
+12
 aa
 55
-01
+03
 00
-7d
-41
-0d
+54
+48
+19
+19
+1c
 aa
 55
-01
+10
 00
-d0
-44
+40
+48
 00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
 aa
 55
 01
 00
-ea
-41
-ff
+5b
+48
+00
 aa
 55
-01
-00
-ee
-41
+05
 00
+77
+48
+20
+15
+10
+05
+4e
 aa
 55
-08
+05
 00
-ab
-4b
-04
-09
-4a
-01
+8c
+48
 01
-80
-03
-03
+0f
+0f
+0f
+0f
 aa
 55
-0c
+06
 00
-fe
+ad
 48
-b0
-04
-58
-02
-64
-64
-94
-75
-85
-63
-75
-80
-aa
-55
-03
-00
-0d
-49
-0b
 0c
-0d
-aa
-55
-01
+f8
 00
-3b
-4c
-ff
-aa
-55
-14
 00
-10
-49
-ff
-ff
-ff
-05
-04
-ff
-ff
-08
-0b
-0c
-0d
-ff
-ff
-ff
-ff
-07
-06
-ff
-ff
-ff
-aa
-55
+77
 01
-00
-38
-4c
-ff
 aa
 55
 03
 00
-24
-49
-03
-00
-00
-aa
-55
-03
+5c
+48
 00
-ed
-4b
-ff
-58
-02
+48
+60
 aa
 55
 01
 00
-40
-4c
-00
+7d
+48
+0f
 aa
 55
-01
+02
 00
-42
+99
+48
+72
 4c
-00
 aa
 55
 01
 00
-44
-4c
-00
+ca
+48
+80
 aa
 55
-01
+02
 00
-46
-4c
+c2
+48
 14
-aa
-55
-01
 00
-4b
-4c
-03
 aa
 55
-03
+02
 00
+c0
 48
-4c
-ff
-ff
-ff
-aa
-55
-01
+50
 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
+03
 00
+b8
+48
 00
+a6
+0e
 aa
 55
 01
 00
-99
-40
-01
-aa
+62
+4c
+10
 55
-02
-00
-b3
-4b
-03
-01
+aa
 aa
 55
-08
-00
-38
-49
-00
-34
+04
+21
+db
+54
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
 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
@@ -7131,921 +8007,36 @@
 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
-0f
-01
-a2
-00
-b4
-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
-16
-a2
-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
-3b
-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
-b2
-00
-df
-49
-09
-5a
-26
-34
-19
-04
-09
-00
 ff
 ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
 ff
 ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
 ff
 ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
 ff
 ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
 ff
 ff
-09
-5a
 ff
-27
-ab
-40
-be
-d1
-a0
-41
-a1
-12
-a5
-84
-a7
 ff
-b5
-d0
-b6
-00
 ff
-00
-09
-00
 ff
 ff
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
 ff
 ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
 ff
 ff
-09
-a5
-46
-34
-60
-07
-69
-04
-7d
-20
-7e
-00
-09
-00
 ff
 ff
-aa
-55
-08
-00
-a3
-4a
-09
-5a
-0b
-f3
-09
-00
 ff
 ff
-aa
-55
-08
-00
-e3
-4b
-09
-a5
-0b
-f3
-09
-00
 ff
 ff
-aa
-55
-02
-00
-8d
-44
-2d
-49
-aa
-55
-01
-00
-8c
-44
-01
-aa
-55
-01
-00
-65
-48
-02
-aa
-55
-01
-00
-64
-48
-02
-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
-0f
-aa
-55
-02
-00
-99
-48
-72
-4c
-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
-01
-00
-62
-4c
-10
-f8
-9f
 ff
 ff
 ff
@@ -8188,5 +8179,14 @@
 ff
 ff
 ff
-30
-1b
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+c2
+85
Index: output/flash.dat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/output/flash.dat	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/output/flash.dat	(working copy)
@@ -2,1160 +2,916 @@
 02
 aa
 55
-5a
-1a
+8a
+15
 c2
 84
 00
-1d
+18
 c0
 00
-00
-2e
-c0
-01
-80
-4b
+02
+ef
 c0
 41
-80
-64
+83
+2c
 c0
 42
-00
-6b
+03
+33
 c0
 42
-80
-6f
+83
+37
 c0
 45
-00
-98
+03
+4a
 c0
 45
-80
-ce
+83
+1f
 c0
 46
-00
-7e
-c0
-4f
-80
-db
+03
+50
 c0
 57
 00
-f0
-c0
-58
-00
-c2
+23
 c0
 61
-83
-8e
+80
+63
 c0
 62
 00
-48
+78
 c0
 63
-82
-51
+80
+7f
 c0
 64
-82
-57
+80
+85
 c0
 65
-02
-8c
+00
+ba
 c0
 66
 00
-be
+7b
 c0
 67
-04
-f1
+00
+49
 c0
 67
-85
-e7
+82
+6c
 c0
 68
-03
-c3
+02
+3e
 c0
 68
-85
-1e
+81
+61
 c0
 6a
-05
-04
+01
+47
 c0
 6b
-02
-b1
+00
+5e
 c0
 6c
-83
-d4
-c0
-6d
-04
-71
+80
+c3
 c0
 6f
-05
-8d
-c0
-74
-04
-a1
+00
+59
 20
 20
 13
 7c
 c0
 19
-80
-9e
+83
+6a
 c0
 1a
-00
-a3
+03
+6f
 c0
 43
-84
-9d
-c0
-50
-84
-b5
-c0
-60
-04
-bf
+83
+8a
 c0
 6e
 83
-7e
+fa
 c0
 6f
-01
-f9
+03
+ae
 c0
 70
 83
-a3
+8e
 c0
 71
-03
-26
+04
+c5
 c0
 74
-83
-4e
+84
+ec
 c0
 75
-01
-a7
-c0
-76
 04
-e5
+0a
 c0
 76
-86
-5d
+04
+73
 20
 20
 13
 7c
+79
+3f
+80
+34
+20
+40
+6d
+f3
+20
+40
+00
+32
+20
+40
+41
+a7
+20
+75
+80
+00
+20
+40
+02
+9c
 6f
-e0
-c1
-7b
+e1
+c8
+ad
 67
-e0
+e1
 cc
-93
+64
 20
-60
-00
+40
+04
+c1
+20
+40
+40
+8e
+20
+40
+3d
+8a
+20
+40
+47
+28
+20
+40
 00
+44
 20
+40
+01
+53
+20
+20
+3b
+c9
+20
+75
 80
 00
-00
-24
-55
-80
-2b
 20
 40
-30
-f3
+26
+07
+d8
+40
+03
 58
-00
-4c
-72
-67
-e1
+60
+49
 48
-99
+38
 20
 40
-3b
-fd
+22
+ff
 20
 40
-12
-4a
-6f
-e0
-cc
-93
-67
-e0
-c1
-7b
-58
 00
-0f
-0f
-d8
-a0
-0f
-ff
-98
-a1
-0a
+41
+20
+40
+3d
+13
+20
+40
+01
+fd
+20
+40
 00
+d4
+20
+40
+02
+64
+20
+40
+02
+a9
+6f
+e4
+4b
+ab
+c3
+0c
+3b
+f5
+20
+40
+02
+ac
+20
+20
+3b
+f5
 6f
 e0
-c1
-7a
-1f
-e1
-7e
-f0
-1f
-ed
-7e
-00
-98
-a1
-fe
-00
-79
+cc
+40
+24
+5a
+01
+11
+20
+20
 3f
-fe
+1e
+58
+00
 02
+af
 67
-f1
-00
-4c
-ef
 e1
+48
+9b
+58
 00
-06
-e7
+02
+c9
+67
 e1
+48
+9d
+20
+20
+3b
+d3
+78
+54
+7c
 00
-05
 58
 00
 00
-01
-37
-d9
-82
 00
 67
-f0
-80
-05
-70
-41
-7b
-08
-70
-80
-42
-04
-20
+e3
+48
+d1
 20
-08
-05
-6f
-e0
-cc
+40
 42
-24
-5a
-03
-f1
-20
-20
-3d
-5a
-20
 40
-70
-6c
+58
+00
+00
+89
 20
 40
-75
-97
+5b
+0c
 20
 40
-6e
-a7
-20
 40
-1b
-93
+8e
 20
 40
-08
-3a
+3f
+7e
 20
 40
-31
-08
+3f
+83
 20
 40
-08
-92
+01
+5a
+6f
+e0
+c8
+d0
+1f
+e1
+7e
+1f
+67
+e0
+c8
+d0
+24
+34
+47
+28
 20
 40
-0b
-08
+01
+44
+20
+20
+45
+44
 20
 40
-0b
-7b
+49
+90
 20
 40
-08
-23
+79
+36
 20
 40
-21
-d3
+01
+98
 20
 40
-00
-58
+01
+ac
 20
 20
-08
-13
+46
+4f
+1a
+62
+7e
+00
+c0
+1e
+05
+23
+c0
+1c
+85
+1c
+c0
+1d
+05
+2e
 20
-40
-14
-65
-6f
-e1
-c1
-74
 20
-7a
-00
-00
+43
+36
+6f
+e4
+4b
+ab
+c2
+97
+c8
+0a
 6f
 e0
+c9
+38
 c0
-99
-20
-7a
 00
 00
-6f
-e0
-c7
-64
+68
 20
-3a
-00
-61
-6f
-e0
-c6
-b9
 20
-7a
-00
-00
+3d
+57
 6f
-e0
-c6
-ba
-24
-7a
+e4
+4b
+ab
+c3
+08
+c8
+03
+20
+40
+3d
+65
+20
+34
 00
+72
+6f
+e4
+4b
+ab
+c2
+98
 00
+75
+c3
+18
+80
+75
 20
+40
+41
+10
+1a
+21
+7e
+07
 20
-14
-ea
-70
-89
-00
-05
 20
-00
-00
-02
-70
-89
-00
-00
+47
+ff
 6f
 e0
-c0
-c5
-c0
-0c
-11
-68
-70
-8a
-87
-29
-20
+cc
+40
+24
+5a
+00
+d9
 20
-11
-7d
 20
+48
+06
+6f
+e0
+cc
 40
-11
-90
-58
+24
+5a
 00
-76
-76
-67
-f1
-09
-68
+d9
 20
-60
-00
-00
+20
+48
+0c
 6f
 e0
 cc
-92
+42
 24
-3a
+5a
 00
-79
+d9
 20
+20
+3d
+5a
+6f
+e0
+cb
+aa
+24
+7a
+00
 00
-01
-2c
 20
 40
-4c
-a7
-d8
-c0
-41
-eb
-98
-c0
-8c
+03
+6f
+20
+20
+3e
+bb
+58
+00
 00
-ef
-e0
-80
 06
-67
-f0
-89
-61
-70
-89
-60
-2e
 20
+40
+5b
+0d
+c2
+81
+be
+23
 20
-11
-b3
-6f
-f0
-89
-60
-1f
-e1
-fe
+40
 01
-67
-f0
-89
-60
-70
-89
-61
-04
+4e
 20
+40
+01
+53
 20
-11
-b3
-6f
-f0
-89
-a2
-2f
-ef
-fe
-06
-79
 20
-fe
-07
-67
-e0
-c1
+3e
+23
+20
+40
+42
 e9
-6f
-f0
-89
-a3
-1f
-e1
-04
-0f
-18
-43
-84
-00
-1f
-f1
-fe
-00
-98
+20
 40
-84
-00
-18
-4f
-a2
-03
+7f
+dc
+20
+40
+01
+1e
+20
+40
+01
+11
+20
+40
+40
+15
+68
+48
+c9
+10
+20
+40
+60
+69
+68
+48
+c9
+10
+20
+40
+60
+42
 6f
 e0
-c1
-e9
+c9
 20
+d8
 40
 00
-93
-1f
-e6
-7e
-00
-9a
+3f
 20
-fe
-00
-1f
-e0
-ff
-f7
-1f
-e1
-7f
-ff
-2f
-ef
-fe
-08
-24
-20
-80
-91
-58
-00
-00
-00
-67
-e0
-80
-19
-20
-60
-00
-00
-2f
-ef
-fe
-07
-24
+40
 60
-80
-00
+93
 d8
 40
-ff
-00
-98
-41
-fe
-00
-20
-60
-00
-00
-6f
-e0
-cc
-92
-24
-3a
 00
-9b
-20
-20
-12
-3b
-70
-8a
-39
-5b
-70
-8a
-3a
-01
+03
 20
+40
+3f
+56
 20
-12
-2a
-da
+40
+3e
+40
 20
-09
-9e
+40
+60
+82
 d8
 40
 00
-0c
-58
-00
+13
+20
+40
+3f
+56
+20
+40
 00
-30
+9a
 20
 40
-5e
-63
+00
+a7
 20
 20
-60
-bf
-6a
-50
-8a
-12
-70
-8a
-12
-3d
-70
-8a
-11
-aa
-70
-8a
-0a
-0c
+00
+ae
 6f
-f0
-8a
-09
-79
-20
-7e
-07
+e1
+cb
+de
 67
-f0
-8a
-09
-70
-8a
-0b
-04
+e1
+89
+5c
+df
 20
 00
-00
-3c
-70
-8a
-16
-00
-70
-8a
-17
-06
-20
+14
+d8
 40
-61
-1a
-67
-f0
-8a
-97
-70
-80
-dc
-03
-20
 00
 00
-3c
 6f
-f0
-80
-53
-79
+e1
+89
+5c
+2f
+ef
+fe
+00
 20
+40
+e0
+7f
+6f
+e1
+89
+5c
+1f
+e3
 7e
-07
-67
-f0
-80
-53
-20
 00
-03
-e8
-6f
-f1
-01
-50
 67
 e1
-44
-a2
-6f
-f0
-80
-53
-79
-3f
-fe
-07
-67
-f0
-80
-53
-70
-8a
-97
+89
+5c
+18
+40
+84
+01
+c2
 00
-62
-50
-8a
-12
+00
+9e
 20
 60
 00
 00
 6f
+e4
+4b
+ab
+c4
+0a
+00
+00
+6f
 e0
-cb
-aa
-24
-7a
+c8
+fd
+c1
+81
 00
 00
-20
+6f
+e0
+c8
+fc
+d8
 40
 00
-a3
+c0
 20
 20
-3e
-bb
+60
+93
 6f
-e0
-83
-0d
-20
-7a
+e4
+4b
+ab
+c4
+1e
 00
 00
-1f
-e0
-ff
-ff
-67
-e0
-83
-0d
-20
-40
-77
-c5
-20
-40
-31
-e3
-20
-40
-31
-a4
+68
+48
+c9
+13
 20
 40
-31
-aa
+60
+42
+68
+48
+c9
+14
 20
 40
-5c
-dc
-6f
-e1
-44
+60
+42
 6f
-20
+e0
+c9
+13
+d8
 40
-7e
-05
-20
-20
 00
-c2
-70
-8a
-8b
-e6
-20
-40
-12
-6a
-20
-40
-12
-71
+80
 20
 40
-12
-77
-70
-8a
-6d
-09
-70
-8a
-03
-05
-70
-8a
-7a
-94
-70
-8a
-0e
-0b
-70
-8a
-0f
-05
-70
-8a
-83
-90
-70
-8a
-85
-00
-70
-89
-21
+60
+93
+6f
+e0
+c9
+14
+d8
 40
-20
-20
-12
-5d
-70
 00
 80
-00
 20
 20
+60
+93
+68
+48
+c9
 13
-b7
-58
-00
-00
-00
-67
-f1
-8a
-00
-70
-4c
-63
-8c
 20
 40
-12
-cf
-6f
-e2
-41
-64
-98
-40
-fe
-00
-67
-e2
-41
-64
-18
-02
-7e
-00
-67
-e4
-41
-9d
-d8
-c0
-80
-70
-d8
-a0
-41
-86
+60
+50
+68
+48
+c9
+14
 20
 40
-7d
-01
-6f
-f0
-80
-86
-67
-e0
-c1
-a5
+60
+50
 20
 40
-14
 3f
+88
 6f
-f0
-80
-42
-1f
-e1
-fe
-14
-67
-f0
-80
-42
-20
-20
-14
-9e
-24
-55
-81
+e0
+c9
 1f
-20
+d8
 40
-6d
-f3
+00
+3f
 20
 40
-01
-4a
+60
+93
 20
-40
-41
-a7
 20
-75
-80
-00
+3e
+44
 20
 40
-01
-00
-6f
-e1
-c8
-ad
-67
-e1
-cc
-64
+3e
+9b
 20
 40
-06
-59
+49
+56
 20
 40
-01
-0d
+23
+2b
 20
 40
-40
-8e
+25
+56
 20
 40
-3d
-8a
+47
+cd
 20
 40
-47
-28
+48
+be
 20
 40
 01
-62
+24
 20
 40
-05
-10
-20
+00
+e2
 20
-3b
-c9
-58
+40
 01
-77
-00
-67
-e1
-cc
-4e
+14
 20
 40
-26
-13
-70
-48
-c6
-1e
-6f
-e4
-4b
-ab
-c4
-0c
-00
-00
+40
+7c
 20
 40
-26
-0b
-70
-48
-c6
-0f
-58
-00
-bb
-80
-67
-e1
+44
 cc
-4e
-58
-00
-48
-00
-67
-e1
-c8
-ad
-20
-60
-00
-00
 20
 40
 01
-18
+27
 20
 40
-03
-ec
+44
+ff
+20
+40
+45
+35
+20
+40
+40
+22
+20
+40
+45
+47
 20
 20
 01
-10
+3e
 6f
-e4
-4b
-ab
-c4
-1e
-80
-00
+e0
+cc
+46
+67
+e0
+cc
+47
 6f
 e0
 cc
-3b
-c2
-83
-81
-16
-70
-4c
-3a
-00
+44
+67
+e0
+cc
+45
 20
 60
 00
 00
 70
 4c
-3a
+41
+01
+70
+4c
+43
 01
-20
-60
-00
-00
 6f
 e0
 cc
-38
-c1
-7f
-80
-00
-c2
-83
-81
-1d
-70
+4b
+67
+e0
+cc
 4c
-39
-00
 20
 60
 00
 00
 70
 4c
-39
+41
 01
+70
+4c
+4c
+00
+70
+4c
+43
+00
 20
 60
 00
 00
 6f
-e4
-4c
-1f
+e0
+cc
+41
 20
 7a
 00
@@ -1163,1099 +919,1059 @@
 6f
 e0
 cc
-1e
-1f
-e2
-22
+43
+c0
 00
-1f
-e6
-7c
-0b
+80
+f2
+6f
+e0
+cc
+45
 24
-21
-01
-31
-d8
-c0
-4c
-1f
-d8
-a0
-4a
-db
-1a
-22
-72
+3a
 00
-20
-40
-7d
-5f
-d8
-c0
+ea
+70
 4c
-1f
-d8
-a0
-44
-0a
-1a
-22
-72
+41
 00
 20
-40
-7d
-5f
-d8
-c0
-4c
-1f
-d8
-a0
-42
-f8
-1a
-22
-72
+60
+00
 00
-20
-20
-7d
-5f
-20
-40
-01
-47
 6f
 e0
 cc
-1e
+47
+20
+3a
+00
+ef
 1f
 e0
-fe
-01
+ff
+ff
 67
 e0
-ca
-d2
+cc
+47
+20
+20
+00
+f9
 70
-4a
-d3
-09
-d8
-c0
 4c
-1f
-d8
-a0
-4a
-d4
-1a
-22
-72
+45
+00
+70
+4c
+41
 00
 20
-40
-7d
-5f
+20
+01
+05
+da
+60
+4c
+4c
+da
+40
+00
+f5
+20
+20
+31
+8a
 6f
 e0
 cc
-1e
-1f
-e0
-fe
-01
+4b
 67
 e0
-c4
-08
-70
-44
-09
-09
-d8
+cc
+4c
+6f
+e0
+cc
+4d
 c0
+00
+81
+05
+70
 4c
-1f
-d8
-a0
-44
-0a
-1a
-22
-72
+4d
+01
+6f
+e0
+c9
+38
+c0
 00
-20
-40
-7d
-5f
-d8
+00
+ff
 c0
-4c
-1e
-d8
-a0
-42
-f7
-1a
-22
-72
 00
-1f
+81
+01
+c0
+01
+01
+03
+20
+60
+00
+00
+68
+48
+cc
+48
+20
 20
-f2
 01
+04
+68
+48
+cc
+49
 20
 20
-7d
-5f
-d8
-a0
+01
+04
+68
+48
+cc
 4a
-d2
-df
 20
-00
-14
 20
+60
+69
+70
+4c
+4d
+00
+6f
+e0
+c9
+38
+c0
+00
+01
+0b
+c0
+00
+81
+0d
+c0
+01
+01
+0f
 20
-7d
-26
-20
-75
-80
+60
 00
+00
+68
+48
+cc
+48
+20
 20
-40
-26
-07
-d8
-40
-03
-58
 60
-49
+7f
+68
 48
-38
+cc
+49
 20
-40
-22
-ff
 20
-40
-01
-5c
+60
+7f
+68
+48
+cc
+4a
 20
-40
-3d
-13
+20
+60
+7f
 20
 40
 01
-56
-6f
-e4
-4b
-ab
-c3
-0c
-3b
-f5
+0b
 20
 40
 01
-59
+0d
 20
 20
-3b
-f5
-58
+01
+0f
+6f
+e0
+cb
+ed
+c1
+7f
+80
 00
-e2
-90
-67
+6f
 e1
-c8
-ad
+4a
+b2
 20
-60
-00
+7a
 00
-58
 00
-17
-70
-67
+6f
 e1
-c8
-ad
-20
-60
+4b
+be
+68
+49
+4a
+b2
+98
+46
+04
 00
+6f
+e1
+4b
+ee
+98
+46
+7e
 00
+20
+21
+01
+22
+68
+48
+cb
+ed
 6f
 e0
 cc
 40
-24
-5a
-01
-5f
+c0
+00
+e0
+7f
 20
 20
-3f
-1e
+60
+65
+68
+48
+cb
+ed
 20
-40
-04
-23
 20
+60
+69
+da
+60
+4b
+a8
+da
 40
-04
-25
+02
+4f
 20
 20
-04
-27
-58
+31
+8a
+6f
+e0
+c9
+38
+c0
 00
 01
-67
-67
-e1
-48
-9b
-58
+2d
+6f
+e4
+4b
+ab
+c4
+1a
+80
 00
-01
-81
-67
-e1
+68
 48
-9d
-20
+cb
+ca
 20
-3b
-d3
-c6
-93
-00
-00
 20
-40
-3f
-70
-24
-74
-00
-00
+01
+30
 6f
 e4
 4b
 ab
-c3
-0a
-81
-6e
-6f
-e0
+c4
+19
+00
+00
+68
+48
 cb
-8b
-24
-3a
+cb
+60
 48
-84
+cb
+9d
 20
 40
-42
-cb
-6f
-e0
-c8
-36
-c2
-80
-81
-7d
-68
-48
-c7
-c7
-6f
-e0
-c8
-d0
-98
 41
-fe
-00
-67
-e0
-c8
-d0
+15
+1f
+e1
+7e
+07
 68
 48
-c7
-cc
-6f
-e0
-c8
-d5
+cb
+9d
 98
-40
-fe
+46
+7c
 00
-67
-e0
-c8
-d5
-68
-48
-c7
-cd
+20
+22
+81
+37
+20
+20
+44
+eb
+20
+40
+01
+3c
 6f
 e0
-c8
-d6
-98
-40
-fe
+cb
+9f
+c1
+00
+80
 00
-67
-e0
-c8
-d6
 70
-48
-36
+4b
+9f
 01
-da
 20
+60
+00
 00
-07
 da
 40
-48
-d0
+05
+42
+20
 20
+44
+f7
+da
 60
-00
-00
-6f
-e4
-4b
-ab
-c4
-0b
-00
-00
-6f
-e0
-ca
-ae
+4a
+b2
+da
+40
+01
+41
 20
-7a
-00
-00
+20
+31
+91
 6f
 e0
-c8
-a7
-20
-7a
-00
+c9
+38
+c0
 00
+05
+59
+20
+20
+43
+1b
 6f
 e0
-cb
-a1
-1f
-e0
-fe
+c9
+27
+c1
 01
-1f
-e1
-7e
-03
-67
-e0
-cb
-a1
-24
-7a
-00
-00
-70
-4b
-a2
+80
 00
+20
+20
+47
+1a
+20
+40
+3f
+65
 6f
 e0
-cb
-a2
-1f
-e0
-fe
-01
-67
-e0
-cb
-a2
-1f
-e6
-7c
-08
-24
-21
-01
-97
+c9
+27
+c0
+05
+81
+4b
 20
-40
-25
-9a
+20
+42
+38
 20
 40
 01
-e8
-24
-2c
-01
-9d
-24
-37
-81
-9d
+51
+da
+60
+4b
+e3
 20
-40
-48
-b5
 20
-40
-25
-97
+42
+3a
 6f
 e0
-cb
-a3
-1f
-e0
-fe
-01
-67
-e0
-cb
-a3
+c9
+27
 c0
-08
-01
-9f
+05
+81
+51
 20
-60
-00
+20
+42
+32
+58
 00
+97
+06
 20
-40
-22
-cb
 20
+42
+33
 20
-01
-8d
-70
-4b
-a3
-00
+40
+41
+a7
+20
+40
+3f
+65
 6f
 e0
-cb
-a4
-c3
-80
-00
-00
-79
+c9
+27
+c0
+05
+81
+58
 20
-7e
+20
+42
+3e
+58
 00
-67
-e0
-cb
-a4
-6f
-e1
-4b
-bc
-67
-e1
-4a
-b2
+1f
+06
 20
 20
-05
-10
+5b
+0c
 20
 40
-26
-31
+02
+04
+6f
+e0
+cc
+37
 24
-34
+3a
 02
-95
+1b
+6f
+e0
+cc
+32
+24
+3a
+02
+1a
 20
 40
 01
-dc
+61
+20
 20
 40
-26
-ee
+dd
 6f
 e0
 cb
 e1
 24
-3a
-01
-b1
-6f
-e4
-48
-b0
-67
-e4
-48
-5c
-6f
-e1
-48
-c2
-67
-e1
-48
-c4
+5a
+41
+21
+da
 20
-40
-26
-bb
-24
-74
 00
 00
+20
+40
+01
+6b
+20
+40
+01
+70
+20
+40
+01
+75
+20
+40
+01
+7a
+20
+40
+01
+87
+20
+40
+02
+04
+20
+20
+41
+1e
 6f
 e0
-cc
-69
-70
-4c
-69
-00
-1f
-e6
-7c
-00
+c9
+18
+20
+40
+01
+94
+20
+40
+41
 24
-22
-81
-d6
 68
-49
-4c
-67
+48
+c9
 18
-46
-7c
-00
 20
-22
-81
-cc
+20
+3f
+56
 6f
-e2
-4c
-59
+e0
+c9
+19
 20
-3a
+40
 01
-cc
+94
+20
+40
+41
+2a
 68
-4a
-4c
-4e
-98
-46
-04
-00
-60
-4a
-4c
-6e
-24
-21
-01
-cf
+48
+c9
+19
+20
+20
+3f
+56
 6f
-e1
-c8
-ad
-98
-46
-7e
-00
-24
-21
-01
-da
-d8
-40
-06
-00
-98
-46
-7c
-00
-24
-21
-01
-da
-67
-e2
-4c
-6a
+e0
+c9
+1a
 20
 40
 01
-d3
-6f
-e2
-4c
-6a
+94
 20
 40
-7d
-aa
-60
-4a
 41
-60
+30
+68
+48
+c9
+1a
 20
 20
+3f
+56
+6f
+e0
+c9
+0d
+c1
+7f
+80
 00
-dd
+70
+4b
+96
+03
+6f
+e0
+cb
+91
+1f
+e2
+26
+00
+68
+48
+c9
+0d
+6f
+e0
+c9
+10
+c0
+7f
+81
+83
+20
+20
+41
+3e
+6f
+e0
+c9
+0d
 20
 40
 01
-d3
-6f
-e1
-c8
-ad
+96
+68
+48
+c9
+0d
 20
 20
-01
-c6
-18
-46
-04
+41
+4b
+6f
+e0
+c9
+0e
+c1
+7f
+80
 00
+70
+4b
+96
+04
 6f
-e1
-c8
-ad
-98
-40
-fe
+e0
+cb
+92
+1f
+e2
+26
 00
+68
+48
+c9
+0e
+6f
+e0
+c9
+10
+c0
+7f
+81
+90
+20
 20
+41
+57
+6f
+e0
+c9
+0e
 20
+40
 01
-c6
-58
-00
-00
+96
+68
+48
+c9
+0e
+20
+20
+41
+64
+d8
+40
 00
-67
-e2
-4c
-6e
+3f
+20
 20
 60
-00
-00
-6f
-e2
-4c
-59
-68
-4a
-4c
-6e
-98
+93
+d8
 40
-fe
 00
+3e
 20
 20
-01
-bc
-70
-4c
-69
-01
-20
 60
+93
+6f
+e4
+4b
+ab
+c2
+97
+40
+36
+6f
+e0
+c9
+0f
+c1
+7f
+80
+00
+da
+20
 00
 00
 70
+4b
+96
+05
+68
 48
-a6
-00
-58
-00
-00
-00
-67
-e1
-4c
-67
+c9
+0f
 20
 40
 01
-e8
+a1
+20
+20
+40
+2f
 6f
-e0
-c8
-2c
-c0
-00
-a6
-51
-24
-2c
-02
-15
-24
-37
-82
-15
-20
-40
-06
-17
-20
-40
-26
-72
-20
+e4
+4b
+ab
+c2
+96
 40
-02
-44
-20
-20
+48
+6f
+e0
+cb
+93
+1f
+e2
 26
-51
-78
-57
-fc
 00
-20
-40
-22
-46
 6f
 e0
-c8
-2c
+c9
+10
 c0
-00
-a2
+7f
+81
+a8
+20
+20
+40
 3f
-18
-00
-2a
-00
 6f
-e2
-48
-3c
-98
-00
-12
-00
+e0
+c9
+0f
 20
 40
-10
-b0
+01
+96
 68
 48
-80
-17
+c9
+0f
 20
-40
-11
-8f
 20
-40
-11
-a6
+41
+95
+6f
+e4
+4b
+ab
+c4
+1e
+80
+00
+6f
+e0
+cc
+3a
+24
+3a
+01
+b5
+6f
+e0
+cc
+3b
 20
 40
-02
-04
-20
-57
-81
-f6
+01
+94
 20
-60
-00
-00
-70
-8a
-0a
-00
-70
-8a
-0b
-00
+40
+01
+c5
+68
+48
+cc
+3b
 20
 20
-12
-9c
+3f
+56
 6f
 e0
-c8
-64
+cc
+3b
+79
+3f
+fe
+07
+67
+e0
+cc
+3b
 20
 40
-16
-8b
-6f
-e2
+01
+96
+70
+4c
+3f
+00
+68
 48
+cc
+3b
+6f
+e0
+cc
 3c
-98
-00
-12
-00
 20
 40
-10
-b0
+01
+de
 20
 40
-11
-61
+01
+c9
 68
 48
-c8
-3a
+cc
+3b
+20
+20
+3f
+56
 20
 40
-16
-c8
+3f
+56
 6f
-f0
-89
-60
-79
+e0
+cc
+3d
+c1
+00
+80
+00
+70
+4c
+3d
+01
 20
-7e
-03
-67
-f0
-89
-60
 20
 40
-21
-d5
-c5
-97
-82
-09
-78
-3c
-fc
+69
+70
+4c
+3f
 00
+68
+48
+cc
+3b
+6f
+e0
+cc
+3c
+20
+40
+01
+d4
+67
+e0
+cc
+3c
+6f
+e0
+cc
+3e
 20
+3a
+01
+d0
+6f
+e0
+cc
+3d
+c1
 00
+80
 00
-1e
+70
+4c
+3d
+01
+20
 20
 40
-21
-d5
-78
-57
-fc
-00
-78
-26
-fc
+69
+6f
+e0
+cc
+3d
+c1
 00
-78
-30
-fc
 00
-78
-50
-7c
 00
-78
-28
-7c
+70
+4c
+3d
 00
-6f
-e1
-48
-38
-98
+20
+60
 00
-36
 00
-37
-c1
-84
+1f
+e3
+fe
 00
+1f
+e2
 24
-2c
-22
-3d
+00
 20
 40
-4c
-af
-c5
-17
-a1
-f6
-20
+60
+59
+79
 20
-21
-f6
-6f
-e0
-ca
-c5
-24
-7a
+a4
+00
+1a
+41
+7e
+07
+68
+48
+cc
+3f
+18
+42
+0e
 00
+c0
+03
+81
+e9
+c0
 00
+01
+eb
 20
-40
-02
-34
-6f
-e0
-c8
-a7
-24
-7a
+60
 00
 00
-6f
-e1
-48
-a3
 1f
-e0
+e3
 fe
-01
-67
-e1
-48
-a3
-6f
-e0
-c8
-a4
-c2
-82
-26
-79
+00
+1f
+e2
+24
+00
 20
 40
-02
-24
-6f
-e1
-4c
-67
-1f
-e0
-fe
-01
-67
-e1
-4c
-67
+3f
+54
 20
+40
+60
+59
+79
 20
-01
-df
+a4
+00
+1a
+41
+7e
+07
 68
 48
-c8
-a6
-6f
-e0
-c8
-c6
-98
-46
-7c
-00
-24
-21
-26
-9c
+cc
+3f
 18
-40
-84
-01
-60
-48
-c8
-a6
-6f
-e0
-c8
-c6
-c0
-07
-82
-30
-6f
-e0
-c8
-a6
+42
+0e
+00
 c0
-0a
-26
-96
+03
+81
+e9
 c0
-0f
-26
-96
+00
+01
+eb
 20
 60
 00
 00
-6f
-e0
-c8
-a6
-c0
-05
-26
-96
-c0
-07
-a6
-96
+70
+4c
+3e
+01
+20
+60
+00
+00
+70
+4c
+3e
+00
 20
 60
 00
@@ -2294,8 +2010,8 @@
 10
 c0
 7f
-82
-41
+81
+fa
 20
 40
 41
@@ -2322,2700 +2038,2528 @@
 56
 20
 20
-02
-3e
+01
+f7
 6f
 e0
-cb
-e1
-24
-5a
+cc
+38
+c1
+7f
+80
+00
+c2
+83
+82
 02
-48
 70
-4b
-e1
+4c
+39
 00
 20
 60
 00
 00
+70
+4c
+39
+01
 20
+60
+00
+00
+da
 40
-41
-aa
-6f
-e4
-4b
-ab
-c4
-1e
 00
 00
 6f
 e0
-c9
-13
-d8
-40
+cc
+38
+c1
+7f
+80
 00
-40
-20
-40
-60
-93
 6f
 e0
-c9
-14
-d8
-40
-00
-40
-20
-20
-60
-93
-58
-00
-00
-06
-20
-40
-5b
-0d
-c2
-81
-be
-23
-20
-40
-05
-0b
-20
-40
-05
-10
-20
-20
-3e
-23
-20
-40
-42
-e9
-20
-40
-7f
-dc
-20
-40
-04
-33
-20
-40
-01
-5f
-20
-40
-40
-15
+cc
+39
+24
+3a
+02
+11
 68
 48
-c9
-10
+cc
+38
 20
 40
-60
-69
+3f
+56
 68
 48
-c9
-10
+cc
+38
 20
 40
 60
-42
-6f
-e0
-c9
+59
+79
 20
-d8
-40
+a4
 00
-3f
+1a
+42
+7e
+00
+67
+e0
+cc
+37
 20
-40
 60
-93
-d8
-40
 00
-03
-20
-40
+00
+6f
+e0
+cc
+38
+79
 3f
-56
+fe
+07
+67
+e0
+cc
+38
+68
+48
+cc
+38
 20
 40
-3e
-40
+3f
+54
+68
+48
+cc
+38
 20
 40
 60
-82
-d8
-40
+59
+7d
+20
+a4
 00
-13
 20
-40
-3f
-56
 20
-40
 02
-6c
-20
-40
+0e
+c0
 02
-79
-20
-20
 02
-80
-6f
-e1
-cb
-de
-67
-e1
-89
-5c
-df
+33
 20
-00
-14
-d8
 40
-00
-00
+02
+36
 6f
-e1
-89
-5c
-2f
-ef
-fe
-00
-20
+e2
+4c
+33
+d8
 40
-e0
-7f
-6f
-e1
-89
-5c
-1f
-e3
-7e
 00
-67
-e1
-89
-5c
-18
+a0
+98
 40
 84
-01
-c2
 00
-02
-70
-20
-60
+1c
+42
+7e
 00
+98
+46
+7c
 00
-6f
-e4
-4b
-ab
-c4
-0a
+24
+61
 00
 00
+67
+e2
+4c
+33
 6f
 e0
-c8
-fd
-c1
-81
-00
+cc
+32
+c0
 00
-6f
-e0
-c8
-fc
-d8
-40
+02
+29
+c0
 00
+82
+2c
 c0
-20
-20
-60
-93
-6f
-e4
-4b
-ab
-c4
-1e
+01
+02
+2f
+c0
+01
+82
+31
+20
+60
 00
 00
-68
+70
+4c
+32
+01
+70
 48
-c9
-13
+d0
+01
 20
-40
-60
-42
-68
-48
-c9
-14
 20
-40
-60
-42
-6f
-e0
-c9
-13
-d8
-40
+7e
+54
+70
+4c
+32
+02
+70
+48
+d0
 00
-80
 20
-40
-60
-93
-6f
-e0
-c9
-14
-d8
-40
+20
+7e
+54
+70
+4c
+32
+03
+20
+20
+02
+2a
+70
+4c
+32
 00
-80
 20
 20
-60
-93
-68
+02
+2d
+70
+4c
+32
+00
+70
 48
-c9
-13
+d0
+00
 20
-40
 60
-50
+00
+00
 68
-48
-c9
-14
+4a
+4c
+33
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+41
+02
+3b
 20
-40
 60
-50
+00
+00
+58
+00
+00
+00
+67
+e2
+4c
+33
 20
-40
-3f
-88
-6f
-e0
-c9
-1f
-d8
-40
+60
+00
 00
-3f
 20
 40
-60
-93
+40
+8f
 20
+40
+02
+41
 20
-3e
-44
-6f
-e0
-c8
-a7
 20
-5a
-02
-a3
+40
+98
 6f
 e0
-c8
-bd
+c9
+23
 c1
-00
+7f
 80
 00
-20
-40
-26
-9f
-20
-40
-26
-bb
+6f
+e1
+4a
+c2
 24
-74
-00
+7a
 00
-20
-40
-26
-c4
-70
-4c
-69
 00
-20
-40
-06
-59
 6f
-e0
-cb
 e1
+48
+83
 24
-5a
-3e
-33
+7a
+00
+00
 6f
-e2
-48
-5c
-20
-20
-26
-b8
-70
-48
-36
-01
-70
+e1
 48
-a7
-01
-20
-40
-26
-42
-67
-e0
-c7
-c6
-58
-00
+87
+24
+7a
 00
 00
-67
-e3
-c7
-c7
 6f
-e2
-48
-a9
-67
-e2
-47
-ce
-70
-48
-35
-0c
+e0
+cb
+a7
+24
+7a
+00
+00
 6f
 e0
-c8
-36
-79
+cb
+c1
 20
-7e
-03
+3a
+02
+4f
 67
 e0
-c8
-36
-20
-40
-22
-91
-20
+cb
+a8
 20
-01
-a9
-1a
-62
-7e
+60
 00
-c0
-1e
-02
-e7
-c0
-1c
-82
+00
+6f
 e0
+c9
+27
 c0
-1d
-02
+01
+c8
 f2
 c0
-00
-82
-be
-c0
-19
-02
-cc
-c0
-22
-02
-d3
-c0
-0a
-82
-c2
-c0
-0a
-02
-bb
-20
-20
-43
-36
+05
+c8
+f2
 6f
 e0
-cc
+c9
+23
+67
+e0
+c9
+2f
+6f
+e1
+4b
+c2
+67
+e1
+49
+30
+67
+e1
+49
+32
+da
+20
+00
+00
+68
+48
+c9
+92
+18
 40
-24
-5a
+84
+02
+18
+46
+7c
 03
-f6
-20
 20
-43
-50
-20
-40
-45
-44
-6f
-e0
-cc
-40
+41
+02
+5e
 24
-5a
-03
-f6
+41
+02
+62
 20
 20
-43
-fa
-58
+48
+ff
+6f
+e4
+4b
+ab
+c4
+0e
 00
 00
+18
+40
+84
+01
+20
+60
 00
-67
-e1
-4a
-f2
-70
-4a
-c6
 00
-58
+18
+40
+85
+fd
+20
+60
 00
 00
-06
-67
-e1
-43
-72
-67
-e1
-43
-74
 6f
 e4
 4b
 ab
-c2
-8d
-c3
-66
-58
-00
+c4
+1e
+80
 00
-07
-20
-20
-43
-64
 6f
 e0
-ca
-c7
-c0
-00
+cc
+3b
+c2
+83
 82
-d0
+6a
 70
-4b
-76
-14
+4c
+3a
+00
 20
+60
+00
+00
+70
+4c
+3a
+01
 20
-43
-73
+60
+00
+00
 20
 40
-43
-6c
-70
-4b
-76
-05
-20
+40
+72
 20
-43
-73
+74
+00
+00
 6f
 e0
+c9
+92
+1f
+e2
+04
+00
+6f
+e4
+4b
+ab
+c2
+9e
 82
-c1
+78
+18
+42
+7e
+00
+1f
+e0
+fe
+01
 1f
-e6
-7c
-0c
-24
-21
-43
-84
-67
 e1
-43
-72
+7e
+03
 67
-e1
-43
-74
-6f
 e0
-82
-c3
-20
-3a
-43
-9a
-68
-48
-cb
-8a
-98
-46
-7c
-00
-20
-21
-43
-9a
-6f
-e0
-82
-c3
-67
-e0
-cb
-8a
+c9
+92
 20
+40
+40
+95
 20
-43
-86
 20
-40
 45
-44
-d8
-e0
-00
-01
-20
-40
-46
-f4
+ee
 6f
 e0
 cc
-40
-c0
-00
-48
-59
-20
-40
-03
-f6
-20
-20
-48
-5a
+3e
+24
+3a
+02
+95
 6f
-e2
-48
-3c
-67
-e2
-48
-91
-67
-e2
-49
-93
-20
-40
-25
+e4
+4b
+ab
+c2
+8e
+02
+89
+18
+42
 7e
-6f
-e0
-cc
-40
+00
+c1
+00
+80
+00
 c0
 00
 02
-ef
+85
+c0
+01
+02
+83
 20
-40
-03
-f6
+60
+00
+00
+58
+00
+00
+02
 20
 20
 02
-f0
+75
+58
+00
+00
+00
 20
-40
-48
-c6
 20
-40
-45
-44
+02
+75
+58
+00
+00
+01
 20
 20
-48
-4e
-6f
-e0
-c8
-a5
-24
-3a
+02
+75
+58
+00
+00
 03
-1d
-6f
-e0
-c8
-8b
+20
+20
+02
+75
+18
+42
+7e
+00
+c1
+00
+80
+00
 c0
-01
+00
 02
-f9
+85
 c0
+01
 02
-03
-11
+87
 c0
 01
+82
 83
-16
 20
+60
+00
+00
+18
+42
+7e
+00
+c1
+01
+00
+00
+c0
+00
+02
+87
+c0
+00
+82
+83
+c0
+01
+82
+81
 20
-48
-39
+60
+00
+00
 6f
 e4
 4b
 ab
 c2
-97
-83
+8e
 02
-c2
-98
-03
+8f
+18
+42
+7e
+00
+c1
+01
+00
+00
+c0
+00
 02
-c3
-1d
-48
-06
-6f
-e2
-49
-93
-68
-4a
-49
-74
-98
-46
-7c
+81
+c0
 00
-20
-22
+82
 83
-06
 20
+60
+00
+00
+58
+01
+77
+00
+67
+e1
+cc
+4e
 20
+40
+26
+13
+70
 48
-06
+c6
+1e
 6f
-e0
-cc
-40
-c0
+e4
+4b
+ab
+c4
+0c
+00
 00
-48
-11
 20
 40
-03
-f1
-20
-20
-48
-12
+26
+0b
 70
 48
-8b
+c6
+0f
+58
 00
-d8
-e0
+bb
+80
+67
+e1
+cc
+4e
+58
 00
-01
+48
+00
+67
+e1
+c8
+ad
 20
-40
-46
-f0
-58
+60
 00
 00
+58
 00
+e2
+90
 67
 e1
-48
-87
+c8
+ad
 20
-40
-45
-76
+60
+00
+00
+58
+00
+17
+70
+67
+e1
+c8
+ad
 20
-40
-49
-8e
-6f
-e0
-cc
-40
-c0
+60
+00
+00
+c6
+93
+00
 00
-48
-2d
 20
 40
-03
-f1
-20
-20
-48
-2e
+3f
+70
+24
+74
+00
+00
 6f
 e4
 4b
 ab
 c3
-17
-83
-1b
+0a
+82
+b6
 6f
 e0
 cb
-b4
-c0
-00
-83
-1b
-20
-20
+8b
+24
+3a
 48
-1a
+84
+20
+40
+42
+cb
 6f
-e4
-4b
-ab
-c3
-17
-83
-1b
-c2
-89
-83
-1b
+e0
+c8
+36
 c2
-89
-03
-1b
-20
-20
+80
+82
+c5
+68
 48
-12
+c7
+c7
 6f
-e4
-4b
-ab
-c3
-1e
-48
-39
-70
-48
-a5
+e0
+c8
+d0
+98
+41
+fe
 00
-20
-40
-26
-52
-5f
-ff
-ff
-ff
 67
-e2
+e0
+c8
+d0
+68
 48
-5c
-58
-00
+c7
+cc
+6f
+e0
+c8
+d5
+98
+40
+fe
 00
+67
+e0
+c8
+d5
+68
+48
+c7
+cd
+6f
+e0
+c8
+d6
+98
+40
+fe
 00
 67
-e3
+e0
 c8
-d0
+d6
 70
-4b
-e1
+48
+36
 01
+da
 20
+00
+07
+da
 40
-05
-10
-20
-20
-02
-9a
-70
 48
-8b
+d0
+20
+60
+00
 00
 6f
-e1
+e4
 4b
-eb
-1f
+ab
+c4
+0b
+00
+00
+6f
 e0
-fe
-01
-67
-e1
-4b
-eb
+ca
+ae
+20
+7a
+00
+00
+6f
+e0
+c8
+a7
+20
+7a
+00
+00
 6f
 e0
 cb
-eb
+a1
+1f
+e0
+fe
+01
 1f
 e1
 7e
-ff
-c0
-00
 03
-2e
-20
-60
+67
+e0
+cb
+a1
+24
+7a
 00
 00
-6f
-e0
-c8
-7f
-c0
-7f
-a3
-8e
-c0
+70
+4b
+a2
 00
-83
-35
-c0
+6f
+e0
+cb
+a2
+1f
+e0
+fe
 01
+67
+e0
+cb
+a2
+1f
+e6
+7c
+08
+24
+21
+02
+df
+20
+40
+25
+9a
+20
+40
 03
+d9
+24
+2c
+02
+e5
+24
 37
-c0
+82
+e5
+20
+40
+48
+b5
+20
+40
+25
+97
+6f
+e0
+cb
+a3
+1f
+e0
+fe
 01
-83
-3d
+67
+e0
+cb
+a3
 c0
+08
 02
-03
-43
+e7
 20
 60
 00
 00
-70
-47
-c6
-ff
-20
-20
-03
-44
-6f
-e0
-c8
-5b
-20
-3a
-03
-3b
-6f
-e2
-48
-a9
 20
 40
 22
-dc
-70
-47
-c6
-aa
+cb
 20
 20
-03
-44
+02
+d5
 70
-47
-c6
-55
+4b
+a3
+00
 6f
 e0
-c8
-5b
+cb
+a4
+c3
+80
+00
+00
+79
 20
-3a
-03
-44
+7e
+00
+67
+e0
+cb
+a4
 6f
-e2
-48
-91
+e1
+4b
+bc
 67
-e2
-47
-c8
+e1
+4a
+b2
 20
 20
-03
-46
-70
-47
-c6
-22
-6f
-e2
-48
-a9
+01
+53
+20
+80
+00
+00
+24
+55
+83
+09
+20
+40
+30
+f3
+58
+00
+4c
+72
 67
-e2
-47
-c8
-6f
-e0
-c8
-36
-1f
 e1
-7e
-07
-67
-e0
-c7
-c7
-70
-47
-cc
-00
-70
 48
-35
-07
+99
 20
 40
-22
-91
+3b
+fd
 20
 40
-01
-e8
-20
-20
-23
-60
+12
+4a
 6f
-e1
-48
-89
+e0
+cc
+93
+67
+e0
+c1
+7b
+58
+00
+0f
+0f
 d8
-40
-01
-f8
+a0
+0f
+ff
 98
-41
-7e
+a1
+0a
 00
-20
-3a
-03
-56
 6f
+e0
+c1
+7a
+1f
 e1
-48
-89
+7e
+f0
 1f
-e0
+ed
+7e
+00
+98
+a1
 fe
-01
-67
-e1
-48
-89
-20
-60
+00
+79
+3f
+fe
+02
+67
+f1
+00
+4c
+ef
+e1
+00
+06
+e7
+e1
+00
+05
+58
 00
 00
-20
-40
-25
-9a
-20
-40
 01
-e8
-24
-2c
-03
-6f
-24
 37
-83
-6f
-20
-40
-26
-72
-6f
-e2
-48
-77
-68
-4a
-48
-3c
-98
-46
-7c
+d9
+82
 00
+67
+f0
+80
+05
+70
+41
+7b
+08
+70
+80
+42
+04
 20
-22
-a3
-2e
-6f
-e2
-48
-a9
-68
-4a
-48
-3c
-98
-46
-7c
-00
 20
-42
-83
-6b
+08
+05
 6f
 e0
-c8
-a1
-79
-3f
-fe
-02
+c1
+7b
 67
 e0
-c8
-a1
+cc
+93
+20
+60
+00
+00
 58
 00
 00
 00
 67
-e1
-48
-83
-67
-e1
-48
-89
-67
-e1
-48
-87
-20
+f1
+8a
+00
+70
+4c
+63
+8c
 20
-25
-95
+40
+12
+cf
 6f
 e2
-48
-0c
-20
-7a
-00
+41
+64
+98
+40
+fe
 00
 67
 e2
-48
-91
-20
-20
-25
+41
+64
+18
+02
 7e
+00
+67
+e4
+41
+9d
+d8
+c0
+80
+70
+d8
+a0
+41
+86
+20
+40
+7d
+01
 6f
+f0
+80
+86
+67
 e0
-c8
-8c
+c1
+a5
 20
-3a
-22
-cb
+40
+14
+3f
 6f
-e1
-48
-89
+f0
+80
+42
 1f
-e0
-fe
-01
-67
 e1
-48
-89
-6f
-e0
-c8
-8a
-2f
-ef
 fe
-01
-6f
-e0
-c8
-8b
-c0
-00
-a5
-ad
-c0
-01
-25
-af
-c0
-01
-a5
-b1
-c0
-02
-03
-7c
-20
+14
+67
+f0
+80
+42
 20
-25
-6e
 20
+14
+9e
+70
+8a
+8b
+e6
 20
-a5
-75
+40
+12
+6a
 20
+40
+12
+71
 20
-23
-39
-c6
-1a
-00
-00
-c5
-13
-a4
-0e
-c6
-93
-00
-00
-6f
-e0
-c8
-a1
-c2
-80
-a3
 40
-c2
-81
-25
-80
-6f
-e0
-c8
-bd
-c0
-00
+12
+77
+70
+8a
+6d
+09
+70
+8a
+03
+05
+70
+8a
+7a
+94
+70
+8a
+0e
+0b
+70
+8a
+0f
+05
+70
+8a
 83
-87
-20
-20
-26
+90
+70
+8a
+85
+00
+70
+89
 21
-20
 40
-22
-ea
-24
-34
-03
-80
 20
-40
-26
-db
-6f
-e1
-48
-be
-1f
-e0
-fe
-01
-67
-e1
-48
-be
 20
+12
+5d
+70
+89
+00
+05
 20
-26
-21
-6f
-e4
-4b
-ab
-c2
-97
-c8
-0a
+00
+00
+02
+70
+89
+00
+00
 6f
 e0
-c9
-38
 c0
-00
-03
-93
+c5
+c0
+0c
+11
+68
+70
+8a
+87
+29
 20
 20
-3d
-57
-6f
-e4
-4b
-ab
-c3
-08
-c8
-03
+11
+7d
 20
 40
-3d
-65
+11
+90
+58
+00
+76
+76
+67
+f1
+09
+68
 20
-34
-03
-9d
+60
+00
+00
 6f
-e4
-4b
-ab
-c2
-98
+e0
+cc
+92
+24
+3a
 03
-a0
-c3
-18
-83
-a0
+41
+20
+00
+01
+2c
 20
 40
+4c
+a7
+d8
+c0
 41
-10
-1a
-21
-7e
-07
+eb
+98
+c0
+8c
+00
+ef
+e0
+80
+06
+67
+f0
+89
+61
+70
+89
+60
+2e
 20
 20
-47
-ff
+11
+b3
 6f
-e0
-cc
-40
-24
-5a
-03
-f1
+f0
+89
+60
+1f
+e1
+fe
+01
+67
+f0
+89
+60
+70
+89
+61
+04
 20
 20
-48
-06
+11
+b3
+70
+4c
+92
+00
+20
+60
+00
+00
+70
+4c
+92
+01
+20
+60
+00
+00
 6f
 e0
 cc
-40
+92
 24
-5a
+3a
 03
-f1
-20
+4d
 20
-48
-0c
-6f
-e0
-c8
-65
 20
-40
-16
-8b
-6f
-e2
-48
-3c
-98
-00
 12
-00
+3b
+70
+8a
+39
+5b
+70
+8a
+3a
+01
 20
-40
-21
-d5
-20
-40
-22
-43
-79
 20
+12
 2a
-00
-78
-2e
-fc
-00
-78
-30
-7c
-00
-78
-50
-fc
-00
-20
-40
-4c
-b5
-78
-5d
-7c
-00
-c5
-17
+6f
+f0
+89
 a2
-73
-c5
-16
-83
-b7
-19
-31
-7e
-00
-1f
-ec
+2f
+ef
 fe
+06
+79
+20
+fe
+07
+67
+e0
+c1
+e9
+6f
+f0
+89
+a3
+1f
+e1
+04
+0f
+18
+43
+84
 00
 1f
 f1
 fe
 00
-08
+98
+40
+84
 00
-86
-28
-c5
-17
+18
+4f
 a2
-5c
-20
-20
-22
-5c
+03
 6f
 e0
 c1
-f0
-1f
-e3
-72
-00
+e9
 20
-00
-00
-02
-c2
-00
+40
 03
-b9
-19
-31
+65
+1f
+e6
 7e
 00
-1f
-ec
+9a
+20
 fe
 00
 1f
-f1
-84
-00
-18
-42
-7e
-00
+e0
+ff
+f7
+1f
+e1
+7f
+ff
+2f
+ef
+fe
 08
+24
+20
+83
+63
+58
 00
-86
-08
-18
-42
-7e
 00
-08
 00
-86
-28
-20
-20
-03
-b5
-20
-40
-40
-8f
-20
-40
-03
-c6
-20
-20
-40
-98
-6f
+67
 e0
-c9
-23
-c1
-7f
 80
+19
+20
+60
 00
-6f
-e1
-4a
-c2
+00
+2f
+ef
+fe
+07
 24
-7a
+60
+80
 00
+d8
+40
+ff
 00
-6f
-e1
-48
-83
-24
-7a
+98
+41
+fe
 00
+20
+60
 00
-6f
-e1
-48
-87
-24
-7a
 00
+da
+20
+09
+9e
+d8
+40
 00
-6f
-e0
-cb
-a7
-24
-7a
+0c
+58
 00
 00
+30
+20
+40
+5e
+63
+20
+20
+60
+bf
+6a
+50
+8a
+12
+70
+8a
+12
+3d
+70
+8a
+11
+aa
+70
+8a
+0a
+0c
 6f
-e0
-cb
-c1
+f0
+8a
+09
+79
 20
-3a
-04
-3c
+7e
+07
 67
-e0
-cb
-a8
+f0
+8a
+09
+70
+8a
+0b
+04
 20
-60
 00
 00
+3c
+70
+8a
+16
+00
+70
+8a
+17
+06
 20
 40
-3e
-9b
-20
-40
-49
-56
-20
-40
-23
-2b
-20
-40
-25
-56
-20
-40
-47
-cd
+61
+1a
+67
+f0
+8a
+97
+70
+80
+dc
+03
 20
-40
-48
-be
+00
+00
+3c
+6f
+f0
+80
+53
+79
 20
-40
-04
-39
+7e
+07
+67
+f0
+80
+53
 20
-40
+00
 03
-fa
-20
-40
-40
-7c
-20
-40
+e8
+6f
+f1
+01
+50
+67
+e1
 44
-cc
+a2
+6f
+f0
+80
+53
+79
+3f
+fe
+07
+67
+f0
+80
+53
+70
+8a
+97
+00
+62
+50
+8a
+12
 20
-40
-04
-51
+60
+00
+00
+6f
+e0
+cb
+e2
+24
+5a
+78
+61
+70
+4b
+e2
+00
 20
-40
-44
-ff
 20
-40
-45
-04
+78
+51
+6f
+e0
+c8
+65
 20
 40
-45
+16
+8b
+6f
+e2
+48
+3c
+98
+00
 12
+00
 20
 40
-04
-68
+21
+d5
 20
 40
-45
-15
+22
+43
+79
 20
-40
-45
 2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
 20
 40
-45
-2d
-20
-40
-45
-32
+4c
+b5
+78
+5d
+7c
+00
+c5
+17
+a2
+73
+c5
+16
+83
+a2
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+c5
+17
+a2
+5c
 20
-40
-45
-35
 20
-40
-40
 22
-20
-40
-45
-47
-20
-40
-04
-29
-20
-20
-04
-6b
-6f
-e0
-cc
-46
-67
-e0
-cc
-47
+5c
 6f
 e0
-cc
-44
-67
-e0
-cc
-45
-20
-60
-00
+c1
+f0
+1f
+e3
+72
 00
-70
-4c
-41
-01
-70
-4c
-43
-01
-6f
-e0
-cc
-4b
-67
-e0
-cc
-4c
 20
-60
 00
 00
-70
-4c
-41
-01
-70
-4c
-4c
+02
+c2
 00
-70
-4c
-43
+03
+a4
+19
+31
+7e
 00
-20
-60
+1f
+ec
+fe
 00
+1f
+f1
+84
 00
-6f
-e0
-cc
-41
-20
-7a
+18
+42
+7e
 00
+08
 00
-6f
-e0
-cc
-43
-c0
+86
+08
+18
+42
+7e
 00
-84
-0a
-6f
-e0
-cc
-45
-24
-3a
-04
-02
-70
-4c
-41
+08
 00
+86
+28
 20
-60
-00
-00
+20
+03
+a0
 6f
 e0
-cc
-47
+c8
+64
 20
-3a
-04
-07
-1f
-e0
-ff
-ff
-67
-e0
-cc
-47
+40
+16
+8b
+6f
+e2
+48
+3c
+98
+00
+12
+00
 20
+40
+10
+b0
 20
-04
+40
 11
-70
-4c
-45
-00
-70
-4c
-41
-00
+61
+68
+48
+c8
+3a
 20
+40
+16
+c8
+6f
+f0
+89
+60
+79
 20
-04
-1d
-da
+7e
+03
+67
+f0
+89
 60
-4c
-4c
-da
+20
 40
-04
-0d
+21
+d5
+c5
+97
+83
+be
+78
+3c
+fc
+00
 20
+00
+00
+1e
 20
-31
-8a
-6f
-e0
-cc
-4b
-67
-e0
-cc
-4c
-6f
-e0
-cc
-4d
-c0
+40
+21
+d5
+78
+57
+fc
+00
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
 00
-84
-1d
-70
-4c
-4d
-01
 6f
-e0
-c9
+e1
+48
 38
-c0
+98
 00
-04
-17
-c0
+36
 00
+37
+c1
 84
-19
-c0
-01
-04
-1b
-20
-60
-00
 00
-68
-48
-cc
-48
-20
-20
-04
-1c
-68
-48
-cc
-49
-20
+24
+2c
+22
+3d
 20
-04
-1c
-68
-48
-cc
-4a
+40
+4c
+af
+c5
+17
+a1
+f6
 20
 20
-60
-69
-70
-4c
-4d
-00
+21
+f6
 6f
 e0
-c9
-38
-c0
+ca
+c5
+24
+7a
 00
-04
-23
-c0
 00
-84
-25
-c0
-01
-04
-27
 20
-60
-00
-00
-68
-48
-cc
-48
-20
-20
-60
-7f
-68
-48
-cc
-49
-20
-20
-60
-7f
-68
-48
-cc
-4a
-20
-20
-60
-7f
-6f
-e0
-cb
+40
+01
 ed
-c1
-7f
-80
-00
 6f
-e1
-4a
-b2
-20
+e0
+c8
+a7
+24
 7a
 00
 00
 6f
 e1
-4b
-be
-68
-49
-4a
-b2
-98
-46
-04
-00
-6f
+48
+a3
+1f
+e0
+fe
+01
+67
 e1
-4b
-ee
-98
-46
-7e
-00
-20
-21
-04
-37
-68
 48
-cb
-ed
+a3
 6f
 e0
-cc
+c8
+a4
+c2
+82
+26
+79
+20
 40
-c0
-00
+03
+ea
+6f
+e1
+4c
+67
+1f
 e0
-7f
-20
+fe
+01
+67
+e1
+4c
+67
 20
-60
-65
-68
-48
-cb
-ed
 20
-40
-60
-69
-da
-60
-4b
-a8
-da
-40
 04
-3c
-20
+41
+78
+57
+fc
+00
 20
-31
-8a
+40
+22
+46
 6f
 e0
-c9
-27
-c0
-01
 c8
-f2
+2c
 c0
-05
-c8
-f2
-6f
-e0
-c9
-23
-67
-e0
-c9
-2f
+00
+a2
+3f
+18
+00
+2a
+00
 6f
-e1
-4b
-c2
-67
-e1
-49
-30
-67
-e1
-49
-32
-da
-20
+e2
+48
+3c
+98
 00
+12
 00
+20
+40
+10
+b0
 68
 48
-c9
-92
-18
+80
+17
+20
+40
+11
+8f
+20
+40
+11
+a6
+20
 40
-84
-02
-18
-46
-7c
 03
+b9
 20
-41
-04
-4b
-24
-41
-04
-4f
+57
+83
+e7
+20
+60
+00
+00
+70
+8a
+0a
+00
+70
+8a
+0b
+00
 20
 20
+12
+9c
+68
 48
-ff
+c8
+a6
 6f
-e4
-4b
-ab
-c4
-0e
-00
+e0
+c8
+c6
+98
+46
+7c
 00
+24
+21
+26
+9c
 18
 40
 84
 01
-20
-60
-00
-00
-18
-40
-85
-fd
-20
 60
-00
-00
+48
+c8
+a6
 6f
 e0
-c9
-38
+c8
+c6
 c0
-00
-04
-57
+07
+83
+f6
 6f
-e4
-4b
-ab
-c4
-1a
-80
-00
-68
-48
-cb
-ca
-20
+e0
+c8
+a6
+c0
+0a
+26
+96
+c0
+0f
+26
+96
 20
-04
-5a
-6f
-e4
-4b
-ab
-c4
-19
-00
-00
-68
-48
-cb
-cb
 60
-48
-cb
-9d
-20
-40
-41
-15
-1f
-e1
-7e
-07
-68
-48
-cb
-9d
-98
-46
-7c
 00
-20
-22
-84
-61
-20
-20
-44
-eb
-20
-40
-04
-66
+00
 6f
 e0
-cb
-9f
-c1
-00
-80
-00
-70
-4b
-9f
-01
+c8
+a6
+c0
+05
+26
+96
+c0
+07
+a6
+96
 20
 60
 00
 00
-da
-40
-03
-06
-20
-20
-44
-f7
+c6
+1a
+00
+00
+c5
+13
+a4
+0e
+c6
+93
+00
+00
 6f
-e4
-4b
-ab
-c3
-9d
+e0
+c8
+a1
+c2
 80
-00
-20
-20
-45
-1f
-da
-60
-4a
-b2
-da
+a3
 40
-04
-6e
-20
-20
-31
-91
+c2
+81
+25
+80
 6f
 e0
-c9
-38
+c8
+bd
 c0
 00
+84
 03
-1d
 20
 20
-43
-1b
-6f
-e1
-47
-8c
-2f
-ef
-fe
-0b
+26
+21
 20
 40
-c5
-81
+22
+ea
+24
+34
+03
+fc
+20
+40
+26
+db
 6f
 e1
-47
-8c
-2f
-ef
+48
+be
+1f
+e0
 fe
-07
-20
-40
-c3
-22
-58
-00
-00
-00
+01
 67
 e1
-4a
-f2
+48
+be
+20
+20
+26
+21
 20
 40
-43
-14
+26
+31
+24
+34
+04
+57
+20
+40
+04
+3e
 6f
+e0
+cb
 e1
-47
-8c
-c2
-85
-84
-84
+24
+3a
+04
+13
 6f
 e4
-4b
-ab
-c3
-04
-04
-84
-68
-49
-49
-97
-18
-40
-84
-01
-60
-49
-49
-97
-60
-49
-43
-7b
-18
-0a
-7e
-00
+48
+b0
 67
-e0
-c3
-7a
+e4
+48
+5c
 6f
 e1
-ca
-c9
+48
+c2
 67
 e1
-c3
-7d
+48
+c4
 20
 40
-32
-25
+26
+bb
+24
+74
+00
+00
 6f
-e1
-47
-91
-67
-e1
-4a
-c2
+e0
+cc
+69
 70
+4c
+69
 00
-bd
-06
-58
+1f
+e6
+7c
 00
+24
+22
+84
+38
+68
+49
+4c
+67
+18
+46
+7c
 00
+20
+22
+84
+2e
+6f
+e2
+4c
+59
+20
+3a
+04
+2e
+68
+4a
+4c
+4e
+98
+46
+04
 00
-67
-e1
+60
 4a
-b2
-67
-e0
-cb
-77
-67
-e0
-ca
-c4
-67
-e0
-cb
-a7
-67
-e0
-ca
-ac
-d8
-e0
+4c
+6e
+24
+21
+04
+31
+6f
+e1
+c8
+ad
+98
+46
+7e
 00
-02
-20
+24
+21
+04
+3c
+d8
 40
+06
+00
+98
 46
-f0
+7c
+00
+24
+21
+04
+3c
+67
+e2
+4c
+6a
 20
 40
-46
-e4
+04
+35
 6f
-e0
-cb
-b3
-2f
-ef
-fe
-01
+e2
+4c
+6a
 20
 40
-c3
-df
-6f
-e0
-cb
-b3
-2f
-ef
-fe
-00
+7d
+aa
+60
+4a
+41
+60
 20
-40
-f8
-c4
 20
-40
-49
-8e
-6f
-e0
-cc
-40
-24
-3a
 03
-f1
-20
+0c
 20
-48
-cc
+40
+04
+35
 6f
-e0
-cb
-e2
-24
-5a
-78
-61
-70
-4b
-e2
-00
+e1
+c8
+ad
 20
 20
-78
-51
-6f
-e1
-03
-15
-1f
-e2
-0c
+04
+28
+18
+46
+04
 00
-ef
-e0
-80
-06
-67
-e0
-c5
-f5
-1f
+6f
 e1
-04
-0f
-1f
-f1
+c8
+ad
+98
+40
 fe
 00
-c0
-04
-84
-a9
 20
 20
-4d
-93
-da
-20
+04
+28
+58
 00
-01
-20
-40
-4d
-c0
-6f
-e1
-44
-dc
-e7
-e1
 00
-05
-58
 00
+67
+e2
+4c
+6e
+20
+60
 00
 00
-e7
-e0
-80
-05
-70
-09
-50
-01
 6f
-e0
-c4
 e2
-79
-20
-7e
-06
-67
-e0
-c4
-e2
-70
-09
-5b
-12
+4c
+59
+68
+4a
+4c
+6e
+98
+40
+fe
+00
 20
 20
-78
-71
-6f
-e0
-c3
-dd
-1f
-e0
-fe
+04
+1e
+70
+4c
+69
 01
-67
-e0
-c3
-dd
-c0
-06
-16
-5a
 20
-40
-19
-1b
+60
+00
+00
+70
+48
+a6
+00
+58
+00
+00
+00
+67
+e1
+4c
+67
 20
 40
-19
-6a
+03
+d9
 6f
 e0
-82
-bd
+c8
+2c
+c0
+00
+a6
+51
+24
+2c
+03
+ca
+24
+37
+83
+ca
 20
 40
-16
-8b
+04
+7f
 20
 40
-18
-38
-20
+26
+72
 20
-16
-55
-ef
-e1
-00
-06
-c0
-02
+40
 04
-c2
+4a
 20
 20
-19
-e4
-ef
-e1
-80
-06
-67
+26
+51
+6f
+e0
+cb
 e1
-c4
-36
-c0
-05
-04
-c7
-c0
-09
+24
+5a
 04
-d6
+4e
+70
+4b
+e1
+00
 20
+60
+00
+00
 20
-1c
-d3
+40
+41
+aa
 6f
 e4
 4b
 ab
-c3
-1d
-9d
-e7
+c4
+1e
+00
+00
+6f
+e0
+c9
+13
+d8
+40
+00
+40
 20
 40
-1e
-8d
-68
-49
-44
-37
+60
+93
 6f
 e0
-c3
-c0
-c2
-81
-84
-d1
+c9
+14
+d8
+40
+00
+40
+20
+20
+60
+93
 6f
-e1
-44
-37
-c0
-18
-1e
+e0
 c8
-68
-49
-44
-37
-20
+a7
 20
-1d
-eb
+5a
+04
+65
 6f
-e1
-43
-d1
-98
-46
-7c
+e0
+c8
+bd
+c1
+00
+80
 00
-24
-22
-84
-cd
-24
-34
-04
-cd
 20
+40
+26
+9f
 20
-1e
-10
-18
-c2
-22
+40
+26
+bb
+24
+74
+00
 00
-6f
-e1
-43
-d4
-1f
-e0
-a5
-fd
 20
 40
-1a
-25
-6f
-e0
-ca
+26
+c4
+70
+4c
+69
+00
+20
+40
+04
 c1
-c0
-7f
-9e
-73
 6f
 e0
-ca
-c7
-20
-3a
-1e
-73
+cb
+e1
+24
+5a
+3e
+33
 6f
+e2
+48
+5c
+20
+20
+26
+b8
+70
+48
+36
+01
+70
+48
+a7
+01
+20
+40
+26
+42
+67
 e0
-cb
-75
-c2
-80
-9e
-73
+c7
+c6
 58
 00
 00
-1a
-68
-49
-44
-37
-98
-46
-7c
 00
-24
+67
+e3
+c7
+c7
+6f
+e2
+48
+a9
+67
+e2
+47
+ce
+70
+48
+35
+0c
+6f
+e0
+c8
+36
+79
+20
+7e
+03
+67
+e0
+c8
+36
+20
+40
 22
-9e
-73
+91
 20
 20
-1e
-10
+04
+0c
 6f
 e0
 cb
@@ -5064,2051 +4608,3383 @@
 60
 00
 00
-78
-54
-7c
-00
-58
-00
+6f
+e0
+c8
+bd
+c0
 00
+84
+bd
+6f
+e0
+cc
+52
+20
+3a
+04
+bd
+1b
+22
+7e
 00
+68
+4b
+4c
+53
 67
 e3
-48
-d1
+4c
+53
 20
 40
-42
-40
-58
+7d
+95
+67
+e2
+4c
+59
+6f
+e0
+cc
+69
+24
+7a
 00
 00
-89
-20
-40
-5b
-0c
-20
-40
-40
-8e
-20
-40
-3f
-7e
-20
-40
-3f
-83
-20
-40
-05
-17
 6f
-e0
-c8
-d0
-1f
 e1
-7e
-1f
+4c
 67
-e0
-c8
-d0
 24
-34
-47
-28
-20
-40
-05
-01
-20
-20
-45
-44
-6f
-e0
-c9
-27
-c1
-01
-80
+7a
 00
-20
-20
-47
-1a
-20
+00
+6f
+e2
+4c
+59
+68
+4a
+cc
+5d
+98
 40
-3f
-65
+fe
+00
+67
+e2
+cc
+5d
+68
+48
+cc
+52
 6f
 e0
-c9
-27
-c0
-05
-85
-08
-20
-20
-42
-38
+cc
+62
+98
+46
+7c
+00
 20
+22
+84
+97
+18
 40
-05
-0e
-da
+84
+01
 60
-4b
-e3
-20
+48
+cc
+52
 20
-42
-3a
+60
+00
+00
+70
+4c
+52
+01
+d8
+40
+00
+00
 6f
-e0
-c9
-27
-c0
-05
-85
-0e
-20
-20
-42
-32
-58
+e2
+cc
+5d
+60
+4a
+cc
+5d
+68
+48
+cc
+62
+98
+46
+fc
 00
-97
-06
-20
-20
-42
-33
-20
-40
-41
-a7
 20
 40
-3f
-65
+7d
+ef
+18
+07
+a2
+00
 6f
-e0
-c9
-27
-c0
-05
+e2
+4c
+4e
+68
+48
+cc
+63
+98
+46
+04
+00
+18
+40
 85
-15
-20
+d8
+1a
+22
+7e
+00
+98
+46
+7e
+00
 20
-42
-3e
-58
+21
+04
+b1
+1f
+e6
+7e
 00
 1f
-06
-20
-20
-5b
-0c
-20
+eb
+7e
+00
+68
+49
+c8
+ad
+98
 40
-05
-53
-6f
-e0
-cc
-37
-24
-3a
-05
-6a
+84
+00
 6f
-e0
+e1
 cc
-32
-24
-3a
-05
-69
-20
-40
-05
-1e
+64
+da
 20
+18
+00
+9a
 20
-40
-dd
-6f
-e0
-cb
-e1
+fe
+00
+98
+46
+7c
+00
 24
-5a
-41
 21
-da
+04
+bb
+60
+49
+c8
+ad
 20
+60
 00
 00
+1f
+eb
+04
+00
+6f
+e1
+c8
+ad
+98
+46
+04
+00
+6f
+e1
+cc
+64
+da
 20
-40
-05
+18
+00
+9a
 26
+7e
+00
+98
+46
+7c
+00
 20
-40
-05
-35
+21
+04
+bb
+60
+49
+c8
+ad
 20
-40
-05
-42
+60
+00
+00
+67
+e1
+c8
+ad
 20
-40
-05
+60
+00
+00
+70
+4c
+52
+01
+1b
+22
+7e
+00
+67
+e3
+4c
 53
 20
-20
-41
-1e
-6f
+60
+00
+00
+58
+00
+00
+00
+67
 e0
-c9
-18
-20
-40
-05
-4f
+cc
+52
+67
+e2
+cc
+5d
 20
-40
-41
-24
-68
+60
+00
+00
+70
 48
-c9
-18
-20
-40
-3f
-56
+8b
+00
 6f
+e1
+4b
+eb
+1f
 e0
-c9
-19
-20
-40
-05
-4f
-20
-40
-41
-2a
-68
-48
-c9
-19
-20
-40
-3f
-56
-6f
-e0
-c9
-1a
-20
-40
-05
-4f
-20
-40
-41
-30
-68
-48
-c9
-1a
-20
-20
-3f
-56
-6f
-e0
-c9
-0d
-c1
-7f
-80
-00
-70
+fe
+01
+67
+e1
 4b
-96
-03
+eb
 6f
 e0
 cb
-91
+eb
 1f
-e2
-26
+e1
+7e
+ff
+24
+7a
+00
 00
-68
-48
-c9
-0d
 6f
 e0
-c9
-10
+c8
+7f
 c0
 7f
-85
-3e
+a3
+8e
+c0
+00
+84
+d3
+c0
+01
+04
+d5
+c0
+01
+84
+db
+c0
+02
+04
+e1
 20
+60
+00
+00
+70
+47
+c6
+ff
 20
-41
-3e
+20
+04
+e2
 6f
 e0
-c9
-0d
+c8
+5b
 20
-40
-05
-51
-68
+3a
+04
+d9
+6f
+e2
 48
-c9
-0d
+a9
+20
+40
+22
+dc
+70
+47
+c6
+aa
 20
 20
-41
-4b
+04
+e2
+70
+47
+c6
+55
 6f
 e0
-c9
-0e
-c1
-7f
-80
-00
-70
-4b
-96
+c8
+5b
+20
+3a
 04
+e2
 6f
-e0
-cb
-92
-1f
 e2
-26
-00
-68
 48
-c9
-0e
-6f
-e0
-c9
-10
-c0
-7f
-85
-4b
+91
+67
+e2
+47
+c8
 20
 20
-41
-57
+04
+e4
+70
+47
+c6
+22
+6f
+e2
+48
+a9
+67
+e2
+47
+c8
 6f
 e0
-c9
-0e
-20
-40
-05
-51
-68
+c8
+36
+1f
+e1
+7e
+07
+67
+e0
+c7
+c7
+70
+47
+cc
+00
+70
 48
-c9
-0e
+35
+07
 20
+40
+22
+91
 20
-41
-64
-d8
 40
-00
-3f
+03
+d9
 20
 20
+23
 60
-93
+6f
+e1
+48
+89
 d8
 40
+01
+f8
+98
+41
+7e
 00
-3e
 20
+3a
+04
+f4
+6f
+e1
+48
+89
+1f
+e0
+fe
+01
+67
+e1
+48
+89
 20
 60
-93
-da
-40
 00
 00
-6f
-e0
-cc
-38
-c1
-7f
-80
-00
-6f
-e0
-cc
-39
+20
+40
+25
+9a
+20
+40
+03
+d9
 24
-3a
+2c
 05
-60
-68
-48
-cc
-38
+0d
+24
+37
+85
+0d
 20
 40
-3f
-56
+26
+72
+6f
+e2
+48
+77
 68
+4a
 48
-cc
-38
-20
-40
-60
-59
-79
-20
-a4
-00
-1a
-42
-7e
+3c
+98
+46
+7c
 00
-67
-e0
-cc
-37
 20
-60
-00
+22
+a3
+2e
+6f
+e2
+48
+a9
+68
+4a
+48
+3c
+98
+46
+7c
 00
+20
+42
+85
+09
 6f
 e0
-cc
-38
+c8
+a1
 79
 3f
 fe
-07
+02
 67
 e0
-cc
-38
-68
+c8
+a1
+58
+00
+00
+00
+67
+e1
 48
-cc
-38
-20
-40
-3f
-54
-68
+83
+67
+e1
 48
-cc
-38
+89
+67
+e1
+48
+87
 20
-40
-60
-59
-7d
 20
-a4
+25
+95
+6f
+e2
+48
+0c
+20
+7a
+00
 00
+67
+e2
+48
+91
 20
 20
-05
-5d
+25
+7e
+6f
+e0
+c8
+8c
+20
+3a
+22
+cb
+6f
+e1
+48
+89
+1f
+e0
+fe
+01
+67
+e1
+48
+89
+6f
+e0
+c8
+8a
+2f
+ef
+fe
+01
+6f
+e0
+c8
+8b
+c0
+00
+a5
+ad
+c0
+01
+25
+af
+c0
+01
+a5
+b1
 c0
 02
 05
-82
+1a
+20
+20
+25
+6e
+20
+20
+a5
+75
+20
+20
+23
+39
 20
 40
-05
-85
-6f
-e2
-4c
-33
+45
+44
 d8
-40
+e0
 00
-a0
-98
+01
+20
 40
-84
-00
-1c
-42
-7e
-00
-98
 46
-7c
-00
-24
-61
+f4
+6f
+e0
+cc
+40
+c0
 00
+48
+59
+20
+40
 00
+de
+20
+20
+48
+5a
+6f
+e2
+48
+3c
 67
 e2
-4c
-33
+48
+91
+67
+e2
+49
+93
+20
+40
+25
+7e
 6f
 e0
 cc
-32
+40
 c0
 00
 05
-78
-c0
+2b
+20
+40
 00
-85
-7b
-c0
-01
-05
-7e
-c0
-01
-85
-80
+de
 20
-60
-00
-00
-70
-4c
-32
-01
-70
-48
-d0
-01
 20
+05
+2c
 20
-7e
-54
-70
-4c
-32
-02
-70
+40
 48
-d0
-00
-20
+c6
 20
-7e
-54
-70
-4c
-32
-03
+40
+45
+44
 20
 20
+48
+4e
+6f
+e0
+c8
+a5
+24
+3a
 05
-79
-70
-4c
-32
-00
+59
+6f
+e0
+c8
+8b
+c0
+01
+05
+35
+c0
+02
+05
+4d
+c0
+01
+85
+52
 20
 20
+48
+39
+6f
+e4
+4b
+ab
+c2
+97
+85
+3e
+c2
+98
 05
-7c
-70
-4c
-32
-00
-70
+3e
+c3
+1d
 48
-d0
-00
-20
-60
-00
-00
+06
+6f
+e2
+49
+93
 68
 4a
-4c
-33
-1c
-42
-7e
-00
+49
+74
 98
 46
 7c
 00
-24
-41
-05
-8a
 20
-60
-00
-00
-58
-00
-00
-00
-67
-e2
-4c
-33
+22
+85
+42
 20
-60
-00
-00
 20
+48
+06
+6f
+e0
+cc
 40
-49
-90
+c0
+00
+48
+11
 20
 40
-79
-36
+00
+d9
 20
-40
-05
-92
+20
+48
+12
+70
+48
+8b
+00
+d8
+e0
+00
+01
 20
 40
-05
-a6
+46
+f0
+58
+00
+00
+00
+67
+e1
+48
+87
 20
+40
+45
+76
 20
-46
-4f
-6f
-e4
-4b
-ab
-c2
-97
 40
-36
+49
+8e
 6f
 e0
-c9
-0f
-c1
-7f
-80
-00
-da
-20
-00
+cc
+40
+c0
 00
-70
-4b
-96
-05
-68
 48
-c9
-0f
+2d
 20
 40
-05
-9b
+00
+d9
 20
 20
-40
-2f
+48
+2e
 6f
 e4
 4b
 ab
-c2
-96
-40
-48
+c3
+17
+85
+57
 6f
 e0
 cb
-93
-1f
-e2
-26
-00
-6f
-e0
-c9
-10
+b4
 c0
-7f
+00
 85
-a2
-20
+57
 20
-40
-3f
-6f
-e0
-c9
-0f
 20
-40
-05
-51
-68
 48
-c9
-0f
-20
-20
-41
-95
+1a
 6f
 e4
 4b
 ab
-c4
-1e
-80
-00
-6f
-e0
-cc
-3a
-24
-3a
+c3
+17
+85
+57
+c2
+89
+85
+57
+c2
+89
 05
-af
-6f
-e0
-cc
-3b
+57
 20
-40
-05
-4f
 20
-40
-05
-bf
-68
 48
-cc
-3b
-20
-20
-3f
-56
+12
 6f
-e0
-cc
-3b
-79
-3f
-fe
-07
-67
-e0
-cc
-3b
-20
-40
-05
-51
+e4
+4b
+ab
+c3
+1e
+48
+39
 70
-4c
-3f
-00
-68
 48
-cc
-3b
-6f
-e0
-cc
-3c
-20
-40
-05
-d8
+a5
+00
 20
 40
-05
-c3
-68
+26
+52
+5f
+ff
+ff
+ff
+67
+e2
 48
-cc
-3b
-20
-20
-3f
-56
-20
-40
-3f
-56
-6f
-e0
-cc
-3d
-c1
+5c
+58
+00
 00
-80
 00
+67
+e3
+c8
+d0
 70
-4c
-3d
+4b
+e1
 01
 20
-20
 40
-69
-70
-4c
-3f
-00
-68
-48
-cc
-3b
-6f
-e0
-cc
-3c
+01
+53
 20
-40
-05
-ce
-67
-e0
-cc
-3c
-6f
-e0
-cc
-3e
 20
-3a
-05
-ca
-6f
-e0
-cc
-3d
-c1
+04
+5c
+5e
+2f
+aa
+55
+40
 00
-80
 00
-70
-4c
-3d
-01
-20
-20
 40
-69
-6f
-e0
-cc
-3d
-c1
+01
 00
 00
 00
-70
-4c
-3d
 00
-20
-60
 00
 00
-1f
-e3
-fe
 00
-1f
-e2
-24
 00
-20
-40
-60
-59
-79
-20
-a4
 00
-1a
-41
-7e
-07
-68
-48
-cc
-3f
-18
-42
-0e
 00
-c0
-03
-85
-e3
-c0
 00
-05
-e5
-20
-60
 00
 00
-1f
-e3
-fe
 00
-1f
-e2
-24
 00
-20
-40
-3f
-54
-20
+38
+1c
+00
+00
+00
 40
-60
-59
-79
-20
-a4
 00
-1a
-41
-7e
-07
-68
-48
-cc
-3f
-18
+00
+98
+d6
+53
 42
-0e
 00
-c0
-03
-85
-e3
-c0
 00
-05
-e5
-20
-60
 00
 00
-70
-4c
-3e
-01
-20
-60
-00
-00
-70
-4c
-3e
 00
-20
-60
 00
 00
-20
-40
-40
-72
-20
-74
 00
 00
-6f
-e0
-c9
-92
-1f
-e2
-04
 00
-6f
-e4
-4b
-ab
-c2
-9e
-85
-f3
 18
-42
-7e
 00
-1f
-e0
-fe
-01
-1f
-e1
-7e
-03
-67
-e0
-c9
-92
-20
-40
-40
-95
-20
-20
-45
-ee
-6f
-e0
-cc
-3e
-24
-3a
-06
-10
-6f
-e4
-4b
-ab
-c2
-8e
-06
-04
-18
-42
-7e
 00
-c1
 00
-80
 00
-c0
 00
-06
 00
-c0
-01
-05
-fe
-20
-60
 00
 00
-58
 00
+80
 00
-02
-20
-20
-05
-f0
-58
 00
 00
 00
-20
-20
-05
-f0
-58
 00
 00
-01
-20
-20
-05
-f0
-58
 00
 00
-03
-20
-20
-05
-f0
-18
-42
-7e
 00
-c1
 00
-80
+60
+06
+16
 00
-c0
 00
-06
+aa
+55
+04
 00
-c0
-01
-06
-02
-c0
+7a
+41
+88
+16
+ce
+0d
+aa
+55
 01
-85
-fe
-20
-60
-00
 00
+c5
+40
 18
-42
-7e
-00
-c1
+aa
+55
 01
 00
+e8
+41
+01
+aa
+55
+01
 00
-c0
+ef
+41
+ff
+aa
+55
+02
 00
-06
+ca
+40
+ef
+41
+aa
+55
 02
-c0
 00
-85
-fe
-c0
+79
+44
+80
+1f
+aa
+55
 01
-85
-fc
-20
-60
-00
-00
-6f
-e4
-4b
-ab
-c2
-8e
-06
-0a
-18
-42
-7e
 00
-c1
+83
+44
+80
+aa
+55
 01
 00
+d0
+44
 00
-c0
-00
-05
-fc
-c0
+aa
+55
+01
 00
-85
-fe
-20
-60
+ea
+41
+ff
+aa
+55
+01
 00
+ee
+41
 00
-6f
-e0
-c8
-bd
-c0
+aa
+55
+01
 00
 86
+44
+ff
+aa
 55
-6f
-e0
-cc
-52
-20
-3a
-06
+02
+00
+99
+40
+01
+08
+aa
 55
-1b
-22
-7e
+08
 00
-68
+ab
 4b
+04
+09
+4a
+01
+01
+80
+03
+03
+aa
+55
+0c
+00
+fe
+48
+b0
+04
+58
+02
+64
+64
+94
+75
+85
+63
+75
+80
+aa
+55
+03
+00
+0d
+49
+0b
+0c
+0d
+aa
+55
+01
+00
+3b
 4c
-53
-67
-e3
-4c
-53
-20
-40
-7d
-95
-67
-e2
-4c
-59
-6f
-e0
-cc
-69
-24
-7a
+ff
+aa
+55
+14
 00
+10
+49
+ff
+ff
+ff
+05
+04
+ff
+ff
+08
+0b
+0c
+0d
+ff
+ff
+ff
+ff
+07
+06
+ff
+ff
+ff
+aa
+55
+01
 00
-6f
-e1
+38
 4c
-67
+ff
+aa
+55
+03
+00
 24
-7a
+49
+03
 00
 00
-6f
-e2
-4c
-59
-68
-4a
-cc
-5d
-98
-40
-fe
+aa
+55
+03
 00
-67
-e2
-cc
-5d
-68
-48
-cc
-52
-6f
-e0
-cc
-62
-98
-46
-7c
+ed
+4b
+ff
+58
+02
+aa
+55
+01
 00
-20
-22
-86
-2f
-18
 40
-84
-01
-60
-48
-cc
-52
-20
-60
+4c
 00
+aa
+55
+01
 00
-70
+42
 4c
-52
+00
+aa
+55
 01
-d8
-40
 00
+44
+4c
+00
+aa
+55
+01
 00
-6f
-e2
-cc
-5d
-60
-4a
-cc
-5d
-68
-48
-cc
-62
-98
 46
-fc
-00
-20
-40
-7d
-ef
-18
-07
-a2
+4c
+14
+aa
+55
+01
 00
-6f
-e2
+4b
 4c
-4e
-68
+03
+aa
+55
+03
+00
 48
+4c
+ff
+ff
+ff
+aa
+55
+12
+00
 cc
-63
-98
-46
+4b
+00
+05
+00
 04
 00
-18
-40
-85
-d8
-1a
-22
-7e
 00
-98
-46
-7e
 00
-20
-21
-06
-49
-1f
-e6
-7e
 00
-1f
-eb
-7e
 00
-68
-49
-c8
-ad
-98
-40
-84
 00
-6f
-e1
-cc
-64
-da
-20
-18
 00
-9a
-20
-fe
 00
-98
-46
-7c
 00
-24
-21
-06
-53
-60
-49
-c8
-ad
-20
-60
 00
 00
-1f
-eb
-04
 00
-6f
-e1
-c8
-ad
-98
-46
-04
 00
-6f
-e1
-cc
-64
-da
-20
-18
 00
-9a
-26
-7e
+aa
+55
+02
 00
-98
-46
-7c
+b3
+4b
+03
+01
+aa
+55
+08
 00
-20
-21
-06
-53
-60
+38
 49
-c8
-ad
-20
-60
 00
+34
+ff
+ff
+ff
+ff
+ff
+ff
+aa
+55
+07
 00
-67
-e1
-c8
-ad
-20
+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
+00
+40
+0a
 60
+06
+0a
 00
+64
 00
 70
-4c
-52
+17
+14
+0a
+90
 01
-1b
-22
-7e
+e8
+03
+90
+01
+aa
+55
+02
 00
-67
-e3
-4c
-53
-20
-60
+ca
+4b
+07
+06
+aa
+55
+01
 00
+c0
+49
+02
+aa
+55
+01
 00
-58
+fd
+48
+02
+aa
+55
+01
 00
+a1
+44
+05
+aa
+55
+06
 00
+e3
+48
+0f
+01
+a2
 00
-67
-e0
-cc
-52
-67
-e2
-cc
-5d
-20
-60
+b4
 00
+aa
+55
+0a
 00
-6f
-e1
-47
-8c
-c3
-85
-80
+eb
+48
+10
 00
-c3
-83
-80
+52
 00
-c3
-83
+35
 00
+21
 00
-20
-40
-06
-77
-20
-40
-06
-74
-60
-48
-c8
-c7
-20
-40
-06
-69
-6f
-e0
-cc
-92
-24
-3a
-06
-72
-68
-48
-c8
-c7
-20
-20
-26
-f6
-c6
-93
+25
 00
+aa
+55
+01
 00
-6f
-e2
-48
-91
-68
-4a
+f7
 48
-8d
-98
-46
-7c
+0a
+aa
+55
+02
 00
-20
-22
-86
-70
-70
-4c
-92
+c8
+4b
+64
 00
-20
-60
+aa
+55
+03
 00
+de
+4b
 00
-70
-4c
-92
-01
-20
-60
 00
 00
-70
-41
-e8
 aa
-20
-60
+55
+01
+00
+ab
+4a
+ff
+aa
+55
+01
 00
+e2
+4b
+01
+aa
+55
+0c
 00
-da
+d0
+49
+03
+04
+01
+02
 20
-4c
-88
+2a
+3f
+15
+14
+1b
+11
+0e
+aa
+55
+b2
+00
 df
-e0
+49
+09
+5a
+26
+34
+19
+04
+09
 00
-0a
-20
-20
-25
-cd
-20
-40
-06
+ff
+ff
+09
+5a
+0d
+f0
+1d
+e3
 7d
-da
-40
-4c
-82
-6f
-e0
-c8
+d2
+ff
+ff
+09
+5a
+0d
+10
+1d
+ed
 7d
-1f
-e0
-fe
-01
-1f
-e2
-72
-00
-20
-20
-06
 80
-d8
-c0
-4c
-72
-d8
-a0
-4c
-82
-20
-20
-7d
-0c
-1f
-20
-f3
 ff
-1f
-22
-7e
-00
-20
-7a
-00
-00
-1f
-22
-22
-00
-1a
-20
-a3
 ff
-1a
+1b
+35
+28
+b4
+29
+46
+2a
+96
+2b
+8c
+2c
+6e
+2d
+64
+38
+5f
+39
+0f
+3a
+32
+3b
+47
 42
-0c
-00
-ef
-e0
-80
-06
-18
-c2
-0a
-00
-e8
-40
-80
-06
-98
+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
-20
-40
-06
-90
-18
-c0
-8d
 ff
-1a
-20
-a3
 ff
-20
-21
-06
-86
-c2
+09
+5a
+ff
+27
+ab
+40
+be
+d1
+a0
+41
+a1
+12
+a5
+84
+a7
+ff
+b5
+d0
+b6
 00
-06
-83
-20
-60
+ff
 00
+09
 00
-20
+ff
+ff
+09
+5a
+0d
+10
+0e
+c5
+5b
+9a
+10
+38
+11
+42
+28
+28
 41
-06
-92
-20
-60
+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
-18
-a0
-8b
 ff
-e0
-40
-80
-05
-e7
-e0
-80
-05
-20
+ff
+09
+a5
+46
+34
 60
+07
+69
+04
+7d
+20
+7e
 00
+09
 00
-b1
-33
+ff
+ff
 aa
 55
-40
-00
+08
 00
-40
+a3
+4a
+09
+5a
+0b
+f3
 09
 00
+ff
+ff
+aa
+55
+08
 00
+e3
+4b
+09
+a5
+0b
+f3
+09
 00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-00
-38
-1c
-00
-80
-00
-40
-01
-00
-98
-d6
-53
-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
-60
-06
-36
-00
-00
+ff
+ff
 aa
 55
 01
 00
-9a
-40
-08
+65
+48
+02
 aa
 55
-03
+01
 00
-7a
-41
-88
-16
-ce
+64
+48
+02
 aa
 55
 01
 00
-c5
-40
-18
+36
+48
+01
 aa
 55
 01
 00
-ef
-41
-ff
+a8
+48
+06
 aa
 55
 02
 00
-ca
-40
-ef
-41
+38
+48
+c0
+12
 aa
 55
-01
+03
 00
-7d
-41
-0d
+54
+48
+19
+19
+1c
 aa
 55
-01
+10
 00
-d0
-44
+40
+48
 00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
 aa
 55
 01
 00
-ea
-41
-ff
+5b
+48
+00
 aa
 55
-01
-00
-ee
-41
+05
 00
+77
+48
+20
+15
+10
+05
+4e
 aa
 55
-08
+05
 00
-ab
-4b
-04
-09
-4a
-01
+8c
+48
 01
-80
-03
-03
+0f
+0f
+0f
+0f
 aa
 55
-0c
+06
 00
-fe
+ad
 48
-b0
-04
-58
-02
-64
-64
-94
-75
-85
-63
-75
-80
-aa
-55
-03
-00
-0d
-49
-0b
 0c
-0d
-aa
-55
-01
+f8
 00
-3b
-4c
-ff
-aa
-55
-14
 00
-10
-49
-ff
-ff
-ff
-05
-04
-ff
-ff
-08
-0b
-0c
-0d
-ff
-ff
-ff
-ff
-07
-06
-ff
-ff
-ff
-aa
-55
+77
 01
-00
-38
-4c
-ff
 aa
 55
 03
 00
-24
-49
-03
-00
-00
-aa
-55
-03
+5c
+48
 00
-ed
-4b
-ff
-58
-02
+48
+60
 aa
 55
 01
 00
-40
-4c
-00
+7d
+48
+0f
 aa
 55
-01
+02
 00
-42
+99
+48
+72
 4c
-00
 aa
 55
 01
 00
-44
-4c
-00
+ca
+48
+80
 aa
 55
-01
+02
 00
-46
-4c
+c2
+48
 14
-aa
-55
-01
 00
-4b
-4c
-03
 aa
 55
-03
+02
 00
+c0
 48
-4c
-ff
-ff
-ff
-aa
-55
-01
+50
 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
+03
 00
+b8
+48
 00
+a6
+0e
 aa
 55
 01
 00
-99
-40
-01
-aa
+62
+4c
+10
 55
-02
-00
-b3
-4b
-03
-01
+aa
 aa
 55
-08
-00
-38
-49
-00
-34
+04
+21
+db
+54
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
 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
@@ -7131,921 +8007,36 @@
 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
-0f
-01
-a2
-00
-b4
-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
-16
-a2
-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
-3b
-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
-b2
-00
-df
-49
-09
-5a
-26
-34
-19
-04
-09
-00
 ff
 ff
-09
-5a
-0d
-f0
-1d
-e3
-7d
-d2
 ff
 ff
-09
-5a
-0d
-10
-1d
-ed
-7d
-80
 ff
 ff
-1b
-35
-28
-b4
-29
-46
-2a
-96
-2b
-8c
-2c
-6e
-2d
-64
-38
-5f
-39
-0f
-3a
-32
-3b
-47
-42
-10
 ff
 ff
-54
-2e
-55
-f2
-61
-f4
-63
-70
-75
-52
-76
-41
-77
-ed
-78
-23
-79
-46
-7a
-e5
-7c
-48
-7e
-77
-7f
-01
-0b
-00
-7f
-00
-09
-00
 ff
 ff
-09
-5a
 ff
-27
-ab
-40
-be
-d1
-a0
-41
-a1
-12
-a5
-84
-a7
 ff
-b5
-d0
-b6
-00
 ff
-00
-09
-00
 ff
 ff
-09
-5a
-0d
-10
-0e
-c5
-5b
-9a
-10
-38
-11
-42
-28
-28
-41
-23
-49
-39
-4a
-b0
-4b
-a0
-4c
-90
-4d
-70
-09
-00
 ff
 ff
-09
-5a
-06
-02
-09
-69
-0d
-48
-0e
-9f
-0f
-ba
-09
-00
 ff
 ff
-09
-a5
-46
-34
-60
-07
-69
-04
-7d
-20
-7e
-00
-09
-00
 ff
 ff
-aa
-55
-08
-00
-a3
-4a
-09
-5a
-0b
-f3
-09
-00
 ff
 ff
-aa
-55
-08
-00
-e3
-4b
-09
-a5
-0b
-f3
-09
-00
 ff
 ff
-aa
-55
-02
-00
-8d
-44
-2d
-49
-aa
-55
-01
-00
-8c
-44
-01
-aa
-55
-01
-00
-65
-48
-02
-aa
-55
-01
-00
-64
-48
-02
-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
-0f
-aa
-55
-02
-00
-99
-48
-72
-4c
-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
-01
-00
-62
-4c
-10
-f8
-9f
 ff
 ff
 ff
@@ -8188,5 +8179,14 @@
 ff
 ff
 ff
-30
-1b
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+c2
+85
Index: output/memmap.format
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/output/memmap.format	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/output/memmap.format	(working copy)
@@ -2262,7 +2262,7 @@
 0x4c72 mem_mouse_end
 0x4c72 mem_mouse_rssi_signal_buf_patch
 0x4c82 mem_mouse_rssi_signal_buf_temp
-0x4c92 mem_g24_fast_conn_enable
+0x4c92 mem_soft_agc_en
 0x4c93 mem_xtal_cache
 0x4c94 mem_device_uart_tx_gpio
 0x4c95 mem_device_uart_rx_gpio
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/output/program.lis	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/output/program.lis	(working copy)
@@ -1,2217 +1,1829 @@
               include "bt_format "
               org 0x0000
-0000 c284001d bbit1 8 ,pf_patch_ext 
-0001 c000002e beq patch00_0 ,p_soft_reset 
-0002 c001804b beq patch00_3 ,p_main_loop 
-0003 c0418064 beq patch10_3 ,p_set_sync_on 
-0004 c042006b beq patch10_4 ,p_set_freq_rx 
-0005 c042806f beq patch10_5 ,p_rf_rx_enable 
-0006 c0450098 beq patch11_2 ,p_txon_next 
-0007 c04580ce beq patch11_3 ,p_initialize_radio_cont 
-0008 c046007e beq patch11_4 ,p_save_rssi 
-0009 c04f80db beq patch13_7 ,p_init_param 
-000a c05700f0 beq patch15_6 ,p_app_init 
-000b c05800c2 beq patch16_0 ,p_app_evt_100ms_loop 
-000c c061838e beq patch18_3 ,p_mouse_start_work 
-000d c0620048 beq patch18_4 ,p_mouse_start_reconnect_device 
-000e c0638251 beq patch18_7 ,p_mouse_app_enter_hibernate 
-000f c0648257 beq patch19_1 ,p_mouse_setgpio_hibernate 
-0010 c065028c beq patch19_2 ,p_mouse_lpm_before_common 
-0011 c06600be beq patch19_4 ,p_mouse_adc_read_start 
-0012 c06704f1 beq patch19_6 ,p_mouse_motion 
-0013 c06785e7 beq patch19_7 ,p_mouse_dpi_process 
-0014 c06803c3 beq patch1a_0 ,p_mouse_seting_dpi 
-0015 c068851e beq patch1a_1 ,p_mouse_check_key_gpio 
-0016 c06a0504 beq patch1a_4 ,p_mouse_sensor_poweron 
-0017 c06b02b1 beq patch1a_6 ,p_mouse_priority_bb_event 
-0018 c06c83d4 beq patch1b_1 ,p_mouse_bb_event_timer 
-0019 c06d0471 beq patch1b_2 ,p_mouse_start_discovery 
-001a c06f058d beq patch1b_6 ,p_mouse_idle 
-001b c07404a1 beq patch1d_0 ,p_hid_rx_process 
-001c 2020137c branch loop 
+0000 c2840018 bbit1 8 ,pf_patch_ext 
+0001 c00002ef beq patch00_0 ,p_soft_reset 
+0002 c041832c beq patch10_3 ,p_set_sync_on 
+0003 c0420333 beq patch10_4 ,p_set_freq_rx 
+0004 c0428337 beq patch10_5 ,p_rf_rx_enable 
+0005 c045034a beq patch11_2 ,p_txon_next 
+0006 c045831f beq patch11_3 ,p_initialize_radio_cont 
+0007 c0460350 beq patch11_4 ,p_save_rssi 
+0008 c0570023 beq patch15_6 ,p_app_init 
+0009 c0618063 beq patch18_3 ,p_mouse_start_work 
+000a c0620078 beq patch18_4 ,p_mouse_start_reconnect_device 
+000b c063807f beq patch18_7 ,p_mouse_app_enter_hibernate 
+000c c0648085 beq patch19_1 ,p_mouse_setgpio_hibernate 
+000d c06500ba beq patch19_2 ,p_mouse_lpm_before_common 
+000e c066007b beq patch19_4 ,p_mouse_adc_read_start 
+000f c0670049 beq patch19_6 ,p_mouse_motion 
+0010 c067826c beq patch19_7 ,p_mouse_dpi_process 
+0011 c068023e beq patch1a_0 ,p_mouse_seting_dpi 
+0012 c0688161 beq patch1a_1 ,p_mouse_check_key_gpio 
+0013 c06a0147 beq patch1a_4 ,p_mouse_sensor_poweron 
+0014 c06b005e beq patch1a_6 ,p_mouse_priority_bb_event 
+0015 c06c80c3 beq patch1b_1 ,p_mouse_bb_event_timer 
+0016 c06f0059 beq patch1b_6 ,p_mouse_idle 
+0017 2020137c branch loop 
 
 pf_patch_ext:
-001d c019809e beq patch26_3 ,p_adc_init_data 
-001e c01a00a3 beq patch26_4 ,p_enable_adc 
-001f c043849d beq patch30_7 ,p_ui_timer_check 
-0020 c05084b5 beq patch34_1 ,p_le_slave_match 
-0021 c06004bf beq patch38_0 ,p_le_parse_l2cap 
-0022 c06e837e beq patch3b_5 ,p_g24_dispatch 
-0023 c06f01f9 beq patch3b_6 ,p_g24_receive_packet 
-0024 c07083a3 beq patch3c_1 ,p_g24_transmit 
-0025 c0710326 beq patch3c_2 ,p_g24_pair_dispatch 
-0026 c074834e beq patch3d_1 ,p_g24_reconn_dispatch 
-0027 c07501a7 beq patch3d_2 ,p_g24_transmit_no_interrupt 
-0028 c07604e5 beq patch3d_4 ,p_g24_lpm_wait 
-0029 c076865d beq patch3d_5 ,p_power_ctrl_start 
-002a 2020137c branch loop 
+0018 c019836a beq patch26_3 ,p_adc_init_data 
+0019 c01a036f beq patch26_4 ,p_enable_adc 
+001a c043838a beq patch30_7 ,p_ui_timer_check 
+001b c06e83fa beq patch3b_5 ,p_g24_dispatch 
+001c c06f03ae beq patch3b_6 ,p_g24_receive_packet 
+001d c070838e beq patch3c_1 ,p_g24_transmit 
+001e c07104c5 beq patch3c_2 ,p_g24_pair_dispatch 
+001f c07484ec beq patch3d_1 ,p_g24_reconn_dispatch 
+0020 c075040a beq patch3d_2 ,p_g24_transmit_no_interrupt 
+0021 c0760473 beq patch3d_4 ,p_g24_lpm_wait 
+0022 2020137c branch loop 
 
-p_set_mem_xtal_cache:
-002b 6fe0c17b fetch 1 ,mem_lpm_config + 1 
-002c 67e0cc93 store 1 ,mem_xtal_cache 
-002d 20600000 rtn 
-
-p_soft_reset:
-002e 20800000 clear_stack 
-002f 2455802b ncall p_set_mem_xtal_cache ,wake 
-0030 204030f3 call app_param_init 
-0031 58004c72 setarg mem_mouse_rssi_signal_buf_patch 
-0032 67e14899 store 2 ,mem_rssi_signal_buf_ptr 
-0033 20403bfd call mouse_xtal_init 
-0034 2040124a call initialize_radio 
-0035 6fe0cc93 fetch 1 ,mem_xtal_cache 
-0036 67e0c17b store 1 ,mem_lpm_config + 1 
-0037 58000f0f setarg 0xf0f 
-0038 d8a00fff arg 0xfff ,contw 
-0039 98a10a00 iand contw ,contw 
-003a 6fe0c17a fetch 1 ,mem_lpm_config 
-003b 1fe17ef0 and_into 0xf0 ,pdata 
-003c 1fed7e00 lshift8 pdata ,pdata 
-003d 98a1fe00 ior contw ,pdata 
-003e 793ffe02 set0 2 ,pdata 
-003f 67f1004c store 2 ,core_lpm_reg 
-0040 efe10006 ifetch 2 ,contr 
-0041 e7e10005 istore 2 ,contw 
-0042 58000001 setarg lpmreg_sel_ctrl 
-0043 37d98200 until null ,lpo_edge 
-0044 67f08005 store 1 ,core_lpm_wr 
-0045 70417b08 jam 0x08 ,mem_lpm_config + 1 
-0046 70804204 jam 4 ,core_clksel 
-0047 20200805 branch soft_reset + 4 
+p_app_init:
+0023 793f8034 set0 mark_adc_enable ,mark 
+0024 20406df3 call enable_authrom 
+0025 20400032 call p_mouse_setting_config 
+0026 204041a7 call mouse_init_sunt 
+0027 20758000 rtn wake 
+0028 2040029c call p_g24_report 
+0029 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+002a 67e1cc64 store 3 ,mem_24g_short_sleep_set_init 
+002b 204004c1 call p_send_time_long_wake 
+002c 2040408e call mouse_dpi_config 
+002d 20403d8a call mouse_usb_check_enable 
+002e 20404728 call mouse_drawing_optima_init 
+002f 20400044 call p_mouse_cb_fuction 
+0030 20400153 call p_mouse_sensor_powerdown 
+0031 20203bc9 branch mouse_init + 8 
 
-p_mouse_start_reconnect_device:
-0048 6fe0cc42 fetch 1 ,mem_mouse_bt_led_recon_effect_flag 
-0049 245a03f1 ncall p_mouse_multi_led_blink_enable ,blank 
-004a 20203d5a branch mouse_start_reconnect_device + 1 
-
-p_main_loop:
-004b 2040706c call sp_calc_sequence 
-004c 20407597 call sp_calc_sequence_256 
-004d 20406ea7 call sp_calc_sequence_256_check 
-004e 20401b93 call le_advertising_dispatch + 1 
-004f 2040083a call idle_dispatch 
-0050 20403108 call app_process_idle + 1 
-0051 20400892 call inquiry_dispatch + 1 
-0052 20400b08 call inquiry_scan_dispatch + 1 
-0053 20400b7b call page_scan_dispatch + 1 
-0054 20400823 call connection_dispatch + 1 
-0055 204021d3 call g24_dispatch + 2 
-0056 20400058 call p_lpm_dispatch 
-0057 20200813 branch main_loop 
-
-p_lpm_dispatch:
-0058 20401465 call lpo_calibration 
-0059 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-005a 207a0000 rtn blank 
-005b 6fe0c099 fetch 1 ,mem_lpm_mode 
-005c 207a0000 rtn blank 
-005d 6fe0c764 fetch 1 ,mem_ssp_enable 
-005e 203a0061 branch p_lpm_dispatch_next ,blank 
-005f 6fe0c6b9 fetch 1 ,mem_sp_local_key_invalid 
-0060 207a0000 rtn blank 
-
-p_lpm_dispatch_next:
-0061 6fe0c6ba fetch 1 ,mem_sc_calc 
-0062 247a0000 nrtn blank 
-0063 202014ea branch lpm_dispatch_next + 3 
+p_mouse_setting_config:
+0032 20758000 rtn wake 
+0033 20402607 call g24_transmit_init 
+0034 d8400358 arg 0x358 ,temp 
+0035 60494838 storet 2 ,mem_24g_rx_window 
+0036 204022ff call g24_chmap_param_init 
+0037 20400041 call p_mouse_gpio_init 
+0038 20403d13 call mouse_param_init 
+0039 204001fd call p_mouse_firebutton_connect_state_check 
+003a 204000d4 call p_mouse_device_multi_led_poweron2s_init 
+003b 20400264 call p_mouse_double_dpi_judge 
+003c 204002a9 call p_g24_short_sleep_set_8ms 
+003d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+003e c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
+003f 204002ac call p_g24_short_sleep_set_4ms 
+0040 20203bf5 branch mouse_setting_config_next 
 
-p_set_sync_on:
-0064 70890005 jam 0x5 ,modem_en 
-0065 20000002 nop 2 
-0066 70890000 jam 0x0 ,modem_en 
-0067 6fe0c0c5 fetch 1 ,mem_fcomp_div 
-0068 c00c1168 beq xtal_24m ,set_sync_on_24m 
+p_mouse_gpio_init:
+0041 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0042 245a0111 ncall p_mouse_1io2led_all_off ,blank 
+0043 20203f1e branch mouse_gpio_init 
 
-p_set_sync_on_16m:
-0069 708a8729 jam 0x29 ,core_syn_afc_cfg1 
-006a 2020117d branch set_sync_on_16m 
+p_mouse_cb_fuction:
+0044 580002af setarg p_mouse_24g_package_data 
+0045 67e1489b store 2 ,mem_cb_24g_transmit_data 
+0046 580002c9 setarg p_mouse_24g_search_dongle 
+0047 67e1489d store 2 ,mem_cb_24g_search_receiver 
+0048 20203bd3 branch mouse_cb_fuction + 4 
 
-p_set_freq_rx:
-006b 20401190 call set_freq_rx + 1 
-006c 58007676 setarg 0x7676 
-006d 67f10968 store 2 ,0x8968 
-006e 20600000 rtn 
+p_mouse_motion:
+0049 78547c00 disable user 
+004a 58000000 setarg 0 
+004b 67e348d1 store 6 ,mem_mouse_x 
+004c 20404240 call mouse_check_sensor_data 
+004d 58000089 setarg 0x0089 
+004e 20405b0c call twspi_write 
+004f 2040408e call mouse_dpi_config 
+0050 20403f7e call mouse_zwheel 
+0051 20403f83 call mouse_t_zwheel 
+0052 2040015a call p_mouse_key 
+0053 6fe0c8d0 fetch 1 ,mem_mouse_key 
+0054 1fe17e1f and_into 0x1f ,pdata 
+0055 67e0c8d0 store 1 ,mem_mouse_key 
+0056 24344728 nbranch mouse_drawing_optima_init ,user 
+0057 20400144 call p_mouse_drawing_optima 
+0058 20204544 branch mouse_no_data_timer_init 
 
-p_rf_rx_enable:
-006f 6fe0cc92 fetch 1 ,mem_g24_fast_conn_enable 
-0070 243a0079 nbranch p_rf_rx_enable_g24_fast_conn_mode ,blank 
-0071 2000012c nop 300 
-0072 20404ca7 call rf_debug_rx_gpio_high 
-0073 d8c041eb arg mem_gain_table ,contr 
-0074 98c08c00 iadd contr ,contr 
-0075 efe08006 ifetch 1 ,contr 
-0076 67f08961 store 1 ,core_rf_rx_gain_fix 
-0077 7089602e jam 0x2e ,core_rf_rx_agc_ctrl 
-0078 202011b3 branch rf_rx_enable_no_soft_agc_next 
-
-p_rf_rx_enable_g24_fast_conn_mode:
-0079 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
-007a 1fe1fe01 or pdata ,0x01 ,pdata 
-007b 67f08960 store 1 ,core_rf_rx_agc_ctrl 
-007c 70896104 jam 0x04 ,core_rf_rx_gain_fix 
-007d 202011b3 branch rf_rx_enable_no_soft_agc_next 
+p_mouse_idle:
+0059 20404990 call mouse_low_voltage_led_no_enter_lpm 
+005a 20407936 call ui_check_paring_button 
+005b 20400198 call p_mouse_dpi_check 
+005c 204001ac call p_mouse_dpi_another_gpio_check 
+005d 2020464f branch mouse_idle + 4 
 
-p_save_rssi:
-007e 6ff089a2 fetch 1 ,modem_nb_pow 
-007f 2feffe06 isolate1 6 ,pdata 
-0080 7920fe07 setflag true ,7 ,pdata 
-0081 67e0c1e9 store 1 ,mem_modem_rssi 
-0082 6ff089a3 fetch 1 ,modem_gain 
-0083 1fe1040f and pdata ,0x0f ,temp 
-0084 18438400 lshift temp ,temp 
-0085 1ff1fe00 rshift4 pdata ,pdata 
-0086 98408400 iadd temp ,temp 
-0087 184fa203 mul32 temp ,3 ,rega 
-0088 6fe0c1e9 fetch 1 ,mem_modem_rssi 
-0089 20400093 call p_byte_sign_extern 
-008a 1fe67e00 sub pdata ,0 ,pdata 
-008b 9a20fe00 iadd rega ,pdata 
-008c 1fe0fff7 increase -9 ,pdata 
-008d 1fe17fff and pdata ,0x1ff ,pdata 
-008e 2feffe08 isolate1 8 ,pdata 
-008f 24208091 nbranch p_save_rssi_store ,true 
-0090 58000000 setarg 0 
+p_mouse_priority_bb_event:
+005e 1a627e00 copy regc ,pdata 
+005f c01e0523 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
+0060 c01c851c beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
+0061 c01d052e beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
+0062 20204336 branch mouse_priority_bb_event + 2 
 
-p_save_rssi_store:
-0091 67e08019 store 1 ,mem_rssi_hex 
-0092 20600000 rtn 
+p_mouse_start_work:
+0063 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0064 c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
+0065 6fe0c938 fetch 1 ,mem_device_flag 
+0066 c0000068 beq mode_24g_device ,p_mouse_24g_start_mode 
+0067 20203d57 branch mouse_start_work + 5 
 
-p_byte_sign_extern:
-0093 2feffe07 isolate1 7 ,pdata 
-0094 24608000 nrtn true 
-0095 d840ff00 arg 0xff00 ,temp 
-0096 9841fe00 ior temp ,pdata 
-0097 20600000 rtn 
+p_mouse_24g_start_mode:
+0068 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0069 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
+006a 20403d65 call mouse_wakeup_from_power_check 
+006b 20340072 branch p_mouse_24g_reconn_dongle_start ,user 
+006c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+006d c2980075 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_reconn_general_dongle 
+006e c3188075 bbit0 mouse_enable_24g_power_on_pairing ,p_mouse_24g_reconn_general_dongle 
+006f 20404110 call mouse_key_check_once 
+0070 1a217e07 and rega ,0x07 ,pdata 
+0071 202047ff branch mouse_24g_start_mode + 9 
 
-p_txon_next:
-0098 6fe0cc92 fetch 1 ,mem_g24_fast_conn_enable 
-0099 243a009b nbranch p_set_tx_power_fast_conn ,blank 
-009a 2020123b branch set_tx_power_10db 
-
-p_set_tx_power_fast_conn:
-009b 708a395b jam 0x5b ,core_tx_pwr_ctrl0 
-009c 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
-009d 2020122a branch set_rf_ldo_cfg89 
+p_mouse_24g_reconn_dongle_start:
+0072 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0073 245a00d9 ncall p_mouse_multi_led_blink_enable ,blank 
+0074 20204806 branch mouse_24g_reconn_dongle_start 
 
-p_adc_init_data:
-009e da20099e arg mem_temp_block2 ,rega 
-009f d840000c arg 12 ,temp 
-00a0 58000030 setarg efuse_offset_adc_param 
-00a1 20405e63 call efuse_read_data 
-00a2 202060bf branch adc_init_data + 6 
+p_mouse_24g_reconn_general_dongle:
+0075 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0076 245a00d9 ncall p_mouse_multi_led_blink_enable ,blank 
+0077 2020480c branch mouse_24g_reconn_general_dongle 
 
-p_enable_adc:
-00a3 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
-00a4 708a123d jam 0x3d ,core_rf_ldo_cfg6 
-00a5 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
-00a6 708a0a0c jam 0x0c ,core_rf_ldo_en0 
-00a7 6ff08a09 fetch 1 ,core_clkpll_cfg6 
-00a8 79207e07 set1 7 ,pdata 
-00a9 67f08a09 store 1 ,core_clkpll_cfg6 
-00aa 708a0b04 jam 0x04 ,core_rf_ldo_en1 
-00ab 2000003c nop 60 
-00ac 708a1600 jam 0 ,core_syn_en 
-00ad 708a1706 jam 6 ,core_rx_en0 
-00ae 2040611a call read_adc_mode 
-00af 67f08a97 store 1 ,core_gpadc_ctrl 
-00b0 7080dc03 jam 0x03 ,core_sum_ctrl 
-00b1 2000003c nop 60 
-00b2 6ff08053 fetch 1 ,core_sum_en 
-00b3 79207e07 set1 7 ,pdata 
-00b4 67f08053 store 1 ,core_sum_en 
-00b5 200003e8 nop 1000 
-00b6 6ff10150 fetch 2 ,core_adc_sum 
-00b7 67e144a2 store 2 ,mem_adc_current_value 
-00b8 6ff08053 fetch 1 ,core_sum_en 
-00b9 793ffe07 set0 7 ,pdata 
-00ba 67f08053 store 1 ,core_sum_en 
-00bb 708a9700 jam 0 ,core_gpadc_ctrl 
-00bc 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
-00bd 20600000 rtn 
+p_mouse_start_reconnect_device:
+0078 6fe0cc42 fetch 1 ,mem_mouse_bt_led_recon_effect_flag 
+0079 245a00d9 ncall p_mouse_multi_led_blink_enable ,blank 
+007a 20203d5a branch mouse_start_reconnect_device + 1 
 
 p_mouse_adc_read_start:
-00be 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-00bf 247a0000 nrtn blank 
-00c0 204000a3 call p_enable_adc 
-00c1 20203ebb branch mouse_adc_read_start + 3 
-
-p_app_evt_100ms_loop:
-00c2 6fe0830d fetch 1 ,mem_app_evt_timer_count 
-00c3 207a0000 rtn blank 
-00c4 1fe0ffff increase -1 ,pdata 
-00c5 67e0830d store 1 ,mem_app_evt_timer_count 
-00c6 204077c5 call ui_button_polling 
-00c7 204031e3 call app_lpm_wake_auto_lock_timer 
-00c8 204031a4 call app_unsniff_delay_timer 
-00c9 204031aa call app_discovery_timer 
-00ca 20405cdc call flash_write_spi_sm_timer 
-00cb 6fe1446f fetch 2 ,mem_cb_event_timer 
-00cc 20407e05 call callback_func 
-00cd 202000c2 branch p_app_evt_100ms_loop 
-
-p_initialize_radio_cont:
-00ce 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
-00cf 2040126a call initialize_syn_afc_cfg1 
-00d0 20401271 call initialize_rf_ldo_cfg1 
-00d1 20401277 call initialize_rc_cal 
-00d2 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
-00d3 708a0305 jam 5 ,core_clkpll_cfg0 
-00d4 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
-00d5 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-00d6 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-00d7 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-00d8 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
-00d9 70892140 jam 0x40 ,core_rx_ctrl1 
-00da 2020125d branch initialize_radio_cont + 8 
-
-p_init_param:
-00db 70008000 jam 0 ,mem_lmo_tid2 
-00dc 202013b7 branch init_param_next + 1 
+007b 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+007c 247a0000 nrtn blank 
+007d 2040036f call p_enable_adc 
+007e 20203ebb branch mouse_adc_read_start + 3 
 
-p_lpm_short_sleep:
-00dd 58000000 setarg 0 
-00de 67f18a00 store 3 ,core_clkpll_ctrl0 
-00df 704c638c jam 140 ,mem_tx_time_offset 
-00e0 204012cf call xtal_fast_wake 
-00e1 6fe24164 fetch 4 ,mem_sleep_counter_all 
-00e2 9840fe00 iadd temp ,pdata 
-00e3 67e24164 store 4 ,mem_sleep_counter_all 
-00e4 18027e00 deposit mark 
-00e5 67e4419d store 8 ,mem_saved_mark 
-00e6 d8c08070 arg core_gpio_conf ,contr 
-00e7 d8a04186 arg mem_saved_gpio ,contw 
-00e8 20407d01 call memcpy20 
-00e9 6ff08086 fetch 1 ,core_spid_ctrl 
-00ea 67e0c1a5 store 1 ,mem_saved_spidctrl 
-00eb 2040143f call lpm_ctrl3_cfg_dig_vsel 
-00ec 6ff08042 fetch 1 ,core_clksel 
-00ed 1fe1fe14 or_into 0x14 ,pdata 
-00ee 67f08042 store 1 ,core_clksel 
-00ef 2020149e branch lpm_sleep + 7 
-
-p_app_init:
+p_mouse_app_enter_hibernate:
+007f 58000006 setarg pan_reg_config 
+0080 20405b0d call twspi_read 
+0081 c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
+0082 2040014e call p_mouse_sensor_reset 
+0083 20400153 call p_mouse_sensor_powerdown 
+0084 20203e23 branch mouse_app_enter_hibernate + 3 
 
-p_mouse_init:
-00f0 2455811f ncall p_mouse_le_name_load ,wake 
-00f1 20406df3 call enable_authrom 
-00f2 2040014a call p_mouse_setting_config 
-00f3 204041a7 call mouse_init_sunt 
-00f4 20758000 rtn wake 
-00f5 20400100 call p_g24_report 
-00f6 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-00f7 67e1cc64 store 3 ,mem_24g_short_sleep_set_init 
-00f8 20400659 call p_send_time_long_wake 
-00f9 2040010d call p_mouse_load_default_param 
-00fa 2040408e call mouse_dpi_config 
-00fb 20403d8a call mouse_usb_check_enable 
-00fc 20404728 call mouse_drawing_optima_init 
-00fd 20400162 call p_mouse_cb_fuction 
-00fe 20400510 call p_mouse_sensor_powerdown 
-00ff 20203bc9 branch mouse_init + 8 
+p_mouse_setgpio_hibernate:
+0085 204042e9 call mouse_set_sdio_high 
+0086 20407fdc call clear_wake 
+0087 2040011e call p_mouse_logo_led_off 
+0088 20400111 call p_mouse_1io2led_all_off 
+0089 20404015 call mouse_before_hibernate_wheel_gpio_set 
+008a 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+008b 20406069 call gpio_out_active 
+008c 6848c910 fetcht 1 ,mem_matrix_public_gpio 
+008d 20406042 call gpio_clr_wake 
+008e 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
+008f d840003f arg gpcfg_output_high ,temp 
+0090 20406093 call gpio_config_function_int 
+0091 d8400003 arg 3 ,temp 
+0092 20403f56 call mouse_gpio_config_input_pu 
+0093 20403e40 call mouse_lpm_before_common 
+0094 20406082 call gpio_pd_idle 
+0095 d8400013 arg 19 ,temp 
+0096 20403f56 call mouse_gpio_config_input_pu 
+0097 2040009a call p_mouse_gpio_set_high_impedance 
+0098 204000a7 call p_mouse_adc_gpio_set_before_hibernate 
+0099 202000ae branch p_mouse_wheel_gpio_set_before_hibernate 
 
-p_g24_report:
-0100 58017700 setarg 0x17700 
-0101 67e1cc4e store 3 ,mem_24g_tsniff 
-0102 20402613 call g24_interval_param_8ms 
-0103 7048c61e jam 30 ,mem_24g_fast_hop_count 
-0104 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0105 c40c0000 rtnbit0 mouse_enable_24g_250hz 
-0106 2040260b call g24_interval_param_4ms 
-0107 7048c60f jam 15 ,mem_24g_fast_hop_count 
-0108 5800bb80 setarg 0xbb80 
-0109 67e1cc4e store 3 ,mem_24g_tsniff 
-010a 58004800 setarg 0x4800 
-010b 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-010c 20600000 rtn 
-
-p_mouse_load_default_param:
-010d 20400118 call p_mouse_firebutton_connect_state_check 
-010e 204003ec call p_mouse_device_multi_led_poweron2s_init 
-010f 20200110 branch p_mouse_double_dpi_judge 
+p_mouse_gpio_set_high_impedance:
+009a 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
+009b 67e1895c store 3 ,mem_pdatatemp 
+009c df200014 arg 20 ,loopcnt 
+009d d8400000 arg 0 ,temp 
 
-p_mouse_double_dpi_judge:
-0110 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0111 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
-0112 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
-0113 c2838116 bbit1 gpio_active_bit ,p_mouse_another_dpi_connect_vin 
+p_mouse_gpio_set_high_impedance_bit_loop:
+009e 6fe1895c fetch 3 ,mem_pdatatemp 
+009f 2feffe00 isolate1 0 ,pdata 
+00a0 2040e07f call gpio_set_high_impedance ,true 
+00a1 6fe1895c fetch 3 ,mem_pdatatemp 
+00a2 1fe37e00 rshift pdata ,pdata 
+00a3 67e1895c store 3 ,mem_pdatatemp 
+00a4 18408401 increase 1 ,temp 
+00a5 c200009e loop p_mouse_gpio_set_high_impedance_bit_loop 
+00a6 20600000 rtn 
 
-p_mouse_another_dpi_connect_gnd:
-0114 704c3a00 jam 0 ,mem_mouse_another_dpi_connect_vin_flag 
-0115 20600000 rtn 
+p_mouse_adc_gpio_set_before_hibernate:
+00a7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00a8 c40a0000 rtnbit0 mouse_enable_adc 
+00a9 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
+00aa c1810000 rtnne adc_config_gpio 
+00ab 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
+00ac d84000c0 arg gpcfg_no_ie ,temp 
+00ad 20206093 branch gpio_config_function_int 
 
-p_mouse_another_dpi_connect_vin:
-0116 704c3a01 jam 1 ,mem_mouse_another_dpi_connect_vin_flag 
-0117 20600000 rtn 
+p_mouse_wheel_gpio_set_before_hibernate:
+00ae 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+00af c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
-p_mouse_firebutton_connect_state_check:
-0118 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
-0119 c17f8000 rtneq gpio_disable 
-011a c283811d bbit1 gpio_active_bit ,p_mouse_firebutton_connect_vin 
+p_mouse_wheel_clr_wakeup:
+00b0 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+00b1 20406042 call gpio_clr_wake 
+00b2 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+00b3 20406042 call gpio_clr_wake 
+00b4 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+00b5 d8400080 arg gpcfg_pulldown ,temp 
+00b6 20406093 call gpio_config_function_int 
+00b7 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+00b8 d8400080 arg gpcfg_pulldown ,temp 
+00b9 20206093 branch gpio_config_function_int 
 
-p_mouse_firebutton_connect_gnd:
-011b 704c3900 jam 0 ,mem_mouse_firebutton_connect_vin_flag 
-011c 20600000 rtn 
+p_mouse_lpm_before_common:
+00ba 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
+00bb 20406050 call gpio_config_input 
+00bc 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
+00bd 20406050 call gpio_config_input 
+00be 20403f88 call mouse_wheel_check 
+00bf 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
+00c0 d840003f arg gpcfg_output_high ,temp 
+00c1 20406093 call gpio_config_function_int 
+00c2 20203e44 branch mouse_lpm_before_common_next 
 
-p_mouse_firebutton_connect_vin:
-011d 704c3901 jam 1 ,mem_mouse_firebutton_connect_vin_flag 
-011e 20600000 rtn 
+p_mouse_bb_event_timer:
+00c3 20403e9b call mouse_adc_read 
+00c4 20404956 call mouse_low_voltage_led_timer 
+00c5 2040232b call g24_pair_timeout_timer 
+00c6 20402556 call g24_reconn_timeout_timer 
+00c7 204047cd call mouse_24g_long_sleep_param_update_timer 
+00c8 204048be call mouse_device_poweron_timer 
+00c9 20400124 call p_mouse_dpi_led_blink_delay_timer 
+00ca 204000e2 call p_mouse_led_multi_timer 
+00cb 20400114 call p_mouse_logo_led_on_timer 
+00cc 2040407c call mouse_dpi_key_check_long_press 
+00cd 204044cc call mouse_bt_discovery_check 
+00ce 20400127 call p_mouse_commbination_key_process 
+00cf 204044ff call mouse_check_discovery_timeout_timer 
+00d0 20404535 call mouse_current_mult_update_timer 
+00d1 20404022 call mouse_wheel_trigger_timer 
+00d2 20404547 call mouse_store_information_delay_timer 
+00d3 2020013e branch p_mouse_check_no_data_timeout_timer 
 
-p_mouse_le_name_load:
-011f 6fe44c1f fetch 8 ,mem_le_name_patch 
-0120 207a0000 rtn blank 
-0121 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
-0122 1fe22200 copy pdata ,rega 
-0123 1fe67c0b sub pdata ,11 ,null 
-0124 24210131 nbranch p_mouse_le_name_patch_len_overflow ,positive 
-0125 d8c04c1f arg mem_le_name_patch ,contr 
-0126 d8a04adb arg mem_le_adv_swift_pair + 9 ,contw 
-0127 1a227200 copy rega ,loopcnt 
-0128 20407d5f call memcpy 
-0129 d8c04c1f arg mem_le_name_patch ,contr 
-012a d8a0440a arg mem_le_scan_data + 2 ,contw 
-012b 1a227200 copy rega ,loopcnt 
-012c 20407d5f call memcpy 
-012d d8c04c1f arg mem_le_name_patch ,contr 
-012e d8a042f8 arg mem_le_name ,contw 
-012f 1a227200 copy rega ,loopcnt 
-0130 20207d5f branch memcpy 
-
-p_mouse_le_name_patch_len_overflow:
-0131 20400147 call p_mouse_le_swift_pair_disable 
-0132 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
-0133 1fe0fe01 increase 1 ,pdata 
-0134 67e0cad2 store 1 ,mem_le_adv_swift_pair 
-0135 704ad309 jam 9 ,mem_le_adv_swift_pair + 1 
-0136 d8c04c1f arg mem_le_name_patch ,contr 
-0137 d8a04ad4 arg mem_le_adv_swift_pair + 2 ,contw 
-0138 1a227200 copy rega ,loopcnt 
-0139 20407d5f call memcpy 
-013a 6fe0cc1e fetch 1 ,mem_le_name_patch_len 
-013b 1fe0fe01 increase 1 ,pdata 
-013c 67e0c408 store 1 ,mem_le_scan_data 
-013d 70440909 jam 9 ,mem_le_scan_data + 1 
-013e d8c04c1f arg mem_le_name_patch ,contr 
-013f d8a0440a arg mem_le_scan_data + 2 ,contw 
-0140 1a227200 copy rega ,loopcnt 
-0141 20407d5f call memcpy 
-0142 d8c04c1e arg mem_le_name_patch_len ,contr 
-0143 d8a042f7 arg mem_le_name_len ,contw 
-0144 1a227200 copy rega ,loopcnt 
-0145 1f20f201 increase 1 ,loopcnt 
-0146 20207d5f branch memcpy 
-
-p_mouse_le_swift_pair_disable:
-0147 d8a04ad2 arg mem_le_adv_swift_pair ,contw 
-0148 df200014 arg 20 ,loopcnt 
-0149 20207d26 branch clear_mem 
+p_mouse_device_multi_led_poweron2s_init:
+00d4 6fe0cc46 fetch 1 ,mem_mouse_multi_led_powon2s_timer_init 
+00d5 67e0cc47 store 1 ,mem_mouse_multi_led_powon2s_timer 
+00d6 6fe0cc44 fetch 1 ,mem_mouse_multi_led_poweron2s_flag_init 
+00d7 67e0cc45 store 1 ,mem_mouse_multi_led_poweron2s_flag 
+00d8 20600000 rtn 
 
-p_mouse_setting_config:
-014a 20758000 rtn wake 
-014b 20402607 call g24_transmit_init 
-014c d8400358 arg 0x358 ,temp 
-014d 60494838 storet 2 ,mem_24g_rx_window 
-014e 204022ff call g24_chmap_param_init 
-014f 2040015c call p_mouse_gpio_init 
-0150 20403d13 call mouse_param_init 
-0151 20400156 call p_g24_short_sleep_set_8ms 
-0152 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0153 c30c3bf5 bbit0 mouse_enable_24g_250hz ,mouse_setting_config_next 
-0154 20400159 call p_g24_short_sleep_set_4ms 
-0155 20203bf5 branch mouse_setting_config_next 
+p_mouse_multi_led_blink_enable:
+00d9 704c4101 jam 1 ,mem_mouse_multi_led_blink_enable 
+00da 704c4301 jam multi_led_blink ,mem_mouse_multi_led_type 
+00db 6fe0cc4b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
+00dc 67e0cc4c store 1 ,mem_mouse_multi_led_blink_timer 
+00dd 20600000 rtn 
 
-p_g24_short_sleep_set_8ms:
-0156 5800e290 setarg 58000 
-0157 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-0158 20600000 rtn 
+p_mouse_multi_led_on_enable:
+00de 704c4101 jam 1 ,mem_mouse_multi_led_blink_enable 
+00df 704c4c00 jam 0 ,mem_mouse_multi_led_blink_timer 
+00e0 704c4300 jam multi_led_on ,mem_mouse_multi_led_type 
+00e1 20600000 rtn 
 
-p_g24_short_sleep_set_4ms:
-0159 58001770 setarg 6000 
-015a 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-015b 20600000 rtn 
+p_mouse_led_multi_timer:
+00e2 6fe0cc41 fetch 1 ,mem_mouse_multi_led_blink_enable 
+00e3 207a0000 rtn blank 
+00e4 6fe0cc43 fetch 1 ,mem_mouse_multi_led_type 
+00e5 c00080f2 beq multi_led_blink ,p_mouse_multi_led_type_blink 
 
-p_mouse_gpio_init:
-015c 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-015d 245a015f ncall p_mouse_1io2led_all_off ,blank 
-015e 20203f1e branch mouse_gpio_init 
+p_mouse_multi_led_type_on:
+00e6 6fe0cc45 fetch 1 ,mem_mouse_multi_led_poweron2s_flag 
+00e7 243a00ea nbranch p_mouse_device_multi_led_poweron2s ,blank 
+00e8 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
+00e9 20600000 rtn 
 
-p_mouse_1io2led_all_off:
-015f 20400423 call p_mouse_device_24g_led_off 
-0160 20400425 call p_mouse_device_bt1_led_off 
-0161 20200427 branch p_mouse_device_bt2_led_off 
+p_mouse_device_multi_led_poweron2s:
+00ea 6fe0cc47 fetch 1 ,mem_mouse_multi_led_powon2s_timer 
+00eb 203a00ef branch p_mouse_multi_led_poweron2s_and_flag_off ,blank 
+00ec 1fe0ffff increase -1 
+00ed 67e0cc47 store 1 ,mem_mouse_multi_led_powon2s_timer 
+00ee 202000f9 branch p_mouse_device_multi_led_on 
 
-p_mouse_cb_fuction:
-0162 58000167 setarg p_mouse_24g_package_data 
-0163 67e1489b store 2 ,mem_cb_24g_transmit_data 
-0164 58000181 setarg p_mouse_24g_search_dongle 
-0165 67e1489d store 2 ,mem_cb_24g_search_receiver 
-0166 20203bd3 branch mouse_cb_fuction + 4 
+p_mouse_multi_led_poweron2s_and_flag_off:
+00ef 704c4500 jam 0 ,mem_mouse_multi_led_poweron2s_flag 
+00f0 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
+00f1 20200105 branch p_mouse_device_multi_led_off 
 
-p_mouse_24g_package_data:
-0167 c6930000 rtnmark0 mark_24g 
-0168 20403f70 call mouse_motion 
-0169 24740000 nrtn user 
-016a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-016b c30a816e bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
-016c 6fe0cb8b fetch 1 ,mem_customer_key 
-016d 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
+p_mouse_multi_led_type_blink:
+00f2 da604c4c arg mem_mouse_multi_led_blink_timer ,regc 
+00f3 da4000f5 arg p_mouse_multi_led_type_blink_timeout ,regb 
+00f4 2020318a branch timer_single_step 
 
-p_mouse_24g_mouse_package_data:
-016e 204042cb call mouse_data_xy_release 
-016f 6fe0c836 fetch 1 ,mem_24g_data_type 
-0170 c280817d bbit1 1 ,p_mouse_24g_mouse_package_data_now 
-0171 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
-0172 6fe0c8d0 fetch 1 ,mem_mouse_key 
-0173 9841fe00 ior temp ,pdata 
-0174 67e0c8d0 store 1 ,mem_mouse_key 
-0175 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
-0176 6fe0c8d5 fetch 1 ,mem_mouse_z 
-0177 9840fe00 iadd temp ,pdata 
-0178 67e0c8d5 store 1 ,mem_mouse_z 
-0179 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
-017a 6fe0c8d6 fetch 1 ,mem_mouse_tz 
-017b 9840fe00 iadd temp ,pdata 
-017c 67e0c8d6 store 1 ,mem_mouse_tz 
+p_mouse_multi_led_type_blink_timeout:
+00f5 6fe0cc4b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
+00f6 67e0cc4c store 1 ,mem_mouse_multi_led_blink_timer 
+00f7 6fe0cc4d fetch 1 ,mem_mouse_multi_led_state 
+00f8 c0008105 beq on ,p_mouse_device_multi_led_off 
 
-p_mouse_24g_mouse_package_data_now:
-017d 70483601 jam type_ms ,mem_24g_data_type 
-017e da200007 arg 7 ,rega 
-017f da4048d0 arg mem_mouse_key ,regb 
-0180 20600000 rtn 
+p_mouse_device_multi_led_on:
+00f9 704c4d01 jam on ,mem_mouse_multi_led_state 
+00fa 6fe0c938 fetch 1 ,mem_device_flag 
+00fb c00000ff beq mode_24g_device ,p_mouse_device_24g_led_on 
+00fc c0008101 beq mode_bt_device1 ,p_mouse_device_bt1_led_on 
+00fd c0010103 beq mode_bt_device2 ,p_mouse_device_bt2_led_on 
+00fe 20600000 rtn 
 
-p_mouse_24g_search_dongle:
-0181 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0182 c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
-0183 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
-0184 207a0000 rtn blank 
-0185 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-0186 207a0000 rtn blank 
-0187 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
-0188 1fe0fe01 increase 1 ,pdata 
-0189 1fe17e03 and_into 3 ,pdata 
-018a 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
-018b 247a0000 nrtn blank 
-018c 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
+p_mouse_device_24g_led_on:
+00ff 6848cc48 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0100 20200104 branch p_mouse_device_led_on 
 
-p_mouse_24g_search_dongle_loop:
-018d 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
-018e 1fe0fe01 increase 1 ,pdata 
-018f 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
-0190 1fe67c08 sub pdata ,g24_ch_number ,null 
-0191 24210197 nbranch p_mouse_24g_search_dongle_loop_end ,positive 
-0192 2040259a call g24_reconn_data_prep 
-0193 204001e8 call p_g24_transmit_receive_ack 
-0194 242c019d nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
-0195 2437819d nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
-0196 204048b5 call mouse_24g_search_dongle_success 
+p_mouse_device_bt1_led_on:
+0101 6848cc49 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0102 20200104 branch p_mouse_device_led_on 
 
-p_mouse_24g_search_dongle_loop_end:
-0197 20402597 call g24_txbuf_clear 
-0198 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
-0199 1fe0fe01 increase 1 ,pdata 
-019a 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
-019b c008019f beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
-019c 20600000 rtn 
+p_mouse_device_bt2_led_on:
+0103 6848cc4a fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
 
-p_mouse_24g_search_dongle_loop_retry:
-019d 204022cb call g24_ch 
-019e 2020018d branch p_mouse_24g_search_dongle_loop 
+p_mouse_device_led_on:
+0104 20206069 branch gpio_out_active 
 
-p_mouse_24g_search_dongle_check:
-019f 704ba300 jam 0 ,mem_mouse_search_dongle_count 
-01a0 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
-01a1 c3800000 rtnbit1 g24_disconn_state 
-01a2 79207e00 set1 g24_disconn_state ,pdata 
-01a3 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
-01a4 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
-01a5 67e14ab2 store 2 ,mem_mouse_no_data_timer 
-01a6 20200510 branch p_mouse_sensor_powerdown 
+p_mouse_device_multi_led_off:
+0105 704c4d00 jam off ,mem_mouse_multi_led_state 
+0106 6fe0c938 fetch 1 ,mem_device_flag 
+0107 c000010b beq mode_24g_device ,p_mouse_device_24g_led_off 
+0108 c000810d beq mode_bt_device1 ,p_mouse_device_bt1_led_off 
+0109 c001010f beq mode_bt_device2 ,p_mouse_device_bt2_led_off 
+010a 20600000 rtn 
 
-p_g24_transmit_no_interrupt:
-01a7 20402631 call g24_txdata_prep 
-01a8 24340295 nbranch p_g24_nodata_transmit ,user 
+p_mouse_device_24g_led_off:
+010b 6848cc48 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+010c 2020607f branch gpio_set_high_impedance 
 
-p_g24_transmit_start:
-01a9 204001dc call p_g24_transmit_process 
-01aa 204026ee call power_ctrl_start 
-01ab 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-01ac 243a01b1 nbranch p_g24_short_sleep ,blank 
-01ad 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
-01ae 67e4485c store 8 ,mem_24g_enter_hibernate 
-01af 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
-01b0 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
+p_mouse_device_bt1_led_off:
+010d 6848cc49 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+010e 2020607f branch gpio_set_high_impedance 
 
-p_g24_short_sleep:
-01b1 204026bb call g24_lpm_wait 
-01b2 24740000 nrtn user 
-01b3 6fe0cc69 fetch 1 ,mem_sleep_miss 
-01b4 704c6900 jam 0 ,mem_sleep_miss 
-01b5 1fe67c00 sub pdata ,0 ,null 
-01b6 242281d6 nbranch p_g24_short_sleep_last_miss ,zero 
-01b7 68494c67 fetcht 2 ,mem_retransmit 
-01b8 18467c00 sub temp ,0 ,null 
-01b9 202281cc branch p_g24_short_sleep_default ,zero 
-01ba 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
-01bb 203a01cc branch p_g24_short_sleep_default ,blank 
+p_mouse_device_bt2_led_off:
+010f 6848cc4a fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+0110 2020607f branch gpio_set_high_impedance 
 
-p_g24_short_sleep_notify:
-01bc 684a4c4e fetcht 4 ,mem_24g_tsniff 
-01bd 98460400 isub temp ,temp 
-01be 604a4c6e storet 4 ,mem_sleep_miss_temp 
-01bf 242101cf nbranch p_g24_short_sleep_long ,positive 
-01c0 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-01c1 98467e00 isub temp ,pdata 
-01c2 242101da nbranch p_g24_short_sleep_2 ,positive 
-01c3 d8400600 arg 0x600 ,temp 
-01c4 98467c00 isub temp ,null 
-01c5 242101da nbranch p_g24_short_sleep_2 ,positive 
+p_mouse_1io2led_all_off:
+0111 2040010b call p_mouse_device_24g_led_off 
+0112 2040010d call p_mouse_device_bt1_led_off 
+0113 2020010f branch p_mouse_device_bt2_led_off 
 
-p_g24_short_sleep2:
-01c6 67e24c6a store 4 ,mem_sleep_time_temp 
-01c7 204001d3 call p_g24_miss_temp_clear 
-01c8 6fe24c6a fetch 4 ,mem_sleep_time_temp 
-01c9 20407daa call clk2lpo 
-01ca 604a4160 storet 4 ,mem_sleep_counter 
-01cb 202000dd branch p_lpm_short_sleep 
+p_mouse_logo_led_on_timer:
+0114 6fe0cbed fetch 1 ,mem_mouse_logo_led_gpio 
+0115 c17f8000 rtneq gpio_disable 
+0116 6fe14ab2 fetch 2 ,mem_mouse_no_data_timer 
+0117 207a0000 rtn blank 
+0118 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
+0119 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
+011a 98460400 isub temp ,temp 
+011b 6fe14bee fetch 2 ,mem_mouse_logo_led_on_time_init 
+011c 98467e00 isub temp ,pdata 
+011d 20210122 branch p_mouse_logo_led_on ,positive 
 
-p_g24_short_sleep_default:
-01cc 204001d3 call p_g24_miss_temp_clear 
-01cd 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-01ce 202001c6 branch p_g24_short_sleep2 
+p_mouse_logo_led_off:
+011e 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+011f 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0120 c000e07f beq 1 ,gpio_set_high_impedance 
+0121 20206065 branch gpio_out_inactive 
 
-p_g24_short_sleep_long:
-01cf 18460400 sub temp ,0 ,temp 
-01d0 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-01d1 9840fe00 iadd temp ,pdata 
-01d2 202001c6 branch p_g24_short_sleep2 
+p_mouse_logo_led_on:
+0122 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
+0123 20206069 branch gpio_out_active 
 
-p_g24_miss_temp_clear:
-01d3 58000000 setarg 0 
-01d4 67e24c6e store 4 ,mem_sleep_miss_temp 
-01d5 20600000 rtn 
+p_mouse_dpi_led_blink_delay_timer:
+0124 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
+0125 da40024f arg p_mouse_dpi_led_blink_init ,regb 
+0126 2020318a branch timer_single_step 
 
-p_g24_short_sleep_last_miss:
-01d6 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
-01d7 684a4c6e fetcht 4 ,mem_sleep_miss_temp 
-01d8 9840fe00 iadd temp ,pdata 
-01d9 202001bc branch p_g24_short_sleep_notify 
+p_mouse_commbination_key_process:
+0127 6fe0c938 fetch 1 ,mem_device_flag 
+0128 c000012d beq mode_24g_device ,p_mouse_24g_commbination_key_process 
+0129 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+012a c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
+012b 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
+012c 20200130 branch p_mouse_commbination_key_start 
 
-p_g24_short_sleep_2:
-01da 704c6901 jam 1 ,mem_sleep_miss 
-01db 20600000 rtn 
+p_mouse_24g_commbination_key_process:
+012d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+012e c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
+012f 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
 
-p_g24_transmit_process:
-01dc 7048a600 jam 0 ,mem_24g_retry 
-01dd 58000000 setarg 0 
-01de 67e14c67 store 2 ,mem_retransmit 
+p_mouse_commbination_key_start:
+0130 6048cb9d storet 1 ,mem_mouse_commbination_key 
+0131 20404115 call mouse_check_key_gpio 
+0132 1fe17e07 and pdata ,0x07 ,pdata 
+0133 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
+0134 98467c00 isub temp ,null 
+0135 20228137 branch p_mouse_commbination_key_down ,zero 
+0136 202044eb branch mouse_commbination_key_up 
 
-p_g24_transmit_loop:
-01df 204001e8 call p_g24_transmit_receive_ack 
-01e0 6fe0c82c fetch 1 ,mem_24g_no_ack 
-01e1 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
-01e2 242c0215 nbranch p_g24_retransmit ,sync 
-01e3 24378215 nbranch p_g24_retransmit ,user3 
-01e4 20400617 call p_send_time_check 
-01e5 20402672 call g24_ackpayload_parse 
-01e6 20400244 call p_mouse_wakeup_24g 
-01e7 20202651 branch g24_transmit_no_ack 
+p_mouse_commbination_key_down:
+0137 2040013c call p_mouse_combination_ui_timer 
+0138 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
+0139 c1008000 rtneq commbination_key_state_down 
+013a 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
+013b 20600000 rtn 
 
-p_g24_transmit_receive_ack:
-01e8 7857fc00 disable user3 
-01e9 20402246 call g24_transmit 
-01ea 6fe0c82c fetch 1 ,mem_24g_no_ack 
-01eb c000a23f beq no_ack_24g ,g24_end_of_packet 
-01ec 18002a00 force 0 ,radio_ctrl 
-01ed 6fe2483c fetch 4 ,mem_24g_addr 
-01ee 98001200 iforce access 
-01ef 204010b0 call calc_mod_value_scale_le 
-01f0 68488017 fetcht 1 ,mem_last_freq 
-01f1 2040118f call set_freq_rx 
-01f2 204011a6 call rf_rx_enable 
-01f3 20400204 call p_g24_receive_rxon 
-01f4 205781f6 call p_g24_end_of_packet ,user3 
-01f5 20600000 rtn 
+p_mouse_combination_ui_timer:
+013c da400542 arg p_mouse_24g_start_pair_mode ,regb 
+013d 202044f7 branch mouse_combination_ui_timer + 1 
 
-p_g24_end_of_packet:
-01f6 708a0a00 jam 0 ,core_rf_ldo_en0 
-01f7 708a0b00 jam 0 ,core_rf_ldo_en1 
-01f8 2020129c branch gain_control 
+p_mouse_check_no_data_timeout_timer:
+013e da604ab2 arg mem_mouse_no_data_timer ,regc 
+013f da400141 arg p_mouse_check_no_data_timeout ,regb 
+0140 20203191 branch timer_single_step_2b 
 
-p_g24_receive_packet:
-01f9 6fe0c864 fetch 1 ,mem_24g_rx_phy 
-01fa 2040168b call le_enable_phy_by_pdata 
-01fb 6fe2483c fetch 4 ,mem_24g_addr 
-01fc 98001200 iforce access 
-01fd 204010b0 call calc_mod_value_scale_le 
-01fe 20401161 call set_sync_on 
-01ff 6848c83a fetcht 1 ,mem_24g_ch 
-0200 204016c8 call le_rf_rx_enable 
-0201 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
-0202 79207e03 set1 3 ,pdata 
-0203 67f08960 store 1 ,core_rf_rx_agc_ctrl 
+p_mouse_check_no_data_timeout:
+0141 6fe0c938 fetch 1 ,mem_device_flag 
+0142 c0000559 beq mode_24g_device ,p_mouse_24g_hibernate_set 
+0143 2020431b branch mouse_disconnect 
 
-p_g24_receive_rxon:
-0204 204021d5 call g24_prep 
-0205 c5978209 bmark0 mark_ble_lr ,p_g24_receive_nolr 
-0206 783cfc00 pulse dewhiten_code_calc 
-0207 2000001e nop 30 
-0208 204021d5 call g24_prep 
+p_mouse_drawing_optima:
+0144 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0145 c1018000 rtneq p3212 
+0146 2020471a branch mouse_drawing_optima 
 
-p_g24_receive_nolr:
-0209 7857fc00 disable user3 
-020a 7826fc00 enable decode_fec0 
-020b 7830fc00 enable is_rx 
-020c 78507c00 disable is_tx 
-020d 78287c00 enable swfine 
-020e 6fe14838 fetch 2 ,mem_24g_rx_window 
-020f 98003600 iforce stop_watch 
-0210 37c18400 correlate null ,timeout 
-0211 242c223d nbranch g24_sync_timeout ,sync 
-0212 20404caf call rf_debug_rx_sync_line 
-0213 c517a1f6 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
-0214 202021f6 branch g24_receive_skip_fec1 
+p_mouse_sensor_poweron:
+0147 20403f65 call mouse_sensor_spi_init 
+0148 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0149 c005814b beq ka8g2 ,p_mouse_ka8g2_sensor_init 
+014a 20204238 branch mouse_sensor_poweron_next 
 
-p_g24_retransmit:
-0215 6fe0cac5 fetch 1 ,mem_mouse_need_soft_reset 
-0216 247a0000 nrtn blank 
-0217 20400234 call p_mouse_select_device_by_pb_button 
-0218 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-0219 247a0000 nrtn blank 
-021a 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
-021b 1fe0fe01 increase 1 ,pdata 
-021c 67e148a3 store 2 ,mem_24g_txfail_cnt 
-021d 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
-021e c2822679 bbit1 4 ,g24_tx_attempt_fail 
-021f 20400224 call p_g24_transmit_hop_process 
-0220 6fe14c67 fetch 2 ,mem_retransmit 
-0221 1fe0fe01 increase 1 ,pdata 
-0222 67e14c67 store 2 ,mem_retransmit 
-0223 202001df branch p_g24_transmit_loop 
+p_mouse_ka8g2_sensor_init:
+014b 20400151 call p_mouse_ka8g2_sensor_reset 
+014c da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
+014d 2020423a branch mouse_sensor_poweron_end 
 
-p_g24_transmit_hop_process:
-0224 6848c8a6 fetcht 1 ,mem_24g_retry 
-0225 6fe0c8c6 fetch 1 ,mem_24g_fast_hop_count 
-0226 98467c00 isub temp ,null 
-0227 2421269c nbranch g24_tx_fast_hop ,positive 
-0228 18408401 increase 1 ,temp 
-0229 6048c8a6 storet 1 ,mem_24g_retry 
-022a 6fe0c8c6 fetch 1 ,mem_24g_fast_hop_count 
-022b c0078230 beq 15 ,p_g24_transmit_hop_process_4ms 
-022c 6fe0c8a6 fetch 1 ,mem_24g_retry 
-022d c00a2696 beq 20 ,g24_hop_ch_disable 
-022e c00f2696 beq 30 ,g24_hop_ch_disable 
-022f 20600000 rtn 
+p_mouse_sensor_reset:
+014e 6fe0c927 fetch 1 ,mem_config_sensor_type 
+014f c0058151 beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
+0150 20204232 branch mouse_sensor_reset 
 
-p_g24_transmit_hop_process_4ms:
-0230 6fe0c8a6 fetch 1 ,mem_24g_retry 
-0231 c0052696 beq 10 ,g24_hop_ch_disable 
-0232 c007a696 beq 15 ,g24_hop_ch_disable 
-0233 20600000 rtn 
+p_mouse_ka8g2_sensor_reset:
+0151 58009706 setarg 0x9706 
+0152 20204233 branch mouse_sensor_reset_end 
 
-p_mouse_select_device_by_pb_button:
-0234 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
-0235 c17f8000 rtneq gpio_disable 
-0236 da200000 arg 0 ,rega 
-0237 704b9606 jam mouse_pb_key ,mem_mouse_key_temp 
-0238 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
-0239 2040466a call mouse_pb_button_check 
-023a 67e0cb94 store 1 ,mem_mouse_pbkey_press_status 
-023b 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-023c c07f8241 beq gpio_disable ,p_mouse_3io6key_pb_button_check_end 
-023d 20404168 call mouse_matrix_public_gpio_reset 
+p_mouse_sensor_powerdown:
+0153 204041a7 call mouse_init_sunt 
+0154 20403f65 call mouse_sensor_spi_init 
+0155 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0156 c0058158 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
+0157 2020423e branch mouse_sensor_powerdown_end 
 
-p_mouse_select_device_by_pb_button_exit:
-023e 1a227e00 copy rega ,pdata 
-023f c283468d bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
-0240 20204680 branch mouse_select_device_button_up 
+p_mouse_ka8g2_sensor_powerdown:
+0158 58001f06 setarg 0x1f06 
+0159 20205b0c branch twspi_write 
 
-p_mouse_3io6key_pb_button_check_end:
-0241 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
-0242 20403f56 call mouse_gpio_config_input_pu 
-0243 2020023e branch p_mouse_select_device_by_pb_button_exit 
+p_mouse_key:
+015a 20400204 call p_mouse_check_firekey_gpio 
+015b 6fe0cc37 fetch 1 ,mem_fire_key_flag 
+015c 243a021b nbranch p_fire_key_press ,blank 
+015d 6fe0cc32 fetch 1 ,mem_fire_key_status 
+015e 243a021a nbranch p_fire_key_process ,blank 
+015f 20400161 call p_mouse_check_key_gpio 
+0160 202040dd branch mouse_key + 1 
 
-p_mouse_wakeup_24g:
-0244 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-0245 245a0248 ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
-0246 704be100 jam 0 ,mem_sensor_shutdown_flag 
-0247 20600000 rtn 
+p_mouse_check_key_gpio:
+0161 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0162 245a4121 ncall mouse_check_key_gpio_once ,blank 
+0163 da200000 arg 0 ,rega 
+0164 2040016b call p_mouse_check_lkey_gpio 
+0165 20400170 call p_mouse_check_rkey_gpio 
+0166 20400175 call p_mouse_check_mkey_gpio 
+0167 2040017a call p_mouse_check_bkkey_gpio 
+0168 20400187 call p_mouse_check_fwkey_gpio 
+0169 20400204 call p_mouse_check_firekey_gpio 
+016a 2020411e branch mouse_check_key_gpio_next 
 
-p_mouse_wakeup_24g_from_long_sleep:
-0248 204041aa call mouse_init_sensor_wakeup 
-0249 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-024a c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+p_mouse_check_lkey_gpio:
+016b 6fe0c918 fetch 1 ,mem_lbutton_gpio 
+016c 20400194 call p_mouse_gpio_config_output_high 
+016d 20404124 call mouse_check_lkey_gpio 
+016e 6848c918 fetcht 1 ,mem_lbutton_gpio 
+016f 20203f56 branch mouse_gpio_config_input_pu 
 
-p_mouse_wheel_set_wakeup:
-024b 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-024c d8400040 arg gpcfg_pullup ,temp 
-024d 20406093 call gpio_config_function_int 
-024e 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-024f d8400040 arg gpcfg_pullup ,temp 
-0250 20206093 branch gpio_config_function_int 
+p_mouse_check_rkey_gpio:
+0170 6fe0c919 fetch 1 ,mem_rbutton_gpio 
+0171 20400194 call p_mouse_gpio_config_output_high 
+0172 2040412a call mouse_check_rkey_gpio 
+0173 6848c919 fetcht 1 ,mem_rbutton_gpio 
+0174 20203f56 branch mouse_gpio_config_input_pu 
 
-p_mouse_app_enter_hibernate:
-0251 58000006 setarg pan_reg_config 
-0252 20405b0d call twspi_read 
-0253 c281be23 bbit1 3 ,mouse_app_enter_hibernate + 3 
-0254 2040050b call p_mouse_sensor_reset 
-0255 20400510 call p_mouse_sensor_powerdown 
-0256 20203e23 branch mouse_app_enter_hibernate + 3 
+p_mouse_check_mkey_gpio:
+0175 6fe0c91a fetch 1 ,mem_mbutton_gpio 
+0176 20400194 call p_mouse_gpio_config_output_high 
+0177 20404130 call mouse_check_mkey_gpio 
+0178 6848c91a fetcht 1 ,mem_mbutton_gpio 
+0179 20203f56 branch mouse_gpio_config_input_pu 
 
-p_mouse_setgpio_hibernate:
-0257 204042e9 call mouse_set_sdio_high 
-0258 20407fdc call clear_wake 
-0259 20400433 call p_mouse_logo_led_off 
-025a 2040015f call p_mouse_1io2led_all_off 
-025b 20404015 call mouse_before_hibernate_wheel_gpio_set 
-025c 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-025d 20406069 call gpio_out_active 
-025e 6848c910 fetcht 1 ,mem_matrix_public_gpio 
-025f 20406042 call gpio_clr_wake 
-0260 6fe0c920 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-0261 d840003f arg gpcfg_output_high ,temp 
-0262 20406093 call gpio_config_function_int 
-0263 d8400003 arg 3 ,temp 
-0264 20403f56 call mouse_gpio_config_input_pu 
-0265 20403e40 call mouse_lpm_before_common 
-0266 20406082 call gpio_pd_idle 
-0267 d8400013 arg 19 ,temp 
-0268 20403f56 call mouse_gpio_config_input_pu 
-0269 2040026c call p_mouse_gpio_set_high_impedance 
-026a 20400279 call p_mouse_adc_gpio_set_before_hibernate 
-026b 20200280 branch p_mouse_wheel_gpio_set_before_hibernate 
+p_mouse_check_bkkey_gpio:
+017a 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+017b c17f8000 rtneq gpio_disable 
+017c 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
+017d 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
+017e 1fe22600 copy pdata ,regc 
+017f 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0180 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+0181 c07f8183 beq gpio_disable ,p_mouse_3io6key_bk_check 
+0182 2020413e branch mouse_check_bkkey_gpio_next 
 
-p_mouse_gpio_set_high_impedance:
-026c 6fe1cbde fetch 3 ,mem_mouse_set_high_impedance_bit_set 
-026d 67e1895c store 3 ,mem_pdatatemp 
-026e df200014 arg 20 ,loopcnt 
-026f d8400000 arg 0 ,temp 
+p_mouse_3io6key_bk_check:
+0183 6fe0c90d fetch 1 ,mem_bk_button_gpio 
+0184 20400196 call p_mouse_gpio_config_output_low 
+0185 6848c90d fetcht 1 ,mem_bk_button_gpio 
+0186 2020414b branch mouse_3io6key_bk_check 
 
-p_mouse_gpio_set_high_impedance_bit_loop:
-0270 6fe1895c fetch 3 ,mem_pdatatemp 
-0271 2feffe00 isolate1 0 ,pdata 
-0272 2040e07f call gpio_set_high_impedance ,true 
-0273 6fe1895c fetch 3 ,mem_pdatatemp 
-0274 1fe37e00 rshift pdata ,pdata 
-0275 67e1895c store 3 ,mem_pdatatemp 
-0276 18408401 increase 1 ,temp 
-0277 c2000270 loop p_mouse_gpio_set_high_impedance_bit_loop 
-0278 20600000 rtn 
+p_mouse_check_fwkey_gpio:
+0187 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+0188 c17f8000 rtneq gpio_disable 
+0189 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
+018a 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
+018b 1fe22600 copy pdata ,regc 
+018c 6848c90e fetcht 1 ,mem_fw_button_gpio 
+018d 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+018e c07f8190 beq gpio_disable ,p_mouse_3io6key_fw_check 
+018f 20204157 branch mouse_check_fwkey_gpio_next 
 
-p_mouse_adc_gpio_set_before_hibernate:
-0279 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-027a c40a0000 rtnbit0 mouse_enable_adc 
-027b 6fe0c8fd fetch 1 ,mem_adc_config_flag_init 
-027c c1810000 rtnne adc_config_gpio 
-027d 6fe0c8fc fetch 1 ,mem_adc_channel_gpio 
-027e d84000c0 arg gpcfg_no_ie ,temp 
-027f 20206093 branch gpio_config_function_int 
+p_mouse_3io6key_fw_check:
+0190 6fe0c90e fetch 1 ,mem_fw_button_gpio 
+0191 20400196 call p_mouse_gpio_config_output_low 
+0192 6848c90e fetcht 1 ,mem_fw_button_gpio 
+0193 20204164 branch mouse_3io6key_fw_check 
 
-p_mouse_wheel_gpio_set_before_hibernate:
-0280 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0281 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
+p_mouse_gpio_config_output_high:
+0194 d840003f arg gpcfg_output_high ,temp 
+0195 20206093 branch gpio_config_function_int 
 
-p_mouse_wheel_clr_wakeup:
-0282 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-0283 20406042 call gpio_clr_wake 
-0284 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-0285 20406042 call gpio_clr_wake 
-0286 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
-0287 d8400080 arg gpcfg_pulldown ,temp 
-0288 20406093 call gpio_config_function_int 
-0289 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
-028a d8400080 arg gpcfg_pulldown ,temp 
-028b 20206093 branch gpio_config_function_int 
+p_mouse_gpio_config_output_low:
+0196 d840003e arg gpcfg_output_low ,temp 
+0197 20206093 branch gpio_config_function_int 
 
-p_mouse_lpm_before_common:
-028c 6848c913 fetcht 1 ,mem_whee_a_data_gpio 
-028d 20406050 call gpio_config_input 
-028e 6848c914 fetcht 1 ,mem_whee_b_data_gpio 
-028f 20406050 call gpio_config_input 
-0290 20403f88 call mouse_wheel_check 
-0291 6fe0c91f fetch 1 ,mem_mouse_sensor_sclk_gpio 
-0292 d840003f arg gpcfg_output_high ,temp 
-0293 20406093 call gpio_config_function_int 
-0294 20203e44 branch mouse_lpm_before_common_next 
+p_mouse_dpi_check:
+0198 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0199 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
+019a 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+019b c17f8000 rtneq gpio_disable 
+019c da200000 arg 0 ,rega 
+019d 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+019e 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+019f 204001a1 call p_mouse_dpi_key_check 
+01a0 2020402f branch mouse_dpi_check_next 
 
-p_g24_nodata_transmit:
-0295 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
-0296 205a02a3 call p_g24_send_abort_packet ,blank 
-0297 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0298 c1008000 rtneq g24_tx_timer_int_enable 
-0299 2040269f call g24_search_receiver 
+p_mouse_dpi_key_check:
+01a1 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01a2 c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+01a3 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+01a4 1fe22600 copy pdata ,regc 
+01a5 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+01a6 c07f81a8 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+01a7 2020403f branch mouse_dpi_key_check_next 
 
-p_g24_long_sleep:
-029a 204026bb call g24_lpm_wait 
-029b 24740000 nrtn user 
-029c 204026c4 call g24_setgpio_lpm_before 
-029d 704c6900 jam 0 ,mem_sleep_miss 
-029e 20400659 call p_send_time_long_wake 
-029f 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-02a0 245a3e33 ncall mouse_setgpio_hibernate ,blank 
-02a1 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
-02a2 202026b8 branch g24_long_sleep2 
+p_mouse_3io6key_dpi_check:
+01a8 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+01a9 20400196 call p_mouse_gpio_config_output_low 
+01aa 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+01ab 20204195 branch mouse_3io6key_check 
 
-p_g24_send_abort_packet:
-02a3 70483601 jam type_ms ,mem_24g_data_type 
-02a4 7048a701 jam 1 ,mem_24g_abort_pac 
-02a5 20402642 call g24_transmit_rf_ctrl_clear 
-02a6 67e0c7c6 store 1 ,mem_24g_txbuf 
-02a7 58000000 setarg 0 
-02a8 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
-02a9 6fe248a9 fetch 4 ,mem_24g_device_addr 
-02aa 67e247ce store 4 ,mem_24g_txbuf + 8 
-02ab 7048350c jam 12 ,mem_24g_datalen 
-02ac 6fe0c836 fetch 1 ,mem_24g_data_type 
-02ad 79207e03 set1 bit_abort ,pdata 
-02ae 67e0c836 store 1 ,mem_24g_data_type 
-02af 20402291 call g24_transmit_prep 
-02b0 202001a9 branch p_g24_transmit_start 
+p_mouse_dpi_another_gpio_check:
+01ac 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+01ad c41e8000 rtnbit0 mouse_enable_double_dpi_key 
+01ae 6fe0cc3a fetch 1 ,mem_mouse_another_dpi_connect_vin_flag 
+01af 243a01b5 nbranch p_mouse_dpi_another_gpio_connect_vin_check ,blank 
 
-p_mouse_priority_bb_event:
-02b1 1a627e00 copy regc ,pdata 
-02b2 c01e02e7 beq bt_evt_24g_attempt_success ,p_mouse_24g_attempt_success 
-02b3 c01c82e0 beq bt_evt_24g_pairing_complete ,p_mouse_24g_pairing_complete 
-02b4 c01d02f2 beq bt_evt_24g_attempt_fail ,p_mouse_24g_attempt_fail 
-02b5 c00082be beq bt_evt_bb_connected ,p_mouse_bb_event_connected 
-02b6 c01902cc beq bt_evt_le_start_enc ,p_mouse_le_ll_start_encryt 
-02b7 c02202d3 beq bt_evt_le_parse_conn_param_accepted ,p_mouse_le_parse_conn_param_accepted 
-02b8 c00a82c2 beq bt_evt_le_disconnected ,p_mouse_le_bb_disconnected 
-02b9 c00a02bb beq bt_evt_le_connected ,p_mouse_le_bb_event_connected 
-02ba 20204336 branch mouse_priority_bb_event + 2 
-
-p_mouse_le_bb_event_connected:
-02bb 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-02bc 245a03f6 ncall p_mouse_multi_led_on_enable ,blank 
-02bd 20204350 branch mouse_le_bb_event_connected 
-
-p_mouse_bb_event_connected:
-02be 20404544 call mouse_no_data_timer_init 
-02bf 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-02c0 245a03f6 ncall p_mouse_multi_led_on_enable ,blank 
-02c1 202043fa branch mouse_bb_event_connected 
-
-p_mouse_le_bb_disconnected:
-02c2 58000000 setarg 0 
-02c3 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-02c4 704ac600 jam 0 ,mem_mouse_le_bb_connected_flag 
-02c5 58000006 setarg le_interval_7_5ms 
-02c6 67e14372 store 2 ,mem_le_interval_min 
-02c7 67e14374 store 2 ,mem_le_interval_min + 2 
-02c8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02c9 c28dc366 bbit1 mouse_enable_bt_125hz ,mouse_le_bb_disconnected_next + 2 
-02ca 58000007 setarg le_interval_8_75ms 
-02cb 20204364 branch mouse_le_bb_disconnected_next 
-
-p_mouse_le_ll_start_encryt:
-02cc 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-02cd c00082d0 beq 1 ,p_mouse_le_ll_reconn_start_encryt 
-02ce 704b7614 jam 20 ,mem_le_start_encrypt_timer 
-02cf 20204373 branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_le_ll_reconn_start_encryt:
-02d0 2040436c call mouse_updata_le_param 
-02d1 704b7605 jam 5 ,mem_le_start_encrypt_timer 
-02d2 20204373 branch mouse_le_ll_enable_start_enc_flag 
-
-p_mouse_le_parse_conn_param_accepted:
-02d3 6fe082c1 fetch 1 ,mem_le_new_conninterval 
-02d4 1fe67c0c sub pdata ,le_interval_15ms ,null 
-02d5 24214384 nbranch mouse_le_conn_param_lpm_disable ,positive 
-02d6 67e14372 store 2 ,mem_le_interval_min 
-02d7 67e14374 store 2 ,mem_le_interval_min + 2 
-02d8 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-02d9 203a439a branch mouse_le_lpm_mult_reinit ,blank 
-02da 6848cb8a fetcht 1 ,mem_lpm_mult_init 
-02db 98467c00 isub temp ,null 
-02dc 2021439a branch mouse_le_lpm_mult_reinit ,positive 
-02dd 6fe082c3 fetch 1 ,mem_le_new_connslavelatency 
-02de 67e0cb8a store 1 ,mem_lpm_mult_init 
-02df 20204386 branch mouse_le_conn_param_lpm_enable 
+p_mouse_dpi_another_gpio_connect_gnd_check:
+01b0 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
+01b1 20400194 call p_mouse_gpio_config_output_high 
+01b2 204001c5 call p_mouse_dpi_another_check 
+01b3 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
+01b4 20203f56 branch mouse_gpio_config_input_pu 
 
-p_mouse_24g_pairing_complete:
-02e0 20404544 call mouse_no_data_timer_init 
-02e1 d8e00001 arg mouse_24g_pairing_flag ,queue 
-02e2 204046f4 call mouse_disable_function_flag 
-02e3 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-02e4 c0004859 beq 0 ,mouse_24g_pairing_complete_enable_poweron_timer 
-02e5 204003f6 call p_mouse_multi_led_on_enable 
-02e6 2020485a branch mouse_24g_pairing_complete_skip_poweron_timer 
+p_mouse_dpi_another_gpio_connect_vin_check:
+01b5 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
+01b6 793ffe07 set0 gpio_active_bit ,pdata 
+01b7 67e0cc3b store 1 ,mem_dpi_another_button_gpio 
+01b8 20400196 call p_mouse_gpio_config_output_low 
+01b9 704c3f00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+01ba 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
+01bb 6fe0cc3c fetch 1 ,mem_dpi_another_press_status 
+01bc 204001de call p_mouse_check_key_connect_vin_new 
+01bd 204001c9 call p_mouse_dpi_another_state_check 
+01be 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
+01bf 20203f56 branch mouse_gpio_config_input_pu 
 
-p_mouse_24g_attempt_success:
-02e7 6fe2483c fetch 4 ,mem_24g_addr 
-02e8 67e24891 store 4 ,mem_24g_receiver_addr 
-02e9 67e24993 store 4 ,mem_mouse_24g_addr 
-02ea 2040257e call g24_ch_syncword_crc8_init 
-02eb 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-02ec c00002ef beq 0 ,p_mouse_24g_attempt_success_next 
-02ed 204003f6 call p_mouse_multi_led_on_enable 
-02ee 202002f0 branch p_mouse_24g_attempt_success_next + 1 
+p_mouse_dpi_another_down_new:
+01c0 20403f56 call mouse_gpio_config_input_pu 
+01c1 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
+01c2 c1008000 rtneq dpi_button_state_down 
+01c3 704c3d01 jam dpi_button_state_down ,mem_dpi_another_button_state 
+01c4 20204069 branch mouse_dpi_process 
 
-p_mouse_24g_attempt_success_next:
-02ef 204048c6 call mouse_device_poweron_timer_init 
-02f0 20404544 call mouse_no_data_timer_init 
-02f1 2020484e branch mouse_24g_attempt_success 
+p_mouse_dpi_another_check:
+01c5 704c3f00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
+01c6 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
+01c7 6fe0cc3c fetch 1 ,mem_dpi_another_press_status 
+01c8 204001d4 call p_mouse_check_key_connect_gnd_new 
 
-p_mouse_24g_attempt_fail:
-02f2 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
-02f3 243a031d nbranch p_mouse_24g_hibernate_set ,blank 
-02f4 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-02f5 c00102f9 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
-02f6 c0020311 beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
-02f7 c0018316 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
-02f8 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
+p_mouse_dpi_another_state_check:
+01c9 67e0cc3c store 1 ,mem_dpi_another_press_status 
+01ca 6fe0cc3e fetch 1 ,mem_dpi_another_button_down_enable 
+01cb 203a01d0 branch p_mouse_dpi_another_up ,blank 
 
-p_mouse_24g_fast_conn_attempt_fail:
-02f9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-02fa c2978302 bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_start_auto_pair 
-02fb c2980302 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_start_auto_pair 
-02fc c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
-02fd 6fe24993 fetch 4 ,mem_mouse_24g_addr 
-02fe 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
-02ff 98467c00 isub temp ,null 
-0300 20228306 branch p_mouse_24g_start_pair_mode ,zero 
-0301 20204806 branch mouse_24g_reconn_dongle_start 
+p_mouse_dpi_another_down:
+01cc 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
+01cd c1008000 rtneq dpi_button_state_down 
+01ce 704c3d01 jam dpi_button_state_down ,mem_dpi_another_button_state 
+01cf 20204069 branch mouse_dpi_process 
 
-p_mouse_24g_start_auto_pair:
-0302 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-0303 c0004811 beq 0 ,mouse_24g_start_auto_pair 
-0304 204003f1 call p_mouse_multi_led_blink_enable 
-0305 20204812 branch mouse_24g_start_auto_pair + 1 
+p_mouse_dpi_another_up:
+01d0 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
+01d1 c1000000 rtneq dpi_button_state_up 
+01d2 704c3d00 jam dpi_button_state_up ,mem_dpi_another_button_state 
+01d3 20600000 rtn 
 
-p_mouse_24g_start_pair_mode:
-0306 70488b00 jam 0 ,mem_24g_reconn_type 
-0307 d8e00001 arg mouse_24g_pairing_flag ,queue 
-0308 204046f0 call mouse_enable_function_flag 
-0309 58000000 setarg 0 
-030a 67e14887 store 2 ,mem_24g_reconn_timeout 
-030b 20404576 call mouse_stop_discovery 
-030c 2040498e call mouse_low_voltage_led_blink_disable 
-030d 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-030e c000482d beq 0 ,mouse_24g_start_pair_mode_enable_blink_timer 
-030f 204003f1 call p_mouse_multi_led_blink_enable 
-0310 2020482e branch mouse_24g_start_pair_mode_skip_blink_timer 
+p_mouse_check_key_connect_gnd_new:
+01d4 1fe3fe00 lshift pdata ,pdata 
+01d5 1fe22400 copy pdata ,regb 
+01d6 20406059 call gpio_get_bit 
+01d7 7920a400 setflag true ,0 ,regb 
+01d8 1a417e07 and regb ,0x07 ,pdata 
+01d9 6848cc3f fetcht 1 ,mem_mouse_key_temp_patch 
+01da 18420e00 copy temp ,queue 
+01db c00381e9 beq 0x07 ,p_mouse_key_press 
+01dc c00001eb beq 0x00 ,p_mouse_key_release 
+01dd 20600000 rtn 
 
-p_mouse_24g_auto_pair_attempt_fail:
-0311 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0312 c317831b bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
-0313 6fe0cbb4 fetch 1 ,mem_device_number 
-0314 c000831b beq 1 ,p_mouse_24g_attempt_fail_enter_hibernate 
-0315 2020481a branch mouse_24g_first_bluetooth_reconnect 
+p_mouse_check_key_connect_vin_new:
+01de 1fe3fe00 lshift pdata ,pdata 
+01df 1fe22400 copy pdata ,regb 
+01e0 20403f54 call mouse_gpio_config_input_pd 
+01e1 20406059 call gpio_get_bit 
+01e2 7920a400 setflag true ,0 ,regb 
+01e3 1a417e07 and regb ,0x07 ,pdata 
+01e4 6848cc3f fetcht 1 ,mem_mouse_key_temp_patch 
+01e5 18420e00 copy temp ,queue 
+01e6 c00381e9 beq 0x07 ,p_mouse_key_press 
+01e7 c00001eb beq 0x00 ,p_mouse_key_release 
+01e8 20600000 rtn 
 
-p_mouse_reconn_dongle_attempt_fail:
-0316 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0317 c317831b bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
-0318 c289831b bbit1 mouse_enable_eeprom ,p_mouse_24g_attempt_fail_enter_hibernate 
-0319 c289031b bbit1 mouse_enable_flash ,p_mouse_24g_attempt_fail_enter_hibernate 
-031a 20204812 branch mouse_24g_start_auto_pair + 1 
+p_mouse_key_press:
+01e9 704c3e01 jam 1 ,mem_dpi_another_button_down_enable 
+01ea 20600000 rtn 
 
-p_mouse_24g_attempt_fail_enter_hibernate:
-031b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-031c c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
+p_mouse_key_release:
+01eb 704c3e00 jam 0 ,mem_dpi_another_button_down_enable 
+01ec 20600000 rtn 
 
-p_mouse_24g_hibernate_set:
-031d 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
-031e 20402652 call g24_transmit_next_packet 
-031f 5fffffff setarg -1 
-0320 67e2485c store 4 ,mem_24g_enter_hibernate 
-0321 58000000 setarg 0 
-0322 67e3c8d0 store 7 ,mem_mouse_key 
-0323 704be101 jam 1 ,mem_sensor_shutdown_flag 
-0324 20400510 call p_mouse_sensor_powerdown 
-0325 2020029a branch p_g24_long_sleep 
+p_mouse_select_device_by_pb_button:
+01ed 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
+01ee c17f8000 rtneq gpio_disable 
+01ef da200000 arg 0 ,rega 
+01f0 704b9606 jam mouse_pb_key ,mem_mouse_key_temp 
+01f1 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+01f2 2040466a call mouse_pb_button_check 
+01f3 67e0cb94 store 1 ,mem_mouse_pbkey_press_status 
+01f4 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+01f5 c07f81fa beq gpio_disable ,p_mouse_3io6key_pb_button_check_end 
+01f6 20404168 call mouse_matrix_public_gpio_reset 
 
-p_g24_pair_dispatch:
-0326 70488b00 jam default_24g_device ,mem_24g_reconn_type 
-0327 6fe14beb fetch 2 ,mem_24g_pair_count 
-0328 1fe0fe01 increase 1 ,pdata 
-0329 67e14beb store 2 ,mem_24g_pair_count 
-032a 6fe0cbeb fetch 1 ,mem_24g_pair_count 
-032b 1fe17eff and pdata ,0xff ,pdata 
-032c c000032e beq 0 ,p_g24_pair_dispatch2 
-032d 20600000 rtn 
-
-p_g24_pair_dispatch2:
-032e 6fe0c87f fetch 1 ,mem_24g_pair_sm 
-032f c07fa38e beq state_24g_pairing_success ,g24_pair_exit 
-0330 c0008335 beq state_24g_pairing_1 ,p_g24_pair_sm_1 
-0331 c0010337 beq state_24g_pairing_2 ,p_g24_pair_sm_2 
-0332 c001833d beq state_24g_pairing_3 ,p_g24_pair_sm_3 
-0333 c0020343 beq state_24g_pairing_4 ,p_g24_pair_sm_4 
-0334 20600000 rtn 
+p_mouse_select_device_by_pb_button_exit:
+01f7 1a227e00 copy rega ,pdata 
+01f8 c283468d bbit1 mouse_pb_key ,mouse_select_device_button_down + 2 
+01f9 20204680 branch mouse_select_device_button_up 
 
-p_g24_pair_sm_1:
-0335 7047c6ff jam datatype_attemp ,mem_24g_txbuf 
-0336 20200344 branch p_g24_pair_sm_prep 
+p_mouse_3io6key_pb_button_check_end:
+01fa 6848c91b fetcht 1 ,mem_config_select_device_button_gpio 
+01fb 20403f56 call mouse_gpio_config_input_pu 
+01fc 202001f7 branch p_mouse_select_device_by_pb_button_exit 
 
-p_g24_pair_sm_2:
-0337 6fe0c85b fetch 1 ,mem_24g_pair_switch 
-0338 203a033b branch p_g24_pair_sm_2_skip ,blank 
-0339 6fe248a9 fetch 4 ,mem_24g_device_addr 
-033a 204022dc call g24_update_addr_and_synccrc8 
+p_mouse_firebutton_connect_state_check:
+01fd 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
+01fe c17f8000 rtneq gpio_disable 
+01ff c2838202 bbit1 gpio_active_bit ,p_mouse_firebutton_connect_vin 
 
-p_g24_pair_sm_2_skip:
-033b 7047c6aa jam datatype_bind ,mem_24g_txbuf 
-033c 20200344 branch p_g24_pair_sm_prep 
+p_mouse_firebutton_connect_gnd:
+0200 704c3900 jam 0 ,mem_mouse_firebutton_connect_vin_flag 
+0201 20600000 rtn 
 
-p_g24_pair_sm_3:
-033d 7047c655 jam datatype_config ,mem_24g_txbuf 
-033e 6fe0c85b fetch 1 ,mem_24g_pair_switch 
-033f 203a0344 branch p_g24_pair_sm_prep ,blank 
-0340 6fe24891 fetch 4 ,mem_24g_receiver_addr 
-0341 67e247c8 store 4 ,mem_24g_txbuf + 2 
-0342 20200346 branch p_g24_pair_sm_common 
+p_mouse_firebutton_connect_vin:
+0202 704c3901 jam 1 ,mem_mouse_firebutton_connect_vin_flag 
+0203 20600000 rtn 
 
-p_g24_pair_sm_4:
-0343 7047c622 jam datatype_ok ,mem_24g_txbuf 
+p_mouse_check_firekey_gpio:
+0204 da400000 arg 0 ,regb 
+0205 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
+0206 c17f8000 rtneq gpio_disable 
+0207 6fe0cc39 fetch 1 ,mem_mouse_firebutton_connect_vin_flag 
+0208 243a0211 nbranch p_mouse_check_firekey_connect_vin ,blank 
 
-p_g24_pair_sm_prep:
-0344 6fe248a9 fetch 4 ,mem_24g_device_addr 
-0345 67e247c8 store 4 ,mem_24g_txbuf + 2 
+p_mouse_check_firekey_connect_gnd:
+0209 6848cc38 fetcht 1 ,mem_firebutton_gpio 
+020a 20403f56 call mouse_gpio_config_input_pu 
+020b 6848cc38 fetcht 1 ,mem_firebutton_gpio 
+020c 20406059 call gpio_get_bit 
+020d 7920a400 setflag true ,0 ,regb 
 
-p_g24_pair_sm_common:
-0346 6fe0c836 fetch 1 ,mem_24g_data_type 
-0347 1fe17e07 and_into bits_data ,pdata 
-0348 67e0c7c7 store 1 ,mem_24g_txbuf + 1 
-0349 7047cc00 jam 0 ,mem_24g_txbuf + 6 
-034a 70483507 jam 7 ,mem_24g_datalen 
-034b 20402291 call g24_transmit_prep 
-034c 204001e8 call p_g24_transmit_receive_ack 
-034d 20202360 branch g24_pair_sm_common + 7 
+p_mouse_firekey_state_store:
+020e 1a427e00 copy regb ,pdata 
+020f 67e0cc37 store 1 ,mem_fire_key_flag 
+0210 20600000 rtn 
 
-p_g24_reconn_dispatch:
-034e 6fe14889 fetch 2 ,mem_24g_reconn_count 
-034f d84001f8 arg 0x01f8 ,temp 
-0350 98417e00 iand temp ,pdata 
-0351 203a0356 branch p_g24_reconn_dispatch_next ,blank 
-0352 6fe14889 fetch 2 ,mem_24g_reconn_count 
-0353 1fe0fe01 increase 1 ,pdata 
-0354 67e14889 store 2 ,mem_24g_reconn_count 
-0355 20600000 rtn 
+p_mouse_check_firekey_connect_vin:
+0211 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
+0212 793ffe07 set0 gpio_active_bit ,pdata 
+0213 67e0cc38 store 1 ,mem_firebutton_gpio 
+0214 6848cc38 fetcht 1 ,mem_firebutton_gpio 
+0215 20403f54 call mouse_gpio_config_input_pd 
+0216 6848cc38 fetcht 1 ,mem_firebutton_gpio 
+0217 20406059 call gpio_get_bit 
+0218 7d20a400 nsetflag true ,0 ,regb 
+0219 2020020e branch p_mouse_firekey_state_store 
 
-p_g24_reconn_dispatch_next:
-0356 2040259a call g24_reconn_data_prep 
-0357 204001e8 call p_g24_transmit_receive_ack 
-0358 242c036f nbranch p_g24_reconn_device_fail ,sync 
-0359 2437836f nbranch p_g24_reconn_device_fail ,user3 
-035a 20402672 call g24_ackpayload_parse 
-035b 6fe24877 fetch 4 ,mem_24g_pair_addr 
-035c 684a483c fetcht 4 ,mem_24g_addr 
-035d 98467c00 isub temp ,null 
-035e 2022a32e branch g24_pair_start ,zero 
-035f 6fe248a9 fetch 4 ,mem_24g_device_addr 
-0360 684a483c fetcht 4 ,mem_24g_addr 
-0361 98467c00 isub temp ,null 
-0362 2042836b call p_g24_store_receiver_addr ,zero 
-0363 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
-0364 793ffe02 set0 state_24g_reconn ,pdata 
-0365 67e0c8a1 store 1 ,mem_24g_conn_sm 
-0366 58000000 setarg 0 
-0367 67e14883 store 2 ,mem_24g_pair_timeout 
-0368 67e14889 store 2 ,mem_24g_reconn_count 
-0369 67e14887 store 2 ,mem_24g_reconn_timeout 
-036a 20202595 branch g24_reconn_attempt_success 
+p_fire_key_process:
+021a c0020233 beq 4 ,p_fire_key_process_end 
 
-p_g24_store_receiver_addr:
-036b 6fe2480c fetch 4 ,mem_24g_rxpayload + 2 
-036c 207a0000 rtn blank 
-036d 67e24891 store 4 ,mem_24g_receiver_addr 
-036e 2020257e branch g24_ch_syncword_crc8_init 
+p_fire_key_press:
+021b 20400236 call p_firekey_clkn_bt_timer_check 
+021c 6fe24c33 fetch 4 ,mem_fire_key_delay 
+021d d84000a0 arg 0xa0 ,temp 
+021e 98408400 iadd temp ,temp 
+021f 1c427e00 copy clkn_bt ,pdata 
+0220 98467c00 isub temp ,null 
+0221 24610000 nrtn positive 
+0222 67e24c33 store 4 ,mem_fire_key_delay 
+0223 6fe0cc32 fetch 1 ,mem_fire_key_status 
+0224 c0000229 beq 0 ,p_fire_key_process_start 
+0225 c000822c beq 1 ,p_fire_key_process_release1 
+0226 c001022f beq 2 ,p_fire_key_process_start2 
+0227 c0018231 beq 3 ,p_fire_key_process_release2 
+0228 20600000 rtn 
 
-p_g24_reconn_device_fail:
-036f 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
-0370 203a22cb branch g24_ch ,blank 
-0371 6fe14889 fetch 2 ,mem_24g_reconn_count 
-0372 1fe0fe01 increase 1 ,pdata 
-0373 67e14889 store 2 ,mem_24g_reconn_count 
-0374 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
-0375 2feffe01 isolate1 1 ,pdata 
-0376 6fe0c88b fetch 1 ,mem_24g_reconn_type 
-0377 c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
-0378 c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
-0379 c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
-037a c002037c beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
-037b 2020256e branch g24_reconn_receiver_addr 
+p_fire_key_process_start:
+0229 704c3201 jam 1 ,mem_fire_key_status 
 
-p_g24_reconn_pair_and_3_0:
-037c 2020a575 branch g24_reconn_device_3_0_addr ,true 
-037d 20202339 branch g24_pair_init_param 
+p_fire_key_down:
+022a 7048d001 jam 1 ,mem_mouse_key 
+022b 20207e54 branch enable_user 
 
-p_g24_dispatch:
-037e c61a0000 rtnmark1 mark_adc_enable 
-037f c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
+p_fire_key_process_release1:
+022c 704c3202 jam 2 ,mem_fire_key_status 
 
-p_g24_transmit_dispatch:
-0380 c6930000 rtnmark0 mark_24g 
-0381 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
-0382 c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
-0383 c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
-0384 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0385 c0008387 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
-0386 20202621 branch g24_transmit_no_interrupt 
+p_fire_key_release:
+022d 7048d000 jam 0 ,mem_mouse_key 
+022e 20207e54 branch enable_user 
 
-p_g24_transmit_by_interrupt:
-0387 204022ea call g24_timer_check 
-0388 24340380 nbranch p_g24_transmit_dispatch ,user 
-0389 204026db call g24_interval_calibrate 
-038a 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
-038b 1fe0fe01 increase 1 ,pdata 
-038c 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
-038d 20202621 branch g24_transmit_no_interrupt 
+p_fire_key_process_start2:
+022f 704c3203 jam 3 ,mem_fire_key_status 
+0230 2020022a branch p_fire_key_down 
 
-p_mouse_start_work:
-038e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-038f c297c80a bbit1 mouse_enable_24g_first_auto_pairing ,mouse_24g_first_start_auto_pair_mode 
-0390 6fe0c938 fetch 1 ,mem_device_flag 
-0391 c0000393 beq mode_24g_device ,p_mouse_24g_start_mode 
-0392 20203d57 branch mouse_start_work + 5 
+p_fire_key_process_release2:
+0231 704c3200 jam 0 ,mem_fire_key_status 
+0232 2020022d branch p_fire_key_release 
 
-p_mouse_24g_start_mode:
-0393 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0394 c308c803 bbit0 mouse_enable_24g ,mouse_24g_mode_setup_error 
-0395 20403d65 call mouse_wakeup_from_power_check 
-0396 2034039d branch p_mouse_24g_reconn_dongle_start ,user 
-0397 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0398 c29803a0 bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_reconn_general_dongle 
-0399 c31883a0 bbit0 mouse_enable_24g_power_on_pairing ,p_mouse_24g_reconn_general_dongle 
-039a 20404110 call mouse_key_check_once 
-039b 1a217e07 and rega ,0x07 ,pdata 
-039c 202047ff branch mouse_24g_start_mode + 9 
+p_fire_key_process_end:
+0233 704c3200 jam 0 ,mem_fire_key_status 
+0234 7048d000 jam 0 ,mem_mouse_key 
+0235 20600000 rtn 
 
-p_mouse_24g_reconn_dongle_start:
-039d 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-039e 245a03f1 ncall p_mouse_multi_led_blink_enable ,blank 
-039f 20204806 branch mouse_24g_reconn_dongle_start 
+p_firekey_clkn_bt_timer_check:
+0236 684a4c33 fetcht 4 ,mem_fire_key_delay 
+0237 1c427e00 copy clkn_bt ,pdata 
+0238 98467c00 isub temp ,null 
+0239 2441023b ncall p_firekey_clkn_bt_timer_timeout ,positive 
+023a 20600000 rtn 
 
-p_mouse_24g_reconn_general_dongle:
-03a0 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-03a1 245a03f1 ncall p_mouse_multi_led_blink_enable ,blank 
-03a2 2020480c branch mouse_24g_reconn_general_dongle 
+p_firekey_clkn_bt_timer_timeout:
+023b 58000000 setarg 0 
+023c 67e24c33 store 4 ,mem_fire_key_delay 
+023d 20600000 rtn 
 
-p_g24_transmit:
-03a3 6fe0c865 fetch 1 ,mem_24g_tx_phy 
-03a4 2040168b call le_enable_phy_by_pdata 
-03a5 6fe2483c fetch 4 ,mem_24g_addr 
-03a6 98001200 iforce access 
-03a7 204021d5 call g24_prep 
-03a8 20402243 call g24_set_freq_tx 
-03a9 79202a00 set1 txgfsk ,radio_ctrl 
-03aa 782efc00 enable encode_fec0 
-03ab 78307c00 enable is_tx 
-03ac 7850fc00 disable is_rx 
-03ad 20404cb5 call rf_debug_tx_on_line 
-03ae 785d7c00 disable lr_s2en 
-03af c517a273 bmark1 mark_ble_lr ,g24_transmit_lr 
-03b0 c51683b7 bmark1 mark_ble_2m ,p_g24_transmit_2m 
-03b1 19317e00 rshift16 access ,pdata 
-03b2 1fecfe00 rshift8 pdata ,pdata 
-03b3 1ff1fe00 rshift4 pdata ,pdata 
-03b4 08008628 inject mod ,40 
+p_mouse_seting_dpi:
+023e 2040408f call mouse_setting_dpi_4_level 
+023f 20400241 call p_mouse_dpi_led_blink_delay 
+0240 20204098 branch mouse_seting_sensor_type 
 
-p_g24_transmit_packet:
-03b5 c517a25c bmark1 mark_ble_lr ,g24_transmit_nolr 
-03b6 2020225c branch g24_transmit_nolr 
+p_mouse_dpi_led_blink_delay:
+0241 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+0242 c17f8000 rtneq gpio_disable 
+0243 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
+0244 247a0000 nrtn blank 
+0245 6fe14883 fetch 2 ,mem_24g_pair_timeout 
+0246 247a0000 nrtn blank 
+0247 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
+0248 247a0000 nrtn blank 
+0249 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
+024a 247a0000 nrtn blank 
+024b 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
+024c 203a024f branch p_mouse_dpi_led_blink_init ,blank 
+024d 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
+024e 20600000 rtn 
 
-p_g24_transmit_2m:
-03b7 6fe0c1f0 fetch 1 ,mem_system_clk 
-03b8 1fe37200 rshift pdata ,loopcnt 
+p_mouse_dpi_led_blink_init:
+024f 6fe0c927 fetch 1 ,mem_config_sensor_type 
+0250 c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
+0251 c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
+0252 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
+0253 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
+0254 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
+0255 67e14930 store 2 ,mem_mouse_on_time 
+0256 67e14932 store 2 ,mem_mouse_off_time 
+0257 da200000 arg 0 ,rega 
+0258 6848c992 fetcht 1 ,mem_mouse_dpi 
+0259 18408402 increase 2 ,temp 
+025a 18467c03 sub temp ,3 ,null 
+025b 2041025e call p_mouse_dpi_led_blink_init_level_4 ,positive 
+025c 24410262 ncall p_mouse_dpi_led_blink_count_clean ,positive 
+025d 202048ff branch mouse_dpi_led_blink_init_end 
 
-p_g24_transmit_2m_dealy:
-03b9 20000002 nop 2 
-03ba c20003b9 loop p_g24_transmit_2m_dealy 
-03bb 19317e00 rshift16 access ,pdata 
-03bc 1fecfe00 rshift8 pdata ,pdata 
-03bd 1ff18400 rshift4 pdata ,temp 
-03be 18427e00 copy temp ,pdata 
-03bf 08008608 inject mod ,8 
-03c0 18427e00 copy temp ,pdata 
-03c1 08008628 inject mod ,40 
-03c2 202003b5 branch p_g24_transmit_packet 
+p_mouse_dpi_led_blink_init_level_4:
+025e 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+025f c40e0000 rtnbit0 mouse_enable_dpi_level_4 
+0260 18408401 increase 1 ,temp 
+0261 20600000 rtn 
 
-p_mouse_seting_dpi:
-03c3 2040408f call mouse_setting_dpi_4_level 
-03c4 204003c6 call p_mouse_dpi_led_blink_delay 
-03c5 20204098 branch mouse_seting_sensor_type 
+p_mouse_dpi_led_blink_count_clean:
+0262 184085fd increase -3 ,temp 
+0263 20600000 rtn 
 
-p_mouse_dpi_led_blink_delay:
-03c6 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-03c7 c17f8000 rtneq gpio_disable 
-03c8 6fe14ac2 fetch 2 ,mem_mouse_discovery_timer 
-03c9 247a0000 nrtn blank 
-03ca 6fe14883 fetch 2 ,mem_24g_pair_timeout 
-03cb 247a0000 nrtn blank 
-03cc 6fe14887 fetch 2 ,mem_24g_reconn_timeout 
-03cd 247a0000 nrtn blank 
-03ce 6fe0cba7 fetch 1 ,mem_mouse_device_poweron_timer_count 
-03cf 247a0000 nrtn blank 
-03d0 6fe0cbc1 fetch 1 ,mem_mouse_dpi_led_delay_count_init 
-03d1 203a043c branch p_mouse_dpi_led_blink_init ,blank 
-03d2 67e0cba8 store 1 ,mem_mouse_dpi_led_delay_count 
-03d3 20600000 rtn 
+p_mouse_double_dpi_judge:
+0264 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0265 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
+0266 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
+0267 c283826a bbit1 gpio_active_bit ,p_mouse_another_dpi_connect_vin 
 
-p_mouse_bb_event_timer:
-03d4 20403e9b call mouse_adc_read 
-03d5 20404956 call mouse_low_voltage_led_timer 
-03d6 2040232b call g24_pair_timeout_timer 
-03d7 20402556 call g24_reconn_timeout_timer 
-03d8 204047cd call mouse_24g_long_sleep_param_update_timer 
-03d9 204048be call mouse_device_poweron_timer 
-03da 20400439 call p_mouse_dpi_led_blink_delay_timer 
-03db 204003fa call p_mouse_led_multi_timer 
-03dc 2040407c call mouse_dpi_key_check_long_press 
-03dd 204044cc call mouse_bt_discovery_check 
-03de 20400451 call p_mouse_commbination_key_process 
-03df 204044ff call mouse_check_discovery_timeout_timer 
-03e0 20404504 call mouse_check_direct_timeout_timer 
-03e1 20404512 call mouse_le_enable_att_list_timer 
-03e2 20400468 call p_mouse_le_battery_updata_timer 
-03e3 20404515 call mouse_le_send_smp_security_request_timer 
-03e4 2040452a call mouse_check_hid_handshake_timer 
-03e5 2040452d call mouse_bt_check_sniff_req_timeout_timer 
-03e6 20404532 call mouse_check_reconnect_delay_long_sleep 
-03e7 20404535 call mouse_current_mult_update_timer 
-03e8 20404022 call mouse_wheel_trigger_timer 
-03e9 20404547 call mouse_store_information_delay_timer 
-03ea 20400429 call p_mouse_logo_led_on_timer 
-03eb 2020046b branch p_mouse_check_no_data_timeout_timer 
+p_mouse_another_dpi_connect_gnd:
+0268 704c3a00 jam 0 ,mem_mouse_another_dpi_connect_vin_flag 
+0269 20600000 rtn 
 
-p_mouse_device_multi_led_poweron2s_init:
-03ec 6fe0cc46 fetch 1 ,mem_mouse_multi_led_powon2s_timer_init 
-03ed 67e0cc47 store 1 ,mem_mouse_multi_led_powon2s_timer 
-03ee 6fe0cc44 fetch 1 ,mem_mouse_multi_led_poweron2s_flag_init 
-03ef 67e0cc45 store 1 ,mem_mouse_multi_led_poweron2s_flag 
-03f0 20600000 rtn 
+p_mouse_another_dpi_connect_vin:
+026a 704c3a01 jam 1 ,mem_mouse_another_dpi_connect_vin_flag 
+026b 20600000 rtn 
 
-p_mouse_multi_led_blink_enable:
-03f1 704c4101 jam 1 ,mem_mouse_multi_led_blink_enable 
-03f2 704c4301 jam multi_led_blink ,mem_mouse_multi_led_type 
-03f3 6fe0cc4b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-03f4 67e0cc4c store 1 ,mem_mouse_multi_led_blink_timer 
-03f5 20600000 rtn 
+p_mouse_dpi_process:
+026c 20404072 call mouse_dpi_ghost_check 
+026d 20740000 rtn user 
+026e 6fe0c992 fetch 1 ,mem_mouse_dpi 
+026f 1fe20400 copy pdata ,temp 
+0270 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0271 c29e8278 bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
+0272 18427e00 copy temp ,pdata 
+0273 1fe0fe01 increase 1 ,pdata 
+0274 1fe17e03 and pdata ,0x03 ,pdata 
 
-p_mouse_multi_led_on_enable:
-03f6 704c4101 jam 1 ,mem_mouse_multi_led_blink_enable 
-03f7 704c4c00 jam 0 ,mem_mouse_multi_led_blink_timer 
-03f8 704c4300 jam multi_led_on ,mem_mouse_multi_led_type 
-03f9 20600000 rtn 
+p_mouse_dpi_store:
+0275 67e0c992 store 1 ,mem_mouse_dpi 
+0276 20404095 call mouse_seting_dpi 
+0277 202045ee branch mouse_store_device_info_delay 
 
-p_mouse_led_multi_timer:
-03fa 6fe0cc41 fetch 1 ,mem_mouse_multi_led_blink_enable 
-03fb 207a0000 rtn blank 
-03fc 6fe0cc43 fetch 1 ,mem_mouse_multi_led_type 
-03fd c000840a beq multi_led_blink ,p_mouse_multi_led_type_blink 
+p_mouse_double_dpi_check:
+0278 6fe0cc3e fetch 1 ,mem_dpi_another_button_down_enable 
+0279 243a0295 nbranch p_mouse_another_dpi_button_down ,blank 
 
-p_mouse_multi_led_type_on:
-03fe 6fe0cc45 fetch 1 ,mem_mouse_multi_led_poweron2s_flag 
-03ff 243a0402 nbranch p_mouse_device_multi_led_poweron2s ,blank 
-0400 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
-0401 20600000 rtn 
+p_mouse_dpi_increase:
+027a 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+027b c28e0289 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
+027c 18427e00 copy temp ,pdata 
+027d c1008000 rtneq mouse_dpi_level2 
 
-p_mouse_device_multi_led_poweron2s:
-0402 6fe0cc47 fetch 1 ,mem_mouse_multi_led_powon2s_timer 
-0403 203a0407 branch p_mouse_multi_led_poweron2s_and_flag_off ,blank 
-0404 1fe0ffff increase -1 
-0405 67e0cc47 store 1 ,mem_mouse_multi_led_powon2s_timer 
-0406 20200411 branch p_mouse_device_multi_led_on 
+p_mouse_dpi_increase_level:
+027e c0000285 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
+027f c0010283 beq mouse_dpi_level3 ,p_mouse_dpi_level_2 
+0280 20600000 rtn 
 
-p_mouse_multi_led_poweron2s_and_flag_off:
-0407 704c4500 jam 0 ,mem_mouse_multi_led_poweron2s_flag 
-0408 704c4100 jam 0 ,mem_mouse_multi_led_blink_enable 
-0409 2020041d branch p_mouse_device_multi_led_off 
+p_mouse_dpi_level_1:
+0281 58000002 setarg 2 
+0282 20200275 branch p_mouse_dpi_store 
 
-p_mouse_multi_led_type_blink:
-040a da604c4c arg mem_mouse_multi_led_blink_timer ,regc 
-040b da40040d arg p_mouse_multi_led_type_blink_timeout ,regb 
-040c 2020318a branch timer_single_step 
+p_mouse_dpi_level_2:
+0283 58000000 setarg 0 
+0284 20200275 branch p_mouse_dpi_store 
 
-p_mouse_multi_led_type_blink_timeout:
-040d 6fe0cc4b fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-040e 67e0cc4c store 1 ,mem_mouse_multi_led_blink_timer 
-040f 6fe0cc4d fetch 1 ,mem_mouse_multi_led_state 
-0410 c000841d beq on ,p_mouse_device_multi_led_off 
+p_mouse_dpi_level_3:
+0285 58000001 setarg 1 
+0286 20200275 branch p_mouse_dpi_store 
 
-p_mouse_device_multi_led_on:
-0411 704c4d01 jam on ,mem_mouse_multi_led_state 
-0412 6fe0c938 fetch 1 ,mem_device_flag 
-0413 c0000417 beq mode_24g_device ,p_mouse_device_24g_led_on 
-0414 c0008419 beq mode_bt_device1 ,p_mouse_device_bt1_led_on 
-0415 c001041b beq mode_bt_device2 ,p_mouse_device_bt2_led_on 
-0416 20600000 rtn 
+p_mouse_dpi_level_4:
+0287 58000003 setarg 3 
+0288 20200275 branch p_mouse_dpi_store 
 
-p_mouse_device_24g_led_on:
-0417 6848cc48 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
-0418 2020041c branch p_mouse_device_led_on 
+p_mouse_dpi_increase_level_4:
+0289 18427e00 copy temp ,pdata 
+028a c1008000 rtneq mouse_dpi_level2 
+028b c0000285 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
+028c c0010287 beq mouse_dpi_level3 ,p_mouse_dpi_level_4 
+028d c0018283 beq mouse_dpi_level4 ,p_mouse_dpi_level_2 
+028e 20600000 rtn 
 
-p_mouse_device_bt1_led_on:
-0419 6848cc49 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
-041a 2020041c branch p_mouse_device_led_on 
+p_mouse_dpi_decrease_level_4:
+028f 18427e00 copy temp ,pdata 
+0290 c1010000 rtneq mouse_dpi_level3 
+0291 c0000287 beq mouse_dpi_level1 ,p_mouse_dpi_level_4 
+0292 c0008283 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
+0293 c0018281 beq mouse_dpi_level4 ,p_mouse_dpi_level_1 
+0294 20600000 rtn 
 
-p_mouse_device_bt2_led_on:
-041b 6848cc4a fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+p_mouse_another_dpi_button_down:
 
-p_mouse_device_led_on:
-041c 20206069 branch gpio_out_active 
+p_mouse_dpi_decrease:
+0295 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0296 c28e028f bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_decrease_level_4 
+0297 18427e00 copy temp ,pdata 
+0298 c1010000 rtneq mouse_dpi_level3 
 
-p_mouse_device_multi_led_off:
-041d 704c4d00 jam off ,mem_mouse_multi_led_state 
-041e 6fe0c938 fetch 1 ,mem_device_flag 
-041f c0000423 beq mode_24g_device ,p_mouse_device_24g_led_off 
-0420 c0008425 beq mode_bt_device1 ,p_mouse_device_bt1_led_off 
-0421 c0010427 beq mode_bt_device2 ,p_mouse_device_bt2_led_off 
-0422 20600000 rtn 
+p_mouse_dpi_decrease_level:
+0299 c0000281 beq mouse_dpi_level1 ,p_mouse_dpi_level_1 
+029a c0008283 beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
+029b 20600000 rtn 
 
-p_mouse_device_24g_led_off:
-0423 6848cc48 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
-0424 2020607f branch gpio_set_high_impedance 
+p_g24_report:
+029c 58017700 setarg 0x17700 
+029d 67e1cc4e store 3 ,mem_24g_tsniff 
+029e 20402613 call g24_interval_param_8ms 
+029f 7048c61e jam 30 ,mem_24g_fast_hop_count 
+02a0 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02a1 c40c0000 rtnbit0 mouse_enable_24g_250hz 
+02a2 2040260b call g24_interval_param_4ms 
+02a3 7048c60f jam 15 ,mem_24g_fast_hop_count 
+02a4 5800bb80 setarg 0xbb80 
+02a5 67e1cc4e store 3 ,mem_24g_tsniff 
+02a6 58004800 setarg 0x4800 
+02a7 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+02a8 20600000 rtn 
 
-p_mouse_device_bt1_led_off:
-0425 6848cc49 fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
-0426 2020607f branch gpio_set_high_impedance 
+p_g24_short_sleep_set_8ms:
+02a9 5800e290 setarg 58000 
+02aa 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+02ab 20600000 rtn 
 
-p_mouse_device_bt2_led_off:
-0427 6848cc4a fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
-0428 2020607f branch gpio_set_high_impedance 
+p_g24_short_sleep_set_4ms:
+02ac 58001770 setarg 6000 
+02ad 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+02ae 20600000 rtn 
 
-p_mouse_logo_led_on_timer:
-0429 6fe0cbed fetch 1 ,mem_mouse_logo_led_gpio 
-042a c17f8000 rtneq gpio_disable 
-042b 6fe14ab2 fetch 2 ,mem_mouse_no_data_timer 
-042c 207a0000 rtn blank 
-042d 6fe14bbe fetch 2 ,mem_mouse_no_data_timeout 
-042e 68494ab2 fetcht 2 ,mem_mouse_no_data_timer 
-042f 98460400 isub temp ,temp 
-0430 6fe14bee fetch 2 ,mem_mouse_logo_led_on_time_init 
-0431 98467e00 isub temp ,pdata 
-0432 20210437 branch p_mouse_logo_led_on ,positive 
+p_mouse_24g_package_data:
+02af c6930000 rtnmark0 mark_24g 
+02b0 20403f70 call mouse_motion 
+02b1 24740000 nrtn user 
+02b2 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02b3 c30a82b6 bbit0 mouse_enable_keyboard ,p_mouse_24g_mouse_package_data 
+02b4 6fe0cb8b fetch 1 ,mem_customer_key 
+02b5 243a4884 nbranch mouse_24g_keyboard_package_data ,blank 
 
-p_mouse_logo_led_off:
-0433 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
-0434 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-0435 c000e07f beq 1 ,gpio_set_high_impedance 
-0436 20206065 branch gpio_out_inactive 
+p_mouse_24g_mouse_package_data:
+02b6 204042cb call mouse_data_xy_release 
+02b7 6fe0c836 fetch 1 ,mem_24g_data_type 
+02b8 c28082c5 bbit1 1 ,p_mouse_24g_mouse_package_data_now 
+02b9 6848c7c7 fetcht 1 ,mem_24g_txbuf + 1 
+02ba 6fe0c8d0 fetch 1 ,mem_mouse_key 
+02bb 9841fe00 ior temp ,pdata 
+02bc 67e0c8d0 store 1 ,mem_mouse_key 
+02bd 6848c7cc fetcht 1 ,mem_24g_txbuf + 6 
+02be 6fe0c8d5 fetch 1 ,mem_mouse_z 
+02bf 9840fe00 iadd temp ,pdata 
+02c0 67e0c8d5 store 1 ,mem_mouse_z 
+02c1 6848c7cd fetcht 1 ,mem_24g_txbuf + 7 
+02c2 6fe0c8d6 fetch 1 ,mem_mouse_tz 
+02c3 9840fe00 iadd temp ,pdata 
+02c4 67e0c8d6 store 1 ,mem_mouse_tz 
 
-p_mouse_logo_led_on:
-0437 6848cbed fetcht 1 ,mem_mouse_logo_led_gpio 
-0438 20406069 call gpio_out_active 
+p_mouse_24g_mouse_package_data_now:
+02c5 70483601 jam type_ms ,mem_24g_data_type 
+02c6 da200007 arg 7 ,rega 
+02c7 da4048d0 arg mem_mouse_key ,regb 
+02c8 20600000 rtn 
 
-p_mouse_dpi_led_blink_delay_timer:
-0439 da604ba8 arg mem_mouse_dpi_led_delay_count ,regc 
-043a da40043c arg p_mouse_dpi_led_blink_init ,regb 
-043b 2020318a branch timer_single_step 
+p_mouse_24g_search_dongle:
+02c9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+02ca c40b0000 rtnbit0 mouse_enable_24g_search_dongle 
+02cb 6fe0caae fetch 1 ,mem_mouse_long_mult_flag 
+02cc 207a0000 rtn blank 
+02cd 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+02ce 207a0000 rtn blank 
+02cf 6fe0cba1 fetch 1 ,mem_mouse_search_dongle_interval 
+02d0 1fe0fe01 increase 1 ,pdata 
+02d1 1fe17e03 and_into 3 ,pdata 
+02d2 67e0cba1 store 1 ,mem_mouse_search_dongle_interval 
+02d3 247a0000 nrtn blank 
+02d4 704ba200 jam 0 ,mem_mouse_search_dongle_ch 
 
-p_mouse_dpi_led_blink_init:
-043c 6fe0c927 fetch 1 ,mem_config_sensor_type 
-043d c001c8f2 beq p3212 ,mouse_dpi_led_blink_init 
-043e c005c8f2 beq ka8g2 ,mouse_dpi_led_blink_init 
-043f 6fe0c923 fetch 1 ,mem_dpi_led_gpio 
-0440 67e0c92f store 1 ,mem_mouse_struct_led_gpio 
-0441 6fe14bc2 fetch 2 ,mem_mouse_dpi_led_blink_time 
-0442 67e14930 store 2 ,mem_mouse_on_time 
-0443 67e14932 store 2 ,mem_mouse_off_time 
-0444 da200000 arg 0 ,rega 
-0445 6848c992 fetcht 1 ,mem_mouse_dpi 
-0446 18408402 increase 2 ,temp 
-0447 18467c03 sub temp ,3 ,null 
-0448 2041044b call p_mouse_dpi_led_blink_init_level_4 ,positive 
-0449 2441044f ncall p_mouse_dpi_led_blink_count_clean ,positive 
-044a 202048ff branch mouse_dpi_led_blink_init_end 
+p_mouse_24g_search_dongle_loop:
+02d5 6fe0cba2 fetch 1 ,mem_mouse_search_dongle_ch 
+02d6 1fe0fe01 increase 1 ,pdata 
+02d7 67e0cba2 store 1 ,mem_mouse_search_dongle_ch 
+02d8 1fe67c08 sub pdata ,g24_ch_number ,null 
+02d9 242102df nbranch p_mouse_24g_search_dongle_loop_end ,positive 
+02da 2040259a call g24_reconn_data_prep 
+02db 204003d9 call p_g24_transmit_receive_ack 
+02dc 242c02e5 nbranch p_mouse_24g_search_dongle_loop_retry ,sync 
+02dd 243782e5 nbranch p_mouse_24g_search_dongle_loop_retry ,user3 
+02de 204048b5 call mouse_24g_search_dongle_success 
 
-p_mouse_dpi_led_blink_init_level_4:
-044b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-044c c40e0000 rtnbit0 mouse_enable_dpi_level_4 
-044d 18408401 increase 1 ,temp 
-044e 20600000 rtn 
+p_mouse_24g_search_dongle_loop_end:
+02df 20402597 call g24_txbuf_clear 
+02e0 6fe0cba3 fetch 1 ,mem_mouse_search_dongle_count 
+02e1 1fe0fe01 increase 1 ,pdata 
+02e2 67e0cba3 store 1 ,mem_mouse_search_dongle_count 
+02e3 c00802e7 beq g24_ch_poll_count ,p_mouse_24g_search_dongle_check 
+02e4 20600000 rtn 
 
-p_mouse_dpi_led_blink_count_clean:
-044f 184085fd increase -3 ,temp 
-0450 20600000 rtn 
+p_mouse_24g_search_dongle_loop_retry:
+02e5 204022cb call g24_ch 
+02e6 202002d5 branch p_mouse_24g_search_dongle_loop 
 
-p_mouse_commbination_key_process:
-0451 6fe0c938 fetch 1 ,mem_device_flag 
-0452 c0000457 beq mode_24g_device ,p_mouse_24g_commbination_key_process 
-0453 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0454 c41a8000 rtnbit0 mouse_enable_commbination_key_by_bt_discovery 
-0455 6848cbca fetcht 1 ,mem_mouse_commbination_key_bt 
-0456 2020045a branch p_mouse_commbination_key_start 
+p_mouse_24g_search_dongle_check:
+02e7 704ba300 jam 0 ,mem_mouse_search_dongle_count 
+02e8 6fe0cba4 fetch 1 ,mem_mouse_search_dongle_action 
+02e9 c3800000 rtnbit1 g24_disconn_state 
+02ea 79207e00 set1 g24_disconn_state ,pdata 
+02eb 67e0cba4 store 1 ,mem_mouse_search_dongle_action 
+02ec 6fe14bbc fetch 2 ,mem_mouse_24g_search_dongle_time_init 
+02ed 67e14ab2 store 2 ,mem_mouse_no_data_timer 
+02ee 20200153 branch p_mouse_sensor_powerdown 
 
-p_mouse_24g_commbination_key_process:
-0457 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0458 c4190000 rtnbit0 mouse_enable_commbination_key_by_24g_pairing 
-0459 6848cbcb fetcht 1 ,mem_mouse_commbination_key_24g 
+p_soft_reset:
+02ef 20800000 clear_stack 
+02f0 24558309 ncall p_set_mem_xtal_cache ,wake 
+02f1 204030f3 call app_param_init 
+02f2 58004c72 setarg mem_mouse_rssi_signal_buf_patch 
+02f3 67e14899 store 2 ,mem_rssi_signal_buf_ptr 
+02f4 20403bfd call mouse_xtal_init 
+02f5 2040124a call initialize_radio 
+02f6 6fe0cc93 fetch 1 ,mem_xtal_cache 
+02f7 67e0c17b store 1 ,mem_lpm_config + 1 
+02f8 58000f0f setarg 0xf0f 
+02f9 d8a00fff arg 0xfff ,contw 
+02fa 98a10a00 iand contw ,contw 
+02fb 6fe0c17a fetch 1 ,mem_lpm_config 
+02fc 1fe17ef0 and_into 0xf0 ,pdata 
+02fd 1fed7e00 lshift8 pdata ,pdata 
+02fe 98a1fe00 ior contw ,pdata 
+02ff 793ffe02 set0 2 ,pdata 
+0300 67f1004c store 2 ,core_lpm_reg 
+0301 efe10006 ifetch 2 ,contr 
+0302 e7e10005 istore 2 ,contw 
+0303 58000001 setarg lpmreg_sel_ctrl 
+0304 37d98200 until null ,lpo_edge 
+0305 67f08005 store 1 ,core_lpm_wr 
+0306 70417b08 jam 0x08 ,mem_lpm_config + 1 
+0307 70804204 jam clksel_xtal ,core_clksel 
+0308 20200805 branch soft_reset + 4 
 
-p_mouse_commbination_key_start:
-045a 6048cb9d storet 1 ,mem_mouse_commbination_key 
-045b 20404115 call mouse_check_key_gpio 
-045c 1fe17e07 and pdata ,0x07 ,pdata 
-045d 6848cb9d fetcht 1 ,mem_mouse_commbination_key 
-045e 98467c00 isub temp ,null 
-045f 20228461 branch p_mouse_commbination_key_down ,zero 
-0460 202044eb branch mouse_commbination_key_up 
+p_set_mem_xtal_cache:
+0309 6fe0c17b fetch 1 ,mem_lpm_config + 1 
+030a 67e0cc93 store 1 ,mem_xtal_cache 
+030b 20600000 rtn 
 
-p_mouse_commbination_key_down:
-0461 20400466 call p_mouse_combination_ui_timer 
-0462 6fe0cb9f fetch 1 ,mem_commbination_key_statue 
-0463 c1008000 rtneq commbination_key_state_down 
-0464 704b9f01 jam commbination_key_state_down ,mem_commbination_key_statue 
-0465 20600000 rtn 
+p_lpm_short_sleep:
+030c 58000000 setarg 0 
+030d 67f18a00 store 3 ,core_clkpll_ctrl0 
+030e 704c638c jam 140 ,mem_tx_time_offset 
+030f 204012cf call xtal_fast_wake 
+0310 6fe24164 fetch 4 ,mem_sleep_counter_all 
+0311 9840fe00 iadd temp ,pdata 
+0312 67e24164 store 4 ,mem_sleep_counter_all 
+0313 18027e00 deposit mark 
+0314 67e4419d store 8 ,mem_saved_mark 
+0315 d8c08070 arg core_gpio_conf ,contr 
+0316 d8a04186 arg mem_saved_gpio ,contw 
+0317 20407d01 call memcpy20 
+0318 6ff08086 fetch 1 ,core_spid_ctrl 
+0319 67e0c1a5 store 1 ,mem_saved_spidctrl 
+031a 2040143f call lpm_ctrl3_cfg_dig_vsel 
+031b 6ff08042 fetch 1 ,core_clksel 
+031c 1fe1fe14 or_into 0x14 ,pdata 
+031d 67f08042 store 1 ,core_clksel 
+031e 2020149e branch lpm_sleep + 7 
 
-p_mouse_combination_ui_timer:
-0466 da400306 arg p_mouse_24g_start_pair_mode ,regb 
-0467 202044f7 branch mouse_combination_ui_timer + 1 
+p_initialize_radio_cont:
+031f 708a8be6 jam 0xe6 ,core_syn_aac_cfg1 
+0320 2040126a call initialize_syn_afc_cfg1 
+0321 20401271 call initialize_rf_ldo_cfg1 
+0322 20401277 call initialize_rc_cal 
+0323 708a6d09 jam 0x09 ,core_rx_bq_cfg0 
+0324 708a0305 jam 5 ,core_clkpll_cfg0 
+0325 708a7a94 jam 0x94 ,core_rx_iqadc_cfg 
+0326 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0327 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+0328 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+0329 708a8500 jam 0x00 ,core_syn_loopdiv_dsm_cfg 
+032a 70892140 jam 0x40 ,core_rx_ctrl1 
+032b 2020125d branch initialize_radio_cont + 8 
 
-p_mouse_le_battery_updata_timer:
-0468 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0469 c39d8000 rtnbit1 mouse_enable_le_battery_service_cancel 
-046a 2020451f branch mouse_le_battery_updata_timer 
+p_set_sync_on:
+032c 70890005 jam 0x5 ,modem_en 
+032d 20000002 nop 2 
+032e 70890000 jam 0x0 ,modem_en 
+032f 6fe0c0c5 fetch 1 ,mem_fcomp_div 
+0330 c00c1168 beq xtal_24m ,set_sync_on_24m 
 
-p_mouse_check_no_data_timeout_timer:
-046b da604ab2 arg mem_mouse_no_data_timer ,regc 
-046c da40046e arg p_mouse_check_no_data_timeout ,regb 
-046d 20203191 branch timer_single_step_2b 
+p_set_sync_on_16m:
+0331 708a8729 jam 0x29 ,core_syn_afc_cfg1 
+0332 2020117d branch set_sync_on_16m 
 
-p_mouse_check_no_data_timeout:
-046e 6fe0c938 fetch 1 ,mem_device_flag 
-046f c000031d beq mode_24g_device ,p_mouse_24g_hibernate_set 
-0470 2020431b branch mouse_disconnect 
-
-p_mouse_start_discovery:
-0471 6fe1478c fetch 2 ,mem_ui_state_map 
-0472 2feffe0b isolate1 ui_state_ble_adv ,pdata 
-0473 2040c581 call mouse_stop_le_adv ,true 
-0474 6fe1478c fetch 2 ,mem_ui_state_map 
-0475 2feffe07 isolate1 ui_state_bt_reconnect ,pdata 
-0476 2040c322 call mouse_cancel_reconnect ,true 
-0477 58000000 setarg 0 
-0478 67e14af2 store 2 ,mem_le_battery_level_updata_timer 
-0479 20404314 call mouse_bluetooth_fast_conn_disable 
-047a 6fe1478c fetch 2 ,mem_ui_state_map 
-047b c2858484 bbit1 ui_state_ble_adv ,p_mouse_start_discovery_norandom 
-047c 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-047d c3040484 bbit0 mouse_enable_ble_random_addre ,p_mouse_start_discovery_norandom 
-047e 68494997 fetcht 2 ,mem_random_addr_increase_count 
-047f 18408401 increase 1 ,temp 
-0480 60494997 storet 2 ,mem_random_addr_increase_count 
-0481 6049437b storet 2 ,mem_le_lap + 1 
-0482 180a7e00 random pdata 
-0483 67e0c37a store 1 ,mem_le_lap 
-
-p_mouse_start_discovery_norandom:
-0484 6fe1cac9 fetch 3 ,mem_mouse_le_lap_temp 
-0485 67e1c37d store 3 ,mem_le_lap + 3 
-0486 20403225 call app_lpm_mult_disable 
-0487 6fe14791 fetch 2 ,mem_discovery_timeout 
-0488 67e14ac2 store 2 ,mem_mouse_discovery_timer 
-0489 7000bd06 jam 6 ,mem_connection_options 
-048a 58000000 setarg 0 
-048b 67e14ab2 store 2 ,mem_mouse_no_data_timer 
-048c 67e0cb77 store 1 ,mem_mouse_direct_timer 
-048d 67e0cac4 store 1 ,mem_mouse_bluetooth_reconnect_timeout 
-048e 67e0cba7 store 1 ,mem_mouse_device_poweron_timer_count 
-048f 67e0caac store 1 ,mem_mouse_clear_sensor_data_flag 
-0490 d8e00002 arg mouse_store_eeprom_flag ,queue 
-0491 204046f0 call mouse_enable_function_flag 
-0492 204046e4 call mouse_bt_discovery_button_down_disable 
-0493 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-0494 2feffe01 isolate1 mode_4_mouse ,pdata 
-0495 2040c3df call mouse_check_51cmd_adv ,true 
-0496 6fe0cbb3 fetch 1 ,mem_mouse_bluetooth_type 
-0497 2feffe00 isolate1 mode_3_mouse ,pdata 
-0498 2040f8c4 call check_51cmd_start_discovery ,true 
-0499 2040498e call mouse_low_voltage_led_blink_disable 
-049a 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
-049b 243a03f1 nbranch p_mouse_multi_led_blink_enable ,blank 
-049c 202048cc branch mouse_discover_setting_led_gpio 
+p_set_freq_rx:
+0333 20401190 call set_freq_rx + 1 
+0334 58007676 setarg 0x7676 
+0335 67f10968 store 2 ,0x8968 
+0336 20600000 rtn 
 
-p_ui_timer_check:
-049d 6fe0cbe2 fetch 1 ,mem_power_on_flag 
-049e 245a7861 ncall ui_timer_init ,blank 
-049f 704be200 jam 0 ,mem_power_on_flag 
-04a0 20207851 branch ui_timer_check + 1 
-
-p_hid_rx_process:
-04a1 6fe10315 fetch 2 ,mem_l2cap_payload_ptr 
-04a2 1fe20c00 copy pdata ,contr 
-04a3 efe08006 ifetch 1 ,contr 
-04a4 67e0c5f5 store 1 ,mem_l2cap_rcv_hidtype 
-04a5 1fe1040f and pdata ,0x0f ,temp 
-04a6 1ff1fe00 rshift4 pdata ,pdata 
-04a7 c00484a9 beq hid_type_set_idle ,p_hid_rx_process_handshake 
-04a8 20204d93 branch hid_rx_process + 7 
-
-p_hid_rx_process_handshake:
-04a9 da200001 arg 1 ,rega 
-04aa 20404dc0 call hid_malloc_tx_buff 
-04ab 6fe144dc fetch 2 ,mem_hid_ctrl_remote_cid 
-04ac e7e10005 istore 2 ,contw 
-04ad 58000000 setarg 0 
-04ae e7e08005 istore 1 ,contw 
-04af 70095001 jam 1 ,mem_ui_data_txbuff_length 
-04b0 6fe0c4e2 fetch 1 ,mem_hid_control_state 
-04b1 79207e06 set1 l2cap_channel_hid_handshake_done ,pdata 
-04b2 67e0c4e2 store 1 ,mem_hid_control_state 
-04b3 70095b12 jam bt_evt_hid_handshake ,mem_fifo_temp 
-04b4 20207871 branch ui_ipc_send_event 
-
-p_le_slave_match:
-04b5 6fe0c3dd fetch 1 ,mem_le_md_count 
-04b6 1fe0fe01 pincrease 1 
-04b7 67e0c3dd store 1 ,mem_le_md_count 
-04b8 c006165a beq le_md_max_count ,le_slave_cont 
-04b9 2040191b call le_acknowledge 
-04ba 2040196a call le_prepare_tx 
-04bb 6fe082bd fetch 1 ,mem_le_tx_phy 
-04bc 2040168b call le_enable_phy_by_pdata 
-04bd 20401838 call le_transmit 
-04be 20201655 branch le_slave_match + 10 
-
-p_le_parse_l2cap:
-04bf efe10006 ifetch 2 ,contr 
-04c0 c00204c2 beq le_l2cap_cid_att ,p_le_parse_att 
-04c1 202019e4 branch le_parse_l2cap + 10 
-
-p_le_parse_att:
-04c2 efe18006 ifetch 3 ,contr 
-04c3 67e1c436 store 3 ,mem_le_att_opcode 
-04c4 c00504c7 beq attop_read_request ,p_le_parse_att_read_request 
-04c5 c00904d6 beq attop_write_request ,p_le_parse_att_write_request 
-04c6 20201cd3 branch le_parse_att + 2 
-
-p_le_parse_att_read_request:
-04c7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-04c8 c31d9de7 bbit0 mouse_enable_le_battery_service_cancel ,le_parse_att_read_request 
-04c9 20401e8d call le_check_encrypt_state 
-04ca 68494437 fetcht 2 ,mem_le_att_handle 
-04cb 6fe0c3c0 fetch 1 ,mem_le_configuration 
-04cc c28184d1 bbit1 bit_ble_read_auth ,p_le_send_att_read_response_check_auth 
-
-p_le_send_att_read_response:
-04cd 6fe14437 fetch 2 ,mem_le_att_handle 
-04ce c0181ec8 beq 0x30 ,le_send_att_error_response_notfound 
-04cf 68494437 fetcht 2 ,mem_le_att_handle 
-04d0 20201deb branch le_send_att_read_response 
-
-p_le_send_att_read_response_check_auth:
-04d1 6fe143d1 fetch 2 ,mem_le_pairing_handle 
-04d2 98467c00 isub temp ,null 
-04d3 242284cd nbranch p_le_send_att_read_response ,zero 
-04d4 243404cd nbranch p_le_send_att_read_response ,user 
-04d5 20201e10 branch le_send_att_read_response_error_insufficient_auth 
-
-p_le_parse_att_write_request:
-04d6 18c22200 copy contr ,rega 
-04d7 6fe143d4 fetch 2 ,mem_le_l2cap_size 
-04d8 1fe0a5fd add pdata ,-3 ,regb 
-04d9 20401a25 call le_writeatt_cb 
-04da 6fe0cac1 fetch 1 ,mem_mouse_bluetooth_fast_conn_flag 
-04db c07f9e73 beq 0xff ,le_send_att_write_response_check_auth 
-04dc 6fe0cac7 fetch 1 ,mem_mouse_le_reconnect_flag 
-04dd 203a1e73 branch le_send_att_write_response_check_auth ,blank 
-04de 6fe0cb75 fetch 1 ,mem_le_connect_status_flag 
-04df c2809e73 bbit1 ll_start_enc_flag ,le_send_att_write_response_check_auth 
-04e0 5800001a setarg 0x001a 
-04e1 68494437 fetcht 2 ,mem_le_att_handle 
-04e2 98467c00 isub temp ,null 
-04e3 24229e73 nbranch le_send_att_write_response_check_auth ,zero 
-04e4 20201e10 branch le_send_att_read_response_error_insufficient_auth 
+p_rf_rx_enable:
+0337 6fe0cc92 fetch 1 ,mem_soft_agc_en 
+0338 243a0341 nbranch p_rf_rx_enable_soft_agc ,blank 
+0339 2000012c nop 300 
+033a 20404ca7 call rf_debug_rx_gpio_high 
+033b d8c041eb arg mem_gain_table ,contr 
+033c 98c08c00 iadd contr ,contr 
+033d efe08006 ifetch 1 ,contr 
+033e 67f08961 store 1 ,core_rf_rx_gain_fix 
+033f 7089602e jam 0x2e ,core_rf_rx_agc_ctrl 
+0340 202011b3 branch rf_rx_enable_no_soft_agc_next 
+
+p_rf_rx_enable_soft_agc:
+0341 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
+0342 1fe1fe01 or pdata ,0x01 ,pdata 
+0343 67f08960 store 1 ,core_rf_rx_agc_ctrl 
+0344 70896104 jam 0x04 ,core_rf_rx_gain_fix 
+0345 202011b3 branch rf_rx_enable_no_soft_agc_next 
+
+p_soft_agc_en_false:
+0346 704c9200 jam 0 ,mem_soft_agc_en 
+0347 20600000 rtn 
+
+p_soft_agc_en_true:
+0348 704c9201 jam 1 ,mem_soft_agc_en 
+0349 20600000 rtn 
 
-p_g24_lpm_wait:
-04e5 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
-04e6 245a26e1 ncall g24_transmit_by_interrupt_enable ,blank 
-04e7 78347c00 enable user 
-04e8 20401465 call lpo_calibration 
-04e9 6fe1c174 fetch 3 ,mem_clks_per_lpo 
-04ea 203a7e56 branch disable_user ,blank 
-04eb 6fe0c099 fetch 1 ,mem_lpm_mode 
-04ec 203a7e56 branch disable_user ,blank 
-04ed 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-04ee c000fe56 beq g24_tx_timer_int_enable ,disable_user 
-04ef 78347c00 enable user 
-04f0 20600000 rtn 
+p_txon_next:
+034a 6fe0cc92 fetch 1 ,mem_soft_agc_en 
+034b 243a034d nbranch p_set_tx_power_f17db ,blank 
+034c 2020123b branch set_tx_power_10db 
+
+p_set_tx_power_f17db:
+034d 708a395b jam 0x5b ,core_tx_pwr_ctrl0 
+034e 708a3a01 jam 0x01 ,core_tx_pwr_ctrl1 
+034f 2020122a branch set_rf_ldo_cfg89 
 
-p_mouse_motion:
-04f1 78547c00 disable user 
-04f2 58000000 setarg 0 
-04f3 67e348d1 store 6 ,mem_mouse_x 
-04f4 20404240 call mouse_check_sensor_data 
-04f5 58000089 setarg 0x0089 
-04f6 20405b0c call twspi_write 
-04f7 2040408e call mouse_dpi_config 
-04f8 20403f7e call mouse_zwheel 
-04f9 20403f83 call mouse_t_zwheel 
-04fa 20400517 call p_mouse_key 
-04fb 6fe0c8d0 fetch 1 ,mem_mouse_key 
-04fc 1fe17e1f and_into 0x1f ,pdata 
-04fd 67e0c8d0 store 1 ,mem_mouse_key 
-04fe 24344728 nbranch mouse_drawing_optima_init ,user 
-04ff 20400501 call p_mouse_drawing_optima 
-0500 20204544 branch mouse_no_data_timer_init 
+p_save_rssi:
+0350 6ff089a2 fetch 1 ,modem_nb_pow 
+0351 2feffe06 isolate1 6 ,pdata 
+0352 7920fe07 setflag true ,7 ,pdata 
+0353 67e0c1e9 store 1 ,mem_modem_rssi 
+0354 6ff089a3 fetch 1 ,modem_gain 
+0355 1fe1040f and pdata ,0x0f ,temp 
+0356 18438400 lshift temp ,temp 
+0357 1ff1fe00 rshift4 pdata ,pdata 
+0358 98408400 iadd temp ,temp 
+0359 184fa203 mul32 temp ,3 ,rega 
+035a 6fe0c1e9 fetch 1 ,mem_modem_rssi 
+035b 20400365 call p_byte_sign_extern 
+035c 1fe67e00 sub pdata ,0 ,pdata 
+035d 9a20fe00 iadd rega ,pdata 
+035e 1fe0fff7 increase -9 ,pdata 
+035f 1fe17fff and pdata ,0x1ff ,pdata 
+0360 2feffe08 isolate1 8 ,pdata 
+0361 24208363 nbranch p_save_rssi_store ,true 
+0362 58000000 setarg 0 
 
-p_mouse_drawing_optima:
-0501 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0502 c1018000 rtneq p3212 
-0503 2020471a branch mouse_drawing_optima 
+p_save_rssi_store:
+0363 67e08019 store 1 ,mem_rssi_hex 
+0364 20600000 rtn 
 
-p_mouse_sensor_poweron:
-0504 20403f65 call mouse_sensor_spi_init 
-0505 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0506 c0058508 beq ka8g2 ,p_mouse_ka8g2_sensor_init 
-0507 20204238 branch mouse_sensor_poweron_next 
+p_byte_sign_extern:
+0365 2feffe07 isolate1 7 ,pdata 
+0366 24608000 nrtn true 
+0367 d840ff00 arg 0xff00 ,temp 
+0368 9841fe00 ior temp ,pdata 
+0369 20600000 rtn 
 
-p_mouse_ka8g2_sensor_init:
-0508 2040050e call p_mouse_ka8g2_sensor_reset 
-0509 da604be3 arg mem_ka8g2_sensor_poweron_init ,regc 
-050a 2020423a branch mouse_sensor_poweron_end 
+p_adc_init_data:
+036a da20099e arg mem_temp_block2 ,rega 
+036b d840000c arg 12 ,temp 
+036c 58000030 setarg efuse_offset_adc_param 
+036d 20405e63 call efuse_read_data 
+036e 202060bf branch adc_init_data + 6 
 
-p_mouse_sensor_reset:
-050b 6fe0c927 fetch 1 ,mem_config_sensor_type 
-050c c005850e beq ka8g2 ,p_mouse_ka8g2_sensor_reset 
-050d 20204232 branch mouse_sensor_reset 
+p_enable_adc:
+036f 6a508a12 fetchr regb ,1 ,core_rf_ldo_cfg6 
+0370 708a123d jam 0x3d ,core_rf_ldo_cfg6 
+0371 708a11aa jam 0xaa ,core_rf_ldo_cfg5 
+0372 708a0a0c jam 0x0c ,core_rf_ldo_en0 
+0373 6ff08a09 fetch 1 ,core_clkpll_cfg6 
+0374 79207e07 set1 7 ,pdata 
+0375 67f08a09 store 1 ,core_clkpll_cfg6 
+0376 708a0b04 jam 0x04 ,core_rf_ldo_en1 
+0377 2000003c nop 60 
+0378 708a1600 jam 0 ,core_syn_en 
+0379 708a1706 jam 6 ,core_rx_en0 
+037a 2040611a call read_adc_mode 
+037b 67f08a97 store 1 ,core_gpadc_ctrl 
+037c 7080dc03 jam 0x03 ,core_sum_ctrl 
+037d 2000003c nop 60 
+037e 6ff08053 fetch 1 ,core_sum_en 
+037f 79207e07 set1 7 ,pdata 
+0380 67f08053 store 1 ,core_sum_en 
+0381 200003e8 nop 1000 
+0382 6ff10150 fetch 2 ,core_adc_sum 
+0383 67e144a2 store 2 ,mem_adc_current_value 
+0384 6ff08053 fetch 1 ,core_sum_en 
+0385 793ffe07 set0 7 ,pdata 
+0386 67f08053 store 1 ,core_sum_en 
+0387 708a9700 jam 0 ,core_gpadc_ctrl 
+0388 62508a12 storer regb ,1 ,core_rf_ldo_cfg6 
+0389 20600000 rtn 
 
-p_mouse_ka8g2_sensor_reset:
-050e 58009706 setarg 0x9706 
-050f 20204233 branch mouse_sensor_reset_end 
+p_ui_timer_check:
+038a 6fe0cbe2 fetch 1 ,mem_power_on_flag 
+038b 245a7861 ncall ui_timer_init ,blank 
+038c 704be200 jam 0 ,mem_power_on_flag 
+038d 20207851 branch ui_timer_check + 1 
 
-p_mouse_sensor_powerdown:
-0510 204041a7 call mouse_init_sunt 
-0511 20403f65 call mouse_sensor_spi_init 
-0512 6fe0c927 fetch 1 ,mem_config_sensor_type 
-0513 c0058515 beq ka8g2 ,p_mouse_ka8g2_sensor_powerdown 
-0514 2020423e branch mouse_sensor_powerdown_end 
+p_g24_transmit:
+038e 6fe0c865 fetch 1 ,mem_24g_tx_phy 
+038f 2040168b call le_enable_phy_by_pdata 
+0390 6fe2483c fetch 4 ,mem_24g_addr 
+0391 98001200 iforce access 
+0392 204021d5 call g24_prep 
+0393 20402243 call g24_set_freq_tx 
+0394 79202a00 set1 txgfsk ,radio_ctrl 
+0395 782efc00 enable encode_fec0 
+0396 78307c00 enable is_tx 
+0397 7850fc00 disable is_rx 
+0398 20404cb5 call rf_debug_tx_on_line 
+0399 785d7c00 disable lr_s2en 
+039a c517a273 bmark1 mark_ble_lr ,g24_transmit_lr 
+039b c51683a2 bmark1 mark_ble_2m ,p_g24_transmit_2m 
+039c 19317e00 rshift16 access ,pdata 
+039d 1fecfe00 rshift8 pdata ,pdata 
+039e 1ff1fe00 rshift4 pdata ,pdata 
+039f 08008628 inject mod ,40 
 
-p_mouse_ka8g2_sensor_powerdown:
-0515 58001f06 setarg 0x1f06 
-0516 20205b0c branch twspi_write 
+p_g24_transmit_packet:
+03a0 c517a25c bmark1 mark_ble_lr ,g24_transmit_nolr 
+03a1 2020225c branch g24_transmit_nolr 
 
-p_mouse_key:
-0517 20400553 call p_mouse_check_firekey_gpio 
-0518 6fe0cc37 fetch 1 ,mem_fire_key_flag 
-0519 243a056a nbranch p_fire_key_press ,blank 
-051a 6fe0cc32 fetch 1 ,mem_fire_key_status 
-051b 243a0569 nbranch p_fire_key_process ,blank 
-051c 2040051e call p_mouse_check_key_gpio 
-051d 202040dd branch mouse_key + 1 
+p_g24_transmit_2m:
+03a2 6fe0c1f0 fetch 1 ,mem_system_clk 
+03a3 1fe37200 rshift pdata ,loopcnt 
 
-p_mouse_check_key_gpio:
-051e 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
-051f 245a4121 ncall mouse_check_key_gpio_once ,blank 
-0520 da200000 arg 0 ,rega 
-0521 20400526 call p_mouse_check_lkey_gpio 
-0522 20400535 call p_mouse_check_bkkey_gpio 
-0523 20400542 call p_mouse_check_fwkey_gpio 
-0524 20400553 call p_mouse_check_firekey_gpio 
-0525 2020411e branch mouse_check_key_gpio_next 
+p_g24_transmit_2m_dealy:
+03a4 20000002 nop 2 
+03a5 c20003a4 loop p_g24_transmit_2m_dealy 
+03a6 19317e00 rshift16 access ,pdata 
+03a7 1fecfe00 rshift8 pdata ,pdata 
+03a8 1ff18400 rshift4 pdata ,temp 
+03a9 18427e00 copy temp ,pdata 
+03aa 08008608 inject mod ,8 
+03ab 18427e00 copy temp ,pdata 
+03ac 08008628 inject mod ,40 
+03ad 202003a0 branch p_g24_transmit_packet 
 
-p_mouse_check_lkey_gpio:
-0526 6fe0c918 fetch 1 ,mem_lbutton_gpio 
-0527 2040054f call p_mouse_gpio_config_output_high 
-0528 20404124 call mouse_check_lkey_gpio 
-0529 6848c918 fetcht 1 ,mem_lbutton_gpio 
-052a 20403f56 call mouse_gpio_config_input_pu 
+p_g24_receive_packet:
+03ae 6fe0c864 fetch 1 ,mem_24g_rx_phy 
+03af 2040168b call le_enable_phy_by_pdata 
+03b0 6fe2483c fetch 4 ,mem_24g_addr 
+03b1 98001200 iforce access 
+03b2 204010b0 call calc_mod_value_scale_le 
+03b3 20401161 call set_sync_on 
+03b4 6848c83a fetcht 1 ,mem_24g_ch 
+03b5 204016c8 call le_rf_rx_enable 
+03b6 6ff08960 fetch 1 ,core_rf_rx_agc_ctrl 
+03b7 79207e03 set1 3 ,pdata 
+03b8 67f08960 store 1 ,core_rf_rx_agc_ctrl 
 
-p_mouse_check_rkey_gpio:
-052b 6fe0c919 fetch 1 ,mem_rbutton_gpio 
-052c 2040054f call p_mouse_gpio_config_output_high 
-052d 2040412a call mouse_check_rkey_gpio 
-052e 6848c919 fetcht 1 ,mem_rbutton_gpio 
-052f 20403f56 call mouse_gpio_config_input_pu 
+p_g24_receive_rxon:
+03b9 204021d5 call g24_prep 
+03ba c59783be bmark0 mark_ble_lr ,p_g24_receive_nolr 
+03bb 783cfc00 pulse dewhiten_code_calc 
+03bc 2000001e nop 30 
+03bd 204021d5 call g24_prep 
 
-p_mouse_check_mkey_gpio:
-0530 6fe0c91a fetch 1 ,mem_mbutton_gpio 
-0531 2040054f call p_mouse_gpio_config_output_high 
-0532 20404130 call mouse_check_mkey_gpio 
-0533 6848c91a fetcht 1 ,mem_mbutton_gpio 
-0534 20203f56 branch mouse_gpio_config_input_pu 
+p_g24_receive_nolr:
+03be 7857fc00 disable user3 
+03bf 7826fc00 enable decode_fec0 
+03c0 7830fc00 enable is_rx 
+03c1 78507c00 disable is_tx 
+03c2 78287c00 enable swfine 
+03c3 6fe14838 fetch 2 ,mem_24g_rx_window 
+03c4 98003600 iforce stop_watch 
+03c5 37c18400 correlate null ,timeout 
+03c6 242c223d nbranch g24_sync_timeout ,sync 
+03c7 20404caf call rf_debug_rx_sync_line 
+03c8 c517a1f6 bmark1 mark_ble_lr ,g24_receive_skip_fec1 
+03c9 202021f6 branch g24_receive_skip_fec1 
 
-p_mouse_check_bkkey_gpio:
-0535 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-0536 c17f8000 rtneq gpio_disable 
-0537 704b9603 jam mouse_bk_key ,mem_mouse_key_temp 
-0538 6fe0cb91 fetch 1 ,mem_mouse_bkkey_press_status 
-0539 1fe22600 copy pdata ,regc 
-053a 6848c90d fetcht 1 ,mem_bk_button_gpio 
-053b 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-053c c07f853e beq gpio_disable ,p_mouse_3io6key_bk_check 
-053d 2020413e branch mouse_check_bkkey_gpio_next 
+p_g24_retransmit:
+03ca 6fe0cac5 fetch 1 ,mem_mouse_need_soft_reset 
+03cb 247a0000 nrtn blank 
+03cc 204001ed call p_mouse_select_device_by_pb_button 
+03cd 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+03ce 247a0000 nrtn blank 
+03cf 6fe148a3 fetch 2 ,mem_24g_txfail_cnt 
+03d0 1fe0fe01 increase 1 ,pdata 
+03d1 67e148a3 store 2 ,mem_24g_txfail_cnt 
+03d2 6fe0c8a4 fetch 1 ,mem_24g_txfail_cnt + 1 
+03d3 c2822679 bbit1 4 ,g24_tx_attempt_fail 
+03d4 204003ea call p_g24_transmit_hop_process 
+03d5 6fe14c67 fetch 2 ,mem_retransmit 
+03d6 1fe0fe01 increase 1 ,pdata 
+03d7 67e14c67 store 2 ,mem_retransmit 
+03d8 20200441 branch p_g24_transmit_loop 
 
-p_mouse_3io6key_bk_check:
-053e 6fe0c90d fetch 1 ,mem_bk_button_gpio 
-053f 20400551 call p_mouse_gpio_config_output_low 
-0540 6848c90d fetcht 1 ,mem_bk_button_gpio 
-0541 2020414b branch mouse_3io6key_bk_check 
+p_g24_transmit_receive_ack:
+03d9 7857fc00 disable user3 
+03da 20402246 call g24_transmit 
+03db 6fe0c82c fetch 1 ,mem_24g_no_ack 
+03dc c000a23f beq no_ack_24g ,g24_end_of_packet 
+03dd 18002a00 force 0 ,radio_ctrl 
+03de 6fe2483c fetch 4 ,mem_24g_addr 
+03df 98001200 iforce access 
+03e0 204010b0 call calc_mod_value_scale_le 
+03e1 68488017 fetcht 1 ,mem_last_freq 
+03e2 2040118f call set_freq_rx 
+03e3 204011a6 call rf_rx_enable 
+03e4 204003b9 call p_g24_receive_rxon 
+03e5 205783e7 call p_g24_end_of_packet ,user3 
+03e6 20600000 rtn 
 
-p_mouse_check_fwkey_gpio:
-0542 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-0543 c17f8000 rtneq gpio_disable 
-0544 704b9604 jam mouse_fw_key ,mem_mouse_key_temp 
-0545 6fe0cb92 fetch 1 ,mem_mouse_fwkey_press_status 
-0546 1fe22600 copy pdata ,regc 
-0547 6848c90e fetcht 1 ,mem_fw_button_gpio 
-0548 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-0549 c07f854b beq gpio_disable ,p_mouse_3io6key_fw_check 
-054a 20204157 branch mouse_check_fwkey_gpio_next 
+p_g24_end_of_packet:
+03e7 708a0a00 jam 0 ,core_rf_ldo_en0 
+03e8 708a0b00 jam 0 ,core_rf_ldo_en1 
+03e9 2020129c branch gain_control 
 
-p_mouse_3io6key_fw_check:
-054b 6fe0c90e fetch 1 ,mem_fw_button_gpio 
-054c 20400551 call p_mouse_gpio_config_output_low 
-054d 6848c90e fetcht 1 ,mem_fw_button_gpio 
-054e 20204164 branch mouse_3io6key_fw_check 
+p_g24_transmit_hop_process:
+03ea 6848c8a6 fetcht 1 ,mem_24g_retry 
+03eb 6fe0c8c6 fetch 1 ,mem_24g_fast_hop_count 
+03ec 98467c00 isub temp ,null 
+03ed 2421269c nbranch g24_tx_fast_hop ,positive 
+03ee 18408401 increase 1 ,temp 
+03ef 6048c8a6 storet 1 ,mem_24g_retry 
+03f0 6fe0c8c6 fetch 1 ,mem_24g_fast_hop_count 
+03f1 c00783f6 beq 15 ,p_g24_transmit_hop_process_4ms 
+03f2 6fe0c8a6 fetch 1 ,mem_24g_retry 
+03f3 c00a2696 beq 20 ,g24_hop_ch_disable 
+03f4 c00f2696 beq 30 ,g24_hop_ch_disable 
+03f5 20600000 rtn 
 
-p_mouse_gpio_config_output_high:
-054f d840003f arg gpcfg_output_high ,temp 
-0550 20206093 branch gpio_config_function_int 
+p_g24_transmit_hop_process_4ms:
+03f6 6fe0c8a6 fetch 1 ,mem_24g_retry 
+03f7 c0052696 beq 10 ,g24_hop_ch_disable 
+03f8 c007a696 beq 15 ,g24_hop_ch_disable 
+03f9 20600000 rtn 
 
-p_mouse_gpio_config_output_low:
-0551 d840003e arg gpcfg_output_low ,temp 
-0552 20206093 branch gpio_config_function_int 
+p_g24_dispatch:
+03fa c61a0000 rtnmark1 mark_adc_enable 
+03fb c513a40e bmark1 mark_24g_rxmode ,g24_receive_dispatch 
 
-p_mouse_check_firekey_gpio:
-0553 da400000 arg 0 ,regb 
-0554 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
-0555 c17f8000 rtneq gpio_disable 
-0556 6fe0cc39 fetch 1 ,mem_mouse_firebutton_connect_vin_flag 
-0557 243a0560 nbranch p_mouse_check_firekey_connect_vin ,blank 
+p_g24_transmit_dispatch:
+03fc c6930000 rtnmark0 mark_24g 
+03fd 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+03fe c280a340 bbit1 state_24g_pair ,g24_pair_dispatch 
+03ff c2812580 bbit1 state_24g_reconn ,g24_reconn_dispatch 
+0400 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+0401 c0008403 beq g24_tx_timer_int_enable ,p_g24_transmit_by_interrupt 
+0402 20202621 branch g24_transmit_no_interrupt 
 
-p_mouse_check_firekey_connect_gnd:
-0558 6848cc38 fetcht 1 ,mem_firebutton_gpio 
-0559 20403f56 call mouse_gpio_config_input_pu 
-055a 6848cc38 fetcht 1 ,mem_firebutton_gpio 
-055b 20406059 call gpio_get_bit 
-055c 7920a400 setflag true ,0 ,regb 
+p_g24_transmit_by_interrupt:
+0403 204022ea call g24_timer_check 
+0404 243403fc nbranch p_g24_transmit_dispatch ,user 
+0405 204026db call g24_interval_calibrate 
+0406 6fe148be fetch 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0407 1fe0fe01 increase 1 ,pdata 
+0408 67e148be store 2 ,mem_24g_transmit_by_interrupt_exit_count 
+0409 20202621 branch g24_transmit_no_interrupt 
 
-p_mouse_firekey_state_store:
-055d 1a427e00 copy regb ,pdata 
-055e 67e0cc37 store 1 ,mem_fire_key_flag 
-055f 20600000 rtn 
+p_g24_transmit_no_interrupt:
+040a 20402631 call g24_txdata_prep 
+040b 24340457 nbranch p_g24_nodata_transmit ,user 
 
-p_mouse_check_firekey_connect_vin:
-0560 6fe0cc38 fetch 1 ,mem_firebutton_gpio 
-0561 793ffe07 set0 gpio_active_bit ,pdata 
-0562 67e0cc38 store 1 ,mem_firebutton_gpio 
-0563 6848cc38 fetcht 1 ,mem_firebutton_gpio 
-0564 20403f54 call mouse_gpio_config_input_pd 
-0565 6848cc38 fetcht 1 ,mem_firebutton_gpio 
-0566 20406059 call gpio_get_bit 
-0567 7d20a400 nsetflag true ,0 ,regb 
-0568 2020055d branch p_mouse_firekey_state_store 
+p_g24_transmit_start:
+040c 2040043e call p_g24_transmit_process 
+040d 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+040e 243a0413 nbranch p_g24_short_sleep ,blank 
+040f 6fe448b0 fetch 8 ,mem_24g_long_sleep_set 
+0410 67e4485c store 8 ,mem_24g_enter_hibernate 
+0411 6fe148c2 fetch 2 ,mem_24g_long_sleep_param_update_timer_init 
+0412 67e148c4 store 2 ,mem_24g_long_sleep_param_update_timer 
 
-p_fire_key_process:
-0569 c0020582 beq 4 ,p_fire_key_process_end 
+p_g24_short_sleep:
+0413 204026bb call g24_lpm_wait 
+0414 24740000 nrtn user 
+0415 6fe0cc69 fetch 1 ,mem_sleep_miss 
+0416 704c6900 jam 0 ,mem_sleep_miss 
+0417 1fe67c00 sub pdata ,0 ,null 
+0418 24228438 nbranch p_g24_short_sleep_last_miss ,zero 
+0419 68494c67 fetcht 2 ,mem_retransmit 
+041a 18467c00 sub temp ,0 ,null 
+041b 2022842e branch p_g24_short_sleep_default ,zero 
+041c 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
+041d 203a042e branch p_g24_short_sleep_default ,blank 
 
-p_fire_key_press:
-056a 20400585 call p_firekey_clkn_bt_timer_check 
-056b 6fe24c33 fetch 4 ,mem_fire_key_delay 
-056c d84000a0 arg 0xa0 ,temp 
-056d 98408400 iadd temp ,temp 
-056e 1c427e00 copy clkn_bt ,pdata 
-056f 98467c00 isub temp ,null 
-0570 24610000 nrtn positive 
-0571 67e24c33 store 4 ,mem_fire_key_delay 
-0572 6fe0cc32 fetch 1 ,mem_fire_key_status 
-0573 c0000578 beq 0 ,p_fire_key_process_start 
-0574 c000857b beq 1 ,p_fire_key_process_release1 
-0575 c001057e beq 2 ,p_fire_key_process_start2 
-0576 c0018580 beq 3 ,p_fire_key_process_release2 
-0577 20600000 rtn 
+p_g24_short_sleep_notify:
+041e 684a4c4e fetcht 4 ,mem_24g_tsniff 
+041f 98460400 isub temp ,temp 
+0420 604a4c6e storet 4 ,mem_sleep_miss_temp 
+0421 24210431 nbranch p_g24_short_sleep_long ,positive 
+0422 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+0423 98467e00 isub temp ,pdata 
+0424 2421043c nbranch p_g24_short_sleep_2 ,positive 
+0425 d8400600 arg 0x600 ,temp 
+0426 98467c00 isub temp ,null 
+0427 2421043c nbranch p_g24_short_sleep_2 ,positive 
 
-p_fire_key_process_start:
-0578 704c3201 jam 1 ,mem_fire_key_status 
+p_g24_short_sleep2:
+0428 67e24c6a store 4 ,mem_sleep_time_temp 
+0429 20400435 call p_g24_miss_temp_clear 
+042a 6fe24c6a fetch 4 ,mem_sleep_time_temp 
+042b 20407daa call clk2lpo 
+042c 604a4160 storet 4 ,mem_sleep_counter 
+042d 2020030c branch p_lpm_short_sleep 
 
-p_fire_key_down:
-0579 7048d001 jam 1 ,mem_mouse_key 
-057a 20207e54 branch enable_user 
+p_g24_short_sleep_default:
+042e 20400435 call p_g24_miss_temp_clear 
+042f 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+0430 20200428 branch p_g24_short_sleep2 
 
-p_fire_key_process_release1:
-057b 704c3202 jam 2 ,mem_fire_key_status 
+p_g24_short_sleep_long:
+0431 18460400 sub temp ,0 ,temp 
+0432 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+0433 9840fe00 iadd temp ,pdata 
+0434 20200428 branch p_g24_short_sleep2 
 
-p_fire_key_release:
-057c 7048d000 jam 0 ,mem_mouse_key 
-057d 20207e54 branch enable_user 
+p_g24_miss_temp_clear:
+0435 58000000 setarg 0 
+0436 67e24c6e store 4 ,mem_sleep_miss_temp 
+0437 20600000 rtn 
 
-p_fire_key_process_start2:
-057e 704c3203 jam 3 ,mem_fire_key_status 
-057f 20200579 branch p_fire_key_down 
+p_g24_short_sleep_last_miss:
+0438 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
+0439 684a4c6e fetcht 4 ,mem_sleep_miss_temp 
+043a 9840fe00 iadd temp ,pdata 
+043b 2020041e branch p_g24_short_sleep_notify 
 
-p_fire_key_process_release2:
-0580 704c3200 jam 0 ,mem_fire_key_status 
-0581 2020057c branch p_fire_key_release 
+p_g24_short_sleep_2:
+043c 704c6901 jam 1 ,mem_sleep_miss 
+043d 20600000 rtn 
 
-p_fire_key_process_end:
-0582 704c3200 jam 0 ,mem_fire_key_status 
-0583 7048d000 jam 0 ,mem_mouse_key 
-0584 20600000 rtn 
+p_g24_transmit_process:
+043e 7048a600 jam 0 ,mem_24g_retry 
+043f 58000000 setarg 0 
+0440 67e14c67 store 2 ,mem_retransmit 
 
-p_firekey_clkn_bt_timer_check:
-0585 684a4c33 fetcht 4 ,mem_fire_key_delay 
-0586 1c427e00 copy clkn_bt ,pdata 
-0587 98467c00 isub temp ,null 
-0588 2441058a ncall p_firekey_clkn_bt_timer_timeout ,positive 
-0589 20600000 rtn 
+p_g24_transmit_loop:
+0441 204003d9 call p_g24_transmit_receive_ack 
+0442 6fe0c82c fetch 1 ,mem_24g_no_ack 
+0443 c000a651 beq no_ack_24g ,g24_transmit_no_ack 
+0444 242c03ca nbranch p_g24_retransmit ,sync 
+0445 243783ca nbranch p_g24_retransmit ,user3 
+0446 2040047f call p_send_time_check 
+0447 20402672 call g24_ackpayload_parse 
+0448 2040044a call p_mouse_wakeup_24g 
+0449 20202651 branch g24_transmit_no_ack 
 
-p_firekey_clkn_bt_timer_timeout:
-058a 58000000 setarg 0 
-058b 67e24c33 store 4 ,mem_fire_key_delay 
-058c 20600000 rtn 
+p_mouse_wakeup_24g:
+044a 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+044b 245a044e ncall p_mouse_wakeup_24g_from_long_sleep ,blank 
+044c 704be100 jam 0 ,mem_sensor_shutdown_flag 
+044d 20600000 rtn 
 
-p_mouse_idle:
-058d 20404990 call mouse_low_voltage_led_no_enter_lpm 
-058e 20407936 call ui_check_paring_button 
-058f 20400592 call p_mouse_dpi_check 
-0590 204005a6 call p_mouse_dpi_another_gpio_check 
-0591 2020464f branch mouse_idle + 4 
+p_mouse_wakeup_24g_from_long_sleep:
+044e 204041aa call mouse_init_sensor_wakeup 
+044f 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0450 c41e0000 rtnbit0 mouse_enable_wheel_wake_up_cancel 
 
-p_mouse_dpi_check:
-0592 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0593 c2974036 bbit1 mouse_enable_dpi_key_connect_adc ,mouse_dpi_check_connect_adc 
-0594 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-0595 c17f8000 rtneq gpio_disable 
-0596 da200000 arg 0 ,rega 
-0597 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-0598 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-0599 2040059b call p_mouse_dpi_key_check 
-059a 2020402f branch mouse_dpi_check_next 
+p_mouse_wheel_set_wakeup:
+0451 6fe0c913 fetch 1 ,mem_whee_a_data_gpio 
+0452 d8400040 arg gpcfg_pullup ,temp 
+0453 20406093 call gpio_config_function_int 
+0454 6fe0c914 fetch 1 ,mem_whee_b_data_gpio 
+0455 d8400040 arg gpcfg_pullup ,temp 
+0456 20206093 branch gpio_config_function_int 
 
-p_mouse_dpi_key_check:
-059b 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-059c c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-059d 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-059e 1fe22600 copy pdata ,regc 
-059f 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-05a0 c07f85a2 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-05a1 2020403f branch mouse_dpi_key_check_next 
+p_g24_nodata_transmit:
+0457 6fe0c8a7 fetch 1 ,mem_24g_abort_pac 
+0458 205a0465 call p_g24_send_abort_packet ,blank 
+0459 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+045a c1008000 rtneq g24_tx_timer_int_enable 
+045b 2040269f call g24_search_receiver 
 
-p_mouse_3io6key_dpi_check:
-05a2 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-05a3 20400551 call p_mouse_gpio_config_output_low 
-05a4 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-05a5 20204195 branch mouse_3io6key_check 
+p_g24_long_sleep:
+045c 204026bb call g24_lpm_wait 
+045d 24740000 nrtn user 
+045e 204026c4 call g24_setgpio_lpm_before 
+045f 704c6900 jam 0 ,mem_sleep_miss 
+0460 204004c1 call p_send_time_long_wake 
+0461 6fe0cbe1 fetch 1 ,mem_sensor_shutdown_flag 
+0462 245a3e33 ncall mouse_setgpio_hibernate ,blank 
+0463 6fe2485c fetch 4 ,mem_24g_enter_hibernate 
+0464 202026b8 branch g24_long_sleep + 3 
 
-p_mouse_dpi_another_gpio_check:
-05a6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05a7 c41e8000 rtnbit0 mouse_enable_double_dpi_key 
-05a8 6fe0cc3a fetch 1 ,mem_mouse_another_dpi_connect_vin_flag 
-05a9 243a05af nbranch p_mouse_dpi_another_gpio_connect_vin_check ,blank 
+p_g24_send_abort_packet:
+0465 70483601 jam type_ms ,mem_24g_data_type 
+0466 7048a701 jam 1 ,mem_24g_abort_pac 
+0467 20402642 call g24_transmit_rf_ctrl_clear 
+0468 67e0c7c6 store 1 ,mem_24g_txbuf 
+0469 58000000 setarg 0 
+046a 67e3c7c7 store 7 ,mem_24g_txbuf + 1 
+046b 6fe248a9 fetch 4 ,mem_24g_device_addr 
+046c 67e247ce store 4 ,mem_24g_txbuf + 8 
+046d 7048350c jam 12 ,mem_24g_datalen 
+046e 6fe0c836 fetch 1 ,mem_24g_data_type 
+046f 79207e03 set1 bit_abort ,pdata 
+0470 67e0c836 store 1 ,mem_24g_data_type 
+0471 20402291 call g24_transmit_prep 
+0472 2020040c branch p_g24_transmit_start 
 
-p_mouse_dpi_another_gpio_connect_gnd_check:
-05aa 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
-05ab 2040054f call p_mouse_gpio_config_output_high 
-05ac 204005bf call p_mouse_dpi_another_check 
-05ad 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
-05ae 20203f56 branch mouse_gpio_config_input_pu 
+p_g24_lpm_wait:
+0473 6fe0cbaa fetch 1 ,mem_24g_device_led_status 
+0474 245a26e1 ncall g24_transmit_by_interrupt_enable ,blank 
+0475 78347c00 enable user 
+0476 20401465 call lpo_calibration 
+0477 6fe1c174 fetch 3 ,mem_clks_per_lpo 
+0478 203a7e56 branch disable_user ,blank 
+0479 6fe0c099 fetch 1 ,mem_lpm_mode 
+047a 203a7e56 branch disable_user ,blank 
+047b 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+047c c000fe56 beq g24_tx_timer_int_enable ,disable_user 
+047d 78347c00 enable user 
+047e 20600000 rtn 
 
-p_mouse_dpi_another_gpio_connect_vin_check:
-05af 6fe0cc3b fetch 1 ,mem_dpi_another_button_gpio 
-05b0 793ffe07 set0 gpio_active_bit ,pdata 
-05b1 67e0cc3b store 1 ,mem_dpi_another_button_gpio 
-05b2 20400551 call p_mouse_gpio_config_output_low 
-05b3 704c3f00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-05b4 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
-05b5 6fe0cc3c fetch 1 ,mem_dpi_another_press_status 
-05b6 204005d8 call p_mouse_check_key_connect_vin_new 
-05b7 204005c3 call p_mouse_dpi_another_state_check 
-05b8 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
-05b9 20203f56 branch mouse_gpio_config_input_pu 
+p_send_time_check:
+047f 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
+0480 c00084bd beq g24_tx_timer_int_enable ,p_send_timer_first 
+0481 6fe0cc52 fetch 1 ,mem_tx_count 
+0482 203a04bd branch p_send_timer_first ,blank 
+0483 1b227e00 copy clkn ,pdata 
+0484 684b4c53 fetcht 6 ,mem_tx_time_last 
+0485 67e34c53 store 6 ,mem_tx_time_last 
+0486 20407d95 call clk_diff_rt 
+0487 67e24c59 store 4 ,mem_tx_time_last_delt 
+0488 6fe0cc69 fetch 1 ,mem_sleep_miss 
+0489 247a0000 nrtn blank 
+048a 6fe14c67 fetch 2 ,mem_retransmit 
+048b 247a0000 nrtn blank 
+048c 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
+048d 684acc5d fetcht 5 ,mem_tx_time_sum 
+048e 9840fe00 iadd temp ,pdata 
+048f 67e2cc5d store 5 ,mem_tx_time_sum 
+0490 6848cc52 fetcht 1 ,mem_tx_count 
+0491 6fe0cc62 fetch 1 ,mem_tx_time_sum_count 
+0492 98467c00 isub temp ,null 
+0493 20228497 branch p_send_time_check_average ,zero 
+0494 18408401 increase 1 ,temp 
+0495 6048cc52 storet 1 ,mem_tx_count 
+0496 20600000 rtn 
 
-p_mouse_dpi_another_down_new:
-05ba 20403f56 call mouse_gpio_config_input_pu 
-05bb 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
-05bc c1008000 rtneq dpi_button_state_down 
-05bd 704c3d01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-05be 20204069 branch mouse_dpi_process 
+p_send_time_check_average:
+0497 704c5201 jam 1 ,mem_tx_count 
+0498 d8400000 arg 0 ,temp 
+0499 6fe2cc5d fetch 5 ,mem_tx_time_sum 
+049a 604acc5d storet 5 ,mem_tx_time_sum 
+049b 6848cc62 fetcht 1 ,mem_tx_time_sum_count 
+049c 9846fc00 idiv temp 
+049d 20407def call wait_div_end 
+049e 1807a200 quotient rega 
+049f 6fe24c4e fetch 4 ,mem_24g_tsniff 
+04a0 6848cc63 fetcht 1 ,mem_tx_time_offset 
+04a1 98460400 isub temp ,temp 
+04a2 184085d8 increase -40 ,temp 
+04a3 1a227e00 copy rega ,pdata 
+04a4 98467e00 isub temp ,pdata 
+04a5 202104b1 branch p_send_time_check_average_late ,positive 
+04a6 1fe67e00 sub pdata ,0 ,pdata 
+04a7 1feb7e00 rshift2 pdata ,pdata 
+04a8 6849c8ad fetcht 3 ,mem_24g_short_sleep_set 
+04a9 98408400 iadd temp ,temp 
+04aa 6fe1cc64 fetch 3 ,mem_24g_short_sleep_set_init 
+04ab da201800 arg 0x1800 ,rega 
+04ac 9a20fe00 iadd rega ,pdata 
+04ad 98467c00 isub temp ,null 
+04ae 242104bb nbranch p_send_time_check_average_min ,positive 
+04af 6049c8ad storet 3 ,mem_24g_short_sleep_set 
+04b0 20600000 rtn 
 
-p_mouse_dpi_another_check:
-05bf 704c3f00 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
-05c0 6848cc3b fetcht 1 ,mem_dpi_another_button_gpio 
-05c1 6fe0cc3c fetch 1 ,mem_dpi_another_press_status 
-05c2 204005ce call p_mouse_check_key_connect_gnd_new 
+p_send_time_check_average_late:
+04b1 1feb0400 rshift2 pdata ,temp 
+04b2 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
+04b3 98460400 isub temp ,temp 
+04b4 6fe1cc64 fetch 3 ,mem_24g_short_sleep_set_init 
+04b5 da201800 arg 0x1800 ,rega 
+04b6 9a267e00 isub rega ,pdata 
+04b7 98467c00 isub temp ,null 
+04b8 202104bb branch p_send_time_check_average_min ,positive 
+04b9 6049c8ad storet 3 ,mem_24g_short_sleep_set 
+04ba 20600000 rtn 
 
-p_mouse_dpi_another_state_check:
-05c3 67e0cc3c store 1 ,mem_dpi_another_press_status 
-05c4 6fe0cc3e fetch 1 ,mem_dpi_another_button_down_enable 
-05c5 203a05ca branch p_mouse_dpi_another_up ,blank 
+p_send_time_check_average_min:
+04bb 67e1c8ad store 3 ,mem_24g_short_sleep_set 
+04bc 20600000 rtn 
 
-p_mouse_dpi_another_down:
-05c6 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
-05c7 c1008000 rtneq dpi_button_state_down 
-05c8 704c3d01 jam dpi_button_state_down ,mem_dpi_another_button_state 
-05c9 20204069 branch mouse_dpi_process 
+p_send_timer_first:
+04bd 704c5201 jam 1 ,mem_tx_count 
+04be 1b227e00 copy clkn ,pdata 
+04bf 67e34c53 store 6 ,mem_tx_time_last 
+04c0 20600000 rtn 
 
-p_mouse_dpi_another_up:
-05ca 6fe0cc3d fetch 1 ,mem_dpi_another_button_state 
-05cb c1000000 rtneq dpi_button_state_up 
-05cc 704c3d00 jam dpi_button_state_up ,mem_dpi_another_button_state 
-05cd 20600000 rtn 
+p_send_time_long_wake:
+04c1 58000000 setarg 0 
+04c2 67e0cc52 store 1 ,mem_tx_count 
+04c3 67e2cc5d store 5 ,mem_tx_time_sum 
+04c4 20600000 rtn 
 
-p_mouse_check_key_connect_gnd_new:
-05ce 1fe3fe00 lshift pdata ,pdata 
-05cf 1fe22400 copy pdata ,regb 
-05d0 20406059 call gpio_get_bit 
-05d1 7920a400 setflag true ,0 ,regb 
-05d2 1a417e07 and regb ,0x07 ,pdata 
-05d3 6848cc3f fetcht 1 ,mem_mouse_key_temp_patch 
-05d4 18420e00 copy temp ,queue 
-05d5 c00385e3 beq 0x07 ,p_mouse_key_press 
-05d6 c00005e5 beq 0x00 ,p_mouse_key_release 
-05d7 20600000 rtn 
+p_g24_pair_dispatch:
+04c5 70488b00 jam default_24g_device ,mem_24g_reconn_type 
+04c6 6fe14beb fetch 2 ,mem_24g_pair_count 
+04c7 1fe0fe01 increase 1 ,pdata 
+04c8 67e14beb store 2 ,mem_24g_pair_count 
+04c9 6fe0cbeb fetch 1 ,mem_24g_pair_count 
+04ca 1fe17eff and pdata ,0xff ,pdata 
+04cb 247a0000 nrtn blank 
+04cc 6fe0c87f fetch 1 ,mem_24g_pair_sm 
+04cd c07fa38e beq state_24g_pairing_success ,g24_pair_exit 
+04ce c00084d3 beq state_24g_pairing_1 ,p_g24_pair_sm_1 
+04cf c00104d5 beq state_24g_pairing_2 ,p_g24_pair_sm_2 
+04d0 c00184db beq state_24g_pairing_3 ,p_g24_pair_sm_3 
+04d1 c00204e1 beq state_24g_pairing_4 ,p_g24_pair_sm_4 
+04d2 20600000 rtn 
 
-p_mouse_check_key_connect_vin_new:
-05d8 1fe3fe00 lshift pdata ,pdata 
-05d9 1fe22400 copy pdata ,regb 
-05da 20403f54 call mouse_gpio_config_input_pd 
-05db 20406059 call gpio_get_bit 
-05dc 7920a400 setflag true ,0 ,regb 
-05dd 1a417e07 and regb ,0x07 ,pdata 
-05de 6848cc3f fetcht 1 ,mem_mouse_key_temp_patch 
-05df 18420e00 copy temp ,queue 
-05e0 c00385e3 beq 0x07 ,p_mouse_key_press 
-05e1 c00005e5 beq 0x00 ,p_mouse_key_release 
-05e2 20600000 rtn 
+p_g24_pair_sm_1:
+04d3 7047c6ff jam datatype_attemp ,mem_24g_txbuf 
+04d4 202004e2 branch p_g24_pair_sm_prep 
 
-p_mouse_key_press:
-05e3 704c3e01 jam 1 ,mem_dpi_another_button_down_enable 
-05e4 20600000 rtn 
+p_g24_pair_sm_2:
+04d5 6fe0c85b fetch 1 ,mem_24g_pair_switch 
+04d6 203a04d9 branch p_g24_pair_sm_2_skip ,blank 
+04d7 6fe248a9 fetch 4 ,mem_24g_device_addr 
+04d8 204022dc call g24_update_addr_and_synccrc8 
 
-p_mouse_key_release:
-05e5 704c3e00 jam 0 ,mem_dpi_another_button_down_enable 
-05e6 20600000 rtn 
+p_g24_pair_sm_2_skip:
+04d9 7047c6aa jam datatype_bind ,mem_24g_txbuf 
+04da 202004e2 branch p_g24_pair_sm_prep 
 
-p_mouse_dpi_process:
-05e7 20404072 call mouse_dpi_ghost_check 
-05e8 20740000 rtn user 
-05e9 6fe0c992 fetch 1 ,mem_mouse_dpi 
-05ea 1fe20400 copy pdata ,temp 
-05eb 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05ec c29e85f3 bbit1 mouse_enable_double_dpi_key ,p_mouse_double_dpi_check 
-05ed 18427e00 copy temp ,pdata 
-05ee 1fe0fe01 increase 1 ,pdata 
-05ef 1fe17e03 and pdata ,0x03 ,pdata 
+p_g24_pair_sm_3:
+04db 7047c655 jam datatype_config ,mem_24g_txbuf 
+04dc 6fe0c85b fetch 1 ,mem_24g_pair_switch 
+04dd 203a04e2 branch p_g24_pair_sm_prep ,blank 
+04de 6fe24891 fetch 4 ,mem_24g_receiver_addr 
+04df 67e247c8 store 4 ,mem_24g_txbuf + 2 
+04e0 202004e4 branch p_g24_pair_sm_common 
 
-p_mouse_dpi_store:
-05f0 67e0c992 store 1 ,mem_mouse_dpi 
-05f1 20404095 call mouse_seting_dpi 
-05f2 202045ee branch mouse_store_device_info_delay 
+p_g24_pair_sm_4:
+04e1 7047c622 jam datatype_ok ,mem_24g_txbuf 
 
-p_mouse_double_dpi_check:
-05f3 6fe0cc3e fetch 1 ,mem_dpi_another_button_down_enable 
-05f4 243a0610 nbranch p_mouse_another_dpi_button_down ,blank 
+p_g24_pair_sm_prep:
+04e2 6fe248a9 fetch 4 ,mem_24g_device_addr 
+04e3 67e247c8 store 4 ,mem_24g_txbuf + 2 
 
-p_mouse_dpi_increase:
-05f5 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05f6 c28e0604 bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_increase_level_4 
-05f7 18427e00 copy temp ,pdata 
-05f8 c1008000 rtneq mouse_dpi_level2 
+p_g24_pair_sm_common:
+04e4 6fe0c836 fetch 1 ,mem_24g_data_type 
+04e5 1fe17e07 and_into bits_data ,pdata 
+04e6 67e0c7c7 store 1 ,mem_24g_txbuf + 1 
+04e7 7047cc00 jam 0 ,mem_24g_txbuf + 6 
+04e8 70483507 jam 7 ,mem_24g_datalen 
+04e9 20402291 call g24_transmit_prep 
+04ea 204003d9 call p_g24_transmit_receive_ack 
+04eb 20202360 branch g24_pair_sm_common + 7 
 
-p_mouse_dpi_increase_level:
-05f9 c0000600 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-05fa c00105fe beq mouse_dpi_level3 ,p_mouse_dpi_level_2 
-05fb 20600000 rtn 
+p_g24_reconn_dispatch:
+04ec 6fe14889 fetch 2 ,mem_24g_reconn_count 
+04ed d84001f8 arg 0x01f8 ,temp 
+04ee 98417e00 iand temp ,pdata 
+04ef 203a04f4 branch p_g24_reconn_dispatch_next ,blank 
+04f0 6fe14889 fetch 2 ,mem_24g_reconn_count 
+04f1 1fe0fe01 increase 1 ,pdata 
+04f2 67e14889 store 2 ,mem_24g_reconn_count 
+04f3 20600000 rtn 
 
-p_mouse_dpi_level_1:
-05fc 58000002 setarg 2 
-05fd 202005f0 branch p_mouse_dpi_store 
+p_g24_reconn_dispatch_next:
+04f4 2040259a call g24_reconn_data_prep 
+04f5 204003d9 call p_g24_transmit_receive_ack 
+04f6 242c050d nbranch p_g24_reconn_device_fail ,sync 
+04f7 2437850d nbranch p_g24_reconn_device_fail ,user3 
+04f8 20402672 call g24_ackpayload_parse 
+04f9 6fe24877 fetch 4 ,mem_24g_pair_addr 
+04fa 684a483c fetcht 4 ,mem_24g_addr 
+04fb 98467c00 isub temp ,null 
+04fc 2022a32e branch g24_pair_start ,zero 
+04fd 6fe248a9 fetch 4 ,mem_24g_device_addr 
+04fe 684a483c fetcht 4 ,mem_24g_addr 
+04ff 98467c00 isub temp ,null 
+0500 20428509 call p_g24_store_receiver_addr ,zero 
+0501 6fe0c8a1 fetch 1 ,mem_24g_conn_sm 
+0502 793ffe02 set0 state_24g_reconn ,pdata 
+0503 67e0c8a1 store 1 ,mem_24g_conn_sm 
+0504 58000000 setarg 0 
+0505 67e14883 store 2 ,mem_24g_pair_timeout 
+0506 67e14889 store 2 ,mem_24g_reconn_count 
+0507 67e14887 store 2 ,mem_24g_reconn_timeout 
+0508 20202595 branch g24_reconn_attempt_success 
 
-p_mouse_dpi_level_2:
-05fe 58000000 setarg 0 
-05ff 202005f0 branch p_mouse_dpi_store 
+p_g24_store_receiver_addr:
+0509 6fe2480c fetch 4 ,mem_24g_rxpayload + 2 
+050a 207a0000 rtn blank 
+050b 67e24891 store 4 ,mem_24g_receiver_addr 
+050c 2020257e branch g24_ch_syncword_crc8_init 
 
-p_mouse_dpi_level_3:
-0600 58000001 setarg 1 
-0601 202005f0 branch p_mouse_dpi_store 
+p_g24_reconn_device_fail:
+050d 6fe0c88c fetch 1 ,mem_24g_fast_conn_enable 
+050e 203a22cb branch g24_ch ,blank 
+050f 6fe14889 fetch 2 ,mem_24g_reconn_count 
+0510 1fe0fe01 increase 1 ,pdata 
+0511 67e14889 store 2 ,mem_24g_reconn_count 
+0512 6fe0c88a fetch 1 ,mem_24g_reconn_count + 1 
+0513 2feffe01 isolate1 1 ,pdata 
+0514 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+0515 c000a5ad beq fast_conn_and_receiver ,g24_reconn_fast_conn_and_receiver 
+0516 c00125af beq fast_conn_and_3_0_addr ,g24_reconn_fast_conn_and_3_0 
+0517 c001a5b1 beq receiver_and_3_0_addr ,g24_reconn_receiver_and_3_0 
+0518 c002051a beq pair_and_3_0_addr ,p_g24_reconn_pair_and_3_0 
+0519 2020256e branch g24_reconn_receiver_addr 
 
-p_mouse_dpi_level_4:
-0602 58000003 setarg 3 
-0603 202005f0 branch p_mouse_dpi_store 
+p_g24_reconn_pair_and_3_0:
+051a 2020a575 branch g24_reconn_device_3_0_addr ,true 
+051b 20202339 branch g24_pair_init_param 
 
-p_mouse_dpi_increase_level_4:
-0604 18427e00 copy temp ,pdata 
-0605 c1008000 rtneq mouse_dpi_level2 
-0606 c0000600 beq mouse_dpi_level1 ,p_mouse_dpi_level_3 
-0607 c0010602 beq mouse_dpi_level3 ,p_mouse_dpi_level_4 
-0608 c00185fe beq mouse_dpi_level4 ,p_mouse_dpi_level_2 
-0609 20600000 rtn 
+p_mouse_24g_pairing_complete:
+051c 20404544 call mouse_no_data_timer_init 
+051d d8e00001 arg mouse_24g_pairing_flag ,queue 
+051e 204046f4 call mouse_disable_function_flag 
+051f 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0520 c0004859 beq 0 ,mouse_24g_pairing_complete_enable_poweron_timer 
+0521 204000de call p_mouse_multi_led_on_enable 
+0522 2020485a branch mouse_24g_pairing_complete_skip_poweron_timer 
 
-p_mouse_dpi_decrease_level_4:
-060a 18427e00 copy temp ,pdata 
-060b c1010000 rtneq mouse_dpi_level3 
-060c c0000602 beq mouse_dpi_level1 ,p_mouse_dpi_level_4 
-060d c00085fe beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-060e c00185fc beq mouse_dpi_level4 ,p_mouse_dpi_level_1 
-060f 20600000 rtn 
+p_mouse_24g_attempt_success:
+0523 6fe2483c fetch 4 ,mem_24g_addr 
+0524 67e24891 store 4 ,mem_24g_receiver_addr 
+0525 67e24993 store 4 ,mem_mouse_24g_addr 
+0526 2040257e call g24_ch_syncword_crc8_init 
+0527 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+0528 c000052b beq 0 ,p_mouse_24g_attempt_success_next 
+0529 204000de call p_mouse_multi_led_on_enable 
+052a 2020052c branch p_mouse_24g_attempt_success_next + 1 
 
-p_mouse_another_dpi_button_down:
+p_mouse_24g_attempt_success_next:
+052b 204048c6 call mouse_device_poweron_timer_init 
+052c 20404544 call mouse_no_data_timer_init 
+052d 2020484e branch mouse_24g_attempt_success 
 
-p_mouse_dpi_decrease:
-0610 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-0611 c28e060a bbit1 mouse_enable_dpi_level_4 ,p_mouse_dpi_decrease_level_4 
-0612 18427e00 copy temp ,pdata 
-0613 c1010000 rtneq mouse_dpi_level3 
+p_mouse_24g_attempt_fail:
+052e 6fe0c8a5 fetch 1 ,mem_24g_attempt_fail_flag 
+052f 243a0559 nbranch p_mouse_24g_hibernate_set ,blank 
+0530 6fe0c88b fetch 1 ,mem_24g_reconn_type 
+0531 c0010535 beq fast_conn_and_3_0_addr ,p_mouse_24g_fast_conn_attempt_fail 
+0532 c002054d beq pair_and_3_0_addr ,p_mouse_24g_auto_pair_attempt_fail 
+0533 c0018552 beq receiver_and_3_0_addr ,p_mouse_reconn_dongle_attempt_fail 
+0534 20204839 branch mouse_24g_attempt_fail_enter_hibernate 
 
-p_mouse_dpi_decrease_level:
-0614 c00005fc beq mouse_dpi_level1 ,p_mouse_dpi_level_1 
-0615 c00085fe beq mouse_dpi_level2 ,p_mouse_dpi_level_2 
-0616 20600000 rtn 
+p_mouse_24g_fast_conn_attempt_fail:
+0535 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0536 c297853e bbit1 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_start_auto_pair 
+0537 c298053e bbit1 mouse_enable_auto_24g_paring ,p_mouse_24g_start_auto_pair 
+0538 c31d4806 bbit0 mouse_enable_24g_auto_pair_nerver_been_paired ,mouse_24g_reconn_dongle_start 
+0539 6fe24993 fetch 4 ,mem_mouse_24g_addr 
+053a 684a4974 fetcht 4 ,mem_mouse_compare_addr_ff 
+053b 98467c00 isub temp ,null 
+053c 20228542 branch p_mouse_24g_start_pair_mode ,zero 
+053d 20204806 branch mouse_24g_reconn_dongle_start 
 
-p_send_time_check:
-0617 6fe0c8bd fetch 1 ,mem_24g_transmit_by_interrupt 
-0618 c0008655 beq g24_tx_timer_int_enable ,p_send_timer_first 
-0619 6fe0cc52 fetch 1 ,mem_tx_count 
-061a 203a0655 branch p_send_timer_first ,blank 
-061b 1b227e00 copy clkn ,pdata 
-061c 684b4c53 fetcht 6 ,mem_tx_time_last 
-061d 67e34c53 store 6 ,mem_tx_time_last 
-061e 20407d95 call clk_diff_rt 
-061f 67e24c59 store 4 ,mem_tx_time_last_delt 
-0620 6fe0cc69 fetch 1 ,mem_sleep_miss 
-0621 247a0000 nrtn blank 
-0622 6fe14c67 fetch 2 ,mem_retransmit 
-0623 247a0000 nrtn blank 
-0624 6fe24c59 fetch 4 ,mem_tx_time_last_delt 
-0625 684acc5d fetcht 5 ,mem_tx_time_sum 
-0626 9840fe00 iadd temp ,pdata 
-0627 67e2cc5d store 5 ,mem_tx_time_sum 
-0628 6848cc52 fetcht 1 ,mem_tx_count 
-0629 6fe0cc62 fetch 1 ,mem_tx_time_sum_count 
-062a 98467c00 isub temp ,null 
-062b 2022862f branch p_send_time_check_average ,zero 
-062c 18408401 increase 1 ,temp 
-062d 6048cc52 storet 1 ,mem_tx_count 
-062e 20600000 rtn 
+p_mouse_24g_start_auto_pair:
+053e 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+053f c0004811 beq 0 ,mouse_24g_start_auto_pair 
+0540 204000d9 call p_mouse_multi_led_blink_enable 
+0541 20204812 branch mouse_24g_start_auto_pair + 1 
 
-p_send_time_check_average:
-062f 704c5201 jam 1 ,mem_tx_count 
-0630 d8400000 arg 0 ,temp 
-0631 6fe2cc5d fetch 5 ,mem_tx_time_sum 
-0632 604acc5d storet 5 ,mem_tx_time_sum 
-0633 6848cc62 fetcht 1 ,mem_tx_time_sum_count 
-0634 9846fc00 idiv temp 
-0635 20407def call wait_div_end 
-0636 1807a200 quotient rega 
-0637 6fe24c4e fetch 4 ,mem_24g_tsniff 
-0638 6848cc63 fetcht 1 ,mem_tx_time_offset 
-0639 98460400 isub temp ,temp 
-063a 184085d8 increase -40 ,temp 
-063b 1a227e00 copy rega ,pdata 
-063c 98467e00 isub temp ,pdata 
-063d 20210649 branch p_send_time_check_average_late ,positive 
-063e 1fe67e00 sub pdata ,0 ,pdata 
-063f 1feb7e00 rshift2 pdata ,pdata 
-0640 6849c8ad fetcht 3 ,mem_24g_short_sleep_set 
-0641 98408400 iadd temp ,temp 
-0642 6fe1cc64 fetch 3 ,mem_24g_short_sleep_set_init 
-0643 da201800 arg 0x1800 ,rega 
-0644 9a20fe00 iadd rega ,pdata 
-0645 98467c00 isub temp ,null 
-0646 24210653 nbranch p_send_time_check_average_min ,positive 
-0647 6049c8ad storet 3 ,mem_24g_short_sleep_set 
-0648 20600000 rtn 
+p_mouse_24g_start_pair_mode:
+0542 70488b00 jam 0 ,mem_24g_reconn_type 
+0543 d8e00001 arg mouse_24g_pairing_flag ,queue 
+0544 204046f0 call mouse_enable_function_flag 
+0545 58000000 setarg 0 
+0546 67e14887 store 2 ,mem_24g_reconn_timeout 
+0547 20404576 call mouse_stop_discovery 
+0548 2040498e call mouse_low_voltage_led_blink_disable 
+0549 6fe0cc40 fetch 1 ,mem_mouse_1io2led_led_enable 
+054a c000482d beq 0 ,mouse_24g_start_pair_mode_enable_blink_timer 
+054b 204000d9 call p_mouse_multi_led_blink_enable 
+054c 2020482e branch mouse_24g_start_pair_mode_skip_blink_timer 
 
-p_send_time_check_average_late:
-0649 1feb0400 rshift2 pdata ,temp 
-064a 6fe1c8ad fetch 3 ,mem_24g_short_sleep_set 
-064b 98460400 isub temp ,temp 
-064c 6fe1cc64 fetch 3 ,mem_24g_short_sleep_set_init 
-064d da201800 arg 0x1800 ,rega 
-064e 9a267e00 isub rega ,pdata 
-064f 98467c00 isub temp ,null 
-0650 20210653 branch p_send_time_check_average_min ,positive 
-0651 6049c8ad storet 3 ,mem_24g_short_sleep_set 
-0652 20600000 rtn 
+p_mouse_24g_auto_pair_attempt_fail:
+054d 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+054e c3178557 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+054f 6fe0cbb4 fetch 1 ,mem_device_number 
+0550 c0008557 beq 1 ,p_mouse_24g_attempt_fail_enter_hibernate 
+0551 2020481a branch mouse_24g_first_bluetooth_reconnect 
 
-p_send_time_check_average_min:
-0653 67e1c8ad store 3 ,mem_24g_short_sleep_set 
-0654 20600000 rtn 
+p_mouse_reconn_dongle_attempt_fail:
+0552 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0553 c3178557 bbit0 mouse_enable_24g_first_auto_pairing ,p_mouse_24g_attempt_fail_enter_hibernate 
+0554 c2898557 bbit1 mouse_enable_eeprom ,p_mouse_24g_attempt_fail_enter_hibernate 
+0555 c2890557 bbit1 mouse_enable_flash ,p_mouse_24g_attempt_fail_enter_hibernate 
+0556 20204812 branch mouse_24g_start_auto_pair + 1 
 
-p_send_timer_first:
-0655 704c5201 jam 1 ,mem_tx_count 
-0656 1b227e00 copy clkn ,pdata 
-0657 67e34c53 store 6 ,mem_tx_time_last 
-0658 20600000 rtn 
+p_mouse_24g_attempt_fail_enter_hibernate:
+0557 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+0558 c31e4839 bbit0 mouse_enable_wheel_wake_up_cancel ,mouse_24g_attempt_fail_enter_hibernate 
 
-p_send_time_long_wake:
-0659 58000000 setarg 0 
-065a 67e0cc52 store 1 ,mem_tx_count 
-065b 67e2cc5d store 5 ,mem_tx_time_sum 
-065c 20600000 rtn 
-
-p_power_ctrl_start:
-065d 6fe1478c fetch 2 ,mem_ui_state_map 
-065e c3858000 rtnbit1 ui_state_ble_adv 
-065f c3838000 rtnbit1 ui_state_bt_reconnect 
-0660 c3830000 rtnbit1 ui_state_bt_discovery 
-0661 20400677 call p_rssi_sort 
-0662 20400674 call p_rssi_average 
-0663 6048c8c7 storet 1 ,mem_rssi_avg_received 
-0664 20400669 call p_g24_fast_conn_mode_check 
-0665 6fe0cc92 fetch 1 ,mem_g24_fast_conn_enable 
-0666 243a0672 nbranch p_g24_fast_conn_mode_txpower ,blank 
-0667 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
-0668 202026f6 branch power_ctrl_rssi_avg_compare 
-
-p_g24_fast_conn_mode_check:
-0669 c6930000 rtnmark0 mark_24g 
-066a 6fe24891 fetch 4 ,mem_24g_receiver_addr 
-066b 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
-066c 98467c00 isub temp ,null 
-066d 20228670 branch p_g24_fast_conn_mode_enable ,zero 
-
-p_g24_fast_conn_mode_disable:
-066e 704c9200 jam 0 ,mem_g24_fast_conn_enable 
-066f 20600000 rtn 
-
-p_g24_fast_conn_mode_enable:
-0670 704c9201 jam 1 ,mem_g24_fast_conn_enable 
-0671 20600000 rtn 
-
-p_g24_fast_conn_mode_txpower:
-0672 7041e8aa jam tx_power_fast_conn ,mem_tx_power 
-0673 20600000 rtn 
-
-p_rssi_average:
-0674 da204c88 arg mem_mouse_rssi_signal_buf_temp + 6 ,rega 
-0675 dfe0000a arg 10 ,pdata 
-0676 202025cd branch rssi_average + 2 
-
-p_rssi_sort:
-0677 2040067d call p_memcpy16 
-0678 da404c82 arg mem_mouse_rssi_signal_buf_temp ,regb 
-0679 6fe0c87d fetch 1 ,mem_rssi_buff_index 
-067a 1fe0fe01 increase 1 ,pdata 
-067b 1fe27200 copy pdata ,loopcnt 
-067c 20200680 branch p_bubble_sort 
-
-p_memcpy16:
-067d d8c04c72 arg mem_mouse_rssi_signal_buf_patch ,contr 
-067e d8a04c82 arg mem_mouse_rssi_signal_buf_temp ,contw 
-067f 20207d0c branch memcpy16 
-
-p_bubble_sort:
-0680 1f20f3ff increase -1 ,loopcnt 
-0681 1f227e00 deposit loopcnt 
-0682 207a0000 rtn blank 
-
-p_external_loop:
-0683 1f222200 copy loopcnt ,rega 
-0684 1a20a3ff increase -1 ,rega 
-0685 1a420c00 copy regb ,contr 
-
-p_internal_loop:
-0686 efe08006 ifetch 1 ,contr 
-0687 18c20a00 copy contr ,contw 
-0688 e8408006 ifetcht 1 ,contr 
-0689 98467c00 isub temp ,null 
-068a 20400690 call p_sort_up 
-068b 18c08dff increase -1 ,contr 
-068c 1a20a3ff increase -1 ,rega 
-068d 20210686 branch p_internal_loop ,positive 
-068e c2000683 loop p_external_loop 
-068f 20600000 rtn 
-
-p_sort_up:
-0690 20410692 call p_exchange_data ,positive 
-0691 20600000 rtn 
-
-p_exchange_data:
-0692 18a08bff increase -1 ,contw 
-0693 e0408005 istoret 1 ,contw 
-0694 e7e08005 istore 1 ,contw 
-0695 20600000 rtn 
+p_mouse_24g_hibernate_set:
+0559 7048a500 jam 0 ,mem_24g_attempt_fail_flag 
+055a 20402652 call g24_transmit_next_packet 
+055b 5fffffff setarg -1 
+055c 67e2485c store 4 ,mem_24g_enter_hibernate 
+055d 58000000 setarg 0 
+055e 67e3c8d0 store 7 ,mem_mouse_key 
+055f 704be101 jam 1 ,mem_sensor_shutdown_flag 
+0560 20400153 call p_mouse_sensor_powerdown 
+0561 2020045c branch p_g24_long_sleep 
               org 0x800
 
 start:
@@ -12439,8 +12051,6 @@
 26b5 204026bb call g24_lpm_wait 
 26b6 24740000 nrtn user 
 26b7 6fe4485c fetch 8 ,mem_24g_enter_hibernate 
-
-g24_long_sleep2:
 26b8 20407daa call clk2lpo 
 26b9 604a4160 storet 4 ,mem_sleep_counter 
 26ba 20201497 branch lpm_sleep 
@@ -19943,8 +19553,6 @@
 3c51 e7e18005 istore 3 ,contw 
 3c52 58ffffff setarg 0xffffff 
 3c53 e7e18005 istore 3 ,contw 
-
-mouse_default_init_next:
 3c54 7048f70a jam 0x0a ,mem_adc_read_time_init 
 3c55 58000064 setarg 0x0064 
 3c56 67e14bc8 store 2 ,mem_adc_low_volatage_led_blink_timer 
Index: program/app_mouse.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program/app_mouse.prog	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program/app_mouse.prog	(working copy)
@@ -181,8 +181,7 @@
 	istore 3,contw
 	setarg 0xffffff
 	istore 3,contw
-mouse_default_init_next:
-	
+
 /* adc*/
 	jam 0x0a,mem_adc_read_time_init
 	setarg 0x0064
Index: program/g24_protocol_stack/24g_transmitter.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program/g24_protocol_stack/24g_transmitter.prog	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program/g24_protocol_stack/24g_transmitter.prog	(working copy)
@@ -279,7 +279,6 @@
 	call g24_lpm_wait
 	nrtn user
 	fetch 8,mem_24g_enter_hibernate
-g24_long_sleep2:
 	call clk2lpo
 	storet 4,mem_sleep_counter
 	branch lpm_sleep
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program/patch.prog	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program/patch.prog	(working copy)
@@ -1,20 +1,19 @@
-
+ //define BLE
+//define CLASSIC
 //define G24_OTA
+//define PW_CTRL
 define FIRE_KEY
 //define UARTA_DEBUG
 
 	bbit1 8,pf_patch_ext
 	beq patch00_0,p_soft_reset
-	beq patch00_3,p_main_loop
 	beq patch10_3,p_set_sync_on
 	beq patch10_4,p_set_freq_rx
 	beq patch10_5,p_rf_rx_enable
 	beq patch11_2,p_txon_next
-	beq patch11_3,p_initialize_radio_cont	
+	beq patch11_3,p_initialize_radio_cont
 	beq patch11_4,p_save_rssi
-	beq patch13_7,p_init_param
 	beq patch15_6,p_app_init
-	beq patch16_0,p_app_evt_100ms_loop
 	beq patch18_3,p_mouse_start_work
 	beq patch18_4,p_mouse_start_reconnect_device
 	beq patch18_7,p_mouse_app_enter_hibernate
@@ -28,17 +27,16 @@
 	beq patch1a_4,p_mouse_sensor_poweron
 	beq patch1a_6,p_mouse_priority_bb_event
 	beq patch1b_1,p_mouse_bb_event_timer
-	beq patch1b_2,p_mouse_start_discovery
 	beq patch1b_6,p_mouse_idle
-	beq patch1d_0,p_hid_rx_process
+//	beq patch1b_2,p_mouse_start_discovery	/**BLE PATCH**/
+//	beq patch13_7,p_init_param				/**CLASSIC PATCH**/
+//	beq patch1d_0,p_hid_rx_process			/**CLASSIC PATCH**/
 	branch loop
 
 pf_patch_ext:
 	beq patch26_3,p_adc_init_data
 	beq patch26_4,p_enable_adc
-	beq patch30_7,p_ui_timer_check		
-	beq patch34_1,p_le_slave_match
-	beq patch38_0,p_le_parse_l2cap
+	beq patch30_7,p_ui_timer_check
 	beq patch3b_5,p_g24_dispatch
 	beq patch3b_6,p_g24_receive_packet
 	beq patch3c_1,p_g24_transmit
@@ -46,335 +44,25 @@
 	beq patch3d_1,p_g24_reconn_dispatch
 	beq patch3d_2,p_g24_transmit_no_interrupt
 	beq patch3d_4,p_g24_lpm_wait
-	beq patch3d_5,p_power_ctrl_start
+//	beq patch3d_5,p_power_ctrl_start
+//	beq patch34_1,p_le_slave_match	/**BLE PATCH**/
+//	beq patch34_3,p_le_slave_unsync	/**BLE PATCH**/
+//	beq patch38_0,p_le_parse_l2cap	/**BLE PATCH**/
 	branch loop
-p_set_mem_xtal_cache:
-	fetch 1,mem_lpm_config+1
-	store 1,mem_xtal_cache
-	rtn
-p_soft_reset:
-	clear_stack
-	ncall p_set_mem_xtal_cache,wake
-	call app_param_init
-	setarg mem_mouse_rssi_signal_buf_patch
-	store 2,mem_rssi_signal_buf_ptr	
-	call mouse_xtal_init		// 16M / 24M
-	call initialize_radio
-	fetch 1,mem_xtal_cache
-	store 1,mem_lpm_config+1
-	setarg 0xf0f
-	arg 0xfff,contw
-	iand contw,contw
-	fetch 1,mem_lpm_config
-	and_into 0xf0,pdata
-	lshift8 pdata,pdata
-	ior contw,pdata
-	set0 2,pdata
-	store 2,core_lpm_reg
-	ifetch 2,contr
-	istore 2,contw
-	setarg lpmreg_sel_ctrl
-	until null,lpo_edge
-	store 1,core_lpm_wr
-	jam 0x08,mem_lpm_config+1
-	jam 4,core_clksel
-	branch soft_reset+4
-
-p_mouse_start_reconnect_device:
-	fetch 1,mem_mouse_bt_led_recon_effect_flag
-	ncall p_mouse_multi_led_blink_enable,blank
-	branch mouse_start_reconnect_device+1
-
-/////////////////////////////////// adc//////////////////////////////////////
-p_main_loop:
-ifdef SIMPLE_PAIRING
-	call sp_calc_sequence
-endif
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256
-endif
-ifdef SIMPLE_PAIRING
-ifdef SECURE_CONNECTION
-	call sp_calc_sequence_256_check
-endif
-endif
-	call le_advertising_dispatch+1
-	call idle_dispatch
-	call app_process_idle+1
-	call inquiry_dispatch+1
-	call inquiry_scan_dispatch+1
-	call page_scan_dispatch+1
-	call connection_dispatch+1
-	call g24_dispatch+2
-	call p_lpm_dispatch
-	branch main_loop
-	
-p_lpm_dispatch:
-	call lpo_calibration
-	fetch 3,mem_clks_per_lpo
-	rtn blank
-	fetch 1,mem_lpm_mode
-	rtn blank
-	fetch 1,mem_ssp_enable
-	branch p_lpm_dispatch_next,blank
-	fetch 1,mem_sp_local_key_invalid	// simple pairing is not ready
-	rtn blank
-p_lpm_dispatch_next:
-	fetch 1,mem_sc_calc
-	nrtn blank	
-	branch lpm_dispatch_next+3
-
-p_set_sync_on:
-	jam 0x5,modem_en
-	nop 2
-	jam 0x0,modem_en					/* if called from tx or rx */
-	fetch 1,mem_fcomp_div
-	beq XTAL_24M,set_sync_on_24m
-p_set_sync_on_16m:
-	jam 0x29,core_syn_afc_cfg1
-	branch set_sync_on_16m	
-
-p_set_freq_rx:
-	call set_freq_rx+1
-	setarg 0x7676
-	store 2,0x8968
-	rtn
-
-p_rf_rx_enable:
-	fetch 1,mem_g24_fast_conn_enable
-	nbranch p_rf_rx_enable_g24_fast_conn_mode,blank
-	nop 300
-	call rf_debug_rx_gpio_high
-	arg mem_gain_table,contr
-	iadd contr,contr
-	ifetch 1,contr
-	store 1,core_rf_rx_gain_fix
-	jam 0x2e,core_rf_rx_agc_ctrl	
-	branch rf_rx_enable_no_soft_agc_next
-	
-p_rf_rx_enable_g24_fast_conn_mode:
-	fetch 1,core_rf_rx_agc_ctrl
-	or pdata,0x01,pdata					//disable agc		
-	store 1,core_rf_rx_agc_ctrl
-	jam 0x04,core_rf_rx_gain_fix		//set agc level
-	branch rf_rx_enable_no_soft_agc_next
-
-p_save_rssi:
-	// bit6 is signed bit. 
-	fetch 1,modem_nb_pow 
-	isolate1 6,pdata 
-	setflag true,7,pdata 
-	store 1,mem_modem_rssi 
-	
-	fetch 1,modem_gain 
-	and pdata,0x0f,temp 
-	lshift temp,temp 
-	rshift4 pdata,pdata 
-	iadd temp,temp 
-	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3 
-
-	fetch 1,mem_modem_rssi 
-	call p_byte_sign_extern 
-	sub pdata,0,pdata //-modem_nb_pow 
-	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) 
-	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9 
-	and pdata,0x1ff,pdata 
-	isolate1 8,pdata 
-	nbranch p_save_rssi_store,true 
-	setarg 0 
-p_save_rssi_store:
-	store 1,mem_rssi_hex
-	rtn
-p_byte_sign_extern:
-	isolate1 7,pdata
-	nrtn true
-	arg 0xff00,temp
-	ior temp,pdata
-	rtn
-
-p_txon_next:
-	fetch 1,mem_g24_fast_conn_enable
-	nbranch p_set_tx_power_fast_conn,blank
-	branch set_tx_power_10db
-	//fetch 1,mem_tx_power
-	//beq TX_POWER_F30DB,p_set_tx_power_f30db
-	//beq TX_POWER_F40DB,p_set_tx_power_f40db
-	//beq TX_POWER_F50DB,p_set_tx_power_f50db
-	//beq TX_POWER_F60DB,p_set_tx_power_f60db
-	//beq TX_POWER_FAST_CONN,p_set_tx_power_fast_conn
-	//branch txon_next+1
-/*
-p_set_tx_power_f30db:
-	jam 0x4c,core_tx_pwr_ctrl0
-	jam 0x00,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-p_set_tx_power_f40db:
-	jam 0x45,core_tx_pwr_ctrl0
-	jam 0x00,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-p_set_tx_power_f50db:
-	jam 0x42,core_tx_pwr_ctrl0
-	jam 0x00,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-p_set_tx_power_f60db:
-	jam 0x41,core_tx_pwr_ctrl0
-	jam 0x00,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-*/
-p_set_tx_power_fast_conn:	//F17dbm
-	jam 0x5b,core_tx_pwr_ctrl0		
-	jam 0x01,core_tx_pwr_ctrl1
-	branch set_rf_ldo_cfg89
-
-ifdef G24_OTA
-p_g24_load_ota_config_poweron:
-	call iicd_load_gpio_init
-	call p_g24_check_ota_data
-	branch p_g24_load_ota_config,user
-	rtn
-
-p_g24_load_ota_config:	
-	arg iicd_read_eep,regc
-	fetch 2,mem_g24_ota_config_addr
-	increase 3,pdata
-	byteswap pdata,pdata
-	store 2,mem_addr_mi
-	branch load_storage_loop
-endif	
-
-p_adc_init_data:
-	arg mem_temp_block2,rega
-	arg 12,temp
-	setarg EFUSE_OFFSET_ADC_PARAM
-	call efuse_read_data
-	branch adc_init_data+6
-
-p_enable_adc:	
-	fetchr regb,1,core_rf_ldo_cfg6
-	jam 0x3d,core_rf_ldo_cfg6
-	jam 0xaa,core_rf_ldo_cfg5
-	jam 0x0c,core_rf_ldo_en0
-	fetch 1,core_clkpll_cfg6
-	set1 7,pdata
-	store 1,core_clkpll_cfg6
-	jam 0x04,core_rf_ldo_en1
-	nop 60
-	jam 0,core_syn_en
-	jam 6,core_rx_en0
-	call read_adc_mode
-	store 1,core_gpadc_ctrl
-//	jam 0x07,core_gpadc_ctrl
-	jam 0x03,core_sum_ctrl
-	nop 60
-	fetch 1,core_sum_en
-	set1 7,pdata
-	store 1,core_sum_en
-	nop 1000
-	fetch 2,core_adc_sum
-	store 2,mem_adc_current_value
-	fetch 1,core_sum_en
-	set0 7,pdata
-	store 1,core_sum_en
-	jam 0,core_gpadc_ctrl
-	
-	storer regb,1,core_rf_ldo_cfg6
-	rtn
-
-
-p_mouse_adc_read_start:
-	fetch 1,mem_24g_device_led_status
-	nrtn blank
-	call p_enable_adc
-	branch mouse_adc_read_start+3
-
-p_app_evt_100ms_loop:
-	fetch 1,mem_app_evt_timer_count
-	rtn blank
-	increase -1,pdata
-	store 1,mem_app_evt_timer_count
-	call ui_button_polling
-	call app_lpm_wake_auto_lock_timer
-	call app_unsniff_delay_timer
-	call app_discovery_timer
-	call flash_write_spi_sm_timer
-ifdef SPI2	
-	call flash_write_spi2_sm_timer
-endif	
-//	call adc_wait_timer
-	fetch 2,mem_cb_event_timer
-	call callback_func
-	branch p_app_evt_100ms_loop
-
-/////////////////////////////////// adc//////////////////////////////////////
-
-
-p_initialize_radio_cont:
-
-	jam 0xe6,core_syn_aac_cfg1
-
-	call initialize_syn_afc_cfg1
-	call initialize_rf_ldo_cfg1
-	call initialize_rc_cal
 
-	jam 0x09,core_rx_bq_cfg0
-
-	jam 5,core_clkpll_cfg0
-	jam 0x94,core_rx_iqadc_cfg
-
-	jam 0x0b,core_rf_ldo_cfg2
-	jam 0x05,core_rf_ldo_cfg3
-	jam 0x90,core_syn_pfd_lkd_cfg
 
-	jam 0x00,core_syn_loopdiv_dsm_cfg
-	jam 0x40,core_rx_ctrl1
-
-	branch initialize_radio_cont+8
 
 
 
-p_init_param:
-	jam 0,mem_lmo_tid2			// classic can't reconnect
-	branch init_param_next+1
-
-
-p_lpm_short_sleep:
-/*	arg 20,loopcnt
-	arg core_gpio_conf,contw
-p_lpm_sleep_next:
-	setarg gpcfg_pullup
-	istore 1,contw
-	loop p_lpm_sleep_next
-	setarg 0
-	store 4,mem_gpio_wakeup_low
-	store 4,mem_gpio_wakeup_high
-*/	
-	setarg 0
-	store 3,core_clkpll_ctrl0// close pll
-	jam 140,mem_tx_time_offset
-	call xtal_fast_wake
-	fetch 4,mem_sleep_counter_all
-	iadd temp,pdata
-	store 4,mem_sleep_counter_all
-	deposit mark
-	store 8,mem_saved_mark
-	arg core_gpio_conf,contr
-	arg mem_saved_gpio,contw
-	call memcpy20
-	fetch 1,core_spid_ctrl
-	store 1,mem_saved_spidctrl
-	call lpm_ctrl3_cfg_dig_vsel
-	fetch 1,core_clksel
-	or_into 0x14,pdata
-	store 1,core_clksel
-	branch lpm_sleep+7
 
-/////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
 p_app_init:
-p_mouse_init:
+	set0 mark_adc_enable,mark
 ifdef G24_OTA
 	ncall p_g24_load_ota_config_poweron,wake
 endif
+ifdef BLE
 	ncall p_mouse_le_name_load,wake
+endif
 	call enable_authrom
 	call p_mouse_setting_config
 	call mouse_init_sunt
@@ -386,7 +74,6 @@
 	fetch 3,mem_24g_short_sleep_set
 	store 3,mem_24g_short_sleep_set_init
 	call p_send_time_long_wake
-	call p_mouse_load_default_param
 	call mouse_dpi_config
 	call mouse_usb_check_enable
 	call mouse_drawing_optima_init
@@ -394,111 +81,6 @@
 	call p_mouse_sensor_powerdown
 	branch mouse_init+8
 
-
-p_g24_report:
-	setarg 0x17700
-	store 3,mem_24g_tsniff
-	call g24_interval_param_8ms
-	jam 30,mem_24g_fast_hop_count
-//	setarg 73500
-//	store 3,mem_24g_short_sleep_set
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_250Hz
-	call g24_interval_param_4ms
-	jam 15,mem_24g_fast_hop_count
-	setarg 0xbb80
-	store 3,mem_24g_tsniff
-	setarg 0x4800
-	store 3,mem_24g_short_sleep_set
-	rtn
-
-p_mouse_load_default_param:
-ifdef FIRE_KEY
-	call p_mouse_firebutton_connect_state_check
-endif
-	call p_mouse_device_multi_led_poweron2s_init
-	branch p_mouse_double_dpi_judge
-
-p_mouse_double_dpi_judge:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
-	fetch 1,mem_dpi_another_button_gpio
-	bbit1 gpio_active_bit,p_mouse_another_dpi_connect_vin
-p_mouse_another_dpi_connect_gnd:
-	jam 0,mem_mouse_another_dpi_connect_vin_flag
-	rtn
-p_mouse_another_dpi_connect_vin:
-	jam 1,mem_mouse_another_dpi_connect_vin_flag
-	rtn
-	
-ifdef FIRE_KEY
-p_mouse_firebutton_connect_state_check:
-	fetch 1,mem_firebutton_gpio
-	rtneq GPIO_DISABLE
-	bbit1 gpio_active_bit,p_mouse_firebutton_connect_vin
-p_mouse_firebutton_connect_gnd:	
-	jam 0,mem_mouse_firebutton_connect_vin_flag
-	rtn
-p_mouse_firebutton_connect_vin:
-	jam 1,mem_mouse_firebutton_connect_vin_flag
-	rtn
-endif
-
-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
@@ -507,31 +89,22 @@
 	call g24_chmap_param_init
 	call p_mouse_gpio_init
 	call mouse_param_init
+ifdef FIRE_KEY
+	call p_mouse_firebutton_connect_state_check
+endif
+	call p_mouse_device_multi_led_poweron2s_init
+	call p_mouse_double_dpi_judge
 	call p_g24_short_sleep_set_8ms
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_setting_config_next
 	call p_g24_short_sleep_set_4ms
 	branch mouse_setting_config_next
 
-p_g24_short_sleep_set_8ms:
-	setarg 58000
-	store 3,mem_24g_short_sleep_set
-	rtn
-p_g24_short_sleep_set_4ms:
-	setarg 6000
-	store 3,mem_24g_short_sleep_set
-	rtn
-
 p_mouse_gpio_init:
 	fetch 1,mem_mouse_1io2led_led_enable
-	ncall  p_mouse_1io2led_all_off,blank
+	ncall p_mouse_1io2led_all_off,blank
 	branch mouse_gpio_init
 
-p_mouse_1io2led_all_off:
-	call p_mouse_device_24g_led_off
-	call p_mouse_device_bt1_led_off
-	branch p_mouse_device_bt2_led_off
-
 p_mouse_cb_fuction:
 	setarg p_mouse_24g_package_data
 	store 2,mem_cb_24g_transmit_data
@@ -539,321 +112,94 @@
 	store 2,mem_cb_24g_search_receiver
 	branch mouse_cb_fuction+4
 
-p_mouse_24g_package_data:		// 250Hz
-	rtnmark0 mark_24g
-ifdef G24_OTA
-	fetch 1,mem_g24_ota_mode
-	nbranch p_mouse_24g_package_ota,blank
-endif
-	call mouse_motion
-	nrtn user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
-	fetch 1,mem_customer_key
-	nbranch mouse_24g_keyboard_package_data,blank
-p_mouse_24g_mouse_package_data:
-	call mouse_data_xy_release
-	fetch 1,mem_24g_data_type
-	bbit1 1,p_mouse_24g_mouse_package_data_now	// last package is keyboard data
-	fetcht 1,mem_24g_txbuf+1
+
+p_mouse_motion:
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089			
+	call twspi_write
+	call mouse_dpi_config
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call p_mouse_key
 	fetch 1,mem_mouse_key
-	ior temp,pdata
+	and_into 0x1f,pdata
 	store 1,mem_mouse_key
-	fetcht 1,mem_24g_txbuf+6
-	fetch 1,mem_mouse_z
-	iadd temp,pdata
-	store 1,mem_mouse_z
-	fetcht 1,mem_24g_txbuf+7
-	fetch 1,mem_mouse_tz
-	iadd temp,pdata
-	store 1,mem_mouse_tz	
-p_mouse_24g_mouse_package_data_now:	
-	jam TYPE_MS,mem_24g_data_type
-	arg 7,rega	//length
-	arg mem_mouse_key,regb //tx buff
-	rtn
-//	branch g24_transmit_by_interrupt_enable
-
-p_mouse_24g_search_dongle:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
-	fetch 1,mem_mouse_long_mult_flag
-	rtn blank
-	fetch 1,mem_24g_abort_pac
-	rtn blank
-	fetch 1,mem_mouse_search_dongle_interval
-	increase 1,pdata
-	and_into 3,pdata
-	store 1,mem_mouse_search_dongle_interval
-	nrtn blank	//400ms
-	jam 0,mem_mouse_search_dongle_ch
-p_mouse_24g_search_dongle_loop:
-	fetch 1,mem_mouse_search_dongle_ch
-	increase 1,pdata
-	store 1,mem_mouse_search_dongle_ch
-	sub pdata,G24_CH_NUMBER,null
-	nbranch p_mouse_24g_search_dongle_loop_end,positive
-	call g24_reconn_data_prep
-	call p_g24_transmit_receive_ack
-	nbranch p_mouse_24g_search_dongle_loop_retry,sync
-	nbranch p_mouse_24g_search_dongle_loop_retry,user3
-	call mouse_24g_search_dongle_success
-p_mouse_24g_search_dongle_loop_end:
-	call g24_txbuf_clear
-	fetch 1,mem_mouse_search_dongle_count
-	increase 1,pdata
-	store 1,mem_mouse_search_dongle_count
-	beq G24_CH_POLL_COUNT,p_mouse_24g_search_dongle_check
-	rtn	
+	nbranch mouse_drawing_optima_init,user
+	call p_mouse_drawing_optima
+	branch mouse_no_data_timer_init
 
-p_mouse_24g_search_dongle_loop_retry:
-	call g24_ch
-	branch p_mouse_24g_search_dongle_loop
+p_mouse_idle:
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call p_mouse_dpi_check
+	call p_mouse_dpi_another_gpio_check
+	branch mouse_idle+4
 
-p_mouse_24g_search_dongle_check:
-	jam 0,mem_mouse_search_dongle_count
-	fetch 1,mem_mouse_search_dongle_action
-	rtnbit1 G24_DISCONN_STATE
-	set1 G24_DISCONN_STATE,pdata
-	store 1,mem_mouse_search_dongle_action
-	fetch 2,mem_mouse_24g_search_dongle_time_init		
-	store 2,mem_mouse_no_data_timer
-	branch p_mouse_sensor_powerdown
 
-p_g24_transmit_no_interrupt:
-	call g24_txdata_prep
-	nbranch p_g24_nodata_transmit,user
-p_g24_transmit_start:
-	call p_g24_transmit_process
-	call power_ctrl_start
-	fetch 1,mem_sensor_shutdown_flag
-	nbranch p_g24_short_sleep,blank
-	fetch 8,mem_24g_long_sleep_set
-	store 8,mem_24g_enter_hibernate
-	fetch 2,mem_24g_long_sleep_param_update_timer_init
-	store 2,mem_24g_long_sleep_param_update_timer
-p_g24_short_sleep:
-	call g24_lpm_wait
-	nrtn user
-//	branch p_g24_short_sleep_default	
-	fetch 1,mem_sleep_miss
-	jam 0,mem_sleep_miss
-	sub pdata,0,null
-	nbranch  p_g24_short_sleep_last_miss,zero
-	fetcht 2,mem_retransmit
-	sub temp,0,null
-	branch p_g24_short_sleep_default,zero
+p_mouse_priority_bb_event:
+	copy regc,pdata
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
+	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
+ifdef BLE
+	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,p_mouse_le_parse_conn_param_accepted
+	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
+	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
+endif
+ifdef CLASSIC
+	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
+endif
+	branch mouse_priority_bb_event+2
 
-	fetch 4,mem_tx_time_last_delt
-	branch p_g24_short_sleep_default,blank
-p_g24_short_sleep_notify:
-	fetcht 4,mem_24g_tsniff
-	isub temp,temp
-	storet 4,mem_sleep_miss_temp
-	nbranch p_g24_short_sleep_long,positive
-//	ncall p_g24_miss_temp_clear,positive
 
-	fetch 3,mem_24g_short_sleep_set
-	isub temp,pdata
-	nbranch p_g24_short_sleep_2, positive
-//	nrtn  positive
-	
-	arg 0x600,temp
-	isub temp,null
-	nbranch p_g24_short_sleep_2, positive
-p_g24_short_sleep2:
-	store 4,mem_sleep_time_temp
-	call p_g24_miss_temp_clear
-//	call g24_setgpio_lpm_before
-//	call clear_wake
-	fetch 4,mem_sleep_time_temp
-	call clk2lpo
-	storet 4,mem_sleep_counter
-	branch p_lpm_short_sleep	
-
-p_g24_short_sleep_default:
-	call p_g24_miss_temp_clear
-	fetch 3,mem_24g_short_sleep_set
-	branch p_g24_short_sleep2
-
-p_g24_short_sleep_long:
-	sub temp,0,temp
-	fetch 3,mem_24g_short_sleep_set
-	iadd temp,pdata
-	branch p_g24_short_sleep2
-
-p_g24_miss_temp_clear:
-	setarg 0
-	store 4,mem_sleep_miss_temp
-	rtn
+p_mouse_start_work:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_start_mode
+	branch mouse_start_work+5
 	
-p_g24_short_sleep_last_miss:
-	fetch 4,mem_tx_time_last_delt
-	fetcht 4,mem_sleep_miss_temp
-	iadd temp,pdata
-	branch p_g24_short_sleep_notify
+p_mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch p_mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,p_mouse_24g_reconn_general_dongle
+	call mouse_key_check_once		// pdata output:00
+	and rega,0x07,pdata
+	branch mouse_24g_start_mode+9
 	
-p_g24_short_sleep_2:
-	jam 1,mem_sleep_miss
-	rtn
-
-p_g24_transmit_process:
-	jam 0,mem_24g_retry
-	setarg 0
-	store 2,mem_retransmit
-p_g24_transmit_loop:
-	call p_g24_transmit_receive_ack
-	fetch 1,mem_24g_no_ack	//tx noack
-	beq no_ack_24g,g24_transmit_no_ack
-	nbranch p_g24_retransmit,sync
-	nbranch p_g24_retransmit,user3
-	call p_send_time_check
-		
-	call g24_ackpayload_parse		
-ifdef G24_OTA
-	call p_g24_mouse_parse_rx
-endif
-	call p_mouse_wakeup_24g
-	branch g24_transmit_no_ack
-
+p_mouse_24g_reconn_dongle_start:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_24g_reconn_dongle_start
 
-p_g24_transmit_receive_ack:
-	disable user3
-	call g24_transmit
-	fetch 1,mem_24g_no_ack
-	beq no_ack_24g,g24_end_of_packet
-	force 0,radio_ctrl
-	fetch 4,mem_24g_addr
-	iforce access
-	call calc_mod_value_scale_le	
-	fetcht 1,mem_last_freq
-	call set_freq_rx
-	call rf_rx_enable
-	call p_g24_receive_rxon
-	call p_g24_end_of_packet,user3
-	rtn
+p_mouse_24g_reconn_general_dongle:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_24g_reconn_general_dongle
 
-p_g24_end_of_packet:
-	jam 0,core_rf_ldo_en0
-	jam 0,core_rf_ldo_en1
-	branch gain_control
-	
-p_g24_receive_packet:
-	fetch 1,mem_24g_rx_phy
-	call le_enable_phy_by_pdata
-	fetch 4,mem_24g_addr
-	iforce access
-	call calc_mod_value_scale_le
-	call set_sync_on
-	fetcht 1,mem_24g_ch
-	call le_rf_rx_enable
-	fetch 1,core_rf_rx_agc_ctrl
-	set1 3,pdata
-	store 1,core_rf_rx_agc_ctrl
-p_g24_receive_rxon:
-	call g24_prep
-	bmark0 mark_ble_lr,p_g24_receive_nolr
-	pulse dewhiten_code_calc
-	nop 30
-	call g24_prep
-p_g24_receive_nolr:
-	disable user3
-	enable decode_fec0
-	enable is_rx
-	disable is_tx
-	enable swfine
-	fetch 2,mem_24g_rx_window
-	iforce stop_watch
-	correlate null,timeout
-	nbranch g24_sync_timeout,sync
-	call rf_debug_rx_sync_line
-	bmark1 mark_ble_lr,g24_receive_skip_fec1
-	branch g24_receive_skip_fec1
+p_mouse_start_reconnect_device:
+	fetch 1,mem_mouse_bt_led_recon_effect_flag
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_start_reconnect_device+1
 
-p_g24_retransmit:
-	fetch 1,mem_mouse_need_soft_reset
+p_mouse_adc_read_start:
+	fetch 1,mem_24g_device_led_status
 	nrtn blank
-	call p_mouse_select_device_by_pb_button
-	fetch 1,mem_24g_abort_pac
-	nrtn  blank
-	fetch 2,mem_24g_txfail_cnt
-	increase 1,pdata
-	store 2,mem_24g_txfail_cnt	
-	fetch 1,mem_24g_txfail_cnt+1
-	bbit1 4,g24_tx_attempt_fail
-	call p_g24_transmit_hop_process
-	fetch 2,mem_retransmit
-	increase 1,pdata
-	store 2,mem_retransmit
-//	call p_delay_40ms
-	branch p_g24_transmit_loop
-p_g24_transmit_hop_process:
-	fetcht 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
-	isub temp,null
-	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
-	increase 1,temp
-	storet 1,mem_24g_retry
-	fetch 1,mem_24g_fast_hop_count
-	beq 15,p_g24_transmit_hop_process_4ms
-	fetch 1,mem_24g_retry
-	beq 20,g24_hop_ch_disable
-	beq 30,g24_hop_ch_disable
-	rtn	
-p_g24_transmit_hop_process_4ms:
-	fetch 1,mem_24g_retry
-	beq 10,g24_hop_ch_disable
-	beq 15,g24_hop_ch_disable
-	rtn
-p_mouse_select_device_by_pb_button:
-	fetch 1,mem_config_select_device_button_gpio
-	rtneq GPIO_DISABLE
-	arg 0,rega
-	jam MOUSE_PB_KEY,mem_mouse_key_temp
-	fetcht 1,mem_config_select_device_button_gpio
-	call mouse_pb_button_check
-	store 1,mem_mouse_pbkey_press_status
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,p_mouse_3io6key_pb_button_check_end	
-	call mouse_matrix_public_gpio_reset
-p_mouse_select_device_by_pb_button_exit:	
-	copy rega,pdata
-	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
-	branch mouse_select_device_button_up
+	call p_enable_adc
+	branch mouse_adc_read_start+3
 
-p_mouse_3io6key_pb_button_check_end:
-	fetcht 1,mem_config_select_device_button_gpio
-	call mouse_gpio_config_input_pu
-	branch p_mouse_select_device_by_pb_button_exit
 
 
-p_mouse_wakeup_24g:
-	fetch 1,mem_sensor_shutdown_flag
-	ncall p_mouse_wakeup_24g_from_long_sleep,blank
-	jam 0,mem_sensor_shutdown_flag
-	rtn	
-	
-p_mouse_wakeup_24g_from_long_sleep:
-	call mouse_init_sensor_wakeup
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
-p_mouse_wheel_set_wakeup:
-	fetch 1,mem_whee_a_data_gpio
-	arg gpcfg_pullup,temp
- 	call gpio_config_function_int
-	fetch 1,mem_whee_b_data_gpio
-	arg gpcfg_pullup,temp
- 	branch gpio_config_function_int
+//////////////////////////////LPM FUNC////////////////////////////////////////
 
-//p_delay_40ms:
-//	fetch 1,mem_24g_txfail_cnt+1
-//	sub pdata,0x00,null
-//	rtn positive
-//	arg 40,loopcnt
-//	branch delay_ms_wait
-		
-/////////////////////////////////// g24 250Hz use lpm//////////////////////////////////////
-	
 p_mouse_app_enter_hibernate:	// 1.3mA hibernate after sensroe reset
 	setarg PAN_REG_CONFIG
 	call twspi_read
@@ -938,352 +284,1182 @@
  	call gpio_config_function_int
 	branch mouse_lpm_before_common_next
 
-p_g24_nodata_transmit:
-	fetch 1,mem_24g_abort_pac
-	call p_g24_send_abort_packet,blank
-	fetch 1,mem_24g_transmit_by_interrupt
-	rtneq G24_TX_TIMER_INT_ENABLE
-	call g24_search_receiver
-p_g24_long_sleep:
-	call g24_lpm_wait
-	nrtn user
-	call g24_setgpio_lpm_before
-	jam 0,mem_sleep_miss
-	call p_send_time_long_wake
-	fetch 1,mem_sensor_shutdown_flag
-	ncall mouse_setgpio_hibernate,blank
-	fetch 4,mem_24g_enter_hibernate
-	branch g24_long_sleep2
+//////////////////////////////LPM FUNC END////////////////////////////////////////
 
-p_g24_send_abort_packet:
-	jam TYPE_MS,mem_24g_data_type
-	jam 1,mem_24g_abort_pac
-	call g24_transmit_rf_ctrl_clear
-	store 1,mem_24g_txbuf
-	setarg 0
-	store 7,mem_24g_txbuf+1
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+8
-	jam 12,mem_24g_datalen
-	fetch 1,mem_24g_data_type
-	set1 bit_abort,pdata
-	store 1,mem_24g_data_type
-	call g24_transmit_prep
-	branch p_g24_transmit_start
-	
-p_mouse_priority_bb_event:
-	copy regc,pdata
-	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
-	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
-	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
-	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
-	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
-	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,p_mouse_le_parse_conn_param_accepted
-	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
-	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
-	branch mouse_priority_bb_event+2
 
-p_mouse_le_bb_event_connected:
-	fetch 1,mem_mouse_1io2led_led_enable
-	ncall  p_mouse_multi_led_on_enable,blank
-	branch mouse_le_bb_event_connected
 
-p_mouse_bb_event_connected:
-	call mouse_no_data_timer_init
-	fetch 1,mem_mouse_1io2led_led_enable
-	ncall  p_mouse_multi_led_on_enable,blank
-	branch mouse_bb_event_connected
-	
-p_mouse_le_bb_disconnected:
-	setarg 0
-	store 2,mem_le_battery_level_updata_timer
-	jam 0,mem_mouse_le_bb_connected_flag
-	setarg LE_INTERVAL_7_5MS
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
+
+//////////////////////////////100MS TIMER FUNC////////////////////////////////////////
+
+p_mouse_bb_event_timer:
+	call mouse_adc_read
+	call mouse_low_voltage_led_timer
+	//24g
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+ifdef G24_OTA
+	call p_mouse_g24_ota_reset_timer
+endif	
+	//led
+	call mouse_device_poweron_timer
+	call p_mouse_dpi_led_blink_delay_timer
+	call p_mouse_led_multi_timer
+	call p_mouse_logo_led_on_timer
+
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call p_mouse_commbination_key_process
+	call mouse_check_discovery_timeout_timer
+ifdef BLE
+	//ble
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call p_mouse_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+endif
+ifdef CLASSIC
+	//bt
+	call mouse_check_hid_handshake_timer
+	call mouse_bt_check_sniff_req_timeout_timer
+	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+endif
+	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
+	
+
+p_mouse_device_multi_led_poweron2s_init:
+	fetch 1,mem_mouse_multi_led_powon2s_timer_init
+	store 1,mem_mouse_multi_led_powon2s_timer
+	fetch 1,mem_mouse_multi_led_poweron2s_flag_init
+	store 1,mem_mouse_multi_led_poweron2s_flag
+	rtn
+p_mouse_multi_led_blink_enable:
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	fetch 1,mem_mouse_multi_led_blink_timer_init
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+p_mouse_multi_led_on_enable:	
+	jam 1,mem_mouse_multi_led_blink_enable	//disable flag 
+	jam 0,mem_mouse_multi_led_blink_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+	rtn
+	
+p_mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
+p_mouse_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_poweron2s_flag
+	nbranch p_mouse_device_multi_led_poweron2s,blank
+	jam 0,mem_mouse_multi_led_blink_enable
+	rtn
+p_mouse_device_multi_led_poweron2s:
+	fetch 1,mem_mouse_multi_led_powon2s_timer
+	branch p_mouse_multi_led_poweron2s_and_flag_off,blank
+	increase -1
+	store 1,mem_mouse_multi_led_powon2s_timer
+	branch p_mouse_device_multi_led_on
+p_mouse_multi_led_poweron2s_and_flag_off:
+	jam 0,mem_mouse_multi_led_poweron2s_flag
+	jam 0,mem_mouse_multi_led_blink_enable
+	branch p_mouse_device_multi_led_off
+
+p_mouse_multi_led_type_blink:
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg p_mouse_multi_led_type_blink_timeout,regb
+	branch timer_single_step
+
+p_mouse_multi_led_type_blink_timeout:
+	fetch 1,mem_mouse_multi_led_blink_timer_init
+	store 1,mem_mouse_multi_led_blink_timer
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,p_mouse_device_multi_led_off	
+p_mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_on
+	rtn
+p_mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch p_mouse_device_led_on
+p_mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch p_mouse_device_led_on
+p_mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+p_mouse_device_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+p_mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_off
+	rtn
+
+p_mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch gpio_set_high_impedance
+p_mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch gpio_set_high_impedance
+p_mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	branch gpio_set_high_impedance
+
+p_mouse_1io2led_all_off:
+	call p_mouse_device_24g_led_off
+	call p_mouse_device_bt1_led_off
+	branch p_mouse_device_bt2_led_off
+
+
+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
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 1,gpio_set_high_impedance
+	branch gpio_out_inactive
+p_mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch gpio_out_active
+
+
+p_mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg p_mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+	
+
+p_mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch p_mouse_commbination_key_start
+
+p_mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+p_mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch p_mouse_commbination_key_down,zero
+	branch mouse_commbination_key_up
+
+		
+p_mouse_commbination_key_down:		// enter hibernate when reconnect
+	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_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg p_mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+p_mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_hibernate_set
+	branch mouse_disconnect
+
+//////////////////////////////100MS TIMER FUNC END////////////////////////////////////////
+
+
+
+//////////////////////////////SENSOR FUNC////////////////////////////////////////
+
+p_mouse_drawing_optima:
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	branch mouse_drawing_optima
+
+
+p_mouse_sensor_poweron:
+	call mouse_sensor_spi_init
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_init
+	branch mouse_sensor_poweron_next
+	
+p_mouse_ka8g2_sensor_init:
+	call p_mouse_ka8g2_sensor_reset
+	arg mem_ka8g2_sensor_poweron_init,regc
+	branch mouse_sensor_poweron_end
+	
+p_mouse_sensor_reset:
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_reset
+	branch mouse_sensor_reset
+p_mouse_ka8g2_sensor_reset:
+	setarg 0x9706		// reset to factory settings
+	branch mouse_sensor_reset_end
+
+p_mouse_sensor_powerdown:
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_powerdown
+	branch mouse_sensor_powerdown_end
+p_mouse_ka8g2_sensor_powerdown:
+	setarg 0x1f06		
+	branch twspi_write
+
+//////////////////////////////SENSOR FUNC END////////////////////////////////////////
+	
+
+
+//////////////////////////////KEY FUNC////////////////////////////////////////
+
+p_mouse_key:
+ifdef FIRE_KEY
+	call p_mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch p_fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch p_fire_key_process,blank
+endif
+	call p_mouse_check_key_gpio
+	branch mouse_key+1
+
+p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call p_mouse_check_lkey_gpio
+	call p_mouse_check_rkey_gpio
+	call p_mouse_check_mkey_gpio
+	call p_mouse_check_bkkey_gpio
+	call p_mouse_check_fwkey_gpio
+ifdef FIRE_KEY	
+	call p_mouse_check_firekey_gpio
+endif
+	branch mouse_check_key_gpio_next
+
+p_mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_lkey_gpio
+	fetcht 1,mem_lbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_rkey_gpio
+	fetcht 1,mem_rbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_mkey_gpio
+	fetcht 1,mem_mbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+p_mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_bk_check
+	branch mouse_check_bkkey_gpio_next
+p_mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_3io6key_bk_check	
+
+p_mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_fw_check
+	branch mouse_check_fwkey_gpio_next
+p_mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_3io6key_fw_check
+
+//input:pdata gpio number
+p_mouse_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+		
+//input:pdata gpio number
+p_mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+
+
+p_mouse_dpi_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_dpi_check_connect_adc
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call p_mouse_dpi_key_check
+	branch mouse_dpi_check_next
+
+p_mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_dpi_check
+	branch mouse_dpi_key_check_next
+p_mouse_3io6key_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+p_mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	fetch 1,mem_mouse_another_dpi_connect_vin_flag
+	nbranch p_mouse_dpi_another_gpio_connect_vin_check,blank
+p_mouse_dpi_another_gpio_connect_gnd_check:	
+	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_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	set0 gpio_active_bit,pdata
+	store 1,mem_dpi_another_button_gpio
+	//fetch 1,mem_dpi_another_button_gpio
+	call p_mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call p_mouse_check_key_connect_vin_new
+	call p_mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+p_mouse_dpi_another_down_new:
+	call mouse_gpio_config_input_pu	
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	//rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	//rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+	
+p_mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status	
+	call p_mouse_check_key_connect_gnd_new
+p_mouse_dpi_another_state_check:
+	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_check_key_connect_vin_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call mouse_gpio_config_input_pd
+	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_select_device_by_pb_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_pb_button_check_end	
+	call mouse_matrix_public_gpio_reset
+p_mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+
+p_mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+	branch p_mouse_select_device_by_pb_button_exit
+
+
+ifdef FIRE_KEY
+p_mouse_firebutton_connect_state_check:
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	bbit1 gpio_active_bit,p_mouse_firebutton_connect_vin
+p_mouse_firebutton_connect_gnd:	
+	jam 0,mem_mouse_firebutton_connect_vin_flag
+	rtn
+p_mouse_firebutton_connect_vin:
+	jam 1,mem_mouse_firebutton_connect_vin_flag
+	rtn
+
+p_mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_firebutton_connect_vin_flag
+	nbranch p_mouse_check_firekey_connect_vin,blank
+p_mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+p_mouse_firekey_state_store:	
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+p_mouse_check_firekey_connect_vin:
+	fetch 1,mem_firebutton_gpio
+	set0 gpio_active_bit,pdata
+	store 1,mem_firebutton_gpio
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch p_mouse_firekey_state_store
+
+p_fire_key_process: 
+	beq 4,p_fire_key_process_end
+p_fire_key_press:
+	call p_firekey_clkn_bt_timer_check 
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp      
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay 
+	fetch 1,mem_fire_key_status
+	beq 0,p_fire_key_process_start
+	beq 1,p_fire_key_process_release1
+	beq 2,p_fire_key_process_start2
+	beq 3,p_fire_key_process_release2
+	rtn
+
+p_fire_key_process_start:
+	jam 1,mem_fire_key_status
+p_fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+p_fire_key_process_release1:
+	jam 2,mem_fire_key_status
+p_fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+p_fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch p_fire_key_down
+
+p_fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch p_fire_key_release
+	
+p_fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+p_firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall p_firekey_clkn_bt_timer_timeout,positive
+	rtn
+p_firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+endif
+
+//////////////////////////////KEY FUNC END////////////////////////////////////////
+
+
+//////////////////////////////DPI FUNC////////////////////////////////////////
+
+p_mouse_seting_dpi:
+	call mouse_setting_dpi_4_level
+	call p_mouse_dpi_led_blink_delay
+	branch mouse_seting_sensor_type
+
+p_mouse_dpi_led_blink_delay:
+	fetch 1,mem_dpi_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch p_mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+p_mouse_dpi_led_blink_init:	//result:    level3: 2  3  1     level4: 3  4  1  2
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_dpi_led_blink_init		//result:    level3: 1  2  3     level4: 2  3  4  1
+	beq KA8G2,mouse_dpi_led_blink_init	//result:    level3: 1  2  3     level4: 2  3  4  1
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	fetch 2,mem_mouse_dpi_led_blink_time
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	arg 0,rega
+	fetcht 1,mem_mouse_dpi
+	increase 2,temp	// 2 3 4 (5)
+	sub temp,3,null
+	call p_mouse_dpi_led_blink_init_level_4,positive
+	ncall p_mouse_dpi_led_blink_count_clean,positive
+	branch mouse_dpi_led_blink_init_end
+
+p_mouse_dpi_led_blink_init_level_4:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next+2
-	setarg LE_INTERVAL_8_75MS
-	branch mouse_le_bb_disconnected_next
+	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
+	increase 1,temp  	// 2-->3   3-->4
+	rtn
+
+p_mouse_dpi_led_blink_count_clean:
+	increase -3,temp		// 4-->1  5-->2
+	rtn
+
+
+p_mouse_double_dpi_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	fetch 1,mem_dpi_another_button_gpio
+	bbit1 gpio_active_bit,p_mouse_another_dpi_connect_vin
+p_mouse_another_dpi_connect_gnd:
+	jam 0,mem_mouse_another_dpi_connect_vin_flag
+	rtn
+p_mouse_another_dpi_connect_vin:
+	jam 1,mem_mouse_another_dpi_connect_vin_flag
+	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_LEVEL2
+p_mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_2 	//1200
+	rtn
+
+p_mouse_dpi_level_1:		//800
+	setarg 2
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_2:		//1200
+	setarg 0
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_3:		//1600
+	setarg 1
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_4:		//1000
+	setarg 3
+	branch p_mouse_dpi_store
+
+p_mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_2
+	rtn
+p_mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_1
+	rtn
+
+p_mouse_another_dpi_button_down:
+p_mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,p_mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+p_mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
+	rtn
+
+
+//////////////////////////////DPI FUNC END////////////////////////////////////////
+
+
+//////////////////////////////24G FUNC////////////////////////////////////////
+
+p_g24_report:
+	setarg 0x17700
+	store 3,mem_24g_tsniff
+	call g24_interval_param_8ms
+	jam 30,mem_24g_fast_hop_count
+//	setarg 73500
+//	store 3,mem_24g_short_sleep_set
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_250Hz
+	call g24_interval_param_4ms
+	jam 15,mem_24g_fast_hop_count
+	setarg 0xbb80
+	store 3,mem_24g_tsniff
+	setarg 0x4800
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+
+p_g24_short_sleep_set_8ms:
+	setarg 58000
+	store 3,mem_24g_short_sleep_set
+	rtn
+p_g24_short_sleep_set_4ms:
+	setarg 6000
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+
+p_mouse_24g_package_data:		// 250Hz
+	rtnmark0 mark_24g
+ifdef G24_OTA
+	fetch 1,mem_g24_ota_mode
+	nbranch p_mouse_24g_package_ota,blank
+endif
+	call mouse_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+p_mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,p_mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+p_mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	rtn
+
+p_mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+p_mouse_24g_search_dongle_loop:
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch p_mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call p_g24_transmit_receive_ack
+	nbranch p_mouse_24g_search_dongle_loop_retry,sync
+	nbranch p_mouse_24g_search_dongle_loop_retry,user3
+	call mouse_24g_search_dongle_success
+p_mouse_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,p_mouse_24g_search_dongle_check
+	rtn	
 
-p_mouse_le_ll_start_encryt:
-	fetch 1,mem_mouse_le_reconnect_flag
-	beq 1,p_mouse_le_ll_reconn_start_encryt
-	jam 20,mem_le_start_encrypt_timer
-	branch mouse_le_ll_enable_start_enc_flag
-p_mouse_le_ll_reconn_start_encryt:
-	call mouse_updata_le_param
-	jam 5,mem_le_start_encrypt_timer
-	branch mouse_le_ll_enable_start_enc_flag
+p_mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch p_mouse_24g_search_dongle_loop
 
-p_mouse_le_parse_conn_param_accepted:
-	fetch 1,mem_le_new_conninterval
-	sub pdata,LE_INTERVAL_15MS,null
-	nbranch mouse_le_conn_param_lpm_disable,positive
-	store 2,mem_le_interval_min
-	store 2,mem_le_interval_min+2
-	fetch 1,mem_le_new_connslavelatency
-	branch mouse_le_lpm_mult_reinit,blank
-	fetcht 1,mem_lpm_mult_init
+p_mouse_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		
+	store 2,mem_mouse_no_data_timer
+	branch p_mouse_sensor_powerdown
+
+//////////////////////////////24G FUNC END////////////////////////////////////////
+
+
+ifdef PW_CTRL
+
+p_power_ctrl_start:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BT_DISCOVERY	
+	call p_rssi_sort	
+	call p_rssi_average
+	storet 1,mem_rssi_avg_received
+	call p_g24_fast_conn_mode_check
+	fetch 1,mem_soft_agc_en
+	nrtn blank
+	fetcht 1,mem_rssi_avg_received
+	branch power_ctrl_rssi_avg_compare
+
+p_g24_fast_conn_mode_check:
+	rtnmark0 mark_24g
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
 	isub temp,null
-	branch mouse_le_lpm_mult_reinit,positive
-	fetch 1,mem_le_new_connslavelatency
-	store 1,mem_lpm_mult_init						// mouse_le_lpm_mult_reinit function will reinit mem_lpm_mult
-	branch mouse_le_conn_param_lpm_enable
+	branch p_soft_agc_en_true,zero
+	branch p_soft_agc_en_false
+	
+p_rssi_average:
+	arg mem_mouse_rssi_signal_buf_temp+6,rega
+	arg 10,pdata
+	branch rssi_average+2
 
-p_mouse_24g_pairing_complete:
-	call mouse_no_data_timer_init
-	arg MOUSE_24G_PAIRING_FLAG,queue
-	call mouse_disable_function_flag
-	fetch 1,mem_mouse_1io2led_led_enable
-	beq 0,mouse_24g_pairing_complete_enable_poweron_timer
-	call p_mouse_multi_led_on_enable
-	branch mouse_24g_pairing_complete_skip_poweron_timer
+p_rssi_sort:
+	arg mem_mouse_rssi_signal_buf_patch,contr
+	arg mem_mouse_rssi_signal_buf_temp,contw
+	call memcpy16
+	arg mem_mouse_rssi_signal_buf_temp,regb
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	copy pdata,loopcnt
+	branch p_bubble_sort
 
-p_mouse_24g_attempt_success:
-	fetch 4,mem_24g_addr
-	store 4,mem_24g_receiver_addr
-	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
-	call g24_ch_syncword_crc8_init
-	fetch 1,mem_mouse_1io2led_led_enable
-	beq 0,p_mouse_24g_attempt_success_next
-	call p_mouse_multi_led_on_enable
-	branch p_mouse_24g_attempt_success_next+1
-p_mouse_24g_attempt_success_next:
-	call mouse_device_poweron_timer_init
-	call mouse_no_data_timer_init
-	branch mouse_24g_attempt_success
+//input:regb buff ptr,pdata buff length
+p_bubble_sort:
+	increase -1,loopcnt
+	deposit loopcnt
+	rtn blank
+p_external_loop:
+	copy loopcnt,rega
+	increase -1,rega
+	copy regb,contr
+p_internal_loop:
+	ifetch 1,contr
+	copy contr,contw
+	ifetcht 1,contr
+	isub temp,null
+	call p_sort_up
+	increase -1,contr
+	increase -1,rega
+	branch p_internal_loop,positive
+	loop p_external_loop
+	rtn
+p_sort_up:
+	call p_exchange_data,positive
+	rtn
+p_exchange_data:
+	increase -1,contw
+	istoret 1,contw
+	istore 1,contw
+	rtn
+
+endif
+
+
+
+
+p_soft_reset:
+	clear_stack
+	ncall p_set_mem_xtal_cache,wake
+	call app_param_init
+	setarg mem_mouse_rssi_signal_buf_patch
+	store 2,mem_rssi_signal_buf_ptr
+	call mouse_xtal_init		// 16M / 24M
+	call initialize_radio
+	fetch 1,mem_xtal_cache
+	store 1,mem_lpm_config+1
+	setarg 0xf0f
+	arg 0xfff,contw
+	iand contw,contw
+	fetch 1,mem_lpm_config
+	and_into 0xf0,pdata
+	lshift8 pdata,pdata
+	ior contw,pdata
+	set0 2,pdata
+	store 2,core_lpm_reg
+	ifetch 2,contr
+	istore 2,contw
+	setarg lpmreg_sel_ctrl
+	until null,lpo_edge
+	store 1,core_lpm_wr
+	jam 0x08,mem_lpm_config+1
+	jam clksel_xtal,core_clksel
+	branch soft_reset+4
+
+p_set_mem_xtal_cache:
+	fetch 1,mem_lpm_config+1
+	store 1,mem_xtal_cache
+	rtn
+
+
+//TODO
+p_lpm_short_sleep:
+	setarg 0
+	store 3,core_clkpll_ctrl0// close pll
+	jam 140,mem_tx_time_offset
+	call xtal_fast_wake
+	fetch 4,mem_sleep_counter_all
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	deposit mark
+	store 8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy20
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	call lpm_ctrl3_cfg_dig_vsel
+	fetch 1,core_clksel
+	or_into 0x14,pdata
+	store 1,core_clksel
+	branch lpm_sleep+7
+
+
+
+p_initialize_radio_cont:
+	jam 0xe6,core_syn_aac_cfg1
+	call initialize_syn_afc_cfg1
+	call initialize_rf_ldo_cfg1
+	call initialize_rc_cal
+	jam 0x09,core_rx_bq_cfg0
+	jam 5,core_clkpll_cfg0
+	jam 0x94,core_rx_iqadc_cfg
+	jam 0x0b,core_rf_ldo_cfg2
+	jam 0x05,core_rf_ldo_cfg3
+	jam 0x90,core_syn_pfd_lkd_cfg
+	jam 0x00,core_syn_loopdiv_dsm_cfg
+	jam 0x40,core_rx_ctrl1
+	branch initialize_radio_cont+8
+
+
+p_set_sync_on:
+	jam 0x5,modem_en
+	nop 2
+	jam 0x0,modem_en					/* if called from tx or rx */
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,set_sync_on_24m
+p_set_sync_on_16m:
+	jam 0x29,core_syn_afc_cfg1
+	branch set_sync_on_16m
+
+
+p_set_freq_rx:
+	call set_freq_rx+1
+	setarg 0x7676
+	store 2,0x8968
+	rtn
+
+
+p_rf_rx_enable:
+	fetch 1,mem_soft_agc_en
+	nbranch p_rf_rx_enable_soft_agc,blank
+	nop 300
+	call rf_debug_rx_gpio_high
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,core_rf_rx_gain_fix
+	jam 0x2e,core_rf_rx_agc_ctrl
+	branch rf_rx_enable_no_soft_agc_next
+	
+p_rf_rx_enable_soft_agc:
+	fetch 1,core_rf_rx_agc_ctrl
+	or pdata,0x01,pdata					//disable agc		
+	store 1,core_rf_rx_agc_ctrl
+	jam 0x04,core_rf_rx_gain_fix		//set agc level
+	branch rf_rx_enable_no_soft_agc_next
 
-p_mouse_24g_attempt_fail:
-	fetch 1,mem_24g_attempt_fail_flag
-	nbranch p_mouse_24g_hibernate_set,blank
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_3_0_ADDR,p_mouse_24g_fast_conn_attempt_fail
-	beq PAIR_AND_3_0_ADDR,p_mouse_24g_auto_pair_attempt_fail
-	beq RECEIVER_AND_3_0_ADDR,p_mouse_reconn_dongle_attempt_fail
-	branch mouse_24g_attempt_fail_enter_hibernate
+p_soft_agc_en_false:
+	jam 0,mem_soft_agc_en
+	rtn
+p_soft_agc_en_true:
+	jam 1,mem_soft_agc_en
+	rtn
 
-p_mouse_24g_fast_conn_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_start_auto_pair
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_start_auto_pair
-	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
-	fetch 4,mem_mouse_24g_addr		// auto pair first time
-	fetcht 4,mem_mouse_compare_addr_ff
-	isub temp,null
-	branch p_mouse_24g_start_pair_mode,zero
-	branch mouse_24g_reconn_dongle_start
-p_mouse_24g_start_auto_pair:
-	fetch 1,mem_mouse_1io2led_led_enable
-	beq 0,mouse_24g_start_auto_pair
-	call p_mouse_multi_led_blink_enable
-	branch mouse_24g_start_auto_pair+1
-	
-p_mouse_24g_start_pair_mode:
-	jam 0,mem_24g_reconn_type
-	arg MOUSE_24G_PAIRING_FLAG,queue
-	call mouse_enable_function_flag
-	setarg 0
-	store 2,mem_24g_reconn_timeout	
-	call mouse_stop_discovery
-	call mouse_low_voltage_led_blink_disable
-	fetch 1,mem_mouse_1io2led_led_enable
-	beq 0,mouse_24g_start_pair_mode_enable_blink_timer
-	call p_mouse_multi_led_blink_enable
-	branch mouse_24g_start_pair_mode_skip_blink_timer
 
-p_mouse_24g_auto_pair_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
-	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
-	fetch 1,mem_device_number
-	beq 1,p_mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
-	branch mouse_24g_first_bluetooth_reconnect
+p_txon_next:
+	fetch 1,mem_soft_agc_en
+	nbranch p_set_tx_power_f17db,blank
+	branch set_tx_power_10db
+	//fetch 1,mem_tx_power
+	//beq TX_POWER_F30DB,p_set_tx_power_f30db
+	//beq TX_POWER_F40DB,p_set_tx_power_f40db
+	//beq TX_POWER_F50DB,p_set_tx_power_f50db
+	//beq TX_POWER_F60DB,p_set_tx_power_f60db
+	//branch txon_next+1
+/*
+p_set_tx_power_f30db:
+	jam 0x4c,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f40db:
+	jam 0x45,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f50db:
+	jam 0x42,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f60db:
+	jam 0x41,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+*/
+p_set_tx_power_f17db:	//F17dbm
+	jam 0x5b,core_tx_pwr_ctrl0
+	jam 0x01,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
 
-p_mouse_reconn_dongle_attempt_fail:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
-	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_attempt_fail_enter_hibernate
-	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_attempt_fail_enter_hibernate
-	branch mouse_24g_start_auto_pair+1
 
-p_mouse_24g_attempt_fail_enter_hibernate:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL,mouse_24g_attempt_fail_enter_hibernate
-p_mouse_24g_hibernate_set:
-	jam 0,mem_24g_attempt_fail_flag
-	call g24_transmit_next_packet
-	setarg -1
-	store 4,mem_24g_enter_hibernate
-	setarg 0
-	store 7,mem_mouse_key
-	jam 1,mem_sensor_shutdown_flag
-	call p_mouse_sensor_powerdown
-	branch p_g24_long_sleep
+p_save_rssi:
+	// bit6 is signed bit. 
+	fetch 1,modem_nb_pow 
+	isolate1 6,pdata 
+	setflag true,7,pdata 
+	store 1,mem_modem_rssi 
 	
-p_g24_pair_dispatch:
-	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
-	fetch 2,mem_24g_pair_count
-	increase 1,pdata
-	store 2,mem_24g_pair_count
-	fetch 1,mem_24g_pair_count
-	and pdata,0xff,pdata
-	beq 0,p_g24_pair_dispatch2
-	rtn
+	fetch 1,modem_gain 
+	and pdata,0x0f,temp 
+	lshift temp,temp 
+	rshift4 pdata,pdata 
+	iadd temp,temp 
+	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3 
 
-p_g24_pair_dispatch2:
-	fetch 1,mem_24g_pair_sm
-	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
-	beq STATE_24G_PAIRING_1,p_g24_pair_sm_1
-	beq STATE_24G_PAIRING_2,p_g24_pair_sm_2
-	beq STATE_24G_PAIRING_3,p_g24_pair_sm_3
-	beq STATE_24G_PAIRING_4,p_g24_pair_sm_4
+	fetch 1,mem_modem_rssi 
+	call p_byte_sign_extern 
+	sub pdata,0,pdata //-modem_nb_pow 
+	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) 
+	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9 
+	and pdata,0x1ff,pdata 
+	isolate1 8,pdata 
+	nbranch p_save_rssi_store,true 
+	setarg 0 
+p_save_rssi_store:
+	store 1,mem_rssi_hex
+	rtn
+p_byte_sign_extern:
+	isolate1 7,pdata
+	nrtn true
+	arg 0xff00,temp
+	ior temp,pdata
 	rtn
 
-p_g24_pair_sm_1:
-	jam DATATYPE_ATTEMP,mem_24g_txbuf
-	branch p_g24_pair_sm_prep
-
-p_g24_pair_sm_2:
-	fetch 1,mem_24g_pair_switch
-	branch p_g24_pair_sm_2_skip,blank
-	fetch 4,mem_24g_device_addr
-	call g24_update_addr_and_synccrc8	//use transmitter addr
-p_g24_pair_sm_2_skip:
-	jam DATATYPE_BIND,mem_24g_txbuf	
-	branch p_g24_pair_sm_prep
 
-p_g24_pair_sm_3:
-	jam DATATYPE_CONFIG,mem_24g_txbuf	
-	fetch 1,mem_24g_pair_switch
-	branch p_g24_pair_sm_prep,blank
-	fetch 4,mem_24g_receiver_addr		//prep receiver addr
-	store 4,mem_24g_txbuf+2
-	branch p_g24_pair_sm_common
 
-p_g24_pair_sm_4:
-	jam DATATYPE_OK,mem_24g_txbuf
-p_g24_pair_sm_prep:
-	fetch 4,mem_24g_device_addr
-	store 4,mem_24g_txbuf+2
-p_g24_pair_sm_common:
-	fetch 1,mem_24g_data_type
-	and_into bits_data,pdata
-	store 1,mem_24g_txbuf+1
-	jam 0,mem_24g_txbuf+6
-	jam 7,mem_24g_datalen
-	call g24_transmit_prep
-	call p_g24_transmit_receive_ack
-	branch g24_pair_sm_common+7
+p_adc_init_data:
+	arg mem_temp_block2,rega
+	arg 12,temp
+	setarg EFUSE_OFFSET_ADC_PARAM
+	call efuse_read_data
+	branch adc_init_data+6
 
-p_g24_reconn_dispatch:
-	fetch 2,mem_24g_reconn_count
-	arg 0x01f8,temp
-	iand temp,pdata
-	branch p_g24_reconn_dispatch_next,blank
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
+p_enable_adc:	
+	fetchr regb,1,core_rf_ldo_cfg6
+	jam 0x3d,core_rf_ldo_cfg6
+	jam 0xaa,core_rf_ldo_cfg5
+	jam 0x0c,core_rf_ldo_en0
+	fetch 1,core_clkpll_cfg6
+	set1 7,pdata
+	store 1,core_clkpll_cfg6
+	jam 0x04,core_rf_ldo_en1
+	nop 60
+	jam 0,core_syn_en
+	jam 6,core_rx_en0
+	call read_adc_mode
+	store 1,core_gpadc_ctrl
+	jam 0x03,core_sum_ctrl
+	nop 60
+	fetch 1,core_sum_en
+	set1 7,pdata
+	store 1,core_sum_en
+	nop 1000
+	fetch 2,core_adc_sum
+	store 2,mem_adc_current_value
+	fetch 1,core_sum_en
+	set0 7,pdata
+	store 1,core_sum_en
+	jam 0,core_gpadc_ctrl
+	storer regb,1,core_rf_ldo_cfg6
 	rtn
-p_g24_reconn_dispatch_next:
-	call g24_reconn_data_prep
-	call p_g24_transmit_receive_ack
-	nbranch p_g24_reconn_device_fail,sync
-	nbranch p_g24_reconn_device_fail,user3
-	call g24_ackpayload_parse
-	fetch 4,mem_24g_pair_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	branch g24_pair_start,zero
-	
-	fetch 4,mem_24g_device_addr
-	fetcht 4,mem_24g_addr
-	isub temp,null
-	call p_g24_store_receiver_addr,zero
-	fetch 1,mem_24g_conn_sm
-	set0 STATE_24G_RECONN,pdata
-	store 1,mem_24g_conn_sm
-	setarg 0
-	store 2,mem_24g_pair_timeout
-	store 2,mem_24g_reconn_count
-	store 2,mem_24g_reconn_timeout	
-	branch g24_reconn_attempt_success
-	
-p_g24_store_receiver_addr:
-	fetch 4,mem_24g_rxpayload+2
-	rtn blank
-	store 4,mem_24g_receiver_addr	
-	branch g24_ch_syncword_crc8_init
-	
-p_g24_reconn_device_fail:
-	fetch 1,mem_24g_fast_conn_enable
-	branch g24_ch,blank
-	fetch 2,mem_24g_reconn_count
-	increase 1,pdata
-	store 2,mem_24g_reconn_count
-	fetch 1,mem_24g_reconn_count+1
-	isolate1 1,pdata	// each 8 times switch
-	fetch 1,mem_24g_reconn_type
-	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
-	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
-	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
-	beq PAIR_AND_3_0_ADDR,p_g24_reconn_pair_and_3_0
-	branch g24_reconn_receiver_addr
 
-p_g24_reconn_pair_and_3_0:
-	branch g24_reconn_device_3_0_addr,true
-	branch g24_pair_init_param
 
-p_g24_dispatch:
-	rtnmark1 mark_adc_enable
-	bmark1 mark_24g_rxmode,g24_receive_dispatch
-p_g24_transmit_dispatch:
-	rtnmark0 mark_24g
-	fetch 1,mem_24g_conn_sm
-ifdef G24_OTA
-	bbit1 STATE_24G_OTA,p_g24_ota_dispatch
+
+p_ui_timer_check:		// 100ms timer will return 4 or 5 times when power on
+	fetch 1,mem_power_on_flag
+	ncall ui_timer_init,blank
+	jam 0,mem_power_on_flag
+	branch ui_timer_check+1
+
+
+
+
+
+
+ifdef CLASSIC
+
+p_init_param:
+	jam 0,mem_lmo_tid2			// classic can't reconnect
+	branch init_param_next+1
+
 endif
-	bbit1 STATE_24G_PAIR,g24_pair_dispatch
-	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
-	branch g24_transmit_no_interrupt
 
-p_g24_transmit_by_interrupt:
-	call g24_timer_check
-	nbranch p_g24_transmit_dispatch,user
-	call g24_interval_calibrate
-	fetch 2,mem_24g_transmit_by_interrupt_exit_count
-	increase 1,pdata
-	store 2,mem_24g_transmit_by_interrupt_exit_count
-	branch g24_transmit_no_interrupt
 
-p_mouse_start_work:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_start_auto_pair_mode
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_24g_start_mode
-	branch mouse_start_work+5
-	
-p_mouse_24g_start_mode:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
-	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
-	branch p_mouse_24g_reconn_dongle_start,user
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_reconn_general_dongle
-	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,p_mouse_24g_reconn_general_dongle
-	call mouse_key_check_once		// pdata output:00
-	and rega,0x07,pdata
-	branch mouse_24g_start_mode+9
-	
-p_mouse_24g_reconn_dongle_start:
-	fetch 1,mem_mouse_1io2led_led_enable
-	ncall p_mouse_multi_led_blink_enable,blank
-	branch mouse_24g_reconn_dongle_start
-p_mouse_24g_reconn_general_dongle:
-	fetch 1,mem_mouse_1io2led_led_enable
-	ncall p_mouse_multi_led_blink_enable,blank
-	branch mouse_24g_reconn_general_dongle
+ifdef BLE
+
+p_le_slave_match:
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+	branch le_slave_match+10
+
+p_le_slave_unsync:
+	call end_of_packet
+	branch le_slave_unsync+1
+
+endif
+
+
+
+
+
+
+
+
 
 p_g24_transmit:
 	fetch 1,mem_24g_tx_phy
@@ -1314,7 +1490,6 @@
 p_g24_transmit_2M_dealy:
 	nop 2
 	loop p_g24_transmit_2M_dealy
-//	nop 36	
 	rshift16 access,pdata
 	rshift8 pdata,pdata
 	rshift4 pdata,temp
@@ -1322,404 +1497,269 @@
 	inject mod,8
 	copy temp,pdata
 	inject mod,40
-	branch p_g24_transmit_packet	
-	
-	
-///////////////////dpi led adjust////////////////////////////////////////////////////////////////////
-p_mouse_seting_dpi:
-	call mouse_setting_dpi_4_level
-	call p_mouse_dpi_led_blink_delay
-	branch mouse_seting_sensor_type
-
-p_mouse_dpi_led_blink_delay:
-	fetch 1,mem_dpi_led_gpio
-	rtneq GPIO_DISABLE
-	fetch 2,mem_mouse_discovery_timer
-	nrtn blank
-	fetch 2,mem_24g_pair_timeout
-	nrtn blank
-	fetch 2,mem_24g_reconn_timeout
-	nrtn blank
-	fetch 1,mem_mouse_device_poweron_timer_count
-	nrtn blank
-	fetch 1,mem_mouse_dpi_led_delay_count_init
-	branch p_mouse_dpi_led_blink_init,blank
-	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
-	rtn
-
-
-p_mouse_bb_event_timer:
-	call mouse_adc_read
-	call mouse_low_voltage_led_timer
-	//24g
-	call g24_pair_timeout_timer
-	call g24_reconn_timeout_timer
-	call mouse_24g_long_sleep_param_update_timer
-	//led
-	call mouse_device_poweron_timer
-	call p_mouse_dpi_led_blink_delay_timer
-	call p_mouse_led_multi_timer
-
-	call mouse_dpi_key_check_long_press
-	call mouse_bt_discovery_check
-	call p_mouse_commbination_key_process
-	call mouse_check_discovery_timeout_timer
-	//ble
-	call mouse_check_direct_timeout_timer
-	call mouse_le_enable_att_list_timer
-	call p_mouse_le_battery_updata_timer
-	call mouse_le_send_smp_security_request_timer
-	//bt
-	call mouse_check_hid_handshake_timer
-	call mouse_bt_check_sniff_req_timeout_timer
-	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
-	call mouse_current_mult_update_timer
-	call mouse_wheel_trigger_timer
-	call mouse_store_information_delay_timer
-	call p_mouse_logo_led_on_timer
-ifdef G24_OTA
-	call p_mouse_g24_ota_reset_timer
-endif	
-	branch p_mouse_check_no_data_timeout_timer
-	
-ifdef G24_OTA	
-p_mouse_g24_ota_reset_timer:
-	arg mem_g24_ota_reset_timer,regc
-	arg soft_reset_chip,regb
-	branch timer_single_step	
-endif	
-
-//================led multi start===================//
-
-p_mouse_device_multi_led_poweron2s_init:
-	fetch 1,mem_mouse_multi_led_powon2s_timer_init
-	store 1,mem_mouse_multi_led_powon2s_timer
-	fetch 1,mem_mouse_multi_led_poweron2s_flag_init
-	store 1,mem_mouse_multi_led_poweron2s_flag
-	rtn
-p_mouse_multi_led_blink_enable:
-	jam 1,mem_mouse_multi_led_blink_enable
-	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
-	fetch 1,mem_mouse_multi_led_blink_timer_init
-	store 1,mem_mouse_multi_led_blink_timer
-	rtn
-p_mouse_multi_led_on_enable:	
-	jam 1,mem_mouse_multi_led_blink_enable	//disable flag 
-	jam 0,mem_mouse_multi_led_blink_timer
-	jam MULTI_LED_ON,mem_mouse_multi_led_type
-	rtn
-	
-p_mouse_led_multi_timer:
-	fetch 1,mem_mouse_multi_led_blink_enable
-	rtn blank
-	fetch 1,mem_mouse_multi_led_type
-	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
-p_mouse_multi_led_type_on:
-	fetch 1,mem_mouse_multi_led_poweron2s_flag
-	nbranch p_mouse_device_multi_led_poweron2s,blank
-	jam 0,mem_mouse_multi_led_blink_enable
-	rtn
-p_mouse_device_multi_led_poweron2s:
-	fetch 1,mem_mouse_multi_led_powon2s_timer
-	branch p_mouse_multi_led_poweron2s_and_flag_off,blank
-	increase -1
-	store 1,mem_mouse_multi_led_powon2s_timer
-	branch p_mouse_device_multi_led_on
-p_mouse_multi_led_poweron2s_and_flag_off:
-	jam 0,mem_mouse_multi_led_poweron2s_flag
-	jam 0,mem_mouse_multi_led_blink_enable
-	branch p_mouse_device_multi_led_off
-
-p_mouse_multi_led_type_blink:
-	arg mem_mouse_multi_led_blink_timer,regc
-	arg p_mouse_multi_led_type_blink_timeout,regb
-	branch timer_single_step
+	branch p_g24_transmit_packet
 
-p_mouse_multi_led_type_blink_timeout:
-	fetch 1,mem_mouse_multi_led_blink_timer_init
-	store 1,mem_mouse_multi_led_blink_timer
-	fetch 1,mem_mouse_multi_led_state
-	beq ON,p_mouse_device_multi_led_off	
-p_mouse_device_multi_led_on:
-	jam ON,mem_mouse_multi_led_state
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_device_24g_led_on
-	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_on
-	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_on
-	rtn
-p_mouse_device_24g_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_24gled
-	branch p_mouse_device_led_on
-p_mouse_device_bt1_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_bt1led
-	branch p_mouse_device_led_on
-p_mouse_device_bt2_led_on:
-	fetcht 1,mem_mouse_1io2led_multi_bt2led
-p_mouse_device_led_on:
-	branch gpio_out_active	//by mouse.dat config
 
-p_mouse_device_multi_led_off:
-	jam OFF,mem_mouse_multi_led_state
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_device_24g_led_off
-	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_off
-	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_off
-	rtn
-p_mouse_device_24g_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_24gled
-	branch gpio_set_high_impedance
-p_mouse_device_bt1_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_bt1led
-	branch gpio_set_high_impedance
-p_mouse_device_bt2_led_off:
-	fetcht 1,mem_mouse_1io2led_multi_bt2led
-	branch gpio_set_high_impedance
+p_g24_receive_packet:
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call calc_mod_value_scale_le
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call le_rf_rx_enable
+	fetch 1,core_rf_rx_agc_ctrl
+	set1 3,pdata
+	store 1,core_rf_rx_agc_ctrl
+p_g24_receive_rxon:
+	call g24_prep
+	bmark0 mark_ble_lr,p_g24_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call g24_prep
+p_g24_receive_nolr:
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	call rf_debug_rx_sync_line
+	bmark1 mark_ble_lr,g24_receive_skip_fec1
+	branch g24_receive_skip_fec1
 
-//================led multi end===================//
+p_g24_retransmit:
+	fetch 1,mem_mouse_need_soft_reset
+	nrtn blank
+	call p_mouse_select_device_by_pb_button
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt+1
+	bbit1 4,g24_tx_attempt_fail
+	call p_g24_transmit_hop_process
+	fetch 2,mem_retransmit
+	increase 1,pdata
+	store 2,mem_retransmit
+	branch p_g24_transmit_loop
 
-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
-	fetch 1,mem_mouse_1io2led_led_enable
-	beq 1,gpio_set_high_impedance
-	branch gpio_out_inactive
 
-p_mouse_logo_led_on:
-	fetcht 1,mem_mouse_logo_led_gpio
-	call gpio_out_active
+p_g24_transmit_receive_ack:
+	disable user3
+	call g24_transmit
+	fetch 1,mem_24g_no_ack
+	beq no_ack_24g,g24_end_of_packet
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	call calc_mod_value_scale_le	
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call p_g24_receive_rxon
+	call p_g24_end_of_packet,user3
+	rtn
 
-p_mouse_dpi_led_blink_delay_timer:
-	arg mem_mouse_dpi_led_delay_count,regc
-	arg p_mouse_dpi_led_blink_init,regb
-	branch timer_single_step	
-	
-p_mouse_dpi_led_blink_init:	//result:    level3: 2  3  1     level4: 3  4  1  2
-	fetch 1,mem_config_sensor_type
-	beq P3212,mouse_dpi_led_blink_init		//result:    level3: 1  2  3     level4: 2  3  4  1
-	beq KA8G2,mouse_dpi_led_blink_init	//result:    level3: 1  2  3     level4: 2  3  4  1
-	fetch 1,mem_dpi_led_gpio
-	store 1,mem_mouse_struct_led_gpio
-	fetch 2,mem_mouse_dpi_led_blink_time
-	store 2,mem_mouse_on_time
-	store 2,mem_mouse_off_time
-	arg 0,rega
-	fetcht 1,mem_mouse_dpi
-	increase 2,temp	// 2 3 4 (5)
-	sub temp,3,null
-	call p_mouse_dpi_led_blink_init_level_4,positive
-	ncall p_mouse_dpi_led_blink_count_clean,positive
-	branch mouse_dpi_led_blink_init_end
+p_g24_end_of_packet:
+	jam 0,core_rf_ldo_en0
+	jam 0,core_rf_ldo_en1
+	branch gain_control
 
-p_mouse_dpi_led_blink_init_level_4:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
-	increase 1,temp  	// 2-->3   3-->4
-	rtn
 
-p_mouse_dpi_led_blink_count_clean:
-	increase -3,temp		// 4-->1  5-->2
+p_g24_transmit_hop_process:
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 15,p_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn	
+p_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
 	rtn
-/////////////////////////////////////////////////////////////////////////////////////////////////
 
-p_mouse_commbination_key_process:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_24g_commbination_key_process
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
-	fetcht 1,mem_mouse_commbination_key_bt
-	branch p_mouse_commbination_key_start
 
-p_mouse_24g_commbination_key_process:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
-	fetcht 1,mem_mouse_commbination_key_24g
-p_mouse_commbination_key_start:
-	storet 1,mem_mouse_commbination_key
-	call mouse_check_key_gpio
-	and pdata,0x07,pdata
-	fetcht 1,mem_mouse_commbination_key
-	isub temp,null
-	branch p_mouse_commbination_key_down,zero
-	branch mouse_commbination_key_up
 
-		
-p_mouse_commbination_key_down:		// enter hibernate when reconnect
-	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_g24_dispatch:
+	rtnmark1 mark_adc_enable
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+p_g24_transmit_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+ifdef G24_OTA
+	bbit1 STATE_24G_OTA,p_g24_ota_dispatch
+endif
+	bbit1 STATE_24G_PAIR,g24_pair_dispatch
+	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
+	branch g24_transmit_no_interrupt
 
-p_mouse_combination_ui_timer:
-	arg p_mouse_24g_start_pair_mode,regb
-	branch mouse_combination_ui_timer+1
+p_g24_transmit_by_interrupt:
+	call g24_timer_check
+	nbranch p_g24_transmit_dispatch,user
+	call g24_interval_calibrate
+	fetch 2,mem_24g_transmit_by_interrupt_exit_count
+	increase 1,pdata
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	branch g24_transmit_no_interrupt
 
-p_mouse_le_battery_updata_timer:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
-	branch mouse_le_battery_updata_timer
 
-p_mouse_check_no_data_timeout_timer:
-	//fetch 1,mem_usb_addr
-	//rtnbit1 7
-	arg mem_mouse_no_data_timer,regc
-	arg p_mouse_check_no_data_timeout,regb
-	branch timer_single_step_2B
-p_mouse_check_no_data_timeout:
-	fetch 1,mem_device_flag
-	beq MODE_24G_DEVICE,p_mouse_24g_hibernate_set
-	branch mouse_disconnect	
+p_g24_transmit_no_interrupt:
+	call g24_txdata_prep
+	nbranch p_g24_nodata_transmit,user
+p_g24_transmit_start:
+	call p_g24_transmit_process
+ifdef PW_CTRL
+	call power_ctrl_start
+endif
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch p_g24_short_sleep,blank
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+p_g24_short_sleep:
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_sleep_miss
+	jam 0,mem_sleep_miss
+	sub pdata,0,null
+	nbranch p_g24_short_sleep_last_miss,zero
+	fetcht 2,mem_retransmit
+	sub temp,0,null
+	branch p_g24_short_sleep_default,zero
 
-p_mouse_start_discovery:
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BLE_ADV,pdata
-	call mouse_stop_le_adv,true		//reconnect adv
-	fetch 2,mem_ui_state_map
-	isolate1 UI_STATE_BT_RECONNECT,pdata
-	call mouse_cancel_reconnect,true
-	setarg 0
-	store 2,mem_le_battery_level_updata_timer
-	call mouse_bluetooth_fast_conn_disable
-	fetch 2,mem_ui_state_map
-	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_mouse_start_discovery_norandom
-	fetcht 2,mem_random_addr_increase_count
-	increase 1,temp
-	storet 2,mem_random_addr_increase_count
-	storet 2,mem_le_lap+1
-	random pdata					//random ble addr
-	store 1,mem_le_lap
-p_mouse_start_discovery_norandom:
-	fetch 3,mem_mouse_le_lap_temp
-	store 3,mem_le_lap+3
-	call app_lpm_mult_disable
-	fetch 2,mem_discovery_timeout
-	store 2,mem_mouse_discovery_timer
-	jam 6,mem_connection_options
-	setarg 0
-	store 2,mem_mouse_no_data_timer
-	store 1,mem_mouse_direct_timer
-	store 1,mem_mouse_bluetooth_reconnect_timeout
-	store 1,mem_mouse_device_poweron_timer_count
-	store 1,mem_mouse_clear_sensor_data_flag
-	arg MOUSE_STORE_EEPROM_FLAG,queue
-	call mouse_enable_function_flag
-	call mouse_bt_discovery_button_down_disable
-	fetch 1,mem_mouse_bluetooth_type
-	isolate1 MODE_4_MOUSE,pdata
-	call mouse_check_51cmd_adv,true
-	fetch 1,mem_mouse_bluetooth_type
-	isolate1 MODE_3_MOUSE,pdata
-	call check_51cmd_start_discovery,true
-	call mouse_low_voltage_led_blink_disable
-	fetch 1,mem_mouse_1io2led_led_enable
-	nbranch p_mouse_multi_led_blink_enable,blank
-	branch mouse_discover_setting_led_gpio
+	fetch 4,mem_tx_time_last_delt
+	branch p_g24_short_sleep_default,blank
+p_g24_short_sleep_notify:
+	fetcht 4,mem_24g_tsniff
+	isub temp,temp
+	storet 4,mem_sleep_miss_temp
+	nbranch p_g24_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch p_g24_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch p_g24_short_sleep_2,positive
+p_g24_short_sleep2:
+	store 4,mem_sleep_time_temp
+	call p_g24_miss_temp_clear
+	fetch 4,mem_sleep_time_temp
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch p_lpm_short_sleep
 
-p_ui_timer_check:		// 100ms timer will return 4 or 5 times when power on
-	fetch 1,mem_power_on_flag
-	ncall ui_timer_init,blank
-	jam 0,mem_power_on_flag
-	branch ui_timer_check+1
+p_g24_short_sleep_default:
+	call p_g24_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch p_g24_short_sleep2
 
-p_hid_rx_process:
-	fetch 2,mem_l2cap_payload_ptr
-	copy pdata,contr
-	ifetch 1,contr
-	store 1,mem_l2cap_rcv_hidtype
-	and pdata,0x0f,temp
-	rshift4 pdata,pdata //hidtype
-	beq hid_type_set_idle,p_hid_rx_process_handshake
-	branch hid_rx_process+7
+p_g24_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch p_g24_short_sleep2
 
-p_hid_rx_process_handshake:
-	arg 1,rega//payload length
-	call hid_malloc_tx_buff
-	fetch 2,mem_hid_ctrl_remote_cid
-	istore 2,contw
+p_g24_miss_temp_clear:
 	setarg 0
-	istore 1,contw
-	jam 1,mem_ui_data_txbuff_length
-	fetch 1,mem_hid_control_state
-	set1 l2cap_channel_hid_handshake_done,pdata
-	store 1,mem_hid_control_state
-	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
-	branch ui_ipc_send_event
+	store 4,mem_sleep_miss_temp
+	rtn
+	
+p_g24_short_sleep_last_miss:
+	fetch 4,mem_tx_time_last_delt
+	fetcht 4,mem_sleep_miss_temp
+	iadd temp,pdata
+	branch p_g24_short_sleep_notify
+	
+p_g24_short_sleep_2:
+	jam 1,mem_sleep_miss
+	rtn
 
-p_le_slave_match:
-	fetch 1,mem_le_md_count
-	pincrease 1
-	store 1,mem_le_md_count
-	beq LE_MD_MAX_COUNT,le_slave_cont
-	call le_acknowledge
-	call le_prepare_tx
-	fetch 1,mem_le_tx_phy
-	call le_enable_phy_by_pdata
-	call le_transmit
-	branch le_slave_match+10
+p_g24_transmit_process:
+	jam 0,mem_24g_retry
+	setarg 0
+	store 2,mem_retransmit
+p_g24_transmit_loop:
+	call p_g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch p_g24_retransmit,sync
+	nbranch p_g24_retransmit,user3
+	call p_send_time_check
+	call g24_ackpayload_parse		
+ifdef G24_OTA
+	call p_g24_mouse_parse_rx
+endif
+	call p_mouse_wakeup_24g
+	branch g24_transmit_no_ack
 
-p_le_parse_l2cap:
-	ifetch 2,contr
-	beq LE_L2CAP_CID_ATT,p_le_parse_att
-	branch le_parse_l2cap+10
-		
-p_le_parse_att:
-	ifetch 3,contr
-	store 3,mem_le_att_opcode
-	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
-	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request	
-	branch le_parse_att+2
+p_mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall p_mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_sensor_shutdown_flag
+	rtn	
 	
-p_le_parse_att_read_request:
+p_mouse_wakeup_24g_from_long_sleep:
+	call mouse_init_sensor_wakeup
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
-	call le_check_encrypt_state
-	fetcht 2,mem_le_att_handle
-	fetch 1,mem_le_configuration
-	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
-//input:temp is handle
-p_le_send_att_read_response:
-	fetch 2,mem_le_att_handle
-	beq 0x30,le_send_att_error_response_notfound
-	fetcht 2,mem_le_att_handle
-	branch le_send_att_read_response
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+p_mouse_wheel_set_wakeup:
+	fetch 1,mem_whee_a_data_gpio
+	arg gpcfg_pullup,temp
+ 	call gpio_config_function_int
+	fetch 1,mem_whee_b_data_gpio
+	arg gpcfg_pullup,temp
+ 	branch gpio_config_function_int
 
-p_le_send_att_read_response_check_auth:
-	fetch 2,mem_le_pairing_handle
-	isub temp,null
-	nbranch p_le_send_att_read_response,zero
-	nbranch p_le_send_att_read_response,user
-	branch le_send_att_read_response_error_insufficient_auth
+p_g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call p_g24_send_abort_packet,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+p_g24_long_sleep:
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	jam 0,mem_sleep_miss
+	call p_send_time_long_wake
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_sleep+3
+
+p_g24_send_abort_packet:
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	setarg 0
+	store 7,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+8
+	jam 12,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_24g_data_type
+	call g24_transmit_prep
+	branch p_g24_transmit_start
 
-p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
-	copy contr,rega
-	fetch 2,mem_le_l2cap_size
-	add pdata,-3,regb
-	call le_writeatt_cb
-	fetch 1,mem_mouse_bluetooth_fast_conn_flag
-	beq 0xff,le_send_att_write_response_check_auth	
-	fetch 1,mem_mouse_le_reconnect_flag
-	branch le_send_att_write_response_check_auth,blank
-	fetch 1,mem_le_connect_status_flag
-	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
-	setarg 0x001a		
-	fetcht 2,mem_le_att_handle
-	isub temp,null
-	nbranch le_send_att_write_response_check_auth,zero
-	branch le_send_att_read_response_error_insufficient_auth
 
-	
 p_g24_lpm_wait:			// ice connect led
 	fetch 1,mem_24g_device_led_status
 	ncall g24_transmit_by_interrupt_enable,blank
@@ -1729,440 +1769,343 @@
 	branch disable_user,blank
 	fetch 1,mem_lpm_mode
 	branch disable_user,blank
-//	call g24_setgpio_lpm_before
 	fetch 1,mem_24g_transmit_by_interrupt
 	beq G24_TX_TIMER_INT_ENABLE,disable_user
 	enable user
 	rtn
 
-	
-p_mouse_motion:
-	disable user
-	setarg 0
-	store 6,mem_mouse_x
-	call mouse_check_sensor_data
-	setarg 0x0089			
-	call twspi_write
-	call mouse_dpi_config
-	call mouse_zwheel
-	call mouse_t_zwheel
-	call p_mouse_key
-	fetch 1,mem_mouse_key
-	and_into 0x1f,pdata
-	store 1,mem_mouse_key
-	nbranch mouse_drawing_optima_init,user
-	call p_mouse_drawing_optima
-	branch mouse_no_data_timer_init
 
-p_mouse_drawing_optima:
-	fetch 1,mem_config_sensor_type
-	rtneq P3212
-	branch mouse_drawing_optima
+p_send_time_check:
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,p_send_timer_first
+	fetch 1,mem_tx_count
+	branch p_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_tx_time_last
+	store 6,mem_tx_time_last
+	call clk_diff_rt
+	store 4,mem_tx_time_last_delt
 
-p_mouse_sensor_poweron:
-	call mouse_sensor_spi_init
-	fetch 1,mem_config_sensor_type
-	beq KA8G2,p_mouse_ka8g2_sensor_init
-	branch mouse_sensor_poweron_next
-	
-p_mouse_ka8g2_sensor_init:
-	call p_mouse_ka8g2_sensor_reset
-	arg mem_ka8g2_sensor_poweron_init,regc
-	branch mouse_sensor_poweron_end
+	fetch 1,mem_sleep_miss
+	nrtn blank
+	fetch 2,mem_retransmit
+	nrtn blank
+	fetch 4,mem_tx_time_last_delt
+	fetcht 5,mem_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_tx_time_sum	
+	fetcht 1,mem_tx_count
+	fetch 1,mem_tx_time_sum_count
+	isub temp,null
+	branch p_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_tx_count
+	rtn
+
+p_send_time_check_average:
+	jam 1,mem_tx_count
+	arg 0,temp
+	fetch 5,mem_tx_time_sum
+	storet 5,mem_tx_time_sum
+	fetcht 1,mem_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_24g_tsniff
+	fetcht 1,mem_tx_time_offset
+	isub temp,temp
+	increase -40,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch p_send_time_check_average_late,positive
+	sub pdata,0,pdata
 	
-p_mouse_sensor_reset:
-	fetch 1,mem_config_sensor_type
-	beq KA8G2,p_mouse_ka8g2_sensor_reset
-	branch mouse_sensor_reset
-p_mouse_ka8g2_sensor_reset:
-	setarg 0x9706		// reset to factory settings
-	branch mouse_sensor_reset_end
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	fetch 3,mem_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch p_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
 
-p_mouse_sensor_powerdown:
-	call mouse_init_sunt
-	call mouse_sensor_spi_init
-	fetch 1,mem_config_sensor_type
-	beq KA8G2,p_mouse_ka8g2_sensor_powerdown
-	branch mouse_sensor_powerdown_end
-p_mouse_ka8g2_sensor_powerdown:
-	setarg 0x1f06		
-	branch twspi_write
+p_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	fetch 3,mem_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch p_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+p_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
 
 
-//////////////////////////////modify key start///////////////////////////////////////////////
-p_mouse_key:
-ifdef FIRE_KEY
-	call p_mouse_check_firekey_gpio
-	fetch 1,mem_fire_key_flag
-	nbranch p_fire_key_press,blank
-	fetch 1,mem_fire_key_status
-	nbranch p_fire_key_process,blank
-endif
-	call p_mouse_check_key_gpio
-	branch mouse_key+1
+p_send_timer_first:
+	jam 1,mem_tx_count
+	copy clkn,pdata
+	store 6,mem_tx_time_last
+	rtn
+	
 
-p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
-	fetch 1,mem_sensor_shutdown_flag
-	ncall mouse_check_key_gpio_once,blank
-	arg 0,rega
-	call p_mouse_check_lkey_gpio
-	//call p_mouse_check_rkey_gpio
-	//call p_mouse_check_mkey_gpio
-	call p_mouse_check_bkkey_gpio
-	call p_mouse_check_fwkey_gpio
-ifdef FIRE_KEY	
-	call p_mouse_check_firekey_gpio
-endif
-	branch mouse_check_key_gpio_next
+p_send_time_long_wake:
+	setarg 0
+	store 1,mem_tx_count
+	store 5,mem_tx_time_sum
+	rtn
 
-p_mouse_check_lkey_gpio:
-	fetch 1,mem_lbutton_gpio
-	call p_mouse_gpio_config_output_high
-	call mouse_check_lkey_gpio
-	fetcht 1,mem_lbutton_gpio
-	call mouse_gpio_config_input_pu
-p_mouse_check_rkey_gpio:
-	fetch 1,mem_rbutton_gpio
-	call p_mouse_gpio_config_output_high
-	call mouse_check_rkey_gpio
-	fetcht 1,mem_rbutton_gpio
-	call mouse_gpio_config_input_pu
-p_mouse_check_mkey_gpio:
-	fetch 1,mem_mbutton_gpio
-	call p_mouse_gpio_config_output_high
-	call mouse_check_mkey_gpio
-	fetcht 1,mem_mbutton_gpio
-	branch mouse_gpio_config_input_pu	
 
-p_mouse_check_bkkey_gpio:
-	fetch 1,mem_bk_button_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_BK_KEY,mem_mouse_key_temp
-	fetch 1,mem_mouse_bkkey_press_status
-	copy pdata,regc
-	fetcht 1,mem_bk_button_gpio
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,p_mouse_3io6key_bk_check
-	branch mouse_check_bkkey_gpio_next
-p_mouse_3io6key_bk_check:
-	fetch 1,mem_bk_button_gpio
-	call p_mouse_gpio_config_output_low
-	fetcht 1,mem_bk_button_gpio
-	branch mouse_3io6key_bk_check	
 
-p_mouse_check_fwkey_gpio:
-	fetch 1,mem_fw_button_gpio
-	rtneq GPIO_DISABLE
-	jam MOUSE_FW_KEY,mem_mouse_key_temp
-	fetch 1,mem_mouse_fwkey_press_status
-	copy pdata,regc
-	fetcht 1,mem_fw_button_gpio
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,p_mouse_3io6key_fw_check
-	branch mouse_check_fwkey_gpio_next
-p_mouse_3io6key_fw_check:
-	fetch 1,mem_fw_button_gpio
-	call p_mouse_gpio_config_output_low
-	fetcht 1,mem_fw_button_gpio
-	branch mouse_3io6key_fw_check
 
-//input:pdata gpio number
-p_mouse_gpio_config_output_high:
-	arg gpcfg_output_high,temp
-	branch gpio_config_function_int
-		
-//input:pdata gpio number
-p_mouse_gpio_config_output_low:
-	arg gpcfg_output_low,temp
-	branch gpio_config_function_int	
 
-/////////////////////////////////////////////firekey start//////////////////////////////////////////
 
-ifdef FIRE_KEY
-p_mouse_check_firekey_gpio:
-	arg 0,regb
-	fetch 1,mem_firebutton_gpio
-	rtneq GPIO_DISABLE
-	fetch 1,mem_mouse_firebutton_connect_vin_flag
-	nbranch p_mouse_check_firekey_connect_vin,blank
-p_mouse_check_firekey_connect_gnd:
-	fetcht 1,mem_firebutton_gpio
-	call mouse_gpio_config_input_pu
-	fetcht 1,mem_firebutton_gpio
-	call gpio_get_bit
-	setflag true,0,regb
-p_mouse_firekey_state_store:	
-	copy regb,pdata
-	store 1,mem_fire_key_flag
+
+p_g24_pair_dispatch:
+	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
+	fetch 2,mem_24g_pair_count
+	increase 1,pdata
+	store 2,mem_24g_pair_count
+	fetch 1,mem_24g_pair_count
+	and pdata,0xff,pdata
+	nrtn blank
+	fetch 1,mem_24g_pair_sm
+	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
+	beq STATE_24G_PAIRING_1,p_g24_pair_sm_1
+	beq STATE_24G_PAIRING_2,p_g24_pair_sm_2
+	beq STATE_24G_PAIRING_3,p_g24_pair_sm_3
+	beq STATE_24G_PAIRING_4,p_g24_pair_sm_4
 	rtn
 
-p_mouse_check_firekey_connect_vin:
-	fetch 1,mem_firebutton_gpio
-	set0 gpio_active_bit,pdata
-	store 1,mem_firebutton_gpio
-	fetcht 1,mem_firebutton_gpio
-	call mouse_gpio_config_input_pd
-	fetcht 1,mem_firebutton_gpio
-	call gpio_get_bit
-	nsetflag true,0,regb
-	branch p_mouse_firekey_state_store
+p_g24_pair_sm_1:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	branch p_g24_pair_sm_prep
 
-p_fire_key_process: 
-	beq 4,p_fire_key_process_end
-p_fire_key_press:
-	call p_firekey_clkn_bt_timer_check 
-	fetch 4,mem_fire_key_delay
-	arg 0xa0,temp      
-	iadd temp,temp
-	copy clkn_bt,pdata
-	isub temp,null
-	nrtn positive
-	store 4,mem_fire_key_delay 
-	fetch 1,mem_fire_key_status
-	beq 0,p_fire_key_process_start
-	beq 1,p_fire_key_process_release1
-	beq 2,p_fire_key_process_start2
-	beq 3,p_fire_key_process_release2
+p_g24_pair_sm_2:
+	fetch 1,mem_24g_pair_switch
+	branch p_g24_pair_sm_2_skip,blank
+	fetch 4,mem_24g_device_addr
+	call g24_update_addr_and_synccrc8	//use transmitter addr
+p_g24_pair_sm_2_skip:
+	jam DATATYPE_BIND,mem_24g_txbuf	
+	branch p_g24_pair_sm_prep
+
+p_g24_pair_sm_3:
+	jam DATATYPE_CONFIG,mem_24g_txbuf	
+	fetch 1,mem_24g_pair_switch
+	branch p_g24_pair_sm_prep,blank
+	fetch 4,mem_24g_receiver_addr		//prep receiver addr
+	store 4,mem_24g_txbuf+2
+	branch p_g24_pair_sm_common
+
+p_g24_pair_sm_4:
+	jam DATATYPE_OK,mem_24g_txbuf
+p_g24_pair_sm_prep:
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+p_g24_pair_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_txbuf+1
+	jam 0,mem_24g_txbuf+6
+	jam 7,mem_24g_datalen
+	call g24_transmit_prep
+	call p_g24_transmit_receive_ack
+	branch g24_pair_sm_common+7
+
+p_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	arg 0x01f8,temp
+	iand temp,pdata
+	branch p_g24_reconn_dispatch_next,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
 	rtn
+p_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call p_g24_transmit_receive_ack
+	nbranch p_g24_reconn_device_fail,sync
+	nbranch p_g24_reconn_device_fail,user3
+	call g24_ackpayload_parse
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+	
+	fetch 4,mem_24g_device_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	call p_g24_store_receiver_addr,zero
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_count
+	store 2,mem_24g_reconn_timeout	
+	branch g24_reconn_attempt_success
+	
+p_g24_store_receiver_addr:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	store 4,mem_24g_receiver_addr	
+	branch g24_ch_syncword_crc8_init
+	
+p_g24_reconn_device_fail:
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_ch,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	fetch 1,mem_24g_reconn_count+1
+	isolate1 1,pdata	// each 8 times switch
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
+	beq PAIR_AND_3_0_ADDR,p_g24_reconn_pair_and_3_0
+	branch g24_reconn_receiver_addr
 
-p_fire_key_process_start:
-	jam 1,mem_fire_key_status
-p_fire_key_down:
-	jam 1,mem_mouse_key
-	branch enable_user
+p_g24_reconn_pair_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_pair_init_param
 
-p_fire_key_process_release1:
-	jam 2,mem_fire_key_status
-p_fire_key_release:
-	jam 0,mem_mouse_key
-	branch enable_user
 
-p_fire_key_process_start2:
-	jam 3,mem_fire_key_status
-	branch p_fire_key_down
 
-p_fire_key_process_release2:
-	jam 0,mem_fire_key_status
-	branch p_fire_key_release
-	
-p_fire_key_process_end:
-	jam 0,mem_fire_key_status
-	jam 0,mem_mouse_key
-	rtn
 
-p_firekey_clkn_bt_timer_check:
-	fetcht 4,mem_fire_key_delay
-	copy clkn_bt,pdata
-	isub temp,null
-	ncall p_firekey_clkn_bt_timer_timeout,positive
-	rtn
-p_firekey_clkn_bt_timer_timeout:
-	setarg 0
-	store 4,mem_fire_key_delay
-	rtn
 
-endif
 
-/////////////////////////////////////////////firekey end//////////////////////////////////////////
 
-p_mouse_idle:
-	call mouse_low_voltage_led_no_enter_lpm
-	call ui_check_paring_button
-	call p_mouse_dpi_check
-	call p_mouse_dpi_another_gpio_check
-	branch mouse_idle+4
-p_mouse_dpi_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_dpi_check_connect_adc
-	fetch 1,mem_dpi_button_gpio
-	rtneq GPIO_DISABLE
-	arg 0,rega
-	jam MOUSE_DPI_KEY,mem_mouse_key_temp
-	fetcht 1,mem_dpi_button_gpio
-	call p_mouse_dpi_key_check
-	branch mouse_dpi_check_next
 
-p_mouse_dpi_key_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
-	fetch 1,mem_mouse_dpikey_press_status
-	copy pdata,regc
-	fetch 1,mem_matrix_public_gpio
-	beq GPIO_DISABLE,p_mouse_3io6key_dpi_check
-	branch mouse_dpi_key_check_next
-p_mouse_3io6key_dpi_check:
-	fetch 1,mem_dpi_button_gpio
-	call p_mouse_gpio_config_output_low
-	fetcht 1,mem_dpi_button_gpio
-	branch mouse_3io6key_check
 
-p_mouse_dpi_another_gpio_check:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
-	fetch 1,mem_mouse_another_dpi_connect_vin_flag
-	nbranch p_mouse_dpi_another_gpio_connect_vin_check,blank
-p_mouse_dpi_another_gpio_connect_gnd_check:	
-	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_24g_pairing_complete:
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_pairing_complete_enable_poweron_timer
+	call p_mouse_multi_led_on_enable
+	branch mouse_24g_pairing_complete_skip_poweron_timer
 
-p_mouse_dpi_another_gpio_connect_vin_check:
-	fetch 1,mem_dpi_another_button_gpio
-	set0 gpio_active_bit,pdata
-	store 1,mem_dpi_another_button_gpio
-	//fetch 1,mem_dpi_another_button_gpio
-	call p_mouse_gpio_config_output_low
-	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_dpi_another_button_gpio
-	fetch 1,mem_dpi_another_press_status
-	call p_mouse_check_key_connect_vin_new
-	call p_mouse_dpi_another_state_check
-	fetcht 1,mem_dpi_another_button_gpio
-	branch mouse_gpio_config_input_pu	
+p_mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,p_mouse_24g_attempt_success_next
+	call p_mouse_multi_led_on_enable
+	branch p_mouse_24g_attempt_success_next+1
 
-p_mouse_dpi_another_down_new:
-	call mouse_gpio_config_input_pu	
-	fetch 1,mem_dpi_another_button_state
-	rtneq DPI_BUTTON_STATE_DOWN
-	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
-	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	//rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
-	//rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
-	branch mouse_dpi_process
-	
-p_mouse_dpi_another_check:
-	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
-	fetcht 1,mem_dpi_another_button_gpio
-	fetch 1,mem_dpi_another_press_status	
-	call p_mouse_check_key_connect_gnd_new
-p_mouse_dpi_another_state_check:
-	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_24g_attempt_success_next:
+	call mouse_device_poweron_timer_init
+	call mouse_no_data_timer_init
+	branch mouse_24g_attempt_success
 
-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_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch p_mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,p_mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,p_mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,p_mouse_reconn_dongle_attempt_fail
+	branch mouse_24g_attempt_fail_enter_hibernate
 
-p_mouse_check_key_connect_vin_new:	
-	lshift pdata,pdata
-	copy pdata,regb
-	call mouse_gpio_config_input_pd
-	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_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	fetcht 4,mem_mouse_compare_addr_ff
+	isub temp,null
+	branch p_mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
 
-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_24g_start_auto_pair:
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_start_auto_pair
+	call p_mouse_multi_led_blink_enable
+	branch mouse_24g_start_auto_pair+1
+	
+p_mouse_24g_start_pair_mode:
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+	call mouse_low_voltage_led_blink_disable
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_start_pair_mode_enable_blink_timer
+	call p_mouse_multi_led_blink_enable
+	branch mouse_24g_start_pair_mode_skip_blink_timer
 
-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_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,p_mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
 
-p_mouse_double_dpi_check:
-	fetch 1,mem_dpi_another_button_down_enable
-	nbranch p_mouse_another_dpi_button_down,blank
-p_mouse_dpi_increase:
+p_mouse_reconn_dongle_attempt_fail:
 	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_LEVEL2
-p_mouse_dpi_increase_level:
-	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3	//1600
-	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_2 	//1200
-	rtn
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
 
-p_mouse_dpi_level_1:		//800
-	setarg 2
-	branch p_mouse_dpi_store
-p_mouse_dpi_level_2:		//1200
+p_mouse_24g_attempt_fail_enter_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL,mouse_24g_attempt_fail_enter_hibernate
+p_mouse_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 4,mem_24g_enter_hibernate
 	setarg 0
-	branch p_mouse_dpi_store
-p_mouse_dpi_level_3:		//1600
-	setarg 1
-	branch p_mouse_dpi_store
-p_mouse_dpi_level_4:		//1000
-	setarg 3
-	branch p_mouse_dpi_store
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call p_mouse_sensor_powerdown
+	branch p_g24_long_sleep
+
 
-p_mouse_dpi_increase_level_4:
-	copy temp,pdata			//0->1,2->3,3->0
-	rtneq MOUSE_DPI_LEVEL2
-	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3
-	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_4
-	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_2
-	rtn
-p_mouse_dpi_decrease_level_4:
-	copy temp,pdata			//0->3,1->0,3->2
-	rtneq MOUSE_DPI_LEVEL3
-	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_4
-	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
-	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_1
-	rtn
 
-p_mouse_another_dpi_button_down:
-p_mouse_dpi_decrease:
-	fetch MOUSE_FLAG_LEN,mem_mouse_flag
-	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,p_mouse_dpi_decrease_level_4
-	copy temp,pdata
-	rtneq MOUSE_DPI_LEVEL3
-p_mouse_dpi_decrease_level:
-	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_1
-	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
-	rtn
-	
-//////////////////////////////modify key end///////////////////////////////////////////////
 
 
-///////////////////////////// 2.4g ota start ///////////////////////////////////////////////////////////	
+	
+
 ifdef G24_OTA
+
+p_g24_load_ota_config_poweron:
+	call iicd_load_gpio_init
+	call p_g24_check_ota_data
+	branch p_g24_load_ota_config,user
+	rtn
+
+p_g24_load_ota_config:	
+	arg iicd_read_eep,regc
+	fetch 2,mem_g24_ota_config_addr
+	increase 3,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	branch load_storage_loop
+
+p_mouse_g24_ota_reset_timer:
+	arg mem_g24_ota_reset_timer,regc
+	arg soft_reset_chip,regb
+	branch timer_single_step
+
+
 p_g24_parse_rx_ota_sm:
 	fetch 1,mem_g24_ota_mode
 	rtn blank
@@ -2203,8 +2146,6 @@
 	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
@@ -2212,7 +2153,6 @@
 
 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
 
@@ -2232,13 +2172,12 @@
 	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_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
@@ -2249,8 +2188,7 @@
 	rtn
 
 p_g24_mouse_ota_process_version:
-//	call  g24_transmit_prep
-	call p_g24_ota_mode_enable 
+	call p_g24_ota_mode_enable
 	jam G24_OTA_SM_RX_VERSION,mem_g24_ota_sm	
 	rtn
 	
@@ -2266,7 +2204,7 @@
 	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
+	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
@@ -2298,12 +2236,8 @@
 	call iicd_read_eep	
 
 	fetch 1,mem_temp_block5
-	bne  G24_OTA_DATA_HEADER,disable_user
+	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
 	
@@ -2409,7 +2343,6 @@
 	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
@@ -2470,7 +2403,7 @@
 	ifetch 1,contr
 	bne 0x5a,p_g24_mouse_ota_load_fail
 	copy rega,1,contr
-	fetcht  2,contr
+	fetcht 2,contr
 p_g24_mouse_ota_check_data_loop:
 	sub temp,3,null
 	branch p_g24_mouse_ota_load_fail,positive
@@ -2493,7 +2426,7 @@
 	isub temp,null
 	nbranch p_g24_mouse_ota_load_fail,zero	
 p_g24_mouse_ota_load_success:
-	branch enable_user	
+	branch enable_user
 
 p_g24_mouse_ota_load_fail:
 	branch disable_user
@@ -2545,9 +2478,6 @@
 	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
 
@@ -2573,9 +2503,9 @@
 	istoret 2,contw
 	fetch 2,mem_g24_ota_storage_size
 	lshift8 pdata,pdata
-	rshift  pdata,pdata 
+	rshift pdata,pdata
 	isub temp,pdata
-	nbranch  p_dongle_usb_cmd_ota_info_dongle_empty,positive
+	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	
@@ -2628,225 +2558,314 @@
 	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_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 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
+	
+endif
+
+
+ifdef BLE
+
+p_mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	branch mouse_le_battery_updata_timer
+
+
+p_mouse_start_discovery:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BT_RECONNECT,pdata
+	call mouse_cancel_reconnect,true
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_mouse_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+p_mouse_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_device_poweron_timer_count
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_check_51cmd_adv,true
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	call mouse_low_voltage_led_blink_disable
+	fetch 1,mem_mouse_1io2led_led_enable
+	nbranch p_mouse_multi_led_blink_enable,blank
+	branch mouse_discover_setting_led_gpio
+
+
+
+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
+
+	
+endif
+
+
+ifdef BLE
+
+p_mouse_le_bb_event_connected:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_on_enable,blank
+	branch mouse_le_bb_event_connected
+
+p_mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_mouse_le_bb_connected_flag
+	setarg LE_INTERVAL_7_5MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next+2
+	setarg LE_INTERVAL_8_75MS
+	branch mouse_le_bb_disconnected_next
+
+p_mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,p_mouse_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+p_mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+p_mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult_init						// mouse_le_lpm_mult_reinit function will reinit mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+
+endif
 
-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
+ifdef BLE
 
-///////////////////////////// 2.4g ota  ///////////////////////////////////////////////////////////	
-endif
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	branch le_parse_l2cap+10
+		
+p_le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request	
+	branch le_parse_att+2
+	
+p_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
+//input:temp is handle
+p_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
 
-p_send_time_check:
-	fetch 1,mem_24g_transmit_by_interrupt
-	beq  G24_TX_TIMER_INT_ENABLE,p_send_timer_first
-	fetch 1,mem_tx_count
-	branch p_send_timer_first,blank
-//	call p_send_time_check_ptr
-	copy clkn,pdata
-	fetcht 6,mem_tx_time_last
-	store 6,mem_tx_time_last
-	call clk_diff_rt
-	store 4,mem_tx_time_last_delt
+p_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	nbranch p_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
 
-	fetch 1,mem_sleep_miss
-	nrtn blank
-	fetch 2,mem_retransmit
-	nrtn blank
-	fetch 4,mem_tx_time_last_delt
-//	fetcht 2,mem_tx_time_write_ptr
-//	copy temp,contw
-//	istore 3,contw
-//	copy contw,temp
-//	storet 2,mem_tx_time_write_ptr
-	fetcht 5,mem_tx_time_sum
-	iadd temp,pdata
-	store 5,mem_tx_time_sum	
-	fetcht 1,mem_tx_count
-	fetch 1,mem_tx_time_sum_count
+p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth	
+	fetch 1,mem_mouse_le_reconnect_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
 	isub temp,null
-	branch p_send_time_check_average,zero
-	increase 1,temp
-//	sub temp,65,null
-	storet 1,mem_tx_count
-	rtn
+	nbranch le_send_att_write_response_check_auth,zero
+	branch le_send_att_read_response_error_insufficient_auth
+
+endif
+
 
-p_send_time_check_average:
-	jam 1,mem_tx_count
-	arg 0,temp
-	fetch 5,mem_tx_time_sum
-	storet 5,mem_tx_time_sum
-	fetcht 1,mem_tx_time_sum_count
-	idiv temp
-	call wait_div_end
-  	quotient rega
 
-//	rshift2 pdata,pdata
-	fetch 4,mem_24g_tsniff
-	fetcht 1,mem_tx_time_offset
-	isub temp,temp
-	increase -40,temp
 
-	copy rega,pdata
-	isub temp,pdata
-	branch p_send_time_check_average_late,positive
-	sub pdata,0,pdata
 	
-	rshift2 pdata,pdata
-	fetcht 3,mem_24g_short_sleep_set
-	iadd temp,temp
-	fetch 3,mem_24g_short_sleep_set_init
-	arg 0x1800,rega
-	iadd rega,pdata
-	isub temp,null
-	nbranch p_send_time_check_average_min,positive
-	storet 3,mem_24g_short_sleep_set
-	rtn
+ifdef CLASSIC
 
-p_send_time_check_average_late:
-	rshift2 pdata,temp
-	fetch 3,mem_24g_short_sleep_set
-	isub temp,temp
-	fetch 3,mem_24g_short_sleep_set_init
-	arg 0x1800,rega
-	isub rega,pdata
-	isub temp,null
-	branch p_send_time_check_average_min,positive
-	storet 3,mem_24g_short_sleep_set
-	rtn
-p_send_time_check_average_min:
-	store 3,mem_24g_short_sleep_set
-	rtn
 
+endif
 
-p_send_timer_first:
-	jam 1,mem_tx_count
-	copy clkn,pdata
-	store 6,mem_tx_time_last
-	rtn
-	
 
-p_send_time_long_wake:
-	setarg 0
-	store 1,mem_tx_count
-	store 5,mem_tx_time_sum
-	rtn
+ifdef CLASSIC
 
-p_power_ctrl_start:
-	fetch 2,mem_ui_state_map
-	rtnbit1 UI_STATE_BLE_ADV
-	rtnbit1 UI_STATE_BT_RECONNECT
-	rtnbit1 UI_STATE_BT_DISCOVERY	
-	call p_rssi_sort	
-	call p_rssi_average
-	storet 1,mem_rssi_avg_received
-	call p_g24_fast_conn_mode_check
-	fetch 1,mem_g24_fast_conn_enable
-	nbranch p_g24_fast_conn_mode_txpower,blank
-	fetcht 1,mem_rssi_avg_received
-	branch power_ctrl_rssi_avg_compare
+p_mouse_bb_event_connected:
+	call mouse_no_data_timer_init
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_on_enable,blank
+	branch mouse_bb_event_connected
 
-p_g24_fast_conn_mode_check:
-	rtnmark0 mark_24g
-	fetch 4,mem_24g_receiver_addr
-	fetcht 4,mem_24g_fast_conn_addr
-	isub temp,null
-	branch p_g24_fast_conn_mode_enable,zero
-p_g24_fast_conn_mode_disable:
-	jam 0,mem_g24_fast_conn_enable
-	rtn
-p_g24_fast_conn_mode_enable:
-	jam 1,mem_g24_fast_conn_enable
-	rtn
-p_g24_fast_conn_mode_txpower:
-	jam TX_POWER_FAST_CONN,mem_tx_power
-	rtn
-	
-	
-p_rssi_average:
-	arg mem_mouse_rssi_signal_buf_temp+6,rega
-	arg 10,pdata
-	branch rssi_average+2
+endif
 
-p_rssi_sort:
-	call p_memcpy16
-	arg mem_mouse_rssi_signal_buf_temp,regb
-	fetch 1,mem_rssi_buff_index
-	increase 1,pdata
-	copy pdata,loopcnt
-	branch p_bubble_sort
 
-p_memcpy16:
-	arg mem_mouse_rssi_signal_buf_patch,contr
-	arg mem_mouse_rssi_signal_buf_temp,contw
-	branch memcpy16
+ifdef CLASSIC
 
-//input:regb buff ptr,pdata buff length
-p_bubble_sort:
-	increase -1,loopcnt
-	deposit loopcnt
-	rtn blank
-p_external_loop:
-	copy loopcnt,rega
-	increase -1,rega
-	copy regb,contr
-p_internal_loop:
+p_hid_rx_process:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
 	ifetch 1,contr
-	copy contr,contw
-	ifetcht 1,contr
-	isub temp,null
-	call p_sort_up
-	increase -1,contr
-	increase -1,rega
-	branch p_internal_loop,positive
-	loop p_external_loop
-	rtn
-p_sort_up:
-	call p_exchange_data,positive
-	rtn
-p_exchange_data:
-	increase -1,contw
-	istoret 1,contw
+	store 1,mem_l2cap_rcv_hidtype
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_idle,p_hid_rx_process_handshake
+	branch hid_rx_process+7
+
+p_hid_rx_process_handshake:
+	arg 1,rega//payload length
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw
+	setarg 0
 	istore 1,contw
-	rtn
+	jam 1,mem_ui_data_txbuff_length
+	fetch 1,mem_hid_control_state
+	set1 l2cap_channel_hid_handshake_done,pdata
+	store 1,mem_hid_control_state
+	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
+	branch ui_ipc_send_event
+
+endif
+
+
 
 ifdef UART_LOG
+
 p_device_hardware_init:
 	fetch 1,core_uart_ctrl
 	set0 BIT_UART_CONTROL_ENABLE,pdata
@@ -3155,7 +3174,9 @@
 print_txpower_f5:
 	setarg 0xf5
 	store 2,mem_txpower_print
-	rtn	
+	rtn
+
 endif
 
 
+
Index: program_patch/24g_spec_code/patch_24g.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g.prog	(working copy)
@@ -0,0 +1,526 @@
+
+
+p_g24_transmit:
+	fetch 1,mem_24g_tx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call g24_prep
+	call g24_set_freq_tx
+	set1 TXGFSK,radio_ctrl
+	enable encode_fec0
+	enable is_tx
+	disable is_rx
+	call rf_debug_tx_on_line
+	disable lr_s2en
+	bmark1 mark_ble_lr,g24_transmit_lr
+	bmark1 mark_ble_2M,p_g24_transmit_2M
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,pdata
+	inject mod,40
+p_g24_transmit_packet:
+	bmark1 mark_ble_lr,g24_transmit_nolr
+	branch g24_transmit_nolr
+
+p_g24_transmit_2M:
+	fetch 1,mem_system_clk
+	rshift pdata,loopcnt
+p_g24_transmit_2M_dealy:
+	nop 2
+	loop p_g24_transmit_2M_dealy
+	rshift16 access,pdata
+	rshift8 pdata,pdata
+	rshift4 pdata,temp
+	copy temp,pdata
+	inject mod,8
+	copy temp,pdata
+	inject mod,40
+	branch p_g24_transmit_packet
+
+
+p_g24_receive_packet:
+	fetch 1,mem_24g_rx_phy
+	call le_enable_phy_by_pdata
+	fetch 4,mem_24g_addr
+	iforce access
+	call calc_mod_value_scale_le
+	call set_sync_on
+	fetcht 1,mem_24g_ch
+	call le_rf_rx_enable
+	fetch 1,core_rf_rx_agc_ctrl
+	set1 3,pdata
+	store 1,core_rf_rx_agc_ctrl
+p_g24_receive_rxon:
+	call g24_prep
+	bmark0 mark_ble_lr,p_g24_receive_nolr
+	pulse dewhiten_code_calc
+	nop 30
+	call g24_prep
+p_g24_receive_nolr:
+	disable user3
+	enable decode_fec0
+	enable is_rx
+	disable is_tx
+	enable swfine
+	fetch 2,mem_24g_rx_window
+	iforce stop_watch
+	correlate null,timeout
+	nbranch g24_sync_timeout,sync
+	call rf_debug_rx_sync_line
+	bmark1 mark_ble_lr,g24_receive_skip_fec1
+	branch g24_receive_skip_fec1
+
+p_g24_retransmit:
+	fetch 1,mem_mouse_need_soft_reset
+	nrtn blank
+	call p_mouse_select_device_by_pb_button
+	fetch 1,mem_24g_abort_pac
+	nrtn blank
+	fetch 2,mem_24g_txfail_cnt
+	increase 1,pdata
+	store 2,mem_24g_txfail_cnt	
+	fetch 1,mem_24g_txfail_cnt+1
+	bbit1 4,g24_tx_attempt_fail
+	call p_g24_transmit_hop_process
+	fetch 2,mem_retransmit
+	increase 1,pdata
+	store 2,mem_retransmit
+	branch p_g24_transmit_loop
+
+
+p_g24_transmit_receive_ack:
+	disable user3
+	call g24_transmit
+	fetch 1,mem_24g_no_ack
+	beq no_ack_24g,g24_end_of_packet
+	force 0,radio_ctrl
+	fetch 4,mem_24g_addr
+	iforce access
+	call calc_mod_value_scale_le	
+	fetcht 1,mem_last_freq
+	call set_freq_rx
+	call rf_rx_enable
+	call p_g24_receive_rxon
+	call p_g24_end_of_packet,user3
+	rtn
+
+p_g24_end_of_packet:
+	jam 0,core_rf_ldo_en0
+	jam 0,core_rf_ldo_en1
+	branch gain_control
+
+
+p_g24_transmit_hop_process:
+	fetcht 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count			// 125Hz=11  250Hz=5
+	isub temp,null
+	nbranch g24_tx_fast_hop,positive		// >= (6+6)or(3+3) hop fast    fail packet count >= 2
+	increase 1,temp
+	storet 1,mem_24g_retry
+	fetch 1,mem_24g_fast_hop_count
+	beq 15,p_g24_transmit_hop_process_4ms
+	fetch 1,mem_24g_retry
+	beq 20,g24_hop_ch_disable
+	beq 30,g24_hop_ch_disable
+	rtn	
+p_g24_transmit_hop_process_4ms:
+	fetch 1,mem_24g_retry
+	beq 10,g24_hop_ch_disable
+	beq 15,g24_hop_ch_disable
+	rtn
+
+
+
+p_g24_dispatch:
+	rtnmark1 mark_adc_enable
+	bmark1 mark_24g_rxmode,g24_receive_dispatch
+p_g24_transmit_dispatch:
+	rtnmark0 mark_24g
+	fetch 1,mem_24g_conn_sm
+ifdef G24_OTA
+	bbit1 STATE_24G_OTA,p_g24_ota_dispatch
+endif
+	bbit1 STATE_24G_PAIR,g24_pair_dispatch
+	bbit1 STATE_24G_RECONN,g24_reconn_dispatch
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,p_g24_transmit_by_interrupt
+	branch g24_transmit_no_interrupt
+
+p_g24_transmit_by_interrupt:
+	call g24_timer_check
+	nbranch p_g24_transmit_dispatch,user
+	call g24_interval_calibrate
+	fetch 2,mem_24g_transmit_by_interrupt_exit_count
+	increase 1,pdata
+	store 2,mem_24g_transmit_by_interrupt_exit_count
+	branch g24_transmit_no_interrupt
+
+
+p_g24_transmit_no_interrupt:
+	call g24_txdata_prep
+	nbranch p_g24_nodata_transmit,user
+p_g24_transmit_start:
+	call p_g24_transmit_process
+ifdef PW_CTRL
+	call power_ctrl_start
+endif
+	fetch 1,mem_sensor_shutdown_flag
+	nbranch p_g24_short_sleep,blank
+	fetch 8,mem_24g_long_sleep_set
+	store 8,mem_24g_enter_hibernate
+	fetch 2,mem_24g_long_sleep_param_update_timer_init
+	store 2,mem_24g_long_sleep_param_update_timer
+p_g24_short_sleep:
+	call g24_lpm_wait
+	nrtn user
+	fetch 1,mem_sleep_miss
+	jam 0,mem_sleep_miss
+	sub pdata,0,null
+	nbranch p_g24_short_sleep_last_miss,zero
+	fetcht 2,mem_retransmit
+	sub temp,0,null
+	branch p_g24_short_sleep_default,zero
+
+	fetch 4,mem_tx_time_last_delt
+	branch p_g24_short_sleep_default,blank
+p_g24_short_sleep_notify:
+	fetcht 4,mem_24g_tsniff
+	isub temp,temp
+	storet 4,mem_sleep_miss_temp
+	nbranch p_g24_short_sleep_long,positive
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,pdata
+	nbranch p_g24_short_sleep_2,positive
+	arg 0x600,temp
+	isub temp,null
+	nbranch p_g24_short_sleep_2,positive
+p_g24_short_sleep2:
+	store 4,mem_sleep_time_temp
+	call p_g24_miss_temp_clear
+	fetch 4,mem_sleep_time_temp
+	call clk2lpo
+	storet 4,mem_sleep_counter
+	branch p_lpm_short_sleep
+
+p_g24_short_sleep_default:
+	call p_g24_miss_temp_clear
+	fetch 3,mem_24g_short_sleep_set
+	branch p_g24_short_sleep2
+
+p_g24_short_sleep_long:
+	sub temp,0,temp
+	fetch 3,mem_24g_short_sleep_set
+	iadd temp,pdata
+	branch p_g24_short_sleep2
+
+p_g24_miss_temp_clear:
+	setarg 0
+	store 4,mem_sleep_miss_temp
+	rtn
+	
+p_g24_short_sleep_last_miss:
+	fetch 4,mem_tx_time_last_delt
+	fetcht 4,mem_sleep_miss_temp
+	iadd temp,pdata
+	branch p_g24_short_sleep_notify
+	
+p_g24_short_sleep_2:
+	jam 1,mem_sleep_miss
+	rtn
+
+p_g24_transmit_process:
+	jam 0,mem_24g_retry
+	setarg 0
+	store 2,mem_retransmit
+p_g24_transmit_loop:
+	call p_g24_transmit_receive_ack
+	fetch 1,mem_24g_no_ack	//tx noack
+	beq no_ack_24g,g24_transmit_no_ack
+	nbranch p_g24_retransmit,sync
+	nbranch p_g24_retransmit,user3
+	call p_send_time_check
+	call g24_ackpayload_parse		
+ifdef G24_OTA
+	call p_g24_mouse_parse_rx
+endif
+	call p_mouse_wakeup_24g
+	branch g24_transmit_no_ack
+
+p_mouse_wakeup_24g:
+	fetch 1,mem_sensor_shutdown_flag
+	ncall p_mouse_wakeup_24g_from_long_sleep,blank
+	jam 0,mem_sensor_shutdown_flag
+	rtn	
+	
+p_mouse_wakeup_24g_from_long_sleep:
+	call mouse_init_sensor_wakeup
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+p_mouse_wheel_set_wakeup:
+	fetch 1,mem_whee_a_data_gpio
+	arg gpcfg_pullup,temp
+ 	call gpio_config_function_int
+	fetch 1,mem_whee_b_data_gpio
+	arg gpcfg_pullup,temp
+ 	branch gpio_config_function_int
+
+p_g24_nodata_transmit:
+	fetch 1,mem_24g_abort_pac
+	call p_g24_send_abort_packet,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	rtneq G24_TX_TIMER_INT_ENABLE
+	call g24_search_receiver
+p_g24_long_sleep:
+	call g24_lpm_wait
+	nrtn user
+	call g24_setgpio_lpm_before
+	jam 0,mem_sleep_miss
+	call p_send_time_long_wake
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_setgpio_hibernate,blank
+	fetch 4,mem_24g_enter_hibernate
+	branch g24_long_sleep+3
+
+p_g24_send_abort_packet:
+	jam TYPE_MS,mem_24g_data_type
+	jam 1,mem_24g_abort_pac
+	call g24_transmit_rf_ctrl_clear
+	store 1,mem_24g_txbuf
+	setarg 0
+	store 7,mem_24g_txbuf+1
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+8
+	jam 12,mem_24g_datalen
+	fetch 1,mem_24g_data_type
+	set1 bit_abort,pdata
+	store 1,mem_24g_data_type
+	call g24_transmit_prep
+	branch p_g24_transmit_start
+
+
+p_g24_lpm_wait:			// ice connect led
+	fetch 1,mem_24g_device_led_status
+	ncall g24_transmit_by_interrupt_enable,blank
+	enable user
+	call lpo_calibration
+	fetch 3,mem_clks_per_lpo
+	branch disable_user,blank
+	fetch 1,mem_lpm_mode
+	branch disable_user,blank
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,disable_user
+	enable user
+	rtn
+
+
+p_send_time_check:
+	fetch 1,mem_24g_transmit_by_interrupt
+	beq G24_TX_TIMER_INT_ENABLE,p_send_timer_first
+	fetch 1,mem_tx_count
+	branch p_send_timer_first,blank
+	copy clkn,pdata
+	fetcht 6,mem_tx_time_last
+	store 6,mem_tx_time_last
+	call clk_diff_rt
+	store 4,mem_tx_time_last_delt
+
+	fetch 1,mem_sleep_miss
+	nrtn blank
+	fetch 2,mem_retransmit
+	nrtn blank
+	fetch 4,mem_tx_time_last_delt
+	fetcht 5,mem_tx_time_sum
+	iadd temp,pdata
+	store 5,mem_tx_time_sum	
+	fetcht 1,mem_tx_count
+	fetch 1,mem_tx_time_sum_count
+	isub temp,null
+	branch p_send_time_check_average,zero
+	increase 1,temp
+	storet 1,mem_tx_count
+	rtn
+
+p_send_time_check_average:
+	jam 1,mem_tx_count
+	arg 0,temp
+	fetch 5,mem_tx_time_sum
+	storet 5,mem_tx_time_sum
+	fetcht 1,mem_tx_time_sum_count
+	idiv temp
+	call wait_div_end
+  	quotient rega
+
+	fetch 4,mem_24g_tsniff
+	fetcht 1,mem_tx_time_offset
+	isub temp,temp
+	increase -40,temp
+
+	copy rega,pdata
+	isub temp,pdata
+	branch p_send_time_check_average_late,positive
+	sub pdata,0,pdata
+	
+	rshift2 pdata,pdata
+	fetcht 3,mem_24g_short_sleep_set
+	iadd temp,temp
+	fetch 3,mem_24g_short_sleep_set_init
+	arg 0x1800,rega
+	iadd rega,pdata
+	isub temp,null
+	nbranch p_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+
+p_send_time_check_average_late:
+	rshift2 pdata,temp
+	fetch 3,mem_24g_short_sleep_set
+	isub temp,temp
+	fetch 3,mem_24g_short_sleep_set_init
+	arg 0x1800,rega
+	isub rega,pdata
+	isub temp,null
+	branch p_send_time_check_average_min,positive
+	storet 3,mem_24g_short_sleep_set
+	rtn
+p_send_time_check_average_min:
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+
+p_send_timer_first:
+	jam 1,mem_tx_count
+	copy clkn,pdata
+	store 6,mem_tx_time_last
+	rtn
+	
+
+p_send_time_long_wake:
+	setarg 0
+	store 1,mem_tx_count
+	store 5,mem_tx_time_sum
+	rtn
+
+
+
+
+
+
+
+p_g24_pair_dispatch:
+	jam DEFAULT_24G_DEVICE,mem_24g_reconn_type
+	fetch 2,mem_24g_pair_count
+	increase 1,pdata
+	store 2,mem_24g_pair_count
+	fetch 1,mem_24g_pair_count
+	and pdata,0xff,pdata
+	nrtn blank
+	fetch 1,mem_24g_pair_sm
+	beq STATE_24G_PAIRING_SUCCESS,g24_pair_exit
+	beq STATE_24G_PAIRING_1,p_g24_pair_sm_1
+	beq STATE_24G_PAIRING_2,p_g24_pair_sm_2
+	beq STATE_24G_PAIRING_3,p_g24_pair_sm_3
+	beq STATE_24G_PAIRING_4,p_g24_pair_sm_4
+	rtn
+
+p_g24_pair_sm_1:
+	jam DATATYPE_ATTEMP,mem_24g_txbuf
+	branch p_g24_pair_sm_prep
+
+p_g24_pair_sm_2:
+	fetch 1,mem_24g_pair_switch
+	branch p_g24_pair_sm_2_skip,blank
+	fetch 4,mem_24g_device_addr
+	call g24_update_addr_and_synccrc8	//use transmitter addr
+p_g24_pair_sm_2_skip:
+	jam DATATYPE_BIND,mem_24g_txbuf	
+	branch p_g24_pair_sm_prep
+
+p_g24_pair_sm_3:
+	jam DATATYPE_CONFIG,mem_24g_txbuf	
+	fetch 1,mem_24g_pair_switch
+	branch p_g24_pair_sm_prep,blank
+	fetch 4,mem_24g_receiver_addr		//prep receiver addr
+	store 4,mem_24g_txbuf+2
+	branch p_g24_pair_sm_common
+
+p_g24_pair_sm_4:
+	jam DATATYPE_OK,mem_24g_txbuf
+p_g24_pair_sm_prep:
+	fetch 4,mem_24g_device_addr
+	store 4,mem_24g_txbuf+2
+p_g24_pair_sm_common:
+	fetch 1,mem_24g_data_type
+	and_into bits_data,pdata
+	store 1,mem_24g_txbuf+1
+	jam 0,mem_24g_txbuf+6
+	jam 7,mem_24g_datalen
+	call g24_transmit_prep
+	call p_g24_transmit_receive_ack
+	branch g24_pair_sm_common+7
+
+p_g24_reconn_dispatch:
+	fetch 2,mem_24g_reconn_count
+	arg 0x01f8,temp
+	iand temp,pdata
+	branch p_g24_reconn_dispatch_next,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	rtn
+p_g24_reconn_dispatch_next:
+	call g24_reconn_data_prep
+	call p_g24_transmit_receive_ack
+	nbranch p_g24_reconn_device_fail,sync
+	nbranch p_g24_reconn_device_fail,user3
+	call g24_ackpayload_parse
+	fetch 4,mem_24g_pair_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	branch g24_pair_start,zero
+	
+	fetch 4,mem_24g_device_addr
+	fetcht 4,mem_24g_addr
+	isub temp,null
+	call p_g24_store_receiver_addr,zero
+	fetch 1,mem_24g_conn_sm
+	set0 STATE_24G_RECONN,pdata
+	store 1,mem_24g_conn_sm
+	setarg 0
+	store 2,mem_24g_pair_timeout
+	store 2,mem_24g_reconn_count
+	store 2,mem_24g_reconn_timeout	
+	branch g24_reconn_attempt_success
+	
+p_g24_store_receiver_addr:
+	fetch 4,mem_24g_rxpayload+2
+	rtn blank
+	store 4,mem_24g_receiver_addr	
+	branch g24_ch_syncword_crc8_init
+	
+p_g24_reconn_device_fail:
+	fetch 1,mem_24g_fast_conn_enable
+	branch g24_ch,blank
+	fetch 2,mem_24g_reconn_count
+	increase 1,pdata
+	store 2,mem_24g_reconn_count
+	fetch 1,mem_24g_reconn_count+1
+	isolate1 1,pdata	// each 8 times switch
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_RECEIVER,g24_reconn_fast_conn_and_receiver
+	beq FAST_CONN_AND_3_0_ADDR,g24_reconn_fast_conn_and_3_0
+	beq RECEIVER_AND_3_0_ADDR,g24_reconn_receiver_and_3_0
+	beq PAIR_AND_3_0_ADDR,p_g24_reconn_pair_and_3_0
+	branch g24_reconn_receiver_addr
+
+p_g24_reconn_pair_and_3_0:
+	branch g24_reconn_device_3_0_addr,true
+	branch g24_pair_init_param
+
+
+
+
+
+
+
+
Index: program_patch/24g_spec_code/patch_24g_event_deal.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g_event_deal.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g_event_deal.prog	(working copy)
@@ -0,0 +1,98 @@
+
+p_mouse_24g_pairing_complete:
+	call mouse_no_data_timer_init
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_disable_function_flag
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_pairing_complete_enable_poweron_timer
+	call p_mouse_multi_led_on_enable
+	branch mouse_24g_pairing_complete_skip_poweron_timer
+
+p_mouse_24g_attempt_success:
+	fetch 4,mem_24g_addr
+	store 4,mem_24g_receiver_addr
+	store 4,mem_mouse_24g_addr		// if need store 24g address to eeprom/flash,need get mem_24g_addr
+	call g24_ch_syncword_crc8_init
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,p_mouse_24g_attempt_success_next
+	call p_mouse_multi_led_on_enable
+	branch p_mouse_24g_attempt_success_next+1
+
+p_mouse_24g_attempt_success_next:
+	call mouse_device_poweron_timer_init
+	call mouse_no_data_timer_init
+	branch mouse_24g_attempt_success
+
+
+p_mouse_24g_attempt_fail:
+	fetch 1,mem_24g_attempt_fail_flag
+	nbranch p_mouse_24g_hibernate_set,blank
+	fetch 1,mem_24g_reconn_type
+	beq FAST_CONN_AND_3_0_ADDR,p_mouse_24g_fast_conn_attempt_fail
+	beq PAIR_AND_3_0_ADDR,p_mouse_24g_auto_pair_attempt_fail
+	beq RECEIVER_AND_3_0_ADDR,p_mouse_reconn_dongle_attempt_fail
+	branch mouse_24g_attempt_fail_enter_hibernate
+
+p_mouse_24g_fast_conn_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_start_auto_pair
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_start_auto_pair
+	bbit0 MOUSE_ENABLE_24G_AUTO_PAIR_NERVER_BEEN_PAIRED,mouse_24g_reconn_dongle_start
+	fetch 4,mem_mouse_24g_addr		// auto pair first time
+	fetcht 4,mem_mouse_compare_addr_ff
+	isub temp,null
+	branch p_mouse_24g_start_pair_mode,zero
+	branch mouse_24g_reconn_dongle_start
+
+p_mouse_24g_start_auto_pair:
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_start_auto_pair
+	call p_mouse_multi_led_blink_enable
+	branch mouse_24g_start_auto_pair+1
+	
+p_mouse_24g_start_pair_mode:
+	jam 0,mem_24g_reconn_type
+	arg MOUSE_24G_PAIRING_FLAG,queue
+	call mouse_enable_function_flag
+	setarg 0
+	store 2,mem_24g_reconn_timeout	
+	call mouse_stop_discovery
+	call mouse_low_voltage_led_blink_disable
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 0,mouse_24g_start_pair_mode_enable_blink_timer
+	call p_mouse_multi_led_blink_enable
+	branch mouse_24g_start_pair_mode_skip_blink_timer
+
+p_mouse_24g_auto_pair_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag 
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	fetch 1,mem_device_number
+	beq 1,p_mouse_24g_attempt_fail_enter_hibernate		//24g first mode and only 2.4g device
+	branch mouse_24g_first_bluetooth_reconnect
+
+p_mouse_reconn_dongle_attempt_fail:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_EEPROM,p_mouse_24g_attempt_fail_enter_hibernate
+	bbit1 MOUSE_ENABLE_FLASH,p_mouse_24g_attempt_fail_enter_hibernate
+	branch mouse_24g_start_auto_pair+1
+
+p_mouse_24g_attempt_fail_enter_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL,mouse_24g_attempt_fail_enter_hibernate
+p_mouse_24g_hibernate_set:
+	jam 0,mem_24g_attempt_fail_flag
+	call g24_transmit_next_packet
+	setarg -1
+	store 4,mem_24g_enter_hibernate
+	setarg 0
+	store 7,mem_mouse_key
+	jam 1,mem_sensor_shutdown_flag
+	call p_mouse_sensor_powerdown
+	branch p_g24_long_sleep
+
+
+
+
+
+	
Index: program_patch/24g_spec_code/patch_24g_ota.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g_ota.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/24g_spec_code/patch_24g_ota.prog	(working copy)
@@ -0,0 +1,517 @@
+
+ifdef G24_OTA
+
+p_g24_load_ota_config_poweron:
+	call iicd_load_gpio_init
+	call p_g24_check_ota_data
+	branch p_g24_load_ota_config,user
+	rtn
+
+p_g24_load_ota_config:	
+	arg iicd_read_eep,regc
+	fetch 2,mem_g24_ota_config_addr
+	increase 3,pdata
+	byteswap pdata,pdata
+	store 2,mem_addr_mi
+	branch load_storage_loop
+
+p_mouse_g24_ota_reset_timer:
+	arg mem_g24_ota_reset_timer,regc
+	arg soft_reset_chip,regb
+	branch timer_single_step
+
+
+p_g24_parse_rx_ota_sm:
+	fetch 1,mem_g24_ota_mode
+	rtn blank
+	fetch 1,mem_g24_ota_sm
+	beq G24_OTA_SM_TX_VERSION,p_g24_ota_sm_tx_version
+	beq G24_OTA_SM_TX_INFO,p_g24_ota_sm_tx_info
+	beq G24_OTA_SM_TX_CONFIG,p_g24_ota_sm_tx_config
+	beq G24_OTA_SM_TX_SET_CONFIG_END,p_g24_ota_sm_tx_config_end
+	beq G24_OTA_SM_TX_DATA,p_g24_ota_sm_tx_data
+	beq G24_OTA_SM_TX_RESET,p_g24_ota_sm_tx_reset
+	rtn
+
+p_g24_ota_sm_tx_reset:
+	jam G24_OTA_SM_TX_RESET_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_version:
+	jam G24_OTA_SM_TX_VERSION_OK,mem_g24_ota_sm
+	rtn
+	
+p_g24_ota_sm_tx_info:
+	jam G24_OTA_SM_TX_INFO_OK,mem_g24_ota_sm
+	rtn	
+
+p_g24_ota_sm_tx_config:
+	jam G24_OTA_SM_TX_CONFIG_OK,mem_g24_ota_sm
+	rtn	
+	
+p_g24_ota_sm_tx_config_end:
+	jam G24_OTA_SM_TX_SET_CONFIG_END_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_ota_sm_tx_data:
+	jam G24_OTA_SM_TX_DATA_OK,mem_g24_ota_sm
+	rtn		
+
+p_g24_mouse_parse_rx:
+	fetch 1,mem_24g_rxdata_length
+	branch  p_g24_parse_rx_ota_sm, blank
+	copy pdata,regb //len
+	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 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
+	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 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
+	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 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
+	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 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
+	
+endif
+
Index: program_patch/ble_spec_code/patch_ble.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble.prog	(working copy)
@@ -0,0 +1,110 @@
+
+ifdef BLE
+
+p_mouse_le_battery_updata_timer:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit1 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL
+	branch mouse_le_battery_updata_timer
+
+
+p_mouse_start_discovery:
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BLE_ADV,pdata
+	call mouse_stop_le_adv,true		//reconnect adv
+	fetch 2,mem_ui_state_map
+	isolate1 UI_STATE_BT_RECONNECT,pdata
+	call mouse_cancel_reconnect,true
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	call mouse_bluetooth_fast_conn_disable
+	fetch 2,mem_ui_state_map
+	bbit1 UI_STATE_BLE_ADV,p_mouse_start_discovery_norandom
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_BLE_RANDOM_ADDRE,p_mouse_start_discovery_norandom
+	fetcht 2,mem_random_addr_increase_count
+	increase 1,temp
+	storet 2,mem_random_addr_increase_count
+	storet 2,mem_le_lap+1
+	random pdata					//random ble addr
+	store 1,mem_le_lap
+p_mouse_start_discovery_norandom:
+	fetch 3,mem_mouse_le_lap_temp
+	store 3,mem_le_lap+3
+	call app_lpm_mult_disable
+	fetch 2,mem_discovery_timeout
+	store 2,mem_mouse_discovery_timer
+	jam 6,mem_connection_options
+	setarg 0
+	store 2,mem_mouse_no_data_timer
+	store 1,mem_mouse_direct_timer
+	store 1,mem_mouse_bluetooth_reconnect_timeout
+	store 1,mem_mouse_device_poweron_timer_count
+	store 1,mem_mouse_clear_sensor_data_flag
+	arg MOUSE_STORE_EEPROM_FLAG,queue
+	call mouse_enable_function_flag
+	call mouse_bt_discovery_button_down_disable
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_4_MOUSE,pdata
+	call mouse_check_51cmd_adv,true
+	fetch 1,mem_mouse_bluetooth_type
+	isolate1 MODE_3_MOUSE,pdata
+	call check_51cmd_start_discovery,true
+	call mouse_low_voltage_led_blink_disable
+	fetch 1,mem_mouse_1io2led_led_enable
+	nbranch p_mouse_multi_led_blink_enable,blank
+	branch mouse_discover_setting_led_gpio
+
+
+
+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
+
+	
+endif
+
Index: program_patch/ble_spec_code/patch_ble_event_deal.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_event_deal.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_event_deal.prog	(working copy)
@@ -0,0 +1,48 @@
+
+ifdef BLE
+
+p_mouse_le_bb_event_connected:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_on_enable,blank
+	branch mouse_le_bb_event_connected
+
+p_mouse_le_bb_disconnected:
+	setarg 0
+	store 2,mem_le_battery_level_updata_timer
+	jam 0,mem_mouse_le_bb_connected_flag
+	setarg LE_INTERVAL_7_5MS
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_BT_125Hz,mouse_le_bb_disconnected_next+2
+	setarg LE_INTERVAL_8_75MS
+	branch mouse_le_bb_disconnected_next
+
+p_mouse_le_ll_start_encryt:
+	fetch 1,mem_mouse_le_reconnect_flag
+	beq 1,p_mouse_le_ll_reconn_start_encryt
+	jam 20,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+p_mouse_le_ll_reconn_start_encryt:
+	call mouse_updata_le_param
+	jam 5,mem_le_start_encrypt_timer
+	branch mouse_le_ll_enable_start_enc_flag
+
+p_mouse_le_parse_conn_param_accepted:
+	fetch 1,mem_le_new_conninterval
+	sub pdata,LE_INTERVAL_15MS,null
+	nbranch mouse_le_conn_param_lpm_disable,positive
+	store 2,mem_le_interval_min
+	store 2,mem_le_interval_min+2
+	fetch 1,mem_le_new_connslavelatency
+	branch mouse_le_lpm_mult_reinit,blank
+	fetcht 1,mem_lpm_mult_init
+	isub temp,null
+	branch mouse_le_lpm_mult_reinit,positive
+	fetch 1,mem_le_new_connslavelatency
+	store 1,mem_lpm_mult_init						// mouse_le_lpm_mult_reinit function will reinit mem_lpm_mult
+	branch mouse_le_conn_param_lpm_enable
+
+endif
+
+
Index: program_patch/ble_spec_code/patch_ble_l2cap_att.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_att.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_att.prog	(working copy)
@@ -0,0 +1,59 @@
+
+ifdef BLE
+
+p_le_parse_l2cap:
+	ifetch 2,contr
+	beq LE_L2CAP_CID_ATT,p_le_parse_att
+	branch le_parse_l2cap+10
+		
+p_le_parse_att:
+	ifetch 3,contr
+	store 3,mem_le_att_opcode
+	beq ATTOP_READ_REQUEST,p_le_parse_att_read_request
+	beq ATTOP_WRITE_REQUEST,p_le_parse_att_write_request	
+	branch le_parse_att+2
+	
+p_le_parse_att_read_request:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_LE_BATTERY_SERVICE_CANCEL,le_parse_att_read_request
+	call le_check_encrypt_state
+	fetcht 2,mem_le_att_handle
+	fetch 1,mem_le_configuration
+	bbit1 BIT_BLE_READ_AUTH,p_le_send_att_read_response_check_auth
+//input:temp is handle
+p_le_send_att_read_response:
+	fetch 2,mem_le_att_handle
+	beq 0x30,le_send_att_error_response_notfound
+	fetcht 2,mem_le_att_handle
+	branch le_send_att_read_response
+
+p_le_send_att_read_response_check_auth:
+	fetch 2,mem_le_pairing_handle
+	isub temp,null
+	nbranch p_le_send_att_read_response,zero
+	nbranch p_le_send_att_read_response,user
+	branch le_send_att_read_response_error_insufficient_auth
+
+p_le_parse_att_write_request:		// mac os 10.9.5 reconnect can't move
+	copy contr,rega
+	fetch 2,mem_le_l2cap_size
+	add pdata,-3,regb
+	call le_writeatt_cb
+	fetch 1,mem_mouse_bluetooth_fast_conn_flag
+	beq 0xff,le_send_att_write_response_check_auth	
+	fetch 1,mem_mouse_le_reconnect_flag
+	branch le_send_att_write_response_check_auth,blank
+	fetch 1,mem_le_connect_status_flag
+	bbit1 LL_START_ENC_FLAG,le_send_att_write_response_check_auth
+	setarg 0x001a		
+	fetcht 2,mem_le_att_handle
+	isub temp,null
+	nbranch le_send_att_write_response_check_auth,zero
+	branch le_send_att_read_response_error_insufficient_auth
+
+endif
+
+
+
+
+	
Index: /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_signalling.prog	(added)
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_signalling.prog	(revision 0)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_signalling.prog	(revision 0)
Index: /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_smp.prog	(added)
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_smp.prog	(revision 0)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_l2cap_smp.prog	(revision 0)
Index: /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_ll.prog	(added)
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_ll.prog	(revision 0)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/ble_spec_code/patch_ble_ll.prog	(revision 0)
Index: program_patch/bt_spec_code/patch_bt.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt.prog	(working copy)
@@ -0,0 +1,5 @@
+ifdef CLASSIC
+
+
+endif
+
Index: program_patch/bt_spec_code/patch_bt_event_deal.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt_event_deal.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt_event_deal.prog	(working copy)
@@ -0,0 +1,11 @@
+
+ifdef CLASSIC
+
+p_mouse_bb_event_connected:
+	call mouse_no_data_timer_init
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_on_enable,blank
+	branch mouse_bb_event_connected
+
+endif
+
Index: program_patch/bt_spec_code/patch_bt_hid.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt_hid.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/bt_spec_code/patch_bt_hid.prog	(working copy)
@@ -0,0 +1,30 @@
+
+ifdef CLASSIC
+
+p_hid_rx_process:
+	fetch 2,mem_l2cap_payload_ptr
+	copy pdata,contr
+	ifetch 1,contr
+	store 1,mem_l2cap_rcv_hidtype
+	and pdata,0x0f,temp
+	rshift4 pdata,pdata //hidtype
+	beq hid_type_set_idle,p_hid_rx_process_handshake
+	branch hid_rx_process+7
+
+p_hid_rx_process_handshake:
+	arg 1,rega//payload length
+	call hid_malloc_tx_buff
+	fetch 2,mem_hid_ctrl_remote_cid
+	istore 2,contw
+	setarg 0
+	istore 1,contw
+	jam 1,mem_ui_data_txbuff_length
+	fetch 1,mem_hid_control_state
+	set1 l2cap_channel_hid_handshake_done,pdata
+	store 1,mem_hid_control_state
+	jam BT_EVT_HID_HANDSHAKE,mem_fifo_temp
+	branch ui_ipc_send_event
+
+endif
+
+
Index: program_patch/debug_spec_code/patch_debug.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/debug_spec_code/patch_debug.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/debug_spec_code/patch_debug.prog	(working copy)
@@ -0,0 +1,317 @@
+
+ifdef UART_LOG
+
+p_device_hardware_init:
+	fetch 1,core_uart_ctrl
+	set0 BIT_UART_CONTROL_ENABLE,pdata
+	store 1,core_uart_ctrl
+	fetch 8,mem_device_uart_rx_buffer
+	call uarta_init_dma_mem
+	fetch uart_baud_len,mem_device_uart_baud_rate
+	call uarta_init_baud_rate
+	call uart_clock_select_main_freq_crystal
+	fetch 1,mem_device_uart_tx_gpio
+	arg gpcfg_uart_txd,temp
+	call gpio_config_function_int
+	fetch 1,mem_device_uart_rx_gpio
+	arg gpcfg_uart_rxd|gpcfg_pullup,temp
+	call gpio_config_function_int
+	arg FUN_UART_CONTROL_ENABLE|FUN_UART_CONTROL_SETTING_RATE_BAUD,temp
+	storet 1,core_uart_ctrl
+	rtn
+	
+
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii:
+	rshift4 pdata,rega  //high 4bit in rega
+	and_into 0x0f,pdata
+	call hex2ascii_half_byte
+	copy pdata,regb
+	copy rega,pdata
+	call hex2ascii_half_byte
+	lshift8 regb,regb
+	iadd regb,pdata
+//	lshift16 pdata,pdata
+//	arg 0x7830,regb   //0x
+//	iadd regb,pdata
+	rtn
+
+//input: 1 byte hex @pdata  
+//output: 4 byte  '0','x', ASCII,ASCII, @pdata
+hex2ascii_half_byte:
+	arg 0xa,temp
+	isub temp,temp
+	nbranch hex2ascii_half_byte_numberic,positive
+	setarg 0x41  // A
+	iadd temp,pdata
+	rtn
+hex2ascii_half_byte_numberic:
+	arg 0x30,temp
+	iadd temp,pdata
+	rtn
+
+//input: loopcnt--length,regc--data ptr	
+log_bytes:
+	copy loopcnt,pdata
+	branch log_len0,blank
+log_bytes_loop:
+	ifetch 1,regc
+	increase 1,regc
+	call log_byte
+	call log_space
+	loop log_bytes_loop
+uart_wait:
+	fetch 1,core_uart_status
+	bbit1 uart_status_tx_busy,uart_wait
+//	nop 12000
+	rtn
+
+log_len0:
+	call uarta_prepare_tx
+	setarg 0x656c
+	istore 2,contwu
+	setarg 0x306e
+	istore 2,contwu
+	call uarta_send
+	branch log_end
+
+//input 1byte @pdata
+log_byte:
+	call uarta_prepare_tx
+	call hex2ascii
+//	istore 4,contu	//0x
+	istore 2,contwu
+	branch uarta_send
+
+log_space:
+	call uarta_prepare_tx
+	setarg 0x20
+	istore 1,contwu
+	branch uarta_send
+
+log_end:
+	call uarta_prepare_tx
+	setarg 0x0a0d
+	istore 2,contwu
+	branch uarta_send
+
+log_colon:
+	call uarta_prepare_tx
+	setarg 0x3a
+	istore 1,contwu
+	branch uarta_send
+	
+//output:"sync_to"
+print_sync_timeout:
+	call uarta_prepare_tx
+	setarg 0x7973
+	istore 2,contu
+	setarg 0x636e
+	istore 2,contu
+	setarg 0x6f745f
+	istore 3,contu
+	call uarta_send
+	branch log_end
+
+//output:"hec_error"
+print_hec_error:
+	call uarta_prepare_tx
+	setarg 0x636568
+	istore 3,contu
+print_error:
+	setarg 0x72655f
+	istore 3,contu
+	setarg 0x726f72
+	istore 3,contu
+	call uarta_send
+//	call log_space
+	branch log_end
+
+//output:"type_error"
+print_type_error:
+	call uarta_prepare_tx
+	setarg 0x707974
+	istore 3,contu
+	setarg 0x65
+	istore 1,contu
+	branch print_error
+
+//output:"rxlen_error"
+print_rxlen_error:
+	call uarta_prepare_tx
+	setarg 0x6c7872
+	istore 3,contu
+	setarg 0x6e65
+	istore 2,contu
+	branch print_error
+
+//output:"crc_error"
+print_crc_error:
+	call uarta_prepare_tx
+	setarg 0x637263
+	istore 3,contu
+	branch print_error
+
+//output:"rs_ms"
+print_rssi_mouse:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x736d5f
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_mouse
+	call log_byte
+	branch log_space
+
+//output:"rs_dg"
+print_rssi_dongle:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x67645f
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_hex_received
+	call bcd	
+	call log_byte
+	branch log_space
+
+//output:"agc"
+print_agc:
+	call uarta_prepare_tx
+	setarg 0x636761
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,0x89a3	
+	call log_byte
+	branch log_space
+
+//output:"rs_avg-d"
+print_rssi_avg:
+	call uarta_prepare_tx
+	setarg 0x7372		
+	istore 2,contwu
+	setarg 0x76615f
+	istore 3,contwu
+	setarg 0x642d67
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_rssi_avg_received
+	call log_byte
+	branch log_space
+
+//output:"pac"
+print_pac_succ_cnt:
+	call uarta_prepare_tx
+	setarg 0x636170		
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	call uarta_prepare_tx
+	fetch 1,mem_power_ctrl_pac_succ_cnt
+	call log_byte
+	branch log_end
+
+//output:"ms_pac"
+print_ms_pac:
+	call uarta_prepare_tx
+	setarg 0x5f736d
+	istore 2,contwu
+	setarg 0x636170
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_24g_paccnt
+	call log_byte
+	branch log_space
+
+//output:"ch"
+print_ch:
+	call uarta_prepare_tx
+	setarg 0x6863		
+	istore 2,contwu
+	call uarta_send
+	call log_colon
+	fetch 1,mem_24g_ch
+	call log_byte
+	branch log_space
+
+//output:"ct"
+print_clkn_bt:
+	call uarta_prepare_tx
+	setarg 0x7463		
+	istore 2,contwu
+	call uarta_send
+	call log_colon
+	deposit clke_bt
+	store 4,mem_clkn_bt_patch
+	arg 4,loopcnt
+	arg mem_clkn_bt_patch,regc
+	branch log_bytes
+
+//output:"txp"
+print_txpower:
+	call uarta_prepare_tx
+	setarg 0x707874		
+	istore 3,contwu
+	call uarta_send
+	call log_colon
+	call txpower_index_exchange
+	arg 2,loopcnt
+	arg mem_txpower_print,regc
+	branch log_bytes
+
+txpower_index_exchange:
+	fetch 1,mem_tx_power
+	beq TX_POWER_0DB,print_txpower_0
+	beq TX_POWER_3DB,print_txpower_3
+	beq TX_POWER_5DB,print_txpower_5
+	beq TX_POWER_6DB,print_txpower_6
+	beq TX_POWER_7DB,print_txpower_7
+	beq TX_POWER_10DB,print_txpower_10
+	beq TX_POWER_F3DB,print_txpower_f3
+	beq TX_POWER_F5DB,print_txpower_f5
+	rtn
+print_txpower_0:
+	setarg 0
+	store 2,mem_txpower_print
+	rtn
+print_txpower_3:
+	setarg 3
+	store 2,mem_txpower_print
+	rtn
+print_txpower_5:
+	setarg 5
+	store 2,mem_txpower_print
+	rtn
+print_txpower_6:
+	setarg 6
+	store 2,mem_txpower_print
+	rtn
+print_txpower_7:
+	setarg 7
+	store 2,mem_txpower_print
+	rtn
+print_txpower_10:
+	setarg 10
+	store 2,mem_txpower_print
+	rtn
+print_txpower_f3:
+	setarg 0xf3
+	store 2,mem_txpower_print
+	rtn
+print_txpower_f5:
+	setarg 0xf5
+	store 2,mem_txpower_print
+	rtn
+
+endif
+
+
+
Index: program_patch/main_patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/main_patch.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/main_patch.prog	(working copy)
@@ -0,0 +1,1187 @@
+ //define BLE
+//define CLASSIC
+//define G24_OTA
+//define PW_CTRL
+define FIRE_KEY
+//define UARTA_DEBUG
+
+	bbit1 8,pf_patch_ext
+	beq patch00_0,p_soft_reset
+	beq patch10_3,p_set_sync_on
+	beq patch10_4,p_set_freq_rx
+	beq patch10_5,p_rf_rx_enable
+	beq patch11_2,p_txon_next
+	beq patch11_3,p_initialize_radio_cont
+	beq patch11_4,p_save_rssi
+	beq patch15_6,p_app_init
+	beq patch18_3,p_mouse_start_work
+	beq patch18_4,p_mouse_start_reconnect_device
+	beq patch18_7,p_mouse_app_enter_hibernate
+	beq patch19_1,p_mouse_setgpio_hibernate
+	beq patch19_2,p_mouse_lpm_before_common
+	beq patch19_4,p_mouse_adc_read_start
+	beq patch19_6,p_mouse_motion
+	beq patch19_7,p_mouse_dpi_process
+	beq patch1a_0,p_mouse_seting_dpi
+	beq patch1a_1,p_mouse_check_key_gpio
+	beq patch1a_4,p_mouse_sensor_poweron
+	beq patch1a_6,p_mouse_priority_bb_event
+	beq patch1b_1,p_mouse_bb_event_timer
+	beq patch1b_6,p_mouse_idle
+//	beq patch1b_2,p_mouse_start_discovery	/**BLE PATCH**/
+//	beq patch13_7,p_init_param				/**CLASSIC PATCH**/
+//	beq patch1d_0,p_hid_rx_process			/**CLASSIC PATCH**/
+	branch loop
+
+pf_patch_ext:
+	beq patch26_3,p_adc_init_data
+	beq patch26_4,p_enable_adc
+	beq patch30_7,p_ui_timer_check
+	beq patch3b_5,p_g24_dispatch
+	beq patch3b_6,p_g24_receive_packet
+	beq patch3c_1,p_g24_transmit
+	beq patch3c_2,p_g24_pair_dispatch
+	beq patch3d_1,p_g24_reconn_dispatch
+	beq patch3d_2,p_g24_transmit_no_interrupt
+	beq patch3d_4,p_g24_lpm_wait
+//	beq patch3d_5,p_power_ctrl_start
+//	beq patch34_1,p_le_slave_match	/**BLE PATCH**/
+//	beq patch34_3,p_le_slave_unsync	/**BLE PATCH**/
+//	beq patch38_0,p_le_parse_l2cap	/**BLE PATCH**/
+	branch loop
+
+
+
+
+
+
+p_app_init:
+	set0 mark_adc_enable,mark
+ifdef G24_OTA
+	ncall p_g24_load_ota_config_poweron,wake
+endif
+ifdef BLE
+	ncall p_mouse_le_name_load,wake
+endif
+	call enable_authrom
+	call p_mouse_setting_config
+	call mouse_init_sunt
+ifdef UART_LOG
+	call p_device_hardware_init
+endif
+	rtn wake
+	call p_g24_report
+	fetch 3,mem_24g_short_sleep_set
+	store 3,mem_24g_short_sleep_set_init
+	call p_send_time_long_wake
+	call mouse_dpi_config
+	call mouse_usb_check_enable
+	call mouse_drawing_optima_init
+	call p_mouse_cb_fuction
+	call p_mouse_sensor_powerdown
+	branch mouse_init+8
+
+p_mouse_setting_config:
+	rtn wake
+	call g24_transmit_init
+	arg 0x358,temp
+	storet 2,mem_24g_rx_window
+	call g24_chmap_param_init
+	call p_mouse_gpio_init
+	call mouse_param_init
+ifdef FIRE_KEY
+	call p_mouse_firebutton_connect_state_check
+endif
+	call p_mouse_device_multi_led_poweron2s_init
+	call p_mouse_double_dpi_judge
+	call p_g24_short_sleep_set_8ms
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G_250Hz,mouse_setting_config_next
+	call p_g24_short_sleep_set_4ms
+	branch mouse_setting_config_next
+
+p_mouse_gpio_init:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_1io2led_all_off,blank
+	branch mouse_gpio_init
+
+p_mouse_cb_fuction:
+	setarg p_mouse_24g_package_data
+	store 2,mem_cb_24g_transmit_data
+	setarg p_mouse_24g_search_dongle
+	store 2,mem_cb_24g_search_receiver
+	branch mouse_cb_fuction+4
+
+
+p_mouse_motion:
+	disable user
+	setarg 0
+	store 6,mem_mouse_x
+	call mouse_check_sensor_data
+	setarg 0x0089			
+	call twspi_write
+	call mouse_dpi_config
+	call mouse_zwheel
+	call mouse_t_zwheel
+	call p_mouse_key
+	fetch 1,mem_mouse_key
+	and_into 0x1f,pdata
+	store 1,mem_mouse_key
+	nbranch mouse_drawing_optima_init,user
+	call p_mouse_drawing_optima
+	branch mouse_no_data_timer_init
+
+p_mouse_idle:
+	call mouse_low_voltage_led_no_enter_lpm
+	call ui_check_paring_button
+	call p_mouse_dpi_check
+	call p_mouse_dpi_another_gpio_check
+	branch mouse_idle+4
+
+
+p_mouse_priority_bb_event:
+	copy regc,pdata
+	beq BT_EVT_24G_ATTEMPT_SUCCESS,p_mouse_24g_attempt_success
+	beq BT_EVT_24G_PAIRING_COMPLETE,p_mouse_24g_pairing_complete
+	beq BT_EVT_24G_ATTEMPT_FAIL,p_mouse_24g_attempt_fail
+ifdef BLE
+	beq BT_EVT_LE_START_ENC,p_mouse_le_ll_start_encryt
+	beq BT_EVT_LE_PARSE_CONN_PARAM_ACCEPTED,p_mouse_le_parse_conn_param_accepted
+	beq BT_EVT_LE_DISCONNECTED,p_mouse_le_bb_disconnected
+	beq BT_EVT_LE_CONNECTED,p_mouse_le_bb_event_connected
+endif
+ifdef CLASSIC
+	beq BT_EVT_BB_CONNECTED,p_mouse_bb_event_connected
+endif
+	branch mouse_priority_bb_event+2
+
+
+p_mouse_start_work:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_24G_FIRST_AUTO_PAIRING,mouse_24g_first_start_auto_pair_mode
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_start_mode
+	branch mouse_start_work+5
+	
+p_mouse_24g_start_mode:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_24G,mouse_24g_mode_setup_error
+	call mouse_wakeup_from_power_check	// wake from hibernate :enble user
+	branch p_mouse_24g_reconn_dongle_start,user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_AUTO_24G_PARING,p_mouse_24g_reconn_general_dongle
+	bbit0 MOUSE_ENABLE_24G_POWER_ON_PAIRING,p_mouse_24g_reconn_general_dongle
+	call mouse_key_check_once		// pdata output:00
+	and rega,0x07,pdata
+	branch mouse_24g_start_mode+9
+	
+p_mouse_24g_reconn_dongle_start:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_24g_reconn_dongle_start
+
+p_mouse_24g_reconn_general_dongle:
+	fetch 1,mem_mouse_1io2led_led_enable
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_24g_reconn_general_dongle
+
+p_mouse_start_reconnect_device:
+	fetch 1,mem_mouse_bt_led_recon_effect_flag
+	ncall p_mouse_multi_led_blink_enable,blank
+	branch mouse_start_reconnect_device+1
+
+p_mouse_adc_read_start:
+	fetch 1,mem_24g_device_led_status
+	nrtn blank
+	call p_enable_adc
+	branch mouse_adc_read_start+3
+
+
+
+//////////////////////////////LPM FUNC////////////////////////////////////////
+
+p_mouse_app_enter_hibernate:	// 1.3mA hibernate after sensroe reset
+	setarg PAN_REG_CONFIG
+	call twspi_read
+	bbit1 3,mouse_app_enter_hibernate+3
+	call p_mouse_sensor_reset
+	call p_mouse_sensor_powerdown
+	branch mouse_app_enter_hibernate+3
+
+p_mouse_setgpio_hibernate:
+	call mouse_set_sdio_high
+	call clear_wake
+	call p_mouse_logo_led_off
+	call p_mouse_1io2led_all_off
+	call mouse_before_hibernate_wheel_gpio_set
+	fetcht 1,mem_matrix_public_gpio		// enable b4/b5/dpi wakeup
+	call gpio_out_active
+	fetcht 1,mem_matrix_public_gpio
+	call gpio_clr_wake
+	fetch 1,mem_mouse_sensor_sdio_gpio
+	arg gpcfg_output_high,temp
+	call gpio_config_function_int
+	arg 3,temp
+	call mouse_gpio_config_input_pu
+	call mouse_lpm_before_common
+	call gpio_pd_idle
+	arg 19,temp
+	call mouse_gpio_config_input_pu
+	call p_mouse_gpio_set_high_impedance
+	call p_mouse_adc_gpio_set_before_hibernate
+	branch p_mouse_wheel_gpio_set_before_hibernate
+	
+p_mouse_gpio_set_high_impedance:
+	fetch 3,mem_mouse_set_high_impedance_bit_set
+	store 3,mem_pdatatemp
+	arg 20,loopcnt
+	arg 0,temp
+p_mouse_gpio_set_high_impedance_bit_loop:	
+	fetch 3,mem_pdatatemp
+	isolate1 0,pdata
+	call gpio_set_high_impedance,true
+	fetch 3,mem_pdatatemp
+	rshift pdata,pdata
+	store 3,mem_pdatatemp
+	increase 1,temp
+	loop p_mouse_gpio_set_high_impedance_bit_loop
+	rtn
+
+p_mouse_adc_gpio_set_before_hibernate:	
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_ADC
+	fetch 1,mem_adc_config_flag_init
+	rtnne ADC_CONFIG_GPIO
+	fetch 1,mem_adc_channel_gpio	
+	arg gpcfg_no_ie,temp
+ 	branch gpio_config_function_int
+
+p_mouse_wheel_gpio_set_before_hibernate:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_WHEEL_WAKE_UP_CANCEL
+p_mouse_wheel_clr_wakeup:
+	fetcht 1,mem_whee_a_data_gpio
+	call gpio_clr_wake
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_clr_wake
+		
+	fetch 1,mem_whee_a_data_gpio
+	arg gpcfg_pulldown,temp
+	call gpio_config_function_int
+	fetch 1,mem_whee_b_data_gpio
+	arg gpcfg_pulldown,temp
+	branch gpio_config_function_int
+
+p_mouse_lpm_before_common:
+	fetcht 1,mem_whee_a_data_gpio		//reinit gpio pu after disable wheel wakeup
+	call gpio_config_input
+	fetcht 1,mem_whee_b_data_gpio
+	call gpio_config_input
+	
+	call mouse_wheel_check
+	fetch 1,mem_mouse_sensor_sclk_gpio	// set sclk high
+	arg gpcfg_output_high,temp
+ 	call gpio_config_function_int
+	branch mouse_lpm_before_common_next
+
+//////////////////////////////LPM FUNC END////////////////////////////////////////
+
+
+
+
+//////////////////////////////100MS TIMER FUNC////////////////////////////////////////
+
+p_mouse_bb_event_timer:
+	call mouse_adc_read
+	call mouse_low_voltage_led_timer
+	//24g
+	call g24_pair_timeout_timer
+	call g24_reconn_timeout_timer
+	call mouse_24g_long_sleep_param_update_timer
+ifdef G24_OTA
+	call p_mouse_g24_ota_reset_timer
+endif	
+	//led
+	call mouse_device_poweron_timer
+	call p_mouse_dpi_led_blink_delay_timer
+	call p_mouse_led_multi_timer
+	call p_mouse_logo_led_on_timer
+
+	call mouse_dpi_key_check_long_press
+	call mouse_bt_discovery_check
+	call p_mouse_commbination_key_process
+	call mouse_check_discovery_timeout_timer
+ifdef BLE
+	//ble
+	call mouse_check_direct_timeout_timer
+	call mouse_le_enable_att_list_timer
+	call p_mouse_le_battery_updata_timer
+	call mouse_le_send_smp_security_request_timer
+endif
+ifdef CLASSIC
+	//bt
+	call mouse_check_hid_handshake_timer
+	call mouse_bt_check_sniff_req_timeout_timer
+	call mouse_check_reconnect_delay_long_sleep		//delete 3.0,reconnect fail
+endif
+	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
+	
+
+p_mouse_device_multi_led_poweron2s_init:
+	fetch 1,mem_mouse_multi_led_powon2s_timer_init
+	store 1,mem_mouse_multi_led_powon2s_timer
+	fetch 1,mem_mouse_multi_led_poweron2s_flag_init
+	store 1,mem_mouse_multi_led_poweron2s_flag
+	rtn
+p_mouse_multi_led_blink_enable:
+	jam 1,mem_mouse_multi_led_blink_enable
+	jam MULTI_LED_BLINK,mem_mouse_multi_led_type
+	fetch 1,mem_mouse_multi_led_blink_timer_init
+	store 1,mem_mouse_multi_led_blink_timer
+	rtn
+p_mouse_multi_led_on_enable:	
+	jam 1,mem_mouse_multi_led_blink_enable	//disable flag 
+	jam 0,mem_mouse_multi_led_blink_timer
+	jam MULTI_LED_ON,mem_mouse_multi_led_type
+	rtn
+	
+p_mouse_led_multi_timer:
+	fetch 1,mem_mouse_multi_led_blink_enable
+	rtn blank
+	fetch 1,mem_mouse_multi_led_type
+	beq MULTI_LED_BLINK,p_mouse_multi_led_type_blink
+p_mouse_multi_led_type_on:
+	fetch 1,mem_mouse_multi_led_poweron2s_flag
+	nbranch p_mouse_device_multi_led_poweron2s,blank
+	jam 0,mem_mouse_multi_led_blink_enable
+	rtn
+p_mouse_device_multi_led_poweron2s:
+	fetch 1,mem_mouse_multi_led_powon2s_timer
+	branch p_mouse_multi_led_poweron2s_and_flag_off,blank
+	increase -1
+	store 1,mem_mouse_multi_led_powon2s_timer
+	branch p_mouse_device_multi_led_on
+p_mouse_multi_led_poweron2s_and_flag_off:
+	jam 0,mem_mouse_multi_led_poweron2s_flag
+	jam 0,mem_mouse_multi_led_blink_enable
+	branch p_mouse_device_multi_led_off
+
+p_mouse_multi_led_type_blink:
+	arg mem_mouse_multi_led_blink_timer,regc
+	arg p_mouse_multi_led_type_blink_timeout,regb
+	branch timer_single_step
+
+p_mouse_multi_led_type_blink_timeout:
+	fetch 1,mem_mouse_multi_led_blink_timer_init
+	store 1,mem_mouse_multi_led_blink_timer
+	fetch 1,mem_mouse_multi_led_state
+	beq ON,p_mouse_device_multi_led_off	
+p_mouse_device_multi_led_on:
+	jam ON,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_on
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_on
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_on
+	rtn
+p_mouse_device_24g_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch p_mouse_device_led_on
+p_mouse_device_bt1_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch p_mouse_device_led_on
+p_mouse_device_bt2_led_on:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+p_mouse_device_led_on:
+	branch gpio_out_active	//by mouse.dat config
+
+p_mouse_device_multi_led_off:
+	jam OFF,mem_mouse_multi_led_state
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_device_24g_led_off
+	beq MODE_BT_DEVICE1,p_mouse_device_bt1_led_off
+	beq MODE_BT_DEVICE2,p_mouse_device_bt2_led_off
+	rtn
+
+p_mouse_device_24g_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_24gled
+	branch gpio_set_high_impedance
+p_mouse_device_bt1_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt1led
+	branch gpio_set_high_impedance
+p_mouse_device_bt2_led_off:
+	fetcht 1,mem_mouse_1io2led_multi_bt2led
+	branch gpio_set_high_impedance
+
+p_mouse_1io2led_all_off:
+	call p_mouse_device_24g_led_off
+	call p_mouse_device_bt1_led_off
+	branch p_mouse_device_bt2_led_off
+
+
+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
+	fetch 1,mem_mouse_1io2led_led_enable
+	beq 1,gpio_set_high_impedance
+	branch gpio_out_inactive
+p_mouse_logo_led_on:
+	fetcht 1,mem_mouse_logo_led_gpio
+	branch gpio_out_active
+
+
+p_mouse_dpi_led_blink_delay_timer:
+	arg mem_mouse_dpi_led_delay_count,regc
+	arg p_mouse_dpi_led_blink_init,regb
+	branch timer_single_step
+	
+
+p_mouse_commbination_key_process:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_commbination_key_process
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_BT_DISCOVERY
+	fetcht 1,mem_mouse_commbination_key_bt
+	branch p_mouse_commbination_key_start
+
+p_mouse_24g_commbination_key_process:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_COMMBINATION_KEY_BY_24G_PAIRING
+	fetcht 1,mem_mouse_commbination_key_24g
+p_mouse_commbination_key_start:
+	storet 1,mem_mouse_commbination_key
+	call mouse_check_key_gpio
+	and pdata,0x07,pdata
+	fetcht 1,mem_mouse_commbination_key
+	isub temp,null
+	branch p_mouse_commbination_key_down,zero
+	branch mouse_commbination_key_up
+
+		
+p_mouse_commbination_key_down:		// enter hibernate when reconnect
+	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_check_no_data_timeout_timer:
+	arg mem_mouse_no_data_timer,regc
+	arg p_mouse_check_no_data_timeout,regb
+	branch timer_single_step_2B
+p_mouse_check_no_data_timeout:
+	fetch 1,mem_device_flag
+	beq MODE_24G_DEVICE,p_mouse_24g_hibernate_set
+	branch mouse_disconnect
+
+//////////////////////////////100MS TIMER FUNC END////////////////////////////////////////
+
+
+
+//////////////////////////////SENSOR FUNC////////////////////////////////////////
+
+p_mouse_drawing_optima:
+	fetch 1,mem_config_sensor_type
+	rtneq P3212
+	branch mouse_drawing_optima
+
+
+p_mouse_sensor_poweron:
+	call mouse_sensor_spi_init
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_init
+	branch mouse_sensor_poweron_next
+	
+p_mouse_ka8g2_sensor_init:
+	call p_mouse_ka8g2_sensor_reset
+	arg mem_ka8g2_sensor_poweron_init,regc
+	branch mouse_sensor_poweron_end
+	
+p_mouse_sensor_reset:
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_reset
+	branch mouse_sensor_reset
+p_mouse_ka8g2_sensor_reset:
+	setarg 0x9706		// reset to factory settings
+	branch mouse_sensor_reset_end
+
+p_mouse_sensor_powerdown:
+	call mouse_init_sunt
+	call mouse_sensor_spi_init
+	fetch 1,mem_config_sensor_type
+	beq KA8G2,p_mouse_ka8g2_sensor_powerdown
+	branch mouse_sensor_powerdown_end
+p_mouse_ka8g2_sensor_powerdown:
+	setarg 0x1f06		
+	branch twspi_write
+
+//////////////////////////////SENSOR FUNC END////////////////////////////////////////
+	
+
+
+//////////////////////////////KEY FUNC////////////////////////////////////////
+
+p_mouse_key:
+ifdef FIRE_KEY
+	call p_mouse_check_firekey_gpio
+	fetch 1,mem_fire_key_flag
+	nbranch p_fire_key_press,blank
+	fetch 1,mem_fire_key_status
+	nbranch p_fire_key_process,blank
+endif
+	call p_mouse_check_key_gpio
+	branch mouse_key+1
+
+p_mouse_check_key_gpio:	//when mem_matrix_public_gpio=0xff
+	fetch 1,mem_sensor_shutdown_flag
+	ncall mouse_check_key_gpio_once,blank
+	arg 0,rega
+	call p_mouse_check_lkey_gpio
+	call p_mouse_check_rkey_gpio
+	call p_mouse_check_mkey_gpio
+	call p_mouse_check_bkkey_gpio
+	call p_mouse_check_fwkey_gpio
+ifdef FIRE_KEY	
+	call p_mouse_check_firekey_gpio
+endif
+	branch mouse_check_key_gpio_next
+
+p_mouse_check_lkey_gpio:
+	fetch 1,mem_lbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_lkey_gpio
+	fetcht 1,mem_lbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_rkey_gpio:
+	fetch 1,mem_rbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_rkey_gpio
+	fetcht 1,mem_rbutton_gpio
+	branch mouse_gpio_config_input_pu
+p_mouse_check_mkey_gpio:
+	fetch 1,mem_mbutton_gpio
+	call p_mouse_gpio_config_output_high
+	call mouse_check_mkey_gpio
+	fetcht 1,mem_mbutton_gpio
+	branch mouse_gpio_config_input_pu
+
+p_mouse_check_bkkey_gpio:
+	fetch 1,mem_bk_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_BK_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_bkkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_bk_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_bk_check
+	branch mouse_check_bkkey_gpio_next
+p_mouse_3io6key_bk_check:
+	fetch 1,mem_bk_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_bk_button_gpio
+	branch mouse_3io6key_bk_check	
+
+p_mouse_check_fwkey_gpio:
+	fetch 1,mem_fw_button_gpio
+	rtneq GPIO_DISABLE
+	jam MOUSE_FW_KEY,mem_mouse_key_temp
+	fetch 1,mem_mouse_fwkey_press_status
+	copy pdata,regc
+	fetcht 1,mem_fw_button_gpio
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_fw_check
+	branch mouse_check_fwkey_gpio_next
+p_mouse_3io6key_fw_check:
+	fetch 1,mem_fw_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_fw_button_gpio
+	branch mouse_3io6key_fw_check
+
+//input:pdata gpio number
+p_mouse_gpio_config_output_high:
+	arg gpcfg_output_high,temp
+	branch gpio_config_function_int
+		
+//input:pdata gpio number
+p_mouse_gpio_config_output_low:
+	arg gpcfg_output_low,temp
+	branch gpio_config_function_int	
+
+
+p_mouse_dpi_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_ADC,mouse_dpi_check_connect_adc
+	fetch 1,mem_dpi_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_DPI_KEY,mem_mouse_key_temp
+	fetcht 1,mem_dpi_button_gpio
+	call p_mouse_dpi_key_check
+	branch mouse_dpi_check_next
+
+p_mouse_dpi_key_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_KEY_CONNECT_GND,mouse_dpi_key_connect_gnd
+	fetch 1,mem_mouse_dpikey_press_status
+	copy pdata,regc
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_dpi_check
+	branch mouse_dpi_key_check_next
+p_mouse_3io6key_dpi_check:
+	fetch 1,mem_dpi_button_gpio
+	call p_mouse_gpio_config_output_low
+	fetcht 1,mem_dpi_button_gpio
+	branch mouse_3io6key_check
+
+p_mouse_dpi_another_gpio_check:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	fetch 1,mem_mouse_another_dpi_connect_vin_flag
+	nbranch p_mouse_dpi_another_gpio_connect_vin_check,blank
+p_mouse_dpi_another_gpio_connect_gnd_check:	
+	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_gpio_connect_vin_check:
+	fetch 1,mem_dpi_another_button_gpio
+	set0 gpio_active_bit,pdata
+	store 1,mem_dpi_another_button_gpio
+	//fetch 1,mem_dpi_another_button_gpio
+	call p_mouse_gpio_config_output_low
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status
+	call p_mouse_check_key_connect_vin_new
+	call p_mouse_dpi_another_state_check
+	fetcht 1,mem_dpi_another_button_gpio
+	branch mouse_gpio_config_input_pu	
+
+p_mouse_dpi_another_down_new:
+	call mouse_gpio_config_input_pu	
+	fetch 1,mem_dpi_another_button_state
+	rtneq DPI_BUTTON_STATE_DOWN
+	jam DPI_BUTTON_STATE_DOWN,mem_dpi_another_button_state
+	//fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	//rtnbit1 MOUSE_ENABLE_SELECT_DEVICE_BY_DPI_BUTTON
+	//rtnbit1 MOUSE_ENABLE_DPI_KEY_LONG_PRESS_DISCONVERY
+	branch mouse_dpi_process
+	
+p_mouse_dpi_another_check:
+	jam MOUSE_DPI_ANOTHER_KEY,mem_mouse_key_temp_patch
+	fetcht 1,mem_dpi_another_button_gpio
+	fetch 1,mem_dpi_another_press_status	
+	call p_mouse_check_key_connect_gnd_new
+p_mouse_dpi_another_state_check:
+	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_check_key_connect_vin_new:	
+	lshift pdata,pdata
+	copy pdata,regb
+	call mouse_gpio_config_input_pd
+	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_select_device_by_pb_button:
+	fetch 1,mem_config_select_device_button_gpio
+	rtneq GPIO_DISABLE
+	arg 0,rega
+	jam MOUSE_PB_KEY,mem_mouse_key_temp
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_pb_button_check
+	store 1,mem_mouse_pbkey_press_status
+	fetch 1,mem_matrix_public_gpio
+	beq GPIO_DISABLE,p_mouse_3io6key_pb_button_check_end	
+	call mouse_matrix_public_gpio_reset
+p_mouse_select_device_by_pb_button_exit:	
+	copy rega,pdata
+	bbit1 MOUSE_PB_KEY,mouse_select_device_button_down+2
+	branch mouse_select_device_button_up
+
+p_mouse_3io6key_pb_button_check_end:
+	fetcht 1,mem_config_select_device_button_gpio
+	call mouse_gpio_config_input_pu
+	branch p_mouse_select_device_by_pb_button_exit
+
+
+ifdef FIRE_KEY
+p_mouse_firebutton_connect_state_check:
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	bbit1 gpio_active_bit,p_mouse_firebutton_connect_vin
+p_mouse_firebutton_connect_gnd:	
+	jam 0,mem_mouse_firebutton_connect_vin_flag
+	rtn
+p_mouse_firebutton_connect_vin:
+	jam 1,mem_mouse_firebutton_connect_vin_flag
+	rtn
+
+p_mouse_check_firekey_gpio:
+	arg 0,regb
+	fetch 1,mem_firebutton_gpio
+	rtneq GPIO_DISABLE
+	fetch 1,mem_mouse_firebutton_connect_vin_flag
+	nbranch p_mouse_check_firekey_connect_vin,blank
+p_mouse_check_firekey_connect_gnd:
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	setflag true,0,regb
+p_mouse_firekey_state_store:	
+	copy regb,pdata
+	store 1,mem_fire_key_flag
+	rtn
+
+p_mouse_check_firekey_connect_vin:
+	fetch 1,mem_firebutton_gpio
+	set0 gpio_active_bit,pdata
+	store 1,mem_firebutton_gpio
+	fetcht 1,mem_firebutton_gpio
+	call mouse_gpio_config_input_pd
+	fetcht 1,mem_firebutton_gpio
+	call gpio_get_bit
+	nsetflag true,0,regb
+	branch p_mouse_firekey_state_store
+
+p_fire_key_process: 
+	beq 4,p_fire_key_process_end
+p_fire_key_press:
+	call p_firekey_clkn_bt_timer_check 
+	fetch 4,mem_fire_key_delay
+	arg 0xa0,temp      
+	iadd temp,temp
+	copy clkn_bt,pdata
+	isub temp,null
+	nrtn positive
+	store 4,mem_fire_key_delay 
+	fetch 1,mem_fire_key_status
+	beq 0,p_fire_key_process_start
+	beq 1,p_fire_key_process_release1
+	beq 2,p_fire_key_process_start2
+	beq 3,p_fire_key_process_release2
+	rtn
+
+p_fire_key_process_start:
+	jam 1,mem_fire_key_status
+p_fire_key_down:
+	jam 1,mem_mouse_key
+	branch enable_user
+
+p_fire_key_process_release1:
+	jam 2,mem_fire_key_status
+p_fire_key_release:
+	jam 0,mem_mouse_key
+	branch enable_user
+
+p_fire_key_process_start2:
+	jam 3,mem_fire_key_status
+	branch p_fire_key_down
+
+p_fire_key_process_release2:
+	jam 0,mem_fire_key_status
+	branch p_fire_key_release
+	
+p_fire_key_process_end:
+	jam 0,mem_fire_key_status
+	jam 0,mem_mouse_key
+	rtn
+
+p_firekey_clkn_bt_timer_check:
+	fetcht 4,mem_fire_key_delay
+	copy clkn_bt,pdata
+	isub temp,null
+	ncall p_firekey_clkn_bt_timer_timeout,positive
+	rtn
+p_firekey_clkn_bt_timer_timeout:
+	setarg 0
+	store 4,mem_fire_key_delay
+	rtn
+
+endif
+
+//////////////////////////////KEY FUNC END////////////////////////////////////////
+
+
+//////////////////////////////DPI FUNC////////////////////////////////////////
+
+p_mouse_seting_dpi:
+	call mouse_setting_dpi_4_level
+	call p_mouse_dpi_led_blink_delay
+	branch mouse_seting_sensor_type
+
+p_mouse_dpi_led_blink_delay:
+	fetch 1,mem_dpi_led_gpio
+	rtneq GPIO_DISABLE
+	fetch 2,mem_mouse_discovery_timer
+	nrtn blank
+	fetch 2,mem_24g_pair_timeout
+	nrtn blank
+	fetch 2,mem_24g_reconn_timeout
+	nrtn blank
+	fetch 1,mem_mouse_device_poweron_timer_count
+	nrtn blank
+	fetch 1,mem_mouse_dpi_led_delay_count_init
+	branch p_mouse_dpi_led_blink_init,blank
+	store 1,mem_mouse_dpi_led_delay_count  //delay 1s led blink
+	rtn
+
+p_mouse_dpi_led_blink_init:	//result:    level3: 2  3  1     level4: 3  4  1  2
+	fetch 1,mem_config_sensor_type
+	beq P3212,mouse_dpi_led_blink_init		//result:    level3: 1  2  3     level4: 2  3  4  1
+	beq KA8G2,mouse_dpi_led_blink_init	//result:    level3: 1  2  3     level4: 2  3  4  1
+	fetch 1,mem_dpi_led_gpio
+	store 1,mem_mouse_struct_led_gpio
+	fetch 2,mem_mouse_dpi_led_blink_time
+	store 2,mem_mouse_on_time
+	store 2,mem_mouse_off_time
+	arg 0,rega
+	fetcht 1,mem_mouse_dpi
+	increase 2,temp	// 2 3 4 (5)
+	sub temp,3,null
+	call p_mouse_dpi_led_blink_init_level_4,positive
+	ncall p_mouse_dpi_led_blink_count_clean,positive
+	branch mouse_dpi_led_blink_init_end
+
+p_mouse_dpi_led_blink_init_level_4:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DPI_LEVEL_4
+	increase 1,temp  	// 2-->3   3-->4
+	rtn
+
+p_mouse_dpi_led_blink_count_clean:
+	increase -3,temp		// 4-->1  5-->2
+	rtn
+
+
+p_mouse_double_dpi_judge:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_DOUBLE_DPI_KEY
+	fetch 1,mem_dpi_another_button_gpio
+	bbit1 gpio_active_bit,p_mouse_another_dpi_connect_vin
+p_mouse_another_dpi_connect_gnd:
+	jam 0,mem_mouse_another_dpi_connect_vin_flag
+	rtn
+p_mouse_another_dpi_connect_vin:
+	jam 1,mem_mouse_another_dpi_connect_vin_flag
+	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_LEVEL2
+p_mouse_dpi_increase_level:
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3	//1600
+	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_2 	//1200
+	rtn
+
+p_mouse_dpi_level_1:		//800
+	setarg 2
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_2:		//1200
+	setarg 0
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_3:		//1600
+	setarg 1
+	branch p_mouse_dpi_store
+p_mouse_dpi_level_4:		//1000
+	setarg 3
+	branch p_mouse_dpi_store
+
+p_mouse_dpi_increase_level_4:
+	copy temp,pdata			//0->1,2->3,3->0
+	rtneq MOUSE_DPI_LEVEL2
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_3
+	beq MOUSE_DPI_LEVEL3,p_mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_2
+	rtn
+p_mouse_dpi_decrease_level_4:
+	copy temp,pdata			//0->3,1->0,3->2
+	rtneq MOUSE_DPI_LEVEL3
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_4
+	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
+	beq MOUSE_DPI_LEVEL4,p_mouse_dpi_level_1
+	rtn
+
+p_mouse_another_dpi_button_down:
+p_mouse_dpi_decrease:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit1 MOUSE_ENABLE_DPI_LEVEL_4,p_mouse_dpi_decrease_level_4
+	copy temp,pdata
+	rtneq MOUSE_DPI_LEVEL3
+p_mouse_dpi_decrease_level:
+	beq MOUSE_DPI_LEVEL1,p_mouse_dpi_level_1
+	beq MOUSE_DPI_LEVEL2,p_mouse_dpi_level_2
+	rtn
+
+
+//////////////////////////////DPI FUNC END////////////////////////////////////////
+
+
+//////////////////////////////24G FUNC////////////////////////////////////////
+
+p_g24_report:
+	setarg 0x17700
+	store 3,mem_24g_tsniff
+	call g24_interval_param_8ms
+	jam 30,mem_24g_fast_hop_count
+//	setarg 73500
+//	store 3,mem_24g_short_sleep_set
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_250Hz
+	call g24_interval_param_4ms
+	jam 15,mem_24g_fast_hop_count
+	setarg 0xbb80
+	store 3,mem_24g_tsniff
+	setarg 0x4800
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+
+p_g24_short_sleep_set_8ms:
+	setarg 58000
+	store 3,mem_24g_short_sleep_set
+	rtn
+p_g24_short_sleep_set_4ms:
+	setarg 6000
+	store 3,mem_24g_short_sleep_set
+	rtn
+
+
+p_mouse_24g_package_data:		// 250Hz
+	rtnmark0 mark_24g
+ifdef G24_OTA
+	fetch 1,mem_g24_ota_mode
+	nbranch p_mouse_24g_package_ota,blank
+endif
+	call mouse_motion
+	nrtn user
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	bbit0 MOUSE_ENABLE_KEYBOARD,p_mouse_24g_mouse_package_data
+	fetch 1,mem_customer_key
+	nbranch mouse_24g_keyboard_package_data,blank
+p_mouse_24g_mouse_package_data:
+	call mouse_data_xy_release
+	fetch 1,mem_24g_data_type
+	bbit1 1,p_mouse_24g_mouse_package_data_now	// last package is keyboard data
+	fetcht 1,mem_24g_txbuf+1
+	fetch 1,mem_mouse_key
+	ior temp,pdata
+	store 1,mem_mouse_key
+	fetcht 1,mem_24g_txbuf+6
+	fetch 1,mem_mouse_z
+	iadd temp,pdata
+	store 1,mem_mouse_z
+	fetcht 1,mem_24g_txbuf+7
+	fetch 1,mem_mouse_tz
+	iadd temp,pdata
+	store 1,mem_mouse_tz	
+p_mouse_24g_mouse_package_data_now:	
+	jam TYPE_MS,mem_24g_data_type
+	arg 7,rega	//length
+	arg mem_mouse_key,regb //tx buff
+	rtn
+
+p_mouse_24g_search_dongle:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_24G_SEARCH_DONGLE
+	fetch 1,mem_mouse_long_mult_flag
+	rtn blank
+	fetch 1,mem_24g_abort_pac
+	rtn blank
+	fetch 1,mem_mouse_search_dongle_interval
+	increase 1,pdata
+	and_into 3,pdata
+	store 1,mem_mouse_search_dongle_interval
+	nrtn blank	//400ms
+	jam 0,mem_mouse_search_dongle_ch
+p_mouse_24g_search_dongle_loop:
+	fetch 1,mem_mouse_search_dongle_ch
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_ch
+	sub pdata,G24_CH_NUMBER,null
+	nbranch p_mouse_24g_search_dongle_loop_end,positive
+	call g24_reconn_data_prep
+	call p_g24_transmit_receive_ack
+	nbranch p_mouse_24g_search_dongle_loop_retry,sync
+	nbranch p_mouse_24g_search_dongle_loop_retry,user3
+	call mouse_24g_search_dongle_success
+p_mouse_24g_search_dongle_loop_end:
+	call g24_txbuf_clear
+	fetch 1,mem_mouse_search_dongle_count
+	increase 1,pdata
+	store 1,mem_mouse_search_dongle_count
+	beq G24_CH_POLL_COUNT,p_mouse_24g_search_dongle_check
+	rtn	
+
+p_mouse_24g_search_dongle_loop_retry:
+	call g24_ch
+	branch p_mouse_24g_search_dongle_loop
+
+p_mouse_24g_search_dongle_check:
+	jam 0,mem_mouse_search_dongle_count
+	fetch 1,mem_mouse_search_dongle_action
+	rtnbit1 G24_DISCONN_STATE
+	set1 G24_DISCONN_STATE,pdata
+	store 1,mem_mouse_search_dongle_action
+	fetch 2,mem_mouse_24g_search_dongle_time_init		
+	store 2,mem_mouse_no_data_timer
+	branch p_mouse_sensor_powerdown
+
+//////////////////////////////24G FUNC END////////////////////////////////////////
+
+
+ifdef PW_CTRL
+
+p_power_ctrl_start:
+	fetch 2,mem_ui_state_map
+	rtnbit1 UI_STATE_BLE_ADV
+	rtnbit1 UI_STATE_BT_RECONNECT
+	rtnbit1 UI_STATE_BT_DISCOVERY	
+	call p_rssi_sort	
+	call p_rssi_average
+	storet 1,mem_rssi_avg_received
+	call p_g24_fast_conn_mode_check
+	fetch 1,mem_soft_agc_en
+	nrtn blank
+	fetcht 1,mem_rssi_avg_received
+	branch power_ctrl_rssi_avg_compare
+
+p_g24_fast_conn_mode_check:
+	rtnmark0 mark_24g
+	fetch 4,mem_24g_receiver_addr
+	fetcht 4,mem_24g_fast_conn_addr
+	isub temp,null
+	branch p_soft_agc_en_true,zero
+	branch p_soft_agc_en_false
+	
+p_rssi_average:
+	arg mem_mouse_rssi_signal_buf_temp+6,rega
+	arg 10,pdata
+	branch rssi_average+2
+
+p_rssi_sort:
+	arg mem_mouse_rssi_signal_buf_patch,contr
+	arg mem_mouse_rssi_signal_buf_temp,contw
+	call memcpy16
+	arg mem_mouse_rssi_signal_buf_temp,regb
+	fetch 1,mem_rssi_buff_index
+	increase 1,pdata
+	copy pdata,loopcnt
+	branch p_bubble_sort
+
+//input:regb buff ptr,pdata buff length
+p_bubble_sort:
+	increase -1,loopcnt
+	deposit loopcnt
+	rtn blank
+p_external_loop:
+	copy loopcnt,rega
+	increase -1,rega
+	copy regb,contr
+p_internal_loop:
+	ifetch 1,contr
+	copy contr,contw
+	ifetcht 1,contr
+	isub temp,null
+	call p_sort_up
+	increase -1,contr
+	increase -1,rega
+	branch p_internal_loop,positive
+	loop p_external_loop
+	rtn
+p_sort_up:
+	call p_exchange_data,positive
+	rtn
+p_exchange_data:
+	increase -1,contw
+	istoret 1,contw
+	istore 1,contw
+	rtn
+
+endif
+
+
Index: program_patch/patch_chip_common_bugfix.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/patch_chip_common_bugfix.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/patch_chip_common_bugfix.prog	(working copy)
@@ -0,0 +1,271 @@
+
+
+p_soft_reset:
+	clear_stack
+	ncall p_set_mem_xtal_cache,wake
+	call app_param_init
+	setarg mem_mouse_rssi_signal_buf_patch
+	store 2,mem_rssi_signal_buf_ptr
+	call mouse_xtal_init		// 16M / 24M
+	call initialize_radio
+	fetch 1,mem_xtal_cache
+	store 1,mem_lpm_config+1
+	setarg 0xf0f
+	arg 0xfff,contw
+	iand contw,contw
+	fetch 1,mem_lpm_config
+	and_into 0xf0,pdata
+	lshift8 pdata,pdata
+	ior contw,pdata
+	set0 2,pdata
+	store 2,core_lpm_reg
+	ifetch 2,contr
+	istore 2,contw
+	setarg lpmreg_sel_ctrl
+	until null,lpo_edge
+	store 1,core_lpm_wr
+	jam 0x08,mem_lpm_config+1
+	jam clksel_xtal,core_clksel
+	branch soft_reset+4
+
+p_set_mem_xtal_cache:
+	fetch 1,mem_lpm_config+1
+	store 1,mem_xtal_cache
+	rtn
+
+
+//TODO
+p_lpm_short_sleep:
+	setarg 0
+	store 3,core_clkpll_ctrl0// close pll
+	jam 140,mem_tx_time_offset
+	call xtal_fast_wake
+	fetch 4,mem_sleep_counter_all
+	iadd temp,pdata
+	store 4,mem_sleep_counter_all
+	deposit mark
+	store 8,mem_saved_mark
+	arg core_gpio_conf,contr
+	arg mem_saved_gpio,contw
+	call memcpy20
+	fetch 1,core_spid_ctrl
+	store 1,mem_saved_spidctrl
+	call lpm_ctrl3_cfg_dig_vsel
+	fetch 1,core_clksel
+	or_into 0x14,pdata
+	store 1,core_clksel
+	branch lpm_sleep+7
+
+
+
+p_initialize_radio_cont:
+	jam 0xe6,core_syn_aac_cfg1
+	call initialize_syn_afc_cfg1
+	call initialize_rf_ldo_cfg1
+	call initialize_rc_cal
+	jam 0x09,core_rx_bq_cfg0
+	jam 5,core_clkpll_cfg0
+	jam 0x94,core_rx_iqadc_cfg
+	jam 0x0b,core_rf_ldo_cfg2
+	jam 0x05,core_rf_ldo_cfg3
+	jam 0x90,core_syn_pfd_lkd_cfg
+	jam 0x00,core_syn_loopdiv_dsm_cfg
+	jam 0x40,core_rx_ctrl1
+	branch initialize_radio_cont+8
+
+
+p_set_sync_on:
+	jam 0x5,modem_en
+	nop 2
+	jam 0x0,modem_en					/* if called from tx or rx */
+	fetch 1,mem_fcomp_div
+	beq XTAL_24M,set_sync_on_24m
+p_set_sync_on_16m:
+	jam 0x29,core_syn_afc_cfg1
+	branch set_sync_on_16m
+
+
+p_set_freq_rx:
+	call set_freq_rx+1
+	setarg 0x7676
+	store 2,0x8968
+	rtn
+
+
+p_rf_rx_enable:
+	fetch 1,mem_soft_agc_en
+	nbranch p_rf_rx_enable_soft_agc,blank
+	nop 300
+	call rf_debug_rx_gpio_high
+	arg mem_gain_table,contr
+	iadd contr,contr
+	ifetch 1,contr
+	store 1,core_rf_rx_gain_fix
+	jam 0x2e,core_rf_rx_agc_ctrl
+	branch rf_rx_enable_no_soft_agc_next
+	
+p_rf_rx_enable_soft_agc:
+	fetch 1,core_rf_rx_agc_ctrl
+	or pdata,0x01,pdata					//disable agc		
+	store 1,core_rf_rx_agc_ctrl
+	jam 0x04,core_rf_rx_gain_fix		//set agc level
+	branch rf_rx_enable_no_soft_agc_next
+
+p_soft_agc_en_false:
+	jam 0,mem_soft_agc_en
+	rtn
+p_soft_agc_en_true:
+	jam 1,mem_soft_agc_en
+	rtn
+
+
+p_txon_next:
+	fetch 1,mem_soft_agc_en
+	nbranch p_set_tx_power_f17db,blank
+	branch set_tx_power_10db
+	//fetch 1,mem_tx_power
+	//beq TX_POWER_F30DB,p_set_tx_power_f30db
+	//beq TX_POWER_F40DB,p_set_tx_power_f40db
+	//beq TX_POWER_F50DB,p_set_tx_power_f50db
+	//beq TX_POWER_F60DB,p_set_tx_power_f60db
+	//branch txon_next+1
+/*
+p_set_tx_power_f30db:
+	jam 0x4c,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f40db:
+	jam 0x45,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f50db:
+	jam 0x42,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+p_set_tx_power_f60db:
+	jam 0x41,core_tx_pwr_ctrl0
+	jam 0x00,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+*/
+p_set_tx_power_f17db:	//F17dbm
+	jam 0x5b,core_tx_pwr_ctrl0
+	jam 0x01,core_tx_pwr_ctrl1
+	branch set_rf_ldo_cfg89
+
+
+p_save_rssi:
+	// bit6 is signed bit. 
+	fetch 1,modem_nb_pow 
+	isolate1 6,pdata 
+	setflag true,7,pdata 
+	store 1,mem_modem_rssi 
+	
+	fetch 1,modem_gain 
+	and pdata,0x0f,temp 
+	lshift temp,temp 
+	rshift4 pdata,pdata 
+	iadd temp,temp 
+	mul32 temp,3,rega // (abb_gain + lna_gain*2)*3 
+
+	fetch 1,mem_modem_rssi 
+	call p_byte_sign_extern 
+	sub pdata,0,pdata //-modem_nb_pow 
+	iadd rega,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) 
+	increase -9,pdata // (abb_gain + lna_gain*2)*3 + (-modem_nb_pow) - 9 
+	and pdata,0x1ff,pdata 
+	isolate1 8,pdata 
+	nbranch p_save_rssi_store,true 
+	setarg 0 
+p_save_rssi_store:
+	store 1,mem_rssi_hex
+	rtn
+p_byte_sign_extern:
+	isolate1 7,pdata
+	nrtn true
+	arg 0xff00,temp
+	ior temp,pdata
+	rtn
+
+
+
+p_adc_init_data:
+	arg mem_temp_block2,rega
+	arg 12,temp
+	setarg EFUSE_OFFSET_ADC_PARAM
+	call efuse_read_data
+	branch adc_init_data+6
+
+p_enable_adc:	
+	fetchr regb,1,core_rf_ldo_cfg6
+	jam 0x3d,core_rf_ldo_cfg6
+	jam 0xaa,core_rf_ldo_cfg5
+	jam 0x0c,core_rf_ldo_en0
+	fetch 1,core_clkpll_cfg6
+	set1 7,pdata
+	store 1,core_clkpll_cfg6
+	jam 0x04,core_rf_ldo_en1
+	nop 60
+	jam 0,core_syn_en
+	jam 6,core_rx_en0
+	call read_adc_mode
+	store 1,core_gpadc_ctrl
+	jam 0x03,core_sum_ctrl
+	nop 60
+	fetch 1,core_sum_en
+	set1 7,pdata
+	store 1,core_sum_en
+	nop 1000
+	fetch 2,core_adc_sum
+	store 2,mem_adc_current_value
+	fetch 1,core_sum_en
+	set0 7,pdata
+	store 1,core_sum_en
+	jam 0,core_gpadc_ctrl
+	storer regb,1,core_rf_ldo_cfg6
+	rtn
+
+
+
+p_ui_timer_check:		// 100ms timer will return 4 or 5 times when power on
+	fetch 1,mem_power_on_flag
+	ncall ui_timer_init,blank
+	jam 0,mem_power_on_flag
+	branch ui_timer_check+1
+
+
+
+
+
+
+ifdef CLASSIC
+
+p_init_param:
+	jam 0,mem_lmo_tid2			// classic can't reconnect
+	branch init_param_next+1
+
+endif
+
+
+ifdef BLE
+
+p_le_slave_match:
+	fetch 1,mem_le_md_count
+	pincrease 1
+	store 1,mem_le_md_count
+	beq LE_MD_MAX_COUNT,le_slave_cont
+	call le_acknowledge
+	call le_prepare_tx
+	fetch 1,mem_le_tx_phy
+	call le_enable_phy_by_pdata
+	call le_transmit
+	branch le_slave_match+10
+
+p_le_slave_unsync:
+	call end_of_packet
+	branch le_slave_unsync+1
+
+endif
+
+
+
+
Index: program_patch/patch_chip_function_bugfix.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/patch_chip_function_bugfix.prog	(nonexistent)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/program_patch/patch_chip_function_bugfix.prog	(working copy)
@@ -0,0 +1,3 @@
+
+
+
Index: sched/mouse.dat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_pubulic/sched/mouse.dat	(revision 1295)
+++ /YC1308AC/branch/mouse_project/mouse_pubulic/sched/mouse.dat	(working copy)
@@ -1,17 +1,11 @@
 mem_device_option:08	#08 mouse
 
-mem_lpm_config:88 16 ce	#4khz
-mem_fcomp_div:18
-
-mem_rf_init_data:ff
-mem_rf_init_ptr:mem_rf_init_data
-mem_lpm_xtalcnt:0d
-
-
-mem_dig_aon_vsel:00
-#hw agc
-mem_gain_fix:ff
-mem_gain_second_agc_en:00
+#app_param_init already did this.
+#mem_ui_button_gpio:ff
+#mem_ui_button_timeout:1e
+#mem_usb_offline_check_gpio:ff
+#mem_ui_led_struct_ptr:mem_mouse_led_type
+#mem_ui_led_struct_num:01
 
 mem_mouse_flag:
 #mouse flag byte1
@@ -155,7 +149,6 @@
 mem_mouse_1io2led_multi_bt2led:ff
 #1io2led multi end
 
-mem_usb_offline_check_gpio:ff
 
 
 mem_customer_key_press:
@@ -170,7 +163,6 @@
 00 00 00 00 00 00 00 00 00#STANDARD KEY RELEASE
 #00 00 00 00 00 00 00 00 00#One-click desktop
 
-mem_lpm_mode:01
 
 
 mem_mouse_bluetooth_type:03	#03 bt3.0+ble   #02 ble   #01 bt3.0
@@ -227,100 +219,11 @@
 mem_adc_low_volatage_led_blink_timer:64 00	#10s
 #adc end
 
-mem_mouse_set_high_impedance_bit_set:00 00  00
+mem_mouse_set_high_impedance_bit_set:00 00 00
 mem_sensor_reset_gpio:ff
 
 mem_power_on_flag:01
 
-mem_lpm_mult:20
-mem_lpm_mult_init:20
-
-mem_app_connection_options:06
-mem_lap:16 a2 c8 12 23 51
-mem_local_name_length:
-'BT3.0 Mouse
-mem_sniff_param_interval:
-0e 00 
-01 00 ##mem_sniff_param_attempt:01 00
-02##mem_sniff_param_timeout:00 00
-
-
-mem_unsniff2sniff_timer:0a
-mem_ssp_enable:01
-##mem_all_uuid_16bits:
-##06
-##03#Type: Complete list of 16-bit UUIDs
-##0011 0100 1002 1124  1200  0001
-mem_all_uuid_128bits:00
-mem_ptt:00
-
-
-mem_lmp_io_cap_payload_iocap:03 00 04
-mem_ui_profile_supported:01
-mem_eir_enable:01
-
-mem_le_adv_data_len:1f
-mem_le_adv_data:
-#flag 
-02 01 05
-
-#uuid
-03 03 12 18
-
-#appearance
-03 19 c2 03
-
-mem_le_adv_swift_pair:
-#microsoft swift pair
-06 ff 06 00 03 00 80
-#name
-'\09BT5.2 Mouse
-
-mem_le_scan_data_len:1f
-mem_le_scan_data:
-#name
-'\09BT5.2 Mouse
-
-
-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
-07 00 #max interval
-20 00 #latency
-2c 01 #timeout
-
-
-mem_le_adv_ind:03 12 18
-mem_le_adv_direct_ind:ff 00 00
-
-mem_le_adv_interval:00 00
-mem_le_adv_type:00 
-mem_le_adv_own_addr_type:00
-mem_le_adv_channel_map:07 
-mem_local_rx_max_octets:fb 00 48 08 fb 00 48 08  # 1b
-
-mem_le_lap:8e b1 3b 0e 8e ed
-
-
-mem_le_keyboard_handle:15 00
-mem_le_notify_handle:19 00
-mem_le_multimedia_handle:1d 00
-mem_le_systemctrl_handle:21 00
-mem_le_battery_level_handle:30 00
-mem_le_pairing_handle:2d 00
-
-mem_le_battery_level_updata_timer_init:96 #15s
-
-
-mem_spi_ncs_gpio:ff
-mem_ui_button_gpio:ff
-mem_ui_button_timeout:1e
-
 
 mem_mouse_dpi_seting:
 03##mem_320x_dpi_0  	1200/1300
@@ -457,46 +360,10 @@
 09 00
 ff ff	
 
-mem_ui_led_struct_ptr:mem_mouse_led_type
-mem_ui_led_struct_num:01
 
   
-#24g init
-mem_24g_tx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
-mem_24g_rx_phy:02#0x01:1M/0x02:2M/0x04:S2/0x84:S8
-mem_24g_data_type:01        #mouse 1,kb 2
-mem_24g_max_retry:06#max tx retry
-mem_24g_rx_window:c0 12     #400us  ## e0 2e#1ms #transmitter long range min:520us
-mem_24g_interval:19
-mem_24g_interval_min:19
-mem_24g_interval_max:1c
-mem_24g_ch_map1:00 13 2c 42
-mem_24g_ch_map2:06 15 36 48
-mem_24g_ch_map3:0f 1a 3a 4c
-mem_24g_ch_map4:11 23 31 4d
-mem_24g_pair_switch:00
-mem_24g_pair_addr:20 15 10 05
-mem_24g_pair_ch:4e
-mem_24g_fast_conn_enable:01
-mem_24g_fast_conn_addr:0f 0f 0f 0f
-mem_24g_short_sleep_set:0c f8 00
-mem_24g_long_sleep_set:00 77 01
-mem_24g_enter_hibernate:00 48 60
-mem_rssi_buff_index:0f
-mem_rssi_signal_buf_ptr:mem_mouse_rssi_signal_buf_patch
-mem_power_ctrl_pac_succ_cnt_init:80
-mem_24g_long_sleep_param_update_timer_init:14 00
-mem_24g_transmit_by_interrupt_exit_count_init:50 00
-
-mem_24g_long_sleep_set1:00 a6 0e
-
-mem_flash_base:00 50 00
-mem_eeprom_base:80 1f
-mem_eeprom_block_size:80
 
-mem_tx_power:01#3dbm
 
-mem_tx_time_sum_count:10 
 
 
 
