Index: YC1026_3mode_SDK_CUSTOMER/Makefile
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/Makefile	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/Makefile	(working copy)
@@ -0,0 +1,112 @@
+	comma:= ,
+empty:=
+space:= $(empty) $(empty)
+bracketl:= (
+bracketl0:= \(
+bracketr:= )
+bracketr0:= \)
+
+
+OUTDIR = output
+ROOT_PATH =h:\Keil
+
+UTIL_PATH = ..\rom\util
+
+C51BIN = $(ROOT_PATH)\c51\bin
+C51   = $(C51BIN)\c51
+A51   = $(C51BIN)\ax51
+BL51  = $(C51BIN)\lx51
+OH51  = $(C51BIN)\Ohx51
+OC51  = $(C51BIN)\oc51
+LIB51 = $(C51BIN)\libx51
+
+TARGET = $(OUTDIR)\fw
+TARGETHEX = $(TARGET).hex
+
+
+RAMTARGET = $(OUTDIR)\fwram
+
+RAMTARGETHEX = $(addsuffix .hex, $(RAMTARGET))
+
+############################## IMPORTANT ####################################
+#   opt level greater than 7 cannot be used, or the ram code and the rom code will be different
+##############################################################################
+OPT_LEVEL=7
+
+LIST_FILE_CTL=PR($(@:obj=lst))
+
+C_OPTS = object($@) OBJECTADVANCED  browse DF(ENABLE_APE) $(LIST_FILE_CTL) \
+OT($(OPT_LEVEL),SPEED) large
+
+#ASM_OPTS =  $(LIST_FILE_CTL) object($@)
+ASM_OPTS = SET (large) DEBUG EP $(LIST_FILE_CTL) object($@)
+
+LINK_OPTS = \
+	CLASSES (XDATA (X:0x4dd0-X:0x4f40),\
+	CODE(C:0-C:0xffff), DATA(D:0x10-0x7f), IDATA(I:0x80-0xcf)) \
+	SEGMENTS($(DATA_MAP)) \
+	NOOVERLAY \
+	PAGELENGTH(60000) \
+	CODE
+
+DATA_MAP = ?STACK(D:0xD0)
+CODE_MAP = ?PR?RAMENTRY?JUMPTABLE(C:0x0), ?PR?*, ?C*
+
+LINK_OBJ_RAM = bluetooth global_variable kb_process keyscan led sys adc ram
+
+#LINK_OBJ_LIB = 
+
+LINK_OBJ_TMP_RAM = $(addsuffix .obj,$(LINK_OBJ_LIB) $(LINK_OBJ_RAM)) ..\patch\ipc.obj ..\patch\utilities.obj ..\patch\gpio.obj ..\patch\iic.obj
+LINK_OBJ_DEPENDENCIES_RAM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_RAM))
+LINK_OBJ_FILES_RAM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_RAM))
+
+LINK_OBJ_TMP_ROM = $(addsuffix .obj,$(LINK_OBJ_ROM))
+LINK_OBJ_DEPENDENCIES_ROM = $(addprefix $(OUTDIR)/, $(LINK_OBJ_TMP_ROM))
+LINK_OBJ_FILES_ROM = $(subst $(space),$(comma),$(LINK_OBJ_DEPENDENCIES_ROM))
+
+
+.SUFFIXES: .a51
+RAM_BIN = $(RAMTARGET).rom
+
+
+PROG_FILE = ..\rom\program\c51.prog
+RAM_FILES = $(RAM_MIF) $(RAM_BIN) $(EEPROM_FILE) $(PROG_FILE)
+
+$(OUTDIR)/%.obj : %.c hwreg.h
+	$(C51) $< "$(C_OPTS)"
+
+$(OUTDIR)/%.obj : %.a51
+	$(A51) $< "$(ASM_OPTS)"
+
+all : $(RAM_FILES) 
+
+
+$(TARGET) : $(LINK_OBJ_DEPENDENCIES_RAM)
+	$(BL51) $(LINK_OBJ_FILES_RAM) TO $@ "$(LINK_OPTS)"
+
+$(TARGETHEX) : $(TARGET)
+	$(OH51) $(TARGET)
+
+
+$(RAM_BIN) : $(TARGETHEX)
+
+
+$(RAM_MIF) : $(TARGETHEX)
+	perl $(UTIL_PATH)\hex2mif.pl < $< rammif > $@
+
+
+$(EEPROM_FILE) : $(RAM_BIN)
+	cd ..\rom\output; ..\util\geneep.exe; cp eeprom.dat ..\..\sim 
+
+$(PROG_FILE) : $(RAM_BIN)
+#	perl $(UTIL_PATH)\setarg.pl $< c51 > $@
+
+clean:  
+	del /Q $(OUTDIR)\*.* 
+
+
+lib:
+	$(LIB51) TRANSFER $(OUTDIR)\ipc.obj TO $(OUTDIR)\yichip.LIB
+	
+ext:
+	$(LIB51) EXTRACT $(OUTDIR)\yichip.LIB (ipc) TO $(OUTDIR)\ipc.obj
Index: YC1026_3mode_SDK_CUSTOMER/YCkbTool.bat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/YCkbTool.bat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/YCkbTool.bat	(working copy)
@@ -0,0 +1,70 @@
+@echo off
+:start
+set/p cmd=Please enter cmd, c/C for compiling, and d/D for downloading:
+if /I "%cmd%" equ "a" (goto compile_all)
+if /I "%cmd%" equ "A" (goto compile_all)
+if /I "%cmd%" equ "c" (goto compile)
+if /I "%cmd%" equ "C" (goto compile)
+if /I "%cmd%" equ "d" (goto download)
+if /I "%cmd%" equ "D" (goto download)
+if /I "%cmd%" equ "k" (goto reset)
+if /I "%cmd%" equ "K" (goto reset)
+if "%cmd%" equ "" (goto error)  else (goto error)
+
+:compile_all
+cd ..\btkb
+call do eep
+cd ..\c51
+
+:compile
+make clean
+make
+
+util\hex2mif.exe < output\fw.hex ram > output\fwram.rom
+copy .\patch\kb.dat + .\patch\rf.dat .\patch\sch.rom 
+util\transform_name2addr.exe .\patch\sch.rom .\output\sched.rom .\patch\memmap.format
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+copy .\output\*.obj .\patch\*.obj
+
+copy .\util\eeprom2fulleeprom.exe .\eeprom2fulleeprom.exe
+copy .\util\crc16.exe .\crc16.exe
+
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+del *.lst
+del *.obj
+
+copy eeprom.dat ..\eeprom.dat
+cd ..
+eeprom2fulleeprom.exe eeprom.dat 256>compare2.dat
+crc16.exe compare2.dat 2 >.\output\eeprom.dat
+del eeprom.dat
+del compare2.dat
+del eeprom2fulleeprom.exe
+del crc16.exe
+
+:end
+set cmd=0
+echo/
+goto start
+
+:error
+echo Cmd error, enter again
+goto end
+
+:reset
+e pu
+e ku
+goto end
+
+:download
+e p
+e pu
+e ep
+e k
+e ku
+e a
+e au
+goto end
+
Index: YC1026_3mode_SDK_CUSTOMER/adc.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/adc.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/adc.h	(working copy)
@@ -0,0 +1,39 @@
+#ifndef _ADC_H
+#define _ADC_H
+#include "common.h"
+#define ADC_ENABLE
+
+
+// GPIO5 0x30,   GPIO6 0x31,   GPIO7 0x32,
+//GPIO18 0x33,   GPIO19 0x34,   GPIO20 0x35,   GPIO21 0x36,    GPIO22 0x37
+#define ADC_CHANNEL				0x33	
+
+#define ADC_TYPE_VINLPM			0x01	// 1.8V~3.6V
+#define ADC_TYPE_HVIN			0x02	// 3.0~5.5V
+#define ADC_TYPE_GPIO			0x04	// 0~1.5V
+
+#define BAT_STATUS_NONE			0
+#define BAT_STATUS_LOW				1
+#define BAT_STATUS_SHUT_DOWN		2
+
+//battery check
+#define BATTERY_CHECK_INTERVAL 		5			// 500ms*5 = 2.5s
+#define INIT_BATTERY_VALUE   				0x7990
+#define LOW_BATTERY_FLASH_INTERVAL	4			
+#define LOW_BATTER_COEFFICIENT_1V1   	1.01
+#define LOW_BATTER_COEFFICIENT_1V0       0.81
+#define LOW_BATTER_COEFFICIENT_0V9	0.62
+
+#define LOW_BATTER_COEFFICIENT_3V3   	1.11
+#define LOW_BATTER_COEFFICIENT_3V2       1.07
+#define LOW_BATTER_COEFFICIENT_3V1	1.04
+#define LOW_BATTER_COEFFICIENT_3V0	1.01
+
+
+void YC_adc_check_timer500ms();
+void YC_adc_check() ;
+void YC_adc_init();
+
+#endif /* YC_ADC_H */
+
+
Index: YC1026_3mode_SDK_CUSTOMER/adc.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/adc.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/adc.c	(working copy)
@@ -0,0 +1,87 @@
+#include "adc.h"
+
+void YC_adc_init()
+{
+	byte i;
+	#ifndef  ADC_ENABLE
+		return;
+	#endif	
+	m_adc_channel = ADC_CHANNEL;
+	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+	g_variable.battery_value_index = 0;
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
+	{
+		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+	}
+
+	
+	if(m_adc_config_flag == ADC_TYPE_HVIN)
+	{
+		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
+	}
+	else if(m_adc_config_flag == ADC_TYPE_VINLPM)
+	{
+
+	}
+	else
+	{
+		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V0+m_adc0vBase;
+		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+	}
+	
+}
+
+void YC_adc_check() 
+{
+	byte i;
+	ulong batValue = 0;
+	#ifndef  ADC_ENABLE
+		return;
+	#endif	
+//	if(m_adcCurrentValue < m_adc0vBase) 
+//		return;
+
+	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
+	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+		g_variable.battery_value_index = 0;
+	for (i = 0; i < BAT_ARRAY_LEN; i++)
+	{
+		batValue += g_variable.battery_value[i];
+	}
+	batValue = batValue/BAT_ARRAY_LEN;
+
+	if(g_variable.battery_value[0] < g_variable.battery_level_shutdown)
+	{
+		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+	}
+	else
+	{
+		if (batValue < g_variable.battery_level_low)
+		{
+			g_variable.battery_status = BAT_STATUS_LOW;
+		}
+		else
+		{
+			g_variable.battery_status = BAT_STATUS_NONE;
+		}
+	}
+	
+}
+
+
+void YC_adc_check_timer500ms()
+{
+	// adc check timer	
+	if (g_variable.battery_check_interval)
+	{
+		g_variable.battery_check_interval--;
+		if (g_variable.battery_check_interval == 0)
+		{
+			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+			YC_adc_check();
+		}
+	}
+}
+
+
Index: YC1026_3mode_SDK_CUSTOMER/bluetooth.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/bluetooth.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/bluetooth.h	(working copy)
@@ -0,0 +1,32 @@
+#ifndef _BLUETOOTH_H
+#define _BLUETOOTH_H
+#include "common.h"
+
+
+#define DEVICE_MODE_BT_ONLY	0
+#define DEVICE_MODE_BLE_ONLY	1
+#define DEVICE_MODE_BT_BLE		0
+
+#define TYPE_BLE			0x01
+#define TYPE_BT			0x02
+#define TYPE_24G			0x03
+
+
+void YC_load_record_list(byte index);
+void YC_store_record_list(byte link_type,byte index);
+byte YC_check_is_connected();
+byte YC_check_need_reconnected();
+byte YC_cancel_reconnect();
+void YC_clear_reconnect_flag();
+byte YC_disconnect_all_link();
+void YC_start_reconnect();
+void YC_update_eeprom_data();
+
+
+void YC_get_ble_ramdon_lap();
+void  YC_clear_BT_same_address_record();
+
+
+#endif /* _BLUETOOTH_H */
+
+
Index: YC1026_3mode_SDK_CUSTOMER/bluetooth.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/bluetooth.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/bluetooth.c	(working copy)
@@ -0,0 +1,264 @@
+#include "bluetooth.h"
+
+
+void YC_load_record_list(byte index)
+{
+	if (g_variable.recon_count == 0)
+		return;
+	g_variable.recon_count--;
+	ble_reconnect_flag = 0;
+	if (bd_key_record_list[index].device_type == TYPE_BLE)		
+	{
+		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+		xmemcpy(m_le_ltk,bd_key_record_list[index].device_link_key,16);
+		xmemcpy(m_le_lap,bd_key_record_list[index].local_addr,6);
+		IPC_TxControlCmd(IPC_CMD_START_ADV_REC);		//ble reconnect
+		ble_reconnect_flag = 1;
+		g_variable.recon_count = 0;
+		m_ltk_exists = 1;
+	}
+	else if (bd_key_record_list[index].device_type == TYPE_BT)
+	{
+		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+		xmemcpy(m_linkkey,bd_key_record_list[index].device_link_key,16);
+		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+		m_link_key_exists = 1;
+	}
+	else		// bt fast connect
+	{
+		m_reconn_addr[0] = 0xFF;
+		m_reconn_addr[1] = 0xFF;
+		m_reconn_addr[2] = 0xFF;
+		m_reconn_addr[3] = 0xFF;
+		m_reconn_addr[4] = 0xFF;
+		m_reconn_addr[5] = 0xFF;
+		xmemclear_ff((byte *)m_linkkey,16); 
+		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+		m_link_key_exists = 1;
+	}
+}
+
+
+
+void YC_store_record_list(byte link_type,byte index)
+{
+	if (link_type == TYPE_BLE) 
+	{
+		bd_key_record_list[index].device_type = TYPE_BLE;
+		xmemcpy(bd_key_record_list[index].device_addr,m_remote_le_addr,6);
+		xmemcpy(bd_key_record_list[index].device_link_key,m_le_ltk,16);
+		xmemcpy(bd_key_record_list[index].local_addr,m_le_lap,6);
+	}
+	else if (link_type == TYPE_BT)
+	{
+		bd_key_record_list[index].device_type = TYPE_BT;
+		xmemcpy(bd_key_record_list[index].device_addr,m_remote_addr,6);
+		xmemcpy(bd_key_record_list[index].device_link_key,m_linkkey,16);
+	}
+}
+
+
+byte YC_check_is_connected()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED
+		|| g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED
+		|| g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		return 1;
+	}
+	return 0;
+}
+
+byte YC_check_need_reconnected()
+{
+	byte return_val = 0;
+	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+		return return_val;
+#if DEVICE_MODE_BT_ONLY
+	if ((m_ui_state_map & 0x4000) == 0x4000)
+#elif DEVICE_MODE_BLE_ONLY	
+	if ((m_ui_state_map & 0x0008) == 0x0008)
+#else	
+	if ((m_ui_state_map & 0x4008) == 0x4008)		//ADV and DISCOVERY
+#endif		
+		return return_val;
+
+	if(g_variable.pairing_g24_timeout)
+		return return_val;
+
+	if ( g_variable.br_currentState == CHANGE_TO_BR_DISCONNECT
+		&& g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT
+		&& g_variable.g24_currentState != CHANGE_TO_24G_CONNECTED
+	)
+	{
+		if(g_variable.recon_delay == 0)
+		{
+			g_variable.recon_delay = 10;
+			if ((g_variable.recon_count == 0)
+			&& (power_on_flag == 2))
+			{				
+				if (g_variable.current_device_num >= 1 && g_variable.current_device_num <= 3)
+				{
+					YC_key_action_handle(g_variable.current_device_num);
+				}
+				else
+				{
+					YC_key_action_handle(KEY_OPEN_24G);
+					return_val = 1;
+				}
+			}
+		}
+	}
+	else
+	{
+		g_variable.release_data = 0;
+		return_val = 1;
+	}
+	return return_val;
+}
+
+
+byte YC_cancel_reconnect()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_RECONNECT)
+	{
+		IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+		return 1;
+	}
+
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_DIRECT_ADV)
+	{
+		//stop adv
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		return 1;
+	}
+	return 0;
+}
+
+
+void YC_clear_reconnect_flag()  
+{
+	g_variable.recon_count = 0;
+	ble_reconnect_flag = 0;
+}
+
+
+byte YC_disconnect_all_link()
+{
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED 
+		||g_variable.br_currentState == CHANGE_TO_BR_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+		return 1;
+	}
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED 
+		||g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+		return 1;
+	}
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+	{
+		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+		return 1;
+	}
+	return 0;
+}
+
+
+void YC_start_reconnect()
+{
+	power_on_flag = 2;
+	if(g_variable.last_device_num > 3)
+		g_variable.last_device_num = 0;
+	g_variable.current_device_num = g_variable.last_device_num;
+	
+	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+	{
+		YC_key_action_handle(g_variable.current_device_num);
+	}
+	else	
+	{
+		if (m_24g_addr[0] == 0xff && m_24g_addr[1] == 0xff && m_24g_addr[2] == 0xff && m_24g_addr[3] == 0xff)
+		{
+			YC_key_action_handle(KEY_RECON_0);		// bt fast connect
+		}
+		else
+		{
+			YC_key_action_handle(KEY_START_24G);
+		}
+	}
+}
+
+
+
+void YC_get_ble_ramdon_lap()		
+{
+	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+	g_variable.ble_ramdon_lap1++;
+	g_variable.ble_ramdon_lap2++;
+	m_le_lap[1] = g_variable.ble_ramdon_lap1;
+	m_le_lap[2] = g_variable.ble_ramdon_lap2;
+}
+
+
+void  YC_clear_BT_same_address_record()
+{
+	byte record_index;
+	//if (pinCode_flag == 1)			//clear the same BT3.0 device address record
+	{
+		record_index = g_variable.current_device_num-1;
+		pinCode_flag= 0;
+		YC_store_record_list(2, record_index);
+
+		if(record_index != 0)
+		{
+			if(bd_key_record_list[0].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[0].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[0]), sizeof(BD_KEY_RECORD));
+			}
+		}
+
+		if(record_index != 1)
+		{
+			if(bd_key_record_list[1].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[1].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[1]), sizeof(BD_KEY_RECORD));
+			}
+		}
+
+		if(record_index != 2)
+		{
+			if(bd_key_record_list[2].device_type == 2) 
+			{
+				if (compare_str(bd_key_record_list[2].device_addr,bd_key_record_list[record_index].device_addr,6))
+					xmemclear_ff((byte *)(&bd_key_record_list[2]), sizeof(BD_KEY_RECORD));
+			}
+		}	
+	}
+}
+
+
+
+void YC_update_eeprom_data()
+{
+	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
+	{
+		if (g_variable.update_eeprom_flag != 3)
+			Delay1ms(200);
+		GPIO_Setout(EEPROM_WP_GPIO,0);
+		if (g_variable.update_eeprom_flag == 2)
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,(sizeof(BD_KEY_RECORD)*3) , (byte *)&bd_key_record_list);
+		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+		GPIO_Setout(EEPROM_WP_GPIO,1);
+		Delay1ms(10);
+		g_variable.update_eeprom_flag = 0;
+	}
+}
+
Index: YC1026_3mode_SDK_CUSTOMER/btreg.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/btreg.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/btreg.h	(working copy)
@@ -0,0 +1,1135 @@
+#ifndef _BT_REG_H_
+#define _BT_REG_H_
+#define	mem_le_adv_transmit                     	0x0000
+#define	mem_le_adv_waitcnt                      	0x0001
+#define	mem_le_adv_rcv                          	0x0002
+#define	mem_le_req_rcv                          	0x0003
+#define	mem_le_scanrsp_rcv                      	0x0004
+#define	mem_le_conn_rcv                         	0x0005
+#define	mem_inquiryscan_waitcnt                 	0x0006
+#define	mem_inquiryscan_rcvcnt                  	0x0007
+#define	mem_pagescan_waitcnt                    	0x0008
+#define	mem_pagescan_rcvcnt                     	0x0009
+#define	mem_pagescan_rcvfhscnt                  	0x000a
+#define	mem_slave_rcvcnt                        	0x000b
+#define	mem_page_transmit                       	0x000c
+#define	mem_page_rcv                            	0x000d
+#define	mem_page_rcv_fhs                        	0x000e
+#define	mem_master_rcvcnt                       	0x000f
+#define	mem_fhs_wait_counter                    	0x0010
+#define	mem_newconnto_counter                   	0x0011
+#define	mem_inquiry_transmit                    	0x0012
+#define	mem_inquiry_rcv                         	0x0013
+#define	mem_fw_ver                              	0x0014
+#define	mem_current_context                     	0x0015
+#define	mem_le_ch_mapped                        	0x0016
+#define	mem_last_freq                           	0x0017
+#define	mem_rssi                                	0x0018
+#define	mem_rx_type                             	0x0019
+#define	mem_rx_hec_err                          	0x001a
+#define	mem_rx_crc_err                          	0x001c
+#define	mem_context_ptr                         	0x001e
+#define	mem_display                             	0x0020
+#define	mem_bcd                                 	0x0028
+#define	mem_state                               	0x0030
+#define	mem_mode                                	0x0031
+#define	mem_tsniff                              	0x0032
+#define	mem_sniff_anchor                        	0x0034
+#define	mem_clk_offset                          	0x0038
+#define	mem_rx_window                           	0x003e
+#define	mem_plap                                	0x0040
+#define	mem_puap                                	0x0043
+#define	mem_pnap                                	0x0044
+#define	mem_conn_handle                         	0x0046
+#define	mem_arq                                 	0x0047
+#define	mem_lmp_to_send                         	0x0048
+#define	mem_lmi_opcode                          	0x0049
+#define	mem_lmo_reason                          	0x004a
+#define	mem_op                                  	0x004b
+#define	mem_state_map                           	0x004c
+#define	mem_supervision_timer                   	0x004d
+#define	mem_supervision_to                      	0x0051
+#define	mem_name_offset                         	0x0053
+#define	mem_key_size                            	0x0054
+#define	mem_conn_sm                             	0x0055
+#define	mem_aco                                 	0x0056
+#define	mem_kc                                  	0x0062
+#define	mem_conn_timer                          	0x0072
+#define	mem_sniff_attempt                       	0x0073
+#define	mem_sniff_timeout                       	0x0074
+#define	mem_dsniff                              	0x0075
+#define	mem_amaddr                              	0x0077
+#define	mem_lmo_opcode1                         	0x0078
+#define	mem_lmi_opcode1                         	0x0079
+#define	mem_lmo_reason1                         	0x007a
+#define	mem_lmo_tid1                            	0x007b
+#define	mem_lmo_opcode2                         	0x007c
+#define	mem_lmi_opcode2                         	0x007d
+#define	mem_lmo_reason2                         	0x007e
+#define	mem_lmo_tid2                            	0x007f
+#define	mem_hci_version                         	0x0080
+#define	mem_acl_pktlen                          	0x0083
+#define	mem_sco_pktlen                          	0x0085
+#define	mem_acl_pktcnt                          	0x0086
+#define	mem_sco_pktcnt                          	0x0088
+#define	mem_current_sniff_attempt               	0x008a
+#define	mem_current_sniff_timeout               	0x008b
+#define	mem_nfreq_index_inq                     	0x008c
+#define	mem_nfreq_index_page                    	0x008d
+#define	mem_ninqy_index                         	0x008e
+#define	mem_fhs_misc                            	0x008f
+#define	mem_tx_lch                              	0x0090
+#define	mem_tx_len                              	0x0091
+#define	mem_subsniff_instant                    	0x0093
+#define	mem_subsniff_rate                       	0x0097
+#define	mem_subsniff_tcmax                      	0x0098
+#define	mem_subsniff_tsniff                     	0x009a
+#define	mem_lpm_adjust                          	0x009b
+#define	mem_sync_clke                           	0x009c
+#define	mem_lpm_current_mult                    	0x00a2
+#define	mem_gpio_wakeup_low                     	0x00a3
+#define	mem_gpio_wakeup_high                    	0x00a7
+#define	mem_air_mode                            	0x00ab
+#define	mem_sco_asso_handle                     	0x00ac
+#define	mem_sco_handle                          	0x00ad
+#define	mem_esco_desco                          	0x00af
+#define	mem_esco_type                           	0x00b0
+#define	mem_neogotiation_state                  	0x00b1
+#define	mem_saved_amaddr                        	0x00b2
+#define	mem_esco_arq                            	0x00b3
+#define	mem_esco_saved_arq                      	0x00b4
+#define	mem_sco_obuf                            	0x00b5
+#define	mem_sco_ibuf                            	0x00d3
+#define	mem_sco_poll                            	0x00f1
+#define	mem_npage_index                         	0x00f2
+#define	mem_page_mode                           	0x00f3
+#define	mem_page_clk                            	0x00f4
+#define	mem_tst_pktcnt_sync                     	0x00f8
+#define	mem_tst_pktcnt_hec                      	0x00fa
+#define	mem_tst_pktcnt_crc                      	0x00fc
+#define	mem_tst_pktcnt_dmh                      	0x00fe
+#define	mem_tmp_buffer_head                     	0x0100
+#define	mem_tmp_buffer                          	0x0103
+#define	mem_tester_emulate                      	0x0153
+#define	mem_temp_payload                        	0x0154
+#define	test_mode_scenario                      	0x0154
+#define	test_mode_hopping_mode                  	0x0155
+#define	test_mode_tx_freq                       	0x0156
+#define	test_mode_rx_freq                       	0x0157
+#define	test_mode_power_mode                    	0x0158
+#define	test_mode_poll_period                   	0x0159
+#define	test_mode_packet_type                   	0x015a
+#define	test_mode_data_length                   	0x015b
+#define	mem_test_mode_old_debug_config          	0x015d
+#define	mem_tester_cnt                          	0x015e
+#define	mem_temp_am_addr                        	0x015f
+#define	mem_temp_arq                            	0x0160
+#define	mem_pdatatemp                           	0x0161
+#define	mem_len                                 	0x0169
+#define	mem_clkn_bt                             	0x016b
+#define	mem_clke_bt                             	0x016f
+#define	mem_dpll_clkn                           	0x0173
+#define	mem_connection_options                  	0x0177
+#define	mem_nameres_cnt                         	0x0178
+#define	mem_txptr                               	0x0179
+#define	mem_slot_offset                         	0x017b
+#define	extm_fhs_misc                           	0x017d
+#define	extm_newconn_am_addr                    	0x017e
+#define	extm_class                              	0x017f
+#define	extm_lap                                	0x0182
+#define	extm_uap                                	0x0185
+#define	extm_nap                                	0x0186
+#define	mem_debug_config                        	0x0189
+#define	mem_lch_code                            	0x018a
+#define	mem_fhs_am_addr                         	0x018b
+#define	mem_dpll_error                          	0x018c
+#define	mem_bdaddr_list_buff                    	0x018e
+#define	mem_select_list_item                    	0x01b2
+#define	mem_temp_reconn_record                  	0x01b3
+#define	mem_record_bt_mode                      	0x01b3
+#define	mem_temp_lap                            	0x01b4
+#define	mem_list_item_ptr                       	0x01ba
+#define	mem_eir                                 	0x01bc
+#define	mem_ucode_status                        	0x0220
+#define	mem_otp_ucode_flag                      	0x0221
+#define	mem_spid_tbuf                           	0x0223
+#define	mem_iicd_tbuf                           	0x0224
+#define	mem_addr_hi                             	0x0224
+#define	mem_addr_mi                             	0x0225
+#define	mem_addr_lo                             	0x0226
+#define	mem_iicd_addr                           	0x0227
+#define	mem_spid_rbuf                           	0x0228
+#define	mem_ucode_buf                           	0x022c
+#define	mem_ucode_len                           	0x022e
+#define	mem_sched_addr                          	0x0230
+#define	mem_ucode_ptr                           	0x0232
+#define	mem_ucode_keybuf                        	0x0234
+#define	mem_check_plap_temp                     	0x0244
+#define	mem_sensor_id                           	0x0256
+#define	mem_reconnect_flag                      	0x0257
+#define	mem_switch_fail_master_count            	0x0258
+#define	mem_app_evt_timer_count                 	0x0259
+#define	mem_dongle_count                        	0x025a
+#define	mem_le_addr_slave1                      	0x025b
+#define	mem_le_addr_slave2                      	0x0261
+#define	mem_le_peer_state                       	0x0267
+#define	mem_app_peer_addr                       	0x0268
+#define	mem_dongle_peers                        	0x026e
+#define	mem_dongle_pairing_cnt                  	0x026f
+#define	mem_dongle_signature                    	0x0270
+#define	mem_h5rx_ackcnt                         	0x0272
+#define	mem_check_err_acl_cont                  	0x0273
+#define	mem_rp_packets                          	0x0274
+#define	mem_packet_type                         	0x0275
+#define	mem_hci_sniff_conn_handle               	0x0277
+#define	mem_hci_sniff_max_interval              	0x0279
+#define	mem_hci_sniff_min_interval              	0x027b
+#define	mem_hci_sniff_attempt                   	0x027d
+#define	mem_hci_sniff_timeout                   	0x027f
+#define	mem_voice_setting                       	0x0281
+#define	mem_retransmission_effort               	0x0283
+#define	mem_sco_ptype                           	0x0284
+#define	mem_extm_uap_restore                    	0x0286
+#define	mem_h5rx_rptr                           	0x0289
+#define	mem_h5rx_ack                            	0x028b
+#define	mem_h5tx_ack                            	0x028c
+#define	mem_h5tx_rptr                           	0x028d
+#define	mem_h5tx_wptr                           	0x028f
+#define	mem_h5tx_free                           	0x0291
+#define	mem_h5rx_tmp                            	0x0293
+#define	mem_h5tx_seq                            	0x0294
+#define	mem_hci_acl_queue_wptr                  	0x0295
+#define	mem_hci_acl_queue_rptr                  	0x0297
+#define	mem_hci_acl_queue_end                   	0x0299
+#define	mem_hci_acl_queue_wcnt                  	0x029b
+#define	mem_hci_acl_cnt                         	0x029c
+#define	mem_hci_acl_tx_trigger_wptr             	0x029d
+#define	mem_ucode_id_local                      	0x029f
+#define	mem_temp                                	0x02a0
+#define	mem_timeup                              	0x02a8
+#define	mem_rega                                	0x02ac
+#define	mem_regb                                	0x02b0
+#define	mem_regc                                	0x02b4
+#define	mem_contr                               	0x02b7
+#define	mem_contw                               	0x02b9
+#define	mem_ucode_id_remote                     	0x02bb
+#define	mem_check_sum                           	0x02bc
+#define	mem_ucode_temp                          	0x02bd
+#define	mem_ucode_temp1                         	0x02be
+#define	mem_lock_in_enc                         	0x02bf
+#define	mem_hci_disconn_reason                  	0x02c0
+#define	mem_hci_curr_len                        	0x02c1
+#define	mem_hci_curr_target                     	0x02c2
+#define	mem_l2cap_mem_start                     	0x02c4
+#define	mem_l2cap_rxbuff1_len                   	0x02c4
+#define	mem_l2cap_rxbuff2_len                   	0x02c6
+#define	mem_l2cap_rxbuff_new                    	0x02c8
+#define	mem_l2cap_rxbuff_inuse                  	0x02ca
+#define	mem_l2cap_payload_ptr                   	0x02cb
+#define	mem_l2cap_rx_pkt_length                 	0x02cd
+#define	mem_l2cap_rx_cid                        	0x02cf
+#define	mem_l2cap_rx_done                       	0x02d1
+#define	mem_l2cap_signal_tx_buff_ptr            	0x02d2
+#define	mem_l2cap_signal_tx_payload_ptr         	0x02d4
+#define	mem_l2cap_signal_tx_length              	0x02d6
+#define	mem_sdp_tx_buff_ptr                     	0x02d8
+#define	mem_sdp_tx_payload_ptr                  	0x02da
+#define	mem_sdp_tx_pkt_length                   	0x02dc
+#define	mem_rfcomm_tx_buff_ptr                  	0x02de
+#define	mem_rfcomm_tx_payload_ptr               	0x02e0
+#define	mem_rfcomm_tx_pkt_length                	0x02e2
+#define	memL2CAP_T1                             	0x02e4
+#define	mem_CONTROL_tasks                       	0x02e6
+#define	mem_send_config_req                     	0x02e7
+#define	mem_config_identifier                   	0x02e8
+#define	mem_config_req_dest_CID                 	0x02e9
+#define	mem_rfcomm_malloc_fail_flag             	0x02eb
+#define	mem_message_to_uppersm                  	0x02ec
+#define	mem_upper_sm_remote_page                	0x02ed
+#define	mem_upper_sm_reconn                     	0x02ee
+#define	mem_upper_sm_ss                         	0x02ef
+#define	mem_tx_malloc_log                       	0x02f0
+#define	mem_l2cap_mem_end                       	0x0330
+#define	mem_scid                                	0x0330
+#define	mem_cmd_length                          	0x0332
+#define	mem_tt2                                 	0x0334
+#define	mem_tt3                                 	0x0336
+#define	mem_id                                  	0x0338
+#define	mem_psm                                 	0x033a
+#define	mem_l2cap_sdpres_delay_time             	0x033c
+#define	mem_le_rxbuf                            	0x0340
+#define	mem_le_mic                              	0x0378
+#define	mem_le_peer_mic                         	0x037c
+#define	mem_le_skdm                             	0x0380
+#define	mem_le_skds                             	0x0388
+#define	mem_le_peer_ltk                         	0x0390
+#define	mem_le_my_ltk                           	0x03a0
+#define	mem_le_mrand                            	0x03b0
+#define	mem_le_state                            	0x03c0
+#define	mem_le_mode                             	0x03c1
+#define	mem_le_tsniff                           	0x03c2
+#define	mem_le_anchor                           	0x03c4
+#define	mem_le_clk_offset                       	0x03c8
+#define	mem_le_receive_window                   	0x03ce
+#define	mem_le_plap                             	0x03d0
+#define	mem_le_conn_handle                      	0x03d6
+#define	mem_le_arq                              	0x03d7
+#define	mem_le_ch                               	0x03d8
+#define	mem_le_hop                              	0x03d9
+#define	mem_le_event_count                      	0x03da
+#define	mem_le_supervision_timer                	0x03dc
+#define	mem_le_instant                          	0x03e0
+#define	mem_le_channels                         	0x03e2
+#define	mem_le_conn_sm                          	0x03e3
+#define	mem_le_op                               	0x03e4
+#define	mem_le_access                           	0x03e5
+#define	mem_le_crcinit                          	0x03e9
+#define	mem_le_window_size                      	0x03ec
+#define	mem_le_slave_latency                    	0x03ed
+#define	mem_le_superto                          	0x03ef
+#define	mem_le_channel_map                      	0x03f1
+#define	mem_le_no_using                         	0x03f6
+#define	mem_le_peer_sca                         	0x03f8
+#define	mem_le_att_opcode                       	0x03f9
+#define	mem_le_att_handle                       	0x03fa
+#define	mem_le_err_code                         	0x03fc
+#define	mem_le_sk                               	0x03fd
+#define	mem_le_testtype                         	0x040d
+#define	mem_le_test_sync                        	0x040e
+#define	mem_le_test_pcnt                        	0x0410
+#define	mem_le_rxon_ts                          	0x0412
+#define	mem_le_rx_ll_opcode                     	0x0418
+#define	mem_le_notify_attr_start                	0x0419
+#define	mem_le_notify_len                       	0x041b
+#define	mem_cmd_le_create_conn                  	0x041c
+#define	mem_le_adv_temp                         	0x041d
+#define	mem_24g_id                              	0x0431
+#define	mem_lmo_header_length                   	0x0432
+#define	mem_lmo_header_opcode                   	0x0433
+#define	mem_lmo_payload                         	0x0434
+#define	mem_lmi_accepted_opcode                 	0x0445
+#define	mem_disconn_reason_send                 	0x0446
+#define	mem_tx_fixed_freq                       	0x0447
+#define	mem_rx_fixed_freq                       	0x0448
+#define	mem_ext_features_page                   	0x0449
+#define	mem_lmpext_ssp_enable                   	0x044a
+#define	mem_remote_sppcap                       	0x044c
+#define	mem_lmp_conn_state                      	0x044d
+#define	mem_soft_timer                          	0x044e
+#define	mem_pincode_state                       	0x0450
+#define	mem_sres_tid                            	0x0451
+#define	mem_accptsco_tid                        	0x0452
+#define	mem_auth_enable                         	0x0453
+#define	mem_wait_encryption                     	0x0454
+#define	mem_sniff_payload                       	0x0455
+#define	mem_aurand_send_delay_time              	0x0465
+#define	mem_module_temp_len                     	0x0469
+#define	mem_init_cnt                            	0x046b
+#define	mem_prcp_data                           	0x046d
+#define	mem_prcp                                	0x0481
+#define	mem_prcp_tx_len                         	0x0482
+#define	rx_buf_data_ptr                         	0x0483
+#define	memRemoteRPNBitRate                     	0x0485
+#define	memRemotePRNDataBits                    	0x0486
+#define	memRemotePRNStopBit                     	0x0487
+#define	memRemotePRNParity                      	0x0488
+#define	memRemotePRNFlowControl                 	0x0489
+#define	memRemotePRNXon                         	0x048a
+#define	memRemotePRNXoff                        	0x048b
+#define	mem_mod2div_temp                        	0x048c
+#define	mem_contw_temp                          	0x048f
+#define	mem_attrib_list                         	0x0491
+#define	mem_current_adss                        	0x0493
+#define	mem_current_channel                     	0x0494
+#define	mem_current_frame_type                  	0x0495
+#define	mem_current_fcs                         	0x0496
+#define	mem_current_length                      	0x0497
+#define	mem_rfcomm_uih_payload_ptr              	0x0499
+#define	mem_uih_cmd_type                        	0x049b
+#define	mem_uih_length                          	0x049c
+#define	mem_param_payload_ptr                   	0x049e
+#define	mem_ms_param                            	0x04a0
+#define	mem_pn_credit_flow_type_info            	0x04a1
+#define	mem_pn_priority                         	0x04a2
+#define	mem_pn_acknowledg_timer                 	0x04a3
+#define	mem_pn_max_retrans                      	0x04a4
+#define	mem_rfcomm_send_adss                    	0x04a5
+#define	mem_rfcomm_send_frame_type              	0x04a6
+#define	mem_rfcomm_send_fcs                     	0x04a7
+#define	mem_rfcomm_send_offset                  	0x04a8
+#define	mem_sdp_mem_start                       	0x04a9
+#define	mem_uuid_search_pat                     	0x04a9
+#define	mem_sdp_continue_byte                   	0x04ad
+#define	mem_sdp_pduid                           	0x04af
+#define	mem_sdp_transactionid                   	0x04b0
+#define	mem_sdp_attribute_maxbyte               	0x04b2
+#define	mem_sdp_record_maxcnt                   	0x04b4
+#define	mem_sdp_error_code                      	0x04b6
+#define	mem_sdp_record_handle                   	0x04be
+#define	mem_sdp_search_failed                   	0x04c2
+#define	mem_sdp_LACAP_found                     	0x04c3
+#define	mem_sdp_RFCOMM_found                    	0x04c4
+#define	mem_handle_list                         	0x04c5
+#define	mem_handle_humber                       	0x04dd
+#define	mem_sdp_mem_end                         	0x04de
+#define	mem_rxbuf                               	0x04de
+#define	mem_random_number                       	0x04ef
+#define	mem_round_key                           	0x04ff
+#define	mem_kinit                               	0x050f
+#define	mem_input_store                         	0x051f
+#define	mem_x                                   	0x052f
+#define	mem_y                                   	0x053f
+#define	mem_y15                                 	0x054e
+#define	mem_pin_length                          	0x054f
+#define	mem_pin                                 	0x0550
+#define	mem_key_store                           	0x0560
+#define	mem_key_store_end                       	0x0571
+#define	memp_ar_key                             	0x0572
+#define	memp_ar_input                           	0x0574
+#define	mem_ar_hround                           	0x0576
+#define	mem_ec_infinite                         	0x0580
+#define	mem_ec_loopc                            	0x0581
+#define	memdat                                  	0x0582
+#define	mem_ax                                  	0x0582
+#define	mem_ay                                  	0x059a
+#define	mem_az                                  	0x05b2
+#define	mem_bx                                  	0x05ca
+#define	mem_by                                  	0x05e2
+#define	mem_bz                                  	0x05fa
+#define	mem_cx                                  	0x0612
+#define	mem_cy                                  	0x062a
+#define	mem_cy5                                 	0x0641
+#define	mem_cz                                  	0x0642
+#define	mem_k                                   	0x065a
+#define	mem_align                               	0x0672
+#define	mem_tmp1                                	0x0682
+#define	memahbak                                	0x0682
+#define	mem_tmp5                                	0x069a
+#define	memahsave                               	0x06a2
+#define	mem_tmp2                                	0x06b2
+#define	memahsave_end                           	0x06c2
+#define	mem_addr_padding                        	0x06c2
+#define	mem_addr_value                          	0x06c3
+#define	mem_tmp3                                	0x06ca
+#define	mem_t1                                  	0x06ca
+#define	mem_addr_value_end                      	0x06cf
+#define	mem_addr_iocap_end                      	0x06d2
+#define	mem_tmp0                                	0x06e2
+#define	mem_t0                                  	0x06e2
+#define	mem_tmp0a                               	0x06ea
+#define	mem_t2                                  	0x06fa
+#define	mem_t3                                  	0x0712
+#define	mem_t7                                  	0x072a
+#define	mem_p                                   	0x0742
+#define	mem_a                                   	0x075a
+#define	mem_b                                   	0x0772
+#define	mem_gx                                  	0x078a
+#define	mem_gy                                  	0x07a2
+#define	memh0                                   	0x07ba
+#define	mem_sp_state_start                      	0x07da
+#define	mem_sp_state                            	0x07da
+#define	mem_master_sp_state                     	0x07db
+#define	mem_sp_flag                             	0x07dc
+#define	mem_master_sp_flag                      	0x07dd
+#define	mem_sp_calc                             	0x07de
+#define	mem_sp_dh_ready                         	0x07df
+#define	mem_sp_localsm                          	0x07e0
+#define	mem_pairing_auth                        	0x07e1
+#define	mem_sp_flag_start                       	0x07e2
+#define	mem_sp_local_key_send_count             	0x07e2
+#define	mem_sp_remote_key_recv_count            	0x07e3
+#define	mem_sp_remote_key_invalid               	0x07e4
+#define	mem_sp_dhkey_invalid                    	0x07e5
+#define	mem_sp_iocap_local                      	0x07e6
+#define	mem_sp_iocap_remote                     	0x07e9
+#define	mem_sp_gkey                             	0x07ec
+#define	mem_sp_pubkey_remote                    	0x07f0
+#define	mem_sp_pubkey_remote_x                  	0x07f0
+#define	mem_sp_pubkey_remote_x_end              	0x0808
+#define	mem_sp_pubkey_remote_y                  	0x0808
+#define	mem_sp_dhkey                            	0x0820
+#define	mem_sp_dhkey_end                        	0x0838
+#define	mem_sp_random_local                     	0x0838
+#define	mem_sp_random_local_end                 	0x0848
+#define	mem_sp_random_remote                    	0x0848
+#define	mem_sp_random_remote_end                	0x0858
+#define	memresult                               	0x0858
+#define	mem_sp_calc_result                      	0x0858
+#define	memh                                    	0x0858
+#define	memg                                    	0x085c
+#define	memf                                    	0x0860
+#define	meme                                    	0x0864
+#define	mem_sp_calc_result_high                 	0x0868
+#define	memd                                    	0x0868
+#define	memc                                    	0x086c
+#define	memb                                    	0x0870
+#define	mema                                    	0x0874
+#define	mem_sp_check_result                     	0x0878
+#define	mem_sp_confirm_remote                   	0x0888
+#define	mem_sp_prarm_stack                      	0x0898
+#define	mem_UI_data_txbuff_length               	0x08a8
+#define	mem_ipc_skip_continue_proc              	0x08aa
+#define	mem_ui_timer_temp                       	0x08ab
+#define	mem_ipc_rega_temp                       	0x08ab
+#define	mem_usb_status                          	0x08af
+#define	mem_usb_fifo_empty                      	0x08b0
+#define	mem_usb_read_len                        	0x08b1
+#define	mem_usb_rxbuf                           	0x08b2
+#define	mem_usb_cnt                             	0x08f2
+#define	mem_usb_tx_enable                       	0x08f4
+#define	mem_usb_tx_count                        	0x08f5
+#define	mem_usb_set_protocol_count              	0x08f6
+#define	mem_usb_desc                            	0x08f7
+#define	mem_usb_state                           	0x08f8
+#define	mem_usb_idle_cnt                        	0x08f9
+#define	mem_usb_idle_timeout                    	0x08fb
+#define	mem_usb_trig_timeout                    	0x08fd
+#define	mem_usb_setup                           	0x08ff
+#define	mem_usb_setup_bmRequestType             	0x08ff
+#define	mem_usb_setup_bRequest                  	0x0900
+#define	mem_usb_setup_bValue                    	0x0901
+#define	mem_usb_setup_bValueH                   	0x0902
+#define	mem_usb_setup_wIndex                    	0x0903
+#define	mem_usb_setup_bLength                   	0x0905
+#define	mem_usb_setup_bLengthH                  	0x0906
+#define	mem_usb0_setup                          	0x0907
+#define	mem_bufptr                              	0x090f
+#define	mem_remain                              	0x0911
+#define	mem_devicedesc                          	0x0912
+#define	mem_hidreportdesc_kb                    	0x0926
+#define	mem_hidreportdesc_m                     	0x09ee
+#define	mem_confdesc                            	0x0ab6
+#define	mem_string0                             	0x0b1a
+#define	mem_string1                             	0x0b1f
+#define	mem_string2                             	0x0b3d
+#define	mem_string3                             	0x0b5b
+#define	mem_hold_contr                          	0x0b79
+#define	mem_hold_contw                          	0x0b7b
+#define	mem_fifo_temp                           	0x0b7d
+#define	mem_c51_flag                            	0x0b7e
+#define	mem_c51_lpm_lock                        	0x0b7f
+#define	mem_c51_wait_lpm                        	0x0b80
+#define	mem_wakup_from_power_flag               	0x0b81
+#define	mem_lmp_bb_disconnect_reason            	0x0b82
+#define	mem_c51_eeprom_buf                      	0x0b83
+#define	mem_c51_ipc_txbuf                       	0x0be7
+#define	mem_c51_ipc_rxbuf                       	0x0c4b
+#define	mem_c51_iicd_buf                        	0x0caf
+#define	mem_24g_rxbuf                           	0x0cb3
+#define	mem_24g_txbuf                           	0x0cd5
+#define	mem_24g_txpayload                       	0x0cf5
+#define	mem_24g_rxpayload                       	0x0d17
+#define	mem_24g_common_temp                     	0x0d37
+#define	mem_packet_length_temp                  	0x0d57
+#define	mem_le_cur_handle_start                 	0x0d58
+#define	mem_le_cur_handle_end                   	0x0d5a
+#define	mem_le_search_res                       	0x0d5c
+#define	mem_patch00                             	0x4000
+#define	mem_patch01                             	0x4001
+#define	mem_patch02                             	0x4002
+#define	mem_patch03                             	0x4003
+#define	mem_patch04                             	0x4004
+#define	mem_patch05                             	0x4005
+#define	mem_patch06                             	0x4006
+#define	mem_patch07                             	0x4007
+#define	mem_patch08                             	0x4008
+#define	mem_patch09                             	0x4009
+#define	mem_patch0a                             	0x400a
+#define	mem_patch0b                             	0x400b
+#define	mem_patch0c                             	0x400c
+#define	mem_patch0d                             	0x400d
+#define	mem_patch0e                             	0x400e
+#define	mem_patch0f                             	0x400f
+#define	mem_patch10                             	0x4010
+#define	mem_patch11                             	0x4011
+#define	mem_patch12                             	0x4012
+#define	mem_patch13                             	0x4013
+#define	mem_patch14                             	0x4014
+#define	mem_patch15                             	0x4015
+#define	mem_patch16                             	0x4016
+#define	mem_patch17                             	0x4017
+#define	mem_patch18                             	0x4018
+#define	mem_patch19                             	0x4019
+#define	mem_patch1a                             	0x401a
+#define	mem_patch1b                             	0x401b
+#define	mem_patch1c                             	0x401c
+#define	mem_patch1d                             	0x401d
+#define	mem_patch1e                             	0x401e
+#define	mem_patch1f                             	0x401f
+#define	mem_patch20                             	0x4020
+#define	mem_patch21                             	0x4021
+#define	mem_patch22                             	0x4022
+#define	mem_patch23                             	0x4023
+#define	mem_patch24                             	0x4024
+#define	mem_patch25                             	0x4025
+#define	mem_patch26                             	0x4026
+#define	mem_patch27                             	0x4027
+#define	mem_patch28                             	0x4028
+#define	mem_patch29                             	0x4029
+#define	mem_patch2a                             	0x402a
+#define	mem_patch2b                             	0x402b
+#define	mem_patch2c                             	0x402c
+#define	mem_patch2d                             	0x402d
+#define	mem_patch2e                             	0x402e
+#define	mem_patch2f                             	0x402f
+#define	mem_patch30                             	0x4030
+#define	mem_patch31                             	0x4031
+#define	mem_patch32                             	0x4032
+#define	mem_patch33                             	0x4033
+#define	mem_patch34                             	0x4034
+#define	mem_patch35                             	0x4035
+#define	mem_patch36                             	0x4036
+#define	mem_patch37                             	0x4037
+#define	mem_patch38                             	0x4038
+#define	mem_patch39                             	0x4039
+#define	mem_patch3a                             	0x403a
+#define	mem_patch3b                             	0x403b
+#define	mem_patch3c                             	0x403c
+#define	mem_patch3d                             	0x403d
+#define	mem_patch3e                             	0x403e
+#define	mem_patch3f                             	0x403f
+#define	mem_context                             	0x4040
+#define	mem_current_amaddr                      	0x4130
+#define	mem_lpm_mode                            	0x4131
+#define	mem_device_option                       	0x4132
+#define	mem_scan_mode                           	0x4133
+#define	mem_last_clkn                           	0x4134
+#define	mem_features                            	0x4138
+#define	mem_lap                                 	0x4140
+#define	mem_uap                                 	0x4143
+#define	mem_nap                                 	0x4144
+#define	mem_npage                               	0x4146
+#define	mem_glap                                	0x4147
+#define	mem_class                               	0x414a
+#define	mem_iscan_window                        	0x414d
+#define	mem_iscan_interval                      	0x414f
+#define	mem_pscan_window                        	0x4151
+#define	mem_pscan_interval                      	0x4153
+#define	mem_page_interval                       	0x4155
+#define	mem_page_window                         	0x4157
+#define	mem_page_to                             	0x4159
+#define	mem_inq_window                          	0x415b
+#define	mem_fcomp_mul                           	0x415d
+#define	mem_fcomp_div                           	0x415e
+#define	mem_rx_window_init                      	0x415f
+#define	mem_rx_window_sniff                     	0x4161
+#define	mem_rf_init_ptr                         	0x4163
+#define	mem_last_type                           	0x4165
+#define	mem_last_type_esco                      	0x4166
+#define	mem_last_type_saved                     	0x4167
+#define	mem_retransmission_cnt                  	0x4168
+#define	mem_next_btclk                          	0x416a
+#define	mem_seqi                                	0x416e
+#define	mem_rf_rccal                            	0x416f
+#define	mem_handle_num                          	0x4170
+#define	mem_max_slot                            	0x4171
+#define	mem_eir_enable                          	0x4172
+#define	mem_afh_instant                         	0x4173
+#define	mem_afh_error_total                     	0x4177
+#define	mem_afh_cfg                             	0x4179
+#define	mem_afh_new_mod                         	0x417a
+#define	mem_afh_map_lo                          	0x417b
+#define	mem_afh_map_hi                          	0x4180
+#define	mem_afh_used                            	0x4185
+#define	mem_afh_index                           	0x4186
+#define	mem_afh_map_new                         	0x4188
+#define	mem_afh_map                             	0x4193
+#define	mem_afh_timer                           	0x41e3
+#define	mem_afh_classify_channel_map            	0x41e7
+#define	mem_chip_functions                      	0x41f1
+#define	mem_lpm_wake_lock                       	0x41f3
+#define	mem_lpm_interval                        	0x41f5
+#define	mem_lpm_overhead                        	0x41f7
+#define	mem_lpm_hibernate_switch                	0x41f8
+#define	mem_esco_addr                           	0x41f9
+#define	mem_sniff_unint_lost                    	0x41fa
+#define	mem_ptt                                 	0x41fb
+#define	mem_sleep_counter                       	0x41fc
+#define	mem_sleep_counter_all                   	0x4200
+#define	mem_sleep_clkn                          	0x4204
+#define	mem_sniff_rcv                           	0x420a
+#define	mem_sniff_lost                          	0x420d
+#define	mem_clks_per_lpo                        	0x4210
+#define	mem_lpm_mult                            	0x4213
+#define	mem_lpm_mult_timeout                    	0x4214
+#define	mem_lpm_mult_cnt                        	0x4215
+#define	mem_lpm_config                          	0x4216
+#define	mem_lpm_xtalcnt                         	0x4219
+#define	mem_lpm_buckcnt                         	0x421a
+#define	mem_lpm_ldocnt                          	0x421b
+#define	mem_lpm_isogate                         	0x421c
+#define	mem_lpm_isogate_final                   	0x421d
+#define	mem_saved_gpio                          	0x421e
+#define	mem_saved_gsel                          	0x422e
+#define	mem_saved_mark                          	0x4231
+#define	mem_saved_spidctrl                      	0x4239
+#define	mem_patch_ptr                           	0x423a
+#define	mem_patch_len                           	0x423c
+#define	mem_timers                              	0x423e
+#define	mem_link_key_exists                     	0x425e
+#define	mem_link_key_eeprom_head                	0x425f
+#define	mem_link_key                            	0x4262
+#define	mem_hci_cmd                             	0x4272
+#define	mem_hci_conn_handle                     	0x4273
+#define	mem_hci_plap                            	0x4274
+#define	mem_hci_puap                            	0x4277
+#define	mem_hci_pnap                            	0x4278
+#define	mem_uartd_rxitems_got_data              	0x427a
+#define	mem_uartd_rxitems_threshold             	0x427b
+#define	mem_uartd_rx_timeout                    	0x427c
+#define	mem_app_state                           	0x427e
+#define	mem_app_handshake_flag                  	0x427f
+#define	mem_sniff_param_interval                	0x4280
+#define	mem_sniff_param_attempt                 	0x4282
+#define	mem_sniff_param_timeout                 	0x4284
+#define	mem_cb_check_wakelock                   	0x4286
+#define	mem_cb_before_hibernate                 	0x4288
+#define	mem_cb_before_lpm                       	0x428a
+#define	mem_cb_le_process                       	0x428c
+#define	mem_cb_bt_process                       	0x428e
+#define	mem_cb_idle_process                     	0x4290
+#define	mem_cb_bb_event_process                 	0x4292
+#define	mem_cb_discovry_timeout                 	0x4294
+#define	mem_cb_att_write                        	0x4296
+#define	mem_cb_update_notify_value              	0x4298
+#define	mem_device_nums                         	0x429a
+#define	mem_eeprom_base                         	0x429b
+#define	mem_unsniff2sniff_timer_count           	0x429d
+#define	mem_wake_up_delay_timer                 	0x429e
+#define	mem_app_connection_options              	0x429f
+#define	mem_app_disconn_reason                  	0x42a0
+#define	mem_app_disconn_reason_flag             	0x42a2
+#define	mem_at_using_flag                       	0x42a4
+#define	mem_lpm_delay_after_sniff               	0x42a5
+#define	mem_xrecord_mode                        	0x42a9
+#define	mem_eeprom_block_size                   	0x42aa
+#define	mem_baud                                	0x42ac
+#define	mem_hci_lt_rx_state                     	0x42ae
+#define	mem_l2cap_xmem_start                    	0x42af
+#define	mem_l2cap_tx_multi_offset               	0x42af
+#define	mem_sdp_remote_cid                      	0x42b1
+#define	mem_rfcomm_remote_cid                   	0x42b3
+#define	mem_hid_ctrl_remote_cid                 	0x42b5
+#define	mem_hid_int_remote_cid                  	0x42b7
+#define	mem_sdp_state                           	0x42b9
+#define	mem_rfcomm_state                        	0x42ba
+#define	mem_hid_control_state                   	0x42bb
+#define	mem_hid_interrupt_state                 	0x42bc
+#define	mem_spp_state                           	0x42bd
+#define	mem_ML2CAP_comm_id                      	0x42be
+#define	mem_used_map                            	0x42bf
+#define	mem_tx_fifo0                            	0x42c0
+#define	mem_tx_fifo0_map                        	0x42c0
+#define	mem_tx_fifo0_ptr                        	0x42c1
+#define	mem_tx_fifo1                            	0x42c3
+#define	mem_tx_fifo1_map                        	0x42c3
+#define	mem_tx_fifo1_ptr                        	0x42c4
+#define	mem_tx_fifo2                            	0x42c6
+#define	mem_tx_fifo2_map                        	0x42c6
+#define	mem_tx_fifo2_ptr                        	0x42c7
+#define	mem_tx_fifo3                            	0x42c9
+#define	mem_tx_fifo3_map                        	0x42c9
+#define	mem_tx_fifo3_ptr                        	0x42ca
+#define	mem_tx_fifo_end                         	0x42cc
+#define	mem_l2cap_lpm_txbuf                     	0x42cc
+#define	mem_l2cap_flow_ctrl_flag                	0x43cc
+#define	mem_l2cap_pending_item                  	0x43cd
+#define	mem_l2cap_xmem_end                      	0x43ce
+#define	mem_le_dsniff                           	0x43ce
+#define	mem_le_conn_interval                    	0x43d0
+#define	mem_le_scan_enable                      	0x43d2
+#define	mem_le_scan_interval                    	0x43d3
+#define	mem_le_scan_window                      	0x43d5
+#define	mem_le_adv_led                          	0x43d7
+#define	mem_le_adv_enable                       	0x43d8
+#define	mem_le_adv_data_len                     	0x43d9
+#define	mem_le_adv_data                         	0x43da
+#define	mem_le_scan_data_len                    	0x43f9
+#define	mem_le_scan_data                        	0x43fa
+#define	mem_le_name_len                         	0x4419
+#define	mem_le_name                             	0x441a
+#define	mem_le_led_on_time                      	0x442e
+#define	mem_le_new_map                          	0x442f
+#define	mem_le_new_param                        	0x4434
+#define	mem_le_new_window                       	0x4434
+#define	mem_le_new_offset                       	0x4435
+#define	mem_le_new_interval                     	0x4437
+#define	mem_le_new_latency                      	0x4439
+#define	mem_le_new_timeout                      	0x443b
+#define	mem_le_temp                             	0x443d
+#define	mem_le_txheader                         	0x443e
+#define	mem_le_txlen                            	0x443f
+#define	mem_le_txpayload                        	0x4440
+#define	mem_le_txcid                            	0x4442
+#define	mem_le_l2cap                            	0x4444
+#define	mem_le_l2cap_response                   	0x4445
+#define	mem_le_txbdy                            	0x4446
+#define	mem_le_pcnt_tx                          	0x4465
+#define	mem_le_pcnt_rx                          	0x446a
+#define	mem_le_last_mic                         	0x446f
+#define	mem_le_ivm                              	0x4473
+#define	mem_le_ivs                              	0x4477
+#define	mem_le_ltk                              	0x447b
+#define	mem_ltk_exists                          	0x448b
+#define	mem_le_rconfirm                         	0x448c
+#define	mem_le_srand                            	0x449c
+#define	mem_le_iat                              	0x44ac
+#define	mem_le_rat                              	0x44ad
+#define	mem_le_preq                             	0x44ae
+#define	mem_le_pres                             	0x44b5
+#define	mem_le_search_handle_start              	0x44bc
+#define	mem_le_search_handle_end                	0x44be
+#define	mem_le_att_offset                       	0x44c0
+#define	mem_le_search_att_type                  	0x44c0
+#define	mem_le_notify_handle                    	0x44c2
+#define	mem_le_uuid                             	0x44c4
+#define	mem_le_handle_data_len                  	0x44c6
+#define	mem_le_handle_data                      	0x44c7
+#define	mem_le_adv_param                        	0x44d7
+#define	mem_le_adv_interval_min                 	0x44d7
+#define	mem_le_adv_interval_max                 	0x44d9
+#define	mem_le_adv_type                         	0x44db
+#define	mem_le_adv_own_addr_type                	0x44dc
+#define	mem_le_adv_direct_addr_type             	0x44dd
+#define	mem_le_adv_direct_addr                  	0x44de
+#define	mem_le_adv_channel_map                  	0x44e4
+#define	mem_le_adv_filter_policy                	0x44e5
+#define	mem_le_conn_param                       	0x44e6
+#define	mem_le_conn_peer_addr_type              	0x44e6
+#define	mem_le_conn_peer_addr                   	0x44e7
+#define	mem_le_conn_own_addr_type               	0x44ed
+#define	mem_le_conn_interval_min                	0x44ee
+#define	mem_le_conn_interval_max                	0x44f0
+#define	mem_le_conn_latency                     	0x44f2
+#define	mem_le_conn_superto                     	0x44f4
+#define	mem_le_scan_params                      	0x44f6
+#define	mem_le_scan_type                        	0x44f6
+#define	mem_le_scan_own_addr_type               	0x44f7
+#define	mem_le_scan_filter_policy               	0x44f8
+#define	mem_le_lap                              	0x44f9
+#define	mem_le_uap                              	0x44fc
+#define	mem_le_nap                              	0x44fd
+#define	mem_le_xtype_fifo                       	0x44ff
+#define	mem_le_att_list                         	0x4504
+#define	mem_le_switch_send_data                 	0x46f8
+#define	mem_le_transmit_window                  	0x46f9
+#define	mem_lmp_version                         	0x46fd
+#define	mem_lmp_subversion                      	0x4700
+#define	mem_local_name_length                   	0x4702
+#define	mem_local_name                          	0x4703
+#define	mem_local_name2                         	0x4706
+#define	mem_local_name_end                      	0x4746
+#define	mem_unsniff2sniff_timer                 	0x4747
+#define	mem_switch_flag                         	0x4748
+#define	mem_eeprom_ota_base_addr                	0x4749
+#define	mem_pn_dlci                             	0x474b
+#define	mem_pn_max_frame_size                   	0x474c
+#define	memFCStemp1                             	0x474e
+#define	memFCStemp2                             	0x474f
+#define	memFCStemp3                             	0x4750
+#define	mem_rfcomm_initiator                    	0x4751
+#define	mem_remote_spp_channel                  	0x4752
+#define	mem_HIUfcs_SPP                          	0x4753
+#define	mem_HIUfcs_SPP_WCredits                 	0x4754
+#define	mem_rfcomm_send_more_pkt                	0x4755
+#define	mem_remote_credits                      	0x4756
+#define	mem_credit_given                        	0x4757
+#define	mem_ms_channel                          	0x4758
+#define	memui_uuid_table                        	0x4759
+#define	mem_all_uuid_16bits                     	0x475b
+#define	mem_all_uuid_128bits                    	0x4771
+#define	mem_sp_local_key_invalid                	0x4793
+#define	mem_sp_private_key                      	0x4794
+#define	mem_sp_pubkey_local                     	0x47ac
+#define	mem_sp_pubkey_local_x                   	0x47ac
+#define	mem_sp_pubkey_local_x_end               	0x47c4
+#define	mem_sp_pubkey_local_y                   	0x47c4
+#define	mem_ssp_enable                          	0x47dc
+#define	mem_ipc_lock_bt                         	0x47dd
+#define	mem_ipc_lock_c51                        	0x47de
+#define	mem_ipc_fifo_bt2c51                     	0x47df
+#define	mem_ipc_fifo_c512bt                     	0x47e4
+#define	mem_led_switch                          	0x47e9
+#define	mem_ui_button_timer                     	0x47ea
+#define	mem_ui_button_last_state                	0x47eb
+#define	mem_ui_timer_last_btclk                 	0x47ec
+#define	mem_discovery_timeout_timer_count       	0x47f0
+#define	mem_hid_handshake_timer_count           	0x47f2
+#define	memui_reconnect_mode                    	0x47f3
+#define	mem_ui_state_map                        	0x47f4
+#define	mem_ui_profile_supported                	0x47f6
+#define	mem_led_gpio                            	0x47f7
+#define	mem_led_dark_time                       	0x47f8
+#define	mem_led_light_time                      	0x47fa
+#define	mem_ui_button_timeout                   	0x47fc
+#define	mem_ui_button_gpio                      	0x47fd
+#define	mem_discovery_timeout                   	0x47fe
+#define	mem_ir_ptr                              	0x4800
+#define	mem_ir_type                             	0x4802
+#define	mem_ir_cmd                              	0x4803
+#define	mem_ir_play_count                       	0x4804
+#define	mem_ir_report_len                       	0x4805
+#define	mem_ir_pulse_zero                       	0x4807
+#define	mem_ir_pulse_one                        	0x4808
+#define	mem_ir_pulses                           	0x4809
+#define	mem_ir_sequence_len                     	0x4825
+#define	mem_ir_sequence                         	0x4826
+#define	mem_acl_credits                         	0x4800
+#define	mem_allow_switch                        	0x4802
+#define	mem_hci_acl_queue_start                 	0x4803
+#define	mem_hci_wake_clk                        	0x4807
+#define	mem_kb_state                            	0x4800
+#define	mem_kb_report_data                      	0x4802
+#define	mem_kb_keys                             	0x4808
+#define	mem_kb_rcv_led_data                     	0x4809
+#define	mem_kb_fast_wake_last                   	0x480a
+#define	mem_led_cap_gpio                        	0x480e
+#define	mem_led_num_gpio                        	0x480f
+#define	mem_led_scl_gpio                        	0x4810
+#define	mem_kb_map                              	0x4811
+#define	mem_kb_uuid_list                        	0x4811
+#define	mem_24g_paring_tx_power_param           	0x4a87
+#define	mem_5db_tx_power_param                  	0x4a91
+#define	mem_current_event                       	0x4a9b
+#define	mem_ipc_lock_rx_data_bt                 	0x4a9c
+#define	mem_ipc_lock_rx_data_c51                	0x4a9d
+#define	mem_ipc_lock_tx_data_bt                 	0x4a9e
+#define	mem_ipc_lock_tx_data_c51                	0x4a9f
+#define	mem_ipc_2bt_fifo_head                   	0x4aa0
+#define	mem_ipc_2bt_fifo_end                    	0x4b36
+#define	mem_ipc_2C51_fifo_head                  	0x4b36
+#define	mem_ipc_2C51_fifo_end                   	0x4b9a
+#define	mem_ipc_2bt_read_index                  	0x4b9a
+#define	mem_ipc_2bt_write_index                 	0x4b9c
+#define	mem_ipc_2C51_read_index                 	0x4b9e
+#define	mem_ipc_2C51_write_index                	0x4ba0
+#define	mem_ipc_tx_evt_buff                     	0x4ba2
+#define	mem_ipc_tx_evt                          	0x4ba4
+#define	mem_ipc_bt_timer                        	0x4ba5
+#define	mem_ipc_rx_type                         	0x4ba7
+#define	mem_rfcomm_tx_buff                      	0x4ba8
+#define	mem_queue_ele_num                       	0x4ba8
+#define	mem_queue_write                         	0x4ba9
+#define	mem_queue_read                          	0x4bab
+#define	mem_queue_start                         	0x4bad
+#define	mem_uart_packet                         	0x4bad
+#define	mem_data_ele0                           	0x4bb9
+#define	mem_data_ele1                           	0x4bc5
+#define	mem_data_ele2                           	0x4bd1
+#define	mem_queue_end                           	0x4bdd
+#define	mem_queue_temp                          	0x4bdd
+#define	mem_24g_rxdata_length                   	0x4bdf
+#define	mem_24g_pid                             	0x4be0
+#define	mem_24g_datalen                         	0x4be1
+#define	mem_24g_data_type                       	0x4be2
+#define	mem_24g_txlen                           	0x4be3
+#define	mem_24g_rx_window                       	0x4be4
+#define	mem_24g_ensure                          	0x4be6
+#define	mem_24g_get_ack_fail                    	0x4be7
+#define	mem_24g_retry                           	0x4be8
+#define	mem_24g_ch                              	0x4be9
+#define	mem_24g_current_ch_number               	0x4bea
+#define	mem_24g_paring_addr                     	0x4beb
+#define	mem_24g_pairing_sm                      	0x4bef
+#define	mem_24g_ch_map1                         	0x4bf0
+#define	mem_24g_ch_map2                         	0x4bf4
+#define	mem_24g_ch_map3                         	0x4bf8
+#define	mem_24g_ch_map4                         	0x4bfc
+#define	mem_24g_addr                            	0x4c00
+#define	mem_24g_check_dongle_times              	0x4c04
+#define	mem_24g_device_addr                     	0x4c06
+#define	mem_24g_no_ack                          	0x4c0a
+#define	mem_24g_sta_crc                         	0x4c0b
+#define	mem_24g_sta_pid                         	0x4c0e
+#define	mem_24g_max_retry                       	0x4c0f
+#define	mem_24g_mode                            	0x4c10
+#define	mem_24g_hop_pac_retry                   	0x4c11
+#define	mem_24g_idle_timeout                    	0x4c12
+#define	mem_24g_idle_cnt                        	0x4c13
+#define	mem_24g_auto_paring_switch              	0x4c14
+#define	mem_24g_enter_lpm_timer                 	0x4c15
+#define	mem_24g_syncword                        	0x4c16
+#define	mem_24g_syncword_crc8                   	0x4c18
+#define	mem_24g_get_syncword_crc8               	0x4c19
+#define	mem_24g_discard_cnt                     	0x4c1a
+#define	mem_cb_24g_data                         	0x4c1c
+#define	mem_24g_lasttx                          	0x4c1e
+#define	mem_power_ctrl_pac_succ_cnt             	0x4c27
+#define	mem_power_ctrl_level                    	0x4c28
+#define	mem_rssi_avg_received                   	0x4c29
+#define	mem_rssi_hex_received                   	0x4c2a
+#define	mem_rssi_signal_buf                     	0x4c2b
+#define	mem_rssi_noise_buf                      	0x4c33
+#define	mem_rssi_noise_index                    	0x4c3b
+#define	mem_rssi_signal_index                   	0x4c3c
+#define	mem_tx_power                            	0x4c3d
+#define	mem_tx_power_temp                       	0x4c3e
+#define	mem_cnt                                 	0x4c3f
+#define	mem_last_txlch                          	0x4c42
+#define	mem_last_txlen                          	0x4c43
+#define	mem_last_txdata                         	0x4c45
+#define	mem_ipc_last_check_timer                	0x4c59
+#define	mem_prepare_write_len                   	0x4c5d
+#define	mem_ipc_c51_timer                       	0x4c5e
+#define	mem_le_rx_window                        	0x4c60
+#define	mem_le_find_type_value_start_handle     	0x4c61
+#define	mem_le_find_type_value_end_handle       	0x4c63
+#define	mem_le_cur_att_type                     	0x4c65
+#define	mem_le_search_len                       	0x4c67
+#define	mem_le_ll_unknown_type                  	0x4c68
+#define	mem_le_pairing_state                    	0x4c69
+#define	mem_le_local_mtu                        	0x4c6a
+#define	mem_le_connection_updata_param          	0x4c6c
+#define	mem_ltk_states                          	0x4c7c
+#define	mem_pair_state                          	0x4c7d
+#define	mem_empty_count                         	0x4c7e
+#define	mem_shutter_find_type_value_flag        	0x4c7f
+#define	mem_le51_payload_len                    	0x4c80
+#define	mem_le51_cmd                            	0x4c81
+#define	mem_le51_tx_length                      	0x4c82
+#define	mem_le51_txbuff_inuse                   	0x4c83
+#define	mem_le51_txbuf                          	0x4c84
+#define	mem_ipc_bt_100ms_timer                  	0x4c8d
+#define	mem_ipc_c51_100ms_timer                 	0x4c8e
+#define	mem_adc_config_flag                     	0x4c8f
+#define	mem_adc_channel                         	0x4c90
+#define	mem_adc_0v                              	0x4c91
+#define	mem_adc_3v                              	0x4c93
+#define	mem_adc_current_value                   	0x4c95
+#define	mem_hibernate_flag                      	0x4c97
+#define	mem_new_supervision_to                  	0x4c98
+#define	mem_kb_wake_timer                       	0x4c9a
+#define	mem_kb_last_data                        	0x4c9b
+#define	mem_kb_keycount                         	0x4caf
+#define	mem_led_cap_delay_timer                 	0x4cb0
+#define	mem_test                                	0x4cb1
+#define	mem_seq                                 	0x4cb4
+#define	mem_recon_index                         	0x4cb5
+#define	mem_power_on_flag                       	0x4cb6
+#define	mem_caps_num_lock                       	0x4cb7
+#define	mem_att_report1                         	0x4cb8
+#define	mem_att_report2                         	0x4cba
+#define	mem_att_report3                         	0x4cbc
+#define	mem_suspend_flag                        	0x4cbe
+#define	mem_32asm_data_end                      	0x4cbf
+#define	mem_store_ltk_timer                     	0x4d37
+#define	mem_reconnect_continue                  	0x4d38
+#define	mem_le_pin_code                         	0x4d39
+#define	mem_24g_enter_hibernate                 	0x4d3d
+#define	mem_24g_txfail_cnt                      	0x4d45
+#define	mem_mouse_retry_flag                    	0x4d46
+#define	mem_adc_pu_bit                          	0x4d47
+#define	mem_at_gpio                             	0x4800
+#define	mem_module_wake_up_gpio                 	0x4801
+#define	mem_module_state_gpio                   	0x4802
+#define	mem_module_connect_state_gpio           	0x4803
+#define	mem_module_version                      	0x4804
+#define	mem_last_uart_clock                     	0x480a
+#define	mem_current_packet_length               	0x480e
+#define	mem_module_prepare_tx_len               	0x4810
+#define	mem_module_state                        	0x4812
+#define	mem_module_task                         	0x4813
+#define	mem_cmode_addr                          	0x4814
+#define	mem_at_scan_time                        	0x481a
+#define	mem_prarm_pswd                          	0x481c
+#define	mem_prarm_uart                          	0x4820
+#define	mem_prarm_blename                       	0x4824
+#define	mem_prarm_name                          	0x4827
+#define	mem_prarm_bleadss                       	0x482b
+#define	mem_prarm_adss                          	0x482e
+#define	mem_prarm_vers                          	0x4832
+#define	mem_prarm_class                         	0x4836
+#define	mem_prarm_clrflg                        	0x483b
+#define	mem_prarm_reconn                        	0x4841
+#define	mem_prarm_bledis                        	0x4847
+#define	mem_prarm_dis                           	0x4849
+#define	mem_prarm_stsn                          	0x484c
+#define	mem_prarm_atp                           	0x4850
+#define	mem_prarm_list                          	0x4853
+#define	mem_prarm_role                          	0x4857
+#define	mem_prarm_sniff                         	0x485b
+#define	mem_prarm_ldev                          	0x4860
+#define	mem_prarm_rssi                          	0x4864
+#define	mem_prarm_cdev                          	0x4868
+#define	mem_prarm_bleinqr                       	0x486c
+#define	mem_prarm_inqr                          	0x486f
+#define	mem_prarm_cmode                         	0x4873
+#define	mem_prarm_mode                          	0x4878
+#define	mem_prarm_dmstate                       	0x487c
+#define	mem_prarm_discov                        	0x4883
+#define	mem_prarm_ota                           	0x4889
+#define	mem_prarm_bleconn                       	0x488c
+#define	mem_prarm_conn                          	0x488e
+#define	mem_prarm_pageout                       	0x4892
+#define	mem_prarm_recfail                       	0x4899
+#define	mem_module_uuid_list                    	0x48a0
+#define	mem_mouse_x                             	0x4800
+#define	mem_mouse_y                             	0x4802
+#define	mem_mouse_z                             	0x4804
+#define	mem_mouse_key                           	0x4805
+#define	mem_mouse_z_last                        	0x4806
+#define	mem_mouse_z_before                      	0x4807
+#define	mem_mouse_z_now                         	0x4808
+#define	mem_mouse_z_data                        	0x4809
+#define	mem_mouse_move_flag                     	0x480a
+#define	mem_reconnect_timeout                   	0x480b
+#define	mem_mouse_direct_timeout                	0x480c
+#define	mem_mouse_no_data_timeout               	0x480e
+#define	mem_mouse_blank_data_timeout            	0x4810
+#define	mem_mouse_discovery_timer               	0x4812
+#define	mem_mouse_direct_timer                  	0x4814
+#define	mem_mouse_no_data_timer                 	0x4816
+#define	mem_mouse_blank_data_timer              	0x4818
+#define	mem_mouse_send_blank_timer              	0x481a
+#define	mem_mouse_dpi                           	0x481b
+#define	mem_mouse_dpi_button_state              	0x481c
+#define	mem_mouse_test_cnt                      	0x481d
+#define	mem_le_hibernate_timer                  	0x481e
+#define	mem_mouse_mode_state                    	0x4820
+#define	mem_sensor_type                         	0x4821
+#define	mem_lbutton_gpio                        	0x4822
+#define	mem_rbutton_gpio                        	0x4823
+#define	mem_mbutton_gpio                        	0x4824
+#define	mem_dpi_button_gpio                     	0x4825
+#define	mem_sensor_data_gpio                    	0x4826
+#define	mem_whee_a_data_gpio                    	0x4827
+#define	mem_whee_b_data_gpio                    	0x4828
+#define	mem_conn_cnt                            	0x4829
+#define	mem_mouse_uuid_list                     	0x482a
+#define	mem_shutter_send_data                   	0x4800
+#define	mem_shutter_key_temp                    	0x4804
+#define	mem_shutter_send_length                 	0x4805
+#define	mem_shutter_clkn_bt_last                	0x4806
+#define	mem_shutter_key                         	0x480a
+#define	mem_shutter_flag                        	0x480b
+#define	mem_shutter_cable_unplug_conut          	0x480c
+#define	mem_shutter_hid_disconn_count           	0x480d
+#define	mem_shutter_1key_send_sm                	0x480e
+#define	mem_shutter_iphonekey_gpio              	0x480f
+#define	mem_shutter_androidkey_gpio             	0x4810
+#define	mem_shutter_key_number                  	0x4811
+#define	mem_shutter_uuid_list                   	0x4812
+#define	mem_mcmd                                	0xff0
+#define	mem_mouse_data                          	0xff1
+#define	mem_l2cap_rxbuff1                       	0x1000
+#define	mem_l2cap_rxbuff2                       	0x1400
+#define	mem_tx_buff0                            	0x1800
+#define	mem_tx_buff1                            	0x1880
+#define	mem_tx_buff2                            	0x1900
+#define	mem_tx_buff3                            	0x1980
+#define	mem_tx_buff4                            	0x1a00
+#define	mem_tx_buff5                            	0x1a80
+#define	mem_tx_buff6                            	0x1b00
+#define	mem_tx_buff7                            	0x1b80
+#define	mem_h5rx_buf                            	0x1800
+#define	mem_h5rx_buf_end                        	0x1bff
+#define	mem_h5tx_buf                            	0x1c00
+#define	mem_h5tx_buf_end                        	0x1fff
+#define	mem_module_rx_buf                       	0x4a00
+#define	mem_module_rx_buf_end                   	0x4fff
+#define	mem_module_tx_buf                       	0x1c00
+#define	mem_module_tx_buf_end                   	0x1fff
+#define	mem_ir_record                           	0x1800
+#define	mem_ir_record_max                       	0x1c
+#define	memk                                    	0x4b00
+#endif
Index: YC1026_3mode_SDK_CUSTOMER/c.bat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/c.bat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/c.bat	(working copy)
@@ -0,0 +1,10 @@
+perl util\hex2mif.pl < output\fw.hex ram > output\fwram.rom
+copy .\patch\kb.dat + .\patch\rf.dat .\patch\sch.rom 
+perl util\transform_name2addr.pl .\patch\sch.rom .\output\sched.rom .\patch\memmap.format
+copy .\patch\ramcode.rom .\output\
+copy .\patch\geneep.exe .\output\
+@rem copy .\patch\*.obj .\output\*.obj
+cd output
+geneep geneep ramcode.rom fwram.rom sched.rom
+cd ..
+:end
Index: YC1026_3mode_SDK_CUSTOMER/common.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/common.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/common.h	(working copy)
@@ -0,0 +1,19 @@
+#ifndef _YC_INCLUDE_H_
+#define _YC_INCLUDE_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+#include "sys.h"
+#include "utilities.h"
+#include "kbhid.h"
+#include "global_variable.h"
+#include "keyscan.h"
+#include "gpio.h"
+#include "led.h"
+#include "bluetooth.h"
+#include "kb_process.h"
+#include "ipc.h"
+#include "iic.h"
+#include "adc.h"
+#endif
+
Index: YC1026_3mode_SDK_CUSTOMER/global_variable.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/global_variable.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/global_variable.h	(working copy)
@@ -0,0 +1,170 @@
+#ifndef _GLOBAL_VARIABLE_H_
+#define _GLOBAL_VARIABLE_H_
+#include "common.h"
+
+#define BAT_ARRAY_LEN				4
+
+typedef struct c51_device_state
+{
+	 byte currentState ;
+	 byte currentSubState;
+	 byte currentStateBefore;
+}DEVICE_STATE;
+
+typedef enum device_mode
+{
+	DEVICE_24G_MODE,
+	DEVICE_BLE_MODE,
+	DEVICE_BR_MODE,
+	DEVICE_MODE_NUM,
+}DEVICE_CURRENT_MODE;
+
+
+typedef enum led_type
+{
+	STYLE_NONE,
+	STYLE_BT_PAIRING,
+	STYLE_LOW_BAT,
+	STYLE_DEVICE_1,
+	STYLE_DEVICE_2,
+	STYLE_DEVICE_3,
+	STYLE_24G_PAIRING,
+	STYLE_BT_RECON,
+}EVT_LED_STYLE;
+
+typedef struct device_recode{
+	byte  device_type;
+	byte  device_addr[6];
+	byte  device_link_key[16] ;
+	byte  local_addr[6];
+}BD_KEY_RECORD;
+
+
+typedef struct c51_global_variable		// 0x4cbf
+{
+	 byte update_eeprom_flag;		// 0x4cbf
+	 byte last_device_num;			// 0x4cc0
+	 byte system_mode;			// 0x4cc1
+	 byte power_on_action;			// 0x4cc2
+	 byte current_device_num;		// 0x4cc3
+	 byte temp_device_num;		// 0x4cc4
+
+	 byte g24_currentState;			// 0x4cc5
+	 byte g24_currentSubState;		// 0x4cc6
+	 byte ble_currentState;			// 0x4cc7
+	 byte ble_currentSubState;		// 0x4cc8
+	 byte br_currentState;			// 0x4cc9
+	 byte br_currentSubState;		// 0x4cca
+	 byte history_state;			// 0x4ccb
+
+	 byte button_reconnect_flag;	// 0x4ccc
+	 byte button_24G_rec_flag;		// 0x4ccd
+	 byte button_flag;				// 0x4cce
+	 byte button_timer[4];			// 0x4ccf~0x4cd2
+ 
+	 byte battery_check_interval;			// 0x4cd3
+	 byte battery_value_index;				// 0x4cd4
+	 byte battery_status;					// 0x4cd5
+	 word battery_value[BAT_ARRAY_LEN];	// 0x4cd6~0x4cdd
+	 word battery_level_low;				// 0x4cde
+	 word battery_level_shutdown;			// 0x4ce0
+
+	 byte battery_low_led_flash_interval;		// 0x4ce2
+
+		 
+	 word sleepTimer;						// 0x4ce3
+	 byte powerOn_timer;					// 0x4ce5
+	 byte sys_numlockled_on_timer;			// 0x4ce6
+	 byte sys_capslockled_on_timer;			// 0x4ce7
+	 byte sys_scrolllockled_on_timer;		// 0x4ce8
+	 byte pairing_timeout;					// 0x4ce9
+	 byte delay_enter_lpm_timer;			// 0x4cea
+	 
+	 byte release_data;					// 0x4ceb
+	 byte lockLpm;	 					// 0x4cec
+	 byte key_action;						// 0x4ced
+
+	 byte pairing_g24_timeout;				//0x4cee
+	 byte recon_delay;						// 0x4cef
+	 byte recon_count;						// 0x4cf0
+	 byte recon_continue;					// 0x4cf1
+	 byte ble_ramdon_lap1;					// 0x4cf2
+	 byte ble_ramdon_lap2;					// 0x4cf3 
+	 byte key_combination_step;			// 0x4cf4
+	 byte key_combination_ctrl;				// 0x4cf5
+	 byte key_combination_keyvalue;		// 0x4cf6
+	 byte battery_low_led_flash_flag;		// 0x4cf7
+	
+	 byte mouse_data_send_flag;
+	 byte sensor_key;
+	 byte sensor_x_l;
+	 byte sensor_x_h;
+	 byte sensor_y_l;
+	 byte sensor_y_h;
+	 byte sensor_wheel;
+	 byte sensor_titl;
+	 byte test_buff;
+	
+}G_VARIABLE_MAP;
+
+
+
+extern G_VARIABLE_MAP xdata g_variable;
+
+extern BD_KEY_RECORD xdata bd_key_record_list[3] ;
+
+ extern xbyte m_caps_num_lock_last;
+
+ extern xbyte iOS_rec_pinCode;
+ extern xbyte pinCode_flag;
+ extern xbyte le_pin_code_len;
+ extern xbyte power_on_flag;
+ extern xbyte repeat_send_24g;
+ extern xbyte get_24g_led_send;
+ extern xbyte ble_reconnect_flag;
+ extern xbyte press_long_time_flag;
+ extern xbyte long_press_flag;
+ extern xbyte standard_key_release_flag;
+ extern xbyte fn_flag;
+ extern xbyte fn_tx_flag;
+ extern xbyte fn_flag_last;
+ extern xbyte fn_lock_flag;
+ extern xbyte ksSelMapOld[];
+ extern xbyte ksSelMapCheck[];
+ extern xbyte ksSelMapCurr[]; 
+ extern xbyte multikey[9];
+ extern xbyte mult_key_value;
+ extern xbyte mult_key_status;
+ extern xbyte recon_index;
+
+ extern xbyte delayChgInvTimer;
+ extern xbyte action_timeout;
+ extern xbyte switch_role_timer;
+
+
+extern xbyte hidBuff[10] ;
+extern xbyte  m_link_key_exists  ;
+extern xbyte  m_ltk_exists  ;
+extern xbyte m_remote_le_addr[6]  ;
+extern xword m_ui_state_map  ;
+extern xbyte m_linkkey[16]   ;
+extern xbyte m_remote_addr[6]  ;
+extern xbyte m_reconn_addr[6]  ;
+extern xbyte m_le_ltk[16]  ;
+extern byte m_24g_addr[4] ;
+extern byte kscurrmult;
+extern xbyte m_le_lap[6];
+extern xbyte m_reset_reg;
+extern xbyte m_lpm_mode;
+extern ulong le_pin_code;
+extern xword m_adcCurrentValue;
+extern xword m_adc3vValue; 
+extern xword m_adc0vBase;
+extern volatile xbyte m_adc_config_flag;
+extern volatile xbyte  m_power_on_flag;
+extern volatile xbyte m_caps_num_lock;
+extern volatile xbyte m_reconnect_continue;
+extern volatile xbyte m_adc_channel;
+extern volatile xbyte m_wakup_from_power_flag;
+
+#endif //_GLOBAL_VARIABLE_H_
Index: YC1026_3mode_SDK_CUSTOMER/global_variable.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/global_variable.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/global_variable.c	(working copy)
@@ -0,0 +1,274 @@
+#include "global_variable.h"
+#include "Btreg.h"
+
+ 
+G_VARIABLE_MAP xdata g_variable _at_ mem_32asm_data_end;
+BD_KEY_RECORD xdata bd_key_record_list[3] ;
+
+
+// xbyte data random at 4dd0 to 4f40: makefile
+ xbyte m_caps_num_lock_last;
+ xbyte iOS_rec_pinCode;
+ xbyte pinCode_flag;
+ xbyte le_pin_code_len;
+ xbyte power_on_flag;
+ xbyte repeat_send_24g;
+ xbyte get_24g_led_send;
+ xbyte ble_reconnect_flag;
+ xbyte press_long_time_flag;
+ xbyte long_press_flag;
+ xbyte standard_key_release_flag;
+ xbyte fn_flag;
+ xbyte fn_flag_last;
+ xbyte fn_tx_flag;
+ xbyte fn_lock_flag;
+
+ xbyte multikey[9];
+ xbyte mult_key_value;
+ xbyte mult_key_status;
+ xbyte recon_index;
+
+ xbyte delayChgInvTimer;
+ xbyte action_timeout;
+ xbyte switch_role_timer;
+
+
+volatile xbyte ksSelMapOld[KB_KSCAN_COL_NUM] _at_ 0x4d93;
+volatile xbyte ksSelMapCheck[KB_KSCAN_COL_NUM] _at_ 0x4da8;	// 4d93+20 = 4da8
+volatile xbyte ksSelMapCurr[KB_KSCAN_COL_NUM] _at_ 0x4dbc; 	// 4da8+20 = 4dbc
+volatile xbyte hidBuff[10] _at_ mem_mouse_x;
+volatile xbyte  m_link_key_exists _at_ mem_link_key_exists;
+volatile xbyte m_linkkey[16] _at_ mem_link_key ;
+volatile xbyte  m_ltk_exists _at_ mem_ltk_exists;
+volatile xbyte m_le_ltk[16] _at_ mem_le_ltk;
+volatile xbyte m_remote_le_addr[6] _at_ mem_le_plap;
+volatile xbyte m_remote_addr[6] _at_ mem_plap;
+volatile xbyte m_reconn_addr[6] _at_ mem_hci_plap;
+volatile byte m_24g_addr[4] _at_ mem_24g_addr;
+volatile xbyte m_le_lap[6] _at_ mem_le_lap;
+
+volatile byte kscurrmult _at_ mem_lpm_mult;
+volatile xword m_ui_state_map _at_ mem_ui_state_map;
+volatile xbyte m_reset_reg _at_ 0x8010;
+volatile xbyte m_lpm_mode _at_ mem_lpm_mode;
+volatile ulong le_pin_code _at_ mem_le_pin_code;
+volatile xword m_adcCurrentValue _at_ mem_adc_current_value;
+volatile xword m_adc3vValue _at_ mem_adc_3v;
+volatile xword m_adc0vBase _at_ mem_adc_0v;
+volatile xbyte m_adc_config_flag _at_ mem_adc_config_flag;
+volatile xbyte  m_power_on_flag _at_ mem_power_on_flag;
+volatile xbyte m_caps_num_lock _at_ mem_caps_num_lock;
+volatile xbyte m_reconnect_continue _at_ mem_reconnect_continue;
+volatile xbyte m_adc_channel _at_ mem_adc_channel;
+volatile xbyte m_wakup_from_power_flag _at_ mem_wakup_from_power_flag;
+
+
+
+code byte col[KB_KSCAN_COL_NUM+1]=
+{
+26,    		//C0
+8,    			//C1
+9,    			//C2
+10,    		//C3
+11,    		//C4
+12,    		//C5
+13,    		//C6
+14,    		//C7
+24,	    		//C8	
+25,    		//C9
+23,    		//C10
+21,    		//C11
+20,    		//C12
+19,    		//C13
+17,    		//C14
+22,    		//C15
+27,    		//C16
+28,    		//C17
+};
+
+
+code byte  ksMap[KS_KEY_MAP_LEN]=
+{
+//c0
+HID_KEY_PAUSE, 				//R0
+HID_KEY_NULL, 				//R1
+HID_KEY_NULL, 				//R2
+HID_KEY_NULL,				//R3
+HID_KEY_RIGHT_CTL, 			//R4
+HID_KEY_NULL, 				//R5
+HID_KEY_LEFT_CTL, 			//R6
+HID_KEY_F5, 					//R7
+
+//c1
+HID_KEY_Q, 					//R0
+HID_KEY_TAB, 				//R1
+HID_KEY_A, 					//R2
+HID_KEY_ESC, 				//R3
+HID_KEY_Z,					//R4
+HID_KEY_K131, 				//R5
+HID_KEY_TILDE, 				//R6
+HID_KEY_1, 					//R7
+
+//c2
+HID_KEY_W,					//R0
+HID_KEY_CAPS_LOCK, 		//R1
+HID_KEY_S, 					//R2
+HID_KEY_K45, 				//R3
+HID_KEY_X, 					//R4
+HID_KEY_K132, 				//R5
+HID_KEY_F1,					//R6
+HID_KEY_2 , 					//R7
+
+//C3
+HID_KEY_E, 					//R0
+HID_KEY_F3, 					//R1
+HID_KEY_D,					//R2
+HID_KEY_F4, 					//R3
+HID_KEY_C,					//R4
+HID_KEY_K133,				//R5
+HID_KEY_F2,					//R6
+HID_KEY_3,					//R7
+
+//c4
+HID_KEY_R,					//R0		
+HID_KEY_T, 					//R1
+HID_KEY_F, 					//R2
+HID_KEY_G, 					//R3
+HID_KEY_V, 					//R4
+HID_KEY_B, 					//R5
+HID_KEY_5, 					//R6
+HID_KEY_4,					//R7
+
+//c5
+HID_KEY_U, 					//R0
+HID_KEY_Y,					//R1
+HID_KEY_J, 					//R2
+HID_KEY_H, 					//R3
+HID_KEY_M, 					//R4
+HID_KEY_N,					//R5
+HID_KEY_6, 					//R6
+HID_KEY_7, 					//R7
+
+//c6						
+HID_KEY_I, 					//R0
+HID_KEY_RIGHT_BRACKET, 	//R1
+HID_KEY_K, 					//R2
+HID_KEY_F6, 					//R3
+HID_KEY_LESS_THAN,			//R4
+HID_KEY_K56, 				//R5
+HID_KEY_EQUAL,				//R6
+HID_KEY_8, 					//R7
+
+
+//c7
+HID_KEY_O, 					//R0
+HID_KEY_F7,					//R1
+HID_KEY_L, 					//R2
+HID_KEY_NULL, 				//R3
+HID_KEY_GREAT_THAN, 		//R4
+HID_KEY_APP, 				//R5
+HID_KEY_F8, 					//R6
+HID_KEY_9,					//R7
+
+//c
+HID_KEY_P,					//R0
+HID_KEY_LEFT_BRACKET,		//R1
+HID_KEY_SEMICOLON,		//R2
+HID_KEY_QUOTE,				//R3
+HID_KEY_K42,				//R4
+HID_KEY_SLASH,				//R5
+HID_KEY_MINUS, 				//R6
+HID_KEY_0,					//R7
+
+//c
+HID_KEY_SCROLL_LOCK,		//R0
+HID_KEY_NULL,				//R1
+HID_KEY_FN, 				//R2
+HID_KEY_LEFT_ALT, 			//R3
+HID_KEY_NULL,				//R4
+HID_KEY_RIGHT_ALT, 			//R5
+HID_KEY_NULL,				//R6
+HID_KEY_PRINT_SCREEN,  		//R7
+
+//c10 
+HID_KEY_K14, 				//R0
+HID_KEY_BACKSPACE, 		//R1	
+HID_KEY_BACK_SLASH, 		//R2
+HID_KEY_F11, 				//R3
+HID_KEY_ENTER, 				//R4
+HID_KEY_F12, 				//R5
+HID_KEY_F9, 					//R6
+HID_KEY_F10, 				//R7
+
+//c11 
+HID_KEY_KP_7, 				//R0
+HID_KEY_KP_4 ,				//R1
+HID_KEY_KP_1, 				//R2
+HID_KEY_SPACE, 				//R3
+HID_KEY_NUM_LOCK,			//R4
+HID_KEY_DOWN_ARROW, 		//R5
+HID_KEY_DELETE, 			//R6
+HID_KEY_NULL, 				//R7
+
+//c12 
+HID_KEY_KP_8, 				//R0
+HID_KEY_KP_5,				//R1
+HID_KEY_KP_2,				//R2
+HID_KEY_KP_0, 				//R3
+HID_KEY_KP_SLASH,			//R4
+HID_KEY_RIGHT_ARROW,		//R5
+HID_KEY_INSERT,				//R6
+HID_KEY_NULL, 				//R7
+
+//c13 
+HID_KEY_KP_9, 				//R0
+HID_KEY_KP_6, 				//R1	
+HID_KEY_KP_3, 				//R2
+HID_KEY_KP_DEL, 			//R3
+HID_KEY_KP_ASTERISK, 		//R4
+HID_KEY_KP_MINUS, 			//R5
+HID_KEY_PAGE_UP, 			//R6
+HID_KEY_PAGE_DOWN, 		//R7
+
+//c14 
+HID_KEY_KP_PLUS,			//R0
+HID_KEY_KP_COMMA, 		//R1
+HID_KEY_KP_ENTER, 			//R2
+HID_KEY_UP_ARROW, 		//R3
+HID_MULTIKEY_PALY, 			//R4
+HID_KEY_LEFT_ARROW, 		//R5
+HID_KEY_HOME,				//R6
+HID_KEY_END,				//R7
+
+
+//c15 
+HID_KEY_NULL, 				//R0
+HID_KEY_LEFT_SHIFT, 		//R1	
+HID_KEY_RIGHT_SHIFT, 		//R2
+HID_MULTIKEY_VOL_DOWN,	//R3
+HID_MULTIKEY_VOL_UP, 		//R4
+HID_MULTIKEY_NEXT_TRACK, 	//R5
+HID_MULTIKEY_PRE_TRACK,	//R6
+HID_MULTIKEY_MEDIA, 		//R7
+
+//c16
+HID_MULTIKEY_MAIL, 			//R0
+HID_KEY_LEFT_GUI,			//R1
+HID_MULTIKEY_AC_FORWARD, 	//R2
+HID_MULTIKEY_AC_STOP,		//R3
+HID_MULTIKEY_AC_BACK,		//R4
+HID_MULTIKEY_AC_REFRESH,	//R5
+HID_MULTIKEY_MUTE, 		//R6
+HID_MULTIKEY_AC_SEARCH,	//R7
+
+
+//c17 
+HID_KEY_KR_L, 				//R0
+HID_MULTIKEY_AC_FAVORITES, 	//R1
+HID_KEY_FN,					//R2
+HID_MULTIKEY_MY_COMPUTER,	//R3
+HID_MULTIKEY_STOP,			//R4
+HID_MULTIKEY_CALCULATOR, 	//R5
+HID_MULTIKEY_AC_HOME, 		//R6
+HID_KEY_KR_R , 				//R7
+};
Index: YC1026_3mode_SDK_CUSTOMER/gpio.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/gpio.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/gpio.h	(working copy)
@@ -0,0 +1,83 @@
+
+#ifndef _GPIO_H
+#define _GPIO_H
+#include "type.h"
+#include "Hwreg.h"
+
+extern volatile xbyte YC_GPIOWakeupL[4];
+extern volatile xbyte YC_GPIOWakeupH[4];
+
+#define GPIO_SetBit(gpio_num,reg_base, bit_val) if(bit_val)  \
+		*(reg_base + (gpio_num >> 3 & 3)) |= 1<<(gpio_num & 7);	\
+	else	\
+		*(reg_base + (gpio_num >> 3 & 3)) &= ~(1<<(gpio_num & 7))
+
+/**
+ * This function gpio get input status.0 low,1high
+ * 
+ * @param gpio_num
+ * 
+ * @return none.
+*/
+bool GPIO_GetInputStatus(byte gpio_num);
+/**
+ * This function set gpio out.
+ * 
+ * @param gpio_num,bit_val bit_val 0 low, 1high
+ * 
+ * @return none.
+*/
+void GPIO_Setout(byte gpio_num, bool bit_val);
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 pull down ,0 pull up.
+ * 
+ * @return none.
+*/
+void GPIO_SetInput(byte gpio_num,bit  st);
+
+/**
+ * This function set gpio input
+ * 
+ * @param gpio_num,st 1 high ,0 low.
+ * 
+ * @return none.
+*/
+void GPIO_SetOutput(byte gpio_num,bit  st);
+/**
+ * This function set gpio wake.This function must use with GPIO_SetInput.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeup(byte gpio_num,bit  st);
+
+/**
+ * This function set gpio wake by curent state for fast wake mcu.
+ * 
+ * @param gpio_num, st 1 high wake,0 low wake.
+ * 
+ * @return none.
+*/
+void GPIO_SetWakeupByCurrentState(byte gpio_num);
+
+/**
+ * This function Flip output state.
+ * 
+ * @param gpio_num.
+ * 
+ * @return none.
+*/
+void GPIO_FlipOutBit(byte gpio_num);
+
+/* make all gpios into pd state if not output or pullhigh */
+void GPIO_fillpd();
+void GPIO_SetPd(byte gpio_num, bool bit_val);
+void GPIO_Setoe(byte gpio_num, bool bit_val);
+void GPIO_SetPu(byte gpio_num, bool bit_val);
+
+#endif /* YC_GPIO_H */
+
+
Index: YC1026_3mode_SDK_CUSTOMER/hwreg.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/hwreg.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/hwreg.h	(working copy)
@@ -0,0 +1,214 @@
+#ifndef _HWREG_H_
+#define _HWREG_H_
+
+
+#define HWRITED(reg, dword)	do{HWRITE(reg, (dword) & 0xff); \
+							HWRITE(reg + 1, (dword) >> 8 & 0xff); \
+							HWRITE(reg + 2, (dword) >> 16 & 0xff); \
+							HWRITE(reg + 3, (dword) >> 24 & 0xff); \
+							}while(0)
+
+#define HREADD(reg)			((u32_t)HREAD(reg)  | (u32_t)HREAD(reg + 1) << 8 | (u32_t)HREAD(reg + 2) << 16 | (u32_t)HREAD(reg + 3) << 24)
+
+#define ESWAP(word)			((word) >> 8 & 0xff | (word) << 8 & 0xff00)
+#define min(x,y) 				((x) < (y) ? (x) : (y))
+#define HREADW(reg)			(*((volatile unsigned int xdata *)(reg)))
+#define HWRITEW(mem, word)	HREADW(mem) = ESWAP(word)
+#define HREADWS(reg)			ESWAP(HREADW(reg))
+
+#define HREAD(reg)			(*(volatile unsigned char xdata *)(reg))
+#define HWRITE(reg, value)		*((volatile unsigned char xdata *)(reg)) = value
+
+#define SETBIT(reg, value)		HWRITE(reg,( (HREAD(reg)) | (value)))
+#define CLRBIT(reg, value)		HWRITE(reg, (HREAD(reg) & (~(value))))
+#define READBIT(reg, value)		((HREAD(reg)) & (value))
+#define BIT(x)					(1 << (x))
+
+
+#define PWM_EN			0x8084
+
+#define GPIO_OE(X)      0x8070 + X
+#define GPIO_OUT(X)     0x8074 + X
+#define GPIO_PUP(X)     0x8078 + X
+#define GPIO_PDN(X)     0x807c + X
+#define GPIO_SEL(X)     0x8080 + X
+#define GPIO_KEY(X)     0x8083 + X
+
+#define GPIO_IN(X)      0x811c + X
+
+
+#define PWM_PCOUNT(X)	(0x80a0 + X*4)
+#define PWM_NCOUNT(X)	(0x80a2 + X*4)
+
+#define CLOCK_SEL			0x8044
+#define CLOCK_SEL_12M		9
+
+#define LPM_EXENOE		0x813e
+
+// math cordic
+#define CORDIC_TYPE    	0x8053
+#define CORDIC_A     		0x80a8
+#define CORDIC_B     		0x80ac
+#define PERF_STATUS		0x812d
+#define CORDIC_RESULT     	0x8120
+
+#define YC_TYPE_SIN		0
+#define YC_TYPE_ATAN	1
+#define YC_TYPE_MULT	2
+#define YC_TYPE_DIV		3
+#define YC_TYPE_ASIN	         4
+#define YC_TYPE_SQRT	5
+#define YC_TYPE_COS		6
+#define YC_TYPE_TAN		7
+
+// DMA UART
+#define UART_BAUD     0x8052
+#define UART_RSADDR   0x8054
+#define UART_READDR   0x8056 
+#define UART_RRPTR    0x8058
+#define UART_TSADDR   0x805a 
+#define UART_TEADDR   0x805c 
+#define UART_TWPTR    0x805e
+#define UART_TRPTRP   0x8060 
+#define UART_CTRL     0x8062 
+#define CLKN	0x8100
+
+#define UART_STATUS  0x810c
+#define UART_RBAUD   0x810d 
+#define UART_TXITEMS 0x810e 
+#define UART_TRPTR   0x8110 
+#define UART_RXITEMS 0x8112 
+#define UART_RDPTR   0x8114 
+#define UART_RWPTR   0x8116 
+
+#define KSCN_KSCTRL                 	0x8063
+#define KSCN_RCTC                    	0x8064
+#define KSCN_ROW_MASK                	0x806f
+
+#define KSCN_EVENT_BUF           	0x811a
+#define KSCN_EVENT_NUM           	0x811b
+
+
+#define  CPUA_ICE_CTRL (*(volatile unsigned char xdata *)(0x8280))
+
+#define CPUB_ICE_BK0_LO			0x8205
+#define CPUB_ICE_BK0_HI			0x8206
+
+#define IIC_ADDR_START		0x8300
+#define IIC_PRER_LOW			0x8300
+#define IIC_SLAVE_ADDR		0x8301
+#define IIC_CTR				0x8302
+#define IIC_CR				0x8303
+#define IIC_RXR				0x8304
+#define IIC_TXR				0x8305
+#define IIC_SR				0x8306
+#define IIC_FIFO				0x8307
+
+#define USB_CONFIG		0x8c00
+#define USB_INT_MASK(x)	(0x8c01 + x)
+#define USB_TRG			0x8c10
+#define USB_STALL		0x8c11
+#define USB_CLEAR		0x8c12
+#define USB_EP(x)			(0x8c18 + x)
+#define USB_EP_LEN(x)		(0x8c20 + x)
+
+
+#define USB_STATUS		0x8c26
+#define USB_FIFO_EMPTY	0x8c27
+
+sfr DFIFO0     = 0x94;
+sfr DFIFO1     = 0x95;
+sfr DFIFO2     = 0x96;
+
+
+#define PWM_CLOCK           5 
+#define REG_CLK_OFF(n)		(*(volatile unsigned char xdata *)(0x8050 + n))
+
+#define REG_PWM_ENABLE   	(*(volatile unsigned char xdata *)0x8085)
+#define REG_PWM_CLK_SEL 	(*(volatile unsigned char xdata *)0x8042)
+#define REG_PWM_PCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a0 + n*4))
+#define REG_PWM_NCOUNT(n) 	(*(volatile unsigned char xdata *)(0x80a2 + n*4))
+
+
+#define REG_UART_CLK_SEL	(*(volatile unsigned char xdata *)0x8043)
+#define REG_UART_BAUD		(*(volatile unsigned short xdata *)0x8052)
+#define REG_UART_BAUD_HI		(*(volatile unsigned char xdata *)0x8053)
+#define REG_UART_RX_ADDR_S	(*(volatile unsigned short xdata *)0x8054)
+#define REG_UART_RX_ADDR_E 	(*(volatile unsigned short xdata *)0x8056)
+#define REG_UART_RX_PTR_R	(*(volatile unsigned short xdata *)0x8058)
+#define REG_UART_TX_ADDR_S	(*(volatile unsigned short xdata *)0x805a)
+#define REG_UART_TX_ADDR_E	(*(volatile unsigned short xdata *)0x805c)
+#define REG_UART_TX_PTR_W	(*(volatile unsigned short xdata *)0x805e)
+#define REG_UART_TX_PTRP_R	(*(volatile unsigned short xdata *)0x8060)
+#define REG_UART_CTRL		(*(volatile unsigned char xdata *)0x8062)
+
+//read only
+#define REG_UART_STATUS		(*(volatile unsigned char xdata *)0x810c)
+#define REG_UART_DET_BAUD	(*(volatile unsigned char xdata *)0x810d)
+#define REG_UART_TX_ITEMS	(*(volatile unsigned short xdata *)0x810e)
+#define REG_UART_TX_PTR_R	(*(volatile unsigned short xdata *)0x8110)
+#define REG_UART_RX_ITEMS	(*(volatile unsigned short xdata *)0x8112)
+#define REG_UART_RX_DPTR_R	(*(volatile unsigned short xdata *)0x8114)
+#define REG_UART_RX_PTR_W	(*(volatile unsigned short xdata *)0x8116)
+
+#define REG_GPIO_SELECT(n)	(*(volatile unsigned char xdata *)(0x8080 + n))
+
+#define REG_GPIO_OE(n) 	(*(volatile unsigned char xdata *)(0x8070 + n))
+#define REG_GPIO_OUT(n)	(*(volatile unsigned char xdata *)(0x8074 + n))
+#define REG_GPIO_PUP(n) 	(*(volatile unsigned char xdata *)(0x8078 + n))
+#define REG_GPIO_PDN(n)	(*(volatile unsigned char xdata *)(0x807c + n))
+#define REG_GPIO_SEL(n) 	(*(volatile unsigned char xdata *)(0x8080 + n))
+#define REG_GPIO_KEY(n) 	(*(volatile unsigned char xdata *)(0x8083 + n))
+
+#define REG_GPIO_IN(n)	(*(volatile unsigned char xdata *)(0x811c + n))	//n=0,1,2,3
+
+#define REG_MISC_CTRL			(*(volatile unsigned char xdata *)(0x8006))
+
+
+#define REG_SPID_CTRL  			(*(volatile unsigned char xdata *)(0x8086))
+#define REG_SPID_DELAY  		(*(volatile unsigned char xdata *)(0x8087))
+#define REG_SPID_TXADDR			(*(volatile unsigned short xdata *)(0x808a))
+#define REG_SPID_RXADDR			(*(volatile unsigned short xdata *)(0x808c))
+#define REG_SPID_TXLEN			(*(volatile unsigned short xdata *)(0x8088))
+#define REG_SPID_RXLEN			(*(volatile unsigned short xdata *)(0x808e))
+
+#define REG_IICD_CTRL			(*(volatile unsigned char xdata *)(0x8090))
+#define REG_IICD_SCL_LOW		(*(volatile unsigned char xdata *)(0x8091))
+#define REG_IICD_SCL_HIGH		(*(volatile unsigned char xdata *)(0x8092))
+#define REG_IICD_START_SETUP		(*(volatile unsigned char xdata *)(0x8093))
+#define REG_IICD_START_HOLD		(*(volatile unsigned char xdata *)(0x8094))
+#define REG_IICD_STOP_SETUP		(*(volatile unsigned char xdata *)(0x8095))
+#define REG_IICD_DATA_SETUP		(*(volatile unsigned char xdata *)(0x8096))
+#define REG_IICD_DATA_HOLD		(*(volatile unsigned char xdata *)(0x8097))
+#define REG_IICD_TXLEN			(*(volatile unsigned short xdata *)(0x8098))
+#define REG_IICD_TXADDR			(*(volatile unsigned short xdata *)(0x809a))
+#define REG_IICD_RXADDR			(*(volatile unsigned short xdata *)(0x809c))
+#define REG_IICD_RXLEN			(*(volatile unsigned short xdata *)(0x809e))
+#define REG_CLKN					(*(volatile unsigned long xdata *)(0x8100))
+#define REG_DMA_STATUS			(*(volatile unsigned char xdata *)(0x812c))
+
+#define REG_RFEN_ADC			(*(volatile unsigned char xdata *)(0x8906))
+#define REG_ADC_IN				(*(volatile unsigned short xdata *)(0x812e))
+#define REG_RF_ADC_GC			(*(volatile unsigned char xdata *)(0x8972))
+#define REG_RFEN_CHGPUMP		(*(volatile unsigned char xdata *)(0x8973))
+#define REG_RF_ADC_MODE		(*(volatile unsigned char xdata *)(0x8971))
+#define CORE_ADC_SUM		(*(volatile unsigned short xdata *)(0x8150))
+
+#define REG_KSCAN_KSCTRL				(*(volatile unsigned char xdata *)(0x8063))
+#define REG_KSCAN_RCTC				(*(volatile unsigned char xdata *)(0x8064))
+#define REG_KSCAN_SCANCYCLE_TIMER_L	(*(volatile unsigned char xdata *)(0x8065))
+#define REG_KSCAN_SCANCYCLE_TIMER_H	(*(volatile unsigned char xdata *)(0x8066))
+
+
+#define REG_KSCAN_KSTAT				(*(volatile unsigned char xdata *)(0x8119))
+#define REG_KSCAN_EVENT				(*(volatile unsigned char xdata *)(0x811a))
+#define REG_KSCAN_EVENT_NUM			(*(volatile unsigned char xdata *)(0x811b))
+
+#define REG_KSCAN_M_DEBOUNCE		(*(volatile unsigned char xdata *)(0x8067))
+#define REG_KSCAN_MODKEY				(*(volatile unsigned char xdata *)(0x8068))
+#define REG_KSCAN_ROWMASK			(*(volatile unsigned char xdata *)(0x806f))
+#define REG_CONFIG						(*(volatile unsigned char xdata *)(0x8043))
+
+
+
+#endif
Index: YC1026_3mode_SDK_CUSTOMER/iic.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/iic.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/iic.h	(working copy)
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * IIC support for application
+ */
+#ifndef __DEV_EEP_H_
+#define __DEV_EEP_H_
+#include "type.h"
+#include "btreg.h"
+#include "hwreg.h"
+
+/**
+ * This function read data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to restore data
+ * 
+ * @return none.
+*/
+void IIC_Read(word addr, word len, byte* pbuff);
+/**
+ * This function write data by IIC,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to write,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_write(word addr,word len, byte* pbuff);
+/**
+ * This function write data by IIC,can't ignore page of block device,Warning:pbuff can't not piont to address > 0x4000.
+ * 
+ * @param addr IIC address ,len length to read,pbuff pointer to store data
+ * 
+ * @return none.
+*/
+void IIC_WriteBlock(word addr, word len, byte* pbuff);
+#endif/* YC_IIC_H */
+
Index: YC1026_3mode_SDK_CUSTOMER/ipc.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/ipc.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/ipc.h	(working copy)
@@ -0,0 +1,313 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+ 
+ /** @file
+ *
+ * ipc support for application
+ */
+#ifndef _YC_IPC_H_
+#define _YC_IPC_H_
+#include "type.h"
+#include "btreg.h"
+
+#define BUG_FIX
+#ifdef BUG_FIX
+#define FIX_ENTER_LPM	0x01
+#define FIX_ENTER_HIBERNATE	0x03
+#define FIX_LEAVE_LPM	0x05
+
+#endif
+
+
+/* IPC tx hardware address */
+#define IPC_TX_HEAD	mem_ipc_2bt_fifo_head
+#define IPC_TX_END	mem_ipc_2bt_fifo_end
+
+/*IPC rx hardware address*/
+#define IPC_RX_HEAD	mem_ipc_2C51_fifo_head
+#define IPC_RX_END	mem_ipc_2C51_fifo_end
+
+/*IPC data type*/
+#define IPC_CONTROL_CMD		0x01
+#define IPC_CONTROL_EVT		0x02
+#define IPC_HID_DATA			0x03
+#define IPC_SPP_DATA			0x04
+#define IPC_BLE_DATA			0x05
+#define IPC_24G_DATA			0x06
+
+/*IPC cmd type*/
+#define IPC_CMD_STANDBY                                  	0x00
+#define IPC_CMD_START_DISCOVERY                   	0x01
+#define IPC_CMD_STOP_DISCOVERY                      	0x02
+#define IPC_CMD_RECONNECT                              	0x03
+#define IPC_CMD_DISCONNECT                               0x04
+#define IPC_CMD_ENTER_SNIFF                              	0x05
+#define IPC_CMD_EXIT_SNIFF                               	0x06
+#define IPC_CMD_ENTER_SNIFF_SUBRATING         0x07
+#define IPC_CMD_EXIT_SNIFF_SUBRATING             0x08
+#define IPC_CMD_SNIFF_TEST                               	0x09
+#define IPC_CMD_SET_PIN_CODE                           	0x0a
+#define IPC_CMD_START_INQUIRY                          0x0b
+#define IPC_CMD_STOP_INQUIRY                            0x0c
+#define IPC_CMD_START_ADV                                	0x0d
+#define IPC_CMD_STOP_ADV                                 	0x0e
+#define IPC_CMD_START_DIRECT_ADV                   0x0f
+#define IPC_CMD_STOP_DIRECT_ADV                    	0x10
+#define IPC_CMD_LE_DISCONNECT                        	0x11
+#define IPC_CMD_LE_UPDATE_CONN                     	0x12
+#define IPC_CMD_LED_OFF                                  	0x13
+#define IPC_CMD_LED_ON                                   	0x14
+#define IPC_CMD_LED_BLINK                                	0x15
+#define IPC_CMD_LE_START_CONN                     	0x16
+#define IPC_CMD_LE_START_SCAN                      	0x17
+#define IPC_CMD_LE_STOP_SCAN                         	0x18
+#define IPC_CMD_ENTER_HIBERNATE                    	0x19
+#define IPC_CMD_LE_SMP_SECURITY_REQUEST   0x1b
+#define IPC_CMD_LE_START_WRITE                      	0x1c
+#define IPC_CMD_ROLE_SWITCH                          	0x1d
+#define IPC_CMD_BB_RECONN_CANCEL              	0x1e
+#define IPC_CMD_STORE_RECONN_INFO_LE        	0x1f
+#define IPC_CMD_STORE_RECONN_INFO_BT        	0x20
+#define IPC_CMD_START_24G                                	0x21
+#define IPC_CMD_STOP_24G                                 	0x22
+#define IPC_CMD_PAIR_24G                                 	0x23
+#define IPC_CMD_UPDATE_SUPERVISION_TO     	0x28
+#define IPC_CMD_LE_SET_PINCODE                      	0x29
+#define IPC_CMD_SET_RECONNECT_INIT          	0x2a
+#define IPC_CMD_START_ADV_REC                      	0x2b
+#define IPC_CMD_START_ADV_DISCOVERY            0x2c
+
+
+/*IPC event type*/
+#define IPC_EVT_NULL                                     		0x00
+#define IPC_EVT_BB_CONNECTED                       	0x01
+#define IPC_EVT_BB_DISCONNECTED                   	0x02
+#define IPC_EVT_RECONN_STARTED                     	0x03
+#define IPC_EVT_RECONN_FAILED                       	0x04
+#define IPC_EVT_SETUP_COMPLETE                     	0x05
+#define IPC_EVT_HID_CONNECTED                       	0x06
+#define IPC_EVT_HID_DISCONNECTED                   	0x07
+#define IPC_EVT_SPP_CONNECTED                     	0x08
+#define IPC_EVT_SPP_DISCONNECTED                  	0x09
+#define IPC_EVT_PINCODE_REQ                           	0x0A
+#define IPC_EVT_ENTER_SNIFF                              	0x0B
+#define IPC_EVT_EXIT_SNIFF                               	0x0C
+#define IPC_EVT_ENTER_SNIFF_SUB                     	0x0D
+#define IPC_EVT_EXIT_SNIFF_SUB                      	0x0E
+#define IPC_EVT_DISCOVERY_STOPED                 	0x0F
+#define IPC_EVT_BUTTON_LONG_PRESSED         	0x10
+#define IPC_EVT_HID_HANDSHAKE                         	0x12
+#define IPC_EVT_RECONN_PAGE_TIMEOUT          	0x13
+#define IPC_EVT_LE_CONNECTED                         	0x14
+#define IPC_EVT_LE_DISCONNECTED                    	0x15
+#define IPC_EVT_ML2CAP_CONN_REFUSED           	0x16
+#define IPC_EVT_BUTTON_ENTER_HIBERNATE     	0x17
+#define IPC_EVT_LINKKEY_GENERATE                   	0x18
+#define IPC_EVT_SWITCH_NOT_ACCEPT                	0x19
+#define IPC_EVT_SWITCH_ACCEPT                         	0x20
+#define IPC_EVT_SNIFF_NOT_ACCEPT                    0x21
+#define IPC_EVT_SNIFF_ACCEPT                             0x22
+#define IPC_EVT_UNSNIFF_ACCEPT                        	0x23
+#define IPC_EVT_UNSNIFF_NOT_ACCEPT               	0x24
+#define IPC_EVT_BUTTON_ADJUST_DPI                 	0x25
+#define IPC_EVT_SEND_UNSNIFF_ACCEPT            	0x26
+#define IPC_EVT_VIRTUAL_CABLE_UNPLUG          	0x27
+#define IPC_EVT_LE_WRITE_REQUEST                  	0x28
+#define IPC_EVT_LE_ENC_INFO                              	0x29
+#define IPC_EVT_SWITCH_FAIL_MASTER               	0x2a
+#define IPC_EVT_SWITCH_SUCCESS_MASTER       	0x2b
+#define IPC_EVT_BUTTON_DOWN                           	0x2c
+#define IPC_EVT_BUTTON_UP                                	0x2d
+#define IPC_EVT_REMOTE_UNSNIFF                      	0x2e
+#define IPC_EVT_RESET                                    	0x2f
+#define IPC_EVT_WAKEUP                                   	0x30
+#define IPC_EVT_24G_PAIRING_COMPLETE          	0x31
+#define IPC_EVT_24G_ATTEMPT_FAIL                   	0x32
+#define IPC_EVT_HIBERNATE_WAKE                      	0x33
+#define IPC_EVT_LE_PROTOCOL_CONNECTED    	0x34
+#define IPC_EVT_LE_PINCODE_REQ				0x35
+#define IPC_EVT_RECONNECT_STANDY                	0x37
+#define IPC_EVT_CLEAR_LINKKEY                         	0x39
+#define IPC_EVT_24G_ATTEMPT_SUCCESS           	0x3c
+#define IPC_EVT_TIMER_INIT                               	0x50
+#define IPC_EVT_TIMER_MASK                               	0xF0
+#define IPC_EVT_TIMER_100MS                              	0x51
+#define IPC_EVT_TIMER_200MS                             	0x52
+#define IPC_EVT_TIMER_300MS                              	0x53
+#define IPC_EVT_TIMER_400MS                              	0x54
+#define IPC_EVT_TIMER_500MS                              	0x55
+#define IPC_EVT_TIMER_600MS                              	0x56
+#define IPC_EVT_TIMER_700MS                              	0x57
+#define IPC_EVT_TIMER_800MS                              	0x58
+#define IPC_EVT_TIMER_900MS                              	0x59
+#define IPC_EVT_TIMER_1KMS                               	0x5A
+#define IPC_EVT_TIMER_1K1MS                              	0x5B
+#define IPC_EVT_TIMER_1K2MS                              	0x5C
+#define IPC_EVT_TIMER_1K3MS                              	0x5D
+#define IPC_EVT_TIMER_1K4MS                              	0x5E
+#define IPC_EVT_TIMER_1K5MS                              	0x5F
+
+
+/*IPC EVT callback function type*/
+typedef void (*tIPCEventCb)(byte);
+
+/*IPC SPP callback function type*/
+typedef void (*tIPCSppCb)(byte*, word);
+
+/*IPC BLE callback function type*/
+typedef void (*tIPCBleCb)(byte*, word);
+
+/*IPC timer(1s) callback function type*/
+typedef void (*tIPCTimer)(void);
+
+/*IPC Hid callback function type*/
+typedef void (*tIPCHidCb)(byte*, word);
+
+/*IPC control block type*/
+typedef struct IPCContolBlock {
+	tIPCEventCb evtcb;		/*<ipc evt call back*/
+	tIPCSppCb sppcb;		/*<ipc spp call back*/
+	tIPCTimer timercb;		/*<ipc timer call back*/
+	tIPCTimer stimercb;
+	tIPCBleCb blecb;
+	tIPCHidCb hidcb;
+}tIPCControlBlock;
+
+
+typedef enum IPCRejReason{
+	AUTHENTICATION_FAILURE_ERROR = 0x05,
+	KEY_MISSING = 0x06,
+	ACL_CONNECTION_ALREADY_EXISTS = 0x0b,
+	OTHER_END_TERMINATED = 0x13,
+	ABOUT_TO_POEWR_OFF = 0x15,
+	LOCAL_HOST= 0x16,
+	PAIRING_NOT_ALLOWED = 0x18,
+	UNKNOWN_LMP_PDU = 0x19,
+	UNSUPPORTED_LMP_FEATURE = 0x1A,
+	UNSPECIFIED_ERROR = 0x1F,
+	UNSUPPORTED_PARAMETERS = 0x20,
+	SWITCH_NOT_ALLOWED = 0x21,
+	TRANSACTION_COLLISION = 0x23,
+	PDU_NOT_ALLOWED = 0x24,
+	ENCRYPTION_MODE_NOT_ACCEPTABLE = 0x25,
+	NOT_SUPPORT_CHN_CLASSIFICATION = 0x2e,
+	NOT_SUPPORT_SSP = 0x37,
+}tIPCREJREASON;
+
+/*IPC syc task type*/
+
+#define BT_PIN_CODE_MAX_LEN 16
+extern xbyte ipcPinlen;
+extern xbyte ipcPin[BT_PIN_CODE_MAX_LEN];
+extern xbyte current_task;
+
+/*IPC set pincode*/
+#define IPC_SetPincode(p,l)	ipcPinlen= l,\
+							xmemcpy(ipcPin, p, ipcPinlen)
+
+/**
+ * This function rigist IPC Control Block.
+ * 
+ * @param cb the IPC control block.
+ * 
+ * @return none.
+*/
+void IPC_Initialize(tIPCControlBlock *cb);
+
+/**
+ * This function deal IPC Single process, callback the rigisted IPC control function.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_DealSingleStep(void);
+
+/**
+ * This function tx control IPC command.
+ * 
+ * @param cmd IPC command want to send.
+ * 
+ * @return none.
+*/
+void IPC_TxControlCmd(byte cmd);
+/**
+ * This function tx HID IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_TxBREDRHidData(byte* dt, byte len);
+
+/**
+ * This function tx 24G IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC HID data want to send,len length of hid data
+ * 
+ * @return none.
+*/
+void IPC_Tx24GData(byte* dt, byte len);
+
+/**
+ * This function tx SPP IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC SPP data want to send,len length of SPP data
+ * 
+ * @return none.
+*/
+void IPC_TxSppData(byte* dt, byte len);
+
+/**
+ * This function tx BLE IPC command,Cpu will block when TxBuffer is not Empty.
+ * 
+ * @param dt IPC BLE data want to send,len length of BLE data
+ * 
+ * @return none.
+*/
+void IPC_TxBleData(byte* dt, byte len);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_WaitLpm(void);
+
+/**
+ * This function will do nothing abandon lpm this time.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void IPC_AbandonLpm(void);
+
+/**
+ * This function will do nothing wait enter lpm.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+bit IPC_IsTxBuffEmpty(void);
+
+/**
+ * This function get reject reason.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+tIPCREJREASON IPC_GetBBDIsconnectReason();
+
+#endif /* YC_IPC_H */
Index: YC1026_3mode_SDK_CUSTOMER/kb_process.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/kb_process.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/kb_process.h	(working copy)
@@ -0,0 +1,89 @@
+#ifndef _KB_PROCESS_H
+#define _KB_PROCESS_H
+#include "common.h"
+
+#define KEY_STANDBY					0x00
+#define KEY_PRESS					0x01
+#define KEY_WAIT_RELEASE			0x02
+#define KEY_RELEASE					0x03
+#define KEY_2G4_FN_TX				0x04
+
+#define KB_PC_KEYSEL_NUMLOCK		0x01
+#define KB_PC_KEYSEL_CAPSLOCK		0x02
+#define KB_PC_KEYSEL_SCROLLLOCK 	0x04
+
+#define KEY_FLAG_BTKEY_PRESS				0x01
+#define KEY_FLAG_SAME_KEY_PRESS			0x02
+#define KEY_FLAG_STOP_DISCOVERY			0x04
+#define KEY_FLAG_FN_DEVICE_BUTTON			0x08
+#define KEY_FLAG_FN_24G_DEVICE_BUTTON		0x10
+
+#define CAMBINATION_KEY_FREE				0
+#define CAMBINATION_KEY_PRESS				1
+#define CAMBINATION_KEY_HOLD				2
+#define CAMBINATION_KEY_COMPLETE			3
+#define CAMBINATION_KEY_WAIT_RELEASE 		4
+#define CAMBINATION_KEY_RELEASE			5	
+
+
+//gipo
+#define NUM_LOCK_LED_GPIO    	0x10
+#define CAPS_LED_GPIO		  	0x0f
+
+#define EEPROM_WP_GPIO			0xff
+#define BT_LED_GPIO		  		0x1F
+#define BT2_LED_GPIO				0x1E
+#define LOWPOWER_LED_GPIO		0x1D
+#define G24_LED_GPIO				0x1D
+
+
+
+//eeprom address base
+#define EEPROM_RECON_INFO_BASE_6  					0x7F50
+#define EEPROM_RECON_INFO_BASE					0x7F60		// bd_key_record_list = 29*3 = 87
+#define EEPROM_RECON_INFO_LAST_DEVICE 			(EEPROM_RECON_INFO_BASE+87)
+#define EEPROM_RECON_INFO_SYTEM_MODE 			(EEPROM_RECON_INFO_BASE+88)
+#define EEPROM_RECON_INFO_POWER_ACTION 			(EEPROM_RECON_INFO_BASE+89)
+#define EEPROM_RECON_INFO_RAMDON_LE_LAP1		(EEPROM_RECON_INFO_BASE+90)
+#define EEPROM_RECON_INFO_RAMDON_LE_LAP2		(EEPROM_RECON_INFO_BASE+91)
+
+
+#define KS_KEY_MAP_LEN					158
+#define KB_KSCAN_COL_NUM				20
+
+
+
+byte key_fn_function(byte state ,byte key_value);
+
+
+typedef enum c51_user_key_action
+{
+	KEY_NONE= 0,
+	KEY_RECON_0=1,
+	KEY_RECON_1=2,
+	KEY_RECON_2=3,
+	KEY_ENTER_ADV,
+	KEY_DISCOVERY,
+	KEY_DISCONNECT_ALL,
+	KEY_CLEAR_RECORD,
+	KEY_START_24G,
+	KEY_OPEN_24G,
+	KEY_PAIRING_24G,
+	KEY_STOP_24G,
+	KEY_USB,
+	KEY_STOP_DISCOVERY,
+}C51_KEY_ACTION;
+
+
+
+void IPC_TxHidData(byte* dt, byte len);
+void kb_need_keyscan();
+void YC_key_action_handle(byte key_num);
+void kb_motion_keyscan(tKSEVENT *pEvt);
+byte kb_device_select(tKSEVENT *pEvt);
+void kb_multikey_setup(tKSEVENT *pEvt);
+byte key_fn_function(byte state ,byte key_value);
+
+
+#endif
+
Index: YC1026_3mode_SDK_CUSTOMER/kb_process.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/kb_process.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/kb_process.c	(working copy)
@@ -0,0 +1,761 @@
+#include "kb_process.h"
+
+void YC_key_action_handle(byte key_num)
+{
+	switch (key_num)
+	{
+	case KEY_RECON_0:
+	case KEY_RECON_1:
+	case KEY_RECON_2:
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+			||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+		{
+			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			recon_index = key_num-1;
+			kscurrmult = 0x05;
+			g_variable.recon_count = 5;
+			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+			Delay1ms(10);
+			IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_STOP_DISCOVERY:
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		break;
+	case KEY_DISCOVERY:
+		g_variable.recon_count = 0;
+		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+		{
+			g_variable.key_action = key_num;
+			action_timeout = 3;
+		}
+		else
+		{
+			YC_clear_reconnect_flag();
+				m_lpm_mode = 0;
+			#if DEVICE_MODE_BT_ONLY
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+			#elif DEVICE_MODE_BLE_ONLY	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+			#else	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+			#endif
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_DISCONNECT_ALL:
+		YC_disconnect_all_link();
+		g_variable.key_action = KEY_NONE;
+		break;
+	case KEY_CLEAR_RECORD:
+		xmemclear_ff((byte *)bd_key_record_list,sizeof(BD_KEY_RECORD)*3);
+		g_variable.last_device_num = 0xff;
+		g_variable.system_mode = 0xff;
+		Delay1ms(200);
+		GPIO_Setout(EEPROM_WP_GPIO,0);
+		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)&bd_key_record_list);
+		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+		GPIO_Setout(EEPROM_WP_GPIO,1);
+		g_variable.key_action = KEY_NONE;
+		break;
+	case KEY_START_24G:
+	case KEY_OPEN_24G:
+		g_variable.recon_count = 0;
+		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+		{
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+			Delay1ms(10);
+			IPC_TxControlCmd(IPC_CMD_START_24G);
+			
+			g_variable.g24_currentState = CHANGE_TO_24G_CONNECTING;
+			g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	case KEY_PAIRING_24G:
+		g_variable.recon_count = 0;
+		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+		{
+			g_variable.key_action = key_num;
+		}
+		else
+		{
+			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+			{
+				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+				g_variable.g24_currentState = CHANGE_TO_24G_PAIRING;
+				g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+				g_variable.pairing_g24_timeout = BT_PAIRING_TIME_OUT_2MIN;
+				g_variable.pairing_timeout = 0;
+			}
+			g_variable.key_action = KEY_NONE;
+		}
+		break;
+	default:
+		g_variable.key_action = KEY_NONE;
+		break;
+	}
+}
+
+
+
+void IPC_TxHidData(byte* dt, byte len)
+{
+	if(!YC_check_need_reconnected()) 
+		return;
+	if (g_variable.release_data)
+		return;
+
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+	{
+		IPC_TxBREDRHidData(dt,len);
+	}
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+	{
+		IPC_TxBleData(dt,len);
+	}
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		if (dt[0] == HID_REPORTID_1)
+		{
+			if (dt[1] == 0 && dt[3] == 00 && dt[4] == 00 && dt[5] == 0)
+				repeat_send_24g = 0;
+			else
+				repeat_send_24g = 1;			
+		}
+		else if (dt[0] == HID_REPORTID_2)
+		{
+			if (dt[1] == 00 && dt[2] == 00)
+			{
+				repeat_send_24g = 0;
+			}
+			else
+			{
+				repeat_send_24g = 1;
+			}
+		}
+		IPC_Tx24GData(dt,len);
+	}
+}
+
+
+void kb_set_multikey(word multikey_value)
+{
+	if(mult_key_status != KEY_WAIT_RELEASE)
+	{
+		mult_key_status = KEY_PRESS;
+		multikey[0] = HID_REPORTID_2;
+		multikey[1] = (multikey_value&0xff);
+		multikey[2] = ((multikey_value>>8)&0xff);
+	}
+}
+
+
+void kb_send_combination_key(byte ctrl_value,byte key_value)
+{
+	xmemclear(hidBuff,9);
+	hidBuff[0] = HID_REPORTID_1;
+	hidBuff[1] |= ctrl_value;
+	hidBuff[3] = key_value; 
+	IPC_TxHidData(hidBuff, 9);
+}
+
+/*
+//touch data send
+void kb_set_mouse_data()
+{
+	multikey[0] = HID_REPORTID_3;
+	multikey[1] = g_variable.sensor_key;
+	multikey[2] = g_variable.sensor_x_l;
+	multikey[3] = g_variable.sensor_x_h;
+	multikey[4] = g_variable.sensor_y_l;
+	multikey[5] = g_variable.sensor_y_h;
+	multikey[6] = g_variable.sensor_wheel;
+	multikey[7] = g_variable.sensor_titl;
+	IPC_TxHidData(multikey, 8);
+	xmemclear(multikey,9);
+}
+*/
+
+
+void kb_bt_pincode_enter()
+{
+	tKSEVENT *pEvt = NULL;
+	pEvt = KS_GetCurrentEvt();
+	if (pEvt == NULL)
+		return;
+	if (pEvt->ksPool[0] != 0) {
+		if (pEvt->ksPool[0] == HID_KEY_ENTER ||pEvt->ksPool[0] == HID_KEY_KP_ENTER) {
+			if (	g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
+			{
+				IPC_TxControlCmd(IPC_CMD_LE_SET_PINCODE);
+				g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_PINCODE_OK;
+				le_pin_code_len = 0;
+			}
+
+			if (	g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+			{	
+				m_link_key_exists = 1;
+				IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+				g_variable.br_currentSubState = CHANGE_TO_BR_SUB_PINCODE_OK;
+			}
+		}
+		else
+		{
+			if (pEvt->ksPool[0] <=HID_KEY_KP_0 && pEvt->ksPool[0] >= HID_KEY_KP_1)
+			{
+				if (pEvt->ksPool[0] == HID_KEY_KP_0) 
+				{
+					ipcPin[ipcPinlen ++] = 0x30;	//ascii code: 0     x030
+					le_pin_code = le_pin_code*10;
+					le_pin_code_len++;
+				}
+				else 
+				{
+					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - 0x28;  // ascii :0x31-0x39
+					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - 0x58);
+					le_pin_code_len++;
+				}
+			}
+			else if (pEvt->ksPool[0] <=HID_KEY_0 && pEvt->ksPool[0] >= HID_KEY_1)
+			{
+				if (pEvt->ksPool[0] == HID_KEY_0) 
+				{
+					ipcPin[ipcPinlen ++] = 0x30;	//0
+					le_pin_code = le_pin_code*10;
+					le_pin_code_len++;
+				}
+				else 
+				{
+					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - (HID_KEY_1 -1) + 0x30;
+					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - (HID_KEY_1 -1));
+					le_pin_code_len++;
+				}
+			}
+			else if(pEvt->ksPool[0] == HID_KEY_BACKSPACE) 
+			{
+				if(ipcPinlen)
+					ipcPin[ipcPinlen --] = 0;
+				if(le_pin_code_len)
+				{
+					le_pin_code = le_pin_code /10;
+					le_pin_code_len--;
+				}	
+			}
+			else
+			{
+				kb_motion_keyscan(pEvt);
+			}
+		}
+	}
+}
+
+
+
+void kb_24g_get_led_status()		//get RF Ack for get numlock/capslock status
+{
+	if((get_24g_led_send == 1) && (repeat_send_24g == 0))
+	{
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+		{
+			xmemclear(hidBuff,9);
+			IPC_TxHidData(hidBuff, 9);
+			get_24g_led_send = 2;
+			mult_key_status = 0;
+		}	
+	}
+	else if ((get_24g_led_send == 2) && (repeat_send_24g == 0))
+	{
+		get_24g_led_send = 0;
+		xmemclear(hidBuff,9);
+		IPC_TxHidData(hidBuff, 9);
+		mult_key_status = 0;
+	}
+}
+
+
+
+static void kb_motion()
+{
+	tKSEVENT *pEvt = NULL;
+	
+	if (!IPC_IsTxBuffEmpty())
+		return;
+	pEvt = KS_GetCurrentEvt();
+
+	if (pEvt == NULL)
+	{
+		m_power_on_flag = 1;
+		kb_24g_get_led_status();
+		return;
+	}
+	kb_motion_keyscan(pEvt);
+}
+
+
+
+void kb_need_keyscan()
+{
+	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+	{
+		kb_bt_pincode_enter();
+	}
+	else
+	{
+		/*
+		//Touch_data_get();
+		if(g_variable.mouse_data_send_flag)
+		{
+			g_variable.mouse_data_send_flag = 0;
+			g_variable.delay_enter_lpm_timer = 10;
+			
+			kb_set_mouse_data();
+		}
+		else
+		*/
+		{
+		//	g_variable.sensor_x_l = 0;
+		//	g_variable.sensor_x_h = 0;
+		//	g_variable.sensor_y_l = 0;
+		//	g_variable.sensor_y_h = 0;
+		//	g_variable.sensor_wheel = 0;
+		//	g_variable.sensor_titl = 0;
+			
+			if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+			||(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+			||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+			)
+				kb_motion();
+			else
+			{
+				
+				if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+				{	
+					g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+				}
+				else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+				{
+					g_variable.key_combination_keyvalue = 0;
+					g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+				}
+				else if(g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+				{
+					g_variable.key_combination_ctrl = 0;
+					g_variable.key_combination_keyvalue = 0;
+					g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+				}
+			}
+		}
+	}
+}
+
+
+
+void kb_motion_keyscan(tKSEVENT *pEvt)
+{
+	byte temp = 0;
+	byte i=0;
+	
+	fn_flag = 0;
+	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+	{
+		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
+		{
+			fn_flag = 1;
+		}
+	}
+	fn_flag_last = fn_flag;
+
+	
+	if(kb_device_select(pEvt))		// select device or discovery
+		return;
+	if (pEvt == NULL)
+		return;
+
+	
+	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED ||g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+	{
+		kscurrmult = 0x3;
+	}
+	delayChgInvTimer = 10;
+	g_variable.sleepTimer = 0;
+	xmemclear(hidBuff,9);
+	xmemclear(multikey,9);
+
+	////////////////////////////2.4g pairing////////////////////////////////////
+	if ((pEvt->ksPool[0]  == HID_KEY_EQUAL&& pEvt->ksPool[1]  == HID_KEY_ESC) 
+		||(pEvt->ksPool[0]  == HID_KEY_ESC && pEvt->ksPool[1]  == HID_KEY_EQUAL) 
+		)
+	{
+		if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+		{
+			g_variable.button_flag |= KEY_FLAG_FN_24G_DEVICE_BUTTON;
+		}
+		else
+		{
+			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+		}
+	}
+	else
+	{
+		g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+	}
+
+	m_power_on_flag = 1;
+	if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+	{
+		hidBuff[0] = HID_REPORTID_1;
+		hidBuff[1] |= g_variable.key_combination_ctrl;
+		hidBuff[3] = 0x00; 
+		IPC_TxHidData(hidBuff, 9);
+		g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+		return;
+	}
+
+	// get 24g led status
+	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+		{
+			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
+			|| (pEvt->ksPool[i] == HID_KEY_SCROLL_LOCK))
+			{
+				get_24g_led_send = 1;
+			}
+		}
+	}
+
+	kb_multikey_setup(pEvt);
+	
+	if (mult_key_status == KEY_PRESS) 
+	{
+		mult_key_status = KEY_WAIT_RELEASE;
+		multikey[0] = HID_REPORTID_2;	
+		IPC_TxHidData(multikey, 3);
+	}
+	else if(mult_key_status == KEY_RELEASE)
+	{
+		mult_key_status = KEY_STANDBY;
+		mult_key_value = 0;
+		multikey[0] = HID_REPORTID_2;	
+		IPC_TxHidData(multikey, 3);
+	}
+	else 
+	{
+		hidBuff[0] = HID_REPORTID_1;
+		hidBuff[1] = pEvt->standardSel;
+		hidBuff[2] = 0;
+
+		standard_key_release_flag = 0;
+
+		if (pEvt->ksPool[0] == HID_KEY_FN)
+			xmemcpy(&hidBuff[3], &pEvt->ksPool[1], 5);
+		else
+			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
+		
+		for(i = 3; i<9;i++)
+		{
+			if (hidBuff[i] == HID_KEY_FN)
+				hidBuff[i] = 0;
+		}
+		
+		IPC_TxHidData(hidBuff, 9);
+	}
+	return;
+}
+/////////////////////////////////////////////////////////////////
+
+
+byte kb_device_select(tKSEVENT *pEvt)
+{
+	byte temp = 0;
+	byte i=0;
+	
+	if (fn_flag == 1) 
+	{
+		i = KS_BUFF_POLL_LEN-1;
+
+		while (i--) 
+		{
+			temp = pEvt->ksPool[i];
+
+			if (temp >= HID_KEY_1 && temp <= HID_KEY_4) 
+			{
+				switch(temp)
+				{
+					case HID_KEY_1:
+					case HID_KEY_2:
+					case HID_KEY_3:		//BT
+						g_variable.delay_enter_lpm_timer = 10;
+
+						g_variable.button_flag |= KEY_FLAG_FN_DEVICE_BUTTON;
+						if((g_variable.current_device_num != (temp-(HID_KEY_1 - 1))) ||(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED))
+						{
+							g_variable.current_device_num = temp-(HID_KEY_1 - 1);
+							g_variable.button_reconnect_flag = 1;		// long press = 3s enter discovery
+						}
+						break;
+					case HID_KEY_4: 			//g24 switch
+						if( (g_variable.current_device_num != 0) && (g_variable.current_device_num != 0xfe))
+						{
+							g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+							g_variable.current_device_num =0;
+							YC_key_action_handle(KEY_STOP_DISCOVERY);
+							g_variable.release_data = 1;
+							g_variable.last_device_num = g_variable.current_device_num;
+							g_variable.update_eeprom_flag = 1;
+							YC_update_eeprom_data();
+							System_Reset_Connect();
+						}
+						break;
+				}
+				return 1;
+			}
+			else
+			{
+				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+			}
+		}
+	}
+	else
+	{
+		g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+	}
+	return 0;
+}
+
+
+
+byte key_replace(byte key_state, byte key_value , byte key_replace_value )
+{
+	byte temp_value;
+
+	temp_value = key_value;
+	if (key_state & 1)
+	{
+		fn_tx_flag++;
+		temp_value = key_replace_value;
+	}
+	else
+	{
+		if(fn_tx_flag != 0)
+		{	
+			fn_tx_flag--;
+			temp_value = key_replace_value;
+		}
+	}
+
+	return temp_value;
+}
+
+
+
+
+byte key_fn_function(byte state ,byte key_value)
+{
+	byte temp = 0;
+
+	temp = key_value;
+	if(fn_flag == 1)			// Fn lock
+	{
+		
+		switch (key_value)
+		{ 
+			case HID_KEY_F1:
+				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_DOWN);
+				break;
+			case HID_KEY_F2:
+				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_UP);
+				break;
+			case HID_KEY_F3:
+				g_variable.key_combination_ctrl = KS_SEL_LALT;
+					
+				g_variable.key_combination_keyvalue = HID_KEY_TAB;
+				
+				if(state & 1)
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+				}
+				else
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+				}
+				
+				temp = key_replace(state,key_value,HID_KEY_NULL);
+				break;
+			case HID_KEY_F4:
+				g_variable.key_combination_ctrl = KS_SEL_LGUI;
+				g_variable.key_combination_keyvalue = HID_KEY_D;
+				
+				if(state & 1)
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+				}
+				else
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+				}
+				temp = key_replace(state,key_value,HID_KEY_NULL);
+
+				break;
+			case HID_KEY_F5:
+				g_variable.key_combination_ctrl = KS_SEL_LGUI;
+				g_variable.key_combination_keyvalue = HID_KEY_LEFT_ARROW;
+				
+				if(state & 1)
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+				}
+				else
+				{
+					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+				}
+				temp = key_replace(state,key_value,HID_KEY_NULL);
+				break;
+			case HID_KEY_F6:
+				temp = key_replace(state,key_value,HID_MULTIKEY_AC_SEARCH);
+				break;
+			case HID_KEY_F7:
+				temp = key_replace(state,key_value,HID_MULTIKEY_PRE_TRACK);
+				break;
+			case HID_KEY_F8:
+				temp = key_replace(state,key_value,HID_MULTIKEY_PALY);
+				break;
+			case HID_KEY_F9:
+				temp = key_replace(state,key_value,HID_MULTIKEY_NEXT_TRACK);
+				break;
+			case HID_KEY_F10:
+				temp = key_replace(state,key_value,HID_MULTIKEY_MUTE);
+				break;
+			case HID_KEY_F11:
+				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_DOWN);
+				break;
+			case HID_KEY_F12:
+				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_UP);
+				break;
+			default :
+				break;
+		}
+	}
+
+	return temp;
+}
+
+
+
+void kb_multikey_setup(tKSEVENT *pEvt)
+{
+	byte i = 0;
+	
+	for (i = 0;i < 6;i++)
+	{		
+		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+		{
+			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+			{
+				kb_set_multikey(0x0183); 
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+			{ 
+				kb_set_multikey(0x00cd);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+			{
+				kb_set_multikey(0x00b7);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+			{
+				kb_set_multikey(0x00b6);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+			{
+				kb_set_multikey(0x00b5);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+			{
+				kb_set_multikey(0x00ea);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+			{
+				kb_set_multikey(0x00e9);
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+			{
+				kb_set_multikey(0x00e2);
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+			{
+				kb_set_multikey(0x0194);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+			{
+				kb_set_multikey(0x018a);//mail
+			}
+			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+			{
+				kb_set_multikey(0x0192);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+			{
+				kb_set_multikey(0x022a);//www Favorites
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+			{
+				kb_set_multikey(0x0225);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+			{
+				kb_set_multikey(0x0226);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+			{
+				kb_set_multikey(0x0224);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+			{
+				kb_set_multikey(0x0227);
+			}
+			
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+			{
+				kb_set_multikey(0x0221);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+			{
+				kb_set_multikey(0x0223);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+			{
+				kb_set_multikey(0x0070);
+			}
+			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+			{
+				kb_set_multikey(0x006f);
+			}
+			
+			if(mult_key_status == KEY_WAIT_RELEASE)
+			{
+				mult_key_value = pEvt->ksPool[i];
+				pEvt->ksPool[i] = 0;
+			}
+		}
+	}
+}
+
Index: YC1026_3mode_SDK_CUSTOMER/kbhid.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/kbhid.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/kbhid.h	(working copy)
@@ -0,0 +1,288 @@
+#ifndef _KB_KEY_HID_
+#define _KB_KEY_HID_
+
+
+    /// KB USB usages
+enum UsbUsage {
+        HID_KEY_A 	= 0x04,
+        HID_KEY_B 	= 0x05,
+        HID_KEY_C 	= 0x06,
+        HID_KEY_D 	= 0x07,
+        HID_KEY_E 	= 0x08,
+        HID_KEY_F 	= 0x09,
+        HID_KEY_G 	= 0x0a,
+        HID_KEY_H 	= 0x0b,
+        HID_KEY_I  	= 0x0c,
+        HID_KEY_J 	= 0x0d,
+        HID_KEY_K 	= 0x0e,
+        HID_KEY_L 	= 0x0f,
+        HID_KEY_M 	= 0x10,
+        HID_KEY_N 	= 0x11,
+        HID_KEY_O	= 0x12,
+        HID_KEY_P	= 0x13,
+        HID_KEY_Q	= 0x14,
+        HID_KEY_R	= 0x15,
+        HID_KEY_S	= 0x16,
+        HID_KEY_T	= 0x17,
+        HID_KEY_U	= 0x18,
+        HID_KEY_V	= 0x19,
+        HID_KEY_W 	= 0x1a,
+        HID_KEY_X	= 0x1b,
+        HID_KEY_Y	= 0x1c,
+        HID_KEY_Z	= 0x1d,
+    
+        HID_KEY_1	= 0x1e,
+        HID_KEY_2	= 0x1f,
+        HID_KEY_3	= 0x20,
+        HID_KEY_4	= 0x21,
+        HID_KEY_5	= 0x22,
+        HID_KEY_6	= 0x23,
+        HID_KEY_7	= 0x24,
+        HID_KEY_8	= 0x25,
+        HID_KEY_9	= 0x26,
+        HID_KEY_0	= 0x27,
+    
+        HID_KEY_ENTER 				= 0x28,
+        HID_KEY_ESC				= 0x29,
+        HID_KEY_BACKSPACE		= 0x2a,
+        HID_KEY_TAB				= 0x2b,
+        HID_KEY_SPACE 				= 0x2c,
+        HID_KEY_MINUS				= 0x2d,		// -_
+        HID_KEY_EQUAL				= 0x2e,		// =+
+        HID_KEY_LEFT_BRACKET 		= 0x2f,		// [{
+        HID_KEY_RIGHT_BRACKET 	= 0x30,		// ]}
+        HID_KEY_BACK_SLASH 		= 0x31,		// \|
+    
+        HID_KEY_K42				= 0x32,
+        HID_KEY_SEMICOLON			= 0x33,		// ;:
+        HID_KEY_QUOTE				= 0x34,		// ' "
+        HID_KEY_TILDE				= 0x35,		// `~
+        HID_KEY_LESS_THAN			= 0x36,		// ,<
+        HID_KEY_GREAT_THAN		= 0x37,		// .>
+        HID_KEY_SLASH				= 0x38,		// /?
+        HID_KEY_CAPS_LOCK			= 0x39,
+
+        HID_KEY_F1		= 0x3a,
+        HID_KEY_F2		= 0x3b,
+        HID_KEY_F3		= 0x3c,
+        HID_KEY_F4		= 0x3d,
+        HID_KEY_F5		= 0x3e,
+        HID_KEY_F6		= 0x3f,
+        HID_KEY_F7		= 0x40,
+        HID_KEY_F8		= 0x41,
+        HID_KEY_F9		= 0x42,
+        HID_KEY_F10	= 0x43,
+        HID_KEY_F11	= 0x44,
+        HID_KEY_F12	= 0x45,
+    
+        HID_KEY_PRINT_SCREEN	= 0x46,
+        HID_KEY_SCROLL_LOCK	= 0x47,
+        HID_KEY_PAUSE			= 0x48,
+        HID_KEY_INSERT			= 0x49,
+        HID_KEY_HOME			= 0x4a,
+        HID_KEY_PAGE_UP		= 0x4b,
+        HID_KEY_DELETE		= 0x4c,
+        HID_KEY_END			= 0x4d,
+        HID_KEY_PAGE_DOWN	= 0x4e,
+        
+        HID_KEY_RIGHT_ARROW	= 0x4f,
+        HID_KEY_LEFT_ARROW	= 0x50,
+        HID_KEY_DOWN_ARROW	= 0x51,
+        HID_KEY_UP_ARROW		= 0x52,
+        
+        HID_KEY_NUM_LOCK		= 0x53,
+        HID_KEY_KP_SLASH		= 0x54,
+        HID_KEY_KP_ASTERISK	= 0x55,
+        HID_KEY_KP_MINUS		= 0x56,
+        HID_KEY_KP_PLUS		= 0x57,
+        HID_KEY_KP_ENTER		= 0x58,
+        HID_KEY_KP_1			= 0x59,
+        HID_KEY_KP_2			= 0x5a,
+        HID_KEY_KP_3			= 0x5b,
+        HID_KEY_KP_4			= 0x5c,
+        HID_KEY_KP_5			= 0x5d,
+        HID_KEY_KP_6			= 0x5e,
+        HID_KEY_KP_7			= 0x5f,
+        HID_KEY_KP_8			= 0x60,
+        HID_KEY_KP_9			= 0x61,
+        HID_KEY_KP_0			= 0x62,
+        HID_KEY_KP_DEL		= 0x63,
+  
+        HID_KEY_K45			= 0x64,
+        HID_KEY_APP			= 0x65,
+        HID_KEY_POWER			= 0x66,
+        HID_KEY_KP_EQUAL		= 0x67,
+        
+        HID_KEY_F13			= 0x68,
+        HID_KEY_F14			= 0x69,
+        HID_KEY_F15			= 0x6A,
+        HID_KEY_F16			= 0x6B,
+        HID_KEY_F17			= 0x6C,
+        HID_KEY_F18			= 0x6D,
+        HID_KEY_F19			= 0x6E,
+        HID_KEY_F20			= 0x6F,
+        HID_KEY_F21			= 0x70,
+        HID_KEY_F22			= 0x71,
+        HID_KEY_F23			= 0x72,
+        HID_KEY_F24			= 0x73,
+        
+        HID_KEY_EXECUTE		= 0x74,
+        HID_KEY_HELP			= 0x75,
+        HID_KEY_MENU			= 0x76,
+        HID_KEY_SELECT		= 0x77,
+    
+        HID_KEY_STOP			= 0x78,
+        HID_KEY_AGAIN			= 0x79,
+        HID_KEY_UNDO			= 0x7a,
+        HID_KEY_CUT			= 0x7b,
+        HID_KEY_COPY			= 0x7c,
+        HID_KEY_PASTE			= 0x7d,
+        HID_KEY_FIND			= 0x7e,
+        HID_KEY_MUTE			= 0x7f,
+        HID_KEY_VOL_UP		= 0x80,
+        HID_KEY_VOL_DOWN		= 0x81,
+    
+        HID_KEY_LOCKING_CAPS_LOCK		= 0x82,
+        HID_KEY_LOCKING_NUM_LOCK		= 0x83,
+        HID_KEY_LOCKING_SCROLL_LOCK		= 0x84,
+        HID_KEY_KP_COMMA					= 0x85,
+        HID_KEY_KP_EQUAL_AS400			= 0x86,
+        
+        HID_KEY_K56				= 0x87,
+        HID_KEY_K133  				= 0x88,
+        HID_KEY_K14  				= 0x89,
+        HID_KEY_K132  				= 0x8a,
+        HID_KEY_K131 				= 0x8b,
+    
+        HID_KEY_INTL_6				= 0x8c,
+        HID_KEY_INTL_7				= 0x8d,
+        HID_KEY_INTL_8				= 0x8e,
+        HID_KEY_INTL_9				= 0x8f,
+        HID_KEY_KR_R  				= 0x90,
+        HID_KEY_KR_L  				= 0x91,
+        HID_KEY_LANG_3			= 0x92,
+        HID_KEY_LANG_4			= 0x93,
+        HID_KEY_LANG_5			= 0x94,
+        HID_KEY_LANG_6			= 0x95,
+    
+        HID_KEY_LANG_7			= 0x96,
+        HID_KEY_LANG_8			= 0x97,
+        HID_KEY_LANG_9			= 0x98,
+        HID_KEY_ALT_ERASE			= 0x99,
+        HID_KEY_SYS_REQ			= 0x9a,
+        HID_KEY_CANCEL			= 0x9b,
+        HID_KEY_CLEAR				= 0x9c,
+        HID_KEY_PRIOR				= 0x9d,
+        HID_KEY_RETURN			= 0x9e,
+        HID_KEY_SEPARATOR		= 0x9f,
+    
+        HID_KEY_OUT				= 0xa0,
+        HID_KEY_OPER				= 0xa1,
+        HID_KEY_CLEAR_AGAIN		= 0xa2,
+        HID_KEY_CRSEL				= 0xa3,
+        HID_KEY_EXSEL				= 0xa4,
+    
+        // Reserved 0xa5~0xaf
+        HID_KEY_KP_00						= 0xb0,
+        HID_KEY_KP_000						= 0xb1,
+        HID_KEY_THOUSANDS_SEPERATOR	= 0xb2,
+        HID_KEY_DECIMAL_SEPERATOR		= 0xb3,
+        HID_KEY_CURRENCY_UNIT			= 0xb4,
+        HID_KEY_CURRENCY_SUB_UNIT		= 0xb5,
+        HID_KEY_KP_LEFT_PAREN			= 0xb6,
+        HID_KEY_KP_RIGHT_PAREN			= 0xb7,
+        HID_KEY_KP_LEFT_CURLY_BRACE		= 0xb8,
+        HID_KEY_KP_RIGHT_CURLY_BRACE	= 0xb9,
+        HID_KEY_KP_TAB					= 0xba,
+        HID_KEY_KP_BACKSPACE				= 0xbb,
+        HID_KEY_KP_A						= 0xbc,
+        HID_KEY_KP_B						= 0xbd,
+        HID_KEY_KP_C						= 0xbe,
+        HID_KEY_KP_D						= 0xbf,
+        HID_KEY_KP_E						= 0xc0,
+        HID_KEY_KP_F						= 0xc1,
+        HID_KEY_KP_XOR					= 0xc2,
+        HID_KEY_KP_CARET					= 0xc3,
+        HID_KEY_KP_PERCENT				= 0xc4,
+        HID_KEY_KP_LESS_THAN				= 0xc5,
+        HID_KEY_KP_GREATER_THAN			= 0xc6,
+        HID_KEY_KP_AMPERSAND				= 0xc7,
+    
+        HID_KEY_KP_DOUBLE_AMPERSAND	= 0xc8,
+        HID_KEY_KP_VERTICAL_BAR			= 0xc9,
+        HID_KEY_KP_DOUBLE_VERTICAL_BAR	= 0xca,
+        HID_KEY_KP_COLON					= 0xcb,
+        HID_KEY_KP_HASH					= 0xcc,
+        HID_KEY_KP_SPACE					= 0xcd,
+        HID_KEY_KP_AT						= 0xce,
+        HID_KEY_KP_EXCLAMATION			= 0xcf,
+        HID_KEY_KP_MEM_STORE			= 0xd0,
+        HID_KEY_KP_MEM_RECALL			= 0xd1,
+    
+        HID_KEY_KP_MEM_CLEAR				= 0xd2,
+        HID_KEY_KP_MEM_ADD				= 0xd3,
+        HID_KEY_KP_MEM_SUBTRACT			= 0xd4,
+        HID_KEY_KP_MEM_MULTIPLY			= 0xd5,
+        HID_KEY_KP_MEM_DIVIDE				= 0xd6,
+        HID_KEY_KP_PLUS_MINUS				= 0xd7,
+        HID_KEY_KP_CLEAR					= 0xd8,
+        HID_KEY_KP_CLEAR_ENTRY			= 0xd9,
+        HID_KEY_KP_BINARY					= 0xda,
+        HID_KEY_KP_OCTAL					= 0xdb,
+    
+        HID_KEY_KP_DECIMAL				= 0xdc,
+        HID_KEY_KP_HEX					= 0xdd,
+        // 0xde~0xdf reserved
+        
+        HID_KEY_LEFT_CTL			= 0xe0,
+        HID_KEY_LEFT_SHIFT			= 0xe1,
+        HID_KEY_LEFT_ALT 			= 0xe2,
+        HID_KEY_LEFT_GUI 			= 0xe3,
+        HID_KEY_RIGHT_CTL			= 0xe4,
+        HID_KEY_RIGHT_SHIFT		= 0xe5,
+        HID_KEY_RIGHT_ALT			= 0xe6,
+        HID_KEY_RIGHT_GUI			= 0xe7,
+        // 0xe8~0xff reserved
+        HID_KEY_FN 					= 0xaf,
+        HID_KEY_NULL 				= 0x00,
+};
+
+enum multKey{
+//mult key
+	HID_MULTIKEY_MEDIA		= 0xF1,
+ 	HID_MULTIKEY_PALY		= 0xF2,
+ 	HID_MULTIKEY_STOP		= 0xF3,
+ 	HID_MULTIKEY_PRE_TRACK	= 0xF4,
+ 	HID_MULTIKEY_NEXT_TRACK	= 0xF5,
+ 	HID_MULTIKEY_VOL_DOWN	= 0xF6,
+ 	HID_MULTIKEY_VOL_UP		= 0xF7,
+ 	HID_MULTIKEY_MUTE			= 0xF8,
+ 	HID_MULTIKEY_MY_COMPUTER 	= 0xF9,
+ 	HID_MULTIKEY_MAIL			= 0xFA,
+ 	HID_MULTIKEY_CALCULATOR	= 0xFB,
+
+
+ 	HID_MULTIKEY_AC_FAVORITES	= 0xD0,
+ 	HID_MULTIKEY_AC_FORWARD	= 0xD1,
+ 	HID_MULTIKEY_AC_BACK		= 0xD2,
+ 	HID_MULTIKEY_AC_STOP		= 0xD3,
+ 	HID_MULTIKEY_AC_REFRESH	= 0xD4,
+ 	HID_MULTIKEY_AC_SEARCH	= 0xD5,
+ 	HID_MULTIKEY_AC_HOME		= 0xD6,
+ 	HID_MULTIKEY_LIGHT_DOWN	= 0xD7,
+ 	HID_MULTIKEY_LIGHT_UP		= 0xD8,
+	
+};
+
+enum hidReportId{
+	HID_REPORTID_1 = 0x01,
+	HID_REPORTID_2 = 0x02,
+	HID_REPORTID_3 = 0x03
+};
+
+enum hidReportLen{
+	HID_REPORTLEN_1 = 0x09,
+	HID_REPORTLEN_2 = 0x05
+};
+
+#endif
Index: YC1026_3mode_SDK_CUSTOMER/keyscan.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/keyscan.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/keyscan.h	(working copy)
@@ -0,0 +1,61 @@
+/*
+ * Copyright 2016, yichip Semiconductor(shenzhen office)
+ * All Rights Reserved.
+ *
+ * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Yichip Semiconductor;
+ * the contents of this file may not be disclosed to third parties, copied
+ * or duplicated in any form, in whole or in part, without the prior
+ * written permission of Yichip Semiconductor.
+ */
+#include "common.h"
+
+#ifndef _KEYSCAN_
+#define _KEYSCAN_
+
+#define KS_SEL_RGUI					0x80
+#define KS_SEL_RALT					0x40
+#define KS_SEL_RSHIFT				0x20
+#define KS_SEL_RCTRL				0x10
+#define KS_SEL_LGUI					0x08
+#define KS_SEL_LALT					0x04
+#define KS_SEL_LSHIFT				0x02
+#define KS_SEL_LCTRL				0x01
+
+#define KS_BUFF_POLL_LEN 6
+typedef struct {
+	byte standardSel;
+	byte ksPool[KS_BUFF_POLL_LEN];
+}tKSEVENT;
+
+/**
+ * This function initlialize key scan hardware.
+ * 
+ * @param none.
+ * 
+ * @return none.
+*/
+void KS_Initialize(void);
+
+/**
+ * This function Get Keyscan event message.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+tKSEVENT *KS_GetCurrentEvt();
+
+/**
+ * This function scan ks matrix.
+ * 
+ * @param none.
+ * 
+ * @return ptr of keyscan event.
+*/
+void KS_ScanMatrix();
+
+void KS_Unistall();
+
+
+#endif
+ 
\ No newline at end of file
Index: YC1026_3mode_SDK_CUSTOMER/keyscan.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/keyscan.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/keyscan.c	(working copy)
@@ -0,0 +1,387 @@
+#include "keyscan.h"
+
+
+extern code byte col[KB_KSCAN_COL_NUM+1];
+extern code byte  ksMap[KS_KEY_MAP_LEN];
+
+
+#define GET_RAW_KEY_SEL(y, g, n)	REG_GPIO_PUP (g) &= ~n; \
+	REG_GPIO_OE(g) |= n; \
+	REG_GPIO_OUT(g) &= ~n;	\
+	y = ~ REG_GPIO_IN(0);	\
+	REG_GPIO_PUP(g) |= n;	\
+	REG_GPIO_OE(g) &= ~n
+
+
+#define GET_RAW_KEY_SEL0(y,x)		GPIO_SetOutput(x, 0); \
+		y = ~ REG_GPIO_IN(0);	\
+		GPIO_SetInput(x, 0)
+
+tKSEVENT xdata ksEvtPool;
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+static byte bit_count(byte v)
+{
+	unsigned char c;
+	for (c = 0; v; c++) {
+    	v &= v - 1;
+    }
+    return c;
+}
+
+
+//byte col[] = {25,26};
+static void keyIn(byte key)
+{
+	byte i = 0;
+
+	if (key == HID_KEY_RIGHT_GUI)
+	{
+		ksEvtPool.standardSel |= KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_ALT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RALT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_SHIFT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_CTL) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_GUI) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_ALT) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LALT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_SHIFT)
+	{
+		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_CTL) 
+	{
+		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+		return;
+	}
+	//special key
+
+	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+	{
+		if (ksEvtPool.ksPool[i] == key)
+			break;
+		if (ksEvtPool.ksPool[i] == 0) 
+		{
+			if(mult_key_value != key)
+				ksEvtPool.ksPool[i] = key;
+			break;
+		}
+	}
+}
+
+static void keyOut(byte key)
+{
+	byte i = 0 ;
+	byte found = 0;
+
+	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
+	{
+		if(mult_key_status == KEY_WAIT_RELEASE)
+		{
+			mult_key_status = KEY_RELEASE;
+		}
+	}
+	else
+		standard_key_release_flag = 1;
+
+
+	if (key == HID_KEY_RIGHT_GUI ) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_ALT ) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RALT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_SHIFT) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_RIGHT_CTL) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_GUI)
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_ALT)
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LALT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_SHIFT) 
+	{
+		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
+		return;
+	}
+	else if (key ==HID_KEY_LEFT_CTL) 
+	{
+		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
+		return;
+	}
+	
+	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+	{
+		if (found == 0) 
+		{
+			if (ksEvtPool.ksPool[i] == key) {
+				if (i == KS_BUFF_POLL_LEN-1) {
+					ksEvtPool.ksPool[i] = 0;
+				}
+				found = 1;
+			}
+		}
+		else 
+		{
+			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+			if (ksEvtPool.ksPool[i] == 0)
+				break;
+			if (i == KS_BUFF_POLL_LEN-1) {
+				ksEvtPool.ksPool[i] = 0;
+			}
+		}
+	}
+}
+
+static void ksRawInitialize()
+{
+	byte i = 0;
+	
+	for (i=0; i<8; i++) {
+		GPIO_SetInput(i, 0);
+	}
+}
+
+static void ksColInitialize()
+{
+	byte i = 0;
+	for (i=0; col[i]!=0; i++) {
+		GPIO_SetInput(col[i], 0);
+	}
+}
+
+void KS_Initialize()
+{
+	REG_GPIO_SELECT(0) = 0;
+	REG_GPIO_SELECT(1) = 0;
+	REG_GPIO_SELECT(2) = 0;
+	ksRawInitialize();
+	ksColInitialize();
+}
+
+void KS_Unistall()
+{
+	byte i = 0;
+	byte temp = 0;
+	byte tgroup = 0;
+	byte tgpionum = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+		REG_GPIO_OE(tgroup) |= tgpionum;
+		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+	}
+	
+	GPIO_fillpd();
+	
+	temp = REG_GPIO_IN(0);
+	if (g_variable.battery_status != 2)
+	{
+		if(long_press_flag)
+		{
+			GPIO_SetWakeupByCurrentState(0);
+			GPIO_SetWakeupByCurrentState(1);
+			GPIO_SetWakeupByCurrentState(2);
+			GPIO_SetWakeupByCurrentState(3);
+			GPIO_SetWakeupByCurrentState(4);
+			GPIO_SetWakeupByCurrentState(5);
+			GPIO_SetWakeupByCurrentState(6);
+			GPIO_SetWakeupByCurrentState(7);
+		}
+		else
+		{
+			YC_GPIOWakeupL[0] = temp;
+			YC_GPIOWakeupH[0] = ~temp;
+		}
+
+	}
+	else
+	{
+		YC_GPIOWakeupL[0] = 0;
+		YC_GPIOWakeupH[0] = 0;
+	}
+}
+
+
+void KS_ScanMatrix()
+{
+	byte i = 0;
+	byte j = 0;
+	byte tgroup = 0;
+	byte tgpionum = 0;
+	byte temp = 0;
+	byte check = 0;
+	byte rawSel = 0;
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		tgroup = col[i]  >> 3;
+		tgpionum = 1 << (col[i] & 7);
+		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+			ksSelMapCurr[i] &= ksSelMapCheck[i];
+		}
+	}
+}
+
+byte array_is_empty(byte * str1,byte len)
+{
+	byte i;
+	for (i=0;i < len;i++)
+	{
+		if (str1[i] != 0)
+			return 0x00;
+	}
+	return 0x01;
+}
+
+
+tKSEVENT *KS_GetCurrentEvt()
+{
+	//
+	byte i = 0;
+	byte j = 0;
+	byte temp = 0;
+	byte flag = 0;
+	byte offset = 0;
+	byte state = 0;
+	byte colCounttemp = 0;
+	byte rawSel =0;
+	byte keyCounttemp = 0;
+	byte key_value_temp = 0;
+	byte ghost = 0;
+	byte rawCount = 0;
+	byte colCount = 0;
+	byte keyCount = 0;
+	
+	KS_ScanMatrix();
+
+	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+	{
+		g_variable.button_flag |= 0x02;
+	}
+	else
+	{	
+		g_variable.button_flag &= 0xFD;
+		g_variable.button_timer[1] = 0;
+	}
+
+	for (i=0; col[i]!=0; i++) {
+		temp = ksSelMapCurr[i];
+		if (temp!=0) {
+			colCounttemp++;
+			rawSel = temp|rawSel;
+			keyCounttemp += bit_count(temp);
+		}
+	}
+	keyCount = keyCounttemp;
+	colCount = colCounttemp;
+	rawCount = bit_count(rawSel);
+	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
+		ghost = 1;
+	}
+	else {
+		ghost = 0;
+	}
+	
+	for (i=0; col[i]!=0; i++)
+	{
+		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+		state = ksSelMapCurr[i];
+		if (temp == 0) 
+		{
+			continue;
+		}
+		else 
+		{
+
+			if (ghost) 
+				return NULL;
+			ksSelMapOld[i] = ksSelMapCurr[i];
+			for (j = 0 ; j<8 ; j++) 
+			{
+				if (temp&1)
+				{
+					offset = i<<3 |j;
+					key_value_temp = key_fn_function(state,ksMap[offset]);
+					if (state & 1)
+					{
+						keyIn(key_value_temp);
+					}
+					else
+					{
+						keyOut(key_value_temp);
+					}
+				}
+				temp = temp >>1;
+				state = state>>1;
+			}
+			flag = 1;
+		}
+	}
+	
+	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+	{
+		standard_key_release_flag = 2;		//media key and standard key  release the same time
+	}
+
+	
+	if (flag || standard_key_release_flag == 2) 
+	{
+		return &ksEvtPool;
+	}
+	else
+	{
+		return NULL;
+	}
+	
+
+}
+
Index: YC1026_3mode_SDK_CUSTOMER/led.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/led.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/led.h	(working copy)
@@ -0,0 +1,12 @@
+#ifndef _LED_H
+#define _LED_H
+#include "common.h"
+
+void LED_all_shutdown();
+void LED_handle();
+void LED_device_poweron();
+void LED_device_poweroff();
+
+#endif /* YC_LED_H */
+
+
Index: YC1026_3mode_SDK_CUSTOMER/output/FW
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/output/FW
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/led.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/led.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/led.c	(working copy)
@@ -0,0 +1,130 @@
+#include "led.h"
+
+
+void LED_all_shutdown()
+{
+	GPIO_SetOutput(NUM_LOCK_LED_GPIO,1);
+	GPIO_SetOutput(CAPS_LED_GPIO,1);
+	GPIO_SetOutput(BT_LED_GPIO,1);
+	GPIO_SetOutput(BT2_LED_GPIO,1);	
+	GPIO_SetOutput(LOWPOWER_LED_GPIO,1);
+	GPIO_SetOutput(G24_LED_GPIO,1);
+}
+
+
+void LED_device_poweron()
+{
+	if(g_variable.current_device_num == 1)
+		GPIO_Setout(BT_LED_GPIO,0);
+	else if(g_variable.current_device_num == 2)
+		GPIO_Setout(BT2_LED_GPIO,0);
+	else if(g_variable.current_device_num == 3)
+	{	
+		GPIO_Setout(BT_LED_GPIO,0);
+		GPIO_Setout(LOWPOWER_LED_GPIO,0);
+	}
+	else
+	{
+		GPIO_Setout(G24_LED_GPIO,0);
+	}
+}
+
+void LED_device_poweroff()
+{
+	if(g_variable.current_device_num == 1)
+		GPIO_Setout(BT_LED_GPIO,1);
+	else if(g_variable.current_device_num == 2)
+		GPIO_Setout(BT2_LED_GPIO,1);
+	else if(g_variable.current_device_num == 3)
+	{	
+		GPIO_Setout(BT_LED_GPIO,1);
+		GPIO_Setout(LOWPOWER_LED_GPIO,1);
+	}
+	else
+	{
+		GPIO_Setout(G24_LED_GPIO,1);
+	}
+}
+
+
+void LED_handle()
+{
+	if (power_on_flag != 2)
+		return;
+
+	if(!g_variable.pairing_timeout)
+	{
+		//low battery LED process
+		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+		{
+			System_long_sleep();
+		}
+		else if (g_variable.battery_status == BAT_STATUS_LOW)
+		{
+			if (g_variable.battery_low_led_flash_flag == 0)
+			{
+				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+				g_variable.battery_low_led_flash_flag = 1;
+			}
+		}
+		else
+		{
+			if (g_variable.battery_low_led_flash_flag == 1)
+			{
+				g_variable.battery_low_led_flash_flag = 0;
+				g_variable.battery_low_led_flash_interval = 0;
+				GPIO_Setout(LOWPOWER_LED_GPIO, 1);
+			}
+		}
+
+		//capslock  numlock  scrolllock LED process
+		if (YC_check_is_connected())
+		{
+			if(m_caps_num_lock != m_caps_num_lock_last)
+			{
+				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
+				{
+					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+					GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
+				}
+				else
+				{
+					GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+					g_variable.sys_numlockled_on_timer = 0;
+				}
+				
+				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+				{
+					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+					GPIO_Setout(CAPS_LED_GPIO, 0);
+				}
+				else 
+				{
+					GPIO_Setout(CAPS_LED_GPIO, 1);
+					g_variable.sys_capslockled_on_timer = 0;
+				}	
+
+				//if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+				//	g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+				//else 
+				//	g_variable.sys_scrolllockled_on_timer = 0;
+					
+				m_caps_num_lock_last = m_caps_num_lock;
+			}
+		}
+		else
+		{
+			GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+			GPIO_Setout(CAPS_LED_GPIO, 1);
+		}
+	}
+	else
+	{
+		GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+		GPIO_Setout(CAPS_LED_GPIO, 1);
+	}
+
+}
+
+
+
Index: YC1026_3mode_SDK_CUSTOMER/output/FW.COD
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.COD	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.COD	(working copy)
@@ -0,0 +1,10380 @@
+LX51 LINKER/LOCATER V4.41                                                               05/09/2020  11:32:39  PAGE 1
+
+
+
+
+
+ASSEMBLER CODE PACKING OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+----- FUNCTION _YC_load_record_list (BEGIN) -----
+ FILE: 'bluetooth.c'
+    4: void YC_load_record_list(byte index)
+    5: {
+000737 904EEE            MOV     DPTR,#index
+00073A EF                MOV     A,R7
+00073B F0                MOVX    @DPTR,A
+    6: 	if (g_variable.recon_count == 0)
+    7: 		return;
+00073C 904CF0            MOV     DPTR,#g_variable+031H
+00073F E0                MOVX    A,@DPTR
+000740 7003              JNZ     $ + 5H
+000742 02085B            LJMP    ?C0002?BLUETOOTH
+000745         ?C0001?BLUETOOTH:
+    8: 	g_variable.recon_count--;
+000745 904CF0            MOV     DPTR,#g_variable+031H
+000748 E0                MOVX    A,@DPTR
+000749 14                DEC     A
+00074A F0                MOVX    @DPTR,A
+    9: 	ble_reconnect_flag = 0;
+00074B E4                CLR     A
+00074C 904DDD            MOV     DPTR,#ble_reconnect_flag
+00074F F0                MOVX    @DPTR,A
+   10: 	if (bd_key_record_list[index].device_type == TYPE_BLE)		
+000750 904EEE            MOV     DPTR,#index
+000753 E0                MOVX    A,@DPTR
+000754 FF                MOV     R7,A
+000755 75F01D            MOV     B,#01DH
+000758 A4                MUL     AB
+000759 24E4              ADD     A,#LOW bd_key_record_list
+00075B F582              MOV     DPL,A
+00075D E4                CLR     A
+00075E 344D              ADDC    A,#HIGH bd_key_record_list
+000760 F583              MOV     DPH,A
+000762 E0                MOVX    A,@DPTR
+000763 6401              XRL     A,#01H
+000765 7070              JNZ     ?C0003?BLUETOOTH
+   11: 	{
+   12: 		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+000767 EF                MOV     A,R7
+000768 75F01D            MOV     B,#01DH
+00076B A4                MUL     AB
+00076C 24E5              ADD     A,#LOW bd_key_record_list+01H
+00076E F9                MOV     R1,A
+00076F 744D              MOV     A,#HIGH bd_key_record_list+01H
+000771 35F0              ADDC    A,B
+000773 FA                MOV     R2,A
+000774 7B01              MOV     R3,#01H
+000776 7E42              MOV     R6,#HIGH m_reconn_addr
+000778 7F74              MOV     R7,#LOW m_reconn_addr
+00077A 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+00077D 7406              MOV     A,#06H
+00077F F0                MOVX    @DPTR,A
+000780 121206            LCALL   _xmemcpy
+   13: 		xmemcpy(m_le_ltk,bd_key_record_list[index].device_link_key,16);
+000783 904EEE            MOV     DPTR,#index
+000786 E0                MOVX    A,@DPTR
+000787 75F01D            MOV     B,#01DH
+00078A A4                MUL     AB
+00078B 24EB              ADD     A,#LOW bd_key_record_list+07H
+00078D F9                MOV     R1,A
+00078E 744D              MOV     A,#HIGH bd_key_record_list+07H
+000790 35F0              ADDC    A,B
+000792 FA                MOV     R2,A
+000793 7B01              MOV     R3,#01H
+000795 7E44              MOV     R6,#HIGH m_le_ltk
+000797 7F7B              MOV     R7,#LOW m_le_ltk
+000799 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+00079C 7410              MOV     A,#010H
+00079E F0                MOVX    @DPTR,A
+00079F 121206            LCALL   _xmemcpy
+   14: 		xmemcpy(m_le_lap,bd_key_record_list[index].local_addr,6);
+0007A2 904EEE            MOV     DPTR,#index
+0007A5 E0                MOVX    A,@DPTR
+0007A6 75F01D            MOV     B,#01DH
+0007A9 A4                MUL     AB
+0007AA 24FB              ADD     A,#LOW bd_key_record_list+017H
+0007AC F9                MOV     R1,A
+0007AD 744D              MOV     A,#HIGH bd_key_record_list+017H
+0007AF 35F0              ADDC    A,B
+0007B1 FA                MOV     R2,A
+0007B2 7B01              MOV     R3,#01H
+0007B4 7E44              MOV     R6,#HIGH m_le_lap
+0007B6 7FF9              MOV     R7,#LOW m_le_lap
+0007B8 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0007BB 7406              MOV     A,#06H
+0007BD F0                MOVX    @DPTR,A
+0007BE 121206            LCALL   _xmemcpy
+   15: 		IPC_TxControlCmd(IPC_CMD_START_ADV_REC);		//ble reconnect
+0007C1 7F2B              MOV     R7,#02BH
+0007C3 12085C            LCALL   _IPC_TxControlCmd
+   16: 		ble_reconnect_flag = 1;
+0007C6 904DDD            MOV     DPTR,#ble_reconnect_flag
+0007C9 7401              MOV     A,#01H
+0007CB F0                MOVX    @DPTR,A
+   17: 		g_variable.recon_count = 0;
+0007CC E4                CLR     A
+0007CD 904CF0            MOV     DPTR,#g_variable+031H
+0007D0 F0                MOVX    @DPTR,A
+   18: 		m_ltk_exists = 1;
+0007D1 90448B            MOV     DPTR,#m_ltk_exists
+0007D4 04                INC     A
+0007D5 F0                MOVX    @DPTR,A
+   19: 	}
+0007D6 22                RET     
+0007D7         ?C0003?BLUETOOTH:
+   20: 	else if (bd_key_record_list[index].device_type == TYPE_BT)
+0007D7 904EEE            MOV     DPTR,#index
+0007DA E0                MOVX    A,@DPTR
+0007DB FF                MOV     R7,A
+0007DC 75F01D            MOV     B,#01DH
+0007DF A4                MUL     AB
+0007E0 24E4              ADD     A,#LOW bd_key_record_list
+0007E2 F582              MOV     DPL,A
+0007E4 E4                CLR     A
+0007E5 344D              ADDC    A,#HIGH bd_key_record_list
+0007E7 F583              MOV     DPH,A
+0007E9 E0                MOVX    A,@DPTR
+0007EA 6402              XRL     A,#02H
+0007EC 7046              JNZ     ?C0005?BLUETOOTH
+   21: 	{
+   22: 		xmemcpy(m_reconn_addr,bd_key_record_list[index].device_addr,6);
+0007EE EF                MOV     A,R7
+0007EF 75F01D            MOV     B,#01DH
+0007F2 A4                MUL     AB
+0007F3 24E5              ADD     A,#LOW bd_key_record_list+01H
+0007F5 F9                MOV     R1,A
+0007F6 744D              MOV     A,#HIGH bd_key_record_list+01H
+0007F8 35F0              ADDC    A,B
+0007FA FA                MOV     R2,A
+0007FB 7B01              MOV     R3,#01H
+0007FD 7E42              MOV     R6,#HIGH m_reconn_addr
+0007FF 7F74              MOV     R7,#LOW m_reconn_addr
+000801 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000804 7406              MOV     A,#06H
+000806 F0                MOVX    @DPTR,A
+000807 121206            LCALL   _xmemcpy
+   23: 		xmemcpy(m_linkkey,bd_key_record_list[index].device_link_key,16);
+00080A 904EEE            MOV     DPTR,#index
+00080D E0                MOVX    A,@DPTR
+00080E 75F01D            MOV     B,#01DH
+000811 A4                MUL     AB
+000812 24EB              ADD     A,#LOW bd_key_record_list+07H
+000814 F9                MOV     R1,A
+000815 744D              MOV     A,#HIGH bd_key_record_list+07H
+000817 35F0              ADDC    A,B
+000819 FA                MOV     R2,A
+00081A 7B01              MOV     R3,#01H
+00081C 7E42              MOV     R6,#HIGH m_linkkey
+00081E 7F62              MOV     R7,#LOW m_linkkey
+000820 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+000823 7410              MOV     A,#010H
+000825 F0                MOVX    @DPTR,A
+000826 121206            LCALL   _xmemcpy
+   24: 		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+000829 7F03              MOV     R7,#03H
+00082B 115C              ACALL   _IPC_TxControlCmd
+   25: 		m_link_key_exists = 1;
+00082D 90425E            MOV     DPTR,#m_link_key_exists
+000830 7401              MOV     A,#01H
+000832 F0                MOVX    @DPTR,A
+   26: 	}
+000833 22                RET     
+000834         ?C0005?BLUETOOTH:
+   27: 	else		// bt fast connect
+   28: 	{
+   29: 		m_reconn_addr[0] = 0xFF;
+000834 904274            MOV     DPTR,#m_reconn_addr
+000837 74FF              MOV     A,#0FFH
+000839 F0                MOVX    @DPTR,A
+   30: 		m_reconn_addr[1] = 0xFF;
+00083A A3                INC     DPTR
+00083B F0                MOVX    @DPTR,A
+   31: 		m_reconn_addr[2] = 0xFF;
+00083C A3                INC     DPTR
+00083D F0                MOVX    @DPTR,A
+   32: 		m_reconn_addr[3] = 0xFF;
+00083E A3                INC     DPTR
+00083F F0                MOVX    @DPTR,A
+   33: 		m_reconn_addr[4] = 0xFF;
+000840 A3                INC     DPTR
+000841 F0                MOVX    @DPTR,A
+   34: 		m_reconn_addr[5] = 0xFF;
+000842 A3                INC     DPTR
+000843 F0                MOVX    @DPTR,A
+   35: 		xmemclear_ff((byte *)m_linkkey,16); 
+000844 7B01              MOV     R3,#01H
+000846 7A42              MOV     R2,#HIGH m_linkkey
+000848 7962              MOV     R1,#LOW m_linkkey
+00084A 7D10              MOV     R5,#010H
+00084C 7C00              MOV     R4,#00H
+00084E 1224CC            LCALL   _xmemclear_ff
+   36: 		IPC_TxControlCmd(IPC_CMD_RECONNECT);
+000851 7F03              MOV     R7,#03H
+000853 115C              ACALL   _IPC_TxControlCmd
+   37: 		m_link_key_exists = 1;
+000855 90425E            MOV     DPTR,#m_link_key_exists
+000858 7401              MOV     A,#01H
+00085A F0                MOVX    @DPTR,A
+   38: 	}
+   39: }
+00085B         ?C0002?BLUETOOTH:
+00085B 22                RET     
+----- FUNCTION _YC_load_record_list (END) -------
+
+
+----- FUNCTION _IPC_TxControlCmd (BEGIN) -----
+00085C 904ECD            MOV     DPTR,#cmd
+00085F EF                MOV     A,R7
+000860 F0                MOVX    @DPTR,A
+000861 78CE              MOV     R0,#LOW cmdBuff
+000863 7C4E              MOV     R4,#HIGH cmdBuff
+000865 7D01              MOV     R5,#01H
+000867 7BFF              MOV     R3,#0FFH
+000869 7A07              MOV     R2,#HIGH _?ix1000
+00086B 7934              MOV     R1,#LOW _?ix1000
+00086D 7E00              MOV     R6,#00H
+00086F 7F03              MOV     R7,#03H
+000871 120390            LCALL   ?C?COPY
+000874 904ECD            MOV     DPTR,#cmd
+000877 E0                MOVX    A,@DPTR
+000878 904ED0            MOV     DPTR,#cmdBuff+02H
+00087B F0                MOVX    @DPTR,A
+00087C 7B01              MOV     R3,#01H
+00087E 7A4E              MOV     R2,#HIGH cmdBuff
+000880 79CE              MOV     R1,#LOW cmdBuff
+000882 7D03              MOV     R5,#03H
+;----                  JMP     _ipcTx
+----- FUNCTION _IPC_TxControlCmd (END) -------
+
+
+----- FUNCTION _ipcTx (BEGIN) -----
+000884 904E9D            MOV     DPTR,#src
+000887 EB                MOV     A,R3
+000888 F0                MOVX    @DPTR,A
+000889 A3                INC     DPTR
+00088A EA                MOV     A,R2
+00088B F0                MOVX    @DPTR,A
+00088C A3                INC     DPTR
+00088D E9                MOV     A,R1
+00088E F0                MOVX    @DPTR,A
+00088F A3                INC     DPTR
+000890 ED                MOV     A,R5
+000891 F0                MOVX    @DPTR,A
+000892 904B9C            MOV     DPTR,#ipcTxWritePtr
+000895 E0                MOVX    A,@DPTR
+000896 FF                MOV     R7,A
+000897 A3                INC     DPTR
+000898 E0                MOVX    A,@DPTR
+000899 904EA1            MOV     DPTR,#dest
+00089C CF                XCH     A,R7
+00089D F0                MOVX    @DPTR,A
+00089E A3                INC     DPTR
+00089F EF                MOV     A,R7
+0008A0 F0                MOVX    @DPTR,A
+0008A1         ?C0008?IPC:
+0008A1 904B9A            MOV     DPTR,#ipcTxReadPtr
+0008A4 E0                MOVX    A,@DPTR
+0008A5 FE                MOV     R6,A
+0008A6 A3                INC     DPTR
+0008A7 E0                MOVX    A,@DPTR
+0008A8 FF                MOV     R7,A
+0008A9 904B9C            MOV     DPTR,#ipcTxWritePtr
+0008AC E0                MOVX    A,@DPTR
+0008AD FC                MOV     R4,A
+0008AE A3                INC     DPTR
+0008AF E0                MOVX    A,@DPTR
+0008B0 FD                MOV     R5,A
+0008B1 7B64              MOV     R3,#064H
+0008B3 1234F2            LCALL   _bufsize
+0008B6 904EA0            MOV     DPTR,#len
+0008B9 E0                MOVX    A,@DPTR
+0008BA FE                MOV     R6,A
+0008BB EF                MOV     A,R7
+0008BC C3                CLR     C
+0008BD 9E                SUBB    A,R6
+0008BE 40E1              JC      ?C0008?IPC
+0008C0         ?C0009?IPC:
+0008C0         ?C0010?IPC:
+0008C0 904EA0            MOV     DPTR,#len
+0008C3 E0                MOVX    A,@DPTR
+0008C4 FF                MOV     R7,A
+0008C5 14                DEC     A
+0008C6 F0                MOVX    @DPTR,A
+0008C7 EF                MOV     A,R7
+0008C8 603F              JZ      ?C0011?IPC
+0008CA 904E9D            MOV     DPTR,#src
+0008CD E0                MOVX    A,@DPTR
+0008CE FB                MOV     R3,A
+0008CF A3                INC     DPTR
+0008D0 E4                CLR     A
+0008D1 75F001            MOV     B,#01H
+0008D4 120424            LCALL   ?C?ILDIX
+0008D7 A9F0              MOV     R1,B
+0008D9 FA                MOV     R2,A
+0008DA 1203B6            LCALL   ?C?CLDPTR
+0008DD FF                MOV     R7,A
+0008DE 904EA1            MOV     DPTR,#dest
+0008E1 E4                CLR     A
+0008E2 75F001            MOV     B,#01H
+0008E5 120424            LCALL   ?C?ILDIX
+0008E8 85F082            MOV     DPL,B
+0008EB F583              MOV     DPH,A
+0008ED EF                MOV     A,R7
+0008EE F0                MOVX    @DPTR,A
+0008EF 904EA1            MOV     DPTR,#dest
+0008F2 E0                MOVX    A,@DPTR
+0008F3 FE                MOV     R6,A
+0008F4 A3                INC     DPTR
+0008F5 E0                MOVX    A,@DPTR
+0008F6 FF                MOV     R7,A
+0008F7 BE4BC6            CJNE    R6,#04BH,?C0010?IPC
+0008FA BF36C3            CJNE    R7,#036H,?C0010?IPC
+0008FD 904EA1            MOV     DPTR,#dest
+000900 744A              MOV     A,#04AH
+000902 F0                MOVX    @DPTR,A
+000903 A3                INC     DPTR
+000904 74A0              MOV     A,#0A0H
+000906 F0                MOVX    @DPTR,A
+000907 80B7              SJMP    ?C0010?IPC
+000909         ?C0011?IPC:
+000909 904EA1            MOV     DPTR,#dest
+00090C E0                MOVX    A,@DPTR
+00090D FF                MOV     R7,A
+00090E A3                INC     DPTR
+00090F E0                MOVX    A,@DPTR
+000910 904B9C            MOV     DPTR,#ipcTxWritePtr
+000913 CF                XCH     A,R7
+000914 F0                MOVX    @DPTR,A
+000915 A3                INC     DPTR
+000916 EF                MOV     A,R7
+000917 F0                MOVX    @DPTR,A
+000918 22                RET     
+----- FUNCTION _ipcTx (END) -------
+
+
+----- FUNCTION _YC_key_action_handle (BEGIN) -----
+ FILE: 'kb_process.c'
+    3: void YC_key_action_handle(byte key_num)
+    4: {
+000919 904EF1            MOV     DPTR,#key_num
+00091C EF                MOV     A,R7
+00091D F0                MOVX    @DPTR,A
+    5: 	switch (key_num)
+    6: 	{
+00091E 14                DEC     A
+00091F B40D00            CJNE    A,#0DH,?C0202?KB_PROCESS
+000922         ?C0202?KB_PROCESS:
+000922 4002              JC      $ + 4H
+000924 41AD              AJMP    ?C0025?KB_PROCESS
+000926 900934            MOV     DPTR,#0934H
+000929 75F003            MOV     B,#03H
+00092C A4                MUL     AB
+00092D C583              XCH     A,DPH
+00092F 25F0              ADD     A,B
+000931 C583              XCH     A,DPH
+000933 73                JMP     @A+DPTR
+000934         ?C0203?KB_PROCESS:
+000934 02095B            LJMP    ?C0004?KB_PROCESS
+000937 02095B            LJMP    ?C0004?KB_PROCESS
+00093A 02095B            LJMP    ?C0004?KB_PROCESS
+00093D 020AAD            LJMP    ?C0025?KB_PROCESS
+000940 0209A2            LJMP    ?C0009?KB_PROCESS
+000943 0209D6            LJMP    ?C0013?KB_PROCESS
+000946 0209DF            LJMP    ?C0014?KB_PROCESS
+000949 020A2C            LJMP    ?C0016?KB_PROCESS
+00094C 020A2C            LJMP    ?C0016?KB_PROCESS
+00094F 020A6D            LJMP    ?C0020?KB_PROCESS
+000952 020AAD            LJMP    ?C0025?KB_PROCESS
+000955 020AAD            LJMP    ?C0025?KB_PROCESS
+000958 02099A            LJMP    ?C0008?KB_PROCESS
+    7: 	case KEY_RECON_0:
+    8: 	case KEY_RECON_1:
+    9: 	case KEY_RECON_2:
+   10: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+00095B         ?C0004?KB_PROCESS:
+   11: 			||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+00095B 904CC5            MOV     DPTR,#g_variable+06H
+00095E E0                MOVX    A,@DPTR
+00095F FF                MOV     R7,A
+000960 6403              XRL     A,#03H
+000962 6004              JZ      ?C0006?KB_PROCESS
+000964 EF                MOV     A,R7
+000965 B4020D            CJNE    A,#02H,?C0005?KB_PROCESS
+000968         ?C0006?KB_PROCESS:
+   12: 		{
+   13: 			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+000968 7F22              MOV     R7,#022H
+00096A 115C              ACALL   _IPC_TxControlCmd
+   14: 			g_variable.key_action = key_num;
+00096C 904EF1            MOV     DPTR,#key_num
+00096F E0                MOVX    A,@DPTR
+000970 904CED            MOV     DPTR,#g_variable+02EH
+000973 F0                MOVX    @DPTR,A
+   15: 		}
+000974 22                RET     
+000975         ?C0005?KB_PROCESS:
+   16: 		else
+   17: 		{
+   18: 			recon_index = key_num-1;
+000975 904EF1            MOV     DPTR,#key_num
+000978 E0                MOVX    A,@DPTR
+000979 14                DEC     A
+00097A 904DD1            MOV     DPTR,#recon_index
+00097D F0                MOVX    @DPTR,A
+   19: 			kscurrmult = 0x05;
+00097E 904213            MOV     DPTR,#kscurrmult
+000981 7405              MOV     A,#05H
+000983 F0                MOVX    @DPTR,A
+   20: 			g_variable.recon_count = 5;
+000984 904CF0            MOV     DPTR,#g_variable+031H
+000987 F0                MOVX    @DPTR,A
+   21: 			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+000988 7F04              MOV     R7,#04H
+00098A 115C              ACALL   _IPC_TxControlCmd
+   22: 			Delay1ms(10);
+00098C 7F0A              MOV     R7,#0AH
+00098E F17B              ACALL   _Delay1ms
+   23: 			IPC_TxControlCmd(IPC_CMD_SET_RECONNECT_INIT);
+000990 7F2A              MOV     R7,#02AH
+000992 115C              ACALL   _IPC_TxControlCmd
+   24: 			g_variable.key_action = KEY_NONE;
+000994 E4                CLR     A
+000995 904CED            MOV     DPTR,#g_variable+02EH
+000998 F0                MOVX    @DPTR,A
+   25: 		}
+   26: 		break;
+000999 22                RET     
+   27: 	case KEY_STOP_DISCOVERY:
+00099A         ?C0008?KB_PROCESS:
+   28: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+00099A 7F0E              MOV     R7,#0EH
+00099C 115C              ACALL   _IPC_TxControlCmd
+   29: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+00099E 7F02              MOV     R7,#02H
+0009A0 015C              AJMP    _IPC_TxControlCmd
+   30: 		break;
+   31: 	case KEY_DISCOVERY:
+0009A2         ?C0009?KB_PROCESS:
+   32: 		g_variable.recon_count = 0;
+0009A2 E4                CLR     A
+0009A3 904CF0            MOV     DPTR,#g_variable+031H
+0009A6 F0                MOVX    @DPTR,A
+   33: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+0009A7 1218B4            LCALL   YC_disconnect_all_link
+0009AA EF                MOV     A,R7
+0009AB 7006              JNZ     ?C0011?KB_PROCESS
+0009AD 121893            LCALL   YC_cancel_reconnect
+0009B0 EF                MOV     A,R7
+0009B1 600F              JZ      ?C0010?KB_PROCESS
+0009B3         ?C0011?KB_PROCESS:
+   34: 		{
+   35: 			g_variable.key_action = key_num;
+0009B3 904EF1            MOV     DPTR,#key_num
+0009B6 E0                MOVX    A,@DPTR
+0009B7 904CED            MOV     DPTR,#g_variable+02EH
+0009BA F0                MOVX    @DPTR,A
+   36: 			action_timeout = 3;
+0009BB 904DE2            MOV     DPTR,#action_timeout
+0009BE 7403              MOV     A,#03H
+0009C0 F0                MOVX    @DPTR,A
+   37: 		}
+0009C1 22                RET     
+0009C2         ?C0010?KB_PROCESS:
+   38: 		else
+   39: 		{
+   40: 			YC_clear_reconnect_flag();
+0009C2 F1EB              ACALL   YC_clear_reconnect_flag
+   41: 				m_lpm_mode = 0;
+0009C4 E4                CLR     A
+0009C5 904131            MOV     DPTR,#m_lpm_mode
+0009C8 F0                MOVX    @DPTR,A
+   42: 			#if DEVICE_MODE_BT_ONLY
+   43: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+   44: 			#elif DEVICE_MODE_BLE_ONLY	
+   45: 				YC_get_ble_ramdon_lap();
+0009C9 122005            LCALL   YC_get_ble_ramdon_lap
+   46: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
+0009CC 7F0D              MOV     R7,#0DH
+0009CE 115C              ACALL   _IPC_TxControlCmd
+   47: 			#else	
+   48: 				YC_get_ble_ramdon_lap();
+   49: 				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+   50: 			#endif
+   51: 			g_variable.key_action = KEY_NONE;
+0009D0 E4                CLR     A
+0009D1 904CED            MOV     DPTR,#g_variable+02EH
+0009D4 F0                MOVX    @DPTR,A
+   52: 		}
+   53: 		break;
+0009D5 22                RET     
+   54: 	case KEY_DISCONNECT_ALL:
+0009D6         ?C0013?KB_PROCESS:
+   55: 		YC_disconnect_all_link();
+0009D6 1218B4            LCALL   YC_disconnect_all_link
+   56: 		g_variable.key_action = KEY_NONE;
+0009D9 E4                CLR     A
+0009DA 904CED            MOV     DPTR,#g_variable+02EH
+0009DD F0                MOVX    @DPTR,A
+   57: 		break;
+0009DE 22                RET     
+   58: 	case KEY_CLEAR_RECORD:
+0009DF         ?C0014?KB_PROCESS:
+   59: 		xmemclear_ff((byte *)bd_key_record_list,sizeof(BD_KEY_RECORD)*3);
+0009DF 7B01              MOV     R3,#01H
+0009E1 7A4D              MOV     R2,#HIGH bd_key_record_list
+0009E3 79E4              MOV     R1,#LOW bd_key_record_list
+0009E5 7D57              MOV     R5,#057H
+0009E7 7C00              MOV     R4,#00H
+0009E9 1224CC            LCALL   _xmemclear_ff
+   60: 		g_variable.last_device_num = 0xff;
+0009EC 904CC0            MOV     DPTR,#g_variable+01H
+0009EF 74FF              MOV     A,#0FFH
+0009F1 F0                MOVX    @DPTR,A
+   61: 		g_variable.system_mode = 0xff;
+0009F2 A3                INC     DPTR
+0009F3 F0                MOVX    @DPTR,A
+   62: 		Delay1ms(200);
+0009F4 7FC8              MOV     R7,#0C8H
+0009F6 F17B              ACALL   _Delay1ms
+   63: 		GPIO_Setout(EEPROM_WP_GPIO,0);
+0009F8 C201              CLR     ?_GPIO_Setout?BIT
+0009FA 7FFF              MOV     R7,#0FFH
+0009FC D1B2              ACALL   _GPIO_Setout
+   64: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)&bd_key_record_list);
+0009FE 7B01              MOV     R3,#01H
+000A00 7A4D              MOV     R2,#HIGH bd_key_record_list
+000A02 79E4              MOV     R1,#LOW bd_key_record_list
+000A04 7D57              MOV     R5,#057H
+000A06 7C00              MOV     R4,#00H
+000A08 7F60              MOV     R7,#060H
+000A0A 7E7F              MOV     R6,#07FH
+000A0C 121A97            LCALL   _IIC_WriteBlock
+   65: 		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+000A0F 7B01              MOV     R3,#01H
+000A11 7A4C              MOV     R2,#HIGH g_variable+01H
+000A13 79C0              MOV     R1,#LOW g_variable+01H
+000A15 7D03              MOV     R5,#03H
+000A17 7C00              MOV     R4,#00H
+000A19 7FB7              MOV     R7,#0B7H
+000A1B 7E7F              MOV     R6,#07FH
+000A1D 121A97            LCALL   _IIC_WriteBlock
+   66: 		GPIO_Setout(EEPROM_WP_GPIO,1);
+000A20 D201              SETB    ?_GPIO_Setout?BIT
+000A22 7FFF              MOV     R7,#0FFH
+000A24 D1B2              ACALL   _GPIO_Setout
+   67: 		g_variable.key_action = KEY_NONE;
+000A26 E4                CLR     A
+000A27 904CED            MOV     DPTR,#g_variable+02EH
+000A2A F0                MOVX    @DPTR,A
+   68: 		break;
+000A2B 22                RET     
+   69: 	case KEY_START_24G:
+   70: 	case KEY_OPEN_24G:
+000A2C         ?C0016?KB_PROCESS:
+   71: 		g_variable.recon_count = 0;
+000A2C E4                CLR     A
+000A2D 904CF0            MOV     DPTR,#g_variable+031H
+000A30 F0                MOVX    @DPTR,A
+   72: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+000A31 1218B4            LCALL   YC_disconnect_all_link
+000A34 EF                MOV     A,R7
+000A35 7006              JNZ     ?C0018?KB_PROCESS
+000A37 121893            LCALL   YC_cancel_reconnect
+000A3A EF                MOV     A,R7
+000A3B 6009              JZ      ?C0017?KB_PROCESS
+000A3D         ?C0018?KB_PROCESS:
+   73: 		{
+   74: 			g_variable.key_action = key_num;
+000A3D 904EF1            MOV     DPTR,#key_num
+000A40 E0                MOVX    A,@DPTR
+000A41 904CED            MOV     DPTR,#g_variable+02EH
+000A44 F0                MOVX    @DPTR,A
+   75: 		}
+000A45 22                RET     
+000A46         ?C0017?KB_PROCESS:
+   76: 		else
+   77: 		{
+   78: 			IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+000A46 7B01              MOV     R3,#01H
+000A48 7A4C              MOV     R2,#HIGH m_24g_addr
+000A4A 7900              MOV     R1,#LOW m_24g_addr
+000A4C 7D04              MOV     R5,#04H
+000A4E 7C00              MOV     R4,#00H
+000A50 7F52              MOV     R7,#052H
+000A52 7E7F              MOV     R6,#07FH
+000A54 122030            LCALL   _IIC_Read
+   79: 			Delay1ms(10);
+000A57 7F0A              MOV     R7,#0AH
+000A59 F17B              ACALL   _Delay1ms
+   80: 			IPC_TxControlCmd(IPC_CMD_START_24G);
+000A5B 7F21              MOV     R7,#021H
+000A5D 115C              ACALL   _IPC_TxControlCmd
+   81: 			
+   82: 			g_variable.g24_currentState = CHANGE_TO_24G_CONNECTING;
+000A5F 904CC5            MOV     DPTR,#g_variable+06H
+000A62 7402              MOV     A,#02H
+000A64 F0                MOVX    @DPTR,A
+   83: 			g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000A65 E4                CLR     A
+000A66 A3                INC     DPTR
+000A67 F0                MOVX    @DPTR,A
+   84: 			g_variable.key_action = KEY_NONE;
+000A68 904CED            MOV     DPTR,#g_variable+02EH
+000A6B F0                MOVX    @DPTR,A
+   85: 		}
+   86: 		break;
+000A6C 22                RET     
+   87: 	case KEY_PAIRING_24G:
+000A6D         ?C0020?KB_PROCESS:
+   88: 		g_variable.recon_count = 0;
+000A6D E4                CLR     A
+000A6E 904CF0            MOV     DPTR,#g_variable+031H
+000A71 F0                MOVX    @DPTR,A
+   89: 		if (YC_disconnect_all_link() || YC_cancel_reconnect())
+000A72 1218B4            LCALL   YC_disconnect_all_link
+000A75 EF                MOV     A,R7
+000A76 7006              JNZ     ?C0022?KB_PROCESS
+000A78 121893            LCALL   YC_cancel_reconnect
+000A7B EF                MOV     A,R7
+000A7C 6009              JZ      ?C0021?KB_PROCESS
+000A7E         ?C0022?KB_PROCESS:
+   90: 		{
+   91: 			g_variable.key_action = key_num;
+000A7E 904EF1            MOV     DPTR,#key_num
+000A81 E0                MOVX    A,@DPTR
+000A82 904CED            MOV     DPTR,#g_variable+02EH
+000A85 F0                MOVX    @DPTR,A
+   92: 		}
+000A86 22                RET     
+000A87         ?C0021?KB_PROCESS:
+   93: 		else
+   94: 		{
+   95: 			if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+000A87 904CC5            MOV     DPTR,#g_variable+06H
+000A8A E0                MOVX    A,@DPTR
+000A8B 6401              XRL     A,#01H
+000A8D 6018              JZ      ?C0024?KB_PROCESS
+   96: 			{
+   97: 				IPC_TxControlCmd(IPC_CMD_PAIR_24G);
+000A8F 7F23              MOV     R7,#023H
+000A91 115C              ACALL   _IPC_TxControlCmd
+   98: 				g_variable.g24_currentState = CHANGE_TO_24G_PAIRING;
+000A93 904CC5            MOV     DPTR,#g_variable+06H
+000A96 7401              MOV     A,#01H
+000A98 F0                MOVX    @DPTR,A
+   99: 				g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000A99 E4                CLR     A
+000A9A A3                INC     DPTR
+000A9B F0                MOVX    @DPTR,A
+  100: 				g_variable.pairing_g24_timeout = BT_PAIRING_TIME_OUT_2MIN;
+000A9C 904CEE            MOV     DPTR,#g_variable+02FH
+000A9F 74F0              MOV     A,#0F0H
+000AA1 F0                MOVX    @DPTR,A
+  101: 				g_variable.pairing_timeout = 0;
+000AA2 E4                CLR     A
+000AA3 904CE9            MOV     DPTR,#g_variable+02AH
+000AA6 F0                MOVX    @DPTR,A
+  102: 			}
+000AA7         ?C0024?KB_PROCESS:
+  103: 			g_variable.key_action = KEY_NONE;
+000AA7 E4                CLR     A
+000AA8 904CED            MOV     DPTR,#g_variable+02EH
+000AAB F0                MOVX    @DPTR,A
+  104: 		}
+  105: 		break;
+000AAC 22                RET     
+  106: 	default:
+000AAD         ?C0025?KB_PROCESS:
+  107: 		g_variable.key_action = KEY_NONE;
+000AAD E4                CLR     A
+000AAE 904CED            MOV     DPTR,#g_variable+02EH
+000AB1 F0                MOVX    @DPTR,A
+  108: 		break;
+  109: 	}
+  110: }
+000AB2 22                RET     
+----- FUNCTION _YC_key_action_handle (END) -------
+
+
+----- FUNCTION _kb_cb_event (BEGIN) -----
+ FILE: 'sys.c'
+   92: static void kb_cb_event(byte evt)
+   93: {
+000AB3 904EF6            MOV     DPTR,#evt
+000AB6 EF                MOV     A,R7
+000AB7 F0                MOVX    @DPTR,A
+   94: 	switch (evt) 
+   95: 	{
+000AB8 1205B3            LCALL   ?C?CCASE
+000ABB 0C52              DW      ?C0029?SYS
+000ABD 01                DB      01H
+000ABE 0D17              DW      ?C0042?SYS
+000AC0 02                DB      02H
+000AC1 0D08              DW      ?C0040?SYS
+000AC3 04                DB      04H
+000AC4 0C74              DW      ?C0031?SYS
+000AC6 06                DB      06H
+000AC7 0CD1              DW      ?C0036?SYS
+000AC9 0A                DB      0AH
+000ACA 0D08              DW      ?C0040?SYS
+000ACC 13                DB      013H
+000ACD 0DD1              DW      ?C0052?SYS
+000ACF 14                DB      014H
+000AD0 0E59              DW      ?C0057?SYS
+000AD2 15                DB      015H
+000AD3 0B7F              DW      ?C0017?SYS
+000AD5 27                DB      027H
+000AD6 0E20              DW      ?C0055?SYS
+000AD8 29                DB      029H
+000AD9 0CC9              DW      ?C0035?SYS
+000ADB 2A                DB      02AH
+000ADC 0AFE              DW      ?C0013?SYS
+000ADE 2F                DB      02FH
+000ADF 0B7C              DW      ?C0015?SYS
+000AE1 30                DB      030H
+000AE2 0BD1              DW      ?C0021?SYS
+000AE4 31                DB      031H
+000AE5 0C16              DW      ?C0025?SYS
+000AE7 32                DB      032H
+000AE8 0AFE              DW      ?C0013?SYS
+000AEA 33                DB      033H
+000AEB 0DFC              DW      ?C0054?SYS
+000AED 34                DB      034H
+000AEE 0E3A              DW      ?C0056?SYS
+000AF0 35                DB      035H
+000AF1 0BC9              DW      ?C0019?SYS
+000AF3 37                DB      037H
+000AF4 0B7F              DW      ?C0017?SYS
+000AF6 39                DB      039H
+000AF7 0BD1              DW      ?C0021?SYS
+000AF9 3C                DB      03CH
+000AFA 0000              DW      00H
+000AFC 0EB1              DW      ?C0038?SYS
+   96: 	case IPC_EVT_HIBERNATE_WAKE:
+   97: //		System_Hardware_init();
+   98: //		System_Software_init();
+   99: //		break;	
+  100: 	case IPC_EVT_RESET:
+000AFE         ?C0013?SYS:
+  101: 		System_Hardware_init();
+000AFE F1F5              ACALL   System_Hardware_init
+  102: 		System_Software_init();
+000B00 1217CB            LCALL   System_Software_init
+  103: 		IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+000B03 7B01              MOV     R3,#01H
+000B05 7A4C              MOV     R2,#HIGH m_24g_addr
+000B07 7900              MOV     R1,#LOW m_24g_addr
+000B09 7D04              MOV     R5,#04H
+000B0B 7C00              MOV     R4,#00H
+000B0D 7F52              MOV     R7,#052H
+000B0F 7E7F              MOV     R6,#07FH
+000B11 122030            LCALL   _IIC_Read
+  104: 		Delay1ms(10);
+000B14 7F0A              MOV     R7,#0AH
+000B16 F17B              ACALL   _Delay1ms
+  105: 		IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3, (byte *)bd_key_record_list);
+000B18 7B01              MOV     R3,#01H
+000B1A 7A4D              MOV     R2,#HIGH bd_key_record_list
+000B1C 79E4              MOV     R1,#LOW bd_key_record_list
+000B1E 7D57              MOV     R5,#057H
+000B20 7C00              MOV     R4,#00H
+000B22 7F60              MOV     R7,#060H
+000B24 7E7F              MOV     R6,#07FH
+000B26 122030            LCALL   _IIC_Read
+  106: 		Delay1ms(10);
+000B29 7F0A              MOV     R7,#0AH
+000B2B F17B              ACALL   _Delay1ms
+  107: 		IIC_Read(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+000B2D 7B01              MOV     R3,#01H
+000B2F 7A4C              MOV     R2,#HIGH g_variable+01H
+000B31 79C0              MOV     R1,#LOW g_variable+01H
+000B33 7D03              MOV     R5,#03H
+000B35 7C00              MOV     R4,#00H
+000B37 7FB7              MOV     R7,#0B7H
+000B39 7E7F              MOV     R6,#07FH
+000B3B 122030            LCALL   _IIC_Read
+  108: 		Delay1ms(10);
+000B3E 7F0A              MOV     R7,#0AH
+000B40 F17B              ACALL   _Delay1ms
+  109: 		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+000B42 7B01              MOV     R3,#01H
+000B44 7A4C              MOV     R2,#HIGH g_variable+033H
+000B46 79F2              MOV     R1,#LOW g_variable+033H
+000B48 7D02              MOV     R5,#02H
+000B4A 7C00              MOV     R4,#00H
+000B4C 7FBA              MOV     R7,#0BAH
+000B4E 7E7F              MOV     R6,#07FH
+000B50 122030            LCALL   _IIC_Read
+  110: 		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
+000B53 904CF2            MOV     DPTR,#g_variable+033H
+000B56 E0                MOVX    A,@DPTR
+000B57 B4FF1F            CJNE    A,#0FFH,?C0014?SYS
+000B5A A3                INC     DPTR
+000B5B E0                MOVX    A,@DPTR
+000B5C B4FF1A            CJNE    A,#0FFH,?C0014?SYS
+  111: 		{
+  112: 			g_variable.ble_ramdon_lap1 = m_adc3vValue;
+000B5F 904C93            MOV     DPTR,#m_adc3vValue
+000B62 E0                MOVX    A,@DPTR
+000B63 A3                INC     DPTR
+000B64 E0                MOVX    A,@DPTR
+000B65 904CF2            MOV     DPTR,#g_variable+033H
+000B68 F0                MOVX    @DPTR,A
+  113: 			g_variable.ble_ramdon_lap2 = m_adc0vBase;
+000B69 904C91            MOV     DPTR,#m_adc0vBase
+000B6C E0                MOVX    A,@DPTR
+000B6D A3                INC     DPTR
+000B6E E0                MOVX    A,@DPTR
+000B6F 904CF3            MOV     DPTR,#g_variable+034H
+000B72 F0                MOVX    @DPTR,A
+  114: 			g_variable.update_eeprom_flag = 1;
+000B73 904CBF            MOV     DPTR,#g_variable
+000B76 7401              MOV     A,#01H
+000B78 F0                MOVX    @DPTR,A
+  115: 		}
+000B79         ?C0014?SYS:
+  116: 
+  117: 		YC_start_reconnect();
+000B79 021FBD            LJMP    YC_start_reconnect
+  118: 		break;
+  119: 	case IPC_EVT_WAKEUP:
+000B7C         ?C0015?SYS:
+  120: 		KS_Initialize();
+000B7C 021106            LJMP    KS_Initialize
+  121: 		break;
+  122: 
+  123: // connection event
+  124: 	case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+  125: 	case IPC_EVT_CLEAR_LINKKEY:
+000B7F         ?C0017?SYS:
+  126: 		if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+000B7F 904CC3            MOV     DPTR,#g_variable+04H
+000B82 E0                MOVX    A,@DPTR
+000B83 FF                MOV     R7,A
+000B84 D3                SETB    C
+000B85 9400              SUBB    A,#00H
+000B87 5002              JNC     $ + 4H
+000B89 C1B1              AJMP    ?C0038?SYS
+000B8B EF                MOV     A,R7
+000B8C 9404              SUBB    A,#04H
+000B8E 4002              JC      $ + 4H
+000B90 C1B1              AJMP    ?C0038?SYS
+  127: 		{
+  128: 			xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+000B92 EF                MOV     A,R7
+000B93 75F01D            MOV     B,#01DH
+000B96 A4                MUL     AB
+000B97 24C7              ADD     A,#LOW bd_key_record_list-01DH
+000B99 F9                MOV     R1,A
+000B9A 744D              MOV     A,#HIGH bd_key_record_list-01DH
+000B9C 35F0              ADDC    A,B
+000B9E FA                MOV     R2,A
+000B9F 7B01              MOV     R3,#01H
+000BA1 7D1D              MOV     R5,#01DH
+000BA3 7C00              MOV     R4,#00H
+000BA5 1224CC            LCALL   _xmemclear_ff
+  129: 			Delay1ms(200);
+000BA8 7FC8              MOV     R7,#0C8H
+000BAA F17B              ACALL   _Delay1ms
+  130: 			GPIO_Setout(EEPROM_WP_GPIO,0);
+000BAC C201              CLR     ?_GPIO_Setout?BIT
+000BAE 7FFF              MOV     R7,#0FFH
+000BB0 D1B2              ACALL   _GPIO_Setout
+  131: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+000BB2 7B01              MOV     R3,#01H
+000BB4 7A4D              MOV     R2,#HIGH bd_key_record_list
+000BB6 79E4              MOV     R1,#LOW bd_key_record_list
+000BB8 7D57              MOV     R5,#057H
+000BBA 7C00              MOV     R4,#00H
+000BBC 7F60              MOV     R7,#060H
+000BBE 7E7F              MOV     R6,#07FH
+000BC0 121A97            LCALL   _IIC_WriteBlock
+  132: 			GPIO_Setout(EEPROM_WP_GPIO,1);
+000BC3 D201              SETB    ?_GPIO_Setout?BIT
+000BC5 7FFF              MOV     R7,#0FFH
+000BC7 C1B2              AJMP    _GPIO_Setout
+  133: 		}
+  134: 		break;
+  135: 	case IPC_EVT_RECONNECT_STANDY:
+000BC9         ?C0019?SYS:
+  136: 		YC_load_record_list(recon_index);
+000BC9 904DD1            MOV     DPTR,#recon_index
+000BCC E0                MOVX    A,@DPTR
+000BCD FF                MOV     R7,A
+000BCE 020737            LJMP    _YC_load_record_list
+  137: 		break;		
+  138: 		
+  139: // 2.4G event	
+  140: 	case IPC_EVT_24G_PAIRING_COMPLETE:
+  141: 	case IPC_EVT_24G_ATTEMPT_SUCCESS:
+000BD1         ?C0021?SYS:
+  142: 		g_variable.g24_currentState =  CHANGE_TO_24G_CONNECTED;
+000BD1 904CC5            MOV     DPTR,#g_variable+06H
+000BD4 7403              MOV     A,#03H
+000BD6 F0                MOVX    @DPTR,A
+  143: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000BD7 E4                CLR     A
+000BD8 A3                INC     DPTR
+000BD9 F0                MOVX    @DPTR,A
+  144: 		YC_clear_reconnect_flag();
+000BDA F1EB              ACALL   YC_clear_reconnect_flag
+  145: 		if(!g_variable.powerOn_timer)
+000BDC 904CE5            MOV     DPTR,#g_variable+026H
+000BDF E0                MOVX    A,@DPTR
+000BE0 7006              JNZ     ?C0022?SYS
+  146: 			GPIO_Setout(G24_LED_GPIO,1);
+000BE2 D201              SETB    ?_GPIO_Setout?BIT
+000BE4 7F1D              MOV     R7,#01DH
+000BE6 D1B2              ACALL   _GPIO_Setout
+000BE8         ?C0022?SYS:
+  147: 		g_variable.pairing_g24_timeout = 0;
+000BE8 E4                CLR     A
+000BE9 904CEE            MOV     DPTR,#g_variable+02FH
+000BEC F0                MOVX    @DPTR,A
+  148: 		g_variable.release_data = 0;
+000BED 904CEB            MOV     DPTR,#g_variable+02CH
+000BF0 F0                MOVX    @DPTR,A
+  149: 		g_variable.last_device_num = 0xfe;
+000BF1 904CC0            MOV     DPTR,#g_variable+01H
+000BF4 74FE              MOV     A,#0FEH
+000BF6 F0                MOVX    @DPTR,A
+  150: 		g_variable.current_device_num = 0xfe;
+000BF7 904CC3            MOV     DPTR,#g_variable+04H
+000BFA F0                MOVX    @DPTR,A
+  151: 
+  152: 		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
+000BFB 904EF6            MOV     DPTR,#evt
+000BFE E0                MOVX    A,@DPTR
+000BFF B4310D            CJNE    A,#031H,?C0023?SYS
+  153: 		{
+  154: 			g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+000C02 904CE5            MOV     DPTR,#g_variable+026H
+000C05 741E              MOV     A,#01EH
+000C07 F0                MOVX    @DPTR,A
+  155: 			g_variable.update_eeprom_flag = 2;
+000C08 904CBF            MOV     DPTR,#g_variable
+000C0B 7402              MOV     A,#02H
+000C0D F0                MOVX    @DPTR,A
+  156: 		}
+000C0E 22                RET     
+000C0F         ?C0023?SYS:
+  157: 		else
+  158: 			g_variable.update_eeprom_flag = 1;
+000C0F 904CBF            MOV     DPTR,#g_variable
+000C12 7401              MOV     A,#01H
+000C14 F0                MOVX    @DPTR,A
+  159: 		break;
+000C15 22                RET     
+  160: 	
+  161: 	case IPC_EVT_24G_ATTEMPT_FAIL:	
+000C16         ?C0025?SYS:
+  162: 		g_variable.g24_currentState =  CHANGE_TO_24G_DISCONNECTED;
+000C16 E4                CLR     A
+000C17 904CC5            MOV     DPTR,#g_variable+06H
+000C1A F0                MOVX    @DPTR,A
+  163: 		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+000C1B A3                INC     DPTR
+000C1C F0                MOVX    @DPTR,A
+  164: 		g_variable.sleepTimer = 0;
+000C1D 904CE3            MOV     DPTR,#g_variable+024H
+000C20 F0                MOVX    @DPTR,A
+000C21 A3                INC     DPTR
+000C22 F0                MOVX    @DPTR,A
+  165: 		g_variable.release_data = 1;
+000C23 904CEB            MOV     DPTR,#g_variable+02CH
+000C26 04                INC     A
+000C27 F0                MOVX    @DPTR,A
+  166: 
+  167: 		if (g_variable.key_action != KEY_NONE)
+000C28 904CED            MOV     DPTR,#g_variable+02EH
+000C2B E0                MOVX    A,@DPTR
+000C2C 6009              JZ      ?C0026?SYS
+  168: 		{
+  169: 			YC_clear_reconnect_flag();
+000C2E F1EB              ACALL   YC_clear_reconnect_flag
+  170: 			YC_key_action_handle(g_variable.key_action);
+000C30 904CED            MOV     DPTR,#g_variable+02EH
+000C33 E0                MOVX    A,@DPTR
+000C34 FF                MOV     R7,A
+000C35 2119              AJMP    _YC_key_action_handle
+  171: 			break;
+  172: 		}
+000C37         ?C0026?SYS:
+  173: 
+  174: 		if (g_variable.lockLpm == 1)
+000C37 904CEC            MOV     DPTR,#g_variable+02DH
+000C3A E0                MOVX    A,@DPTR
+000C3B B40104            CJNE    A,#01H,?C0027?SYS
+  175: 		{
+  176: 			g_variable.lockLpm =0;
+000C3E E4                CLR     A
+000C3F F0                MOVX    @DPTR,A
+  177: 			System_long_sleep();
+000C40 E193              AJMP    System_long_sleep
+  178: 			break;
+  179: 		}
+000C42         ?C0027?SYS:
+  180: 		if (g_variable.recon_count != 0)
+000C42 904CF0            MOV     DPTR,#g_variable+031H
+000C45 E0                MOVX    A,@DPTR
+000C46 7002              JNZ     $ + 4H
+000C48 C1B1              AJMP    ?C0038?SYS
+  181: 		{
+  182: 			YC_load_record_list(recon_index);
+000C4A 904DD1            MOV     DPTR,#recon_index
+000C4D E0                MOVX    A,@DPTR
+000C4E FF                MOV     R7,A
+000C4F 020737            LJMP    _YC_load_record_list
+  183: 		}
+  184: 		break;
+  185: 
+  186: 
+  187: 		
+  188: // BT3.0 event
+  189: 	case IPC_EVT_BB_CONNECTED:
+000C52         ?C0029?SYS:
+  190: 		g_variable.br_currentState = CHANGE_TO_BR_CONNECTING;
+000C52 904CC9            MOV     DPTR,#g_variable+0AH
+000C55 7403              MOV     A,#03H
+000C57 F0                MOVX    @DPTR,A
+  191: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_INIT;
+000C58 A3                INC     DPTR
+000C59 7401              MOV     A,#01H
+000C5B F0                MOVX    @DPTR,A
+  192: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+000C5C E4                CLR     A
+000C5D 904CC7            MOV     DPTR,#g_variable+08H
+000C60 F0                MOVX    @DPTR,A
+  193: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+000C61 A3                INC     DPTR
+000C62 F0                MOVX    @DPTR,A
+  194: 		if ((m_ui_state_map & 0x8000) == 0x8000)
+000C63 9047F4            MOV     DPTR,#m_ui_state_map
+000C66 E0                MOVX    A,@DPTR
+000C67 A3                INC     DPTR
+000C68 20E702            JB      ACC.7,$ + 5H
+000C6B C1B1              AJMP    ?C0038?SYS
+  195: 		{
+  196: 			switch_role_timer = 50;
+000C6D 904DD4            MOV     DPTR,#switch_role_timer
+000C70 7432              MOV     A,#032H
+000C72 F0                MOVX    @DPTR,A
+  197: 		}
+  198: 		break;
+000C73 22                RET     
+  199: 	case IPC_EVT_HID_CONNECTED:
+000C74         ?C0031?SYS:
+  200: 		g_variable.br_currentState = CHANGE_TO_BR_CONNECTED;
+000C74 904CC9            MOV     DPTR,#g_variable+0AH
+000C77 7404              MOV     A,#04H
+000C79 F0                MOVX    @DPTR,A
+  201: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+000C7A E4                CLR     A
+000C7B A3                INC     DPTR
+000C7C F0                MOVX    @DPTR,A
+  202: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+000C7D 7F0E              MOV     R7,#0EH
+000C7F 115C              ACALL   _IPC_TxControlCmd
+  203: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+000C81 7F02              MOV     R7,#02H
+000C83 115C              ACALL   _IPC_TxControlCmd
+  204: 		g_variable.sleepTimer = 0;
+000C85 E4                CLR     A
+000C86 904CE3            MOV     DPTR,#g_variable+024H
+000C89 F0                MOVX    @DPTR,A
+000C8A A3                INC     DPTR
+000C8B F0                MOVX    @DPTR,A
+  205: 		if(!g_variable.powerOn_timer)
+000C8C A3                INC     DPTR
+000C8D E0                MOVX    A,@DPTR
+000C8E 7002              JNZ     ?C0032?SYS
+  206: 			LED_device_poweroff();
+000C90 F19C              ACALL   LED_device_poweroff
+000C92         ?C0032?SYS:
+  207: 		g_variable.pairing_timeout = 0;
+000C92 E4                CLR     A
+000C93 904CE9            MOV     DPTR,#g_variable+02AH
+000C96 F0                MOVX    @DPTR,A
+  208: 		YC_clear_reconnect_flag();
+000C97 F1EB              ACALL   YC_clear_reconnect_flag
+  209: 		g_variable.release_data = 0;
+000C99 E4                CLR     A
+000C9A 904CEB            MOV     DPTR,#g_variable+02CH
+000C9D F0                MOVX    @DPTR,A
+  210: 		switch_role_timer = 0;
+000C9E 904DD4            MOV     DPTR,#switch_role_timer
+000CA1 F0                MOVX    @DPTR,A
+  211: 		kscurrmult = 0x1a;
+000CA2 904213            MOV     DPTR,#kscurrmult
+000CA5 741A              MOV     A,#01AH
+000CA7 F0                MOVX    @DPTR,A
+  212: 		iOS_rec_pinCode = 0;	
+000CA8 E4                CLR     A
+000CA9 904DDA            MOV     DPTR,#iOS_rec_pinCode
+000CAC F0                MOVX    @DPTR,A
+000CAD         ?C0033?SYS:
+  213: 		
+  214: 		while (m_remote_addr[0]==0);
+000CAD 900040            MOV     DPTR,#m_remote_addr
+000CB0 E0                MOVX    A,@DPTR
+000CB1 60FA              JZ      ?C0033?SYS
+000CB3         ?C0034?SYS:
+  215: 		IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+000CB3 7F05              MOV     R7,#05H
+000CB5 115C              ACALL   _IPC_TxControlCmd
+  216: 		YC_clear_BT_same_address_record();
+000CB7 1223E6            LCALL   YC_clear_BT_same_address_record
+  217: 		g_variable.last_device_num = g_variable.current_device_num;
+000CBA 904CC3            MOV     DPTR,#g_variable+04H
+000CBD E0                MOVX    A,@DPTR
+000CBE 904CC0            MOV     DPTR,#g_variable+01H
+000CC1 F0                MOVX    @DPTR,A
+  218: 		g_variable.update_eeprom_flag = 3;
+000CC2 904CBF            MOV     DPTR,#g_variable
+000CC5 7403              MOV     A,#03H
+000CC7 F0                MOVX    @DPTR,A
+  219: 		break;
+000CC8 22                RET     
+  220: 	case IPC_EVT_SWITCH_FAIL_MASTER:
+000CC9         ?C0035?SYS:
+  221: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+000CC9 7F04              MOV     R7,#04H
+000CCB 115C              ACALL   _IPC_TxControlCmd
+  222: 		Delay1ms(10);
+000CCD 7F0A              MOV     R7,#0AH
+000CCF E17B              AJMP    _Delay1ms
+  223: 		break;	
+  224: 	case IPC_EVT_PINCODE_REQ:
+000CD1         ?C0036?SYS:
+  225: 		ipcPinlen = 0;
+000CD1 E4                CLR     A
+000CD2 90054F            MOV     DPTR,#ipcPinlen
+000CD5 F0                MOVX    @DPTR,A
+  226: 		pinCode_flag = 1;
+000CD6 904DD7            MOV     DPTR,#pinCode_flag
+000CD9 04                INC     A
+000CDA F0                MOVX    @DPTR,A
+  227: 		switch_role_timer = 0;
+000CDB E4                CLR     A
+000CDC 904DD4            MOV     DPTR,#switch_role_timer
+000CDF F0                MOVX    @DPTR,A
+  228: 		if ((m_ui_state_map & 0x8000) == 0x8000)
+000CE0 9047F4            MOV     DPTR,#m_ui_state_map
+000CE3 E0                MOVX    A,@DPTR
+000CE4 A3                INC     DPTR
+000CE5 30E70F            JNB     ACC.7,?C0037?SYS
+  229: 		{
+  230: 			iOS_rec_pinCode = 1;	
+000CE8 904DDA            MOV     DPTR,#iOS_rec_pinCode
+000CEB 7401              MOV     A,#01H
+000CED F0                MOVX    @DPTR,A
+  231: 			ipcPinlen = 4;
+000CEE 90054F            MOV     DPTR,#ipcPinlen
+000CF1 7404              MOV     A,#04H
+000CF3 F0                MOVX    @DPTR,A
+  232: 			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+000CF4 FF                MOV     R7,A
+000CF5 015C              AJMP    _IPC_TxControlCmd
+  233: 			return;
+  234: 		}
+000CF7         ?C0037?SYS:
+  235: 		g_variable.recon_count = 0;
+000CF7 E4                CLR     A
+000CF8 904CF0            MOV     DPTR,#g_variable+031H
+000CFB F0                MOVX    @DPTR,A
+  236: 		g_variable.br_currentSubState =  CHANGE_TO_BR_SUB_PINCODE;
+000CFC 904CCA            MOV     DPTR,#g_variable+0BH
+000CFF 7402              MOV     A,#02H
+000D01 F0                MOVX    @DPTR,A
+  237: 		g_variable.br_currentState =CHANGE_TO_BR_CONNECTING;
+000D02 904CC9            MOV     DPTR,#g_variable+0AH
+000D05 04                INC     A
+000D06 F0                MOVX    @DPTR,A
+  238: 		break;	
+000D07 22                RET     
+  239: 	case IPC_EVT_RECONN_PAGE_TIMEOUT:
+  240: 	case IPC_EVT_RECONN_FAILED:
+000D08         ?C0040?SYS:
+  241: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+000D08 904CC5            MOV     DPTR,#g_variable+06H
+000D0B E0                MOVX    A,@DPTR
+000D0C B40308            CJNE    A,#03H,?C0042?SYS
+  242: 		{
+  243: 			g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+000D0F E4                CLR     A
+000D10 904CC9            MOV     DPTR,#g_variable+0AH
+000D13 F0                MOVX    @DPTR,A
+  244: 			g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+000D14 A3                INC     DPTR
+000D15 F0                MOVX    @DPTR,A
+000D16 22                RET     
+  245: 			return;
+  246: 		}		
+  247: 	case IPC_EVT_BB_DISCONNECTED:
+000D17         ?C0042?SYS:
+  248: 		g_variable.history_state = g_variable.br_currentState ;
+000D17 904CC9            MOV     DPTR,#g_variable+0AH
+000D1A E0                MOVX    A,@DPTR
+000D1B 904CCB            MOV     DPTR,#g_variable+0CH
+000D1E F0                MOVX    @DPTR,A
+  249: 		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+000D1F E4                CLR     A
+000D20 904CC9            MOV     DPTR,#g_variable+0AH
+000D23 F0                MOVX    @DPTR,A
+  250: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+000D24 A3                INC     DPTR
+000D25 F0                MOVX    @DPTR,A
+  251: 		g_variable.release_data = 1;
+000D26 904CEB            MOV     DPTR,#g_variable+02CH
+000D29 04                INC     A
+000D2A F0                MOVX    @DPTR,A
+  252: 		switch_role_timer = 0;
+000D2B E4                CLR     A
+000D2C 904DD4            MOV     DPTR,#switch_role_timer
+000D2F F0                MOVX    @DPTR,A
+  253: 		if (iOS_rec_pinCode == 1)
+000D30 904DDA            MOV     DPTR,#iOS_rec_pinCode
+000D33 E0                MOVX    A,@DPTR
+000D34 6401              XRL     A,#01H
+000D36 704B              JNZ     ?C0043?SYS
+  254: 		{
+  255: 			if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+000D38 904CC3            MOV     DPTR,#g_variable+04H
+000D3B E0                MOVX    A,@DPTR
+000D3C FF                MOV     R7,A
+000D3D D3                SETB    C
+000D3E 9400              SUBB    A,#00H
+000D40 403C              JC      ?C0044?SYS
+000D42 EF                MOV     A,R7
+000D43 9404              SUBB    A,#04H
+000D45 5037              JNC     ?C0044?SYS
+  256: 			{
+  257: 				xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+000D47 EF                MOV     A,R7
+000D48 75F01D            MOV     B,#01DH
+000D4B A4                MUL     AB
+000D4C 24C7              ADD     A,#LOW bd_key_record_list-01DH
+000D4E F9                MOV     R1,A
+000D4F 744D              MOV     A,#HIGH bd_key_record_list-01DH
+000D51 35F0              ADDC    A,B
+000D53 FA                MOV     R2,A
+000D54 7B01              MOV     R3,#01H
+000D56 7D1D              MOV     R5,#01DH
+000D58 7C00              MOV     R4,#00H
+000D5A 1224CC            LCALL   _xmemclear_ff
+  258: 				Delay1ms(200);
+000D5D 7FC8              MOV     R7,#0C8H
+000D5F F17B              ACALL   _Delay1ms
+  259: 				GPIO_Setout(EEPROM_WP_GPIO,0);
+000D61 C201              CLR     ?_GPIO_Setout?BIT
+000D63 7FFF              MOV     R7,#0FFH
+000D65 D1B2              ACALL   _GPIO_Setout
+  260: 				IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+000D67 7B01              MOV     R3,#01H
+000D69 7A4D              MOV     R2,#HIGH bd_key_record_list
+000D6B 79E4              MOV     R1,#LOW bd_key_record_list
+000D6D 7D57              MOV     R5,#057H
+000D6F 7C00              MOV     R4,#00H
+000D71 7F60              MOV     R7,#060H
+000D73 7E7F              MOV     R6,#07FH
+000D75 121A97            LCALL   _IIC_WriteBlock
+  261: 				GPIO_Setout(EEPROM_WP_GPIO,1);
+000D78 D201              SETB    ?_GPIO_Setout?BIT
+000D7A 7FFF              MOV     R7,#0FFH
+000D7C D1B2              ACALL   _GPIO_Setout
+  262: 			}
+000D7E         ?C0044?SYS:
+  263: 			iOS_rec_pinCode = 0;
+000D7E E4                CLR     A
+000D7F 904DDA            MOV     DPTR,#iOS_rec_pinCode
+000D82 F0                MOVX    @DPTR,A
+  264: 		}
+000D83         ?C0043?SYS:
+  265: 
+  266: 		if (g_variable.lockLpm == 1)
+000D83 904CEC            MOV     DPTR,#g_variable+02DH
+000D86 E0                MOVX    A,@DPTR
+000D87 B40104            CJNE    A,#01H,?C0045?SYS
+  267: 		{
+  268: 			g_variable.lockLpm =0;
+000D8A E4                CLR     A
+000D8B F0                MOVX    @DPTR,A
+  269: 			System_long_sleep();
+000D8C E193              AJMP    System_long_sleep
+  270: 			break;
+  271: 		}
+000D8E         ?C0045?SYS:
+  272: 
+  273: 		if (g_variable.key_action != KEY_NONE)
+000D8E 904CED            MOV     DPTR,#g_variable+02EH
+000D91 E0                MOVX    A,@DPTR
+000D92 FF                MOV     R7,A
+000D93 6002              JZ      ?C0046?SYS
+  274: 		{
+  275: 			YC_key_action_handle(g_variable.key_action);
+000D95 2119              AJMP    _YC_key_action_handle
+  276: 			break;
+  277: 		}
+000D97         ?C0046?SYS:
+  278: 
+  279: 		if (g_variable.recon_count != 0)
+000D97 904CF0            MOV     DPTR,#g_variable+031H
+000D9A E0                MOVX    A,@DPTR
+000D9B 6008              JZ      ?C0047?SYS
+  280: 		{
+  281: 			YC_load_record_list(recon_index);
+000D9D 904DD1            MOV     DPTR,#recon_index
+000DA0 E0                MOVX    A,@DPTR
+000DA1 FF                MOV     R7,A
+000DA2 020737            LJMP    _YC_load_record_list
+  282: 			break;
+  283: 		}
+000DA5         ?C0047?SYS:
+  284: 
+  285: 		if (g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+000DA5 904CC5            MOV     DPTR,#g_variable+06H
+000DA8 E0                MOVX    A,@DPTR
+000DA9 6401              XRL     A,#01H
+000DAB 7002              JNZ     $ + 4H
+000DAD C1B1              AJMP    ?C0038?SYS
+  286: 		{
+  287: 			return;
+  288: 		}
+000DAF         ?C0048?SYS:
+  289: 
+  290: 
+  291: 		if (evt == IPC_EVT_RECONN_PAGE_TIMEOUT)
+000DAF 904EF6            MOV     DPTR,#evt
+000DB2 E0                MOVX    A,@DPTR
+000DB3 6413              XRL     A,#013H
+000DB5 7002              JNZ     $ + 4H
+000DB7 C1B1              AJMP    ?C0038?SYS
+  292: 		{
+  293: 			break;
+  294: 		}
+000DB9         ?C0049?SYS:
+  295: 		
+  296: 		if (g_variable.history_state != CHANGE_TO_BR_CONNECTED)
+000DB9 904CCB            MOV     DPTR,#g_variable+0CH
+000DBC E0                MOVX    A,@DPTR
+000DBD 6404              XRL     A,#04H
+000DBF 6006              JZ      ?C0050?SYS
+  297: 		{
+  298: 			YC_key_action_handle(KEY_DISCOVERY);
+000DC1 7F05              MOV     R7,#05H
+000DC3 3119              ACALL   _YC_key_action_handle
+  299: 		}
+000DC5 8002              SJMP    ?C0051?SYS
+000DC7         ?C0050?SYS:
+  300: 		else
+  301: 		{
+  302: 			System_long_sleep();
+000DC7 F193              ACALL   System_long_sleep
+  303: 		}
+000DC9         ?C0051?SYS:
+  304: 		g_variable.sleepTimer = 0;
+000DC9 E4                CLR     A
+000DCA 904CE3            MOV     DPTR,#g_variable+024H
+000DCD F0                MOVX    @DPTR,A
+000DCE A3                INC     DPTR
+000DCF F0                MOVX    @DPTR,A
+  305: 		break;		
+000DD0 22                RET     
+  306: 
+  307: // BT 4.2 event
+  308: 	case IPC_EVT_LE_CONNECTED:
+000DD1         ?C0052?SYS:
+  309: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+000DD1 904CC7            MOV     DPTR,#g_variable+08H
+000DD4 7403              MOV     A,#03H
+000DD6 F0                MOVX    @DPTR,A
+  310: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
+000DD7 A3                INC     DPTR
+000DD8 7401              MOV     A,#01H
+000DDA F0                MOVX    @DPTR,A
+  311: 		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+000DDB E4                CLR     A
+000DDC A3                INC     DPTR
+000DDD F0                MOVX    @DPTR,A
+  312: 		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+000DDE A3                INC     DPTR
+000DDF F0                MOVX    @DPTR,A
+  313: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+000DE0 7F0E              MOV     R7,#0EH
+000DE2 115C              ACALL   _IPC_TxControlCmd
+  314: 		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+000DE4 7F02              MOV     R7,#02H
+000DE6 115C              ACALL   _IPC_TxControlCmd
+  315: 		if(!g_variable.powerOn_timer)
+000DE8 904CE5            MOV     DPTR,#g_variable+026H
+000DEB E0                MOVX    A,@DPTR
+000DEC 7002              JNZ     ?C0053?SYS
+  316: 			LED_device_poweroff();
+000DEE F19C              ACALL   LED_device_poweroff
+000DF0         ?C0053?SYS:
+  317: 		g_variable.pairing_timeout = 0;
+000DF0 E4                CLR     A
+000DF1 904CE9            MOV     DPTR,#g_variable+02AH
+000DF4 F0                MOVX    @DPTR,A
+  318: 		g_variable.sleepTimer = 0;
+000DF5 904CE3            MOV     DPTR,#g_variable+024H
+000DF8 F0                MOVX    @DPTR,A
+000DF9 A3                INC     DPTR
+000DFA F0                MOVX    @DPTR,A
+  319: 		break;
+000DFB 22                RET     
+  320: 	case IPC_EVT_LE_PROTOCOL_CONNECTED:
+000DFC         ?C0054?SYS:
+  321: 	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
+000DFC 904CC7            MOV     DPTR,#g_variable+08H
+000DFF 7404              MOV     A,#04H
+000E01 F0                MOVX    @DPTR,A
+  322: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+000E02 E4                CLR     A
+000E03 A3                INC     DPTR
+000E04 F0                MOVX    @DPTR,A
+  323: 		YC_clear_reconnect_flag();
+000E05 F1EB              ACALL   YC_clear_reconnect_flag
+  324: 		g_variable.release_data = 0;
+000E07 E4                CLR     A
+000E08 904CEB            MOV     DPTR,#g_variable+02CH
+000E0B F0                MOVX    @DPTR,A
+  325: 		m_lpm_mode = 1;
+000E0C 904131            MOV     DPTR,#m_lpm_mode
+000E0F 04                INC     A
+000E10 F0                MOVX    @DPTR,A
+  326: 		g_variable.last_device_num = g_variable.current_device_num;
+000E11 904CC3            MOV     DPTR,#g_variable+04H
+000E14 E0                MOVX    A,@DPTR
+000E15 904CC0            MOV     DPTR,#g_variable+01H
+000E18 F0                MOVX    @DPTR,A
+  327: 		g_variable.update_eeprom_flag = 3;
+000E19 904CBF            MOV     DPTR,#g_variable
+000E1C 7403              MOV     A,#03H
+000E1E F0                MOVX    @DPTR,A
+  328: 		break;
+000E1F 22                RET     
+  329: 	case IPC_EVT_LE_ENC_INFO:
+000E20         ?C0055?SYS:
+  330: 		YC_store_record_list(1, g_variable.current_device_num-1);
+000E20 904CC3            MOV     DPTR,#g_variable+04H
+000E23 E0                MOVX    A,@DPTR
+000E24 14                DEC     A
+000E25 FD                MOV     R5,A
+000E26 7F01              MOV     R7,#01H
+000E28 12112F            LCALL   _YC_store_record_list
+  331: 		g_variable.last_device_num = g_variable.current_device_num;
+000E2B 904CC3            MOV     DPTR,#g_variable+04H
+000E2E E0                MOVX    A,@DPTR
+000E2F 904CC0            MOV     DPTR,#g_variable+01H
+000E32 F0                MOVX    @DPTR,A
+  332: 		g_variable.update_eeprom_flag = 3;
+000E33 904CBF            MOV     DPTR,#g_variable
+000E36 7403              MOV     A,#03H
+000E38 F0                MOVX    @DPTR,A
+  333: 		break;
+000E39 22                RET     
+  334: 
+  335: 	case IPC_EVT_LE_PINCODE_REQ:
+000E3A         ?C0056?SYS:
+  336: 		le_pin_code = 0;
+000E3A 904D39            MOV     DPTR,#le_pin_code
+000E3D 120582            LCALL   ?C?LSTKXDATA
+000E40 00                DB      00H
+000E41 00                DB      00H
+000E42 00                DB      00H
+000E43 00                DB      00H
+  337: 		le_pin_code_len = 0;
+000E44 E4                CLR     A
+000E45 904DD2            MOV     DPTR,#le_pin_code_len
+000E48 F0                MOVX    @DPTR,A
+  338: 		pinCode_flag = 1;
+000E49 904DD7            MOV     DPTR,#pinCode_flag
+000E4C 04                INC     A
+000E4D F0                MOVX    @DPTR,A
+  339: 		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
+000E4E 904CC8            MOV     DPTR,#g_variable+09H
+000E51 04                INC     A
+000E52 F0                MOVX    @DPTR,A
+  340: 		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+000E53 904CC7            MOV     DPTR,#g_variable+08H
+000E56 04                INC     A
+000E57 F0                MOVX    @DPTR,A
+  341: 		break;
+000E58 22                RET     
+  342: 		
+  343: 	case IPC_EVT_LE_DISCONNECTED:	
+000E59         ?C0057?SYS:
+  344: 		g_variable.history_state = g_variable.ble_currentState ;
+000E59 904CC7            MOV     DPTR,#g_variable+08H
+000E5C E0                MOVX    A,@DPTR
+000E5D 904CCB            MOV     DPTR,#g_variable+0CH
+000E60 F0                MOVX    @DPTR,A
+  345: 		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+000E61 E4                CLR     A
+000E62 904CC7            MOV     DPTR,#g_variable+08H
+000E65 F0                MOVX    @DPTR,A
+  346: 		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+000E66 A3                INC     DPTR
+000E67 F0                MOVX    @DPTR,A
+  347: 		g_variable.release_data = 1;
+000E68 904CEB            MOV     DPTR,#g_variable+02CH
+000E6B 04                INC     A
+000E6C F0                MOVX    @DPTR,A
+  348: 		
+  349: 		if (g_variable.lockLpm == 1)
+000E6D A3                INC     DPTR
+000E6E E0                MOVX    A,@DPTR
+000E6F B40104            CJNE    A,#01H,?C0058?SYS
+  350: 		{
+  351: 			g_variable.lockLpm =0;
+000E72 E4                CLR     A
+000E73 F0                MOVX    @DPTR,A
+  352: 			System_long_sleep();
+000E74 E193              AJMP    System_long_sleep
+  353: 			break;
+  354: 		}
+000E76         ?C0058?SYS:
+  355: 
+  356: 		if (g_variable.key_action != KEY_NONE)
+000E76 904CED            MOV     DPTR,#g_variable+02EH
+000E79 E0                MOVX    A,@DPTR
+000E7A FF                MOV     R7,A
+000E7B 6002              JZ      ?C0059?SYS
+  357: 		{
+  358: 			YC_key_action_handle(g_variable.key_action);
+000E7D 2119              AJMP    _YC_key_action_handle
+  359: 			break;
+  360: 		}
+000E7F         ?C0059?SYS:
+  361: 
+  362: 
+  363: 		if (g_variable.recon_count != 0)
+000E7F 904CF0            MOV     DPTR,#g_variable+031H
+000E82 E0                MOVX    A,@DPTR
+000E83 6008              JZ      ?C0060?SYS
+  364: 		{
+  365: 			YC_load_record_list(recon_index);
+000E85 904DD1            MOV     DPTR,#recon_index
+000E88 E0                MOVX    A,@DPTR
+000E89 FF                MOV     R7,A
+000E8A 020737            LJMP    _YC_load_record_list
+  366: 			break;
+  367: 		}
+000E8D         ?C0060?SYS:
+  368: 
+  369: 		if (g_variable.history_state != CHANGE_TO_BLE_CONNECTED)
+000E8D 904CCB            MOV     DPTR,#g_variable+0CH
+000E90 E0                MOVX    A,@DPTR
+000E91 6404              XRL     A,#04H
+000E93 6004              JZ      ?C0061?SYS
+  370: 		{
+  371: 			//YC_key_action_handle(KEY_DISCOVERY);
+  372: 			System_long_sleep();
+000E95 F193              ACALL   System_long_sleep
+  373: 		}
+000E97 8011              SJMP    ?C0062?SYS
+000E99         ?C0061?SYS:
+  374: 		else
+  375: 		{
+  376: 			if(m_reconnect_continue)
+000E99 904D38            MOV     DPTR,#m_reconnect_continue
+000E9C E0                MOVX    A,@DPTR
+000E9D 6004              JZ      ?C0063?SYS
+  377: 				System_long_sleep();
+000E9F F193              ACALL   System_long_sleep
+000EA1 8007              SJMP    ?C0062?SYS
+000EA3         ?C0063?SYS:
+  378: 			else
+  379: 				YC_key_action_handle(g_variable.current_device_num);
+000EA3 904CC3            MOV     DPTR,#g_variable+04H
+000EA6 E0                MOVX    A,@DPTR
+000EA7 FF                MOV     R7,A
+000EA8 3119              ACALL   _YC_key_action_handle
+  380: 		}
+000EAA         ?C0062?SYS:
+  381: 		g_variable.sleepTimer = 0;
+000EAA E4                CLR     A
+000EAB 904CE3            MOV     DPTR,#g_variable+024H
+000EAE F0                MOVX    @DPTR,A
+000EAF A3                INC     DPTR
+000EB0 F0                MOVX    @DPTR,A
+  382: 		break;
+  383: 	}
+  384: }
+000EB1         ?C0038?SYS:
+000EB1 22                RET     
+----- FUNCTION _kb_cb_event (END) -------
+
+
+----- FUNCTION _GPIO_Setout (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+000EB2 EF                MOV     A,R7
+000EB3 F4                CPL     A
+000EB4 600D              JZ      ?C0007?GPIO
+000EB6         ?C0006?GPIO:
+000EB6 7B01              MOV     R3,#01H
+000EB8 7A80              MOV     R2,#080H
+000EBA 7974              MOV     R1,#074H
+000EBC A201              MOV     C,bit_val
+000EBE 9200              MOV     ?_gpioSetBit?BIT,C
+000EC0 121088            LCALL   _gpioSetBit
+000EC3         ?C0007?GPIO:
+000EC3 22                RET     
+----- FUNCTION _GPIO_Setout (END) -------
+
+
+----- FUNCTION LED_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  387: void LED_timer500ms()
+  388: {
+  389: 	if (power_on_flag != 2)
+  390: 		return;
+000EC4 904DE1            MOV     DPTR,#power_on_flag
+000EC7 E0                MOVX    A,@DPTR
+000EC8 6402              XRL     A,#02H
+000ECA 6002              JZ      $ + 4H
+000ECC E17A              AJMP    ?C0066?SYS
+000ECE         ?C0065?SYS:
+  391: 	if (g_variable.pairing_timeout != 0) //bt  pairing
+000ECE 904CE9            MOV     DPTR,#g_variable+02AH
+000ED1 E0                MOVX    A,@DPTR
+000ED2 6048              JZ      ?C0067?SYS
+  392: 	{
+  393: 		if (g_variable.button_reconnect_flag != 1)
+000ED4 904CCC            MOV     DPTR,#g_variable+0DH
+000ED7 E0                MOVX    A,@DPTR
+000ED8 6401              XRL     A,#01H
+000EDA 602C              JZ      ?C0068?SYS
+  394: 		{
+  395: 			if(g_variable.current_device_num == 1)
+000EDC 904CC3            MOV     DPTR,#g_variable+04H
+000EDF E0                MOVX    A,@DPTR
+000EE0 B40106            CJNE    A,#01H,?C0069?SYS
+  396: 				GPIO_FlipOutBit(BT_LED_GPIO);
+000EE3 7F1F              MOV     R7,#01FH
+000EE5 F1CF              ACALL   _GPIO_FlipOutBit
+000EE7 8049              SJMP    ?C0075?SYS
+000EE9         ?C0069?SYS:
+  397: 			else if(g_variable.current_device_num == 2)
+000EE9 904CC3            MOV     DPTR,#g_variable+04H
+000EEC E0                MOVX    A,@DPTR
+000EED B40206            CJNE    A,#02H,?C0071?SYS
+  398: 				GPIO_FlipOutBit(BT2_LED_GPIO);
+000EF0 7F1E              MOV     R7,#01EH
+000EF2 F1CF              ACALL   _GPIO_FlipOutBit
+000EF4 803C              SJMP    ?C0075?SYS
+000EF6         ?C0071?SYS:
+  399: 			else if(g_variable.current_device_num == 3)
+000EF6 904CC3            MOV     DPTR,#g_variable+04H
+000EF9 E0                MOVX    A,@DPTR
+000EFA 6403              XRL     A,#03H
+000EFC 7034              JNZ     ?C0075?SYS
+  400: 			{
+  401: 				GPIO_FlipOutBit(BT_LED_GPIO);
+000EFE 7F1F              MOV     R7,#01FH
+000F00 F1CF              ACALL   _GPIO_FlipOutBit
+  402: 				GPIO_FlipOutBit(G24_LED_GPIO);
+000F02 7F1D              MOV     R7,#01DH
+000F04 F1CF              ACALL   _GPIO_FlipOutBit
+  403: 			}
+  404: 		}
+000F06 802A              SJMP    ?C0075?SYS
+000F08         ?C0068?SYS:
+  405: 		else
+  406: 		{
+  407: 			GPIO_Setout(BT_LED_GPIO,1);
+000F08 D201              SETB    ?_GPIO_Setout?BIT
+000F0A 7F1F              MOV     R7,#01FH
+000F0C D1B2              ACALL   _GPIO_Setout
+  408: 			GPIO_Setout(BT2_LED_GPIO,1);
+000F0E D201              SETB    ?_GPIO_Setout?BIT
+000F10 7F1E              MOV     R7,#01EH
+000F12 D1B2              ACALL   _GPIO_Setout
+  409: 			GPIO_Setout(G24_LED_GPIO, 1);
+000F14 D201              SETB    ?_GPIO_Setout?BIT
+000F16 7F1D              MOV     R7,#01DH
+000F18 D1B2              ACALL   _GPIO_Setout
+  410: 		}
+  411: 	}
+000F1A 8016              SJMP    ?C0075?SYS
+000F1C         ?C0067?SYS:
+  412: 	else if (g_variable.pairing_g24_timeout != 0)
+000F1C 904CEE            MOV     DPTR,#g_variable+02FH
+000F1F E0                MOVX    A,@DPTR
+000F20 6010              JZ      ?C0075?SYS
+  413: 	{
+  414: 		GPIO_Setout(BT_LED_GPIO,1);
+000F22 D201              SETB    ?_GPIO_Setout?BIT
+000F24 7F1F              MOV     R7,#01FH
+000F26 D1B2              ACALL   _GPIO_Setout
+  415: 		GPIO_Setout(BT2_LED_GPIO,1);
+000F28 D201              SETB    ?_GPIO_Setout?BIT
+000F2A 7F1E              MOV     R7,#01EH
+000F2C D1B2              ACALL   _GPIO_Setout
+  416: 		GPIO_FlipOutBit(G24_LED_GPIO);
+000F2E 7F1D              MOV     R7,#01DH
+000F30 F1CF              ACALL   _GPIO_FlipOutBit
+  417: 	}
+  418: 	else
+  419: 	{
+  420: 		
+  421: 	}
+000F32         ?C0075?SYS:
+  422: 
+  423: 	
+  424: 	if (YC_check_is_connected())
+000F32 1217E8            LCALL   YC_check_is_connected
+000F35 EF                MOV     A,R7
+000F36 6042              JZ      ?C0066?SYS
+  425: 	{
+  426: 		if(g_variable.sys_numlockled_on_timer)
+000F38 904CE6            MOV     DPTR,#g_variable+027H
+000F3B E0                MOVX    A,@DPTR
+000F3C 6016              JZ      ?C0079?SYS
+  427: 		{
+  428: 			g_variable.sys_numlockled_on_timer--;
+000F3E 14                DEC     A
+000F3F F0                MOVX    @DPTR,A
+  429: 			GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
+000F40 C201              CLR     ?_GPIO_Setout?BIT
+000F42 7F10              MOV     R7,#010H
+000F44 D1B2              ACALL   _GPIO_Setout
+  430: 			if(!g_variable.sys_numlockled_on_timer)
+000F46 904CE6            MOV     DPTR,#g_variable+027H
+000F49 E0                MOVX    A,@DPTR
+000F4A 700E              JNZ     ?C0081?SYS
+  431: 				GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+000F4C D201              SETB    ?_GPIO_Setout?BIT
+000F4E 7F10              MOV     R7,#010H
+000F50 D1B2              ACALL   _GPIO_Setout
+  432: 		}
+000F52 8006              SJMP    ?C0081?SYS
+000F54         ?C0079?SYS:
+  433: 		else 
+  434: 			GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+000F54 D201              SETB    ?_GPIO_Setout?BIT
+000F56 7F10              MOV     R7,#010H
+000F58 D1B2              ACALL   _GPIO_Setout
+000F5A         ?C0081?SYS:
+  435: 
+  436: 		if(g_variable.sys_capslockled_on_timer)
+000F5A 904CE7            MOV     DPTR,#g_variable+028H
+000F5D E0                MOVX    A,@DPTR
+000F5E 6014              JZ      ?C0082?SYS
+  437: 		{
+  438: 			g_variable.sys_capslockled_on_timer--;
+000F60 14                DEC     A
+000F61 F0                MOVX    @DPTR,A
+  439: 			GPIO_Setout(CAPS_LED_GPIO, 0);
+000F62 C201              CLR     ?_GPIO_Setout?BIT
+000F64 7F0F              MOV     R7,#0FH
+000F66 D1B2              ACALL   _GPIO_Setout
+  440: 			if(!g_variable.sys_capslockled_on_timer)
+000F68 904CE7            MOV     DPTR,#g_variable+028H
+000F6B E0                MOVX    A,@DPTR
+000F6C 700C              JNZ     ?C0066?SYS
+  441: 				GPIO_Setout(CAPS_LED_GPIO, 1);
+000F6E D201              SETB    ?_GPIO_Setout?BIT
+000F70 7F0F              MOV     R7,#0FH
+000F72 C1B2              AJMP    _GPIO_Setout
+  442: 		}
+000F74         ?C0082?SYS:
+  443: 		else
+  444: 			GPIO_Setout(CAPS_LED_GPIO, 1);
+000F74 D201              SETB    ?_GPIO_Setout?BIT
+000F76 7F0F              MOV     R7,#0FH
+000F78 D1B2              ACALL   _GPIO_Setout
+  445: 	}	
+  446: }
+000F7A         ?C0066?SYS:
+000F7A 22                RET     
+----- FUNCTION LED_timer500ms (END) -------
+
+
+----- FUNCTION _Delay1ms (BEGIN) -----
+;---- Variable 'Time' assigned to Register 'R7' ----
+000F7B         ?C0014?UTILITIES:
+000F7B EF                MOV     A,R7
+000F7C D3                SETB    C
+000F7D 9400              SUBB    A,#00H
+000F7F 4011              JC      ?C0020?UTILITIES
+;---- Variable 'j' assigned to Register 'R4/R5' ----
+000F81 E4                CLR     A
+000F82 FD                MOV     R5,A
+000F83 FC                MOV     R4,A
+000F84         ?C0017?UTILITIES:
+000F84 0D                INC     R5
+000F85 BD0001            CJNE    R5,#00H,?C0028?UTILITIES
+000F88 0C                INC     R4
+000F89         ?C0028?UTILITIES:
+000F89 BC04F8            CJNE    R4,#04H,?C0017?UTILITIES
+000F8C BDA6F5            CJNE    R5,#0A6H,?C0017?UTILITIES
+000F8F         ?C0016?UTILITIES:
+000F8F 1F                DEC     R7
+000F90 80E9              SJMP    ?C0014?UTILITIES
+000F92         ?C0020?UTILITIES:
+000F92 22                RET     
+----- FUNCTION _Delay1ms (END) -------
+
+
+----- FUNCTION System_long_sleep (BEGIN) -----
+ FILE: 'sys.c'
+   67: void System_long_sleep()
+   68: { 
+   69: 	m_reconnect_continue = 0;
+   70: 	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+000F93 E4                CLR     A
+000F94 904D38            MOV     DPTR,#m_reconnect_continue
+000F97 F0                MOVX    @DPTR,A
+   71: }
+000F98 7F19              MOV     R7,#019H
+000F9A 015C              AJMP    _IPC_TxControlCmd
+----- FUNCTION System_long_sleep (END) -------
+
+
+----- FUNCTION LED_device_poweroff (BEGIN) -----
+ FILE: 'led.c'
+   32: void LED_device_poweroff()
+   33: {
+   34: 	if(g_variable.current_device_num == 1)
+   35: 		GPIO_Setout(BT_LED_GPIO,1);
+000F9C 904CC3            MOV     DPTR,#g_variable+04H
+000F9F E0                MOVX    A,@DPTR
+000FA0 B40106            CJNE    A,#01H,?C0009?LED
+   36: 	else if(g_variable.current_device_num == 2)
+000FA3 D201              SETB    ?_GPIO_Setout?BIT
+000FA5 7F1F              MOV     R7,#01FH
+000FA7 C1B2              AJMP    _GPIO_Setout
+000FA9         ?C0009?LED:
+   37: 		GPIO_Setout(BT2_LED_GPIO,1);
+000FA9 904CC3            MOV     DPTR,#g_variable+04H
+000FAC E0                MOVX    A,@DPTR
+000FAD B40206            CJNE    A,#02H,?C0011?LED
+   38: 	else if(g_variable.current_device_num == 3)
+000FB0 D201              SETB    ?_GPIO_Setout?BIT
+000FB2 7F1E              MOV     R7,#01EH
+000FB4 C1B2              AJMP    _GPIO_Setout
+000FB6         ?C0011?LED:
+   39: 	{	
+000FB6 904CC3            MOV     DPTR,#g_variable+04H
+000FB9 E0                MOVX    A,@DPTR
+000FBA B4030C            CJNE    A,#03H,?C0013?LED
+   40: 		GPIO_Setout(BT_LED_GPIO,1);
+   41: 		GPIO_Setout(LOWPOWER_LED_GPIO,1);
+000FBD D201              SETB    ?_GPIO_Setout?BIT
+000FBF 7F1F              MOV     R7,#01FH
+000FC1 D1B2              ACALL   _GPIO_Setout
+   42: 	}
+000FC3 D201              SETB    ?_GPIO_Setout?BIT
+000FC5 7F1D              MOV     R7,#01DH
+000FC7 C1B2              AJMP    _GPIO_Setout
+   43: 	else
+000FC9         ?C0013?LED:
+   44: 	{
+   45: 		GPIO_Setout(G24_LED_GPIO,1);
+000FC9 D201              SETB    ?_GPIO_Setout?BIT
+000FCB 7F1D              MOV     R7,#01DH
+000FCD C1B2              AJMP    _GPIO_Setout
+   46: 	}
+----- FUNCTION LED_device_poweroff (END) -------
+
+
+----- FUNCTION _GPIO_FlipOutBit (BEGIN) -----
+000FCF 904EFA            MOV     DPTR,#gpio_num
+000FD2 EF                MOV     A,R7
+000FD3 F0                MOVX    @DPTR,A
+000FD4 7B01              MOV     R3,#01H
+000FD6 7A80              MOV     R2,#080H
+000FD8 7974              MOV     R1,#074H
+000FDA 121F70            LCALL   _gpioGetBit
+000FDD 9209              MOV     st,C
+000FDF 904EFA            MOV     DPTR,#gpio_num
+000FE2 E0                MOVX    A,@DPTR
+000FE3 FF                MOV     R7,A
+000FE4 A209              MOV     C,st
+000FE6 B3                CPL     C
+000FE7 9201              MOV     ?_GPIO_Setout?BIT,C
+000FE9 C1B2              AJMP    _GPIO_Setout
+----- FUNCTION _GPIO_FlipOutBit (END) -------
+
+
+----- FUNCTION YC_clear_reconnect_flag (BEGIN) -----
+ FILE: 'bluetooth.c'
+  140: void YC_clear_reconnect_flag()  
+  141: {
+  142: 	g_variable.recon_count = 0;
+  143: 	ble_reconnect_flag = 0;
+000FEB E4                CLR     A
+000FEC 904CF0            MOV     DPTR,#g_variable+031H
+000FEF F0                MOVX    @DPTR,A
+  144: }
+000FF0 904DDD            MOV     DPTR,#ble_reconnect_flag
+000FF3 F0                MOVX    @DPTR,A
+  145: 
+000FF4 22                RET     
+----- FUNCTION YC_clear_reconnect_flag (END) -------
+
+
+----- FUNCTION System_Hardware_init (BEGIN) -----
+ FILE: 'sys.c'
+   44: static void System_Hardware_init()
+   45: {
+   46: 	KS_Initialize();
+   47: 	LED_all_shutdown();
+000FF5 121106            LCALL   KS_Initialize
+;----                  JMP     LED_all_shutdown
+   48: }
+----- FUNCTION System_Hardware_init (END) -------
+
+
+----- FUNCTION LED_all_shutdown (BEGIN) -----
+ FILE: 'led.c'
+    4: void LED_all_shutdown()
+    5: {
+    6: 	GPIO_SetOutput(NUM_LOCK_LED_GPIO,1);
+    7: 	GPIO_SetOutput(CAPS_LED_GPIO,1);
+000FF8 D206              SETB    ?_GPIO_SetOutput?BIT
+000FFA 7F10              MOV     R7,#010H
+000FFC 12101B            LCALL   _GPIO_SetOutput
+    8: 	GPIO_SetOutput(BT_LED_GPIO,1);
+000FFF D206              SETB    ?_GPIO_SetOutput?BIT
+001001 7F0F              MOV     R7,#0FH
+001003 111B              ACALL   _GPIO_SetOutput
+    9: 	GPIO_SetOutput(BT2_LED_GPIO,1);	
+001005 D206              SETB    ?_GPIO_SetOutput?BIT
+001007 7F1F              MOV     R7,#01FH
+001009 111B              ACALL   _GPIO_SetOutput
+   10: 	GPIO_SetOutput(LOWPOWER_LED_GPIO,1);
+00100B D206              SETB    ?_GPIO_SetOutput?BIT
+00100D 7F1E              MOV     R7,#01EH
+00100F 111B              ACALL   _GPIO_SetOutput
+   11: 	GPIO_SetOutput(G24_LED_GPIO,1);
+001011 D206              SETB    ?_GPIO_SetOutput?BIT
+001013 7F1D              MOV     R7,#01DH
+001015 111B              ACALL   _GPIO_SetOutput
+   12: }
+001017 D206              SETB    ?_GPIO_SetOutput?BIT
+001019 7F1D              MOV     R7,#01DH
+;----                  JMP     _GPIO_SetOutput
+----- FUNCTION LED_all_shutdown (END) -------
+
+
+----- FUNCTION _GPIO_SetOutput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+00101B AC07              MOV     R4,AR7
+00101D EC                MOV     A,R4
+00101E F4                CPL     A
+00101F 6015              JZ      ?C0017?GPIO
+001021         ?C0016?GPIO:
+001021 AF04              MOV     R7,AR4
+001023 D204              SETB    ?_GPIO_Setoe?BIT
+001025 1148              ACALL   _GPIO_Setoe
+001027 AF04              MOV     R7,AR4
+001029 A206              MOV     C,st
+00102B 9201              MOV     ?_GPIO_Setout?BIT,C
+00102D 120EB2            LCALL   _GPIO_Setout
+001030 AF04              MOV     R7,AR4
+001032 C202              CLR     ?_GPIO_SetPu?BIT
+001034 1137              ACALL   _GPIO_SetPu
+001036         ?C0017?GPIO:
+001036 22                RET     
+----- FUNCTION _GPIO_SetOutput (END) -------
+
+
+----- FUNCTION _GPIO_SetPu (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001037 EF                MOV     A,R7
+001038 F4                CPL     A
+001039 600C              JZ      ?C0009?GPIO
+00103B         ?C0008?GPIO:
+00103B 7B01              MOV     R3,#01H
+00103D 7A80              MOV     R2,#080H
+00103F 7978              MOV     R1,#078H
+001041 A202              MOV     C,bit_val
+001043 9200              MOV     ?_gpioSetBit?BIT,C
+001045 1188              ACALL   _gpioSetBit
+001047         ?C0009?GPIO:
+001047 22                RET     
+----- FUNCTION _GPIO_SetPu (END) -------
+
+
+----- FUNCTION _GPIO_Setoe (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001048 EF                MOV     A,R7
+001049 F4                CPL     A
+00104A 600C              JZ      ?C0013?GPIO
+00104C         ?C0012?GPIO:
+00104C 7B01              MOV     R3,#01H
+00104E 7A80              MOV     R2,#080H
+001050 7970              MOV     R1,#070H
+001052 A204              MOV     C,bit_val
+001054 9200              MOV     ?_gpioSetBit?BIT,C
+001056 1188              ACALL   _gpioSetBit
+001058         ?C0013?GPIO:
+001058 22                RET     
+----- FUNCTION _GPIO_Setoe (END) -------
+
+
+----- FUNCTION _GPIO_SetInput (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R4' ----
+001059 AC07              MOV     R4,AR7
+00105B EC                MOV     A,R4
+00105C F4                CPL     A
+00105D 6017              JZ      ?C0015?GPIO
+00105F         ?C0014?GPIO:
+00105F AF04              MOV     R7,AR4
+001061 A205              MOV     C,st
+001063 9203              MOV     ?_GPIO_SetPd?BIT,C
+001065 1177              ACALL   _GPIO_SetPd
+001067 AF04              MOV     R7,AR4
+001069 A205              MOV     C,st
+00106B B3                CPL     C
+00106C 9202              MOV     ?_GPIO_SetPu?BIT,C
+00106E 1137              ACALL   _GPIO_SetPu
+001070 AF04              MOV     R7,AR4
+001072 C204              CLR     ?_GPIO_Setoe?BIT
+001074 1148              ACALL   _GPIO_Setoe
+001076         ?C0015?GPIO:
+001076 22                RET     
+----- FUNCTION _GPIO_SetInput (END) -------
+
+
+----- FUNCTION _GPIO_SetPd (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001077 EF                MOV     A,R7
+001078 F4                CPL     A
+001079 600C              JZ      ?C0011?GPIO
+00107B         ?C0010?GPIO:
+00107B 7B01              MOV     R3,#01H
+00107D 7A80              MOV     R2,#080H
+00107F 797C              MOV     R1,#07CH
+001081 A203              MOV     C,bit_val
+001083 9200              MOV     ?_gpioSetBit?BIT,C
+001085 1188              ACALL   _gpioSetBit
+001087         ?C0011?GPIO:
+001087 22                RET     
+----- FUNCTION _GPIO_SetPd (END) -------
+
+
+----- FUNCTION _gpioSetBit (BEGIN) -----
+001088 904EE3            MOV     DPTR,#reg_base
+00108B EB                MOV     A,R3
+00108C F0                MOVX    @DPTR,A
+00108D A3                INC     DPTR
+00108E EA                MOV     A,R2
+00108F F0                MOVX    @DPTR,A
+001090 A3                INC     DPTR
+001091 E9                MOV     A,R1
+001092 F0                MOVX    @DPTR,A
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+;---- Variable 'queue' assigned to Register 'R6' ----
+001093 E4                CLR     A
+001094 FE                MOV     R6,A
+;---- Variable 'group' assigned to Register 'R5' ----
+001095 FD                MOV     R5,A
+001096 EF                MOV     A,R7
+001097 5407              ANL     A,#07H
+001099 FE                MOV     R6,A
+00109A EF                MOV     A,R7
+00109B 13                RRC     A
+00109C 13                RRC     A
+00109D 13                RRC     A
+00109E 5403              ANL     A,#03H
+0010A0 FD                MOV     R5,A
+0010A1 300022            JNB     bit_val,?C0001?GPIO
+0010A4 904EE3            MOV     DPTR,#reg_base
+0010A7 E0                MOVX    A,@DPTR
+0010A8 FB                MOV     R3,A
+0010A9 A3                INC     DPTR
+0010AA E0                MOVX    A,@DPTR
+0010AB FA                MOV     R2,A
+0010AC A3                INC     DPTR
+0010AD E0                MOVX    A,@DPTR
+0010AE 2D                ADD     A,R5
+0010AF F9                MOV     R1,A
+0010B0 E4                CLR     A
+0010B1 3A                ADDC    A,R2
+0010B2 FA                MOV     R2,A
+0010B3 1203B6            LCALL   ?C?CLDPTR
+0010B6 FF                MOV     R7,A
+0010B7 7401              MOV     A,#01H
+0010B9 A806              MOV     R0,AR6
+0010BB 08                INC     R0
+0010BC 8002              SJMP    ?C0031?GPIO
+0010BE         ?C0030?GPIO:
+0010BE C3                CLR     C
+0010BF 33                RLC     A
+0010C0         ?C0031?GPIO:
+0010C0 D8FC              DJNZ    R0,?C0030?GPIO
+0010C2 4F                ORL     A,R7
+0010C3 0203FC            LJMP    ?C?CSTPTR
+0010C6         ?C0001?GPIO:
+0010C6 904EE3            MOV     DPTR,#reg_base
+0010C9 E0                MOVX    A,@DPTR
+0010CA FB                MOV     R3,A
+0010CB A3                INC     DPTR
+0010CC E0                MOVX    A,@DPTR
+0010CD FA                MOV     R2,A
+0010CE A3                INC     DPTR
+0010CF E0                MOVX    A,@DPTR
+0010D0 2D                ADD     A,R5
+0010D1 F9                MOV     R1,A
+0010D2 E4                CLR     A
+0010D3 3A                ADDC    A,R2
+0010D4 FA                MOV     R2,A
+0010D5 1203B6            LCALL   ?C?CLDPTR
+0010D8 FF                MOV     R7,A
+0010D9 7401              MOV     A,#01H
+0010DB A806              MOV     R0,AR6
+0010DD 08                INC     R0
+0010DE 8002              SJMP    ?C0033?GPIO
+0010E0         ?C0032?GPIO:
+0010E0 C3                CLR     C
+0010E1 33                RLC     A
+0010E2         ?C0033?GPIO:
+0010E2 D8FC              DJNZ    R0,?C0032?GPIO
+0010E4 F4                CPL     A
+0010E5 5F                ANL     A,R7
+0010E6 0203FC            LJMP    ?C?CSTPTR
+----- FUNCTION _gpioSetBit (END) -------
+
+
+----- FUNCTION ksRawInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  174: static void ksRawInitialize()
+  175: {
+  176: 	byte i = 0;
+  177: 	
+0010E9 E4                CLR     A
+0010EA 904EF3            MOV     DPTR,#i
+0010ED F0                MOVX    @DPTR,A
+  178: 	for (i=0; i<8; i++) {
+0010EE F0                MOVX    @DPTR,A
+0010EF         ?C0056?KEYSCAN:
+0010EF 904EF3            MOV     DPTR,#i
+0010F2 E0                MOVX    A,@DPTR
+0010F3 FF                MOV     R7,A
+0010F4 C3                CLR     C
+0010F5 9408              SUBB    A,#08H
+0010F7 500C              JNC     ?C0059?KEYSCAN
+  179: 		GPIO_SetInput(i, 0);
+0010F9 C205              CLR     ?_GPIO_SetInput?BIT
+0010FB 1159              ACALL   _GPIO_SetInput
+  180: 	}
+0010FD 904EF3            MOV     DPTR,#i
+001100 E0                MOVX    A,@DPTR
+001101 04                INC     A
+001102 F0                MOVX    @DPTR,A
+001103 80EA              SJMP    ?C0056?KEYSCAN
+  181: }
+001105         ?C0059?KEYSCAN:
+001105 22                RET     
+----- FUNCTION ksRawInitialize (END) -------
+
+
+----- FUNCTION KS_Initialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  191: void KS_Initialize()
+  192: {
+  193: 	REG_GPIO_SELECT(0) = 0;
+  194: 	REG_GPIO_SELECT(1) = 0;
+001106 908080            MOV     DPTR,#08080H
+001109 E4                CLR     A
+00110A F0                MOVX    @DPTR,A
+  195: 	REG_GPIO_SELECT(2) = 0;
+00110B A3                INC     DPTR
+00110C F0                MOVX    @DPTR,A
+  196: 	ksRawInitialize();
+00110D A3                INC     DPTR
+00110E F0                MOVX    @DPTR,A
+  197: 	ksColInitialize();
+00110F 11E9              ACALL   ksRawInitialize
+;----                  JMP     ksColInitialize
+  198: }
+----- FUNCTION KS_Initialize (END) -------
+
+
+----- FUNCTION ksColInitialize (BEGIN) -----
+ FILE: 'keyscan.c'
+  183: static void ksColInitialize()
+  184: {
+  185: 	byte i = 0;
+  186: 	for (i=0; col[i]!=0; i++) {
+001111 E4                CLR     A
+001112 904EF4            MOV     DPTR,#i
+001115 F0                MOVX    @DPTR,A
+  187: 		GPIO_SetInput(col[i], 0);
+001116 F0                MOVX    @DPTR,A
+001117         ?C0060?KEYSCAN:
+001117 904EF4            MOV     DPTR,#i
+00111A E0                MOVX    A,@DPTR
+00111B 900681            MOV     DPTR,#col
+00111E 93                MOVC    A,@A+DPTR
+00111F FF                MOV     R7,A
+001120 600C              JZ      ?C0063?KEYSCAN
+  188: 	}
+001122 C205              CLR     ?_GPIO_SetInput?BIT
+001124 1159              ACALL   _GPIO_SetInput
+  189: }
+001126 904EF4            MOV     DPTR,#i
+001129 E0                MOVX    A,@DPTR
+00112A 04                INC     A
+00112B F0                MOVX    @DPTR,A
+00112C 80E9              SJMP    ?C0060?KEYSCAN
+  190: 
+00112E         ?C0063?KEYSCAN:
+00112E 22                RET     
+----- FUNCTION ksColInitialize (END) -------
+
+
+----- FUNCTION _YC_store_record_list (BEGIN) -----
+ FILE: 'bluetooth.c'
+   43: void YC_store_record_list(byte link_type,byte index)
+   44: {
+00112F 904EE7            MOV     DPTR,#index
+001132 ED                MOV     A,R5
+001133 F0                MOVX    @DPTR,A
+001134 904EE6            MOV     DPTR,#link_type
+001137 EF                MOV     A,R7
+001138 F0                MOVX    @DPTR,A
+   45: 	if (link_type == TYPE_BLE) 
+   46: 	{
+001139 6401              XRL     A,#01H
+00113B 7070              JNZ     ?C0007?BLUETOOTH
+   47: 		bd_key_record_list[index].device_type = TYPE_BLE;
+   48: 		xmemcpy(bd_key_record_list[index].device_addr,m_remote_le_addr,6);
+00113D A3                INC     DPTR
+00113E E0                MOVX    A,@DPTR
+00113F FF                MOV     R7,A
+001140 75F01D            MOV     B,#01DH
+001143 A4                MUL     AB
+001144 24E4              ADD     A,#LOW bd_key_record_list
+001146 F582              MOV     DPL,A
+001148 E4                CLR     A
+001149 344D              ADDC    A,#HIGH bd_key_record_list
+00114B F583              MOV     DPH,A
+00114D 7401              MOV     A,#01H
+00114F F0                MOVX    @DPTR,A
+   49: 		xmemcpy(bd_key_record_list[index].device_link_key,m_le_ltk,16);
+001150 EF                MOV     A,R7
+001151 75F01D            MOV     B,#01DH
+001154 A4                MUL     AB
+001155 24E5              ADD     A,#LOW bd_key_record_list+01H
+001157 F582              MOV     DPL,A
+001159 E4                CLR     A
+00115A 344D              ADDC    A,#HIGH bd_key_record_list+01H
+00115C AF82              MOV     R7,DPL
+00115E FE                MOV     R6,A
+00115F 7B01              MOV     R3,#01H
+001161 7A03              MOV     R2,#HIGH m_remote_le_addr
+001163 79D0              MOV     R1,#LOW m_remote_le_addr
+001165 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001168 7406              MOV     A,#06H
+00116A F0                MOVX    @DPTR,A
+00116B 5106              ACALL   _xmemcpy
+   50: 		xmemcpy(bd_key_record_list[index].local_addr,m_le_lap,6);
+00116D 904EE7            MOV     DPTR,#index
+001170 E0                MOVX    A,@DPTR
+001171 75F01D            MOV     B,#01DH
+001174 A4                MUL     AB
+001175 24EB              ADD     A,#LOW bd_key_record_list+07H
+001177 F582              MOV     DPL,A
+001179 E4                CLR     A
+00117A 344D              ADDC    A,#HIGH bd_key_record_list+07H
+00117C AF82              MOV     R7,DPL
+00117E FE                MOV     R6,A
+00117F 7B01              MOV     R3,#01H
+001181 7A44              MOV     R2,#HIGH m_le_ltk
+001183 797B              MOV     R1,#LOW m_le_ltk
+001185 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001188 7410              MOV     A,#010H
+00118A F0                MOVX    @DPTR,A
+00118B 5106              ACALL   _xmemcpy
+   51: 	}
+00118D 904EE7            MOV     DPTR,#index
+001190 E0                MOVX    A,@DPTR
+001191 75F01D            MOV     B,#01DH
+001194 A4                MUL     AB
+001195 24FB              ADD     A,#LOW bd_key_record_list+017H
+001197 F582              MOV     DPL,A
+001199 E4                CLR     A
+00119A 344D              ADDC    A,#HIGH bd_key_record_list+017H
+00119C AF82              MOV     R7,DPL
+00119E FE                MOV     R6,A
+00119F 7B01              MOV     R3,#01H
+0011A1 7A44              MOV     R2,#HIGH m_le_lap
+0011A3 79F9              MOV     R1,#LOW m_le_lap
+0011A5 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0011A8 7406              MOV     A,#06H
+0011AA F0                MOVX    @DPTR,A
+0011AB 8059              SJMP    _xmemcpy
+   52: 	else if (link_type == TYPE_BT)
+0011AD         ?C0007?BLUETOOTH:
+   53: 	{
+0011AD 904EE6            MOV     DPTR,#link_type
+0011B0 E0                MOVX    A,@DPTR
+0011B1 6402              XRL     A,#02H
+0011B3 7050              JNZ     ?C0010?BLUETOOTH
+   54: 		bd_key_record_list[index].device_type = TYPE_BT;
+   55: 		xmemcpy(bd_key_record_list[index].device_addr,m_remote_addr,6);
+0011B5 A3                INC     DPTR
+0011B6 E0                MOVX    A,@DPTR
+0011B7 FF                MOV     R7,A
+0011B8 75F01D            MOV     B,#01DH
+0011BB A4                MUL     AB
+0011BC 24E4              ADD     A,#LOW bd_key_record_list
+0011BE F582              MOV     DPL,A
+0011C0 E4                CLR     A
+0011C1 344D              ADDC    A,#HIGH bd_key_record_list
+0011C3 F583              MOV     DPH,A
+0011C5 7402              MOV     A,#02H
+0011C7 F0                MOVX    @DPTR,A
+   56: 		xmemcpy(bd_key_record_list[index].device_link_key,m_linkkey,16);
+0011C8 EF                MOV     A,R7
+0011C9 75F01D            MOV     B,#01DH
+0011CC A4                MUL     AB
+0011CD 24E5              ADD     A,#LOW bd_key_record_list+01H
+0011CF F582              MOV     DPL,A
+0011D1 E4                CLR     A
+0011D2 344D              ADDC    A,#HIGH bd_key_record_list+01H
+0011D4 AF82              MOV     R7,DPL
+0011D6 FE                MOV     R6,A
+0011D7 7B01              MOV     R3,#01H
+0011D9 7A00              MOV     R2,#HIGH m_remote_addr
+0011DB 7940              MOV     R1,#LOW m_remote_addr
+0011DD 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0011E0 7406              MOV     A,#06H
+0011E2 F0                MOVX    @DPTR,A
+0011E3 5106              ACALL   _xmemcpy
+   57: 	}
+0011E5 904EE7            MOV     DPTR,#index
+0011E8 E0                MOVX    A,@DPTR
+0011E9 75F01D            MOV     B,#01DH
+0011EC A4                MUL     AB
+0011ED 24EB              ADD     A,#LOW bd_key_record_list+07H
+0011EF F582              MOV     DPL,A
+0011F1 E4                CLR     A
+0011F2 344D              ADDC    A,#HIGH bd_key_record_list+07H
+0011F4 AF82              MOV     R7,DPL
+0011F6 FE                MOV     R6,A
+0011F7 7B01              MOV     R3,#01H
+0011F9 7A42              MOV     R2,#HIGH m_linkkey
+0011FB 7962              MOV     R1,#LOW m_linkkey
+0011FD 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001200 7410              MOV     A,#010H
+001202 F0                MOVX    @DPTR,A
+001203 5106              ACALL   _xmemcpy
+   58: }
+   59: 
+001205         ?C0010?BLUETOOTH:
+001205 22                RET     
+----- FUNCTION _YC_store_record_list (END) -------
+
+
+----- FUNCTION _xmemcpy (BEGIN) -----
+001206 904EA3            MOV     DPTR,#dest
+001209 EE                MOV     A,R6
+00120A F0                MOVX    @DPTR,A
+00120B A3                INC     DPTR
+00120C EF                MOV     A,R7
+00120D F0                MOVX    @DPTR,A
+00120E A3                INC     DPTR
+00120F EB                MOV     A,R3
+001210 F0                MOVX    @DPTR,A
+001211 A3                INC     DPTR
+001212 EA                MOV     A,R2
+001213 F0                MOVX    @DPTR,A
+001214 A3                INC     DPTR
+001215 E9                MOV     A,R1
+001216 F0                MOVX    @DPTR,A
+001217         ?C0002?UTILITIES:
+001217 904EA8            MOV     DPTR,#len
+00121A E0                MOVX    A,@DPTR
+00121B FF                MOV     R7,A
+00121C 14                DEC     A
+00121D F0                MOVX    @DPTR,A
+00121E EF                MOV     A,R7
+00121F 6027              JZ      ?C0004?UTILITIES
+001221 904EA5            MOV     DPTR,#src
+001224 E0                MOVX    A,@DPTR
+001225 FB                MOV     R3,A
+001226 A3                INC     DPTR
+001227 E4                CLR     A
+001228 75F001            MOV     B,#01H
+00122B 120424            LCALL   ?C?ILDIX
+00122E A9F0              MOV     R1,B
+001230 FA                MOV     R2,A
+001231 1203B6            LCALL   ?C?CLDPTR
+001234 FF                MOV     R7,A
+001235 904EA3            MOV     DPTR,#dest
+001238 E4                CLR     A
+001239 75F001            MOV     B,#01H
+00123C 120424            LCALL   ?C?ILDIX
+00123F 85F082            MOV     DPL,B
+001242 F583              MOV     DPH,A
+001244 EF                MOV     A,R7
+001245 F0                MOVX    @DPTR,A
+001246 80CF              SJMP    ?C0002?UTILITIES
+001248         ?C0004?UTILITIES:
+001248 22                RET     
+----- FUNCTION _xmemcpy (END) -------
+
+
+----- FUNCTION _kb_motion_keyscan (BEGIN) -----
+ FILE: 'kb_process.c'
+  370: void kb_motion_keyscan(tKSEVENT *pEvt)
+  371: {
+001249 904EA9            MOV     DPTR,#pEvt
+00124C EB                MOV     A,R3
+00124D F0                MOVX    @DPTR,A
+00124E A3                INC     DPTR
+00124F EA                MOV     A,R2
+001250 F0                MOVX    @DPTR,A
+001251 A3                INC     DPTR
+001252 E9                MOV     A,R1
+001253 F0                MOVX    @DPTR,A
+  372: 	byte temp = 0;
+  373: 	byte i=0;
+001254 E4                CLR     A
+001255 A3                INC     DPTR
+001256 F0                MOVX    @DPTR,A
+  374: 	
+001257 A3                INC     DPTR
+001258 F0                MOVX    @DPTR,A
+  375: 	fn_flag = 0;
+001259 904DDB            MOV     DPTR,#fn_flag
+00125C F0                MOVX    @DPTR,A
+  376: 	for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+00125D 904EAD            MOV     DPTR,#i
+001260 F0                MOVX    @DPTR,A
+001261         ?C0083?KB_PROCESS:
+001261 904EAD            MOV     DPTR,#i
+001264 E0                MOVX    A,@DPTR
+001265 FF                MOV     R7,A
+001266 C3                CLR     C
+001267 9405              SUBB    A,#05H
+001269 502C              JNC     ?C0084?KB_PROCESS
+  377: 	{
+  378: 		if (pEvt->ksPool[i] == HID_KEY_FN) 		// Fn key check
+00126B 904EA9            MOV     DPTR,#pEvt
+00126E E0                MOVX    A,@DPTR
+00126F FB                MOV     R3,A
+001270 A3                INC     DPTR
+001271 E0                MOVX    A,@DPTR
+001272 FA                MOV     R2,A
+001273 A3                INC     DPTR
+001274 E0                MOVX    A,@DPTR
+001275 2401              ADD     A,#01H
+001277 F9                MOV     R1,A
+001278 E4                CLR     A
+001279 3A                ADDC    A,R2
+00127A FA                MOV     R2,A
+00127B 7E00              MOV     R6,#00H
+00127D E9                MOV     A,R1
+00127E 2F                ADD     A,R7
+00127F F9                MOV     R1,A
+001280 EE                MOV     A,R6
+001281 3A                ADDC    A,R2
+001282 FA                MOV     R2,A
+001283 1203B6            LCALL   ?C?CLDPTR
+001286 B4AF06            CJNE    A,#0AFH,?C0085?KB_PROCESS
+  379: 		{
+  380: 			fn_flag = 1;
+001289 904DDB            MOV     DPTR,#fn_flag
+00128C 7401              MOV     A,#01H
+00128E F0                MOVX    @DPTR,A
+  381: 		}
+  382: 	}
+00128F         ?C0085?KB_PROCESS:
+00128F 904EAD            MOV     DPTR,#i
+001292 E0                MOVX    A,@DPTR
+001293 04                INC     A
+001294 F0                MOVX    @DPTR,A
+001295 80CA              SJMP    ?C0083?KB_PROCESS
+001297         ?C0084?KB_PROCESS:
+  383: 	fn_flag_last = fn_flag;
+001297 904DDB            MOV     DPTR,#fn_flag
+00129A E0                MOVX    A,@DPTR
+00129B 904DE0            MOV     DPTR,#fn_flag_last
+00129E F0                MOVX    @DPTR,A
+  384: 
+  385: 	
+  386: 	if(kb_device_select(pEvt))		// select device or discovery
+00129F 904EA9            MOV     DPTR,#pEvt
+0012A2 E0                MOVX    A,@DPTR
+0012A3 FB                MOV     R3,A
+0012A4 A3                INC     DPTR
+0012A5 E0                MOVX    A,@DPTR
+0012A6 FA                MOV     R2,A
+0012A7 A3                INC     DPTR
+0012A8 E0                MOVX    A,@DPTR
+0012A9 F9                MOV     R1,A
+0012AA 122A11            LCALL   _kb_device_select
+0012AD EF                MOV     A,R7
+0012AE 6002              JZ      $ + 4H
+0012B0 81AF              AJMP    ?C0088?KB_PROCESS
+0012B2         ?C0087?KB_PROCESS:
+  387: 		return;
+  388: 	if (pEvt == NULL)
+0012B2 904EA9            MOV     DPTR,#pEvt
+0012B5 E0                MOVX    A,@DPTR
+0012B6 A3                INC     DPTR
+0012B7 E0                MOVX    A,@DPTR
+0012B8 FA                MOV     R2,A
+0012B9 A3                INC     DPTR
+0012BA E0                MOVX    A,@DPTR
+0012BB 4A                ORL     A,R2
+0012BC 7002              JNZ     $ + 4H
+0012BE 81AF              AJMP    ?C0088?KB_PROCESS
+0012C0         ?C0089?KB_PROCESS:
+  389: 		return;
+  390: 
+  391: 	
+  392: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED ||g_variable.br_currentState == CHANGE_TO_BR_CONNECTE
+>> D)
+0012C0 904CC7            MOV     DPTR,#g_variable+08H
+0012C3 E0                MOVX    A,@DPTR
+0012C4 6404              XRL     A,#04H
+0012C6 6007              JZ      ?C0091?KB_PROCESS
+0012C8 904CC9            MOV     DPTR,#g_variable+0AH
+0012CB E0                MOVX    A,@DPTR
+0012CC B40406            CJNE    A,#04H,?C0090?KB_PROCESS
+0012CF         ?C0091?KB_PROCESS:
+  393: 	{
+  394: 		kscurrmult = 0x3;
+0012CF 904213            MOV     DPTR,#kscurrmult
+0012D2 7403              MOV     A,#03H
+0012D4 F0                MOVX    @DPTR,A
+  395: 	}
+0012D5         ?C0090?KB_PROCESS:
+  396: 	delayChgInvTimer = 10;
+0012D5 904DDE            MOV     DPTR,#delayChgInvTimer
+0012D8 740A              MOV     A,#0AH
+0012DA F0                MOVX    @DPTR,A
+  397: 	g_variable.sleepTimer = 0;
+0012DB E4                CLR     A
+0012DC 904CE3            MOV     DPTR,#g_variable+024H
+0012DF F0                MOVX    @DPTR,A
+0012E0 A3                INC     DPTR
+0012E1 F0                MOVX    @DPTR,A
+  398: 	xmemclear(hidBuff,9);
+0012E2 7B01              MOV     R3,#01H
+0012E4 7A48              MOV     R2,#HIGH hidBuff
+0012E6 7900              MOV     R1,#LOW hidBuff
+0012E8 7D09              MOV     R5,#09H
+0012EA FC                MOV     R4,A
+0012EB B16D              ACALL   _xmemclear
+  399: 	xmemclear(multikey,9);
+0012ED 7B01              MOV     R3,#01H
+0012EF 7A4E              MOV     R2,#HIGH multikey
+0012F1 793C              MOV     R1,#LOW multikey
+0012F3 7D09              MOV     R5,#09H
+0012F5 7C00              MOV     R4,#00H
+0012F7 B16D              ACALL   _xmemclear
+  400: 
+  401: 	////////////////////////////2.4g pairing////////////////////////////////////
+  402: 	if ((pEvt->ksPool[0]  == HID_KEY_EQUAL&& pEvt->ksPool[1]  == HID_KEY_ESC) 
+0012F9 904EA9            MOV     DPTR,#pEvt
+0012FC E0                MOVX    A,@DPTR
+0012FD FB                MOV     R3,A
+0012FE A3                INC     DPTR
+0012FF E0                MOVX    A,@DPTR
+001300 FA                MOV     R2,A
+001301 A3                INC     DPTR
+001302 E0                MOVX    A,@DPTR
+001303 F9                MOV     R1,A
+001304 900001            MOV     DPTR,#01H
+001307 1203CF            LCALL   ?C?CLDOPTR
+00130A FF                MOV     R7,A
+00130B B42E0A            CJNE    A,#02EH,?C0094?KB_PROCESS
+00130E 900002            MOV     DPTR,#02H
+001311 1203CF            LCALL   ?C?CLDOPTR
+001314 6429              XRL     A,#029H
+001316 600E              JZ      ?C0093?KB_PROCESS
+001318         ?C0094?KB_PROCESS:
+001318 EF                MOV     A,R7
+001319 6429              XRL     A,#029H
+00131B 7023              JNZ     ?C0092?KB_PROCESS
+00131D 900002            MOV     DPTR,#02H
+001320 1203CF            LCALL   ?C?CLDOPTR
+001323 B42E1A            CJNE    A,#02EH,?C0092?KB_PROCESS
+001326         ?C0093?KB_PROCESS:
+  403: 		||(pEvt->ksPool[0]  == HID_KEY_ESC && pEvt->ksPool[1]  == HID_KEY_EQUAL) 
+  404: 		)
+  405: 	{
+  406: 		if (g_variable.g24_currentState != CHANGE_TO_24G_PAIRING)
+001326 904CC5            MOV     DPTR,#g_variable+06H
+001329 E0                MOVX    A,@DPTR
+00132A 6401              XRL     A,#01H
+00132C 6009              JZ      ?C0095?KB_PROCESS
+  407: 		{
+  408: 			g_variable.button_flag |= KEY_FLAG_FN_24G_DEVICE_BUTTON;
+00132E 904CCE            MOV     DPTR,#g_variable+0FH
+001331 E0                MOVX    A,@DPTR
+001332 4410              ORL     A,#010H
+001334 F0                MOVX    @DPTR,A
+  409: 		}
+001335 8010              SJMP    ?C0097?KB_PROCESS
+001337         ?C0095?KB_PROCESS:
+  410: 		else
+  411: 		{
+  412: 			g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001337 904CCE            MOV     DPTR,#g_variable+0FH
+00133A E0                MOVX    A,@DPTR
+00133B 54EF              ANL     A,#0EFH
+00133D F0                MOVX    @DPTR,A
+  413: 		}
+  414: 	}
+00133E 8007              SJMP    ?C0097?KB_PROCESS
+001340         ?C0092?KB_PROCESS:
+  415: 	else
+  416: 	{
+  417: 		g_variable.button_flag &= ~KEY_FLAG_FN_24G_DEVICE_BUTTON;
+001340 904CCE            MOV     DPTR,#g_variable+0FH
+001343 E0                MOVX    A,@DPTR
+001344 54EF              ANL     A,#0EFH
+001346 F0                MOVX    @DPTR,A
+  418: 	}
+001347         ?C0097?KB_PROCESS:
+  419: 
+  420: 	m_power_on_flag = 1;
+001347 904CB6            MOV     DPTR,#m_power_on_flag
+00134A 7401              MOV     A,#01H
+00134C F0                MOVX    @DPTR,A
+  421: 	if(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+00134D 904CF4            MOV     DPTR,#g_variable+035H
+001350 E0                MOVX    A,@DPTR
+001351 B4012A            CJNE    A,#01H,?C0098?KB_PROCESS
+  422: 	{
+  423: 		hidBuff[0] = HID_REPORTID_1;
+001354 904800            MOV     DPTR,#hidBuff
+001357 7401              MOV     A,#01H
+001359 F0                MOVX    @DPTR,A
+  424: 		hidBuff[1] |= g_variable.key_combination_ctrl;
+00135A A3                INC     DPTR
+00135B E0                MOVX    A,@DPTR
+00135C FF                MOV     R7,A
+00135D 904CF5            MOV     DPTR,#g_variable+036H
+001360 E0                MOVX    A,@DPTR
+001361 FE                MOV     R6,A
+001362 EF                MOV     A,R7
+001363 4E                ORL     A,R6
+001364 904801            MOV     DPTR,#hidBuff+01H
+001367 F0                MOVX    @DPTR,A
+  425: 		hidBuff[3] = 0x00; 
+001368 E4                CLR     A
+001369 904803            MOV     DPTR,#hidBuff+03H
+00136C F0                MOVX    @DPTR,A
+  426: 		IPC_TxHidData(hidBuff, 9);
+00136D 7B01              MOV     R3,#01H
+00136F 7A48              MOV     R2,#HIGH hidBuff
+001371 7900              MOV     R1,#LOW hidBuff
+001373 7D09              MOV     R5,#09H
+001375 91B0              ACALL   _IPC_TxHidData
+  427: 		g_variable.key_combination_step = CAMBINATION_KEY_HOLD;
+001377 904CF4            MOV     DPTR,#g_variable+035H
+00137A 7402              MOV     A,#02H
+00137C F0                MOVX    @DPTR,A
+00137D 22                RET     
+  428: 		return;
+  429: 	}
+00137E         ?C0098?KB_PROCESS:
+  430: 
+  431: 	// get 24g led status
+  432: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+00137E 904CC5            MOV     DPTR,#g_variable+06H
+001381 E0                MOVX    A,@DPTR
+001382 6403              XRL     A,#03H
+001384 7045              JNZ     ?C0099?KB_PROCESS
+  433: 	{
+  434: 		for(i=0; i < KS_BUFF_POLL_LEN-1; i++)
+001386 904EAD            MOV     DPTR,#i
+001389 F0                MOVX    @DPTR,A
+00138A         ?C0100?KB_PROCESS:
+00138A 904EAD            MOV     DPTR,#i
+00138D E0                MOVX    A,@DPTR
+00138E FF                MOV     R7,A
+00138F C3                CLR     C
+001390 9405              SUBB    A,#05H
+001392 5037              JNC     ?C0099?KB_PROCESS
+  435: 		{
+  436: 			if ((pEvt->ksPool[i] == HID_KEY_CAPS_LOCK) || (pEvt->ksPool[i] == HID_KEY_NUM_LOCK) 
+001394 904EA9            MOV     DPTR,#pEvt
+001397 E0                MOVX    A,@DPTR
+001398 FB                MOV     R3,A
+001399 A3                INC     DPTR
+00139A E0                MOVX    A,@DPTR
+00139B FA                MOV     R2,A
+00139C A3                INC     DPTR
+00139D E0                MOVX    A,@DPTR
+00139E 2401              ADD     A,#01H
+0013A0 F9                MOV     R1,A
+0013A1 E4                CLR     A
+0013A2 3A                ADDC    A,R2
+0013A3 FA                MOV     R2,A
+0013A4 7E00              MOV     R6,#00H
+0013A6 E9                MOV     A,R1
+0013A7 2F                ADD     A,R7
+0013A8 F9                MOV     R1,A
+0013A9 EE                MOV     A,R6
+0013AA 3A                ADDC    A,R2
+0013AB FA                MOV     R2,A
+0013AC 1203B6            LCALL   ?C?CLDPTR
+0013AF FF                MOV     R7,A
+0013B0 6439              XRL     A,#039H
+0013B2 6009              JZ      ?C0104?KB_PROCESS
+0013B4 EF                MOV     A,R7
+0013B5 6453              XRL     A,#053H
+0013B7 6004              JZ      ?C0104?KB_PROCESS
+0013B9 EF                MOV     A,R7
+0013BA B44706            CJNE    A,#047H,?C0102?KB_PROCESS
+0013BD         ?C0104?KB_PROCESS:
+  437: 			|| (pEvt->ksPool[i] == HID_KEY_SCROLL_LOCK))
+  438: 			{
+  439: 				get_24g_led_send = 1;
+0013BD 904DD0            MOV     DPTR,#get_24g_led_send
+0013C0 7401              MOV     A,#01H
+0013C2 F0                MOVX    @DPTR,A
+  440: 			}
+  441: 		}
+0013C3         ?C0102?KB_PROCESS:
+0013C3 904EAD            MOV     DPTR,#i
+0013C6 E0                MOVX    A,@DPTR
+0013C7 04                INC     A
+0013C8 F0                MOVX    @DPTR,A
+0013C9 80BF              SJMP    ?C0100?KB_PROCESS
+  442: 	}
+0013CB         ?C0099?KB_PROCESS:
+  443: 
+  444: 	kb_multikey_setup(pEvt);
+0013CB 904EA9            MOV     DPTR,#pEvt
+0013CE E0                MOVX    A,@DPTR
+0013CF FB                MOV     R3,A
+0013D0 A3                INC     DPTR
+0013D1 E0                MOVX    A,@DPTR
+0013D2 FA                MOV     R2,A
+0013D3 A3                INC     DPTR
+0013D4 E0                MOVX    A,@DPTR
+0013D5 F9                MOV     R1,A
+0013D6 122C70            LCALL   _kb_multikey_setup
+  445: 	
+  446: 	if (mult_key_status == KEY_PRESS) 
+0013D9 904E3B            MOV     DPTR,#mult_key_status
+0013DC E0                MOVX    A,@DPTR
+0013DD B40111            CJNE    A,#01H,?C0105?KB_PROCESS
+  447: 	{
+  448: 		mult_key_status = KEY_WAIT_RELEASE;
+0013E0 7402              MOV     A,#02H
+0013E2 F0                MOVX    @DPTR,A
+  449: 		multikey[0] = HID_REPORTID_2;	
+0013E3 904E3C            MOV     DPTR,#multikey
+0013E6 F0                MOVX    @DPTR,A
+  450: 		IPC_TxHidData(multikey, 3);
+0013E7 7B01              MOV     R3,#01H
+0013E9 7A4E              MOV     R2,#HIGH multikey
+0013EB 793C              MOV     R1,#LOW multikey
+0013ED 7D03              MOV     R5,#03H
+0013EF 81B0              AJMP    _IPC_TxHidData
+  451: 	}
+0013F1         ?C0105?KB_PROCESS:
+  452: 	else if(mult_key_status == KEY_RELEASE)
+0013F1 904E3B            MOV     DPTR,#mult_key_status
+0013F4 E0                MOVX    A,@DPTR
+0013F5 B40316            CJNE    A,#03H,?C0107?KB_PROCESS
+  453: 	{
+  454: 		mult_key_status = KEY_STANDBY;
+0013F8 E4                CLR     A
+0013F9 F0                MOVX    @DPTR,A
+  455: 		mult_key_value = 0;
+0013FA 904DE3            MOV     DPTR,#mult_key_value
+0013FD F0                MOVX    @DPTR,A
+  456: 		multikey[0] = HID_REPORTID_2;	
+0013FE 904E3C            MOV     DPTR,#multikey
+001401 7402              MOV     A,#02H
+001403 F0                MOVX    @DPTR,A
+  457: 		IPC_TxHidData(multikey, 3);
+001404 7B01              MOV     R3,#01H
+001406 7A4E              MOV     R2,#HIGH multikey
+001408 793C              MOV     R1,#LOW multikey
+00140A 7D03              MOV     R5,#03H
+00140C 81B0              AJMP    _IPC_TxHidData
+  458: 	}
+00140E         ?C0107?KB_PROCESS:
+  459: 	else 
+  460: 	{
+  461: 		hidBuff[0] = HID_REPORTID_1;
+00140E 904800            MOV     DPTR,#hidBuff
+001411 7401              MOV     A,#01H
+001413 F0                MOVX    @DPTR,A
+  462: 		hidBuff[1] = pEvt->standardSel;
+001414 904EA9            MOV     DPTR,#pEvt
+001417 E0                MOVX    A,@DPTR
+001418 FB                MOV     R3,A
+001419 A3                INC     DPTR
+00141A E0                MOVX    A,@DPTR
+00141B FA                MOV     R2,A
+00141C A3                INC     DPTR
+00141D E0                MOVX    A,@DPTR
+00141E F9                MOV     R1,A
+00141F 1203B6            LCALL   ?C?CLDPTR
+001422 904801            MOV     DPTR,#hidBuff+01H
+001425 F0                MOVX    @DPTR,A
+  463: 		hidBuff[2] = 0;
+001426 E4                CLR     A
+001427 A3                INC     DPTR
+001428 F0                MOVX    @DPTR,A
+  464: 
+  465: 		standard_key_release_flag = 0;
+001429 904DD8            MOV     DPTR,#standard_key_release_flag
+00142C F0                MOVX    @DPTR,A
+  466: 
+  467: 		if (pEvt->ksPool[0] == HID_KEY_FN)
+00142D 900001            MOV     DPTR,#01H
+001430 1203CF            LCALL   ?C?CLDOPTR
+001433 B4AF1E            CJNE    A,#0AFH,?C0109?KB_PROCESS
+  468: 			xmemcpy(&hidBuff[3], &pEvt->ksPool[1], 5);
+001436 7E48              MOV     R6,#HIGH hidBuff+03H
+001438 7F03              MOV     R7,#LOW hidBuff+03H
+00143A 904EA9            MOV     DPTR,#pEvt
+00143D E0                MOVX    A,@DPTR
+00143E FB                MOV     R3,A
+00143F A3                INC     DPTR
+001440 E0                MOVX    A,@DPTR
+001441 FA                MOV     R2,A
+001442 A3                INC     DPTR
+001443 E0                MOVX    A,@DPTR
+001444 2402              ADD     A,#02H
+001446 F9                MOV     R1,A
+001447 E4                CLR     A
+001448 3A                ADDC    A,R2
+001449 FA                MOV     R2,A
+00144A 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+00144D 7405              MOV     A,#05H
+00144F F0                MOVX    @DPTR,A
+001450 5106              ACALL   _xmemcpy
+001452 801C              SJMP    ?C0110?KB_PROCESS
+001454         ?C0109?KB_PROCESS:
+  469: 		else
+  470: 			xmemcpy(&hidBuff[3], pEvt->ksPool, 6);
+001454 7E48              MOV     R6,#HIGH hidBuff+03H
+001456 7F03              MOV     R7,#LOW hidBuff+03H
+001458 904EA9            MOV     DPTR,#pEvt
+00145B E0                MOVX    A,@DPTR
+00145C FB                MOV     R3,A
+00145D A3                INC     DPTR
+00145E E0                MOVX    A,@DPTR
+00145F FA                MOV     R2,A
+001460 A3                INC     DPTR
+001461 E0                MOVX    A,@DPTR
+001462 2401              ADD     A,#01H
+001464 F9                MOV     R1,A
+001465 E4                CLR     A
+001466 3A                ADDC    A,R2
+001467 FA                MOV     R2,A
+001468 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+00146B 7406              MOV     A,#06H
+00146D F0                MOVX    @DPTR,A
+00146E 5106              ACALL   _xmemcpy
+001470         ?C0110?KB_PROCESS:
+  471: 		
+  472: 		for(i = 3; i<9;i++)
+001470 904EAD            MOV     DPTR,#i
+001473 7403              MOV     A,#03H
+001475 F0                MOVX    @DPTR,A
+001476         ?C0111?KB_PROCESS:
+001476 904EAD            MOV     DPTR,#i
+001479 E0                MOVX    A,@DPTR
+00147A FF                MOV     R7,A
+00147B C3                CLR     C
+00147C 9409              SUBB    A,#09H
+00147E 5025              JNC     ?C0112?KB_PROCESS
+  473: 		{
+  474: 			if (hidBuff[i] == HID_KEY_FN)
+001480 7400              MOV     A,#LOW hidBuff
+001482 2F                ADD     A,R7
+001483 F582              MOV     DPL,A
+001485 E4                CLR     A
+001486 3448              ADDC    A,#HIGH hidBuff
+001488 F583              MOV     DPH,A
+00148A E0                MOVX    A,@DPTR
+00148B B4AF0F            CJNE    A,#0AFH,?C0113?KB_PROCESS
+  475: 				hidBuff[i] = 0;
+00148E 904EAD            MOV     DPTR,#i
+001491 E0                MOVX    A,@DPTR
+001492 2400              ADD     A,#LOW hidBuff
+001494 F582              MOV     DPL,A
+001496 E4                CLR     A
+001497 3448              ADDC    A,#HIGH hidBuff
+001499 F583              MOV     DPH,A
+00149B E4                CLR     A
+00149C F0                MOVX    @DPTR,A
+  476: 		}
+00149D         ?C0113?KB_PROCESS:
+00149D 904EAD            MOV     DPTR,#i
+0014A0 E0                MOVX    A,@DPTR
+0014A1 04                INC     A
+0014A2 F0                MOVX    @DPTR,A
+0014A3 80D1              SJMP    ?C0111?KB_PROCESS
+0014A5         ?C0112?KB_PROCESS:
+  477: 		
+  478: 		IPC_TxHidData(hidBuff, 9);
+0014A5 7B01              MOV     R3,#01H
+0014A7 7A48              MOV     R2,#HIGH hidBuff
+0014A9 7900              MOV     R1,#LOW hidBuff
+0014AB 7D09              MOV     R5,#09H
+0014AD 91B0              ACALL   _IPC_TxHidData
+  479: 	}
+  480: 	return;
+  481: }
+0014AF         ?C0088?KB_PROCESS:
+0014AF 22                RET     
+----- FUNCTION _kb_motion_keyscan (END) -------
+
+
+----- FUNCTION _IPC_TxHidData (BEGIN) -----
+ FILE: 'kb_process.c'
+  114: void IPC_TxHidData(byte* dt, byte len)
+  115: {
+0014B0 904EBD            MOV     DPTR,#dt
+0014B3 EB                MOV     A,R3
+0014B4 F0                MOVX    @DPTR,A
+0014B5 A3                INC     DPTR
+0014B6 EA                MOV     A,R2
+0014B7 F0                MOVX    @DPTR,A
+0014B8 A3                INC     DPTR
+0014B9 E9                MOV     A,R1
+0014BA F0                MOVX    @DPTR,A
+0014BB A3                INC     DPTR
+0014BC ED                MOV     A,R5
+0014BD F0                MOVX    @DPTR,A
+  116: 	if(!YC_check_need_reconnected()) 
+  117: 		return;
+0014BE 121805            LCALL   YC_check_need_reconnected
+0014C1 EF                MOV     A,R7
+0014C2 7002              JNZ     $ + 4H
+0014C4 A16C              AJMP    ?C0028?KB_PROCESS
+0014C6         ?C0027?KB_PROCESS:
+  118: 	if (g_variable.release_data)
+0014C6 904CEB            MOV     DPTR,#g_variable+02CH
+0014C9 E0                MOVX    A,@DPTR
+0014CA 6002              JZ      $ + 4H
+0014CC A16C              AJMP    ?C0028?KB_PROCESS
+0014CE         ?C0029?KB_PROCESS:
+  119: 		return;
+  120: 
+  121: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+0014CE 904CC9            MOV     DPTR,#g_variable+0AH
+0014D1 E0                MOVX    A,@DPTR
+0014D2 B40410            CJNE    A,#04H,?C0030?KB_PROCESS
+  122: 	{
+  123: 		IPC_TxBREDRHidData(dt,len);
+0014D5 904EBD            MOV     DPTR,#dt
+0014D8 E0                MOVX    A,@DPTR
+0014D9 FB                MOV     R3,A
+0014DA A3                INC     DPTR
+0014DB E0                MOVX    A,@DPTR
+0014DC FA                MOV     R2,A
+0014DD A3                INC     DPTR
+0014DE E0                MOVX    A,@DPTR
+0014DF F9                MOV     R1,A
+0014E0 A3                INC     DPTR
+0014E1 E0                MOVX    A,@DPTR
+0014E2 FD                MOV     R5,A
+0014E3 F19F              ACALL   _IPC_TxBREDRHidData
+  124: 	}
+0014E5         ?C0030?KB_PROCESS:
+  125: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+0014E5 904CC7            MOV     DPTR,#g_variable+08H
+0014E8 E0                MOVX    A,@DPTR
+0014E9 B40410            CJNE    A,#04H,?C0031?KB_PROCESS
+  126: 	{
+  127: 		IPC_TxBleData(dt,len);
+0014EC 904EBD            MOV     DPTR,#dt
+0014EF E0                MOVX    A,@DPTR
+0014F0 FB                MOV     R3,A
+0014F1 A3                INC     DPTR
+0014F2 E0                MOVX    A,@DPTR
+0014F3 FA                MOV     R2,A
+0014F4 A3                INC     DPTR
+0014F5 E0                MOVX    A,@DPTR
+0014F6 F9                MOV     R1,A
+0014F7 A3                INC     DPTR
+0014F8 E0                MOVX    A,@DPTR
+0014F9 FD                MOV     R5,A
+0014FA F197              ACALL   _IPC_TxBleData
+  128: 	}
+0014FC         ?C0031?KB_PROCESS:
+  129: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+0014FC 904CC5            MOV     DPTR,#g_variable+06H
+0014FF E0                MOVX    A,@DPTR
+001500 6403              XRL     A,#03H
+001502 7068              JNZ     ?C0028?KB_PROCESS
+  130: 	{
+  131: 		if (dt[0] == HID_REPORTID_1)
+001504 904EBD            MOV     DPTR,#dt
+001507 E0                MOVX    A,@DPTR
+001508 FB                MOV     R3,A
+001509 A3                INC     DPTR
+00150A E0                MOVX    A,@DPTR
+00150B FA                MOV     R2,A
+00150C A3                INC     DPTR
+00150D E0                MOVX    A,@DPTR
+00150E F9                MOV     R1,A
+00150F 1203B6            LCALL   ?C?CLDPTR
+001512 FF                MOV     R7,A
+001513 6401              XRL     A,#01H
+001515 702E              JNZ     ?C0033?KB_PROCESS
+  132: 		{
+  133: 			if (dt[1] == 0 && dt[3] == 00 && dt[4] == 00 && dt[5] == 0)
+001517 900001            MOV     DPTR,#01H
+00151A 1203CF            LCALL   ?C?CLDOPTR
+00151D 701E              JNZ     ?C0034?KB_PROCESS
+00151F 900003            MOV     DPTR,#03H
+001522 1203CF            LCALL   ?C?CLDOPTR
+001525 7016              JNZ     ?C0034?KB_PROCESS
+001527 900004            MOV     DPTR,#04H
+00152A 1203CF            LCALL   ?C?CLDOPTR
+00152D 700E              JNZ     ?C0034?KB_PROCESS
+00152F 900005            MOV     DPTR,#05H
+001532 1203CF            LCALL   ?C?CLDOPTR
+001535 7006              JNZ     ?C0034?KB_PROCESS
+  134: 				repeat_send_24g = 0;
+001537 904DD6            MOV     DPTR,#repeat_send_24g
+00153A F0                MOVX    @DPTR,A
+00153B 8028              SJMP    ?C0036?KB_PROCESS
+00153D         ?C0034?KB_PROCESS:
+  135: 			else
+  136: 				repeat_send_24g = 1;			
+00153D 904DD6            MOV     DPTR,#repeat_send_24g
+001540 7401              MOV     A,#01H
+001542 F0                MOVX    @DPTR,A
+  137: 		}
+001543 8020              SJMP    ?C0036?KB_PROCESS
+001545         ?C0033?KB_PROCESS:
+  138: 		else if (dt[0] == HID_REPORTID_2)
+001545 EF                MOV     A,R7
+001546 B4021C            CJNE    A,#02H,?C0036?KB_PROCESS
+  139: 		{
+  140: 			if (dt[1] == 00 && dt[2] == 00)
+001549 900001            MOV     DPTR,#01H
+00154C 1203CF            LCALL   ?C?CLDOPTR
+00154F 700E              JNZ     ?C0038?KB_PROCESS
+001551 900002            MOV     DPTR,#02H
+001554 1203CF            LCALL   ?C?CLDOPTR
+001557 7006              JNZ     ?C0038?KB_PROCESS
+  141: 			{
+  142: 				repeat_send_24g = 0;
+001559 904DD6            MOV     DPTR,#repeat_send_24g
+00155C F0                MOVX    @DPTR,A
+  143: 			}
+00155D 8006              SJMP    ?C0036?KB_PROCESS
+00155F         ?C0038?KB_PROCESS:
+  144: 			else
+  145: 			{
+  146: 				repeat_send_24g = 1;
+00155F 904DD6            MOV     DPTR,#repeat_send_24g
+001562 7401              MOV     A,#01H
+001564 F0                MOVX    @DPTR,A
+  147: 			}
+  148: 		}
+001565         ?C0036?KB_PROCESS:
+  149: 		IPC_Tx24GData(dt,len);
+001565 904EC0            MOV     DPTR,#len
+001568 E0                MOVX    A,@DPTR
+001569 FD                MOV     R5,A
+00156A F16B              ACALL   _IPC_Tx24GData
+  150: 	}
+  151: }
+00156C         ?C0028?KB_PROCESS:
+00156C 22                RET     
+----- FUNCTION _IPC_TxHidData (END) -------
+
+
+----- FUNCTION _xmemclear (BEGIN) -----
+00156D 904EDD            MOV     DPTR,#dest
+001570 EB                MOV     A,R3
+001571 F0                MOVX    @DPTR,A
+001572 A3                INC     DPTR
+001573 EA                MOV     A,R2
+001574 F0                MOVX    @DPTR,A
+001575 A3                INC     DPTR
+001576 E9                MOV     A,R1
+001577 F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+001578         ?C0008?UTILITIES:
+001578 ED                MOV     A,R5
+001579 1D                DEC     R5
+00157A AE04              MOV     R6,AR4
+00157C 7001              JNZ     ?C0026?UTILITIES
+00157E 1C                DEC     R4
+00157F         ?C0026?UTILITIES:
+00157F 4E                ORL     A,R6
+001580 6016              JZ      ?C0010?UTILITIES
+001582 904EDD            MOV     DPTR,#dest
+001585 E0                MOVX    A,@DPTR
+001586 FB                MOV     R3,A
+001587 A3                INC     DPTR
+001588 E4                CLR     A
+001589 75F001            MOV     B,#01H
+00158C 120424            LCALL   ?C?ILDIX
+00158F A9F0              MOV     R1,B
+001591 FA                MOV     R2,A
+001592 E4                CLR     A
+001593 1203FC            LCALL   ?C?CSTPTR
+001596 80E0              SJMP    ?C0008?UTILITIES
+001598         ?C0010?UTILITIES:
+001598 22                RET     
+----- FUNCTION _xmemclear (END) -------
+
+
+----- FUNCTION System_clear_mem (BEGIN) -----
+ FILE: 'sys.c'
+   11: static void System_clear_mem()
+   12: {
+   13: 	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
+   14: 	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
+001599 7B01              MOV     R3,#01H
+00159B 7A4C              MOV     R2,#HIGH g_variable
+00159D 79BF              MOV     R1,#LOW g_variable
+00159F 7D42              MOV     R5,#042H
+0015A1 7C00              MOV     R4,#00H
+0015A3 B16D              ACALL   _xmemclear
+   15: 	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
+0015A5 7B01              MOV     R3,#01H
+0015A7 7A4D              MOV     R2,#HIGH ksSelMapOld
+0015A9 7993              MOV     R1,#LOW ksSelMapOld
+0015AB 7D14              MOV     R5,#014H
+0015AD 7C00              MOV     R4,#00H
+0015AF B16D              ACALL   _xmemclear
+   16: 	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
+0015B1 7B01              MOV     R3,#01H
+0015B3 7A4D              MOV     R2,#HIGH ksSelMapCheck
+0015B5 79A8              MOV     R1,#LOW ksSelMapCheck
+0015B7 7D14              MOV     R5,#014H
+0015B9 7C00              MOV     R4,#00H
+0015BB B16D              ACALL   _xmemclear
+   17: 	xmemclear(hidBuff,9);
+0015BD 7B01              MOV     R3,#01H
+0015BF 7A4D              MOV     R2,#HIGH ksSelMapCurr
+0015C1 79BC              MOV     R1,#LOW ksSelMapCurr
+0015C3 7D14              MOV     R5,#014H
+0015C5 7C00              MOV     R4,#00H
+0015C7 B16D              ACALL   _xmemclear
+   18: 	xmemclear(multikey,9);
+0015C9 7B01              MOV     R3,#01H
+0015CB 7A48              MOV     R2,#HIGH hidBuff
+0015CD 7900              MOV     R1,#LOW hidBuff
+0015CF 7D09              MOV     R5,#09H
+0015D1 7C00              MOV     R4,#00H
+0015D3 B16D              ACALL   _xmemclear
+   19:  
+0015D5 7B01              MOV     R3,#01H
+0015D7 7A4E              MOV     R2,#HIGH multikey
+0015D9 793C              MOV     R1,#LOW multikey
+0015DB 7D09              MOV     R5,#09H
+0015DD 7C00              MOV     R4,#00H
+0015DF B16D              ACALL   _xmemclear
+   20: 	delayChgInvTimer = 0;
+0015E1 E4                CLR     A
+0015E2 904DDE            MOV     DPTR,#delayChgInvTimer
+0015E5 F0                MOVX    @DPTR,A
+   21: 	action_timeout = 0;
+0015E6 904DE2            MOV     DPTR,#action_timeout
+0015E9 F0                MOVX    @DPTR,A
+   22: 	switch_role_timer = 0;
+0015EA 904DD4            MOV     DPTR,#switch_role_timer
+0015ED F0                MOVX    @DPTR,A
+   23: 
+   24: 	iOS_rec_pinCode = 0;
+0015EE 904DDA            MOV     DPTR,#iOS_rec_pinCode
+0015F1 F0                MOVX    @DPTR,A
+   25: 	pinCode_flag = 0;
+0015F2 904DD7            MOV     DPTR,#pinCode_flag
+0015F5 F0                MOVX    @DPTR,A
+   26: 	power_on_flag = 0;
+0015F6 904DE1            MOV     DPTR,#power_on_flag
+0015F9 F0                MOVX    @DPTR,A
+   27: 	repeat_send_24g = 0;
+0015FA 904DD6            MOV     DPTR,#repeat_send_24g
+0015FD F0                MOVX    @DPTR,A
+   28: 	get_24g_led_send = 0;
+0015FE 904DD0            MOV     DPTR,#get_24g_led_send
+001601 F0                MOVX    @DPTR,A
+   29: 	ble_reconnect_flag = 0;
+001602 904DDD            MOV     DPTR,#ble_reconnect_flag
+001605 F0                MOVX    @DPTR,A
+   30: 	press_long_time_flag = 0;
+001606 904DDC            MOV     DPTR,#press_long_time_flag
+001609 F0                MOVX    @DPTR,A
+   31: 	mult_key_status = 0;
+00160A 904E3B            MOV     DPTR,#mult_key_status
+00160D F0                MOVX    @DPTR,A
+   32: 	long_press_flag = 0;
+00160E 904DD5            MOV     DPTR,#long_press_flag
+001611 F0                MOVX    @DPTR,A
+   33: 	standard_key_release_flag = 0;
+001612 904DD8            MOV     DPTR,#standard_key_release_flag
+001615 F0                MOVX    @DPTR,A
+   34: 	fn_flag = 0;
+001616 904DDB            MOV     DPTR,#fn_flag
+001619 F0                MOVX    @DPTR,A
+   35: 	fn_flag_last = 0;
+00161A 904DE0            MOV     DPTR,#fn_flag_last
+00161D F0                MOVX    @DPTR,A
+   36: 	fn_tx_flag = 0;
+00161E 904DD3            MOV     DPTR,#fn_tx_flag
+001621 F0                MOVX    @DPTR,A
+   37: 	fn_lock_flag = 0;
+001622 904DDF            MOV     DPTR,#fn_lock_flag
+001625 F0                MOVX    @DPTR,A
+   38: 
+   39: 	mult_key_value = 0;
+001626 904DE3            MOV     DPTR,#mult_key_value
+001629 F0                MOVX    @DPTR,A
+   40: 	m_caps_num_lock_last = 0; 
+00162A 904DD9            MOV     DPTR,#m_caps_num_lock_last
+00162D F0                MOVX    @DPTR,A
+   41: 	m_reconnect_continue = 0;
+00162E 904D38            MOV     DPTR,#m_reconnect_continue
+001631 F0                MOVX    @DPTR,A
+   42: }
+001632 22                RET     
+----- FUNCTION System_clear_mem (END) -------
+
+
+----- FUNCTION kb_24g_get_led_status (BEGIN) -----
+ FILE: 'kb_process.c'
+  267: void kb_24g_get_led_status()		//get RF Ack for get numlock/capslock status
+  268: {
+  269: 	if((get_24g_led_send == 1) && (repeat_send_24g == 0))
+  270: 	{
+001633 904DD0            MOV     DPTR,#get_24g_led_send
+001636 E0                MOVX    A,@DPTR
+001637 6401              XRL     A,#01H
+001639 702F              JNZ     ?C0063?KB_PROCESS
+00163B 904DD6            MOV     DPTR,#repeat_send_24g
+00163E E0                MOVX    A,@DPTR
+00163F 7029              JNZ     ?C0063?KB_PROCESS
+  271: 		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+  272: 		{
+001641 904CC5            MOV     DPTR,#g_variable+06H
+001644 E0                MOVX    A,@DPTR
+001645 6403              XRL     A,#03H
+001647 704C              JNZ     ?C0067?KB_PROCESS
+  273: 			xmemclear(hidBuff,9);
+  274: 			IPC_TxHidData(hidBuff, 9);
+001649 7B01              MOV     R3,#01H
+00164B 7A48              MOV     R2,#HIGH hidBuff
+00164D 7900              MOV     R1,#LOW hidBuff
+00164F 7D09              MOV     R5,#09H
+001651 FC                MOV     R4,A
+001652 B16D              ACALL   _xmemclear
+  275: 			get_24g_led_send = 2;
+001654 7B01              MOV     R3,#01H
+001656 7A48              MOV     R2,#HIGH hidBuff
+001658 7900              MOV     R1,#LOW hidBuff
+00165A 7D09              MOV     R5,#09H
+00165C 91B0              ACALL   _IPC_TxHidData
+  276: 			mult_key_status = 0;
+00165E 904DD0            MOV     DPTR,#get_24g_led_send
+001661 7402              MOV     A,#02H
+001663 F0                MOVX    @DPTR,A
+  277: 		}	
+001664 E4                CLR     A
+001665 904E3B            MOV     DPTR,#mult_key_status
+001668 F0                MOVX    @DPTR,A
+  278: 	}
+  279: 	else if ((get_24g_led_send == 2) && (repeat_send_24g == 0))
+001669 22                RET     
+00166A         ?C0063?KB_PROCESS:
+  280: 	{
+00166A 904DD0            MOV     DPTR,#get_24g_led_send
+00166D E0                MOVX    A,@DPTR
+00166E B40224            CJNE    A,#02H,?C0067?KB_PROCESS
+001671 904DD6            MOV     DPTR,#repeat_send_24g
+001674 E0                MOVX    A,@DPTR
+001675 701E              JNZ     ?C0067?KB_PROCESS
+  281: 		get_24g_led_send = 0;
+  282: 		xmemclear(hidBuff,9);
+001677 904DD0            MOV     DPTR,#get_24g_led_send
+00167A F0                MOVX    @DPTR,A
+  283: 		IPC_TxHidData(hidBuff, 9);
+00167B 7B01              MOV     R3,#01H
+00167D 7A48              MOV     R2,#HIGH hidBuff
+00167F 7900              MOV     R1,#LOW hidBuff
+001681 7D09              MOV     R5,#09H
+001683 FC                MOV     R4,A
+001684 B16D              ACALL   _xmemclear
+  284: 		mult_key_status = 0;
+001686 7B01              MOV     R3,#01H
+001688 7A48              MOV     R2,#HIGH hidBuff
+00168A 7900              MOV     R1,#LOW hidBuff
+00168C 7D09              MOV     R5,#09H
+00168E 91B0              ACALL   _IPC_TxHidData
+  285: 	}
+001690 E4                CLR     A
+001691 904E3B            MOV     DPTR,#mult_key_status
+001694 F0                MOVX    @DPTR,A
+  286: }
+  287: 
+001695         ?C0067?KB_PROCESS:
+001695 22                RET     
+----- FUNCTION kb_24g_get_led_status (END) -------
+
+
+----- FUNCTION kb_motion (BEGIN) -----
+ FILE: 'kb_process.c'
+  290: static void kb_motion()
+  291: {
+  292: 	tKSEVENT *pEvt = NULL;
+  293: 	
+001696 904ED4            MOV     DPTR,#pEvt
+001699 E4                CLR     A
+00169A F0                MOVX    @DPTR,A
+00169B A3                INC     DPTR
+00169C F0                MOVX    @DPTR,A
+00169D A3                INC     DPTR
+00169E F0                MOVX    @DPTR,A
+  294: 	if (!IPC_IsTxBuffEmpty())
+00169F F1B3              ACALL   IPC_IsTxBuffEmpty
+0016A1 5025              JNC     ?C0069?KB_PROCESS
+0016A3         ?C0068?KB_PROCESS:
+  295: 		return;
+  296: 	pEvt = KS_GetCurrentEvt();
+0016A3 122543            LCALL   KS_GetCurrentEvt
+0016A6 904ED4            MOV     DPTR,#pEvt
+0016A9 EB                MOV     A,R3
+0016AA F0                MOVX    @DPTR,A
+0016AB A3                INC     DPTR
+0016AC EA                MOV     A,R2
+0016AD F0                MOVX    @DPTR,A
+0016AE A3                INC     DPTR
+0016AF E9                MOV     A,R1
+0016B0 F0                MOVX    @DPTR,A
+  297: 
+  298: 	if (pEvt == NULL)
+0016B1 4A                ORL     A,R2
+0016B2 7007              JNZ     ?C0070?KB_PROCESS
+  299: 	{
+  300: 		m_power_on_flag = 1;
+0016B4 904CB6            MOV     DPTR,#m_power_on_flag
+0016B7 04                INC     A
+0016B8 F0                MOVX    @DPTR,A
+  301: 		kb_24g_get_led_status();
+0016B9 C133              AJMP    kb_24g_get_led_status
+  302: 		return;
+  303: 	}
+0016BB         ?C0070?KB_PROCESS:
+  304: 	kb_motion_keyscan(pEvt);
+0016BB 904ED4            MOV     DPTR,#pEvt
+0016BE E0                MOVX    A,@DPTR
+0016BF FB                MOV     R3,A
+0016C0 A3                INC     DPTR
+0016C1 E0                MOVX    A,@DPTR
+0016C2 FA                MOV     R2,A
+0016C3 A3                INC     DPTR
+0016C4 E0                MOVX    A,@DPTR
+0016C5 F9                MOV     R1,A
+0016C6 5149              ACALL   _kb_motion_keyscan
+  305: }
+0016C8         ?C0069?KB_PROCESS:
+0016C8 22                RET     
+----- FUNCTION kb_motion (END) -------
+
+
+----- FUNCTION _kb_send_combination_key (BEGIN) -----
+ FILE: 'kb_process.c'
+  166: void kb_send_combination_key(byte ctrl_value,byte key_value)
+  167: {
+0016C9 904EE8            MOV     DPTR,#ctrl_value
+0016CC EF                MOV     A,R7
+0016CD F0                MOVX    @DPTR,A
+0016CE A3                INC     DPTR
+0016CF ED                MOV     A,R5
+0016D0 F0                MOVX    @DPTR,A
+  168: 	xmemclear(hidBuff,9);
+  169: 	hidBuff[0] = HID_REPORTID_1;
+0016D1 7B01              MOV     R3,#01H
+0016D3 7A48              MOV     R2,#HIGH hidBuff
+0016D5 7900              MOV     R1,#LOW hidBuff
+0016D7 7D09              MOV     R5,#09H
+0016D9 7C00              MOV     R4,#00H
+0016DB B16D              ACALL   _xmemclear
+  170: 	hidBuff[1] |= ctrl_value;
+0016DD 904800            MOV     DPTR,#hidBuff
+0016E0 7401              MOV     A,#01H
+0016E2 F0                MOVX    @DPTR,A
+  171: 	hidBuff[3] = key_value; 
+0016E3 A3                INC     DPTR
+0016E4 E0                MOVX    A,@DPTR
+0016E5 FF                MOV     R7,A
+0016E6 904EE8            MOV     DPTR,#ctrl_value
+0016E9 E0                MOVX    A,@DPTR
+0016EA FE                MOV     R6,A
+0016EB EF                MOV     A,R7
+0016EC 4E                ORL     A,R6
+0016ED 904801            MOV     DPTR,#hidBuff+01H
+0016F0 F0                MOVX    @DPTR,A
+  172: 	IPC_TxHidData(hidBuff, 9);
+0016F1 904EE9            MOV     DPTR,#key_value
+0016F4 E0                MOVX    A,@DPTR
+0016F5 904803            MOV     DPTR,#hidBuff+03H
+0016F8 F0                MOVX    @DPTR,A
+  173: }
+0016F9 7B01              MOV     R3,#01H
+0016FB 7A48              MOV     R2,#HIGH hidBuff
+0016FD 7900              MOV     R1,#LOW hidBuff
+0016FF 7D09              MOV     R5,#09H
+001701 81B0              AJMP    _IPC_TxHidData
+----- FUNCTION _kb_send_combination_key (END) -------
+
+
+----- FUNCTION kb_need_keyscan (BEGIN) -----
+ FILE: 'kb_process.c'
+  309: void kb_need_keyscan()
+  310: {
+  311: 	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+  312: 		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+001703 904CC8            MOV     DPTR,#g_variable+09H
+001706 E0                MOVX    A,@DPTR
+001707 6402              XRL     A,#02H
+001709 6007              JZ      ?C0072?KB_PROCESS
+00170B 904CCA            MOV     DPTR,#g_variable+0BH
+00170E E0                MOVX    A,@DPTR
+00170F B40203            CJNE    A,#02H,?C0071?KB_PROCESS
+001712         ?C0072?KB_PROCESS:
+  313: 	{
+  314: 		kb_bt_pincode_enter();
+001712 02279C            LJMP    kb_bt_pincode_enter
+  315: 	}
+001715         ?C0071?KB_PROCESS:
+  316: 	else
+  317: 	{
+  318: 		/*
+  319: 		//Touch_data_get();
+  320: 		if(g_variable.mouse_data_send_flag)
+  321: 		{
+  322: 			g_variable.mouse_data_send_flag = 0;
+  323: 			g_variable.delay_enter_lpm_timer = 10;
+  324: 			
+  325: 			kb_set_mouse_data();
+  326: 		}
+  327: 		else
+  328: 		*/
+  329: 		{
+  330: 		//	g_variable.sensor_x_l = 0;
+  331: 		//	g_variable.sensor_x_h = 0;
+  332: 		//	g_variable.sensor_y_l = 0;
+  333: 		//	g_variable.sensor_y_h = 0;
+  334: 		//	g_variable.sensor_wheel = 0;
+  335: 		//	g_variable.sensor_titl = 0;
+  336: 			
+  337: 			if((g_variable.key_combination_step == CAMBINATION_KEY_FREE)
+001715 904CF4            MOV     DPTR,#g_variable+035H
+001718 E0                MOVX    A,@DPTR
+001719 FF                MOV     R7,A
+00171A 6008              JZ      ?C0075?KB_PROCESS
+00171C 6401              XRL     A,#01H
+00171E 6004              JZ      ?C0075?KB_PROCESS
+001720 EF                MOV     A,R7
+001721 B40302            CJNE    A,#03H,?C0074?KB_PROCESS
+001724         ?C0075?KB_PROCESS:
+  338: 			||(g_variable.key_combination_step == CAMBINATION_KEY_PRESS)
+  339: 			||(g_variable.key_combination_step == CAMBINATION_KEY_COMPLETE)
+  340: 			)
+  341: 				kb_motion();
+001724 C196              AJMP    kb_motion
+001726         ?C0074?KB_PROCESS:
+  342: 			else
+  343: 			{
+  344: 				
+  345: 				if(g_variable.key_combination_step == CAMBINATION_KEY_HOLD)
+001726 904CF4            MOV     DPTR,#g_variable+035H
+001729 E0                MOVX    A,@DPTR
+00172A B4020B            CJNE    A,#02H,?C0077?KB_PROCESS
+  346: 				{	
+  347: 					g_variable.key_combination_step = CAMBINATION_KEY_COMPLETE;
+00172D 7403              MOV     A,#03H
+00172F F0                MOVX    @DPTR,A
+  348: 					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+001730 A3                INC     DPTR
+001731 E0                MOVX    A,@DPTR
+001732 FF                MOV     R7,A
+001733 A3                INC     DPTR
+001734 E0                MOVX    A,@DPTR
+001735 FD                MOV     R5,A
+001736 8091              SJMP    _kb_send_combination_key
+  349: 				}
+001738         ?C0077?KB_PROCESS:
+  350: 				else if(g_variable.key_combination_step == CAMBINATION_KEY_WAIT_RELEASE)
+001738 904CF4            MOV     DPTR,#g_variable+035H
+00173B E0                MOVX    A,@DPTR
+00173C B40413            CJNE    A,#04H,?C0079?KB_PROCESS
+  351: 				{
+  352: 					g_variable.key_combination_keyvalue = 0;
+00173F E4                CLR     A
+001740 904CF6            MOV     DPTR,#g_variable+037H
+001743 F0                MOVX    @DPTR,A
+  353: 					g_variable.key_combination_step = CAMBINATION_KEY_RELEASE;
+001744 904CF4            MOV     DPTR,#g_variable+035H
+001747 7405              MOV     A,#05H
+001749 F0                MOVX    @DPTR,A
+  354: 					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+00174A A3                INC     DPTR
+00174B E0                MOVX    A,@DPTR
+00174C FF                MOV     R7,A
+00174D A3                INC     DPTR
+00174E E0                MOVX    A,@DPTR
+00174F FD                MOV     R5,A
+001750 C1C9              AJMP    _kb_send_combination_key
+  355: 				}
+001752         ?C0079?KB_PROCESS:
+  356: 				else if(g_variable.key_combination_step == CAMBINATION_KEY_RELEASE)
+001752 904CF4            MOV     DPTR,#g_variable+035H
+001755 E0                MOVX    A,@DPTR
+001756 B40511            CJNE    A,#05H,?C0082?KB_PROCESS
+  357: 				{
+  358: 					g_variable.key_combination_ctrl = 0;
+001759 E4                CLR     A
+00175A A3                INC     DPTR
+00175B F0                MOVX    @DPTR,A
+  359: 					g_variable.key_combination_keyvalue = 0;
+00175C A3                INC     DPTR
+00175D F0                MOVX    @DPTR,A
+  360: 					g_variable.key_combination_step = CAMBINATION_KEY_FREE;
+00175E 904CF4            MOV     DPTR,#g_variable+035H
+001761 F0                MOVX    @DPTR,A
+  361: 					kb_send_combination_key(g_variable.key_combination_ctrl,g_variable.key_combination_keyvalue);
+001762 A3                INC     DPTR
+001763 E0                MOVX    A,@DPTR
+001764 FF                MOV     R7,A
+001765 A3                INC     DPTR
+001766 E0                MOVX    A,@DPTR
+001767 FD                MOV     R5,A
+001768 D1C9              ACALL   _kb_send_combination_key
+  362: 				}
+  363: 			}
+  364: 		}
+  365: 	}
+  366: }
+00176A         ?C0082?KB_PROCESS:
+00176A 22                RET     
+----- FUNCTION kb_need_keyscan (END) -------
+
+
+----- FUNCTION _IPC_Tx24GData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+00176B 900BE7            MOV     DPTR,#ipcSendBuff
+00176E 7406              MOV     A,#06H
+001770 F0                MOVX    @DPTR,A
+;----                  JMP     _IPC_TxData
+----- FUNCTION _IPC_Tx24GData (END) -------
+
+
+----- FUNCTION _IPC_TxData (BEGIN) -----
+001771 904EF7            MOV     DPTR,#len
+001774 ED                MOV     A,R5
+001775 F0                MOVX    @DPTR,A
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001776 E0                MOVX    A,@DPTR
+001777 FD                MOV     R5,A
+001778 900BE8            MOV     DPTR,#ipcSendBuff+01H
+00177B F0                MOVX    @DPTR,A
+00177C 7E0B              MOV     R6,#HIGH ipcSendBuff+02H
+00177E 7FE9              MOV     R7,#LOW ipcSendBuff+02H
+001780 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+001783 ED                MOV     A,R5
+001784 F0                MOVX    @DPTR,A
+001785 5106              ACALL   _xmemcpy
+001787 7B01              MOV     R3,#01H
+001789 7A0B              MOV     R2,#HIGH ipcSendBuff
+00178B 79E7              MOV     R1,#LOW ipcSendBuff
+00178D 904EF7            MOV     DPTR,#len
+001790 E0                MOVX    A,@DPTR
+001791 2402              ADD     A,#02H
+001793 FD                MOV     R5,A
+001794 020884            LJMP    _ipcTx
+----- FUNCTION _IPC_TxData (END) -------
+
+
+----- FUNCTION _IPC_TxBleData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+001797 900BE7            MOV     DPTR,#ipcSendBuff
+00179A 7405              MOV     A,#05H
+00179C F0                MOVX    @DPTR,A
+00179D 80D2              SJMP    _IPC_TxData
+----- FUNCTION _IPC_TxBleData (END) -------
+
+
+----- FUNCTION _IPC_TxBREDRHidData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+00179F 900BE7            MOV     DPTR,#ipcSendBuff
+0017A2 7403              MOV     A,#03H
+0017A4 F0                MOVX    @DPTR,A
+0017A5 ED                MOV     A,R5
+0017A6 6002              JZ      ?C0017?IPC
+0017A8         ?C0016?IPC:
+0017A8 F171              ACALL   _IPC_TxData
+0017AA         ?C0017?IPC:
+0017AA 22                RET     
+----- FUNCTION _IPC_TxBREDRHidData (END) -------
+
+
+----- FUNCTION _IPC_TxSppData (BEGIN) -----
+;---- Variable 'len' assigned to Register 'R5' ----
+;---- Variable 'dt' assigned to Register 'R1/R2/R3' ----
+0017AB 900BE7            MOV     DPTR,#ipcSendBuff
+0017AE 7404              MOV     A,#04H
+0017B0 F0                MOVX    @DPTR,A
+0017B1 80BE              SJMP    _IPC_TxData
+----- FUNCTION _IPC_TxSppData (END) -------
+
+
+----- FUNCTION IPC_IsTxBuffEmpty (BEGIN) -----
+0017B3 904B9C            MOV     DPTR,#ipcTxWritePtr
+0017B6 E0                MOVX    A,@DPTR
+0017B7 FE                MOV     R6,A
+0017B8 A3                INC     DPTR
+0017B9 E0                MOVX    A,@DPTR
+0017BA FF                MOV     R7,A
+0017BB 904B9A            MOV     DPTR,#ipcTxReadPtr
+0017BE E0                MOVX    A,@DPTR
+0017BF B50607            CJNE    A,AR6,?C0025?IPC
+0017C2 A3                INC     DPTR
+0017C3 E0                MOVX    A,@DPTR
+0017C4 B50702            CJNE    A,AR7,?C0025?IPC
+0017C7 D3                SETB    C
+0017C8 22                RET     
+0017C9         ?C0025?IPC:
+0017C9 C3                CLR     C
+0017CA 22                RET     
+----- FUNCTION IPC_IsTxBuffEmpty (END) -------
+
+
+----- FUNCTION System_Software_init (BEGIN) -----
+ FILE: 'sys.c'
+   51: void System_Software_init()
+   52: {
+   53: 	System_clear_mem();
+   54: 	YC_adc_init();
+0017CB B199              ACALL   System_clear_mem
+   55: 	g_variable.release_data =1;
+0017CD 12337C            LCALL   YC_adc_init
+   56: 	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+0017D0 904CEB            MOV     DPTR,#g_variable+02CH
+0017D3 7401              MOV     A,#01H
+0017D5 F0                MOVX    @DPTR,A
+   57: 	g_variable.recon_count = 0;
+0017D6 904CE5            MOV     DPTR,#g_variable+026H
+0017D9 741E              MOV     A,#01EH
+0017DB F0                MOVX    @DPTR,A
+   58: 	g_variable.test_buff = 0xff;
+0017DC E4                CLR     A
+0017DD 904CF0            MOV     DPTR,#g_variable+031H
+0017E0 F0                MOVX    @DPTR,A
+   59: }
+0017E1 904D00            MOV     DPTR,#g_variable+041H
+0017E4 74FF              MOV     A,#0FFH
+0017E6 F0                MOVX    @DPTR,A
+   60: 
+0017E7 22                RET     
+----- FUNCTION System_Software_init (END) -------
+
+
+----- FUNCTION YC_check_is_connected (BEGIN) -----
+ FILE: 'bluetooth.c'
+   61: byte YC_check_is_connected()
+   62: {
+   63: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED
+   64: 		|| g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED
+0017E8 904CC9            MOV     DPTR,#g_variable+0AH
+0017EB E0                MOVX    A,@DPTR
+0017EC 6404              XRL     A,#04H
+0017EE 600F              JZ      ?C0012?BLUETOOTH
+0017F0 904CC7            MOV     DPTR,#g_variable+08H
+0017F3 E0                MOVX    A,@DPTR
+0017F4 6404              XRL     A,#04H
+0017F6 6007              JZ      ?C0012?BLUETOOTH
+0017F8 904CC5            MOV     DPTR,#g_variable+06H
+0017FB E0                MOVX    A,@DPTR
+0017FC B40303            CJNE    A,#03H,?C0011?BLUETOOTH
+0017FF         ?C0012?BLUETOOTH:
+   65: 		|| g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+   66: 	{
+   67: 		return 1;
+0017FF 7F01              MOV     R7,#01H
+001801 22                RET     
+   68: 	}
+001802         ?C0011?BLUETOOTH:
+   69: 	return 0;
+001802 7F00              MOV     R7,#00H
+   70: }
+001804 22                RET     
+----- FUNCTION YC_check_is_connected (END) -------
+
+
+----- FUNCTION YC_check_need_reconnected (BEGIN) -----
+ FILE: 'bluetooth.c'
+   72: byte YC_check_need_reconnected()
+   73: {
+   74: 	byte return_val = 0;
+   75: 	 if (g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE 
+001805 E4                CLR     A
+001806 904EEF            MOV     DPTR,#return_val
+001809 F0                MOVX    @DPTR,A
+   76: 		|| g_variable.br_currentSubState == CHANGE_TO_BR_SUB_PINCODE)
+00180A 904CC8            MOV     DPTR,#g_variable+09H
+00180D E0                MOVX    A,@DPTR
+00180E 6402              XRL     A,#02H
+001810 6007              JZ      ?C0015?BLUETOOTH
+001812 904CCA            MOV     DPTR,#g_variable+0BH
+001815 E0                MOVX    A,@DPTR
+001816 B40206            CJNE    A,#02H,?C0014?BLUETOOTH
+001819         ?C0015?BLUETOOTH:
+   77: 		return return_val;
+001819 904EEF            MOV     DPTR,#return_val
+00181C E0                MOVX    A,@DPTR
+00181D FF                MOV     R7,A
+00181E 22                RET     
+00181F         ?C0014?BLUETOOTH:
+   78: #if DEVICE_MODE_BT_ONLY
+   79: 	if ((m_ui_state_map & 0x4000) == 0x4000)
+   80: #elif DEVICE_MODE_BLE_ONLY	
+   81: 	if ((m_ui_state_map & 0x0008) == 0x0008)
+00181F 9047F5            MOV     DPTR,#m_ui_state_map+01H
+001822 E0                MOVX    A,@DPTR
+001823 30E306            JNB     ACC.3,?C0017?BLUETOOTH
+   82: #else	
+   83: 	if ((m_ui_state_map & 0x4008) == 0x4008)		//ADV and DISCOVERY
+   84: #endif		
+   85: 		return return_val;
+001826 904EEF            MOV     DPTR,#return_val
+001829 E0                MOVX    A,@DPTR
+00182A FF                MOV     R7,A
+00182B 22                RET     
+00182C         ?C0017?BLUETOOTH:
+   86: 
+   87: 	if(g_variable.pairing_g24_timeout)
+00182C 904CEE            MOV     DPTR,#g_variable+02FH
+00182F E0                MOVX    A,@DPTR
+001830 6006              JZ      ?C0018?BLUETOOTH
+   88: 		return return_val;
+001832 904EEF            MOV     DPTR,#return_val
+001835 E0                MOVX    A,@DPTR
+001836 FF                MOV     R7,A
+001837 22                RET     
+001838         ?C0018?BLUETOOTH:
+   89: 
+   90: 	if ( g_variable.br_currentState == CHANGE_TO_BR_DISCONNECT
+001838 904CC9            MOV     DPTR,#g_variable+0AH
+00183B E0                MOVX    A,@DPTR
+00183C 7045              JNZ     ?C0019?BLUETOOTH
+00183E 904CC7            MOV     DPTR,#g_variable+08H
+001841 E0                MOVX    A,@DPTR
+001842 703F              JNZ     ?C0019?BLUETOOTH
+001844 904CC5            MOV     DPTR,#g_variable+06H
+001847 E0                MOVX    A,@DPTR
+001848 6403              XRL     A,#03H
+00184A 6037              JZ      ?C0019?BLUETOOTH
+   91: 		&& g_variable.ble_currentState == CHANGE_TO_BLE_DISCONNECT
+   92: 		&& g_variable.g24_currentState != CHANGE_TO_24G_CONNECTED
+   93: 	)
+   94: 	{
+   95: 		if(g_variable.recon_delay == 0)
+00184C 904CEF            MOV     DPTR,#g_variable+030H
+00184F E0                MOVX    A,@DPTR
+001850 703B              JNZ     ?C0024?BLUETOOTH
+   96: 		{
+   97: 			g_variable.recon_delay = 10;
+001852 740A              MOV     A,#0AH
+001854 F0                MOVX    @DPTR,A
+   98: 			if ((g_variable.recon_count == 0)
+001855 A3                INC     DPTR
+001856 E0                MOVX    A,@DPTR
+001857 7034              JNZ     ?C0024?BLUETOOTH
+001859 904DE1            MOV     DPTR,#power_on_flag
+00185C E0                MOVX    A,@DPTR
+00185D 6402              XRL     A,#02H
+00185F 702C              JNZ     ?C0024?BLUETOOTH
+   99: 			&& (power_on_flag == 2))
+  100: 			{				
+  101: 				if (g_variable.current_device_num >= 1 && g_variable.current_device_num <= 3)
+001861 904CC3            MOV     DPTR,#g_variable+04H
+001864 E0                MOVX    A,@DPTR
+001865 FF                MOV     R7,A
+001866 C3                CLR     C
+001867 9401              SUBB    A,#01H
+001869 400B              JC      ?C0022?BLUETOOTH
+00186B EF                MOV     A,R7
+00186C D3                SETB    C
+00186D 9403              SUBB    A,#03H
+00186F 5005              JNC     ?C0022?BLUETOOTH
+  102: 				{
+  103: 					YC_key_action_handle(g_variable.current_device_num);
+001871 120919            LCALL   _YC_key_action_handle
+  104: 				}
+001874 8017              SJMP    ?C0024?BLUETOOTH
+001876         ?C0022?BLUETOOTH:
+  105: 				else
+  106: 				{
+  107: 					YC_key_action_handle(KEY_OPEN_24G);
+001876 7F09              MOV     R7,#09H
+001878 120919            LCALL   _YC_key_action_handle
+  108: 					return_val = 1;
+00187B 904EEF            MOV     DPTR,#return_val
+00187E 7401              MOV     A,#01H
+001880 F0                MOVX    @DPTR,A
+  109: 				}
+  110: 			}
+  111: 		}
+  112: 	}
+001881 800A              SJMP    ?C0024?BLUETOOTH
+001883         ?C0019?BLUETOOTH:
+  113: 	else
+  114: 	{
+  115: 		g_variable.release_data = 0;
+001883 E4                CLR     A
+001884 904CEB            MOV     DPTR,#g_variable+02CH
+001887 F0                MOVX    @DPTR,A
+  116: 		return_val = 1;
+001888 904EEF            MOV     DPTR,#return_val
+00188B 04                INC     A
+00188C F0                MOVX    @DPTR,A
+  117: 	}
+00188D         ?C0024?BLUETOOTH:
+  118: 	return return_val;
+00188D 904EEF            MOV     DPTR,#return_val
+001890 E0                MOVX    A,@DPTR
+001891 FF                MOV     R7,A
+  119: }
+001892 22                RET     
+----- FUNCTION YC_check_need_reconnected (END) -------
+
+
+----- FUNCTION YC_cancel_reconnect (BEGIN) -----
+ FILE: 'bluetooth.c'
+  122: byte YC_cancel_reconnect()
+  123: {
+  124: 	if (g_variable.br_currentState == CHANGE_TO_BR_RECONNECT)
+  125: 	{
+001893 904CC9            MOV     DPTR,#g_variable+0AH
+001896 E0                MOVX    A,@DPTR
+001897 B40208            CJNE    A,#02H,?C0025?BLUETOOTH
+  126: 		IPC_TxControlCmd(IPC_CMD_BB_RECONN_CANCEL);
+  127: 		return 1;
+00189A 7F1E              MOV     R7,#01EH
+00189C 12085C            LCALL   _IPC_TxControlCmd
+  128: 	}
+00189F 7F01              MOV     R7,#01H
+0018A1 22                RET     
+  129: 
+0018A2         ?C0025?BLUETOOTH:
+  130: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_DIRECT_ADV)
+0018A2 904CC7            MOV     DPTR,#g_variable+08H
+0018A5 E0                MOVX    A,@DPTR
+0018A6 B40208            CJNE    A,#02H,?C0027?BLUETOOTH
+  131: 	{
+  132: 		//stop adv
+  133: 		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+0018A9 7F0E              MOV     R7,#0EH
+0018AB 12085C            LCALL   _IPC_TxControlCmd
+  134: 		return 1;
+0018AE 7F01              MOV     R7,#01H
+0018B0 22                RET     
+  135: 	}
+0018B1         ?C0027?BLUETOOTH:
+  136: 	return 0;
+0018B1 7F00              MOV     R7,#00H
+  137: }
+0018B3 22                RET     
+----- FUNCTION YC_cancel_reconnect (END) -------
+
+
+----- FUNCTION YC_disconnect_all_link (BEGIN) -----
+ FILE: 'bluetooth.c'
+  147: byte YC_disconnect_all_link()
+  148: {
+  149: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED 
+  150: 		||g_variable.br_currentState == CHANGE_TO_BR_CONNECTING)
+0018B4 904CC9            MOV     DPTR,#g_variable+0AH
+0018B7 E0                MOVX    A,@DPTR
+0018B8 FF                MOV     R7,A
+0018B9 6404              XRL     A,#04H
+0018BB 6004              JZ      ?C0030?BLUETOOTH
+0018BD EF                MOV     A,R7
+0018BE B40308            CJNE    A,#03H,?C0029?BLUETOOTH
+0018C1         ?C0030?BLUETOOTH:
+  151: 	{
+  152: 		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+0018C1 7F04              MOV     R7,#04H
+0018C3 12085C            LCALL   _IPC_TxControlCmd
+  153: 		return 1;
+0018C6 7F01              MOV     R7,#01H
+0018C8 22                RET     
+  154: 	}
+0018C9         ?C0029?BLUETOOTH:
+  155: 	if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED 
+0018C9 904CC7            MOV     DPTR,#g_variable+08H
+0018CC E0                MOVX    A,@DPTR
+0018CD FF                MOV     R7,A
+0018CE 6404              XRL     A,#04H
+0018D0 6004              JZ      ?C0033?BLUETOOTH
+0018D2 EF                MOV     A,R7
+0018D3 B40308            CJNE    A,#03H,?C0032?BLUETOOTH
+0018D6         ?C0033?BLUETOOTH:
+  156: 		||g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTING)
+  157: 	{
+  158: 		IPC_TxControlCmd(IPC_CMD_LE_DISCONNECT);
+0018D6 7F11              MOV     R7,#011H
+0018D8 12085C            LCALL   _IPC_TxControlCmd
+  159: 		return 1;
+0018DB 7F01              MOV     R7,#01H
+0018DD 22                RET     
+  160: 	}
+0018DE         ?C0032?BLUETOOTH:
+  161: 	if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED 
+0018DE 904CC5            MOV     DPTR,#g_variable+06H
+0018E1 E0                MOVX    A,@DPTR
+0018E2 FF                MOV     R7,A
+0018E3 6403              XRL     A,#03H
+0018E5 6004              JZ      ?C0035?BLUETOOTH
+0018E7 EF                MOV     A,R7
+0018E8 B40208            CJNE    A,#02H,?C0034?BLUETOOTH
+0018EB         ?C0035?BLUETOOTH:
+  162: 		||g_variable.g24_currentState == CHANGE_TO_24G_CONNECTING)
+  163: 	{
+  164: 		IPC_TxControlCmd(IPC_CMD_STOP_24G);
+0018EB 7F22              MOV     R7,#022H
+0018ED 12085C            LCALL   _IPC_TxControlCmd
+  165: 		return 1;
+0018F0 7F01              MOV     R7,#01H
+0018F2 22                RET     
+  166: 	}
+0018F3         ?C0034?BLUETOOTH:
+  167: 	return 0;
+0018F3 7F00              MOV     R7,#00H
+  168: }
+0018F5 22                RET     
+----- FUNCTION YC_disconnect_all_link (END) -------
+
+
+----- FUNCTION kb_button_press_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  556: void kb_button_press_timer500ms()
+  557: {
+  558: 	
+  559: //key status 
+  560: 	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
+0018F6 904CCE            MOV     DPTR,#g_variable+0FH
+0018F9 E0                MOVX    A,@DPTR
+0018FA 30E018            JNB     ACC.0,?C0107?SYS
+  561: 	{
+  562: 		if (g_variable.button_timer[0] < 250)
+0018FD A3                INC     DPTR
+0018FE E0                MOVX    A,@DPTR
+0018FF C3                CLR     C
+001900 94FA              SUBB    A,#0FAH
+001902 5003              JNC     ?C0108?SYS
+  563: 			g_variable.button_timer[0]++;
+001904 E0                MOVX    A,@DPTR
+001905 04                INC     A
+001906 F0                MOVX    @DPTR,A
+001907         ?C0108?SYS:
+  564: 		if (g_variable.button_timer[0] == 2)
+001907 904CCF            MOV     DPTR,#g_variable+010H
+00190A E0                MOVX    A,@DPTR
+00190B B4020C            CJNE    A,#02H,?C0110?SYS
+  565: 		{
+  566: 			YC_key_action_handle(KEY_DISCOVERY);
+00190E 7F05              MOV     R7,#05H
+001910 120919            LCALL   _YC_key_action_handle
+  567: 		}
+  568: 	}
+001913 8005              SJMP    ?C0110?SYS
+001915         ?C0107?SYS:
+  569: 	else
+  570: 		g_variable.button_timer[0] = 0;
+001915 E4                CLR     A
+001916 904CCF            MOV     DPTR,#g_variable+010H
+001919 F0                MOVX    @DPTR,A
+00191A         ?C0110?SYS:
+  571: 		
+  572: 	
+  573: 	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+00191A 904CCE            MOV     DPTR,#g_variable+0FH
+00191D E0                MOVX    A,@DPTR
+00191E 30E13E            JNB     ACC.1,?C0111?SYS
+  574: 	{
+  575: 		if (g_variable.button_timer[1] < 250)
+001921 904CD0            MOV     DPTR,#g_variable+011H
+001924 E0                MOVX    A,@DPTR
+001925 C3                CLR     C
+001926 94FA              SUBB    A,#0FAH
+001928 5003              JNC     ?C0112?SYS
+  576: 			g_variable.button_timer[1]++;
+00192A E0                MOVX    A,@DPTR
+00192B 04                INC     A
+00192C F0                MOVX    @DPTR,A
+00192D         ?C0112?SYS:
+  577: 		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+00192D 904CD0            MOV     DPTR,#g_variable+011H
+001930 E0                MOVX    A,@DPTR
+001931 64B4              XRL     A,#0B4H
+001933 702F              JNZ     ?C0117?SYS
+  578: 		{
+  579: 			press_long_time_flag++;
+001935 904DDC            MOV     DPTR,#press_long_time_flag
+001938 E0                MOVX    A,@DPTR
+001939 04                INC     A
+00193A F0                MOVX    @DPTR,A
+  580: 			if(press_long_time_flag <= 2)
+00193B E0                MOVX    A,@DPTR
+00193C D3                SETB    C
+00193D 9402              SUBB    A,#02H
+00193F 5007              JNC     ?C0114?SYS
+  581: 			{
+  582: 				g_variable.button_timer[1] = 0;
+001941 E4                CLR     A
+001942 904CD0            MOV     DPTR,#g_variable+011H
+001945 F0                MOVX    @DPTR,A
+  583: 			}
+001946 801C              SJMP    ?C0117?SYS
+001948         ?C0114?SYS:
+  584: 			else if(press_long_time_flag == 3)
+001948 904DDC            MOV     DPTR,#press_long_time_flag
+00194B E0                MOVX    A,@DPTR
+00194C B40315            CJNE    A,#03H,?C0117?SYS
+  585: 			{
+  586: 				long_press_flag = 1;
+00194F 904DD5            MOV     DPTR,#long_press_flag
+001952 7401              MOV     A,#01H
+001954 F0                MOVX    @DPTR,A
+  587: 				g_variable.button_timer[1] = 0;
+001955 E4                CLR     A
+001956 904CD0            MOV     DPTR,#g_variable+011H
+001959 F0                MOVX    @DPTR,A
+  588: 				System_long_sleep();
+00195A 120F93            LCALL   System_long_sleep
+  589: 			}
+  590: 		}
+  591: 	}
+00195D 8005              SJMP    ?C0117?SYS
+00195F         ?C0111?SYS:
+  592: 	else
+  593: 		press_long_time_flag = 0;
+00195F E4                CLR     A
+001960 904DDC            MOV     DPTR,#press_long_time_flag
+001963 F0                MOVX    @DPTR,A
+001964         ?C0117?SYS:
+  594: 		
+  595: 	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
+001964 904CCE            MOV     DPTR,#g_variable+0FH
+001967 E0                MOVX    A,@DPTR
+001968 30E431            JNB     ACC.4,?C0118?SYS
+  596: 	{
+  597: 		g_variable.delay_enter_lpm_timer = 10;
+00196B 904CEA            MOV     DPTR,#g_variable+02BH
+00196E 740A              MOV     A,#0AH
+001970 F0                MOVX    @DPTR,A
+  598: 		if (g_variable.button_timer[2] < 250)
+001971 904CD1            MOV     DPTR,#g_variable+012H
+001974 E0                MOVX    A,@DPTR
+001975 C3                CLR     C
+001976 94FA              SUBB    A,#0FAH
+001978 5003              JNC     ?C0119?SYS
+  599: 			g_variable.button_timer[2]++;
+00197A E0                MOVX    A,@DPTR
+00197B 04                INC     A
+00197C F0                MOVX    @DPTR,A
+00197D         ?C0119?SYS:
+  600: 		if (g_variable.button_timer[2] == 6)
+00197D 904CD1            MOV     DPTR,#g_variable+012H
+001980 E0                MOVX    A,@DPTR
+001981 B4061D            CJNE    A,#06H,?C0123?SYS
+  601: 		{
+  602: 			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+001984 904CC3            MOV     DPTR,#g_variable+04H
+001987 E0                MOVX    A,@DPTR
+001988 FF                MOV     R7,A
+001989 6003              JZ      ?C0122?SYS
+00198B B4FE13            CJNE    A,#0FEH,?C0123?SYS
+00198E         ?C0122?SYS:
+  603: 			{
+  604: 				YC_disconnect_all_link();
+00198E 11B4              ACALL   YC_disconnect_all_link
+  605: 				Delay1ms(10);
+001990 7F0A              MOV     R7,#0AH
+001992 120F7B            LCALL   _Delay1ms
+  606: 				YC_key_action_handle(KEY_PAIRING_24G);
+001995 7F0A              MOV     R7,#0AH
+001997 120919            LCALL   _YC_key_action_handle
+  607: 			}
+  608: 		}
+  609: 	}
+00199A 8005              SJMP    ?C0123?SYS
+00199C         ?C0118?SYS:
+  610: 	else
+  611: 		g_variable.button_timer[2] = 0;
+00199C E4                CLR     A
+00199D 904CD1            MOV     DPTR,#g_variable+012H
+0019A0 F0                MOVX    @DPTR,A
+0019A1         ?C0123?SYS:
+  612: 	
+  613: 	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
+0019A1 904CCE            MOV     DPTR,#g_variable+0FH
+0019A4 E0                MOVX    A,@DPTR
+0019A5 30E348            JNB     ACC.3,?C0124?SYS
+  614: 	{
+  615: 		g_variable.delay_enter_lpm_timer = 10;
+0019A8 904CEA            MOV     DPTR,#g_variable+02BH
+0019AB 740A              MOV     A,#0AH
+0019AD F0                MOVX    @DPTR,A
+  616: 		if (g_variable.button_timer[3] < 250)
+0019AE 904CD2            MOV     DPTR,#g_variable+013H
+0019B1 E0                MOVX    A,@DPTR
+0019B2 C3                CLR     C
+0019B3 94FA              SUBB    A,#0FAH
+0019B5 5003              JNC     ?C0125?SYS
+  617: 			g_variable.button_timer[3]++;
+0019B7 E0                MOVX    A,@DPTR
+0019B8 04                INC     A
+0019B9 F0                MOVX    @DPTR,A
+0019BA         ?C0125?SYS:
+  618: 		if (g_variable.button_timer[3] == 6)
+0019BA 904CD2            MOV     DPTR,#g_variable+013H
+0019BD E0                MOVX    A,@DPTR
+0019BE 6406              XRL     A,#06H
+0019C0 7064              JNZ     ?C0130?SYS
+  619: 		{
+  620: 			//do discoverable
+  621: 			g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+0019C2 904CE9            MOV     DPTR,#g_variable+02AH
+0019C5 74F0              MOV     A,#0F0H
+0019C7 F0                MOVX    @DPTR,A
+  622: 			g_variable.pairing_g24_timeout = 0;
+0019C8 E4                CLR     A
+0019C9 904CEE            MOV     DPTR,#g_variable+02FH
+0019CC F0                MOVX    @DPTR,A
+  623: 			YC_key_action_handle(KEY_DISCOVERY);
+0019CD 7F05              MOV     R7,#05H
+0019CF 120919            LCALL   _YC_key_action_handle
+  624: 			LED_all_shutdown();
+0019D2 120FF8            LCALL   LED_all_shutdown
+  625: 			g_variable.button_reconnect_flag = 0;
+0019D5 E4                CLR     A
+0019D6 904CCC            MOV     DPTR,#g_variable+0DH
+0019D9 F0                MOVX    @DPTR,A
+  626: 			g_variable.release_data = 1;
+0019DA 904CEB            MOV     DPTR,#g_variable+02CH
+0019DD 04                INC     A
+0019DE F0                MOVX    @DPTR,A
+  627: 			g_variable.temp_device_num = g_variable.last_device_num;
+0019DF 904CC0            MOV     DPTR,#g_variable+01H
+0019E2 E0                MOVX    A,@DPTR
+0019E3 904CC4            MOV     DPTR,#g_variable+05H
+0019E6 F0                MOVX    @DPTR,A
+  628: 			g_variable.last_device_num = g_variable.current_device_num;
+0019E7 904CC3            MOV     DPTR,#g_variable+04H
+0019EA E0                MOVX    A,@DPTR
+0019EB 904CC0            MOV     DPTR,#g_variable+01H
+0019EE F0                MOVX    @DPTR,A
+  629: 		}
+  630: 	}
+0019EF 22                RET     
+0019F0         ?C0124?SYS:
+  631: 	else
+  632: 	{
+  633: 		if (g_variable.button_reconnect_flag)
+0019F0 904CCC            MOV     DPTR,#g_variable+0DH
+0019F3 E0                MOVX    A,@DPTR
+0019F4 602B              JZ      ?C0128?SYS
+  634: 		{
+  635: 			g_variable.button_reconnect_flag = 0;
+0019F6 E4                CLR     A
+0019F7 F0                MOVX    @DPTR,A
+  636: 
+  637: 			if(g_variable.last_device_num !=g_variable.current_device_num)		//switch device,
+0019F8 904CC3            MOV     DPTR,#g_variable+04H
+0019FB E0                MOVX    A,@DPTR
+0019FC FF                MOV     R7,A
+0019FD 904CC0            MOV     DPTR,#g_variable+01H
+001A00 E0                MOVX    A,@DPTR
+001A01 6F                XRL     A,R7
+001A02 601D              JZ      ?C0128?SYS
+  638: 			{
+  639: 				g_variable.release_data = 1;
+001A04 904CEB            MOV     DPTR,#g_variable+02CH
+001A07 7401              MOV     A,#01H
+001A09 F0                MOVX    @DPTR,A
+  640: 				LED_all_shutdown();
+001A0A 120FF8            LCALL   LED_all_shutdown
+  641: 				g_variable.last_device_num = g_variable.current_device_num;
+001A0D 904CC3            MOV     DPTR,#g_variable+04H
+001A10 E0                MOVX    A,@DPTR
+001A11 904CC0            MOV     DPTR,#g_variable+01H
+001A14 F0                MOVX    @DPTR,A
+  642: 				g_variable.update_eeprom_flag = 1;
+001A15 904CBF            MOV     DPTR,#g_variable
+001A18 7401              MOV     A,#01H
+001A1A F0                MOVX    @DPTR,A
+  643: 				
+  644: 				YC_disconnect_all_link();
+001A1B 11B4              ACALL   YC_disconnect_all_link
+  645: 				YC_update_eeprom_data();
+001A1D 5127              ACALL   YC_update_eeprom_data
+  646: 				System_Reset_Connect();
+001A1F 7146              ACALL   System_Reset_Connect
+  647: 			}
+  648: 		}
+001A21         ?C0128?SYS:
+  649: 		g_variable.button_timer[3] = 0;
+001A21 E4                CLR     A
+001A22 904CD2            MOV     DPTR,#g_variable+013H
+001A25 F0                MOVX    @DPTR,A
+  650: 	}
+  651: 
+  652: 
+  653: }
+001A26         ?C0130?SYS:
+001A26 22                RET     
+----- FUNCTION kb_button_press_timer500ms (END) -------
+
+
+----- FUNCTION YC_update_eeprom_data (BEGIN) -----
+ FILE: 'bluetooth.c'
+  247: void YC_update_eeprom_data()
+  248: {
+  249: 	if (g_variable.update_eeprom_flag)				//bt3.0  bt4.2 record information save
+  250: 	{
+001A27 904CBF            MOV     DPTR,#g_variable
+001A2A E0                MOVX    A,@DPTR
+001A2B FF                MOV     R7,A
+001A2C 6068              JZ      ?C0056?BLUETOOTH
+  251: 		if (g_variable.update_eeprom_flag != 3)
+  252: 			Delay1ms(200);
+001A2E 6403              XRL     A,#03H
+001A30 6005              JZ      ?C0054?BLUETOOTH
+  253: 		GPIO_Setout(EEPROM_WP_GPIO,0);
+001A32 7FC8              MOV     R7,#0C8H
+001A34 120F7B            LCALL   _Delay1ms
+001A37         ?C0054?BLUETOOTH:
+  254: 		if (g_variable.update_eeprom_flag == 2)
+001A37 C201              CLR     ?_GPIO_Setout?BIT
+001A39 7FFF              MOV     R7,#0FFH
+001A3B 120EB2            LCALL   _GPIO_Setout
+  255: 			IIC_WriteBlock(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+001A3E 904CBF            MOV     DPTR,#g_variable
+001A41 E0                MOVX    A,@DPTR
+001A42 B40210            CJNE    A,#02H,?C0055?BLUETOOTH
+  256: 		IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,(sizeof(BD_KEY_RECORD)*3) , (byte *)&bd_key_record_list);
+001A45 7B01              MOV     R3,#01H
+001A47 7A4C              MOV     R2,#HIGH m_24g_addr
+001A49 7900              MOV     R1,#LOW m_24g_addr
+001A4B 7D04              MOV     R5,#04H
+001A4D 7C00              MOV     R4,#00H
+001A4F 7F52              MOV     R7,#052H
+001A51 7E7F              MOV     R6,#07FH
+001A53 5197              ACALL   _IIC_WriteBlock
+001A55         ?C0055?BLUETOOTH:
+  257: 		IIC_WriteBlock(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+001A55 7B01              MOV     R3,#01H
+001A57 7A4D              MOV     R2,#HIGH bd_key_record_list
+001A59 79E4              MOV     R1,#LOW bd_key_record_list
+001A5B 7D57              MOV     R5,#057H
+001A5D 7C00              MOV     R4,#00H
+001A5F 7F60              MOV     R7,#060H
+001A61 7E7F              MOV     R6,#07FH
+001A63 5197              ACALL   _IIC_WriteBlock
+  258: 		IIC_WriteBlock(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+001A65 7B01              MOV     R3,#01H
+001A67 7A4C              MOV     R2,#HIGH g_variable+01H
+001A69 79C0              MOV     R1,#LOW g_variable+01H
+001A6B 7D03              MOV     R5,#03H
+001A6D 7C00              MOV     R4,#00H
+001A6F 7FB7              MOV     R7,#0B7H
+001A71 7E7F              MOV     R6,#07FH
+001A73 5197              ACALL   _IIC_WriteBlock
+  259: 		GPIO_Setout(EEPROM_WP_GPIO,1);
+001A75 7B01              MOV     R3,#01H
+001A77 7A4C              MOV     R2,#HIGH g_variable+033H
+001A79 79F2              MOV     R1,#LOW g_variable+033H
+001A7B 7D02              MOV     R5,#02H
+001A7D 7C00              MOV     R4,#00H
+001A7F 7FBA              MOV     R7,#0BAH
+001A81 7E7F              MOV     R6,#07FH
+001A83 5197              ACALL   _IIC_WriteBlock
+  260: 		Delay1ms(10);
+001A85 D201              SETB    ?_GPIO_Setout?BIT
+001A87 7FFF              MOV     R7,#0FFH
+001A89 120EB2            LCALL   _GPIO_Setout
+  261: 		g_variable.update_eeprom_flag = 0;
+001A8C 7F0A              MOV     R7,#0AH
+001A8E 120F7B            LCALL   _Delay1ms
+  262: 	}
+001A91 E4                CLR     A
+001A92 904CBF            MOV     DPTR,#g_variable
+001A95 F0                MOVX    @DPTR,A
+  263: }
+  264: 
+001A96         ?C0056?BLUETOOTH:
+001A96 22                RET     
+----- FUNCTION YC_update_eeprom_data (END) -------
+
+
+----- FUNCTION _IIC_WriteBlock (BEGIN) -----
+001A97 904E77            MOV     DPTR,#addr
+001A9A EE                MOV     A,R6
+001A9B F0                MOVX    @DPTR,A
+001A9C A3                INC     DPTR
+001A9D EF                MOV     A,R7
+001A9E F0                MOVX    @DPTR,A
+001A9F A3                INC     DPTR
+001AA0 EC                MOV     A,R4
+001AA1 F0                MOVX    @DPTR,A
+001AA2 A3                INC     DPTR
+001AA3 ED                MOV     A,R5
+001AA4 F0                MOVX    @DPTR,A
+001AA5 A3                INC     DPTR
+001AA6 EB                MOV     A,R3
+001AA7 F0                MOVX    @DPTR,A
+001AA8 A3                INC     DPTR
+001AA9 EA                MOV     A,R2
+001AAA F0                MOVX    @DPTR,A
+001AAB A3                INC     DPTR
+001AAC E9                MOV     A,R1
+001AAD F0                MOVX    @DPTR,A
+001AAE         ?C0007?IIC:
+001AAE 904E79            MOV     DPTR,#len
+001AB1 E0                MOVX    A,@DPTR
+001AB2 7002              JNZ     ?C0012?IIC
+001AB4 A3                INC     DPTR
+001AB5 E0                MOVX    A,@DPTR
+001AB6         ?C0012?IIC:
+001AB6 7002              JNZ     $ + 4H
+001AB8 6145              AJMP    ?C0011?IIC
+001ABA 904E77            MOV     DPTR,#addr
+001ABD E0                MOVX    A,@DPTR
+001ABE FE                MOV     R6,A
+001ABF A3                INC     DPTR
+001AC0 E0                MOVX    A,@DPTR
+001AC1 FF                MOV     R7,A
+001AC2 440F              ORL     A,#0FH
+001AC4 2401              ADD     A,#01H
+001AC6 FD                MOV     R5,A
+001AC7 E4                CLR     A
+001AC8 3E                ADDC    A,R6
+001AC9 FC                MOV     R4,A
+;---- Variable 'cris' assigned to Register 'R4/R5' ----
+001ACA C3                CLR     C
+001ACB ED                MOV     A,R5
+001ACC 9F                SUBB    A,R7
+001ACD FF                MOV     R7,A
+001ACE EC                MOV     A,R4
+001ACF 9E                SUBB    A,R6
+001AD0 FE                MOV     R6,A
+001AD1 904E7E            MOV     DPTR,#curr_len
+001AD4 F0                MOVX    @DPTR,A
+001AD5 A3                INC     DPTR
+001AD6 EF                MOV     A,R7
+001AD7 F0                MOVX    @DPTR,A
+001AD8 904E79            MOV     DPTR,#len
+001ADB E0                MOVX    A,@DPTR
+001ADC FC                MOV     R4,A
+001ADD A3                INC     DPTR
+001ADE E0                MOVX    A,@DPTR
+001ADF FD                MOV     R5,A
+001AE0 D3                SETB    C
+001AE1 9F                SUBB    A,R7
+001AE2 EC                MOV     A,R4
+001AE3 9E                SUBB    A,R6
+001AE4 400A              JC      ?C0009?IIC
+001AE6 904E7E            MOV     DPTR,#curr_len
+001AE9 E0                MOVX    A,@DPTR
+001AEA FE                MOV     R6,A
+001AEB A3                INC     DPTR
+001AEC E0                MOVX    A,@DPTR
+001AED FF                MOV     R7,A
+001AEE 8004              SJMP    ?C0010?IIC
+001AF0         ?C0009?IIC:
+001AF0 AE04              MOV     R6,AR4
+001AF2 AF05              MOV     R7,AR5
+001AF4         ?C0010?IIC:
+001AF4 904E7E            MOV     DPTR,#curr_len
+001AF7 EE                MOV     A,R6
+001AF8 F0                MOVX    @DPTR,A
+001AF9 FC                MOV     R4,A
+001AFA A3                INC     DPTR
+001AFB EF                MOV     A,R7
+001AFC F0                MOVX    @DPTR,A
+001AFD FD                MOV     R5,A
+001AFE C3                CLR     C
+001AFF 904E7A            MOV     DPTR,#len+01H
+001B02 E0                MOVX    A,@DPTR
+001B03 9D                SUBB    A,R5
+001B04 F0                MOVX    @DPTR,A
+001B05 904E79            MOV     DPTR,#len
+001B08 E0                MOVX    A,@DPTR
+001B09 9C                SUBB    A,R4
+001B0A F0                MOVX    @DPTR,A
+001B0B 904E77            MOV     DPTR,#addr
+001B0E E0                MOVX    A,@DPTR
+001B0F FE                MOV     R6,A
+001B10 A3                INC     DPTR
+001B11 E0                MOVX    A,@DPTR
+001B12 FF                MOV     R7,A
+001B13 904E7B            MOV     DPTR,#pbuff
+001B16 E0                MOVX    A,@DPTR
+001B17 FB                MOV     R3,A
+001B18 A3                INC     DPTR
+001B19 E0                MOVX    A,@DPTR
+001B1A FA                MOV     R2,A
+001B1B A3                INC     DPTR
+001B1C E0                MOVX    A,@DPTR
+001B1D F9                MOV     R1,A
+001B1E 1220E8            LCALL   _IIC_write
+001B21 7F0A              MOV     R7,#0AH
+001B23 120F7B            LCALL   _Delay1ms
+001B26 904E7E            MOV     DPTR,#curr_len
+001B29 E0                MOVX    A,@DPTR
+001B2A FE                MOV     R6,A
+001B2B A3                INC     DPTR
+001B2C E0                MOVX    A,@DPTR
+001B2D FF                MOV     R7,A
+001B2E 904E7C            MOV     DPTR,#pbuff+01H
+001B31 EE                MOV     A,R6
+001B32 8FF0              MOV     B,R7
+001B34 12040E            LCALL   ?C?IILDX
+001B37 904E78            MOV     DPTR,#addr+01H
+001B3A E0                MOVX    A,@DPTR
+001B3B 2F                ADD     A,R7
+001B3C F0                MOVX    @DPTR,A
+001B3D 904E77            MOV     DPTR,#addr
+001B40 E0                MOVX    A,@DPTR
+001B41 3E                ADDC    A,R6
+001B42 F0                MOVX    @DPTR,A
+001B43 41AE              AJMP    ?C0007?IIC
+001B45         ?C0011?IIC:
+001B45 22                RET     
+----- FUNCTION _IIC_WriteBlock (END) -------
+
+
+----- FUNCTION System_Reset_Connect (BEGIN) -----
+ FILE: 'sys.c'
+   73: void System_Reset_Connect()
+;----                  JMP     System_Hardware_reset
+   74: {
+   75: 	System_Hardware_reset();
+----- FUNCTION System_Reset_Connect (END) -------
+
+
+----- FUNCTION System_Hardware_reset (BEGIN) -----
+ FILE: 'sys.c'
+   61: static void System_Hardware_reset()
+   62: {
+   63: 	m_reset_reg = 1;
+   64: 	while(1);
+001B46 908010            MOV     DPTR,#m_reset_reg
+001B49 7401              MOV     A,#01H
+001B4B F0                MOVX    @DPTR,A
+001B4C         ?C0004?SYS:
+   65: }
+001B4C 80FE              SJMP    ?C0004?SYS
+001B4E 22                RET     
+----- FUNCTION System_Hardware_reset (END) -------
+
+
+----- FUNCTION YC_System_Main (BEGIN) -----
+ FILE: 'sys.c'
+  781: void YC_System_Main(void)
+  782: {
+  783: 	kb_cb_init();
+  784: 	while(1) {
+001B4F F157              ACALL   kb_cb_init
+001B51         ?C0158?SYS:
+  785: 		IPC_DealSingleStep();
+  786: 		kb_need_keyscan();
+001B51 91FE              ACALL   IPC_DealSingleStep
+  787: 		YC_update_eeprom_data();
+001B53 121703            LCALL   kb_need_keyscan
+  788: 		LED_handle();
+001B56 5127              ACALL   YC_update_eeprom_data
+  789: 		
+001B58 1232A6            LCALL   LED_handle
+  790: 		switch (current_task) {
+001B5B 900B7E            MOV     DPTR,#current_task
+001B5E E0                MOVX    A,@DPTR
+001B5F 14                DEC     A
+001B60 600D              JZ      ?C0164?SYS
+001B62 24FE              ADD     A,#0FEH
+001B64 70EB              JNZ     ?C0158?SYS
+  791: 		case FIX_ENTER_HIBERNATE:
+001B66         ?C0161?SYS:
+  792: 			KS_Unistall();
+001B66 71A6              ACALL   KS_Unistall
+  793: 			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+  794: 			LED_all_shutdown();
+001B68 120FF8            LCALL   LED_all_shutdown
+  795: 			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+001B6B 91F0              ACALL   IPC_WaitLpm
+001B6D         ?C0162?SYS:
+  796: 			while(1);
+001B6D 80FE              SJMP    ?C0162?SYS
+  797: 			break;
+  798: 			
+  799: 		case FIX_ENTER_LPM:
+001B6F         ?C0164?SYS:
+  800: 			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.battery_low_
+>> led_flash_interval ||
+001B6F 904CEA            MOV     DPTR,#g_variable+02BH
+001B72 E0                MOVX    A,@DPTR
+001B73 7024              JNZ     ?C0166?SYS
+001B75 904CEC            MOV     DPTR,#g_variable+02DH
+001B78 E0                MOVX    A,@DPTR
+001B79 701E              JNZ     ?C0166?SYS
+001B7B 904CE5            MOV     DPTR,#g_variable+026H
+001B7E E0                MOVX    A,@DPTR
+001B7F 7018              JNZ     ?C0166?SYS
+001B81 904CE2            MOV     DPTR,#g_variable+023H
+001B84 E0                MOVX    A,@DPTR
+001B85 7012              JNZ     ?C0166?SYS
+001B87 904CE7            MOV     DPTR,#g_variable+028H
+001B8A E0                MOVX    A,@DPTR
+001B8B 700C              JNZ     ?C0166?SYS
+001B8D 904CE6            MOV     DPTR,#g_variable+027H
+001B90 E0                MOVX    A,@DPTR
+001B91 7006              JNZ     ?C0166?SYS
+001B93 904CE8            MOV     DPTR,#g_variable+029H
+001B96 E0                MOVX    A,@DPTR
+001B97 6004              JZ      ?C0165?SYS
+001B99         ?C0166?SYS:
+  801: 			g_variable.sys_capslockled_on_timer ||g_variable.sys_numlockled_on_timer || g_variable.sys_scrolllockled_on_ti
+>> mer) 
+  802: 			{
+  803: 				IPC_AbandonLpm();
+001B99 F1B1              ACALL   IPC_AbandonLpm
+  804: 				break;
+001B9B 80B4              SJMP    ?C0158?SYS
+  805: 			}
+001B9D         ?C0165?SYS:
+  806: 			else
+  807: 			{
+  808: 				KS_Unistall();
+001B9D 71A6              ACALL   KS_Unistall
+  809: 				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+001B9F 91F0              ACALL   IPC_WaitLpm
+  810: 				break;
+001BA1 80AE              SJMP    ?C0158?SYS
+  811: 			}
+  812: 		}
+  813: 	}
+001BA3 80AC              SJMP    ?C0158?SYS
+001BA5 22                RET     
+----- FUNCTION YC_System_Main (END) -------
+
+
+----- FUNCTION KS_Unistall (BEGIN) -----
+ FILE: 'keyscan.c'
+  200: void KS_Unistall()
+  201: {
+  202: 	byte i = 0;
+  203: 	byte temp = 0;
+;---- Variable 'i' assigned to Register 'R7' ----
+001BA6 E4                CLR     A
+001BA7 FF                MOV     R7,A
+  204: 	byte tgroup = 0;
+001BA8 904EF5            MOV     DPTR,#temp
+001BAB F0                MOVX    @DPTR,A
+  205: 	byte tgpionum = 0;
+;---- Variable 'tgroup' assigned to Register 'R6' ----
+001BAC FE                MOV     R6,A
+  206: 	for (i=0; col[i]!=0; i++) {
+;---- Variable 'tgpionum' assigned to Register 'R5' ----
+001BAD FD                MOV     R5,A
+  207: 		tgroup = col[i]  >> 3;
+001BAE         ?C0065?KEYSCAN:
+001BAE EF                MOV     A,R7
+001BAF 900681            MOV     DPTR,#col
+001BB2 93                MOVC    A,@A+DPTR
+001BB3 6049              JZ      ?C0066?KEYSCAN
+  208: 		tgpionum = 1 << (col[i] & 7);
+001BB5 EF                MOV     A,R7
+001BB6 93                MOVC    A,@A+DPTR
+001BB7 FD                MOV     R5,A
+001BB8 13                RRC     A
+001BB9 13                RRC     A
+001BBA 13                RRC     A
+001BBB 541F              ANL     A,#01FH
+001BBD FE                MOV     R6,A
+  209: 		REG_GPIO_PUP (tgroup) &= ~tgpionum;
+001BBE ED                MOV     A,R5
+001BBF 5407              ANL     A,#07H
+001BC1 FD                MOV     R5,A
+001BC2 7401              MOV     A,#01H
+001BC4 A805              MOV     R0,AR5
+001BC6 08                INC     R0
+001BC7 8002              SJMP    ?C0117?KEYSCAN
+001BC9         ?C0116?KEYSCAN:
+001BC9 C3                CLR     C
+001BCA 33                RLC     A
+001BCB         ?C0117?KEYSCAN:
+001BCB D8FC              DJNZ    R0,?C0116?KEYSCAN
+001BCD FD                MOV     R5,A
+  210: 		REG_GPIO_OE(tgroup) |= tgpionum;
+001BCE EE                MOV     A,R6
+001BCF 2478              ADD     A,#078H
+001BD1 FB                MOV     R3,A
+001BD2 E4                CLR     A
+001BD3 3480              ADDC    A,#080H
+001BD5 8B82              MOV     DPL,R3
+001BD7 F583              MOV     DPH,A
+001BD9 E0                MOVX    A,@DPTR
+001BDA FC                MOV     R4,A
+001BDB ED                MOV     A,R5
+001BDC F4                CPL     A
+001BDD FB                MOV     R3,A
+001BDE EC                MOV     A,R4
+001BDF 5B                ANL     A,R3
+001BE0 F0                MOVX    @DPTR,A
+  211: 		REG_GPIO_OUT(tgroup) &= ~tgpionum;
+001BE1 EE                MOV     A,R6
+001BE2 2470              ADD     A,#070H
+001BE4 F582              MOV     DPL,A
+001BE6 E4                CLR     A
+001BE7 3480              ADDC    A,#080H
+001BE9 F583              MOV     DPH,A
+001BEB E0                MOVX    A,@DPTR
+001BEC 4D                ORL     A,R5
+001BED F0                MOVX    @DPTR,A
+  212: 	}
+001BEE EE                MOV     A,R6
+001BEF 2474              ADD     A,#074H
+001BF1 F582              MOV     DPL,A
+001BF3 E4                CLR     A
+001BF4 3480              ADDC    A,#080H
+001BF6 F583              MOV     DPH,A
+001BF8 E0                MOVX    A,@DPTR
+001BF9 5B                ANL     A,R3
+001BFA F0                MOVX    @DPTR,A
+  213: 	
+001BFB 0F                INC     R7
+001BFC 80B0              SJMP    ?C0065?KEYSCAN
+001BFE         ?C0066?KEYSCAN:
+  214: 	GPIO_fillpd();
+001BFE 123598            LCALL   GPIO_fillpd
+  215: 	
+  216: 	temp = REG_GPIO_IN(0);
+001C01 90811C            MOV     DPTR,#0811CH
+001C04 E0                MOVX    A,@DPTR
+001C05 904EF5            MOV     DPTR,#temp
+001C08 F0                MOVX    @DPTR,A
+  217: 	if (g_variable.battery_status != 2)
+001C09 904CD5            MOV     DPTR,#g_variable+016H
+001C0C E0                MOVX    A,@DPTR
+001C0D 6402              XRL     A,#02H
+001C0F 6036              JZ      ?C0068?KEYSCAN
+  218: 	{
+  219: 		if(long_press_flag)
+001C11 904DD5            MOV     DPTR,#long_press_flag
+001C14 E0                MOVX    A,@DPTR
+001C15 6020              JZ      ?C0069?KEYSCAN
+  220: 		{
+  221: 			GPIO_SetWakeupByCurrentState(0);
+001C17 E4                CLR     A
+001C18 FF                MOV     R7,A
+001C19 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  222: 			GPIO_SetWakeupByCurrentState(1);
+001C1B 7F01              MOV     R7,#01H
+001C1D 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  223: 			GPIO_SetWakeupByCurrentState(2);
+001C1F 7F02              MOV     R7,#02H
+001C21 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  224: 			GPIO_SetWakeupByCurrentState(3);
+001C23 7F03              MOV     R7,#03H
+001C25 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  225: 			GPIO_SetWakeupByCurrentState(4);
+001C27 7F04              MOV     R7,#04H
+001C29 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  226: 			GPIO_SetWakeupByCurrentState(5);
+001C2B 7F05              MOV     R7,#05H
+001C2D 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  227: 			GPIO_SetWakeupByCurrentState(6);
+001C2F 7F06              MOV     R7,#06H
+001C31 9151              ACALL   _GPIO_SetWakeupByCurrentState
+  228: 			GPIO_SetWakeupByCurrentState(7);
+001C33 7F07              MOV     R7,#07H
+001C35 801A              SJMP    _GPIO_SetWakeupByCurrentState
+  229: 		}
+001C37         ?C0069?KEYSCAN:
+  230: 		else
+  231: 		{
+  232: 			YC_GPIOWakeupL[0] = temp;
+001C37 904EF5            MOV     DPTR,#temp
+001C3A E0                MOVX    A,@DPTR
+001C3B FF                MOV     R7,A
+001C3C 9000A3            MOV     DPTR,#YC_GPIOWakeupL
+001C3F F0                MOVX    @DPTR,A
+  233: 			YC_GPIOWakeupH[0] = ~temp;
+001C40 EF                MOV     A,R7
+001C41 F4                CPL     A
+001C42 9000A7            MOV     DPTR,#YC_GPIOWakeupH
+001C45 F0                MOVX    @DPTR,A
+  234: 		}
+  235: 
+  236: 	}
+001C46 22                RET     
+001C47         ?C0068?KEYSCAN:
+  237: 	else
+  238: 	{
+  239: 		YC_GPIOWakeupL[0] = 0;
+001C47 E4                CLR     A
+001C48 9000A3            MOV     DPTR,#YC_GPIOWakeupL
+001C4B F0                MOVX    @DPTR,A
+  240: 		YC_GPIOWakeupH[0] = 0;
+001C4C 9000A7            MOV     DPTR,#YC_GPIOWakeupH
+001C4F F0                MOVX    @DPTR,A
+  241: 	}
+  242: }
+001C50 22                RET     
+----- FUNCTION KS_Unistall (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeupByCurrentState (BEGIN) -----
+001C51 904EF9            MOV     DPTR,#gpio_num
+001C54 EF                MOV     A,R7
+001C55 F0                MOVX    @DPTR,A
+001C56 F16A              ACALL   _GPIO_GetInputStatus
+001C58 9208              MOV     st,C
+001C5A 904EF9            MOV     DPTR,#gpio_num
+001C5D E0                MOVX    A,@DPTR
+001C5E FF                MOV     R7,A
+001C5F A208              MOV     C,st
+001C61 B3                CPL     C
+001C62 9207              MOV     ?_GPIO_SetWakeup?BIT,C
+;----                  JMP     _GPIO_SetWakeup
+----- FUNCTION _GPIO_SetWakeupByCurrentState (END) -------
+
+
+----- FUNCTION _GPIO_SetWakeup (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001C64 EF                MOV     A,R7
+001C65 F4                CPL     A
+001C66 7002              JNZ     $ + 4H
+001C68 81EF              AJMP    ?C0019?GPIO
+001C6A         ?C0018?GPIO:
+001C6A EF                MOV     A,R7
+001C6B 5407              ANL     A,#07H
+001C6D FE                MOV     R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+001C6E EF                MOV     A,R7
+001C6F 13                RRC     A
+001C70 13                RRC     A
+001C71 13                RRC     A
+001C72 5403              ANL     A,#03H
+001C74 FF                MOV     R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+001C75 300743            JNB     st,?C0020?GPIO
+001C78 24A3              ADD     A,#LOW YC_GPIOWakeupL
+001C7A F582              MOV     DPL,A
+001C7C E4                CLR     A
+001C7D 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+001C7F F583              MOV     DPH,A
+001C81 C083              PUSH    DPH
+001C83 C082              PUSH    DPL
+001C85 E0                MOVX    A,@DPTR
+001C86 FD                MOV     R5,A
+001C87 7401              MOV     A,#01H
+001C89 A806              MOV     R0,AR6
+001C8B 08                INC     R0
+001C8C 8002              SJMP    ?C0037?GPIO
+001C8E         ?C0036?GPIO:
+001C8E C3                CLR     C
+001C8F 33                RLC     A
+001C90         ?C0037?GPIO:
+001C90 D8FC              DJNZ    R0,?C0036?GPIO
+001C92 F4                CPL     A
+001C93 5D                ANL     A,R5
+001C94 D082              POP     DPL
+001C96 D083              POP     DPH
+001C98 F0                MOVX    @DPTR,A
+001C99 74A7              MOV     A,#LOW YC_GPIOWakeupH
+001C9B 2F                ADD     A,R7
+001C9C F582              MOV     DPL,A
+001C9E E4                CLR     A
+001C9F 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+001CA1 F583              MOV     DPH,A
+001CA3 C083              PUSH    DPH
+001CA5 C082              PUSH    DPL
+001CA7 E0                MOVX    A,@DPTR
+001CA8 FF                MOV     R7,A
+001CA9 7401              MOV     A,#01H
+001CAB A806              MOV     R0,AR6
+001CAD 08                INC     R0
+001CAE 8002              SJMP    ?C0039?GPIO
+001CB0         ?C0038?GPIO:
+001CB0 C3                CLR     C
+001CB1 33                RLC     A
+001CB2         ?C0039?GPIO:
+001CB2 D8FC              DJNZ    R0,?C0038?GPIO
+001CB4 4F                ORL     A,R7
+001CB5 D082              POP     DPL
+001CB7 D083              POP     DPH
+001CB9 F0                MOVX    @DPTR,A
+001CBA 22                RET     
+001CBB         ?C0020?GPIO:
+001CBB 74A3              MOV     A,#LOW YC_GPIOWakeupL
+001CBD 2F                ADD     A,R7
+001CBE F582              MOV     DPL,A
+001CC0 E4                CLR     A
+001CC1 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+001CC3 F583              MOV     DPH,A
+001CC5 C083              PUSH    DPH
+001CC7 C082              PUSH    DPL
+001CC9 E0                MOVX    A,@DPTR
+001CCA FD                MOV     R5,A
+001CCB 7401              MOV     A,#01H
+001CCD A806              MOV     R0,AR6
+001CCF 08                INC     R0
+001CD0 8002              SJMP    ?C0041?GPIO
+001CD2         ?C0040?GPIO:
+001CD2 C3                CLR     C
+001CD3 33                RLC     A
+001CD4         ?C0041?GPIO:
+001CD4 D8FC              DJNZ    R0,?C0040?GPIO
+001CD6 FC                MOV     R4,A
+001CD7 4D                ORL     A,R5
+001CD8 D082              POP     DPL
+001CDA D083              POP     DPH
+001CDC F0                MOVX    @DPTR,A
+001CDD 74A7              MOV     A,#LOW YC_GPIOWakeupH
+001CDF 2F                ADD     A,R7
+001CE0 F582              MOV     DPL,A
+001CE2 E4                CLR     A
+001CE3 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+001CE5 F583              MOV     DPH,A
+001CE7 E0                MOVX    A,@DPTR
+001CE8 FF                MOV     R7,A
+001CE9 EC                MOV     A,R4
+001CEA F4                CPL     A
+001CEB FE                MOV     R6,A
+001CEC EF                MOV     A,R7
+001CED 5E                ANL     A,R6
+001CEE F0                MOVX    @DPTR,A
+001CEF         ?C0019?GPIO:
+001CEF 22                RET     
+----- FUNCTION _GPIO_SetWakeup (END) -------
+
+
+----- FUNCTION IPC_WaitLpm (BEGIN) -----
+001CF0 E4                CLR     A
+001CF1 900B7F            MOV     DPTR,#lpm_flag
+001CF4 F0                MOVX    @DPTR,A
+001CF5 900B7E            MOV     DPTR,#current_task
+001CF8 F0                MOVX    @DPTR,A
+001CF9 7F01              MOV     R7,#01H
+001CFB 020F7B            LJMP    _Delay1ms
+----- FUNCTION IPC_WaitLpm (END) -------
+
+
+----- FUNCTION IPC_DealSingleStep (BEGIN) -----
+001CFE 7A0C              MOV     R2,#HIGH ipcReadBuff
+001D00 794B              MOV     R1,#LOW ipcReadBuff
+001D02 904EDA            MOV     DPTR,#pbuff
+001D05 7401              MOV     A,#01H
+001D07 F0                MOVX    @DPTR,A
+001D08 A3                INC     DPTR
+001D09 740C              MOV     A,#HIGH ipcReadBuff
+001D0B F0                MOVX    @DPTR,A
+001D0C A3                INC     DPTR
+001D0D 744B              MOV     A,#LOW ipcReadBuff
+001D0F F0                MOVX    @DPTR,A
+001D10 904BA0            MOV     DPTR,#ipcRxWritePtr
+001D13 E0                MOVX    A,@DPTR
+001D14 FE                MOV     R6,A
+001D15 A3                INC     DPTR
+001D16 E0                MOVX    A,@DPTR
+001D17 FF                MOV     R7,A
+001D18 904B9E            MOV     DPTR,#ipcRxReadPtr
+001D1B E0                MOVX    A,@DPTR
+001D1C 6E                XRL     A,R6
+001D1D 7003              JNZ     ?C0048?IPC
+001D1F A3                INC     DPTR
+001D20 E0                MOVX    A,@DPTR
+001D21 6F                XRL     A,R7
+001D22         ?C0048?IPC:
+001D22 7002              JNZ     $ + 4H
+001D24 C1AD              AJMP    ?C0039?IPC
+001D26         ?C0027?IPC:
+001D26 7E0C              MOV     R6,#HIGH ipcReadBuff
+001D28 7F4B              MOV     R7,#LOW ipcReadBuff
+001D2A 7D03              MOV     R5,#03H
+001D2C F107              ACALL   _ipcRx
+001D2E 904EDA            MOV     DPTR,#pbuff
+001D31 E0                MOVX    A,@DPTR
+001D32 FB                MOV     R3,A
+001D33 A3                INC     DPTR
+001D34 E0                MOVX    A,@DPTR
+001D35 FA                MOV     R2,A
+001D36 A3                INC     DPTR
+001D37 E0                MOVX    A,@DPTR
+001D38 F9                MOV     R1,A
+001D39 1203B6            LCALL   ?C?CLDPTR
+001D3C B4022B            CJNE    A,#02H,?C0029?IPC
+001D3F 904EDB            MOV     DPTR,#pbuff+01H
+001D42 E4                CLR     A
+001D43 75F002            MOV     B,#02H
+001D46 12040E            LCALL   ?C?IILDX
+001D49 904EDA            MOV     DPTR,#pbuff
+001D4C E0                MOVX    A,@DPTR
+001D4D FB                MOV     R3,A
+001D4E A3                INC     DPTR
+001D4F E0                MOVX    A,@DPTR
+001D50 FA                MOV     R2,A
+001D51 A3                INC     DPTR
+001D52 E0                MOVX    A,@DPTR
+001D53 F9                MOV     R1,A
+001D54 1203B6            LCALL   ?C?CLDPTR
+001D57 FF                MOV     R7,A
+001D58 904E57            MOV     DPTR,#ipcCb
+001D5B E0                MOVX    A,@DPTR
+001D5C A3                INC     DPTR
+001D5D E0                MOVX    A,@DPTR
+001D5E FA                MOV     R2,A
+001D5F A3                INC     DPTR
+001D60 E0                MOVX    A,@DPTR
+001D61 F582              MOV     DPL,A
+001D63 8A83              MOV     DPH,R2
+001D65 1205DD            LCALL   ?C?ICALL2
+001D68 C1AD              AJMP    ?C0039?IPC
+001D6A         ?C0029?IPC:
+001D6A 904EDA            MOV     DPTR,#pbuff
+001D6D E0                MOVX    A,@DPTR
+001D6E FB                MOV     R3,A
+001D6F A3                INC     DPTR
+001D70 E0                MOVX    A,@DPTR
+001D71 FA                MOV     R2,A
+001D72 A3                INC     DPTR
+001D73 E0                MOVX    A,@DPTR
+001D74 F9                MOV     R1,A
+001D75 1203B6            LCALL   ?C?CLDPTR
+001D78 6404              XRL     A,#04H
+001D7A 7059              JNZ     ?C0031?IPC
+001D7C 904EDB            MOV     DPTR,#pbuff+01H
+001D7F 75F001            MOV     B,#01H
+001D82 12040E            LCALL   ?C?IILDX
+001D85 7E0C              MOV     R6,#HIGH ipcReadBuff+03H
+001D87 7F4E              MOV     R7,#LOW ipcReadBuff+03H
+001D89 904EDA            MOV     DPTR,#pbuff
+001D8C E0                MOVX    A,@DPTR
+001D8D FB                MOV     R3,A
+001D8E A3                INC     DPTR
+001D8F E0                MOVX    A,@DPTR
+001D90 FA                MOV     R2,A
+001D91 A3                INC     DPTR
+001D92 E0                MOVX    A,@DPTR
+001D93 F9                MOV     R1,A
+001D94 1203B6            LCALL   ?C?CLDPTR
+001D97 14                DEC     A
+001D98 FD                MOV     R5,A
+001D99 F107              ACALL   _ipcRx
+001D9B 904EDA            MOV     DPTR,#pbuff
+001D9E E0                MOVX    A,@DPTR
+001D9F FB                MOV     R3,A
+001DA0 A3                INC     DPTR
+001DA1 E0                MOVX    A,@DPTR
+001DA2 FA                MOV     R2,A
+001DA3 A3                INC     DPTR
+001DA4 E0                MOVX    A,@DPTR
+001DA5 2401              ADD     A,#01H
+001DA7 F9                MOV     R1,A
+001DA8 E4                CLR     A
+001DA9 3A                ADDC    A,R2
+001DAA FA                MOV     R2,A
+001DAB C002              PUSH    AR2
+001DAD C001              PUSH    AR1
+001DAF 904EDA            MOV     DPTR,#pbuff
+001DB2 E0                MOVX    A,@DPTR
+001DB3 A3                INC     DPTR
+001DB4 E0                MOVX    A,@DPTR
+001DB5 FA                MOV     R2,A
+001DB6 A3                INC     DPTR
+001DB7 E0                MOVX    A,@DPTR
+001DB8 F9                MOV     R1,A
+001DB9 1203B6            LCALL   ?C?CLDPTR
+001DBC FD                MOV     R5,A
+001DBD 7C00              MOV     R4,#00H
+001DBF 904E5A            MOV     DPTR,#ipcCb+03H
+001DC2 E0                MOVX    A,@DPTR
+001DC3 A3                INC     DPTR
+001DC4 E0                MOVX    A,@DPTR
+001DC5 FA                MOV     R2,A
+001DC6 A3                INC     DPTR
+001DC7 E0                MOVX    A,@DPTR
+001DC8 F582              MOV     DPL,A
+001DCA 8A83              MOV     DPH,R2
+001DCC D001              POP     AR1
+001DCE D002              POP     AR2
+001DD0 1205DD            LCALL   ?C?ICALL2
+001DD3 C1AD              AJMP    ?C0039?IPC
+001DD5         ?C0031?IPC:
+001DD5 904EDA            MOV     DPTR,#pbuff
+001DD8 E0                MOVX    A,@DPTR
+001DD9 FB                MOV     R3,A
+001DDA A3                INC     DPTR
+001DDB E0                MOVX    A,@DPTR
+001DDC FA                MOV     R2,A
+001DDD A3                INC     DPTR
+001DDE E0                MOVX    A,@DPTR
+001DDF F9                MOV     R1,A
+001DE0 1203B6            LCALL   ?C?CLDPTR
+001DE3 6405              XRL     A,#05H
+001DE5 7059              JNZ     ?C0033?IPC
+001DE7 904EDB            MOV     DPTR,#pbuff+01H
+001DEA 75F001            MOV     B,#01H
+001DED 12040E            LCALL   ?C?IILDX
+001DF0 7E0C              MOV     R6,#HIGH ipcReadBuff+03H
+001DF2 7F4E              MOV     R7,#LOW ipcReadBuff+03H
+001DF4 904EDA            MOV     DPTR,#pbuff
+001DF7 E0                MOVX    A,@DPTR
+001DF8 FB                MOV     R3,A
+001DF9 A3                INC     DPTR
+001DFA E0                MOVX    A,@DPTR
+001DFB FA                MOV     R2,A
+001DFC A3                INC     DPTR
+001DFD E0                MOVX    A,@DPTR
+001DFE F9                MOV     R1,A
+001DFF 1203B6            LCALL   ?C?CLDPTR
+001E02 14                DEC     A
+001E03 FD                MOV     R5,A
+001E04 F107              ACALL   _ipcRx
+001E06 904EDA            MOV     DPTR,#pbuff
+001E09 E0                MOVX    A,@DPTR
+001E0A FB                MOV     R3,A
+001E0B A3                INC     DPTR
+001E0C E0                MOVX    A,@DPTR
+001E0D FA                MOV     R2,A
+001E0E A3                INC     DPTR
+001E0F E0                MOVX    A,@DPTR
+001E10 2401              ADD     A,#01H
+001E12 F9                MOV     R1,A
+001E13 E4                CLR     A
+001E14 3A                ADDC    A,R2
+001E15 FA                MOV     R2,A
+001E16 C002              PUSH    AR2
+001E18 C001              PUSH    AR1
+001E1A 904EDA            MOV     DPTR,#pbuff
+001E1D E0                MOVX    A,@DPTR
+001E1E A3                INC     DPTR
+001E1F E0                MOVX    A,@DPTR
+001E20 FA                MOV     R2,A
+001E21 A3                INC     DPTR
+001E22 E0                MOVX    A,@DPTR
+001E23 F9                MOV     R1,A
+001E24 1203B6            LCALL   ?C?CLDPTR
+001E27 FD                MOV     R5,A
+001E28 7C00              MOV     R4,#00H
+001E2A 904E63            MOV     DPTR,#ipcCb+0CH
+001E2D E0                MOVX    A,@DPTR
+001E2E A3                INC     DPTR
+001E2F E0                MOVX    A,@DPTR
+001E30 FA                MOV     R2,A
+001E31 A3                INC     DPTR
+001E32 E0                MOVX    A,@DPTR
+001E33 F582              MOV     DPL,A
+001E35 8A83              MOV     DPH,R2
+001E37 D001              POP     AR1
+001E39 D002              POP     AR2
+001E3B 1205DD            LCALL   ?C?ICALL2
+001E3E 806D              SJMP    ?C0039?IPC
+001E40         ?C0033?IPC:
+001E40 904EDA            MOV     DPTR,#pbuff
+001E43 E0                MOVX    A,@DPTR
+001E44 FB                MOV     R3,A
+001E45 A3                INC     DPTR
+001E46 E0                MOVX    A,@DPTR
+001E47 FA                MOV     R2,A
+001E48 A3                INC     DPTR
+001E49 E0                MOVX    A,@DPTR
+001E4A F9                MOV     R1,A
+001E4B 1203B6            LCALL   ?C?CLDPTR
+001E4E 6403              XRL     A,#03H
+001E50 7059              JNZ     ?C0037?IPC
+001E52 904EDB            MOV     DPTR,#pbuff+01H
+001E55 75F001            MOV     B,#01H
+001E58 12040E            LCALL   ?C?IILDX
+001E5B 7E0C              MOV     R6,#HIGH ipcReadBuff+03H
+001E5D 7F4E              MOV     R7,#LOW ipcReadBuff+03H
+001E5F 904EDA            MOV     DPTR,#pbuff
+001E62 E0                MOVX    A,@DPTR
+001E63 FB                MOV     R3,A
+001E64 A3                INC     DPTR
+001E65 E0                MOVX    A,@DPTR
+001E66 FA                MOV     R2,A
+001E67 A3                INC     DPTR
+001E68 E0                MOVX    A,@DPTR
+001E69 F9                MOV     R1,A
+001E6A 1203B6            LCALL   ?C?CLDPTR
+001E6D 14                DEC     A
+001E6E FD                MOV     R5,A
+001E6F F107              ACALL   _ipcRx
+001E71 904EDA            MOV     DPTR,#pbuff
+001E74 E0                MOVX    A,@DPTR
+001E75 FB                MOV     R3,A
+001E76 A3                INC     DPTR
+001E77 E0                MOVX    A,@DPTR
+001E78 FA                MOV     R2,A
+001E79 A3                INC     DPTR
+001E7A E0                MOVX    A,@DPTR
+001E7B 2401              ADD     A,#01H
+001E7D F9                MOV     R1,A
+001E7E E4                CLR     A
+001E7F 3A                ADDC    A,R2
+001E80 FA                MOV     R2,A
+001E81 C002              PUSH    AR2
+001E83 C001              PUSH    AR1
+001E85 904EDA            MOV     DPTR,#pbuff
+001E88 E0                MOVX    A,@DPTR
+001E89 A3                INC     DPTR
+001E8A E0                MOVX    A,@DPTR
+001E8B FA                MOV     R2,A
+001E8C A3                INC     DPTR
+001E8D E0                MOVX    A,@DPTR
+001E8E F9                MOV     R1,A
+001E8F 1203B6            LCALL   ?C?CLDPTR
+001E92 FD                MOV     R5,A
+001E93 7C00              MOV     R4,#00H
+001E95 904E66            MOV     DPTR,#ipcCb+0FH
+001E98 E0                MOVX    A,@DPTR
+001E99 A3                INC     DPTR
+001E9A E0                MOVX    A,@DPTR
+001E9B FA                MOV     R2,A
+001E9C A3                INC     DPTR
+001E9D E0                MOVX    A,@DPTR
+001E9E F582              MOV     DPL,A
+001EA0 8A83              MOV     DPH,R2
+001EA2 D001              POP     AR1
+001EA4 D002              POP     AR2
+001EA6 1205DD            LCALL   ?C?ICALL2
+001EA9 8002              SJMP    ?C0039?IPC
+001EAB         ?C0037?IPC:
+001EAB 80FE              SJMP    ?C0037?IPC
+001EAD         IPC_TIMER:
+001EAD         ?C0039?IPC:
+001EAD 904BA5            MOV     DPTR,#bttimer
+001EB0 E0                MOVX    A,@DPTR
+001EB1 FE                MOV     R6,A
+001EB2 A3                INC     DPTR
+001EB3 E0                MOVX    A,@DPTR
+001EB4 FF                MOV     R7,A
+001EB5 904C5E            MOV     DPTR,#c51timer
+001EB8 E0                MOVX    A,@DPTR
+001EB9 6E                XRL     A,R6
+001EBA 7003              JNZ     ?C0049?IPC
+001EBC A3                INC     DPTR
+001EBD E0                MOVX    A,@DPTR
+001EBE 6F                XRL     A,R7
+001EBF         ?C0049?IPC:
+001EBF 6022              JZ      ?C0043?IPC
+001EC1 904E5D            MOV     DPTR,#ipcCb+06H
+001EC4 E0                MOVX    A,@DPTR
+001EC5 FB                MOV     R3,A
+001EC6 A3                INC     DPTR
+001EC7 E0                MOVX    A,@DPTR
+001EC8 FA                MOV     R2,A
+001EC9 A3                INC     DPTR
+001ECA E0                MOVX    A,@DPTR
+001ECB F9                MOV     R1,A
+001ECC 4A                ORL     A,R2
+001ECD 6037              JZ      ?C0042?IPC
+001ECF         ?C0041?IPC:
+001ECF 1205D9            LCALL   ?C?ICALL
+001ED2 904BA5            MOV     DPTR,#bttimer
+001ED5 E0                MOVX    A,@DPTR
+001ED6 FF                MOV     R7,A
+001ED7 A3                INC     DPTR
+001ED8 E0                MOVX    A,@DPTR
+001ED9 904C5E            MOV     DPTR,#c51timer
+001EDC CF                XCH     A,R7
+001EDD F0                MOVX    @DPTR,A
+001EDE A3                INC     DPTR
+001EDF EF                MOV     A,R7
+001EE0 F0                MOVX    @DPTR,A
+001EE1 80CA              SJMP    ?C0039?IPC
+001EE3         ?C0043?IPC:
+001EE3 904C8D            MOV     DPTR,#btstimer
+001EE6 E0                MOVX    A,@DPTR
+001EE7 FF                MOV     R7,A
+001EE8 A3                INC     DPTR
+001EE9 E0                MOVX    A,@DPTR
+001EEA 6F                XRL     A,R7
+001EEB 6019              JZ      ?C0042?IPC
+001EED 904E60            MOV     DPTR,#ipcCb+09H
+001EF0 E0                MOVX    A,@DPTR
+001EF1 FB                MOV     R3,A
+001EF2 A3                INC     DPTR
+001EF3 E0                MOVX    A,@DPTR
+001EF4 FA                MOV     R2,A
+001EF5 A3                INC     DPTR
+001EF6 E0                MOVX    A,@DPTR
+001EF7 F9                MOV     R1,A
+001EF8 4A                ORL     A,R2
+001EF9 600B              JZ      ?C0042?IPC
+001EFB         ?C0045?IPC:
+001EFB 1205D9            LCALL   ?C?ICALL
+001EFE 904C8D            MOV     DPTR,#btstimer
+001F01 E0                MOVX    A,@DPTR
+001F02 A3                INC     DPTR
+001F03 F0                MOVX    @DPTR,A
+001F04 80DD              SJMP    ?C0043?IPC
+001F06         ?C0042?IPC:
+001F06 22                RET     
+----- FUNCTION IPC_DealSingleStep (END) -------
+
+
+----- FUNCTION _ipcRx (BEGIN) -----
+001F07 904EEC            MOV     DPTR,#dest
+001F0A EE                MOV     A,R6
+001F0B F0                MOVX    @DPTR,A
+001F0C A3                INC     DPTR
+001F0D EF                MOV     A,R7
+001F0E F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R1' ----
+001F0F A905              MOV     R1,AR5
+001F11 904B9E            MOV     DPTR,#ipcRxReadPtr
+001F14 E0                MOVX    A,@DPTR
+001F15 FE                MOV     R6,A
+001F16 A3                INC     DPTR
+001F17 E0                MOVX    A,@DPTR
+001F18 FF                MOV     R7,A
+;---- Variable 'src' assigned to Register 'R6/R7' ----
+001F19         ?C0004?IPC:
+001F19 AD01              MOV     R5,AR1
+001F1B 19                DEC     R1
+001F1C ED                MOV     A,R5
+001F1D 602F              JZ      ?C0005?IPC
+001F1F 0F                INC     R7
+001F20 EF                MOV     A,R7
+001F21 AC06              MOV     R4,AR6
+001F23 7001              JNZ     ?C0046?IPC
+001F25 0E                INC     R6
+001F26         ?C0046?IPC:
+001F26 14                DEC     A
+001F27 F582              MOV     DPL,A
+001F29 8C83              MOV     DPH,R4
+001F2B E0                MOVX    A,@DPTR
+001F2C FD                MOV     R5,A
+001F2D 904EEC            MOV     DPTR,#dest
+001F30 E4                CLR     A
+001F31 75F001            MOV     B,#01H
+001F34 120424            LCALL   ?C?ILDIX
+001F37 85F082            MOV     DPL,B
+001F3A F583              MOV     DPH,A
+001F3C ED                MOV     A,R5
+001F3D F0                MOVX    @DPTR,A
+001F3E AD07              MOV     R5,AR7
+001F40 AC06              MOV     R4,AR6
+001F42 BC4BD4            CJNE    R4,#04BH,?C0004?IPC
+001F45 BD9AD1            CJNE    R5,#09AH,?C0004?IPC
+001F48 7E4B              MOV     R6,#04BH
+001F4A 7F36              MOV     R7,#036H
+001F4C 80CB              SJMP    ?C0004?IPC
+001F4E         ?C0005?IPC:
+001F4E 904B9E            MOV     DPTR,#ipcRxReadPtr
+001F51 EE                MOV     A,R6
+001F52 F0                MOVX    @DPTR,A
+001F53 A3                INC     DPTR
+001F54 EF                MOV     A,R7
+001F55 F0                MOVX    @DPTR,A
+001F56 22                RET     
+----- FUNCTION _ipcRx (END) -------
+
+
+----- FUNCTION kb_cb_init (BEGIN) -----
+ FILE: 'sys.c'
+  774: static void kb_cb_init()
+  775: {
+  776: 	IPC_Initialize(&cb);
+  777: }
+001F57 7B01              MOV     R3,#01H
+001F59 7A4E              MOV     R2,#HIGH cb
+001F5B 7945              MOV     R1,#LOW cb
+;----                  JMP     _IPC_Initialize
+----- FUNCTION kb_cb_init (END) -------
+
+
+----- FUNCTION _IPC_Initialize (BEGIN) -----
+;---- Variable 'cb' assigned to Register 'R1/R2/R3' ----
+001F5D 7857              MOV     R0,#LOW ipcCb
+001F5F 7C4E              MOV     R4,#HIGH ipcCb
+001F61 7D01              MOV     R5,#01H
+001F63 7E00              MOV     R6,#00H
+001F65 7F12              MOV     R7,#012H
+001F67 020390            LJMP    ?C?COPY
+----- FUNCTION _IPC_Initialize (END) -------
+
+
+----- FUNCTION _GPIO_GetInputStatus (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+001F6A 7B01              MOV     R3,#01H
+001F6C 7A81              MOV     R2,#081H
+001F6E 791C              MOV     R1,#01CH
+;----                  JMP     _gpioGetBit
+----- FUNCTION _GPIO_GetInputStatus (END) -------
+
+
+----- FUNCTION _gpioGetBit (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R5' ----
+001F70 AD07              MOV     R5,AR7
+;---- Variable 'reg_base' assigned to Register 'R1/R2/R3' ----
+001F72 E4                CLR     A
+001F73 904EF8            MOV     DPTR,#queue
+001F76 F0                MOVX    @DPTR,A
+;---- Variable 'group' assigned to Register 'R6' ----
+001F77 FE                MOV     R6,A
+001F78 EF                MOV     A,R7
+001F79 5407              ANL     A,#07H
+001F7B F0                MOVX    @DPTR,A
+001F7C EF                MOV     A,R7
+001F7D 13                RRC     A
+001F7E 13                RRC     A
+001F7F 13                RRC     A
+001F80 5403              ANL     A,#03H
+001F82 FE                MOV     R6,A
+001F83 F582              MOV     DPL,A
+001F85 758300            MOV     DPH,#00H
+001F88 1203CF            LCALL   ?C?CLDOPTR
+001F8B FD                MOV     R5,A
+001F8C 33                RLC     A
+001F8D 95E0              SUBB    A,ACC
+001F8F FC                MOV     R4,A
+001F90 904EF8            MOV     DPTR,#queue
+001F93 E0                MOVX    A,@DPTR
+001F94 FF                MOV     R7,A
+001F95 7401              MOV     A,#01H
+001F97 7E00              MOV     R6,#00H
+001F99 A807              MOV     R0,AR7
+001F9B 08                INC     R0
+001F9C 8005              SJMP    ?C0035?GPIO
+001F9E         ?C0034?GPIO:
+001F9E C3                CLR     C
+001F9F 33                RLC     A
+001FA0 CE                XCH     A,R6
+001FA1 33                RLC     A
+001FA2 CE                XCH     A,R6
+001FA3         ?C0035?GPIO:
+001FA3 D8F9              DJNZ    R0,?C0034?GPIO
+001FA5 FF                MOV     R7,A
+001FA6 EE                MOV     A,R6
+001FA7 5C                ANL     A,R4
+001FA8 FE                MOV     R6,A
+001FA9 EF                MOV     A,R7
+001FAA 5D                ANL     A,R5
+001FAB 4E                ORL     A,R6
+001FAC 24FF              ADD     A,#0FFH
+001FAE 22                RET     
+----- FUNCTION _gpioGetBit (END) -------
+
+
+----- FUNCTION main (BEGIN) -----
+ FILE: 'ram.c'
+    5: void main()
+    6: {
+    7: 	YC_System_Main();
+    8: }
+001FAF 614F              AJMP    YC_System_Main
+----- FUNCTION main (END) -------
+
+
+----- FUNCTION IPC_AbandonLpm (BEGIN) -----
+001FB1 900B7F            MOV     DPTR,#lpm_flag
+001FB4 7401              MOV     A,#01H
+001FB6 F0                MOVX    @DPTR,A
+001FB7 E4                CLR     A
+001FB8 900B7E            MOV     DPTR,#current_task
+001FBB F0                MOVX    @DPTR,A
+001FBC 22                RET     
+----- FUNCTION IPC_AbandonLpm (END) -------
+
+
+----- FUNCTION YC_start_reconnect (BEGIN) -----
+ FILE: 'bluetooth.c'
+  171: void YC_start_reconnect()
+  172: {
+  173: 	power_on_flag = 2;
+  174: 	if(g_variable.last_device_num > 3)
+001FBD 904DE1            MOV     DPTR,#power_on_flag
+001FC0 7402              MOV     A,#02H
+001FC2 F0                MOVX    @DPTR,A
+  175: 		g_variable.last_device_num = 0;
+001FC3 904CC0            MOV     DPTR,#g_variable+01H
+001FC6 E0                MOVX    A,@DPTR
+001FC7 D3                SETB    C
+001FC8 9403              SUBB    A,#03H
+001FCA 4002              JC      ?C0036?BLUETOOTH
+  176: 	g_variable.current_device_num = g_variable.last_device_num;
+001FCC E4                CLR     A
+001FCD F0                MOVX    @DPTR,A
+001FCE         ?C0036?BLUETOOTH:
+  177: 	
+001FCE 904CC0            MOV     DPTR,#g_variable+01H
+001FD1 E0                MOVX    A,@DPTR
+001FD2 904CC3            MOV     DPTR,#g_variable+04H
+001FD5 F0                MOVX    @DPTR,A
+  178: 	if (g_variable.current_device_num <= 3 && g_variable.current_device_num >= 1)
+001FD6 D3                SETB    C
+001FD7 9403              SUBB    A,#03H
+001FD9 500A              JNC     ?C0037?BLUETOOTH
+001FDB E0                MOVX    A,@DPTR
+001FDC FF                MOV     R7,A
+001FDD C3                CLR     C
+001FDE 9401              SUBB    A,#01H
+001FE0 4003              JC      ?C0037?BLUETOOTH
+  179: 	{
+  180: 		YC_key_action_handle(g_variable.current_device_num);
+001FE2 020919            LJMP    _YC_key_action_handle
+  181: 	}
+001FE5         ?C0037?BLUETOOTH:
+  182: 	else	
+  183: 	{
+  184: 		if (m_24g_addr[0] == 0xff && m_24g_addr[1] == 0xff && m_24g_addr[2] == 0xff && m_24g_addr[3] == 0xff)
+001FE5 904C00            MOV     DPTR,#m_24g_addr
+001FE8 E0                MOVX    A,@DPTR
+001FE9 B4FF14            CJNE    A,#0FFH,?C0039?BLUETOOTH
+001FEC A3                INC     DPTR
+001FED E0                MOVX    A,@DPTR
+001FEE B4FF0F            CJNE    A,#0FFH,?C0039?BLUETOOTH
+001FF1 A3                INC     DPTR
+001FF2 E0                MOVX    A,@DPTR
+001FF3 B4FF0A            CJNE    A,#0FFH,?C0039?BLUETOOTH
+001FF6 A3                INC     DPTR
+001FF7 E0                MOVX    A,@DPTR
+001FF8 B4FF05            CJNE    A,#0FFH,?C0039?BLUETOOTH
+  185: 		{
+  186: 			YC_key_action_handle(KEY_RECON_0);		// bt fast connect
+001FFB 7F01              MOV     R7,#01H
+001FFD 020919            LJMP    _YC_key_action_handle
+  187: 		}
+002000         ?C0039?BLUETOOTH:
+  188: 		else
+  189: 		{
+  190: 			YC_key_action_handle(KEY_START_24G);
+002000 7F08              MOV     R7,#08H
+002002 020919            LJMP    _YC_key_action_handle
+  191: 		}
+  192: 	}
+----- FUNCTION YC_start_reconnect (END) -------
+
+
+----- FUNCTION YC_get_ble_ramdon_lap (BEGIN) -----
+ FILE: 'bluetooth.c'
+  197: void YC_get_ble_ramdon_lap()		
+  198: {
+  199: 	IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+  200: 	g_variable.ble_ramdon_lap1++;
+002005 7B01              MOV     R3,#01H
+002007 7A4C              MOV     R2,#HIGH g_variable+033H
+002009 79F2              MOV     R1,#LOW g_variable+033H
+00200B 7D02              MOV     R5,#02H
+00200D 7C00              MOV     R4,#00H
+00200F 7FBA              MOV     R7,#0BAH
+002011 7E7F              MOV     R6,#07FH
+002013 1130              ACALL   _IIC_Read
+  201: 	g_variable.ble_ramdon_lap2++;
+002015 904CF2            MOV     DPTR,#g_variable+033H
+002018 E0                MOVX    A,@DPTR
+002019 04                INC     A
+00201A F0                MOVX    @DPTR,A
+  202: 	m_le_lap[1] = g_variable.ble_ramdon_lap1;
+00201B A3                INC     DPTR
+00201C E0                MOVX    A,@DPTR
+00201D 04                INC     A
+00201E F0                MOVX    @DPTR,A
+  203: 	m_le_lap[2] = g_variable.ble_ramdon_lap2;
+00201F 904CF2            MOV     DPTR,#g_variable+033H
+002022 E0                MOVX    A,@DPTR
+002023 9044FA            MOV     DPTR,#m_le_lap+01H
+002026 F0                MOVX    @DPTR,A
+  204: }
+002027 904CF3            MOV     DPTR,#g_variable+034H
+00202A E0                MOVX    A,@DPTR
+00202B 9044FB            MOV     DPTR,#m_le_lap+02H
+00202E F0                MOVX    @DPTR,A
+  205: 
+00202F 22                RET     
+----- FUNCTION YC_get_ble_ramdon_lap (END) -------
+
+
+----- FUNCTION _IIC_Read (BEGIN) -----
+002030 904EB8            MOV     DPTR,#len
+002033 EC                MOV     A,R4
+002034 F0                MOVX    @DPTR,A
+002035 A3                INC     DPTR
+002036 ED                MOV     A,R5
+002037 F0                MOVX    @DPTR,A
+002038 A3                INC     DPTR
+002039 EB                MOV     A,R3
+00203A F0                MOVX    @DPTR,A
+00203B A3                INC     DPTR
+00203C EA                MOV     A,R2
+00203D F0                MOVX    @DPTR,A
+00203E A3                INC     DPTR
+00203F E9                MOV     A,R1
+002040 F0                MOVX    @DPTR,A
+;---- Variable 'addr' assigned to Register 'R6/R7' ----
+;---- Variable 'mem_src' assigned to Register 'R6/R7' ----
+002041 908098            MOV     DPTR,#08098H
+002044 7404              MOV     A,#04H
+002046 F0                MOVX    @DPTR,A
+002047 A3                INC     DPTR
+002048 E4                CLR     A
+002049 F0                MOVX    @DPTR,A
+00204A 900CAF            MOV     DPTR,#YC_IICDTbuf
+00204D 74A0              MOV     A,#0A0H
+00204F F0                MOVX    @DPTR,A
+002050 A3                INC     DPTR
+002051 EE                MOV     A,R6
+002052 F0                MOVX    @DPTR,A
+002053 A3                INC     DPTR
+002054 EF                MOV     A,R7
+002055 F0                MOVX    @DPTR,A
+002056 900CB2            MOV     DPTR,#YC_IICDTbuf+03H
+002059 74A1              MOV     A,#0A1H
+00205B F0                MOVX    @DPTR,A
+00205C 7A0C              MOV     R2,#HIGH YC_IICDTbuf
+00205E 79AF              MOV     R1,#LOW YC_IICDTbuf
+002060 7E0C              MOV     R6,#HIGH YC_IICDTbuf
+002062 7FAF              MOV     R7,#LOW YC_IICDTbuf
+002064 74AF              MOV     A,#LOW YC_IICDTbuf
+002066 FC                MOV     R4,A
+002067 740C              MOV     A,#HIGH YC_IICDTbuf
+002069 FF                MOV     R7,A
+00206A EC                MOV     A,R4
+00206B FE                MOV     R6,A
+00206C EF                MOV     A,R7
+00206D 90809A            MOV     DPTR,#0809AH
+002070 EE                MOV     A,R6
+002071 F0                MOVX    @DPTR,A
+002072 A3                INC     DPTR
+002073 EF                MOV     A,R7
+002074 F0                MOVX    @DPTR,A
+002075 904EB8            MOV     DPTR,#len
+002078 E0                MOVX    A,@DPTR
+002079 FC                MOV     R4,A
+00207A A3                INC     DPTR
+00207B E0                MOVX    A,@DPTR
+00207C FA                MOV     R2,A
+00207D EC                MOV     A,R4
+00207E FF                MOV     R7,A
+00207F EA                MOV     A,R2
+002080 FE                MOV     R6,A
+002081 EF                MOV     A,R7
+002082 90809E            MOV     DPTR,#0809EH
+002085 EE                MOV     A,R6
+002086 F0                MOVX    @DPTR,A
+002087 A3                INC     DPTR
+002088 EF                MOV     A,R7
+002089 F0                MOVX    @DPTR,A
+00208A 7A0B              MOV     R2,#HIGH IIC_TempBuff
+00208C 7983              MOV     R1,#LOW IIC_TempBuff
+00208E 7E0B              MOV     R6,#HIGH IIC_TempBuff
+002090 7F83              MOV     R7,#LOW IIC_TempBuff
+002092 7483              MOV     A,#LOW IIC_TempBuff
+002094 FC                MOV     R4,A
+002095 740B              MOV     A,#HIGH IIC_TempBuff
+002097 FF                MOV     R7,A
+002098 EC                MOV     A,R4
+002099 FE                MOV     R6,A
+00209A EF                MOV     A,R7
+00209B 90809C            MOV     DPTR,#0809CH
+00209E EE                MOV     A,R6
+00209F F0                MOVX    @DPTR,A
+0020A0 A3                INC     DPTR
+0020A1 EF                MOV     A,R7
+0020A2 F0                MOVX    @DPTR,A
+0020A3 908090            MOV     DPTR,#08090H
+0020A6 7402              MOV     A,#02H
+0020A8 F0                MOVX    @DPTR,A
+0020A9 90809C            MOV     DPTR,#0809CH
+0020AC A3                INC     DPTR
+0020AD E0                MOVX    A,@DPTR
+0020AE 20E707            JB      ACC.7,?C0004?IIC
+0020B1 908090            MOV     DPTR,#08090H
+0020B4 E0                MOVX    A,@DPTR
+0020B5 4401              ORL     A,#01H
+0020B7 F0                MOVX    @DPTR,A
+0020B8         ?C0004?IIC:
+0020B8 908006            MOV     DPTR,#08006H
+0020BB E0                MOVX    A,@DPTR
+0020BC 4404              ORL     A,#04H
+0020BE F0                MOVX    @DPTR,A
+0020BF 11E0              ACALL   IIcWaitDone
+0020C1 904EBA            MOV     DPTR,#pbuff
+0020C4 E0                MOVX    A,@DPTR
+0020C5 A3                INC     DPTR
+0020C6 E0                MOVX    A,@DPTR
+0020C7 FA                MOV     R2,A
+0020C8 A3                INC     DPTR
+0020C9 E0                MOVX    A,@DPTR
+0020CA AE02              MOV     R6,AR2
+0020CC FF                MOV     R7,A
+0020CD 7B01              MOV     R3,#01H
+0020CF 7A0B              MOV     R2,#HIGH IIC_TempBuff
+0020D1 7983              MOV     R1,#LOW IIC_TempBuff
+0020D3 904EB8            MOV     DPTR,#len
+0020D6 E0                MOVX    A,@DPTR
+0020D7 A3                INC     DPTR
+0020D8 E0                MOVX    A,@DPTR
+0020D9 904EA8            MOV     DPTR,#?_xmemcpy?BYTE+05H
+0020DC F0                MOVX    @DPTR,A
+0020DD 021206            LJMP    _xmemcpy
+----- FUNCTION _IIC_Read (END) -------
+
+
+----- FUNCTION IIcWaitDone (BEGIN) -----
+0020E0         ?C0001?IIC:
+0020E0 90812C            MOV     DPTR,#0812CH
+0020E3 E0                MOVX    A,@DPTR
+0020E4 30E5F9            JNB     ACC.5,?C0001?IIC
+0020E7 22                RET     
+----- FUNCTION IIcWaitDone (END) -------
+
+
+----- FUNCTION _IIC_write (BEGIN) -----
+0020E8 904E96            MOV     DPTR,#addr
+0020EB EE                MOV     A,R6
+0020EC F0                MOVX    @DPTR,A
+0020ED A3                INC     DPTR
+0020EE EF                MOV     A,R7
+0020EF F0                MOVX    @DPTR,A
+0020F0 904E9A            MOV     DPTR,#pbuff
+0020F3 EB                MOV     A,R3
+0020F4 F0                MOVX    @DPTR,A
+0020F5 A3                INC     DPTR
+0020F6 EA                MOV     A,R2
+0020F7 F0                MOVX    @DPTR,A
+0020F8 A3                INC     DPTR
+0020F9 E9                MOV     A,R1
+0020FA F0                MOVX    @DPTR,A
+0020FB 904E98            MOV     DPTR,#len
+0020FE EC                MOV     A,R4
+0020FF F0                MOVX    @DPTR,A
+002100 A3                INC     DPTR
+002101 ED                MOV     A,R5
+002102 F0                MOVX    @DPTR,A
+002103 A3                INC     DPTR
+002104 E0                MOVX    A,@DPTR
+002105 F9                MOV     R1,A
+002106 A3                INC     DPTR
+002107 E0                MOVX    A,@DPTR
+002108 FA                MOV     R2,A
+002109 A3                INC     DPTR
+00210A E0                MOVX    A,@DPTR
+00210B 904E83            MOV     DPTR,#?_dmemcpy?BYTE+03H
+00210E C9                XCH     A,R1
+00210F F0                MOVX    @DPTR,A
+002110 A3                INC     DPTR
+002111 EA                MOV     A,R2
+002112 F0                MOVX    @DPTR,A
+002113 A3                INC     DPTR
+002114 E9                MOV     A,R1
+002115 F0                MOVX    @DPTR,A
+002116 A3                INC     DPTR
+002117 EC                MOV     A,R4
+002118 F0                MOVX    @DPTR,A
+002119 A3                INC     DPTR
+00211A ED                MOV     A,R5
+00211B F0                MOVX    @DPTR,A
+00211C 7B01              MOV     R3,#01H
+00211E 7A0B              MOV     R2,#HIGH IIC_TempBuff+03H
+002120 7986              MOV     R1,#LOW IIC_TempBuff+03H
+002122 31FD              ACALL   _dmemcpy
+002124 900B83            MOV     DPTR,#IIC_TempBuff
+002127 74A0              MOV     A,#0A0H
+002129 F0                MOVX    @DPTR,A
+00212A 904E96            MOV     DPTR,#addr
+00212D E0                MOVX    A,@DPTR
+00212E FF                MOV     R7,A
+00212F A3                INC     DPTR
+002130 E0                MOVX    A,@DPTR
+002131 900B84            MOV     DPTR,#IIC_TempBuff+01H
+002134 CF                XCH     A,R7
+002135 F0                MOVX    @DPTR,A
+002136 A3                INC     DPTR
+002137 EF                MOV     A,R7
+002138 F0                MOVX    @DPTR,A
+002139 904E99            MOV     DPTR,#len+01H
+00213C E0                MOVX    A,@DPTR
+00213D 2403              ADD     A,#03H
+00213F FD                MOV     R5,A
+002140 904E98            MOV     DPTR,#len
+002143 E0                MOVX    A,@DPTR
+002144 3400              ADDC    A,#00H
+002146 FC                MOV     R4,A
+002147 ED                MOV     A,R5
+002148 FA                MOV     R2,A
+002149 EC                MOV     A,R4
+00214A FF                MOV     R7,A
+00214B EA                MOV     A,R2
+00214C FE                MOV     R6,A
+00214D EF                MOV     A,R7
+00214E 908098            MOV     DPTR,#08098H
+002151 EE                MOV     A,R6
+002152 F0                MOVX    @DPTR,A
+002153 A3                INC     DPTR
+002154 EF                MOV     A,R7
+002155 F0                MOVX    @DPTR,A
+002156 7A0B              MOV     R2,#HIGH IIC_TempBuff
+002158 7983              MOV     R1,#LOW IIC_TempBuff
+00215A 7E0B              MOV     R6,#HIGH IIC_TempBuff
+00215C 7F83              MOV     R7,#LOW IIC_TempBuff
+00215E 7483              MOV     A,#LOW IIC_TempBuff
+002160 FC                MOV     R4,A
+002161 740B              MOV     A,#HIGH IIC_TempBuff
+002163 FF                MOV     R7,A
+002164 EC                MOV     A,R4
+002165 FE                MOV     R6,A
+002166 EF                MOV     A,R7
+002167 A3                INC     DPTR
+002168 EE                MOV     A,R6
+002169 F0                MOVX    @DPTR,A
+00216A A3                INC     DPTR
+00216B EF                MOV     A,R7
+00216C F0                MOVX    @DPTR,A
+00216D 90809E            MOV     DPTR,#0809EH
+002170 E4                CLR     A
+002171 F0                MOVX    @DPTR,A
+002172 A3                INC     DPTR
+002173 F0                MOVX    @DPTR,A
+002174 908090            MOV     DPTR,#08090H
+002177 04                INC     A
+002178 F0                MOVX    @DPTR,A
+002179 908006            MOV     DPTR,#08006H
+00217C E0                MOVX    A,@DPTR
+00217D 4404              ORL     A,#04H
+00217F F0                MOVX    @DPTR,A
+002180 01E0              AJMP    IIcWaitDone
+----- FUNCTION _IIC_write (END) -------
+
+
+----- FUNCTION YC_wait_disconnect_timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  489: void YC_wait_disconnect_timer500ms()
+  490: {
+  491: //before discovery/adv,if current state is connected,wait disconnect done
+  492: 	if (action_timeout!=0)
+002182 904DE2            MOV     DPTR,#action_timeout
+002185 E0                MOVX    A,@DPTR
+002186 6030              JZ      ?C0101?SYS
+  493: 	{
+  494: 		action_timeout--;
+002188 E0                MOVX    A,@DPTR
+002189 14                DEC     A
+00218A F0                MOVX    @DPTR,A
+  495: 		if(action_timeout == 0)
+00218B E0                MOVX    A,@DPTR
+00218C 702A              JNZ     ?C0101?SYS
+  496: 		{
+  497: 			if(g_variable.key_action == KEY_DISCOVERY
+00218E 904CED            MOV     DPTR,#g_variable+02EH
+002191 E0                MOVX    A,@DPTR
+002192 B40523            CJNE    A,#05H,?C0101?SYS
+002195 9047F5            MOV     DPTR,#m_ui_state_map+01H
+002198 E0                MOVX    A,@DPTR
+002199 20E31C            JB      ACC.3,?C0101?SYS
+  498: 		#if DEVICE_MODE_BT_ONLY
+  499: 			&& (m_ui_state_map & 0x4000) != 0x4000)
+  500: 		#elif DEVICE_MODE_BLE_ONLY	
+  501: 			&& (m_ui_state_map & 0x0008) != 0x0008)
+  502: 		#else	
+  503: 			&& (m_ui_state_map & 0x4008) != 0x4008)
+  504: 		#endif
+  505: 			{
+  506: 				m_lpm_mode = 0;
+00219C E4                CLR     A
+00219D 904131            MOV     DPTR,#m_lpm_mode
+0021A0 F0                MOVX    @DPTR,A
+  507: 				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+0021A1 904CE9            MOV     DPTR,#g_variable+02AH
+0021A4 74F0              MOV     A,#0F0H
+0021A6 F0                MOVX    @DPTR,A
+  508: 				g_variable.pairing_g24_timeout = 0;
+0021A7 E4                CLR     A
+0021A8 904CEE            MOV     DPTR,#g_variable+02FH
+0021AB F0                MOVX    @DPTR,A
+  509: 			#if DEVICE_MODE_BT_ONLY
+  510: 				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+  511: 			#elif DEVICE_MODE_BLE_ONLY	
+  512: 				YC_get_ble_ramdon_lap();
+0021AC 1105              ACALL   YC_get_ble_ramdon_lap
+  513: 				IPC_TxControlCmd(IPC_CMD_START_ADV);
+0021AE 7F0D              MOV     R7,#0DH
+0021B0 12085C            LCALL   _IPC_TxControlCmd
+  514: 			#else	
+  515: 				YC_get_ble_ramdon_lap();
+  516: 				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+  517: 			#endif
+  518: 				g_variable.key_action = KEY_NONE;
+0021B3 E4                CLR     A
+0021B4 904CED            MOV     DPTR,#g_variable+02EH
+0021B7 F0                MOVX    @DPTR,A
+  519: 			}
+  520: 		}
+  521: 	}
+  522: 
+  523: }
+0021B8         ?C0101?SYS:
+0021B8 22                RET     
+----- FUNCTION YC_wait_disconnect_timer500ms (END) -------
+
+
+----- FUNCTION kb_cb_Timer500ms (BEGIN) -----
+ FILE: 'sys.c'
+  657: static void kb_cb_Timer500ms()
+  658: {
+  659: 	LED_timer500ms();	
+  660: 
+0021B9 120EC4            LCALL   LED_timer500ms
+  661: 	g_variable.sleepTimer++;
+0021BC 904CE4            MOV     DPTR,#g_variable+025H
+0021BF E0                MOVX    A,@DPTR
+0021C0 04                INC     A
+0021C1 F0                MOVX    @DPTR,A
+0021C2 7006              JNZ     ?C0173?SYS
+0021C4 904CE3            MOV     DPTR,#g_variable+024H
+0021C7 E0                MOVX    A,@DPTR
+0021C8 04                INC     A
+0021C9 F0                MOVX    @DPTR,A
+0021CA         ?C0173?SYS:
+  662: 
+  663: 	YC_adc_check_timer500ms();
+0021CA 31EC              ACALL   YC_adc_check_timer500ms
+  664: 	YC_connect_timeout_500ms();
+0021CC 518F              ACALL   YC_connect_timeout_500ms
+  665: 	kb_button_press_timer500ms();
+0021CE 1218F6            LCALL   kb_button_press_timer500ms
+  666: 	YC_wait_disconnect_timer500ms();
+0021D1 3182              ACALL   YC_wait_disconnect_timer500ms
+  667: 	YC_pairing_timerout_500ms();
+0021D3 5141              ACALL   YC_pairing_timerout_500ms
+  668: 	
+  669: 	
+  670: 	if((g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+0021D5 904CCA            MOV     DPTR,#g_variable+0BH
+0021D8 E0                MOVX    A,@DPTR
+0021D9 6402              XRL     A,#02H
+0021DB 6007              JZ      ?C0132?SYS
+0021DD 904CC8            MOV     DPTR,#g_variable+09H
+0021E0 E0                MOVX    A,@DPTR
+0021E1 B40207            CJNE    A,#02H,?C0133?SYS
+0021E4         ?C0132?SYS:
+  671: 	|| (g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE))
+  672: 	{
+  673: 		g_variable.sleepTimer = 0;				//wait macOS enter pincode
+0021E4 E4                CLR     A
+0021E5 904CE3            MOV     DPTR,#g_variable+024H
+0021E8 F0                MOVX    @DPTR,A
+0021E9 A3                INC     DPTR
+0021EA F0                MOVX    @DPTR,A
+  674: 	}
+  675: 	
+  676: 	return;
+  677: }
+0021EB         ?C0133?SYS:
+0021EB 22                RET     
+----- FUNCTION kb_cb_Timer500ms (END) -------
+
+
+----- FUNCTION YC_adc_check_timer500ms (BEGIN) -----
+ FILE: 'adc.c'
+   73: void YC_adc_check_timer500ms()
+   74: {
+   75: 	// adc check timer	
+   76: 	if (g_variable.battery_check_interval)
+0021EC 904CD3            MOV     DPTR,#g_variable+014H
+0021EF E0                MOVX    A,@DPTR
+0021F0 600A              JZ      ?C0020?ADC
+   77: 	{
+   78: 		g_variable.battery_check_interval--;
+0021F2 14                DEC     A
+0021F3 F0                MOVX    @DPTR,A
+   79: 		if (g_variable.battery_check_interval == 0)
+0021F4 E0                MOVX    A,@DPTR
+0021F5 7005              JNZ     ?C0020?ADC
+   80: 		{
+   81: 			g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+0021F7 7405              MOV     A,#05H
+0021F9 F0                MOVX    @DPTR,A
+   82: 			YC_adc_check();
+0021FA 7106              ACALL   YC_adc_check
+   83: 		}
+   84: 	}
+   85: }
+0021FC         ?C0020?ADC:
+0021FC 22                RET     
+----- FUNCTION YC_adc_check_timer500ms (END) -------
+
+
+----- FUNCTION _dmemcpy (BEGIN) -----
+0021FD 904E80            MOV     DPTR,#dest
+002200 EB                MOV     A,R3
+002201 F0                MOVX    @DPTR,A
+002202 A3                INC     DPTR
+002203 EA                MOV     A,R2
+002204 F0                MOVX    @DPTR,A
+002205 A3                INC     DPTR
+002206 E9                MOV     A,R1
+002207 F0                MOVX    @DPTR,A
+002208         ?C0005?UTILITIES:
+002208 904E86            MOV     DPTR,#len
+00220B 74FF              MOV     A,#0FFH
+00220D F5F0              MOV     B,A
+00220F 120424            LCALL   ?C?ILDIX
+002212 45F0              ORL     A,B
+002214 602A              JZ      ?C0007?UTILITIES
+002216 904E83            MOV     DPTR,#src
+002219 E0                MOVX    A,@DPTR
+00221A FB                MOV     R3,A
+00221B A3                INC     DPTR
+00221C E4                CLR     A
+00221D 75F001            MOV     B,#01H
+002220 120424            LCALL   ?C?ILDIX
+002223 A9F0              MOV     R1,B
+002225 FA                MOV     R2,A
+002226 1203B6            LCALL   ?C?CLDPTR
+002229 FF                MOV     R7,A
+00222A 904E80            MOV     DPTR,#dest
+00222D E0                MOVX    A,@DPTR
+00222E FB                MOV     R3,A
+00222F A3                INC     DPTR
+002230 E4                CLR     A
+002231 75F001            MOV     B,#01H
+002234 120424            LCALL   ?C?ILDIX
+002237 A9F0              MOV     R1,B
+002239 FA                MOV     R2,A
+00223A EF                MOV     A,R7
+00223B 1203FC            LCALL   ?C?CSTPTR
+00223E 80C8              SJMP    ?C0005?UTILITIES
+002240         ?C0007?UTILITIES:
+002240 22                RET     
+----- FUNCTION _dmemcpy (END) -------
+
+
+----- FUNCTION YC_pairing_timerout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  526: void YC_pairing_timerout_500ms()
+  527: {
+  528: //pairing timer
+  529: 	if (g_variable.pairing_timeout != 0)
+002241 904CE9            MOV     DPTR,#g_variable+02AH
+002244 E0                MOVX    A,@DPTR
+002245 6024              JZ      ?C0102?SYS
+  530: 	{
+  531: 		g_variable.sleepTimer = 0;
+002247 E4                CLR     A
+002248 904CE3            MOV     DPTR,#g_variable+024H
+00224B F0                MOVX    @DPTR,A
+00224C A3                INC     DPTR
+00224D F0                MOVX    @DPTR,A
+  532: 		g_variable.pairing_timeout--;
+00224E 904CE9            MOV     DPTR,#g_variable+02AH
+002251 E0                MOVX    A,@DPTR
+002252 14                DEC     A
+002253 F0                MOVX    @DPTR,A
+  533: 		if (g_variable.pairing_timeout == 0)
+002254 E0                MOVX    A,@DPTR
+002255 7014              JNZ     ?C0102?SYS
+  534: 		{
+  535: 			g_variable.current_device_num = g_variable.temp_device_num;
+002257 904CC4            MOV     DPTR,#g_variable+05H
+00225A E0                MOVX    A,@DPTR
+00225B 904CC3            MOV     DPTR,#g_variable+04H
+00225E F0                MOVX    @DPTR,A
+  536: 			g_variable.last_device_num = g_variable.current_device_num;
+00225F 904CC0            MOV     DPTR,#g_variable+01H
+002262 F0                MOVX    @DPTR,A
+  537: 		
+  538: 			YC_key_action_handle(KEY_STOP_DISCOVERY);
+002263 7F0D              MOV     R7,#0DH
+002265 120919            LCALL   _YC_key_action_handle
+  539: 			System_long_sleep();
+002268 120F93            LCALL   System_long_sleep
+  540: 		}
+  541: 	}
+00226B         ?C0102?SYS:
+  542: 
+  543: 	if (g_variable.pairing_g24_timeout != 0)
+00226B 904CEE            MOV     DPTR,#g_variable+02FH
+00226E E0                MOVX    A,@DPTR
+00226F 601D              JZ      ?C0106?SYS
+  544: 	{
+  545: 		g_variable.sleepTimer = 0;
+002271 E4                CLR     A
+002272 904CE3            MOV     DPTR,#g_variable+024H
+002275 F0                MOVX    @DPTR,A
+002276 A3                INC     DPTR
+002277 F0                MOVX    @DPTR,A
+  546: 		g_variable.pairing_g24_timeout--;
+002278 904CEE            MOV     DPTR,#g_variable+02FH
+00227B E0                MOVX    A,@DPTR
+00227C 14                DEC     A
+00227D F0                MOVX    @DPTR,A
+  547: 		if (g_variable.pairing_g24_timeout == 0)
+00227E E0                MOVX    A,@DPTR
+00227F 700D              JNZ     ?C0106?SYS
+  548: 		{
+  549: 			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+002281 7F22              MOV     R7,#022H
+002283 12085C            LCALL   _IPC_TxControlCmd
+  550: 			Delay1ms(10);
+002286 7F0A              MOV     R7,#0AH
+002288 120F7B            LCALL   _Delay1ms
+  551: 			System_long_sleep();
+00228B 120F93            LCALL   System_long_sleep
+  552: 		}
+  553: 	}
+  554: }
+00228E         ?C0106?SYS:
+00228E 22                RET     
+----- FUNCTION YC_pairing_timerout_500ms (END) -------
+
+
+----- FUNCTION YC_connect_timeout_500ms (BEGIN) -----
+ FILE: 'sys.c'
+  448: void YC_connect_timeout_500ms()
+  449: {
+  450: 	
+  451: //system long sleep timer
+  452: 	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+00228F 904CC9            MOV     DPTR,#g_variable+0AH
+002292 E0                MOVX    A,@DPTR
+002293 6404              XRL     A,#04H
+002295 6007              JZ      ?C0086?SYS
+002297 904CC7            MOV     DPTR,#g_variable+08H
+00229A E0                MOVX    A,@DPTR
+00229B B40418            CJNE    A,#04H,?C0085?SYS
+00229E         ?C0086?SYS:
+  453: 		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+  454: 	{
+  455: 		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN) 
+00229E 904CE3            MOV     DPTR,#g_variable+024H
+0022A1 E0                MOVX    A,@DPTR
+0022A2 640E              XRL     A,#0EH
+0022A4 7004              JNZ     ?C0169?SYS
+0022A6 A3                INC     DPTR
+0022A7 E0                MOVX    A,@DPTR
+0022A8 6410              XRL     A,#010H
+0022AA         ?C0169?SYS:
+0022AA 7059              JNZ     ?C0097?SYS
+  456: 		{
+  457: 			YC_disconnect_all_link();
+0022AC 1218B4            LCALL   YC_disconnect_all_link
+  458: 			g_variable.lockLpm = 1;
+0022AF 904CEC            MOV     DPTR,#g_variable+02DH
+0022B2 7401              MOV     A,#01H
+0022B4 F0                MOVX    @DPTR,A
+  459: 		}
+  460: 	}
+0022B5 22                RET     
+0022B6         ?C0085?SYS:
+  461: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+0022B6 904CC5            MOV     DPTR,#g_variable+06H
+0022B9 E0                MOVX    A,@DPTR
+0022BA B40311            CJNE    A,#03H,?C0089?SYS
+  462: 	{
+  463: 		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN)
+0022BD 904CE3            MOV     DPTR,#g_variable+024H
+0022C0 E0                MOVX    A,@DPTR
+0022C1 640E              XRL     A,#0EH
+0022C3 7004              JNZ     ?C0170?SYS
+0022C5 A3                INC     DPTR
+0022C6 E0                MOVX    A,@DPTR
+0022C7 6410              XRL     A,#010H
+0022C9         ?C0170?SYS:
+0022C9 703A              JNZ     ?C0097?SYS
+  464: 			System_long_sleep();
+0022CB 020F93            LJMP    System_long_sleep
+  465: 	}
+0022CE         ?C0089?SYS:
+  466: 	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+0022CE 904CC5            MOV     DPTR,#g_variable+06H
+0022D1 E0                MOVX    A,@DPTR
+0022D2 B40114            CJNE    A,#01H,?C0092?SYS
+  467: 	{
+  468: 		if (g_variable.sleepTimer == G24_PAIRING_TIME_OUT_20S)
+0022D5 904CE3            MOV     DPTR,#g_variable+024H
+0022D8 E0                MOVX    A,@DPTR
+0022D9 7004              JNZ     ?C0171?SYS
+0022DB A3                INC     DPTR
+0022DC E0                MOVX    A,@DPTR
+0022DD 6428              XRL     A,#028H
+0022DF         ?C0171?SYS:
+0022DF 7024              JNZ     ?C0097?SYS
+  469: 		{
+  470: 			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+0022E1 7F22              MOV     R7,#022H
+0022E3 12085C            LCALL   _IPC_TxControlCmd
+  471: 			System_long_sleep();
+0022E6 020F93            LJMP    System_long_sleep
+  472: 		}
+  473: 	}
+0022E9         ?C0092?SYS:
+  474: 	else
+  475: 	{
+  476: 		if (g_variable.sleepTimer == RECONNECT_TIMER_10S)
+0022E9 904CE3            MOV     DPTR,#g_variable+024H
+0022EC E0                MOVX    A,@DPTR
+0022ED 7004              JNZ     ?C0172?SYS
+0022EF A3                INC     DPTR
+0022F0 E0                MOVX    A,@DPTR
+0022F1 6414              XRL     A,#014H
+0022F3         ?C0172?SYS:
+0022F3 7010              JNZ     ?C0097?SYS
+  477: 		{
+  478: 			if(ble_reconnect_flag)
+0022F5 904DDD            MOV     DPTR,#ble_reconnect_flag
+0022F8 E0                MOVX    A,@DPTR
+0022F9 6007              JZ      ?C0096?SYS
+  479: 			{
+  480: 				ble_reconnect_flag = 0;
+0022FB E4                CLR     A
+0022FC F0                MOVX    @DPTR,A
+  481: 				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+0022FD 7F0E              MOV     R7,#0EH
+0022FF 12085C            LCALL   _IPC_TxControlCmd
+  482: 			}
+002302         ?C0096?SYS:
+  483: 			System_long_sleep();
+002302 120F93            LCALL   System_long_sleep
+  484: 		}
+  485: 	}
+  486: }
+002305         ?C0097?SYS:
+002305 22                RET     
+----- FUNCTION YC_connect_timeout_500ms (END) -------
+
+
+----- FUNCTION YC_adc_check (BEGIN) -----
+ FILE: 'adc.c'
+   35: void YC_adc_check() 
+   36: {
+   37: 	byte i;
+   38: 	ulong batValue = 0;
+002306 904EB4            MOV     DPTR,#batValue
+002309 120582            LCALL   ?C?LSTKXDATA
+00230C 00                DB      00H
+00230D 00                DB      00H
+00230E 00                DB      00H
+00230F 00                DB      00H
+   39: 	#ifndef  ADC_ENABLE
+   40: 		return;
+   41: 	#endif	
+   42: //	if(m_adcCurrentValue < m_adc0vBase) 
+   43: //		return;
+   44: 
+   45: 	g_variable.battery_value[g_variable.battery_value_index++] = m_adcCurrentValue;
+002310 904C95            MOV     DPTR,#m_adcCurrentValue
+002313 E0                MOVX    A,@DPTR
+002314 FE                MOV     R6,A
+002315 A3                INC     DPTR
+002316 E0                MOVX    A,@DPTR
+002317 FF                MOV     R7,A
+002318 904CD4            MOV     DPTR,#g_variable+015H
+00231B E0                MOVX    A,@DPTR
+00231C FD                MOV     R5,A
+00231D 04                INC     A
+00231E F0                MOVX    @DPTR,A
+00231F ED                MOV     A,R5
+002320 25E0              ADD     A,ACC
+002322 24D6              ADD     A,#LOW g_variable+017H
+002324 F582              MOV     DPL,A
+002326 E4                CLR     A
+002327 344C              ADDC    A,#HIGH g_variable+017H
+002329 F583              MOV     DPH,A
+00232B EE                MOV     A,R6
+00232C F0                MOVX    @DPTR,A
+00232D A3                INC     DPTR
+00232E EF                MOV     A,R7
+00232F F0                MOVX    @DPTR,A
+   46: 	if (g_variable.battery_value_index >= BAT_ARRAY_LEN)
+002330 904CD4            MOV     DPTR,#g_variable+015H
+002333 E0                MOVX    A,@DPTR
+002334 C3                CLR     C
+002335 9404              SUBB    A,#04H
+002337 4002              JC      ?C0009?ADC
+   47: 		g_variable.battery_value_index = 0;
+002339 E4                CLR     A
+00233A F0                MOVX    @DPTR,A
+00233B         ?C0009?ADC:
+   48: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+00233B E4                CLR     A
+00233C 904EB3            MOV     DPTR,#i
+00233F F0                MOVX    @DPTR,A
+002340         ?C0010?ADC:
+   49: 	{
+   50: 		batValue += g_variable.battery_value[i];
+002340 904EB4            MOV     DPTR,#batValue
+002343 E0                MOVX    A,@DPTR
+002344 F8                MOV     R0,A
+002345 A3                INC     DPTR
+002346 E0                MOVX    A,@DPTR
+002347 F9                MOV     R1,A
+002348 A3                INC     DPTR
+002349 E0                MOVX    A,@DPTR
+00234A FA                MOV     R2,A
+00234B A3                INC     DPTR
+00234C E0                MOVX    A,@DPTR
+00234D FB                MOV     R3,A
+00234E 904EB3            MOV     DPTR,#i
+002351 E0                MOVX    A,@DPTR
+002352 25E0              ADD     A,ACC
+002354 24D6              ADD     A,#LOW g_variable+017H
+002356 F582              MOV     DPL,A
+002358 E4                CLR     A
+002359 344C              ADDC    A,#HIGH g_variable+017H
+00235B F583              MOV     DPH,A
+00235D E0                MOVX    A,@DPTR
+00235E FE                MOV     R6,A
+00235F A3                INC     DPTR
+002360 E0                MOVX    A,@DPTR
+002361 FF                MOV     R7,A
+002362 E4                CLR     A
+002363 FC                MOV     R4,A
+002364 FD                MOV     R5,A
+002365 EB                MOV     A,R3
+002366 2F                ADD     A,R7
+002367 FF                MOV     R7,A
+002368 EA                MOV     A,R2
+002369 3E                ADDC    A,R6
+00236A FE                MOV     R6,A
+00236B ED                MOV     A,R5
+00236C 39                ADDC    A,R1
+00236D FD                MOV     R5,A
+00236E EC                MOV     A,R4
+00236F 38                ADDC    A,R0
+002370 FC                MOV     R4,A
+002371 904EB4            MOV     DPTR,#batValue
+002374 120576            LCALL   ?C?LSTXDATA
+   51: 	}
+002377 904EB3            MOV     DPTR,#i
+00237A E0                MOVX    A,@DPTR
+00237B 04                INC     A
+00237C F0                MOVX    @DPTR,A
+00237D E0                MOVX    A,@DPTR
+00237E B404BF            CJNE    A,#04H,?C0010?ADC
+002381         ?C0011?ADC:
+   52: 	batValue = batValue/BAT_ARRAY_LEN;
+002381 904EB4            MOV     DPTR,#batValue
+002384 E0                MOVX    A,@DPTR
+002385 FC                MOV     R4,A
+002386 A3                INC     DPTR
+002387 E0                MOVX    A,@DPTR
+002388 FD                MOV     R5,A
+002389 A3                INC     DPTR
+00238A E0                MOVX    A,@DPTR
+00238B FE                MOV     R6,A
+00238C A3                INC     DPTR
+00238D E0                MOVX    A,@DPTR
+00238E FF                MOV     R7,A
+00238F E4                CLR     A
+002390 7B04              MOV     R3,#04H
+002392 FA                MOV     R2,A
+002393 F9                MOV     R1,A
+002394 F8                MOV     R0,A
+002395 1204C5            LCALL   ?C?ULDIV
+002398 904EB4            MOV     DPTR,#batValue
+00239B 120576            LCALL   ?C?LSTXDATA
+   53: 
+   54: 	if(g_variable.battery_value[0] < g_variable.battery_level_shutdown)
+00239E 904CE0            MOV     DPTR,#g_variable+021H
+0023A1 E0                MOVX    A,@DPTR
+0023A2 FE                MOV     R6,A
+0023A3 A3                INC     DPTR
+0023A4 E0                MOVX    A,@DPTR
+0023A5 FF                MOV     R7,A
+0023A6 C3                CLR     C
+0023A7 904CD7            MOV     DPTR,#g_variable+018H
+0023AA E0                MOVX    A,@DPTR
+0023AB 9F                SUBB    A,R7
+0023AC 904CD6            MOV     DPTR,#g_variable+017H
+0023AF E0                MOVX    A,@DPTR
+0023B0 9E                SUBB    A,R6
+0023B1 5007              JNC     ?C0013?ADC
+   55: 	{
+   56: 		g_variable.battery_status = BAT_STATUS_SHUT_DOWN;
+0023B3 904CD5            MOV     DPTR,#g_variable+016H
+0023B6 7402              MOV     A,#02H
+0023B8 F0                MOVX    @DPTR,A
+   57: 	}
+0023B9 22                RET     
+0023BA         ?C0013?ADC:
+   58: 	else
+   59: 	{
+   60: 		if (batValue < g_variable.battery_level_low)
+0023BA 904CDE            MOV     DPTR,#g_variable+01FH
+0023BD E0                MOVX    A,@DPTR
+0023BE FE                MOV     R6,A
+0023BF A3                INC     DPTR
+0023C0 E0                MOVX    A,@DPTR
+0023C1 FF                MOV     R7,A
+0023C2 E4                CLR     A
+0023C3 FC                MOV     R4,A
+0023C4 FD                MOV     R5,A
+0023C5 904EB4            MOV     DPTR,#batValue
+0023C8 E0                MOVX    A,@DPTR
+0023C9 F8                MOV     R0,A
+0023CA A3                INC     DPTR
+0023CB E0                MOVX    A,@DPTR
+0023CC F9                MOV     R1,A
+0023CD A3                INC     DPTR
+0023CE E0                MOVX    A,@DPTR
+0023CF FA                MOV     R2,A
+0023D0 A3                INC     DPTR
+0023D1 E0                MOVX    A,@DPTR
+0023D2 FB                MOV     R3,A
+0023D3 C3                CLR     C
+0023D4 120565            LCALL   ?C?ULCMP
+0023D7 5007              JNC     ?C0015?ADC
+   61: 		{
+   62: 			g_variable.battery_status = BAT_STATUS_LOW;
+0023D9 904CD5            MOV     DPTR,#g_variable+016H
+0023DC 7401              MOV     A,#01H
+0023DE F0                MOVX    @DPTR,A
+   63: 		}
+0023DF 22                RET     
+0023E0         ?C0015?ADC:
+   64: 		else
+   65: 		{
+   66: 			g_variable.battery_status = BAT_STATUS_NONE;
+0023E0 E4                CLR     A
+0023E1 904CD5            MOV     DPTR,#g_variable+016H
+0023E4 F0                MOVX    @DPTR,A
+   67: 		}
+   68: 	}
+   69: 	
+   70: }
+0023E5 22                RET     
+----- FUNCTION YC_adc_check (END) -------
+
+
+----- FUNCTION YC_clear_BT_same_address_record (BEGIN) -----
+ FILE: 'bluetooth.c'
+  207: void  YC_clear_BT_same_address_record()
+  208: {
+  209: 	byte record_index;
+  210: 	//if (pinCode_flag == 1)			//clear the same BT3.0 device address record
+  211: 	{
+  212: 		record_index = g_variable.current_device_num-1;
+0023E6 904CC3            MOV     DPTR,#g_variable+04H
+0023E9 E0                MOVX    A,@DPTR
+0023EA 14                DEC     A
+0023EB 904EF0            MOV     DPTR,#record_index
+0023EE F0                MOVX    @DPTR,A
+  213: 		pinCode_flag= 0;
+0023EF E4                CLR     A
+0023F0 904DD7            MOV     DPTR,#pinCode_flag
+0023F3 F0                MOVX    @DPTR,A
+  214: 		YC_store_record_list(2, record_index);
+0023F4 904EF0            MOV     DPTR,#record_index
+0023F7 E0                MOVX    A,@DPTR
+0023F8 FD                MOV     R5,A
+0023F9 7F02              MOV     R7,#02H
+0023FB 12112F            LCALL   _YC_store_record_list
+  215: 
+  216: 		if(record_index != 0)
+0023FE 904EF0            MOV     DPTR,#record_index
+002401 E0                MOVX    A,@DPTR
+002402 FF                MOV     R7,A
+002403 603C              JZ      ?C0043?BLUETOOTH
+  217: 		{
+  218: 			if(bd_key_record_list[0].device_type == 2) 
+002405 904DE4            MOV     DPTR,#bd_key_record_list
+002408 E0                MOVX    A,@DPTR
+002409 6402              XRL     A,#02H
+00240B 7034              JNZ     ?C0043?BLUETOOTH
+  219: 			{
+  220: 				if (compare_str(bd_key_record_list[0].device_addr,bd_key_record_list[record_index].device_addr,6))
+00240D EF                MOV     A,R7
+00240E 75F01D            MOV     B,#01DH
+002411 A4                MUL     AB
+002412 24E5              ADD     A,#LOW bd_key_record_list+01H
+002414 F9                MOV     R1,A
+002415 744D              MOV     A,#HIGH bd_key_record_list+01H
+002417 35F0              ADDC    A,B
+002419 FA                MOV     R2,A
+00241A 904E92            MOV     DPTR,#?_compare_str?BYTE+03H
+00241D 7401              MOV     A,#01H
+00241F F0                MOVX    @DPTR,A
+002420 A3                INC     DPTR
+002421 EA                MOV     A,R2
+002422 F0                MOVX    @DPTR,A
+002423 A3                INC     DPTR
+002424 E9                MOV     A,R1
+002425 F0                MOVX    @DPTR,A
+002426 A3                INC     DPTR
+002427 7406              MOV     A,#06H
+002429 F0                MOVX    @DPTR,A
+00242A 7B01              MOV     R3,#01H
+00242C 7A4D              MOV     R2,#HIGH bd_key_record_list+01H
+00242E 79E5              MOV     R1,#LOW bd_key_record_list+01H
+002430 91F9              ACALL   _compare_str
+002432 EF                MOV     A,R7
+002433 600C              JZ      ?C0043?BLUETOOTH
+  221: 					xmemclear_ff((byte *)(&bd_key_record_list[0]), sizeof(BD_KEY_RECORD));
+002435 7B01              MOV     R3,#01H
+002437 7A4D              MOV     R2,#HIGH bd_key_record_list
+002439 79E4              MOV     R1,#LOW bd_key_record_list
+00243B 7D1D              MOV     R5,#01DH
+00243D 7C00              MOV     R4,#00H
+00243F 91CC              ACALL   _xmemclear_ff
+  222: 			}
+  223: 		}
+002441         ?C0043?BLUETOOTH:
+  224: 
+  225: 		if(record_index != 1)
+002441 904EF0            MOV     DPTR,#record_index
+002444 E0                MOVX    A,@DPTR
+002445 FF                MOV     R7,A
+002446 6401              XRL     A,#01H
+002448 603C              JZ      ?C0046?BLUETOOTH
+  226: 		{
+  227: 			if(bd_key_record_list[1].device_type == 2) 
+00244A 904E01            MOV     DPTR,#bd_key_record_list+01DH
+00244D E0                MOVX    A,@DPTR
+00244E 6402              XRL     A,#02H
+002450 7034              JNZ     ?C0046?BLUETOOTH
+  228: 			{
+  229: 				if (compare_str(bd_key_record_list[1].device_addr,bd_key_record_list[record_index].device_addr,6))
+002452 EF                MOV     A,R7
+002453 75F01D            MOV     B,#01DH
+002456 A4                MUL     AB
+002457 24E5              ADD     A,#LOW bd_key_record_list+01H
+002459 F9                MOV     R1,A
+00245A 744D              MOV     A,#HIGH bd_key_record_list+01H
+00245C 35F0              ADDC    A,B
+00245E FA                MOV     R2,A
+00245F 904E92            MOV     DPTR,#?_compare_str?BYTE+03H
+002462 7401              MOV     A,#01H
+002464 F0                MOVX    @DPTR,A
+002465 A3                INC     DPTR
+002466 EA                MOV     A,R2
+002467 F0                MOVX    @DPTR,A
+002468 A3                INC     DPTR
+002469 E9                MOV     A,R1
+00246A F0                MOVX    @DPTR,A
+00246B A3                INC     DPTR
+00246C 7406              MOV     A,#06H
+00246E F0                MOVX    @DPTR,A
+00246F 7B01              MOV     R3,#01H
+002471 7A4E              MOV     R2,#HIGH bd_key_record_list+01EH
+002473 7902              MOV     R1,#LOW bd_key_record_list+01EH
+002475 91F9              ACALL   _compare_str
+002477 EF                MOV     A,R7
+002478 600C              JZ      ?C0046?BLUETOOTH
+  230: 					xmemclear_ff((byte *)(&bd_key_record_list[1]), sizeof(BD_KEY_RECORD));
+00247A 7B01              MOV     R3,#01H
+00247C 7A4E              MOV     R2,#HIGH bd_key_record_list+01DH
+00247E 7901              MOV     R1,#LOW bd_key_record_list+01DH
+002480 7D1D              MOV     R5,#01DH
+002482 7C00              MOV     R4,#00H
+002484 91CC              ACALL   _xmemclear_ff
+  231: 			}
+  232: 		}
+002486         ?C0046?BLUETOOTH:
+  233: 
+  234: 		if(record_index != 2)
+002486 904EF0            MOV     DPTR,#record_index
+002489 E0                MOVX    A,@DPTR
+00248A FF                MOV     R7,A
+00248B 6402              XRL     A,#02H
+00248D 603C              JZ      ?C0052?BLUETOOTH
+  235: 		{
+  236: 			if(bd_key_record_list[2].device_type == 2) 
+00248F 904E1E            MOV     DPTR,#bd_key_record_list+03AH
+002492 E0                MOVX    A,@DPTR
+002493 6402              XRL     A,#02H
+002495 7034              JNZ     ?C0052?BLUETOOTH
+  237: 			{
+  238: 				if (compare_str(bd_key_record_list[2].device_addr,bd_key_record_list[record_index].device_addr,6))
+002497 EF                MOV     A,R7
+002498 75F01D            MOV     B,#01DH
+00249B A4                MUL     AB
+00249C 24E5              ADD     A,#LOW bd_key_record_list+01H
+00249E F9                MOV     R1,A
+00249F 744D              MOV     A,#HIGH bd_key_record_list+01H
+0024A1 35F0              ADDC    A,B
+0024A3 FA                MOV     R2,A
+0024A4 904E92            MOV     DPTR,#?_compare_str?BYTE+03H
+0024A7 7401              MOV     A,#01H
+0024A9 F0                MOVX    @DPTR,A
+0024AA A3                INC     DPTR
+0024AB EA                MOV     A,R2
+0024AC F0                MOVX    @DPTR,A
+0024AD A3                INC     DPTR
+0024AE E9                MOV     A,R1
+0024AF F0                MOVX    @DPTR,A
+0024B0 A3                INC     DPTR
+0024B1 7406              MOV     A,#06H
+0024B3 F0                MOVX    @DPTR,A
+0024B4 7B01              MOV     R3,#01H
+0024B6 7A4E              MOV     R2,#HIGH bd_key_record_list+03BH
+0024B8 791F              MOV     R1,#LOW bd_key_record_list+03BH
+0024BA 91F9              ACALL   _compare_str
+0024BC EF                MOV     A,R7
+0024BD 600C              JZ      ?C0052?BLUETOOTH
+  239: 					xmemclear_ff((byte *)(&bd_key_record_list[2]), sizeof(BD_KEY_RECORD));
+0024BF 7B01              MOV     R3,#01H
+0024C1 7A4E              MOV     R2,#HIGH bd_key_record_list+03AH
+0024C3 791E              MOV     R1,#LOW bd_key_record_list+03AH
+0024C5 7D1D              MOV     R5,#01DH
+0024C7 7C00              MOV     R4,#00H
+0024C9 91CC              ACALL   _xmemclear_ff
+  240: 			}
+  241: 		}	
+  242: 	}
+  243: }
+0024CB         ?C0052?BLUETOOTH:
+0024CB 22                RET     
+----- FUNCTION YC_clear_BT_same_address_record (END) -------
+
+
+----- FUNCTION _xmemclear_ff (BEGIN) -----
+0024CC 904EE0            MOV     DPTR,#dest
+0024CF EB                MOV     A,R3
+0024D0 F0                MOVX    @DPTR,A
+0024D1 A3                INC     DPTR
+0024D2 EA                MOV     A,R2
+0024D3 F0                MOVX    @DPTR,A
+0024D4 A3                INC     DPTR
+0024D5 E9                MOV     A,R1
+0024D6 F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R4/R5' ----
+0024D7         ?C0011?UTILITIES:
+0024D7 ED                MOV     A,R5
+0024D8 1D                DEC     R5
+0024D9 AE04              MOV     R6,AR4
+0024DB 7001              JNZ     ?C0027?UTILITIES
+0024DD 1C                DEC     R4
+0024DE         ?C0027?UTILITIES:
+0024DE 4E                ORL     A,R6
+0024DF 6017              JZ      ?C0013?UTILITIES
+0024E1 904EE0            MOV     DPTR,#dest
+0024E4 E0                MOVX    A,@DPTR
+0024E5 FB                MOV     R3,A
+0024E6 A3                INC     DPTR
+0024E7 E4                CLR     A
+0024E8 75F001            MOV     B,#01H
+0024EB 120424            LCALL   ?C?ILDIX
+0024EE A9F0              MOV     R1,B
+0024F0 FA                MOV     R2,A
+0024F1 74FF              MOV     A,#0FFH
+0024F3 1203FC            LCALL   ?C?CSTPTR
+0024F6 80DF              SJMP    ?C0011?UTILITIES
+0024F8         ?C0013?UTILITIES:
+0024F8 22                RET     
+----- FUNCTION _xmemclear_ff (END) -------
+
+
+----- FUNCTION _compare_str (BEGIN) -----
+0024F9 904E8F            MOV     DPTR,#str1
+0024FC EB                MOV     A,R3
+0024FD F0                MOVX    @DPTR,A
+0024FE A3                INC     DPTR
+0024FF EA                MOV     A,R2
+002500 F0                MOVX    @DPTR,A
+002501 A3                INC     DPTR
+002502 E9                MOV     A,R1
+002503 F0                MOVX    @DPTR,A
+;---- Variable 'i' assigned to Register 'R7' ----
+002504 E4                CLR     A
+002505 FF                MOV     R7,A
+002506         ?C0021?UTILITIES:
+002506 904E95            MOV     DPTR,#len
+002509 E0                MOVX    A,@DPTR
+00250A FE                MOV     R6,A
+00250B EF                MOV     A,R7
+00250C C3                CLR     C
+00250D 9E                SUBB    A,R6
+00250E 5030              JNC     ?C0022?UTILITIES
+002510 904E92            MOV     DPTR,#str2
+002513 E0                MOVX    A,@DPTR
+002514 FB                MOV     R3,A
+002515 A3                INC     DPTR
+002516 E0                MOVX    A,@DPTR
+002517 FA                MOV     R2,A
+002518 A3                INC     DPTR
+002519 E0                MOVX    A,@DPTR
+00251A F9                MOV     R1,A
+00251B 8F82              MOV     DPL,R7
+00251D 758300            MOV     DPH,#00H
+002520 1203CF            LCALL   ?C?CLDOPTR
+002523 FE                MOV     R6,A
+002524 904E8F            MOV     DPTR,#str1
+002527 E0                MOVX    A,@DPTR
+002528 FB                MOV     R3,A
+002529 A3                INC     DPTR
+00252A E0                MOVX    A,@DPTR
+00252B FA                MOV     R2,A
+00252C A3                INC     DPTR
+00252D E0                MOVX    A,@DPTR
+00252E F9                MOV     R1,A
+00252F 8F82              MOV     DPL,R7
+002531 758300            MOV     DPH,#00H
+002534 1203CF            LCALL   ?C?CLDOPTR
+002537 6E                XRL     A,R6
+002538 6003              JZ      ?C0023?UTILITIES
+00253A 7F00              MOV     R7,#00H
+00253C 22                RET     
+00253D         ?C0023?UTILITIES:
+00253D 0F                INC     R7
+00253E 80C6              SJMP    ?C0021?UTILITIES
+002540         ?C0022?UTILITIES:
+002540 7F01              MOV     R7,#01H
+002542 22                RET     
+----- FUNCTION _compare_str (END) -------
+
+
+----- FUNCTION KS_GetCurrentEvt (BEGIN) -----
+ FILE: 'keyscan.c'
+  285: tKSEVENT *KS_GetCurrentEvt()
+  286: {
+  287: 	//
+  288: 	byte i = 0;
+002543 E4                CLR     A
+002544 904E69            MOV     DPTR,#i
+002547 F0                MOVX    @DPTR,A
+  289: 	byte j = 0;
+002548 A3                INC     DPTR
+002549 F0                MOVX    @DPTR,A
+  290: 	byte temp = 0;
+00254A A3                INC     DPTR
+00254B F0                MOVX    @DPTR,A
+  291: 	byte flag = 0;
+00254C A3                INC     DPTR
+00254D F0                MOVX    @DPTR,A
+  292: 	byte offset = 0;
+00254E A3                INC     DPTR
+00254F F0                MOVX    @DPTR,A
+  293: 	byte state = 0;
+002550 A3                INC     DPTR
+002551 F0                MOVX    @DPTR,A
+  294: 	byte colCounttemp = 0;
+002552 A3                INC     DPTR
+002553 F0                MOVX    @DPTR,A
+  295: 	byte rawSel =0;
+002554 A3                INC     DPTR
+002555 F0                MOVX    @DPTR,A
+  296: 	byte keyCounttemp = 0;
+002556 A3                INC     DPTR
+002557 F0                MOVX    @DPTR,A
+  297: 	byte key_value_temp = 0;
+002558 A3                INC     DPTR
+002559 F0                MOVX    @DPTR,A
+  298: 	byte ghost = 0;
+00255A A3                INC     DPTR
+00255B F0                MOVX    @DPTR,A
+  299: 	byte rawCount = 0;
+00255C A3                INC     DPTR
+00255D F0                MOVX    @DPTR,A
+  300: 	byte colCount = 0;
+00255E A3                INC     DPTR
+00255F F0                MOVX    @DPTR,A
+  301: 	byte keyCount = 0;
+002560 A3                INC     DPTR
+002561 F0                MOVX    @DPTR,A
+  302: 	
+  303: 	KS_ScanMatrix();
+002562 123054            LCALL   KS_ScanMatrix
+  304: 
+  305: 	if (compare_str(ksSelMapCurr,ksSelMapCheck,KB_KSCAN_COL_NUM) 
+002565 7A4D              MOV     R2,#HIGH ksSelMapCheck
+002567 79A8              MOV     R1,#LOW ksSelMapCheck
+002569 904E92            MOV     DPTR,#?_compare_str?BYTE+03H
+00256C 7401              MOV     A,#01H
+00256E F0                MOVX    @DPTR,A
+00256F A3                INC     DPTR
+002570 744D              MOV     A,#HIGH ksSelMapCheck
+002572 F0                MOVX    @DPTR,A
+002573 A3                INC     DPTR
+002574 74A8              MOV     A,#LOW ksSelMapCheck
+002576 F0                MOVX    @DPTR,A
+002577 A3                INC     DPTR
+002578 7414              MOV     A,#014H
+00257A F0                MOVX    @DPTR,A
+00257B 7B01              MOV     R3,#01H
+00257D 7A4D              MOV     R2,#HIGH ksSelMapCurr
+00257F 79BC              MOV     R1,#LOW ksSelMapCurr
+002581 91F9              ACALL   _compare_str
+002583 EF                MOV     A,R7
+002584 6016              JZ      ?C0089?KEYSCAN
+002586 7B01              MOV     R3,#01H
+002588 7A4D              MOV     R2,#HIGH ksSelMapCurr
+00258A 79BC              MOV     R1,#LOW ksSelMapCurr
+00258C 7D14              MOV     R5,#014H
+00258E F151              ACALL   _array_is_empty
+002590 EF                MOV     A,R7
+002591 7009              JNZ     ?C0089?KEYSCAN
+  306: 		&& !array_is_empty(ksSelMapCurr,KB_KSCAN_COL_NUM))
+  307: 	{
+  308: 		g_variable.button_flag |= 0x02;
+002593 904CCE            MOV     DPTR,#g_variable+0FH
+002596 E0                MOVX    A,@DPTR
+002597 4402              ORL     A,#02H
+002599 F0                MOVX    @DPTR,A
+  309: 	}
+00259A 800C              SJMP    ?C0090?KEYSCAN
+00259C         ?C0089?KEYSCAN:
+  310: 	else
+  311: 	{	
+  312: 		g_variable.button_flag &= 0xFD;
+00259C 904CCE            MOV     DPTR,#g_variable+0FH
+00259F E0                MOVX    A,@DPTR
+0025A0 54FD              ANL     A,#0FDH
+0025A2 F0                MOVX    @DPTR,A
+  313: 		g_variable.button_timer[1] = 0;
+0025A3 E4                CLR     A
+0025A4 904CD0            MOV     DPTR,#g_variable+011H
+0025A7 F0                MOVX    @DPTR,A
+  314: 	}
+0025A8         ?C0090?KEYSCAN:
+  315: 
+  316: 	for (i=0; col[i]!=0; i++) {
+0025A8 E4                CLR     A
+0025A9 904E69            MOV     DPTR,#i
+0025AC F0                MOVX    @DPTR,A
+0025AD         ?C0091?KEYSCAN:
+0025AD 904E69            MOV     DPTR,#i
+0025B0 E0                MOVX    A,@DPTR
+0025B1 FF                MOV     R7,A
+0025B2 900681            MOV     DPTR,#col
+0025B5 93                MOVC    A,@A+DPTR
+0025B6 602F              JZ      ?C0092?KEYSCAN
+  317: 		temp = ksSelMapCurr[i];
+0025B8 74BC              MOV     A,#LOW ksSelMapCurr
+0025BA 2F                ADD     A,R7
+0025BB F582              MOV     DPL,A
+0025BD E4                CLR     A
+0025BE 344D              ADDC    A,#HIGH ksSelMapCurr
+0025C0 F583              MOV     DPH,A
+0025C2 E0                MOVX    A,@DPTR
+0025C3 904E6B            MOV     DPTR,#temp
+0025C6 F0                MOVX    @DPTR,A
+  318: 		if (temp!=0) {
+0025C7 E0                MOVX    A,@DPTR
+0025C8 FD                MOV     R5,A
+0025C9 6014              JZ      ?C0093?KEYSCAN
+  319: 			colCounttemp++;
+0025CB 904E6F            MOV     DPTR,#colCounttemp
+0025CE E0                MOVX    A,@DPTR
+0025CF 04                INC     A
+0025D0 F0                MOVX    @DPTR,A
+  320: 			rawSel = temp|rawSel;
+0025D1 A3                INC     DPTR
+0025D2 E0                MOVX    A,@DPTR
+0025D3 FE                MOV     R6,A
+0025D4 ED                MOV     A,R5
+0025D5 4E                ORL     A,R6
+0025D6 F0                MOVX    @DPTR,A
+  321: 			keyCounttemp += bit_count(temp);
+0025D7 AF05              MOV     R7,AR5
+0025D9 F143              ACALL   _bit_count
+0025DB A3                INC     DPTR
+0025DC E0                MOVX    A,@DPTR
+0025DD 2F                ADD     A,R7
+0025DE F0                MOVX    @DPTR,A
+  322: 		}
+  323: 	}
+0025DF         ?C0093?KEYSCAN:
+0025DF 904E69            MOV     DPTR,#i
+0025E2 E0                MOVX    A,@DPTR
+0025E3 04                INC     A
+0025E4 F0                MOVX    @DPTR,A
+0025E5 80C6              SJMP    ?C0091?KEYSCAN
+0025E7         ?C0092?KEYSCAN:
+  324: 	keyCount = keyCounttemp;
+0025E7 904E71            MOV     DPTR,#keyCounttemp
+0025EA E0                MOVX    A,@DPTR
+0025EB 904E76            MOV     DPTR,#keyCount
+0025EE F0                MOVX    @DPTR,A
+  325: 	colCount = colCounttemp;
+0025EF 904E6F            MOV     DPTR,#colCounttemp
+0025F2 E0                MOVX    A,@DPTR
+0025F3 904E75            MOV     DPTR,#colCount
+0025F6 F0                MOVX    @DPTR,A
+  326: 	rawCount = bit_count(rawSel);
+0025F7 904E70            MOV     DPTR,#rawSel
+0025FA E0                MOVX    A,@DPTR
+0025FB FF                MOV     R7,A
+0025FC F143              ACALL   _bit_count
+0025FE 904E74            MOV     DPTR,#rawCount
+002601 EF                MOV     A,R7
+002602 F0                MOVX    @DPTR,A
+  327: 	if (keyCount >2 && keyCount > MAX(colCount, rawCount)) {
+002603 904E76            MOV     DPTR,#keyCount
+002606 E0                MOVX    A,@DPTR
+002607 FF                MOV     R7,A
+002608 D3                SETB    C
+002609 9402              SUBB    A,#02H
+00260B 401D              JC      ?C0095?KEYSCAN
+00260D 904E74            MOV     DPTR,#rawCount
+002610 E0                MOVX    A,@DPTR
+002611 FE                MOV     R6,A
+002612 A3                INC     DPTR
+002613 E0                MOVX    A,@DPTR
+002614 FD                MOV     R5,A
+002615 D3                SETB    C
+002616 9E                SUBB    A,R6
+002617 4004              JC      ?C0096?KEYSCAN
+002619 AE05              MOV     R6,AR5
+00261B 8000              SJMP    ?C0097?KEYSCAN
+00261D         ?C0096?KEYSCAN:
+00261D         ?C0097?KEYSCAN:
+00261D EF                MOV     A,R7
+00261E D3                SETB    C
+00261F 9E                SUBB    A,R6
+002620 4008              JC      ?C0095?KEYSCAN
+  328: 		ghost = 1;
+002622 904E73            MOV     DPTR,#ghost
+002625 7401              MOV     A,#01H
+002627 F0                MOVX    @DPTR,A
+  329: 	}
+002628 8005              SJMP    ?C0098?KEYSCAN
+00262A         ?C0095?KEYSCAN:
+  330: 	else {
+  331: 		ghost = 0;
+00262A E4                CLR     A
+00262B 904E73            MOV     DPTR,#ghost
+00262E F0                MOVX    @DPTR,A
+  332: 	}
+00262F         ?C0098?KEYSCAN:
+  333: 	
+  334: 	for (i=0; col[i]!=0; i++)
+00262F E4                CLR     A
+002630 904E69            MOV     DPTR,#i
+002633 F0                MOVX    @DPTR,A
+002634         ?C0099?KEYSCAN:
+002634 904E69            MOV     DPTR,#i
+002637 E0                MOVX    A,@DPTR
+002638 FF                MOV     R7,A
+002639 900681            MOV     DPTR,#col
+00263C 93                MOVC    A,@A+DPTR
+00263D 7002              JNZ     $ + 4H
+00263F E117              AJMP    ?C0100?KEYSCAN
+  335: 	{
+  336: 		temp = ksSelMapCurr[i] ^ ksSelMapOld[i];
+002641 7493              MOV     A,#LOW ksSelMapOld
+002643 2F                ADD     A,R7
+002644 F582              MOV     DPL,A
+002646 E4                CLR     A
+002647 344D              ADDC    A,#HIGH ksSelMapOld
+002649 F583              MOV     DPH,A
+00264B E0                MOVX    A,@DPTR
+00264C FE                MOV     R6,A
+00264D 74BC              MOV     A,#LOW ksSelMapCurr
+00264F 2F                ADD     A,R7
+002650 F582              MOV     DPL,A
+002652 E4                CLR     A
+002653 344D              ADDC    A,#HIGH ksSelMapCurr
+002655 F583              MOV     DPH,A
+002657 E0                MOVX    A,@DPTR
+002658 6E                XRL     A,R6
+002659 904E6B            MOV     DPTR,#temp
+00265C F0                MOVX    @DPTR,A
+  337: 		state = ksSelMapCurr[i];
+00265D 904E69            MOV     DPTR,#i
+002660 E0                MOVX    A,@DPTR
+002661 FF                MOV     R7,A
+002662 24BC              ADD     A,#LOW ksSelMapCurr
+002664 F582              MOV     DPL,A
+002666 E4                CLR     A
+002667 344D              ADDC    A,#HIGH ksSelMapCurr
+002669 F583              MOV     DPH,A
+00266B E0                MOVX    A,@DPTR
+00266C 904E6E            MOV     DPTR,#state
+00266F F0                MOVX    @DPTR,A
+  338: 		if (temp == 0) 
+002670 904E6B            MOV     DPTR,#temp
+002673 E0                MOVX    A,@DPTR
+002674 7004              JNZ     ?C0102?KEYSCAN
+  339: 		{
+  340: 			continue;
+002676 E10F              AJMP    ?C0101?KEYSCAN
+  341: 		}
+002678 E10F              AJMP    ?C0101?KEYSCAN
+00267A         ?C0102?KEYSCAN:
+  342: 		else 
+  343: 		{
+  344: 
+  345: 			if (ghost) 
+00267A 904E73            MOV     DPTR,#ghost
+00267D E0                MOVX    A,@DPTR
+00267E 6007              JZ      ?C0104?KEYSCAN
+  346: 				return NULL;
+002680 7B00              MOV     R3,#00H
+002682 7A00              MOV     R2,#00H
+002684 7900              MOV     R1,#00H
+002686 22                RET     
+002687         ?C0104?KEYSCAN:
+  347: 			ksSelMapOld[i] = ksSelMapCurr[i];
+002687 74BC              MOV     A,#LOW ksSelMapCurr
+002689 2F                ADD     A,R7
+00268A F582              MOV     DPL,A
+00268C E4                CLR     A
+00268D 344D              ADDC    A,#HIGH ksSelMapCurr
+00268F F583              MOV     DPH,A
+002691 E0                MOVX    A,@DPTR
+002692 FE                MOV     R6,A
+002693 7493              MOV     A,#LOW ksSelMapOld
+002695 2F                ADD     A,R7
+002696 F582              MOV     DPL,A
+002698 E4                CLR     A
+002699 344D              ADDC    A,#HIGH ksSelMapOld
+00269B F583              MOV     DPH,A
+00269D EE                MOV     A,R6
+00269E F0                MOVX    @DPTR,A
+  348: 			for (j = 0 ; j<8 ; j++) 
+00269F E4                CLR     A
+0026A0 904E6A            MOV     DPTR,#j
+0026A3 F0                MOVX    @DPTR,A
+0026A4         ?C0106?KEYSCAN:
+0026A4 904E6A            MOV     DPTR,#j
+0026A7 E0                MOVX    A,@DPTR
+0026A8 FF                MOV     R7,A
+0026A9 C3                CLR     C
+0026AA 9408              SUBB    A,#08H
+0026AC 505B              JNC     ?C0107?KEYSCAN
+  349: 			{
+  350: 				if (temp&1)
+0026AE A3                INC     DPTR
+0026AF E0                MOVX    A,@DPTR
+0026B0 30E03E            JNB     ACC.0,?C0109?KEYSCAN
+  351: 				{
+  352: 					offset = i<<3 |j;
+0026B3 904E69            MOV     DPTR,#i
+0026B6 E0                MOVX    A,@DPTR
+0026B7 FE                MOV     R6,A
+0026B8 33                RLC     A
+0026B9 33                RLC     A
+0026BA 33                RLC     A
+0026BB 54F8              ANL     A,#0F8H
+0026BD FE                MOV     R6,A
+0026BE EF                MOV     A,R7
+0026BF 4E                ORL     A,R6
+0026C0 904E6D            MOV     DPTR,#offset
+0026C3 F0                MOVX    @DPTR,A
+  353: 					key_value_temp = key_fn_function(state,ksMap[offset]);
+0026C4 A3                INC     DPTR
+0026C5 E0                MOVX    A,@DPTR
+0026C6 FF                MOV     R7,A
+0026C7 904E6D            MOV     DPTR,#offset
+0026CA E0                MOVX    A,@DPTR
+0026CB 900696            MOV     DPTR,#ksMap
+0026CE 93                MOVC    A,@A+DPTR
+0026CF FD                MOV     R5,A
+0026D0 122B12            LCALL   _key_fn_function
+0026D3 904E72            MOV     DPTR,#key_value_temp
+0026D6 EF                MOV     A,R7
+0026D7 F0                MOVX    @DPTR,A
+  354: 					if (state & 1)
+0026D8 904E6E            MOV     DPTR,#state
+0026DB E0                MOVX    A,@DPTR
+0026DC 30E00A            JNB     ACC.0,?C0110?KEYSCAN
+  355: 					{
+  356: 						keyIn(key_value_temp);
+0026DF 904E72            MOV     DPTR,#key_value_temp
+0026E2 E0                MOVX    A,@DPTR
+0026E3 FF                MOV     R7,A
+0026E4 122EE1            LCALL   _keyIn
+  357: 					}
+0026E7 8008              SJMP    ?C0109?KEYSCAN
+0026E9         ?C0110?KEYSCAN:
+  358: 					else
+  359: 					{
+  360: 						keyOut(key_value_temp);
+0026E9 904E72            MOV     DPTR,#key_value_temp
+0026EC E0                MOVX    A,@DPTR
+0026ED FF                MOV     R7,A
+0026EE 122F71            LCALL   _keyOut
+  361: 					}
+  362: 				}
+0026F1         ?C0109?KEYSCAN:
+  363: 				temp = temp >>1;
+0026F1 904E6B            MOV     DPTR,#temp
+0026F4 E0                MOVX    A,@DPTR
+0026F5 FF                MOV     R7,A
+0026F6 C3                CLR     C
+0026F7 13                RRC     A
+0026F8 F0                MOVX    @DPTR,A
+  364: 				state = state>>1;
+0026F9 904E6E            MOV     DPTR,#state
+0026FC E0                MOVX    A,@DPTR
+0026FD FF                MOV     R7,A
+0026FE C3                CLR     C
+0026FF 13                RRC     A
+002700 F0                MOVX    @DPTR,A
+  365: 			}
+002701 904E6A            MOV     DPTR,#j
+002704 E0                MOVX    A,@DPTR
+002705 04                INC     A
+002706 F0                MOVX    @DPTR,A
+002707 809B              SJMP    ?C0106?KEYSCAN
+002709         ?C0107?KEYSCAN:
+  366: 			flag = 1;
+002709 904E6C            MOV     DPTR,#flag
+00270C 7401              MOV     A,#01H
+00270E F0                MOVX    @DPTR,A
+  367: 		}
+  368: 	}
+00270F         ?C0101?KEYSCAN:
+00270F 904E69            MOV     DPTR,#i
+002712 E0                MOVX    A,@DPTR
+002713 04                INC     A
+002714 F0                MOVX    @DPTR,A
+002715 C134              AJMP    ?C0099?KEYSCAN
+002717         ?C0100?KEYSCAN:
+  369: 	
+  370: 	if((mult_key_status == KEY_RELEASE) && (standard_key_release_flag == 1))
+002717 904E3B            MOV     DPTR,#mult_key_status
+00271A E0                MOVX    A,@DPTR
+00271B B4030A            CJNE    A,#03H,?C0112?KEYSCAN
+00271E 904DD8            MOV     DPTR,#standard_key_release_flag
+002721 E0                MOVX    A,@DPTR
+002722 B40103            CJNE    A,#01H,?C0112?KEYSCAN
+  371: 	{
+  372: 		standard_key_release_flag = 2;		//media key and standard key  release the same time
+002725 7402              MOV     A,#02H
+002727 F0                MOVX    @DPTR,A
+  373: 	}
+002728         ?C0112?KEYSCAN:
+  374: 
+  375: 	
+  376: 	if (flag || standard_key_release_flag == 2) 
+002728 904E6C            MOV     DPTR,#flag
+00272B E0                MOVX    A,@DPTR
+00272C 7007              JNZ     ?C0114?KEYSCAN
+00272E 904DD8            MOV     DPTR,#standard_key_release_flag
+002731 E0                MOVX    A,@DPTR
+002732 B40207            CJNE    A,#02H,?C0113?KEYSCAN
+002735         ?C0114?KEYSCAN:
+  377: 	{
+  378: 		return &ksEvtPool;
+002735 7B01              MOV     R3,#01H
+002737 7A4E              MOV     R2,#HIGH ksEvtPool
+002739 7988              MOV     R1,#LOW ksEvtPool
+00273B 22                RET     
+  379: 	}
+00273C         ?C0113?KEYSCAN:
+  380: 	else
+  381: 	{
+  382: 		return NULL;
+00273C 7B00              MOV     R3,#00H
+00273E 7A00              MOV     R2,#00H
+002740 7900              MOV     R1,#00H
+  383: 	}
+  384: 	
+  385: 
+  386: }
+002742 22                RET     
+----- FUNCTION KS_GetCurrentEvt (END) -------
+
+
+----- FUNCTION _bit_count (BEGIN) -----
+ FILE: 'keyscan.c'
+   24: static byte bit_count(byte v)
+   25: {
+;---- Variable 'v' assigned to Register 'R7' ----
+   26: 	unsigned char c;
+   27: 	for (c = 0; v; c++) {
+;---- Variable 'c' assigned to Register 'R6' ----
+002743 E4                CLR     A
+002744 FE                MOV     R6,A
+002745         ?C0001?KEYSCAN:
+002745 EF                MOV     A,R7
+002746 6006              JZ      ?C0002?KEYSCAN
+   28:     	v &= v - 1;
+002748 14                DEC     A
+002749 5F                ANL     A,R7
+00274A FF                MOV     R7,A
+   29:     }
+00274B 0E                INC     R6
+00274C 80F7              SJMP    ?C0001?KEYSCAN
+00274E         ?C0002?KEYSCAN:
+   30:     return c;
+00274E AF06              MOV     R7,AR6
+   31: }
+002750 22                RET     
+----- FUNCTION _bit_count (END) -------
+
+
+----- FUNCTION _array_is_empty (BEGIN) -----
+ FILE: 'keyscan.c'
+  273: byte array_is_empty(byte * str1,byte len)
+  274: {
+002751 904ED7            MOV     DPTR,#str1
+002754 EB                MOV     A,R3
+002755 F0                MOVX    @DPTR,A
+002756 A3                INC     DPTR
+002757 EA                MOV     A,R2
+002758 F0                MOVX    @DPTR,A
+002759 A3                INC     DPTR
+00275A E9                MOV     A,R1
+00275B F0                MOVX    @DPTR,A
+;---- Variable 'len' assigned to Register 'R5' ----
+  275: 	byte i;
+  276: 	for (i=0;i < len;i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+00275C E4                CLR     A
+00275D FF                MOV     R7,A
+00275E         ?C0084?KEYSCAN:
+00275E EF                MOV     A,R7
+00275F C3                CLR     C
+002760 9D                SUBB    A,R5
+002761 501B              JNC     ?C0085?KEYSCAN
+  277: 	{
+  278: 		if (str1[i] != 0)
+002763 904ED7            MOV     DPTR,#str1
+002766 E0                MOVX    A,@DPTR
+002767 FB                MOV     R3,A
+002768 A3                INC     DPTR
+002769 E0                MOVX    A,@DPTR
+00276A FA                MOV     R2,A
+00276B A3                INC     DPTR
+00276C E0                MOVX    A,@DPTR
+00276D F9                MOV     R1,A
+00276E 8F82              MOV     DPL,R7
+002770 758300            MOV     DPH,#00H
+002773 1203CF            LCALL   ?C?CLDOPTR
+002776 6003              JZ      ?C0086?KEYSCAN
+  279: 			return 0x00;
+002778 7F00              MOV     R7,#00H
+00277A 22                RET     
+  280: 	}
+00277B         ?C0086?KEYSCAN:
+00277B 0F                INC     R7
+00277C 80E0              SJMP    ?C0084?KEYSCAN
+00277E         ?C0085?KEYSCAN:
+  281: 	return 0x01;
+00277E 7F01              MOV     R7,#01H
+  282: }
+002780 22                RET     
+----- FUNCTION _array_is_empty (END) -------
+
+
+----- FUNCTION _kb_set_multikey (BEGIN) -----
+ FILE: 'kb_process.c'
+  154: void kb_set_multikey(word multikey_value)
+  155: {
+;---- Variable 'multikey_value' assigned to Register 'R4/R5' ----
+002781 AD07              MOV     R5,AR7
+002783 AC06              MOV     R4,AR6
+  156: 	if(mult_key_status != KEY_WAIT_RELEASE)
+  157: 	{
+002785 904E3B            MOV     DPTR,#mult_key_status
+002788 E0                MOVX    A,@DPTR
+002789 6402              XRL     A,#02H
+00278B 600E              JZ      ?C0041?KB_PROCESS
+  158: 		mult_key_status = KEY_PRESS;
+  159: 		multikey[0] = HID_REPORTID_2;
+00278D 7401              MOV     A,#01H
+00278F F0                MOVX    @DPTR,A
+  160: 		multikey[1] = (multikey_value&0xff);
+002790 904E3C            MOV     DPTR,#multikey
+002793 04                INC     A
+002794 F0                MOVX    @DPTR,A
+  161: 		multikey[2] = ((multikey_value>>8)&0xff);
+002795 EF                MOV     A,R7
+002796 A3                INC     DPTR
+002797 F0                MOVX    @DPTR,A
+  162: 	}
+002798 EE                MOV     A,R6
+002799 A3                INC     DPTR
+00279A F0                MOVX    @DPTR,A
+  163: }
+  164: 
+00279B         ?C0041?KB_PROCESS:
+00279B 22                RET     
+----- FUNCTION _kb_set_multikey (END) -------
+
+
+----- FUNCTION kb_bt_pincode_enter (BEGIN) -----
+ FILE: 'kb_process.c'
+  193: void kb_bt_pincode_enter()
+  194: {
+  195: 	tKSEVENT *pEvt = NULL;
+  196: 	pEvt = KS_GetCurrentEvt();
+00279C 904ED1            MOV     DPTR,#pEvt
+00279F E4                CLR     A
+0027A0 F0                MOVX    @DPTR,A
+0027A1 A3                INC     DPTR
+0027A2 F0                MOVX    @DPTR,A
+0027A3 A3                INC     DPTR
+0027A4 F0                MOVX    @DPTR,A
+  197: 	if (pEvt == NULL)
+0027A5 B143              ACALL   KS_GetCurrentEvt
+0027A7 904ED1            MOV     DPTR,#pEvt
+0027AA EB                MOV     A,R3
+0027AB F0                MOVX    @DPTR,A
+0027AC A3                INC     DPTR
+0027AD EA                MOV     A,R2
+0027AE F0                MOVX    @DPTR,A
+0027AF A3                INC     DPTR
+0027B0 E9                MOV     A,R1
+0027B1 F0                MOVX    @DPTR,A
+  198: 		return;
+0027B2 4A                ORL     A,R2
+0027B3 7003              JNZ     $ + 5H
+0027B5 022A10            LJMP    ?C0044?KB_PROCESS
+0027B8         ?C0043?KB_PROCESS:
+  199: 	if (pEvt->ksPool[0] != 0) {
+0027B8 904ED1            MOV     DPTR,#pEvt
+0027BB E0                MOVX    A,@DPTR
+0027BC FB                MOV     R3,A
+0027BD A3                INC     DPTR
+0027BE E0                MOVX    A,@DPTR
+0027BF FA                MOV     R2,A
+0027C0 A3                INC     DPTR
+0027C1 E0                MOVX    A,@DPTR
+0027C2 F9                MOV     R1,A
+0027C3 900001            MOV     DPTR,#01H
+0027C6 1203CF            LCALL   ?C?CLDOPTR
+0027C9 FF                MOV     R7,A
+0027CA 7003              JNZ     $ + 5H
+0027CC 022A10            LJMP    ?C0044?KB_PROCESS
+  200: 		if (pEvt->ksPool[0] == HID_KEY_ENTER ||pEvt->ksPool[0] == HID_KEY_KP_ENTER) {
+0027CF 6428              XRL     A,#028H
+0027D1 6005              JZ      ?C0047?KB_PROCESS
+0027D3 EF                MOV     A,R7
+0027D4 6458              XRL     A,#058H
+0027D6 7033              JNZ     ?C0046?KB_PROCESS
+0027D8         ?C0047?KB_PROCESS:
+  201: 			if (	g_variable.ble_currentSubState == CHANGE_TO_BLE_SUB_PINCODE)
+0027D8 904CC8            MOV     DPTR,#g_variable+09H
+0027DB E0                MOVX    A,@DPTR
+0027DC B40210            CJNE    A,#02H,?C0048?KB_PROCESS
+  202: 			{
+  203: 				IPC_TxControlCmd(IPC_CMD_LE_SET_PINCODE);
+0027DF 7F29              MOV     R7,#029H
+0027E1 12085C            LCALL   _IPC_TxControlCmd
+  204: 				g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_PINCODE_OK;
+0027E4 904CC8            MOV     DPTR,#g_variable+09H
+0027E7 7403              MOV     A,#03H
+0027E9 F0                MOVX    @DPTR,A
+  205: 				le_pin_code_len = 0;
+0027EA E4                CLR     A
+0027EB 904DD2            MOV     DPTR,#le_pin_code_len
+0027EE F0                MOVX    @DPTR,A
+  206: 			}
+0027EF         ?C0048?KB_PROCESS:
+  207: 
+  208: 			if (	g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+0027EF 904CCA            MOV     DPTR,#g_variable+0BH
+0027F2 E0                MOVX    A,@DPTR
+0027F3 6402              XRL     A,#02H
+0027F5 6003              JZ      $ + 5H
+0027F7 022A10            LJMP    ?C0044?KB_PROCESS
+  209: 			{	
+  210: 				m_link_key_exists = 1;
+0027FA 90425E            MOV     DPTR,#m_link_key_exists
+0027FD 04                INC     A
+0027FE F0                MOVX    @DPTR,A
+  211: 				IPC_TxControlCmd(IPC_CMD_SET_PIN_CODE);
+0027FF 7F0A              MOV     R7,#0AH
+002801 12085C            LCALL   _IPC_TxControlCmd
+  212: 				g_variable.br_currentSubState = CHANGE_TO_BR_SUB_PINCODE_OK;
+002804 904CCA            MOV     DPTR,#g_variable+0BH
+002807 7403              MOV     A,#03H
+002809 F0                MOVX    @DPTR,A
+  213: 			}
+  214: 		}
+00280A 22                RET     
+00280B         ?C0046?KB_PROCESS:
+  215: 		else
+  216: 		{
+  217: 			if (pEvt->ksPool[0] <=HID_KEY_KP_0 && pEvt->ksPool[0] >= HID_KEY_KP_1)
+00280B 904ED1            MOV     DPTR,#pEvt
+00280E E0                MOVX    A,@DPTR
+00280F FB                MOV     R3,A
+002810 A3                INC     DPTR
+002811 E0                MOVX    A,@DPTR
+002812 FA                MOV     R2,A
+002813 A3                INC     DPTR
+002814 E0                MOVX    A,@DPTR
+002815 F9                MOV     R1,A
+002816 900001            MOV     DPTR,#01H
+002819 1203CF            LCALL   ?C?CLDOPTR
+00281C FF                MOV     R7,A
+00281D D3                SETB    C
+00281E 9462              SUBB    A,#062H
+002820 4002              JC      $ + 4H
+002822 01DC              AJMP    ?C0051?KB_PROCESS
+002824 EF                MOV     A,R7
+002825 C3                CLR     C
+002826 9459              SUBB    A,#059H
+002828 5002              JNC     $ + 4H
+00282A 01DC              AJMP    ?C0051?KB_PROCESS
+  218: 			{
+  219: 				if (pEvt->ksPool[0] == HID_KEY_KP_0) 
+00282C EF                MOV     A,R7
+00282D B46238            CJNE    A,#062H,?C0052?KB_PROCESS
+  220: 				{
+  221: 					ipcPin[ipcPinlen ++] = 0x30;	//ascii code: 0     x030
+002830 90054F            MOV     DPTR,#ipcPinlen
+002833 E0                MOVX    A,@DPTR
+002834 FF                MOV     R7,A
+002835 04                INC     A
+002836 F0                MOVX    @DPTR,A
+002837 7450              MOV     A,#LOW ipcPin
+002839 2F                ADD     A,R7
+00283A F582              MOV     DPL,A
+00283C E4                CLR     A
+00283D 3405              ADDC    A,#HIGH ipcPin
+00283F F583              MOV     DPH,A
+002841 7430              MOV     A,#030H
+002843 F0                MOVX    @DPTR,A
+  222: 					le_pin_code = le_pin_code*10;
+002844 904D39            MOV     DPTR,#le_pin_code
+002847 E0                MOVX    A,@DPTR
+002848 FC                MOV     R4,A
+002849 A3                INC     DPTR
+00284A E0                MOVX    A,@DPTR
+00284B FD                MOV     R5,A
+00284C A3                INC     DPTR
+00284D E0                MOVX    A,@DPTR
+00284E FE                MOV     R6,A
+00284F A3                INC     DPTR
+002850 E0                MOVX    A,@DPTR
+002851 FF                MOV     R7,A
+002852 E4                CLR     A
+002853 7B0A              MOV     R3,#0AH
+002855 FA                MOV     R2,A
+002856 F9                MOV     R1,A
+002857 F8                MOV     R0,A
+002858 12043A            LCALL   ?C?LMUL
+00285B 904D39            MOV     DPTR,#le_pin_code
+00285E 120576            LCALL   ?C?LSTXDATA
+  223: 					le_pin_code_len++;
+002861 904DD2            MOV     DPTR,#le_pin_code_len
+002864 E0                MOVX    A,@DPTR
+002865 04                INC     A
+002866 F0                MOVX    @DPTR,A
+  224: 				}
+002867 22                RET     
+002868         ?C0052?KB_PROCESS:
+  225: 				else 
+  226: 				{
+  227: 					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - 0x28;  // ascii :0x31-0x39
+002868 904ED1            MOV     DPTR,#pEvt
+00286B E0                MOVX    A,@DPTR
+00286C FB                MOV     R3,A
+00286D A3                INC     DPTR
+00286E E0                MOVX    A,@DPTR
+00286F FA                MOV     R2,A
+002870 A3                INC     DPTR
+002871 E0                MOVX    A,@DPTR
+002872 F9                MOV     R1,A
+002873 900001            MOV     DPTR,#01H
+002876 1203CF            LCALL   ?C?CLDOPTR
+002879 24D8              ADD     A,#0D8H
+00287B FF                MOV     R7,A
+00287C 90054F            MOV     DPTR,#ipcPinlen
+00287F E0                MOVX    A,@DPTR
+002880 FE                MOV     R6,A
+002881 04                INC     A
+002882 F0                MOVX    @DPTR,A
+002883 7450              MOV     A,#LOW ipcPin
+002885 2E                ADD     A,R6
+002886 F582              MOV     DPL,A
+002888 E4                CLR     A
+002889 3405              ADDC    A,#HIGH ipcPin
+00288B F583              MOV     DPH,A
+00288D EF                MOV     A,R7
+00288E F0                MOVX    @DPTR,A
+  228: 					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - 0x58);
+00288F 900001            MOV     DPTR,#01H
+002892 1203CF            LCALL   ?C?CLDOPTR
+002895 24A8              ADD     A,#0A8H
+002897 FF                MOV     R7,A
+002898 E4                CLR     A
+002899 34FF              ADDC    A,#0FFH
+00289B FE                MOV     R6,A
+00289C E4                CLR     A
+00289D FC                MOV     R4,A
+00289E FD                MOV     R5,A
+00289F C004              PUSH    AR4
+0028A1 C005              PUSH    AR5
+0028A3 C006              PUSH    AR6
+0028A5 C007              PUSH    AR7
+0028A7 7F0A              MOV     R7,#0AH
+0028A9 FE                MOV     R6,A
+0028AA 904D39            MOV     DPTR,#le_pin_code
+0028AD E0                MOVX    A,@DPTR
+0028AE F8                MOV     R0,A
+0028AF A3                INC     DPTR
+0028B0 E0                MOVX    A,@DPTR
+0028B1 F9                MOV     R1,A
+0028B2 A3                INC     DPTR
+0028B3 E0                MOVX    A,@DPTR
+0028B4 FA                MOV     R2,A
+0028B5 A3                INC     DPTR
+0028B6 E0                MOVX    A,@DPTR
+0028B7 FB                MOV     R3,A
+0028B8 12043A            LCALL   ?C?LMUL
+0028BB D003              POP     AR3
+0028BD D002              POP     AR2
+0028BF D001              POP     AR1
+0028C1 D000              POP     AR0
+0028C3 EF                MOV     A,R7
+0028C4 2B                ADD     A,R3
+0028C5 FF                MOV     R7,A
+0028C6 EE                MOV     A,R6
+0028C7 3A                ADDC    A,R2
+0028C8 FE                MOV     R6,A
+0028C9 ED                MOV     A,R5
+0028CA 39                ADDC    A,R1
+0028CB FD                MOV     R5,A
+0028CC EC                MOV     A,R4
+0028CD 38                ADDC    A,R0
+0028CE FC                MOV     R4,A
+0028CF 904D39            MOV     DPTR,#le_pin_code
+0028D2 120576            LCALL   ?C?LSTXDATA
+  229: 					le_pin_code_len++;
+0028D5 904DD2            MOV     DPTR,#le_pin_code_len
+0028D8 E0                MOVX    A,@DPTR
+0028D9 04                INC     A
+0028DA F0                MOVX    @DPTR,A
+  230: 				}
+  231: 			}
+0028DB 22                RET     
+0028DC         ?C0051?KB_PROCESS:
+  232: 			else if (pEvt->ksPool[0] <=HID_KEY_0 && pEvt->ksPool[0] >= HID_KEY_1)
+0028DC 904ED1            MOV     DPTR,#pEvt
+0028DF E0                MOVX    A,@DPTR
+0028E0 FB                MOV     R3,A
+0028E1 A3                INC     DPTR
+0028E2 E0                MOVX    A,@DPTR
+0028E3 FA                MOV     R2,A
+0028E4 A3                INC     DPTR
+0028E5 E0                MOVX    A,@DPTR
+0028E6 F9                MOV     R1,A
+0028E7 900001            MOV     DPTR,#01H
+0028EA 1203CF            LCALL   ?C?CLDOPTR
+0028ED FF                MOV     R7,A
+0028EE D3                SETB    C
+0028EF 9427              SUBB    A,#027H
+0028F1 4002              JC      $ + 4H
+0028F3 21AD              AJMP    ?C0055?KB_PROCESS
+0028F5 EF                MOV     A,R7
+0028F6 C3                CLR     C
+0028F7 941E              SUBB    A,#01EH
+0028F9 5002              JNC     $ + 4H
+0028FB 21AD              AJMP    ?C0055?KB_PROCESS
+  233: 			{
+  234: 				if (pEvt->ksPool[0] == HID_KEY_0) 
+0028FD EF                MOV     A,R7
+0028FE B42738            CJNE    A,#027H,?C0056?KB_PROCESS
+  235: 				{
+  236: 					ipcPin[ipcPinlen ++] = 0x30;	//0
+002901 90054F            MOV     DPTR,#ipcPinlen
+002904 E0                MOVX    A,@DPTR
+002905 FF                MOV     R7,A
+002906 04                INC     A
+002907 F0                MOVX    @DPTR,A
+002908 7450              MOV     A,#LOW ipcPin
+00290A 2F                ADD     A,R7
+00290B F582              MOV     DPL,A
+00290D E4                CLR     A
+00290E 3405              ADDC    A,#HIGH ipcPin
+002910 F583              MOV     DPH,A
+002912 7430              MOV     A,#030H
+002914 F0                MOVX    @DPTR,A
+  237: 					le_pin_code = le_pin_code*10;
+002915 904D39            MOV     DPTR,#le_pin_code
+002918 E0                MOVX    A,@DPTR
+002919 FC                MOV     R4,A
+00291A A3                INC     DPTR
+00291B E0                MOVX    A,@DPTR
+00291C FD                MOV     R5,A
+00291D A3                INC     DPTR
+00291E E0                MOVX    A,@DPTR
+00291F FE                MOV     R6,A
+002920 A3                INC     DPTR
+002921 E0                MOVX    A,@DPTR
+002922 FF                MOV     R7,A
+002923 E4                CLR     A
+002924 7B0A              MOV     R3,#0AH
+002926 FA                MOV     R2,A
+002927 F9                MOV     R1,A
+002928 F8                MOV     R0,A
+002929 12043A            LCALL   ?C?LMUL
+00292C 904D39            MOV     DPTR,#le_pin_code
+00292F 120576            LCALL   ?C?LSTXDATA
+  238: 					le_pin_code_len++;
+002932 904DD2            MOV     DPTR,#le_pin_code_len
+002935 E0                MOVX    A,@DPTR
+002936 04                INC     A
+002937 F0                MOVX    @DPTR,A
+  239: 				}
+002938 22                RET     
+002939         ?C0056?KB_PROCESS:
+  240: 				else 
+  241: 				{
+  242: 					ipcPin[ipcPinlen ++] = pEvt->ksPool[0]  - (HID_KEY_1 -1) + 0x30;
+002939 904ED1            MOV     DPTR,#pEvt
+00293C E0                MOVX    A,@DPTR
+00293D FB                MOV     R3,A
+00293E A3                INC     DPTR
+00293F E0                MOVX    A,@DPTR
+002940 FA                MOV     R2,A
+002941 A3                INC     DPTR
+002942 E0                MOVX    A,@DPTR
+002943 F9                MOV     R1,A
+002944 900001            MOV     DPTR,#01H
+002947 1203CF            LCALL   ?C?CLDOPTR
+00294A 2413              ADD     A,#013H
+00294C FF                MOV     R7,A
+00294D 90054F            MOV     DPTR,#ipcPinlen
+002950 E0                MOVX    A,@DPTR
+002951 FE                MOV     R6,A
+002952 04                INC     A
+002953 F0                MOVX    @DPTR,A
+002954 7450              MOV     A,#LOW ipcPin
+002956 2E                ADD     A,R6
+002957 F582              MOV     DPL,A
+002959 E4                CLR     A
+00295A 3405              ADDC    A,#HIGH ipcPin
+00295C F583              MOV     DPH,A
+00295E EF                MOV     A,R7
+00295F F0                MOVX    @DPTR,A
+  243: 					le_pin_code = (le_pin_code*10)+(pEvt->ksPool[0]  - (HID_KEY_1 -1));
+002960 900001            MOV     DPTR,#01H
+002963 1203CF            LCALL   ?C?CLDOPTR
+002966 24E3              ADD     A,#0E3H
+002968 FF                MOV     R7,A
+002969 E4                CLR     A
+00296A 34FF              ADDC    A,#0FFH
+00296C FE                MOV     R6,A
+00296D E4                CLR     A
+00296E FC                MOV     R4,A
+00296F FD                MOV     R5,A
+002970 C004              PUSH    AR4
+002972 C005              PUSH    AR5
+002974 C006              PUSH    AR6
+002976 C007              PUSH    AR7
+002978 7F0A              MOV     R7,#0AH
+00297A FE                MOV     R6,A
+00297B 904D39            MOV     DPTR,#le_pin_code
+00297E E0                MOVX    A,@DPTR
+00297F F8                MOV     R0,A
+002980 A3                INC     DPTR
+002981 E0                MOVX    A,@DPTR
+002982 F9                MOV     R1,A
+002983 A3                INC     DPTR
+002984 E0                MOVX    A,@DPTR
+002985 FA                MOV     R2,A
+002986 A3                INC     DPTR
+002987 E0                MOVX    A,@DPTR
+002988 FB                MOV     R3,A
+002989 12043A            LCALL   ?C?LMUL
+00298C D003              POP     AR3
+00298E D002              POP     AR2
+002990 D001              POP     AR1
+002992 D000              POP     AR0
+002994 EF                MOV     A,R7
+002995 2B                ADD     A,R3
+002996 FF                MOV     R7,A
+002997 EE                MOV     A,R6
+002998 3A                ADDC    A,R2
+002999 FE                MOV     R6,A
+00299A ED                MOV     A,R5
+00299B 39                ADDC    A,R1
+00299C FD                MOV     R5,A
+00299D EC                MOV     A,R4
+00299E 38                ADDC    A,R0
+00299F FC                MOV     R4,A
+0029A0 904D39            MOV     DPTR,#le_pin_code
+0029A3 120576            LCALL   ?C?LSTXDATA
+  244: 					le_pin_code_len++;
+0029A6 904DD2            MOV     DPTR,#le_pin_code_len
+0029A9 E0                MOVX    A,@DPTR
+0029AA 04                INC     A
+0029AB F0                MOVX    @DPTR,A
+  245: 				}
+  246: 			}
+0029AC 22                RET     
+0029AD         ?C0055?KB_PROCESS:
+  247: 			else if(pEvt->ksPool[0] == HID_KEY_BACKSPACE) 
+0029AD 904ED1            MOV     DPTR,#pEvt
+0029B0 E0                MOVX    A,@DPTR
+0029B1 FB                MOV     R3,A
+0029B2 A3                INC     DPTR
+0029B3 E0                MOVX    A,@DPTR
+0029B4 FA                MOV     R2,A
+0029B5 A3                INC     DPTR
+0029B6 E0                MOVX    A,@DPTR
+0029B7 F9                MOV     R1,A
+0029B8 900001            MOV     DPTR,#01H
+0029BB 1203CF            LCALL   ?C?CLDOPTR
+0029BE 642A              XRL     A,#02AH
+0029C0 7040              JNZ     ?C0059?KB_PROCESS
+  248: 			{
+  249: 				if(ipcPinlen)
+0029C2 90054F            MOV     DPTR,#ipcPinlen
+0029C5 E0                MOVX    A,@DPTR
+0029C6 6010              JZ      ?C0060?KB_PROCESS
+  250: 					ipcPin[ipcPinlen --] = 0;
+0029C8 E0                MOVX    A,@DPTR
+0029C9 FF                MOV     R7,A
+0029CA 14                DEC     A
+0029CB F0                MOVX    @DPTR,A
+0029CC 7450              MOV     A,#LOW ipcPin
+0029CE 2F                ADD     A,R7
+0029CF F582              MOV     DPL,A
+0029D1 E4                CLR     A
+0029D2 3405              ADDC    A,#HIGH ipcPin
+0029D4 F583              MOV     DPH,A
+0029D6 E4                CLR     A
+0029D7 F0                MOVX    @DPTR,A
+0029D8         ?C0060?KB_PROCESS:
+  251: 				if(le_pin_code_len)
+0029D8 904DD2            MOV     DPTR,#le_pin_code_len
+0029DB E0                MOVX    A,@DPTR
+0029DC 6032              JZ      ?C0044?KB_PROCESS
+  252: 				{
+  253: 					le_pin_code = le_pin_code /10;
+0029DE 904D39            MOV     DPTR,#le_pin_code
+0029E1 E0                MOVX    A,@DPTR
+0029E2 FC                MOV     R4,A
+0029E3 A3                INC     DPTR
+0029E4 E0                MOVX    A,@DPTR
+0029E5 FD                MOV     R5,A
+0029E6 A3                INC     DPTR
+0029E7 E0                MOVX    A,@DPTR
+0029E8 FE                MOV     R6,A
+0029E9 A3                INC     DPTR
+0029EA E0                MOVX    A,@DPTR
+0029EB FF                MOV     R7,A
+0029EC E4                CLR     A
+0029ED 7B0A              MOV     R3,#0AH
+0029EF FA                MOV     R2,A
+0029F0 F9                MOV     R1,A
+0029F1 F8                MOV     R0,A
+0029F2 1204C5            LCALL   ?C?ULDIV
+0029F5 904D39            MOV     DPTR,#le_pin_code
+0029F8 120576            LCALL   ?C?LSTXDATA
+  254: 					le_pin_code_len--;
+0029FB 904DD2            MOV     DPTR,#le_pin_code_len
+0029FE E0                MOVX    A,@DPTR
+0029FF 14                DEC     A
+002A00 F0                MOVX    @DPTR,A
+  255: 				}	
+  256: 			}
+002A01 22                RET     
+002A02         ?C0059?KB_PROCESS:
+  257: 			else
+  258: 			{
+  259: 				kb_motion_keyscan(pEvt);
+002A02 904ED1            MOV     DPTR,#pEvt
+002A05 E0                MOVX    A,@DPTR
+002A06 FB                MOV     R3,A
+002A07 A3                INC     DPTR
+002A08 E0                MOVX    A,@DPTR
+002A09 FA                MOV     R2,A
+002A0A A3                INC     DPTR
+002A0B E0                MOVX    A,@DPTR
+002A0C F9                MOV     R1,A
+002A0D 121249            LCALL   _kb_motion_keyscan
+  260: 			}
+  261: 		}
+  262: 	}
+  263: }
+002A10         ?C0044?KB_PROCESS:
+002A10 22                RET     
+----- FUNCTION kb_bt_pincode_enter (END) -------
+
+
+----- FUNCTION _kb_device_select (BEGIN) -----
+ FILE: 'kb_process.c'
+  485: byte kb_device_select(tKSEVENT *pEvt)
+  486: {
+002A11 904EAE            MOV     DPTR,#pEvt
+002A14 EB                MOV     A,R3
+002A15 F0                MOVX    @DPTR,A
+002A16 A3                INC     DPTR
+002A17 EA                MOV     A,R2
+002A18 F0                MOVX    @DPTR,A
+002A19 A3                INC     DPTR
+002A1A E9                MOV     A,R1
+002A1B F0                MOVX    @DPTR,A
+  487: 	byte temp = 0;
+  488: 	byte i=0;
+002A1C E4                CLR     A
+002A1D A3                INC     DPTR
+002A1E F0                MOVX    @DPTR,A
+  489: 	
+002A1F A3                INC     DPTR
+002A20 F0                MOVX    @DPTR,A
+  490: 	if (fn_flag == 1) 
+002A21 904DDB            MOV     DPTR,#fn_flag
+002A24 E0                MOVX    A,@DPTR
+002A25 6401              XRL     A,#01H
+002A27 6002              JZ      $ + 4H
+002A29 41E8              AJMP    ?C0115?KB_PROCESS
+  491: 	{
+  492: 		i = KS_BUFF_POLL_LEN-1;
+002A2B 904EB2            MOV     DPTR,#i
+002A2E 7405              MOV     A,#05H
+002A30 F0                MOVX    @DPTR,A
+002A31         ?C0116?KB_PROCESS:
+  493: 
+  494: 		while (i--) 
+002A31 904EB2            MOV     DPTR,#i
+002A34 E0                MOVX    A,@DPTR
+002A35 FF                MOV     R7,A
+002A36 14                DEC     A
+002A37 F0                MOVX    @DPTR,A
+002A38 EF                MOV     A,R7
+002A39 7002              JNZ     $ + 4H
+002A3B 41EF              AJMP    ?C0129?KB_PROCESS
+  495: 		{
+  496: 			temp = pEvt->ksPool[i];
+002A3D 904EAE            MOV     DPTR,#pEvt
+002A40 E0                MOVX    A,@DPTR
+002A41 FB                MOV     R3,A
+002A42 A3                INC     DPTR
+002A43 E0                MOVX    A,@DPTR
+002A44 FA                MOV     R2,A
+002A45 A3                INC     DPTR
+002A46 E0                MOVX    A,@DPTR
+002A47 2401              ADD     A,#01H
+002A49 F9                MOV     R1,A
+002A4A E4                CLR     A
+002A4B 3A                ADDC    A,R2
+002A4C FA                MOV     R2,A
+002A4D 904EB2            MOV     DPTR,#i
+002A50 E0                MOVX    A,@DPTR
+002A51 7E00              MOV     R6,#00H
+002A53 29                ADD     A,R1
+002A54 F9                MOV     R1,A
+002A55 EE                MOV     A,R6
+002A56 3A                ADDC    A,R2
+002A57 FA                MOV     R2,A
+002A58 1203B6            LCALL   ?C?CLDPTR
+002A5B 904EB1            MOV     DPTR,#temp
+002A5E F0                MOVX    @DPTR,A
+  497: 
+  498: 			if (temp >= HID_KEY_1 && temp <= HID_KEY_4) 
+002A5F C3                CLR     C
+002A60 941E              SUBB    A,#01EH
+002A62 407B              JC      ?C0118?KB_PROCESS
+002A64 E0                MOVX    A,@DPTR
+002A65 FF                MOV     R7,A
+002A66 D3                SETB    C
+002A67 9421              SUBB    A,#021H
+002A69 5074              JNC     ?C0118?KB_PROCESS
+  499: 			{
+  500: 				switch(temp)
+002A6B EF                MOV     A,R7
+002A6C 24E2              ADD     A,#0E2H
+002A6E 24FD              ADD     A,#0FDH
+002A70 5004              JNC     ?C0122?KB_PROCESS
+002A72 6032              JZ      ?C0125?KB_PROCESS
+002A74 8066              SJMP    ?C0119?KB_PROCESS
+  501: 				{
+  502: 					case HID_KEY_1:
+  503: 					case HID_KEY_2:
+  504: 					case HID_KEY_3:		//BT
+002A76         ?C0122?KB_PROCESS:
+  505: 						g_variable.delay_enter_lpm_timer = 10;
+002A76 904CEA            MOV     DPTR,#g_variable+02BH
+002A79 740A              MOV     A,#0AH
+002A7B F0                MOVX    @DPTR,A
+  506: 
+  507: 						g_variable.button_flag |= KEY_FLAG_FN_DEVICE_BUTTON;
+002A7C 904CCE            MOV     DPTR,#g_variable+0FH
+002A7F E0                MOVX    A,@DPTR
+002A80 4408              ORL     A,#08H
+002A82 F0                MOVX    @DPTR,A
+  508: 						if((g_variable.current_device_num != (temp-(HID_KEY_1 - 1))) ||(g_variable.g24_currentState == CHANGE_TO_24
+>> G_CONNECTED))
+002A83 904EB1            MOV     DPTR,#temp
+002A86 E0                MOVX    A,@DPTR
+002A87 24E3              ADD     A,#0E3H
+002A89 FF                MOV     R7,A
+002A8A 904CC3            MOV     DPTR,#g_variable+04H
+002A8D E0                MOVX    A,@DPTR
+002A8E B50708            CJNE    A,AR7,?C0124?KB_PROCESS
+002A91 904CC5            MOV     DPTR,#g_variable+06H
+002A94 E0                MOVX    A,@DPTR
+002A95 6403              XRL     A,#03H
+002A97 7043              JNZ     ?C0119?KB_PROCESS
+002A99         ?C0124?KB_PROCESS:
+  509: 						{
+  510: 							g_variable.current_device_num = temp-(HID_KEY_1 - 1);
+002A99 904CC3            MOV     DPTR,#g_variable+04H
+002A9C EF                MOV     A,R7
+002A9D F0                MOVX    @DPTR,A
+  511: 							g_variable.button_reconnect_flag = 1;		// long press = 3s enter discovery
+002A9E 904CCC            MOV     DPTR,#g_variable+0DH
+002AA1 7401              MOV     A,#01H
+002AA3 F0                MOVX    @DPTR,A
+  512: 						}
+  513: 						break;
+002AA4 8036              SJMP    ?C0119?KB_PROCESS
+  514: 					case HID_KEY_4: 			//g24 switch
+002AA6         ?C0125?KB_PROCESS:
+  515: 						if( (g_variable.current_device_num != 0) && (g_variable.current_device_num != 0xfe))
+002AA6 904CC3            MOV     DPTR,#g_variable+04H
+002AA9 E0                MOVX    A,@DPTR
+002AAA FF                MOV     R7,A
+002AAB 602F              JZ      ?C0119?KB_PROCESS
+002AAD 64FE              XRL     A,#0FEH
+002AAF 602B              JZ      ?C0119?KB_PROCESS
+  516: 						{
+  517: 							g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+002AB1 904CCE            MOV     DPTR,#g_variable+0FH
+002AB4 E0                MOVX    A,@DPTR
+002AB5 54F7              ANL     A,#0F7H
+002AB7 F0                MOVX    @DPTR,A
+  518: 							g_variable.current_device_num =0;
+002AB8 E4                CLR     A
+002AB9 904CC3            MOV     DPTR,#g_variable+04H
+002ABC F0                MOVX    @DPTR,A
+  519: 							YC_key_action_handle(KEY_STOP_DISCOVERY);
+002ABD 7F0D              MOV     R7,#0DH
+002ABF 120919            LCALL   _YC_key_action_handle
+  520: 							g_variable.release_data = 1;
+002AC2 904CEB            MOV     DPTR,#g_variable+02CH
+002AC5 7401              MOV     A,#01H
+002AC7 F0                MOVX    @DPTR,A
+  521: 							g_variable.last_device_num = g_variable.current_device_num;
+002AC8 904CC3            MOV     DPTR,#g_variable+04H
+002ACB E0                MOVX    A,@DPTR
+002ACC 904CC0            MOV     DPTR,#g_variable+01H
+002ACF F0                MOVX    @DPTR,A
+  522: 							g_variable.update_eeprom_flag = 1;
+002AD0 904CBF            MOV     DPTR,#g_variable
+002AD3 7401              MOV     A,#01H
+002AD5 F0                MOVX    @DPTR,A
+  523: 							YC_update_eeprom_data();
+002AD6 121A27            LCALL   YC_update_eeprom_data
+  524: 							System_Reset_Connect();
+002AD9 121B46            LCALL   System_Reset_Connect
+  525: 						}
+  526: 						break;
+  527: 				}
+002ADC         ?C0119?KB_PROCESS:
+  528: 				return 1;
+002ADC 7F01              MOV     R7,#01H
+002ADE 22                RET     
+  529: 			}
+002ADF         ?C0118?KB_PROCESS:
+  530: 			else
+  531: 			{
+  532: 				g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+002ADF 904CCE            MOV     DPTR,#g_variable+0FH
+002AE2 E0                MOVX    A,@DPTR
+002AE3 54F7              ANL     A,#0F7H
+002AE5 F0                MOVX    @DPTR,A
+  533: 			}
+  534: 		}
+002AE6 4131              AJMP    ?C0116?KB_PROCESS
+  535: 	}
+002AE8         ?C0115?KB_PROCESS:
+  536: 	else
+  537: 	{
+  538: 		g_variable.button_flag &= ~KEY_FLAG_FN_DEVICE_BUTTON;
+002AE8 904CCE            MOV     DPTR,#g_variable+0FH
+002AEB E0                MOVX    A,@DPTR
+002AEC 54F7              ANL     A,#0F7H
+002AEE F0                MOVX    @DPTR,A
+  539: 	}
+002AEF         ?C0129?KB_PROCESS:
+  540: 	return 0;
+002AEF 7F00              MOV     R7,#00H
+  541: }
+002AF1 22                RET     
+----- FUNCTION _kb_device_select (END) -------
+
+
+----- FUNCTION _key_replace (BEGIN) -----
+ FILE: 'kb_process.c'
+  545: byte key_replace(byte key_state, byte key_value , byte key_replace_value )
+  546: {
+;---- Variable 'key_state' assigned to Register 'R7' ----
+;---- Variable 'key_replace_value' assigned to Register 'R3' ----
+;---- Variable 'key_value' assigned to Register 'R5' ----
+  547: 	byte temp_value;
+  548: 
+  549: 	temp_value = key_value;
+002AF2 AE05              MOV     R6,AR5
+;---- Variable 'temp_value' assigned to Register 'R6' ----
+  550: 	if (key_state & 1)
+002AF4 EF                MOV     A,R7
+002AF5 30E00A            JNB     ACC.0,?C0130?KB_PROCESS
+  551: 	{
+  552: 		fn_tx_flag++;
+002AF8 904DD3            MOV     DPTR,#fn_tx_flag
+002AFB E0                MOVX    A,@DPTR
+002AFC 04                INC     A
+002AFD F0                MOVX    @DPTR,A
+  553: 		temp_value = key_replace_value;
+002AFE AE03              MOV     R6,AR3
+  554: 	}
+002B00 800D              SJMP    ?C0131?KB_PROCESS
+002B02         ?C0130?KB_PROCESS:
+  555: 	else
+  556: 	{
+  557: 		if(fn_tx_flag != 0)
+002B02 904DD3            MOV     DPTR,#fn_tx_flag
+002B05 E0                MOVX    A,@DPTR
+002B06 6007              JZ      ?C0131?KB_PROCESS
+  558: 		{	
+  559: 			fn_tx_flag--;
+002B08 E0                MOVX    A,@DPTR
+002B09 14                DEC     A
+002B0A F0                MOVX    @DPTR,A
+  560: 			temp_value = key_replace_value;
+002B0B AF03              MOV     R7,AR3
+002B0D AE07              MOV     R6,AR7
+  561: 		}
+  562: 	}
+002B0F         ?C0131?KB_PROCESS:
+  563: 
+  564: 	return temp_value;
+002B0F AF06              MOV     R7,AR6
+  565: }
+002B11 22                RET     
+----- FUNCTION _key_replace (END) -------
+
+
+----- FUNCTION _key_fn_function (BEGIN) -----
+ FILE: 'kb_process.c'
+  570: byte key_fn_function(byte state ,byte key_value)
+  571: {
+;---- Variable 'state' assigned to Register 'R6' ----
+002B12 AE07              MOV     R6,AR7
+;---- Variable 'key_value' assigned to Register 'R4' ----
+002B14 AC05              MOV     R4,AR5
+  572: 	byte temp = 0;
+  573: 
+002B16 E4                CLR     A
+002B17 904EF2            MOV     DPTR,#temp
+002B1A F0                MOVX    @DPTR,A
+  574: 	temp = key_value;
+002B1B EC                MOV     A,R4
+002B1C F0                MOVX    @DPTR,A
+  575: 	if(fn_flag == 1)			// Fn lock
+002B1D 904DDB            MOV     DPTR,#fn_flag
+002B20 E0                MOVX    A,@DPTR
+002B21 6401              XRL     A,#01H
+002B23 6002              JZ      $ + 4H
+002B25 816A              AJMP    ?C0134?KB_PROCESS
+  576: 	{
+  577: 		
+  578: 		switch (key_value)
+002B27 EC                MOV     A,R4
+002B28 24C6              ADD     A,#0C6H
+002B2A B40C00            CJNE    A,#0CH,?C0204?KB_PROCESS
+002B2D         ?C0204?KB_PROCESS:
+002B2D 4002              JC      $ + 4H
+002B2F 816A              AJMP    ?C0134?KB_PROCESS
+002B31 902B3F            MOV     DPTR,#02B3FH
+002B34 75F003            MOV     B,#03H
+002B37 A4                MUL     AB
+002B38 C583              XCH     A,DPH
+002B3A 25F0              ADD     A,B
+002B3C C583              XCH     A,DPH
+002B3E 73                JMP     @A+DPTR
+002B3F         ?C0205?KB_PROCESS:
+002B3F 022B63            LJMP    ?C0136?KB_PROCESS
+002B42 022B72            LJMP    ?C0137?KB_PROCESS
+002B45 022B81            LJMP    ?C0138?KB_PROCESS
+002B48 022BAC            LJMP    ?C0141?KB_PROCESS
+002B4B 022BD6            LJMP    ?C0144?KB_PROCESS
+002B4E 022C01            LJMP    ?C0147?KB_PROCESS
+002B51 022C10            LJMP    ?C0148?KB_PROCESS
+002B54 022C1F            LJMP    ?C0149?KB_PROCESS
+002B57 022C2E            LJMP    ?C0150?KB_PROCESS
+002B5A 022C3D            LJMP    ?C0151?KB_PROCESS
+002B5D 022C4C            LJMP    ?C0152?KB_PROCESS
+002B60 022C5B            LJMP    ?C0153?KB_PROCESS
+  579: 		{ 
+  580: 			case HID_KEY_F1:
+002B63         ?C0136?KB_PROCESS:
+  581: 				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_DOWN);
+002B63 AF06              MOV     R7,AR6
+002B65 AD04              MOV     R5,AR4
+002B67 7BD7              MOV     R3,#0D7H
+002B69 51F2              ACALL   _key_replace
+002B6B 904EF2            MOV     DPTR,#temp
+002B6E EF                MOV     A,R7
+002B6F F0                MOVX    @DPTR,A
+  582: 				break;
+002B70 816A              AJMP    ?C0134?KB_PROCESS
+  583: 			case HID_KEY_F2:
+002B72         ?C0137?KB_PROCESS:
+  584: 				temp = key_replace(state,key_value,HID_MULTIKEY_LIGHT_UP);
+002B72 AF06              MOV     R7,AR6
+002B74 AD04              MOV     R5,AR4
+002B76 7BD8              MOV     R3,#0D8H
+002B78 51F2              ACALL   _key_replace
+002B7A 904EF2            MOV     DPTR,#temp
+002B7D EF                MOV     A,R7
+002B7E F0                MOVX    @DPTR,A
+  585: 				break;
+002B7F 816A              AJMP    ?C0134?KB_PROCESS
+  586: 			case HID_KEY_F3:
+002B81         ?C0138?KB_PROCESS:
+  587: 				g_variable.key_combination_ctrl = KS_SEL_LALT;
+002B81 904CF5            MOV     DPTR,#g_variable+036H
+002B84 7404              MOV     A,#04H
+002B86 F0                MOVX    @DPTR,A
+  588: 					
+  589: 				g_variable.key_combination_keyvalue = HID_KEY_TAB;
+002B87 A3                INC     DPTR
+002B88 742B              MOV     A,#02BH
+002B8A F0                MOVX    @DPTR,A
+  590: 				
+  591: 				if(state & 1)
+002B8B EE                MOV     A,R6
+002B8C 30E008            JNB     ACC.0,?C0139?KB_PROCESS
+  592: 				{
+  593: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+002B8F 904CF4            MOV     DPTR,#g_variable+035H
+002B92 7401              MOV     A,#01H
+002B94 F0                MOVX    @DPTR,A
+  594: 				}
+002B95 8006              SJMP    ?C0140?KB_PROCESS
+002B97         ?C0139?KB_PROCESS:
+  595: 				else
+  596: 				{
+  597: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+002B97 904CF4            MOV     DPTR,#g_variable+035H
+002B9A 7404              MOV     A,#04H
+002B9C F0                MOVX    @DPTR,A
+  598: 				}
+002B9D         ?C0140?KB_PROCESS:
+  599: 				
+  600: 				temp = key_replace(state,key_value,HID_KEY_NULL);
+002B9D AF06              MOV     R7,AR6
+002B9F AD04              MOV     R5,AR4
+002BA1 E4                CLR     A
+002BA2 FB                MOV     R3,A
+002BA3 51F2              ACALL   _key_replace
+002BA5 904EF2            MOV     DPTR,#temp
+002BA8 EF                MOV     A,R7
+002BA9 F0                MOVX    @DPTR,A
+  601: 				break;
+002BAA 816A              AJMP    ?C0134?KB_PROCESS
+  602: 			case HID_KEY_F4:
+002BAC         ?C0141?KB_PROCESS:
+  603: 				g_variable.key_combination_ctrl = KS_SEL_LGUI;
+002BAC 904CF5            MOV     DPTR,#g_variable+036H
+002BAF 7408              MOV     A,#08H
+002BB1 F0                MOVX    @DPTR,A
+  604: 				g_variable.key_combination_keyvalue = HID_KEY_D;
+002BB2 A3                INC     DPTR
+002BB3 14                DEC     A
+002BB4 F0                MOVX    @DPTR,A
+  605: 				
+  606: 				if(state & 1)
+002BB5 EE                MOV     A,R6
+002BB6 30E008            JNB     ACC.0,?C0142?KB_PROCESS
+  607: 				{
+  608: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+002BB9 904CF4            MOV     DPTR,#g_variable+035H
+002BBC 7401              MOV     A,#01H
+002BBE F0                MOVX    @DPTR,A
+  609: 				}
+002BBF 8006              SJMP    ?C0143?KB_PROCESS
+002BC1         ?C0142?KB_PROCESS:
+  610: 				else
+  611: 				{
+  612: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+002BC1 904CF4            MOV     DPTR,#g_variable+035H
+002BC4 7404              MOV     A,#04H
+002BC6 F0                MOVX    @DPTR,A
+  613: 				}
+002BC7         ?C0143?KB_PROCESS:
+  614: 				temp = key_replace(state,key_value,HID_KEY_NULL);
+002BC7 AF06              MOV     R7,AR6
+002BC9 AD04              MOV     R5,AR4
+002BCB E4                CLR     A
+002BCC FB                MOV     R3,A
+002BCD 51F2              ACALL   _key_replace
+002BCF 904EF2            MOV     DPTR,#temp
+002BD2 EF                MOV     A,R7
+002BD3 F0                MOVX    @DPTR,A
+  615: 
+  616: 				break;
+002BD4 816A              AJMP    ?C0134?KB_PROCESS
+  617: 			case HID_KEY_F5:
+002BD6         ?C0144?KB_PROCESS:
+  618: 				g_variable.key_combination_ctrl = KS_SEL_LGUI;
+002BD6 904CF5            MOV     DPTR,#g_variable+036H
+002BD9 7408              MOV     A,#08H
+002BDB F0                MOVX    @DPTR,A
+  619: 				g_variable.key_combination_keyvalue = HID_KEY_LEFT_ARROW;
+002BDC A3                INC     DPTR
+002BDD 7450              MOV     A,#050H
+002BDF F0                MOVX    @DPTR,A
+  620: 				
+  621: 				if(state & 1)
+002BE0 EE                MOV     A,R6
+002BE1 30E008            JNB     ACC.0,?C0145?KB_PROCESS
+  622: 				{
+  623: 					g_variable.key_combination_step = CAMBINATION_KEY_PRESS;
+002BE4 904CF4            MOV     DPTR,#g_variable+035H
+002BE7 7401              MOV     A,#01H
+002BE9 F0                MOVX    @DPTR,A
+  624: 				}
+002BEA 8006              SJMP    ?C0146?KB_PROCESS
+002BEC         ?C0145?KB_PROCESS:
+  625: 				else
+  626: 				{
+  627: 					g_variable.key_combination_step = CAMBINATION_KEY_WAIT_RELEASE;
+002BEC 904CF4            MOV     DPTR,#g_variable+035H
+002BEF 7404              MOV     A,#04H
+002BF1 F0                MOVX    @DPTR,A
+  628: 				}
+002BF2         ?C0146?KB_PROCESS:
+  629: 				temp = key_replace(state,key_value,HID_KEY_NULL);
+002BF2 AF06              MOV     R7,AR6
+002BF4 AD04              MOV     R5,AR4
+002BF6 E4                CLR     A
+002BF7 FB                MOV     R3,A
+002BF8 51F2              ACALL   _key_replace
+002BFA 904EF2            MOV     DPTR,#temp
+002BFD EF                MOV     A,R7
+002BFE F0                MOVX    @DPTR,A
+  630: 				break;
+002BFF 8069              SJMP    ?C0134?KB_PROCESS
+  631: 			case HID_KEY_F6:
+002C01         ?C0147?KB_PROCESS:
+  632: 				temp = key_replace(state,key_value,HID_MULTIKEY_AC_SEARCH);
+002C01 AF06              MOV     R7,AR6
+002C03 AD04              MOV     R5,AR4
+002C05 7BD5              MOV     R3,#0D5H
+002C07 51F2              ACALL   _key_replace
+002C09 904EF2            MOV     DPTR,#temp
+002C0C EF                MOV     A,R7
+002C0D F0                MOVX    @DPTR,A
+  633: 				break;
+002C0E 805A              SJMP    ?C0134?KB_PROCESS
+  634: 			case HID_KEY_F7:
+002C10         ?C0148?KB_PROCESS:
+  635: 				temp = key_replace(state,key_value,HID_MULTIKEY_PRE_TRACK);
+002C10 AF06              MOV     R7,AR6
+002C12 AD04              MOV     R5,AR4
+002C14 7BF4              MOV     R3,#0F4H
+002C16 51F2              ACALL   _key_replace
+002C18 904EF2            MOV     DPTR,#temp
+002C1B EF                MOV     A,R7
+002C1C F0                MOVX    @DPTR,A
+  636: 				break;
+002C1D 804B              SJMP    ?C0134?KB_PROCESS
+  637: 			case HID_KEY_F8:
+002C1F         ?C0149?KB_PROCESS:
+  638: 				temp = key_replace(state,key_value,HID_MULTIKEY_PALY);
+002C1F AF06              MOV     R7,AR6
+002C21 AD04              MOV     R5,AR4
+002C23 7BF2              MOV     R3,#0F2H
+002C25 51F2              ACALL   _key_replace
+002C27 904EF2            MOV     DPTR,#temp
+002C2A EF                MOV     A,R7
+002C2B F0                MOVX    @DPTR,A
+  639: 				break;
+002C2C 803C              SJMP    ?C0134?KB_PROCESS
+  640: 			case HID_KEY_F9:
+002C2E         ?C0150?KB_PROCESS:
+  641: 				temp = key_replace(state,key_value,HID_MULTIKEY_NEXT_TRACK);
+002C2E AF06              MOV     R7,AR6
+002C30 AD04              MOV     R5,AR4
+002C32 7BF5              MOV     R3,#0F5H
+002C34 51F2              ACALL   _key_replace
+002C36 904EF2            MOV     DPTR,#temp
+002C39 EF                MOV     A,R7
+002C3A F0                MOVX    @DPTR,A
+  642: 				break;
+002C3B 802D              SJMP    ?C0134?KB_PROCESS
+  643: 			case HID_KEY_F10:
+002C3D         ?C0151?KB_PROCESS:
+  644: 				temp = key_replace(state,key_value,HID_MULTIKEY_MUTE);
+002C3D AF06              MOV     R7,AR6
+002C3F AD04              MOV     R5,AR4
+002C41 7BF8              MOV     R3,#0F8H
+002C43 51F2              ACALL   _key_replace
+002C45 904EF2            MOV     DPTR,#temp
+002C48 EF                MOV     A,R7
+002C49 F0                MOVX    @DPTR,A
+  645: 				break;
+002C4A 801E              SJMP    ?C0134?KB_PROCESS
+  646: 			case HID_KEY_F11:
+002C4C         ?C0152?KB_PROCESS:
+  647: 				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_DOWN);
+002C4C AF06              MOV     R7,AR6
+002C4E AD04              MOV     R5,AR4
+002C50 7BF6              MOV     R3,#0F6H
+002C52 51F2              ACALL   _key_replace
+002C54 904EF2            MOV     DPTR,#temp
+002C57 EF                MOV     A,R7
+002C58 F0                MOVX    @DPTR,A
+  648: 				break;
+002C59 800F              SJMP    ?C0134?KB_PROCESS
+  649: 			case HID_KEY_F12:
+002C5B         ?C0153?KB_PROCESS:
+  650: 				temp = key_replace(state,key_value,HID_MULTIKEY_VOL_UP);
+002C5B AF06              MOV     R7,AR6
+002C5D AE04              MOV     R6,AR4
+002C5F AD06              MOV     R5,AR6
+002C61 7BF7              MOV     R3,#0F7H
+002C63 51F2              ACALL   _key_replace
+002C65 904EF2            MOV     DPTR,#temp
+002C68 EF                MOV     A,R7
+002C69 F0                MOVX    @DPTR,A
+  651: 				break;
+  652: 			default :
+  653: 				break;
+  654: 		}
+  655: 	}
+002C6A         ?C0134?KB_PROCESS:
+  656: 
+  657: 	return temp;
+002C6A 904EF2            MOV     DPTR,#temp
+002C6D E0                MOVX    A,@DPTR
+002C6E FF                MOV     R7,A
+  658: }
+002C6F 22                RET     
+----- FUNCTION _key_fn_function (END) -------
+
+
+----- FUNCTION _kb_multikey_setup (BEGIN) -----
+ FILE: 'kb_process.c'
+  662: void kb_multikey_setup(tKSEVENT *pEvt)
+  663: {
+002C70 904EC1            MOV     DPTR,#pEvt
+002C73 EB                MOV     A,R3
+002C74 F0                MOVX    @DPTR,A
+002C75 A3                INC     DPTR
+002C76 EA                MOV     A,R2
+002C77 F0                MOVX    @DPTR,A
+002C78 A3                INC     DPTR
+002C79 E9                MOV     A,R1
+002C7A F0                MOVX    @DPTR,A
+  664: 	byte i = 0;
+  665: 	
+002C7B E4                CLR     A
+002C7C A3                INC     DPTR
+002C7D F0                MOVX    @DPTR,A
+  666: 	for (i = 0;i < 6;i++)
+002C7E F0                MOVX    @DPTR,A
+002C7F         ?C0156?KB_PROCESS:
+002C7F 904EC4            MOV     DPTR,#i
+002C82 E0                MOVX    A,@DPTR
+002C83 FF                MOV     R7,A
+002C84 C3                CLR     C
+002C85 9406              SUBB    A,#06H
+002C87 4002              JC      $ + 4H
+002C89 C1E0              AJMP    ?C0201?KB_PROCESS
+  667: 	{		
+  668: 		if ((pEvt->ksPool[i] &0xF0) == 0xf0 
+002C8B 904EC1            MOV     DPTR,#pEvt
+002C8E E0                MOVX    A,@DPTR
+002C8F FB                MOV     R3,A
+002C90 A3                INC     DPTR
+002C91 E0                MOVX    A,@DPTR
+002C92 FA                MOV     R2,A
+002C93 A3                INC     DPTR
+002C94 E0                MOVX    A,@DPTR
+002C95 2401              ADD     A,#01H
+002C97 F9                MOV     R1,A
+002C98 E4                CLR     A
+002C99 3A                ADDC    A,R2
+002C9A FA                MOV     R2,A
+002C9B 7E00              MOV     R6,#00H
+002C9D E9                MOV     A,R1
+002C9E 2F                ADD     A,R7
+002C9F F9                MOV     R1,A
+002CA0 EE                MOV     A,R6
+002CA1 3A                ADDC    A,R2
+002CA2 FA                MOV     R2,A
+002CA3 1203B6            LCALL   ?C?CLDPTR
+002CA6 FF                MOV     R7,A
+002CA7 54F0              ANL     A,#0F0H
+002CA9 64F0              XRL     A,#0F0H
+002CAB 6009              JZ      ?C0160?KB_PROCESS
+002CAD EF                MOV     A,R7
+002CAE 54D0              ANL     A,#0D0H
+002CB0 64D0              XRL     A,#0D0H
+002CB2 6002              JZ      $ + 4H
+002CB4 C1D8              AJMP    ?C0158?KB_PROCESS
+002CB6         ?C0160?KB_PROCESS:
+  669: 			|| (pEvt->ksPool[i] &0xD0) == 0xD0)
+  670: 		{
+  671: 			if (pEvt->ksPool[i] ==  HID_MULTIKEY_MEDIA) //media select
+002CB6 1203B6            LCALL   ?C?CLDPTR
+002CB9 FB                MOV     R3,A
+002CBA B4F109            CJNE    A,#0F1H,?C0161?KB_PROCESS
+  672: 			{
+  673: 				kb_set_multikey(0x0183); 
+002CBD 7F83              MOV     R7,#083H
+002CBF 7E01              MOV     R6,#01H
+002CC1 122781            LCALL   _kb_set_multikey
+  674: 			}
+002CC4 C1AD              AJMP    ?C0162?KB_PROCESS
+002CC6         ?C0161?KB_PROCESS:
+  675: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PALY) //play / pause
+002CC6 EB                MOV     A,R3
+002CC7 B4F209            CJNE    A,#0F2H,?C0163?KB_PROCESS
+  676: 			{ 
+  677: 				kb_set_multikey(0x00cd);
+002CCA 7FCD              MOV     R7,#0CDH
+002CCC 7E00              MOV     R6,#00H
+002CCE 122781            LCALL   _kb_set_multikey
+  678: 			}
+002CD1 C1AD              AJMP    ?C0162?KB_PROCESS
+002CD3         ?C0163?KB_PROCESS:
+  679: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_STOP)  //stop
+002CD3 904EC1            MOV     DPTR,#pEvt
+002CD6 E0                MOVX    A,@DPTR
+002CD7 FB                MOV     R3,A
+002CD8 A3                INC     DPTR
+002CD9 E0                MOVX    A,@DPTR
+002CDA FA                MOV     R2,A
+002CDB A3                INC     DPTR
+002CDC E0                MOVX    A,@DPTR
+002CDD 2401              ADD     A,#01H
+002CDF F9                MOV     R1,A
+002CE0 E4                CLR     A
+002CE1 3A                ADDC    A,R2
+002CE2 FA                MOV     R2,A
+002CE3 A3                INC     DPTR
+002CE4 E0                MOVX    A,@DPTR
+002CE5 7E00              MOV     R6,#00H
+002CE7 29                ADD     A,R1
+002CE8 F9                MOV     R1,A
+002CE9 EE                MOV     A,R6
+002CEA 3A                ADDC    A,R2
+002CEB FA                MOV     R2,A
+002CEC 1203B6            LCALL   ?C?CLDPTR
+002CEF FB                MOV     R3,A
+002CF0 B4F307            CJNE    A,#0F3H,?C0165?KB_PROCESS
+  680: 			{
+  681: 				kb_set_multikey(0x00b7);
+002CF3 7FB7              MOV     R7,#0B7H
+002CF5 122781            LCALL   _kb_set_multikey
+  682: 			}
+002CF8 C1AD              AJMP    ?C0162?KB_PROCESS
+002CFA         ?C0165?KB_PROCESS:
+  683: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_PRE_TRACK) //pre Track
+002CFA EB                MOV     A,R3
+002CFB B4F409            CJNE    A,#0F4H,?C0167?KB_PROCESS
+  684: 			{
+  685: 				kb_set_multikey(0x00b6);
+002CFE 7FB6              MOV     R7,#0B6H
+002D00 7E00              MOV     R6,#00H
+002D02 122781            LCALL   _kb_set_multikey
+  686: 			}
+002D05 C1AD              AJMP    ?C0162?KB_PROCESS
+002D07         ?C0167?KB_PROCESS:
+  687: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_NEXT_TRACK) //next Track
+002D07 904EC1            MOV     DPTR,#pEvt
+002D0A E0                MOVX    A,@DPTR
+002D0B FB                MOV     R3,A
+002D0C A3                INC     DPTR
+002D0D E0                MOVX    A,@DPTR
+002D0E FA                MOV     R2,A
+002D0F A3                INC     DPTR
+002D10 E0                MOVX    A,@DPTR
+002D11 2401              ADD     A,#01H
+002D13 F9                MOV     R1,A
+002D14 E4                CLR     A
+002D15 3A                ADDC    A,R2
+002D16 FA                MOV     R2,A
+002D17 A3                INC     DPTR
+002D18 E0                MOVX    A,@DPTR
+002D19 7E00              MOV     R6,#00H
+002D1B 29                ADD     A,R1
+002D1C F9                MOV     R1,A
+002D1D EE                MOV     A,R6
+002D1E 3A                ADDC    A,R2
+002D1F FA                MOV     R2,A
+002D20 1203B6            LCALL   ?C?CLDPTR
+002D23 FB                MOV     R3,A
+002D24 B4F507            CJNE    A,#0F5H,?C0169?KB_PROCESS
+  688: 			{
+  689: 				kb_set_multikey(0x00b5);
+002D27 7FB5              MOV     R7,#0B5H
+002D29 122781            LCALL   _kb_set_multikey
+  690: 			}
+002D2C C1AD              AJMP    ?C0162?KB_PROCESS
+002D2E         ?C0169?KB_PROCESS:
+  691: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_DOWN) //vol-
+002D2E EB                MOV     A,R3
+002D2F B4F609            CJNE    A,#0F6H,?C0171?KB_PROCESS
+  692: 			{
+  693: 				kb_set_multikey(0x00ea);
+002D32 7FEA              MOV     R7,#0EAH
+002D34 7E00              MOV     R6,#00H
+002D36 122781            LCALL   _kb_set_multikey
+  694: 			}
+002D39 C1AD              AJMP    ?C0162?KB_PROCESS
+002D3B         ?C0171?KB_PROCESS:
+  695: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_VOL_UP) //vol+
+002D3B 904EC1            MOV     DPTR,#pEvt
+002D3E E0                MOVX    A,@DPTR
+002D3F FB                MOV     R3,A
+002D40 A3                INC     DPTR
+002D41 E0                MOVX    A,@DPTR
+002D42 FA                MOV     R2,A
+002D43 A3                INC     DPTR
+002D44 E0                MOVX    A,@DPTR
+002D45 2401              ADD     A,#01H
+002D47 F9                MOV     R1,A
+002D48 E4                CLR     A
+002D49 3A                ADDC    A,R2
+002D4A FA                MOV     R2,A
+002D4B A3                INC     DPTR
+002D4C E0                MOVX    A,@DPTR
+002D4D 7E00              MOV     R6,#00H
+002D4F 29                ADD     A,R1
+002D50 F9                MOV     R1,A
+002D51 EE                MOV     A,R6
+002D52 3A                ADDC    A,R2
+002D53 FA                MOV     R2,A
+002D54 1203B6            LCALL   ?C?CLDPTR
+002D57 FB                MOV     R3,A
+002D58 B4F707            CJNE    A,#0F7H,?C0173?KB_PROCESS
+  696: 			{
+  697: 				kb_set_multikey(0x00e9);
+002D5B 7FE9              MOV     R7,#0E9H
+002D5D 122781            LCALL   _kb_set_multikey
+  698: 			}
+002D60 C1AD              AJMP    ?C0162?KB_PROCESS
+002D62         ?C0173?KB_PROCESS:
+  699: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MUTE) //mute
+002D62 EB                MOV     A,R3
+002D63 B4F809            CJNE    A,#0F8H,?C0175?KB_PROCESS
+  700: 			{
+  701: 				kb_set_multikey(0x00e2);
+002D66 7FE2              MOV     R7,#0E2H
+002D68 7E00              MOV     R6,#00H
+002D6A 122781            LCALL   _kb_set_multikey
+  702: 			}
+002D6D C1AD              AJMP    ?C0162?KB_PROCESS
+002D6F         ?C0175?KB_PROCESS:
+  703: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_MY_COMPUTER) 
+002D6F 904EC1            MOV     DPTR,#pEvt
+002D72 E0                MOVX    A,@DPTR
+002D73 FB                MOV     R3,A
+002D74 A3                INC     DPTR
+002D75 E0                MOVX    A,@DPTR
+002D76 FA                MOV     R2,A
+002D77 A3                INC     DPTR
+002D78 E0                MOVX    A,@DPTR
+002D79 2401              ADD     A,#01H
+002D7B F9                MOV     R1,A
+002D7C E4                CLR     A
+002D7D 3A                ADDC    A,R2
+002D7E FA                MOV     R2,A
+002D7F A3                INC     DPTR
+002D80 E0                MOVX    A,@DPTR
+002D81 7E00              MOV     R6,#00H
+002D83 29                ADD     A,R1
+002D84 F9                MOV     R1,A
+002D85 EE                MOV     A,R6
+002D86 3A                ADDC    A,R2
+002D87 FA                MOV     R2,A
+002D88 1203B6            LCALL   ?C?CLDPTR
+002D8B FB                MOV     R3,A
+002D8C B4F908            CJNE    A,#0F9H,?C0177?KB_PROCESS
+  704: 			{
+  705: 				kb_set_multikey(0x0194);
+002D8F 7F94              MOV     R7,#094H
+002D91 0E                INC     R6
+002D92 122781            LCALL   _kb_set_multikey
+  706: 			}
+002D95 C1AD              AJMP    ?C0162?KB_PROCESS
+002D97         ?C0177?KB_PROCESS:
+  707: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_MAIL)  //mail
+002D97 EB                MOV     A,R3
+002D98 B4FA09            CJNE    A,#0FAH,?C0179?KB_PROCESS
+  708: 			{
+  709: 				kb_set_multikey(0x018a);//mail
+002D9B 7F8A              MOV     R7,#08AH
+002D9D 7E01              MOV     R6,#01H
+002D9F 122781            LCALL   _kb_set_multikey
+  710: 			}
+002DA2 C1AD              AJMP    ?C0162?KB_PROCESS
+002DA4         ?C0179?KB_PROCESS:
+  711: 			else	if (pEvt->ksPool[i] ==  HID_MULTIKEY_CALCULATOR) //calculator
+002DA4 904EC1            MOV     DPTR,#pEvt
+002DA7 E0                MOVX    A,@DPTR
+002DA8 FB                MOV     R3,A
+002DA9 A3                INC     DPTR
+002DAA E0                MOVX    A,@DPTR
+002DAB FA                MOV     R2,A
+002DAC A3                INC     DPTR
+002DAD E0                MOVX    A,@DPTR
+002DAE 2401              ADD     A,#01H
+002DB0 F9                MOV     R1,A
+002DB1 E4                CLR     A
+002DB2 3A                ADDC    A,R2
+002DB3 FA                MOV     R2,A
+002DB4 A3                INC     DPTR
+002DB5 E0                MOVX    A,@DPTR
+002DB6 7E00              MOV     R6,#00H
+002DB8 29                ADD     A,R1
+002DB9 F9                MOV     R1,A
+002DBA EE                MOV     A,R6
+002DBB 3A                ADDC    A,R2
+002DBC FA                MOV     R2,A
+002DBD 1203B6            LCALL   ?C?CLDPTR
+002DC0 FB                MOV     R3,A
+002DC1 B4FB08            CJNE    A,#0FBH,?C0181?KB_PROCESS
+  712: 			{
+  713: 				kb_set_multikey(0x0192);
+002DC4 7F92              MOV     R7,#092H
+002DC6 0E                INC     R6
+002DC7 122781            LCALL   _kb_set_multikey
+  714: 			}
+002DCA C1AD              AJMP    ?C0162?KB_PROCESS
+002DCC         ?C0181?KB_PROCESS:
+  715: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FAVORITES) 
+002DCC EB                MOV     A,R3
+002DCD B4D009            CJNE    A,#0D0H,?C0183?KB_PROCESS
+  716: 			{
+  717: 				kb_set_multikey(0x022a);//www Favorites
+002DD0 7F2A              MOV     R7,#02AH
+002DD2 7E02              MOV     R6,#02H
+002DD4 122781            LCALL   _kb_set_multikey
+  718: 			}
+002DD7 C1AD              AJMP    ?C0162?KB_PROCESS
+002DD9         ?C0183?KB_PROCESS:
+  719: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_FORWARD)  
+002DD9 904EC1            MOV     DPTR,#pEvt
+002DDC E0                MOVX    A,@DPTR
+002DDD FB                MOV     R3,A
+002DDE A3                INC     DPTR
+002DDF E0                MOVX    A,@DPTR
+002DE0 FA                MOV     R2,A
+002DE1 A3                INC     DPTR
+002DE2 E0                MOVX    A,@DPTR
+002DE3 2401              ADD     A,#01H
+002DE5 F9                MOV     R1,A
+002DE6 E4                CLR     A
+002DE7 3A                ADDC    A,R2
+002DE8 FA                MOV     R2,A
+002DE9 A3                INC     DPTR
+002DEA E0                MOVX    A,@DPTR
+002DEB 7E00              MOV     R6,#00H
+002DED 29                ADD     A,R1
+002DEE F9                MOV     R1,A
+002DEF EE                MOV     A,R6
+002DF0 3A                ADDC    A,R2
+002DF1 FA                MOV     R2,A
+002DF2 1203B6            LCALL   ?C?CLDPTR
+002DF5 FB                MOV     R3,A
+002DF6 B4D109            CJNE    A,#0D1H,?C0185?KB_PROCESS
+  720: 			{
+  721: 				kb_set_multikey(0x0225);
+002DF9 7F25              MOV     R7,#025H
+002DFB 7E02              MOV     R6,#02H
+002DFD 122781            LCALL   _kb_set_multikey
+  722: 			}
+002E00 C1AD              AJMP    ?C0162?KB_PROCESS
+002E02         ?C0185?KB_PROCESS:
+  723: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_STOP)  //www Stop
+002E02 EB                MOV     A,R3
+002E03 B4D309            CJNE    A,#0D3H,?C0187?KB_PROCESS
+  724: 			{
+  725: 				kb_set_multikey(0x0226);
+002E06 7F26              MOV     R7,#026H
+002E08 7E02              MOV     R6,#02H
+002E0A 122781            LCALL   _kb_set_multikey
+  726: 			}
+002E0D C1AD              AJMP    ?C0162?KB_PROCESS
+002E0F         ?C0187?KB_PROCESS:
+  727: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_BACK)  
+002E0F 904EC1            MOV     DPTR,#pEvt
+002E12 E0                MOVX    A,@DPTR
+002E13 FB                MOV     R3,A
+002E14 A3                INC     DPTR
+002E15 E0                MOVX    A,@DPTR
+002E16 FA                MOV     R2,A
+002E17 A3                INC     DPTR
+002E18 E0                MOVX    A,@DPTR
+002E19 2401              ADD     A,#01H
+002E1B F9                MOV     R1,A
+002E1C E4                CLR     A
+002E1D 3A                ADDC    A,R2
+002E1E FA                MOV     R2,A
+002E1F A3                INC     DPTR
+002E20 E0                MOVX    A,@DPTR
+002E21 7E00              MOV     R6,#00H
+002E23 29                ADD     A,R1
+002E24 F9                MOV     R1,A
+002E25 EE                MOV     A,R6
+002E26 3A                ADDC    A,R2
+002E27 FA                MOV     R2,A
+002E28 1203B6            LCALL   ?C?CLDPTR
+002E2B FB                MOV     R3,A
+002E2C B4D209            CJNE    A,#0D2H,?C0189?KB_PROCESS
+  728: 			{
+  729: 				kb_set_multikey(0x0224);
+002E2F 7F24              MOV     R7,#024H
+002E31 7E02              MOV     R6,#02H
+002E33 122781            LCALL   _kb_set_multikey
+  730: 			}
+002E36 8075              SJMP    ?C0162?KB_PROCESS
+002E38         ?C0189?KB_PROCESS:
+  731: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_REFRESH) //www refresh
+002E38 EB                MOV     A,R3
+002E39 B4D409            CJNE    A,#0D4H,?C0191?KB_PROCESS
+  732: 			{
+  733: 				kb_set_multikey(0x0227);
+002E3C 7F27              MOV     R7,#027H
+002E3E 7E02              MOV     R6,#02H
+002E40 122781            LCALL   _kb_set_multikey
+  734: 			}
+002E43 8068              SJMP    ?C0162?KB_PROCESS
+002E45         ?C0191?KB_PROCESS:
+  735: 			
+  736: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_SEARCH)  //www search
+002E45 904EC1            MOV     DPTR,#pEvt
+002E48 E0                MOVX    A,@DPTR
+002E49 FB                MOV     R3,A
+002E4A A3                INC     DPTR
+002E4B E0                MOVX    A,@DPTR
+002E4C FA                MOV     R2,A
+002E4D A3                INC     DPTR
+002E4E E0                MOVX    A,@DPTR
+002E4F 2401              ADD     A,#01H
+002E51 F9                MOV     R1,A
+002E52 E4                CLR     A
+002E53 3A                ADDC    A,R2
+002E54 FA                MOV     R2,A
+002E55 A3                INC     DPTR
+002E56 E0                MOVX    A,@DPTR
+002E57 7E00              MOV     R6,#00H
+002E59 29                ADD     A,R1
+002E5A F9                MOV     R1,A
+002E5B EE                MOV     A,R6
+002E5C 3A                ADDC    A,R2
+002E5D FA                MOV     R2,A
+002E5E 1203B6            LCALL   ?C?CLDPTR
+002E61 FB                MOV     R3,A
+002E62 B4D509            CJNE    A,#0D5H,?C0193?KB_PROCESS
+  737: 			{
+  738: 				kb_set_multikey(0x0221);
+002E65 7F21              MOV     R7,#021H
+002E67 7E02              MOV     R6,#02H
+002E69 122781            LCALL   _kb_set_multikey
+  739: 			}
+002E6C 803F              SJMP    ?C0162?KB_PROCESS
+002E6E         ?C0193?KB_PROCESS:
+  740: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_AC_HOME)
+002E6E EB                MOV     A,R3
+002E6F B4D609            CJNE    A,#0D6H,?C0195?KB_PROCESS
+  741: 			{
+  742: 				kb_set_multikey(0x0223);
+002E72 7F23              MOV     R7,#023H
+002E74 7E02              MOV     R6,#02H
+002E76 122781            LCALL   _kb_set_multikey
+  743: 			}
+002E79 8032              SJMP    ?C0162?KB_PROCESS
+002E7B         ?C0195?KB_PROCESS:
+  744: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_DOWN)
+002E7B 904EC1            MOV     DPTR,#pEvt
+002E7E E0                MOVX    A,@DPTR
+002E7F FB                MOV     R3,A
+002E80 A3                INC     DPTR
+002E81 E0                MOVX    A,@DPTR
+002E82 FA                MOV     R2,A
+002E83 A3                INC     DPTR
+002E84 E0                MOVX    A,@DPTR
+002E85 2401              ADD     A,#01H
+002E87 F9                MOV     R1,A
+002E88 E4                CLR     A
+002E89 3A                ADDC    A,R2
+002E8A FA                MOV     R2,A
+002E8B A3                INC     DPTR
+002E8C E0                MOVX    A,@DPTR
+002E8D 7E00              MOV     R6,#00H
+002E8F 29                ADD     A,R1
+002E90 F9                MOV     R1,A
+002E91 EE                MOV     A,R6
+002E92 3A                ADDC    A,R2
+002E93 FA                MOV     R2,A
+002E94 1203B6            LCALL   ?C?CLDPTR
+002E97 FB                MOV     R3,A
+002E98 B4D707            CJNE    A,#0D7H,?C0197?KB_PROCESS
+  745: 			{
+  746: 				kb_set_multikey(0x0070);
+002E9B 7F70              MOV     R7,#070H
+002E9D 122781            LCALL   _kb_set_multikey
+  747: 			}
+002EA0 800B              SJMP    ?C0162?KB_PROCESS
+002EA2         ?C0197?KB_PROCESS:
+  748: 			else if (pEvt->ksPool[i] ==  HID_MULTIKEY_LIGHT_UP)
+002EA2 EB                MOV     A,R3
+002EA3 B4D807            CJNE    A,#0D8H,?C0162?KB_PROCESS
+  749: 			{
+  750: 				kb_set_multikey(0x006f);
+002EA6 7F6F              MOV     R7,#06FH
+002EA8 7E00              MOV     R6,#00H
+002EAA 122781            LCALL   _kb_set_multikey
+  751: 			}
+002EAD         ?C0162?KB_PROCESS:
+  752: 			
+  753: 			if(mult_key_status == KEY_WAIT_RELEASE)
+002EAD 904E3B            MOV     DPTR,#mult_key_status
+002EB0 E0                MOVX    A,@DPTR
+002EB1 B40224            CJNE    A,#02H,?C0158?KB_PROCESS
+  754: 			{
+  755: 				mult_key_value = pEvt->ksPool[i];
+002EB4 904EC1            MOV     DPTR,#pEvt
+002EB7 E0                MOVX    A,@DPTR
+002EB8 FB                MOV     R3,A
+002EB9 A3                INC     DPTR
+002EBA E0                MOVX    A,@DPTR
+002EBB FA                MOV     R2,A
+002EBC A3                INC     DPTR
+002EBD E0                MOVX    A,@DPTR
+002EBE 2401              ADD     A,#01H
+002EC0 F9                MOV     R1,A
+002EC1 E4                CLR     A
+002EC2 3A                ADDC    A,R2
+002EC3 FA                MOV     R2,A
+002EC4 A3                INC     DPTR
+002EC5 E0                MOVX    A,@DPTR
+002EC6 7E00              MOV     R6,#00H
+002EC8 29                ADD     A,R1
+002EC9 F9                MOV     R1,A
+002ECA EE                MOV     A,R6
+002ECB 3A                ADDC    A,R2
+002ECC FA                MOV     R2,A
+002ECD 1203B6            LCALL   ?C?CLDPTR
+002ED0 904DE3            MOV     DPTR,#mult_key_value
+002ED3 F0                MOVX    @DPTR,A
+  756: 				pEvt->ksPool[i] = 0;
+002ED4 E4                CLR     A
+002ED5 1203FC            LCALL   ?C?CSTPTR
+  757: 			}
+  758: 		}
+  759: 	}
+002ED8         ?C0158?KB_PROCESS:
+002ED8 904EC4            MOV     DPTR,#i
+002EDB E0                MOVX    A,@DPTR
+002EDC 04                INC     A
+002EDD F0                MOVX    @DPTR,A
+002EDE 817F              AJMP    ?C0156?KB_PROCESS
+  760: }
+002EE0         ?C0201?KB_PROCESS:
+002EE0 22                RET     
+----- FUNCTION _kb_multikey_setup (END) -------
+
+
+----- FUNCTION _keyIn (BEGIN) -----
+ FILE: 'keyscan.c'
+   35: static void keyIn(byte key)
+   36: {
+;---- Variable 'key' assigned to Register 'R7' ----
+   37: 	byte i = 0;
+   38: 
+;---- Variable 'i' assigned to Register 'R6' ----
+002EE1 E4                CLR     A
+002EE2 FE                MOV     R6,A
+   39: 	if (key == HID_KEY_RIGHT_GUI)
+002EE3 EF                MOV     A,R7
+002EE4 B4E708            CJNE    A,#0E7H,?C0005?KEYSCAN
+   40: 	{
+   41: 		ksEvtPool.standardSel |= KS_SEL_RGUI;
+002EE7 904E88            MOV     DPTR,#ksEvtPool
+002EEA E0                MOVX    A,@DPTR
+002EEB 4480              ORL     A,#080H
+002EED F0                MOVX    @DPTR,A
+002EEE 22                RET     
+   42: 		return;
+   43: 	}
+002EEF         ?C0005?KEYSCAN:
+   44: 	else if (key ==HID_KEY_RIGHT_ALT) 
+002EEF EF                MOV     A,R7
+002EF0 B4E608            CJNE    A,#0E6H,?C0008?KEYSCAN
+   45: 	{
+   46: 		ksEvtPool.standardSel |= KS_SEL_RALT;
+002EF3 904E88            MOV     DPTR,#ksEvtPool
+002EF6 E0                MOVX    A,@DPTR
+002EF7 4440              ORL     A,#040H
+002EF9 F0                MOVX    @DPTR,A
+002EFA 22                RET     
+   47: 		return;
+   48: 	}
+002EFB         ?C0008?KEYSCAN:
+   49: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
+002EFB EF                MOV     A,R7
+002EFC B4E508            CJNE    A,#0E5H,?C0010?KEYSCAN
+   50: 	{
+   51: 		ksEvtPool.standardSel |= KS_SEL_RSHIFT;
+002EFF 904E88            MOV     DPTR,#ksEvtPool
+002F02 E0                MOVX    A,@DPTR
+002F03 4420              ORL     A,#020H
+002F05 F0                MOVX    @DPTR,A
+002F06 22                RET     
+   52: 		return;
+   53: 	}
+002F07         ?C0010?KEYSCAN:
+   54: 	else if (key ==HID_KEY_RIGHT_CTL) 
+002F07 EF                MOV     A,R7
+002F08 B4E408            CJNE    A,#0E4H,?C0012?KEYSCAN
+   55: 	{
+   56: 		ksEvtPool.standardSel |= KS_SEL_RCTRL;
+002F0B 904E88            MOV     DPTR,#ksEvtPool
+002F0E E0                MOVX    A,@DPTR
+002F0F 4410              ORL     A,#010H
+002F11 F0                MOVX    @DPTR,A
+002F12 22                RET     
+   57: 		return;
+   58: 	}
+002F13         ?C0012?KEYSCAN:
+   59: 	else if (key ==HID_KEY_LEFT_GUI) 
+002F13 EF                MOV     A,R7
+002F14 B4E308            CJNE    A,#0E3H,?C0014?KEYSCAN
+   60: 	{
+   61: 		ksEvtPool.standardSel |= KS_SEL_LGUI;
+002F17 904E88            MOV     DPTR,#ksEvtPool
+002F1A E0                MOVX    A,@DPTR
+002F1B 4408              ORL     A,#08H
+002F1D F0                MOVX    @DPTR,A
+002F1E 22                RET     
+   62: 		return;
+   63: 	}
+002F1F         ?C0014?KEYSCAN:
+   64: 	else if (key ==HID_KEY_LEFT_ALT) 
+002F1F EF                MOV     A,R7
+002F20 B4E208            CJNE    A,#0E2H,?C0016?KEYSCAN
+   65: 	{
+   66: 		ksEvtPool.standardSel |= KS_SEL_LALT;
+002F23 904E88            MOV     DPTR,#ksEvtPool
+002F26 E0                MOVX    A,@DPTR
+002F27 4404              ORL     A,#04H
+002F29 F0                MOVX    @DPTR,A
+002F2A 22                RET     
+   67: 		return;
+   68: 	}
+002F2B         ?C0016?KEYSCAN:
+   69: 	else if (key ==HID_KEY_LEFT_SHIFT)
+002F2B EF                MOV     A,R7
+002F2C B4E108            CJNE    A,#0E1H,?C0018?KEYSCAN
+   70: 	{
+   71: 		ksEvtPool.standardSel |= KS_SEL_LSHIFT;
+002F2F 904E88            MOV     DPTR,#ksEvtPool
+002F32 E0                MOVX    A,@DPTR
+002F33 4402              ORL     A,#02H
+002F35 F0                MOVX    @DPTR,A
+002F36 22                RET     
+   72: 		return;
+   73: 	}
+002F37         ?C0018?KEYSCAN:
+   74: 	else if (key ==HID_KEY_LEFT_CTL) 
+002F37 EF                MOV     A,R7
+002F38 B4E008            CJNE    A,#0E0H,?C0007?KEYSCAN
+   75: 	{
+   76: 		ksEvtPool.standardSel |= KS_SEL_LCTRL;
+002F3B 904E88            MOV     DPTR,#ksEvtPool
+002F3E E0                MOVX    A,@DPTR
+002F3F 4401              ORL     A,#01H
+002F41 F0                MOVX    @DPTR,A
+002F42 22                RET     
+   77: 		return;
+   78: 	}
+002F43         ?C0007?KEYSCAN:
+   79: 	//special key
+   80: 
+   81: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+002F43 E4                CLR     A
+002F44 FE                MOV     R6,A
+002F45         ?C0021?KEYSCAN:
+   82: 	{
+   83: 		if (ksEvtPool.ksPool[i] == key)
+002F45 7489              MOV     A,#LOW ksEvtPool+01H
+002F47 2E                ADD     A,R6
+002F48 F582              MOV     DPL,A
+002F4A E4                CLR     A
+002F4B 344E              ADDC    A,#HIGH ksEvtPool+01H
+002F4D F583              MOV     DPH,A
+002F4F E0                MOVX    A,@DPTR
+002F50 FD                MOV     R5,A
+002F51 6F                XRL     A,R7
+002F52 601C              JZ      ?C0006?KEYSCAN
+   84: 			break;
+002F54         ?C0024?KEYSCAN:
+   85: 		if (ksEvtPool.ksPool[i] == 0) 
+002F54 ED                MOV     A,R5
+002F55 7014              JNZ     ?C0023?KEYSCAN
+   86: 		{
+   87: 			if(mult_key_value != key)
+002F57 904DE3            MOV     DPTR,#mult_key_value
+002F5A E0                MOVX    A,@DPTR
+002F5B 6F                XRL     A,R7
+002F5C 6012              JZ      ?C0006?KEYSCAN
+   88: 				ksEvtPool.ksPool[i] = key;
+002F5E 7489              MOV     A,#LOW ksEvtPool+01H
+002F60 2E                ADD     A,R6
+002F61 F582              MOV     DPL,A
+002F63 E4                CLR     A
+002F64 344E              ADDC    A,#HIGH ksEvtPool+01H
+002F66 F583              MOV     DPH,A
+002F68 EF                MOV     A,R7
+002F69 F0                MOVX    @DPTR,A
+   89: 			break;
+002F6A 22                RET     
+   90: 		}
+   91: 	}
+002F6B         ?C0023?KEYSCAN:
+002F6B 0E                INC     R6
+002F6C EE                MOV     A,R6
+002F6D B406D5            CJNE    A,#06H,?C0021?KEYSCAN
+   92: }
+002F70         ?C0006?KEYSCAN:
+002F70 22                RET     
+----- FUNCTION _keyIn (END) -------
+
+
+----- FUNCTION _keyOut (BEGIN) -----
+ FILE: 'keyscan.c'
+   94: static void keyOut(byte key)
+   95: {
+;---- Variable 'key' assigned to Register 'R7' ----
+   96: 	byte i = 0 ;
+   97: 	byte found = 0;
+;---- Variable 'i' assigned to Register 'R6' ----
+002F71 E4                CLR     A
+002F72 FE                MOV     R6,A
+   98: 
+;---- Variable 'found' assigned to Register 'R5' ----
+002F73 FD                MOV     R5,A
+   99: 	if ((key &0xF0) == 0xf0 || (key &0xD0) == 0xD0)
+002F74 EF                MOV     A,R7
+002F75 54F0              ANL     A,#0F0H
+002F77 64F0              XRL     A,#0F0H
+002F79 6007              JZ      ?C0028?KEYSCAN
+002F7B EF                MOV     A,R7
+002F7C 54D0              ANL     A,#0D0H
+002F7E FC                MOV     R4,A
+002F7F BCD00C            CJNE    R4,#0D0H,?C0027?KEYSCAN
+002F82         ?C0028?KEYSCAN:
+  100: 	{
+  101: 		if(mult_key_status == KEY_WAIT_RELEASE)
+002F82 904E3B            MOV     DPTR,#mult_key_status
+002F85 E0                MOVX    A,@DPTR
+002F86 B4020B            CJNE    A,#02H,?C0030?KEYSCAN
+  102: 		{
+  103: 			mult_key_status = KEY_RELEASE;
+002F89 7403              MOV     A,#03H
+002F8B F0                MOVX    @DPTR,A
+  104: 		}
+  105: 	}
+002F8C 8006              SJMP    ?C0030?KEYSCAN
+002F8E         ?C0027?KEYSCAN:
+  106: 	else
+  107: 		standard_key_release_flag = 1;
+002F8E 904DD8            MOV     DPTR,#standard_key_release_flag
+002F91 7401              MOV     A,#01H
+002F93 F0                MOVX    @DPTR,A
+002F94         ?C0030?KEYSCAN:
+  108: 
+  109: 
+  110: 	if (key == HID_KEY_RIGHT_GUI ) 
+002F94 EF                MOV     A,R7
+002F95 B4E708            CJNE    A,#0E7H,?C0031?KEYSCAN
+  111: 	{
+  112: 		ksEvtPool.standardSel &= ~KS_SEL_RGUI;
+002F98 904E88            MOV     DPTR,#ksEvtPool
+002F9B E0                MOVX    A,@DPTR
+002F9C 547F              ANL     A,#07FH
+002F9E F0                MOVX    @DPTR,A
+002F9F 22                RET     
+  113: 		return;
+  114: 	}
+002FA0         ?C0031?KEYSCAN:
+  115: 	else if (key ==HID_KEY_RIGHT_ALT ) 
+002FA0 EF                MOV     A,R7
+002FA1 B4E608            CJNE    A,#0E6H,?C0034?KEYSCAN
+  116: 	{
+  117: 		ksEvtPool.standardSel &= ~KS_SEL_RALT;
+002FA4 904E88            MOV     DPTR,#ksEvtPool
+002FA7 E0                MOVX    A,@DPTR
+002FA8 54BF              ANL     A,#0BFH
+002FAA F0                MOVX    @DPTR,A
+002FAB 22                RET     
+  118: 		return;
+  119: 	}
+002FAC         ?C0034?KEYSCAN:
+  120: 	else if (key ==HID_KEY_RIGHT_SHIFT) 
+002FAC EF                MOV     A,R7
+002FAD B4E508            CJNE    A,#0E5H,?C0036?KEYSCAN
+  121: 	{
+  122: 		ksEvtPool.standardSel &= ~KS_SEL_RSHIFT;
+002FB0 904E88            MOV     DPTR,#ksEvtPool
+002FB3 E0                MOVX    A,@DPTR
+002FB4 54DF              ANL     A,#0DFH
+002FB6 F0                MOVX    @DPTR,A
+002FB7 22                RET     
+  123: 		return;
+  124: 	}
+002FB8         ?C0036?KEYSCAN:
+  125: 	else if (key ==HID_KEY_RIGHT_CTL) 
+002FB8 EF                MOV     A,R7
+002FB9 B4E408            CJNE    A,#0E4H,?C0038?KEYSCAN
+  126: 	{
+  127: 		ksEvtPool.standardSel &= ~KS_SEL_RCTRL;
+002FBC 904E88            MOV     DPTR,#ksEvtPool
+002FBF E0                MOVX    A,@DPTR
+002FC0 54EF              ANL     A,#0EFH
+002FC2 F0                MOVX    @DPTR,A
+002FC3 22                RET     
+  128: 		return;
+  129: 	}
+002FC4         ?C0038?KEYSCAN:
+  130: 	else if (key ==HID_KEY_LEFT_GUI)
+002FC4 EF                MOV     A,R7
+002FC5 B4E308            CJNE    A,#0E3H,?C0040?KEYSCAN
+  131: 	{
+  132: 		ksEvtPool.standardSel &= ~KS_SEL_LGUI;
+002FC8 904E88            MOV     DPTR,#ksEvtPool
+002FCB E0                MOVX    A,@DPTR
+002FCC 54F7              ANL     A,#0F7H
+002FCE F0                MOVX    @DPTR,A
+002FCF 22                RET     
+  133: 		return;
+  134: 	}
+002FD0         ?C0040?KEYSCAN:
+  135: 	else if (key ==HID_KEY_LEFT_ALT)
+002FD0 EF                MOV     A,R7
+002FD1 B4E208            CJNE    A,#0E2H,?C0042?KEYSCAN
+  136: 	{
+  137: 		ksEvtPool.standardSel &= ~KS_SEL_LALT;
+002FD4 904E88            MOV     DPTR,#ksEvtPool
+002FD7 E0                MOVX    A,@DPTR
+002FD8 54FB              ANL     A,#0FBH
+002FDA F0                MOVX    @DPTR,A
+002FDB 22                RET     
+  138: 		return;
+  139: 	}
+002FDC         ?C0042?KEYSCAN:
+  140: 	else if (key ==HID_KEY_LEFT_SHIFT) 
+002FDC EF                MOV     A,R7
+002FDD B4E108            CJNE    A,#0E1H,?C0044?KEYSCAN
+  141: 	{
+  142: 		ksEvtPool.standardSel &= ~KS_SEL_LSHIFT;
+002FE0 904E88            MOV     DPTR,#ksEvtPool
+002FE3 E0                MOVX    A,@DPTR
+002FE4 54FD              ANL     A,#0FDH
+002FE6 F0                MOVX    @DPTR,A
+002FE7 22                RET     
+  143: 		return;
+  144: 	}
+002FE8         ?C0044?KEYSCAN:
+  145: 	else if (key ==HID_KEY_LEFT_CTL) 
+002FE8 EF                MOV     A,R7
+002FE9 B4E008            CJNE    A,#0E0H,?C0033?KEYSCAN
+  146: 	{
+  147: 		ksEvtPool.standardSel &= ~ KS_SEL_LCTRL;
+002FEC 904E88            MOV     DPTR,#ksEvtPool
+002FEF E0                MOVX    A,@DPTR
+002FF0 54FE              ANL     A,#0FEH
+002FF2 F0                MOVX    @DPTR,A
+002FF3 22                RET     
+  148: 		return;
+  149: 	}
+002FF4         ?C0033?KEYSCAN:
+  150: 	
+  151: 	for (i=0 ; i<KS_BUFF_POLL_LEN ; i++) 
+002FF4 E4                CLR     A
+002FF5 FE                MOV     R6,A
+002FF6         ?C0047?KEYSCAN:
+  152: 	{
+  153: 		if (found == 0) 
+002FF6 ED                MOV     A,R5
+002FF7 7021              JNZ     ?C0050?KEYSCAN
+  154: 		{
+  155: 			if (ksEvtPool.ksPool[i] == key) {
+002FF9 7489              MOV     A,#LOW ksEvtPool+01H
+002FFB 2E                ADD     A,R6
+002FFC F582              MOV     DPL,A
+002FFE E4                CLR     A
+002FFF 344E              ADDC    A,#HIGH ksEvtPool+01H
+003001 F583              MOV     DPH,A
+003003 E0                MOVX    A,@DPTR
+003004 6F                XRL     A,R7
+003005 7047              JNZ     ?C0049?KEYSCAN
+  156: 				if (i == KS_BUFF_POLL_LEN-1) {
+003007 EE                MOV     A,R6
+003008 B4050B            CJNE    A,#05H,?C0052?KEYSCAN
+  157: 					ksEvtPool.ksPool[i] = 0;
+00300B 2489              ADD     A,#LOW ksEvtPool+01H
+00300D F582              MOV     DPL,A
+00300F E4                CLR     A
+003010 344E              ADDC    A,#HIGH ksEvtPool+01H
+003012 F583              MOV     DPH,A
+003014 E4                CLR     A
+003015 F0                MOVX    @DPTR,A
+  158: 				}
+003016         ?C0052?KEYSCAN:
+  159: 				found = 1;
+003016 7D01              MOV     R5,#01H
+  160: 			}
+  161: 		}
+003018 8034              SJMP    ?C0049?KEYSCAN
+00301A         ?C0050?KEYSCAN:
+  162: 		else 
+  163: 		{
+  164: 			ksEvtPool.ksPool[i-1] = ksEvtPool.ksPool[i];
+00301A 7489              MOV     A,#LOW ksEvtPool+01H
+00301C 2E                ADD     A,R6
+00301D F582              MOV     DPL,A
+00301F E4                CLR     A
+003020 344E              ADDC    A,#HIGH ksEvtPool+01H
+003022 F583              MOV     DPH,A
+003024 E0                MOVX    A,@DPTR
+003025 FC                MOV     R4,A
+003026 7488              MOV     A,#LOW ksEvtPool
+003028 2E                ADD     A,R6
+003029 F582              MOV     DPL,A
+00302B E4                CLR     A
+00302C 344E              ADDC    A,#HIGH ksEvtPool
+00302E F583              MOV     DPH,A
+003030 EC                MOV     A,R4
+003031 F0                MOVX    @DPTR,A
+  165: 			if (ksEvtPool.ksPool[i] == 0)
+003032 7489              MOV     A,#LOW ksEvtPool+01H
+003034 2E                ADD     A,R6
+003035 F582              MOV     DPL,A
+003037 E4                CLR     A
+003038 344E              ADDC    A,#HIGH ksEvtPool+01H
+00303A F583              MOV     DPH,A
+00303C E0                MOVX    A,@DPTR
+00303D 6014              JZ      ?C0032?KEYSCAN
+  166: 				break;
+00303F         ?C0054?KEYSCAN:
+  167: 			if (i == KS_BUFF_POLL_LEN-1) {
+00303F EE                MOV     A,R6
+003040 B4050B            CJNE    A,#05H,?C0049?KEYSCAN
+  168: 				ksEvtPool.ksPool[i] = 0;
+003043 2489              ADD     A,#LOW ksEvtPool+01H
+003045 F582              MOV     DPL,A
+003047 E4                CLR     A
+003048 344E              ADDC    A,#HIGH ksEvtPool+01H
+00304A F583              MOV     DPH,A
+00304C E4                CLR     A
+00304D F0                MOVX    @DPTR,A
+  169: 			}
+  170: 		}
+  171: 	}
+00304E         ?C0049?KEYSCAN:
+00304E 0E                INC     R6
+00304F EE                MOV     A,R6
+003050 B406A3            CJNE    A,#06H,?C0047?KEYSCAN
+  172: }
+003053         ?C0032?KEYSCAN:
+003053 22                RET     
+----- FUNCTION _keyOut (END) -------
+
+
+----- FUNCTION KS_ScanMatrix (BEGIN) -----
+ FILE: 'keyscan.c'
+  245: void KS_ScanMatrix()
+  246: {
+  247: 	byte i = 0;
+  248: 	byte j = 0;
+;---- Variable 'i' assigned to Register 'R7' ----
+003054 E4                CLR     A
+003055 FF                MOV     R7,A
+  249: 	byte tgroup = 0;
+003056 904EC5            MOV     DPTR,#j
+003059 F0                MOVX    @DPTR,A
+  250: 	byte tgpionum = 0;
+;---- Variable 'tgroup' assigned to Register 'R6' ----
+00305A FE                MOV     R6,A
+  251: 	byte temp = 0;
+;---- Variable 'tgpionum' assigned to Register 'R5' ----
+00305B FD                MOV     R5,A
+  252: 	byte check = 0;
+00305C A3                INC     DPTR
+00305D F0                MOVX    @DPTR,A
+  253: 	byte rawSel = 0;
+00305E A3                INC     DPTR
+00305F F0                MOVX    @DPTR,A
+  254: 	for (i=0; col[i]!=0; i++) {
+003060 A3                INC     DPTR
+003061 F0                MOVX    @DPTR,A
+  255: 		tgroup = col[i]  >> 3;
+003062         ?C0073?KEYSCAN:
+003062 EF                MOV     A,R7
+003063 900681            MOV     DPTR,#col
+003066 93                MOVC    A,@A+DPTR
+003067 607C              JZ      ?C0074?KEYSCAN
+  256: 		tgpionum = 1 << (col[i] & 7);
+003069 EF                MOV     A,R7
+00306A 93                MOVC    A,@A+DPTR
+00306B FD                MOV     R5,A
+00306C 13                RRC     A
+00306D 13                RRC     A
+00306E 13                RRC     A
+00306F 541F              ANL     A,#01FH
+003071 FE                MOV     R6,A
+  257: 		GET_RAW_KEY_SEL(ksSelMapCurr[i], tgroup, tgpionum);
+003072 ED                MOV     A,R5
+003073 5407              ANL     A,#07H
+003075 FD                MOV     R5,A
+003076 7401              MOV     A,#01H
+003078 A805              MOV     R0,AR5
+00307A 08                INC     R0
+00307B 8002              SJMP    ?C0119?KEYSCAN
+00307D         ?C0118?KEYSCAN:
+00307D C3                CLR     C
+00307E 33                RLC     A
+00307F         ?C0119?KEYSCAN:
+00307F D8FC              DJNZ    R0,?C0118?KEYSCAN
+003081 FD                MOV     R5,A
+  258: 	}
+003082 EE                MOV     A,R6
+003083 2478              ADD     A,#078H
+003085 FB                MOV     R3,A
+003086 E4                CLR     A
+003087 3480              ADDC    A,#080H
+003089 8B82              MOV     DPL,R3
+00308B F583              MOV     DPH,A
+00308D E0                MOVX    A,@DPTR
+00308E FC                MOV     R4,A
+00308F ED                MOV     A,R5
+003090 F4                CPL     A
+003091 FB                MOV     R3,A
+003092 EC                MOV     A,R4
+003093 5B                ANL     A,R3
+003094 F0                MOVX    @DPTR,A
+003095 EE                MOV     A,R6
+003096 2470              ADD     A,#070H
+003098 F582              MOV     DPL,A
+00309A E4                CLR     A
+00309B 3480              ADDC    A,#080H
+00309D F583              MOV     DPH,A
+00309F E0                MOVX    A,@DPTR
+0030A0 4D                ORL     A,R5
+0030A1 F0                MOVX    @DPTR,A
+0030A2 EE                MOV     A,R6
+0030A3 2474              ADD     A,#074H
+0030A5 F582              MOV     DPL,A
+0030A7 E4                CLR     A
+0030A8 3480              ADDC    A,#080H
+0030AA F583              MOV     DPH,A
+0030AC E0                MOVX    A,@DPTR
+0030AD 5B                ANL     A,R3
+0030AE F0                MOVX    @DPTR,A
+0030AF 90811C            MOV     DPTR,#0811CH
+0030B2 E0                MOVX    A,@DPTR
+0030B3 F4                CPL     A
+0030B4 FC                MOV     R4,A
+0030B5 74BC              MOV     A,#LOW ksSelMapCurr
+0030B7 2F                ADD     A,R7
+0030B8 F582              MOV     DPL,A
+0030BA E4                CLR     A
+0030BB 344D              ADDC    A,#HIGH ksSelMapCurr
+0030BD F583              MOV     DPH,A
+0030BF EC                MOV     A,R4
+0030C0 F0                MOVX    @DPTR,A
+0030C1 EE                MOV     A,R6
+0030C2 2478              ADD     A,#078H
+0030C4 FB                MOV     R3,A
+0030C5 E4                CLR     A
+0030C6 3480              ADDC    A,#080H
+0030C8 8B82              MOV     DPL,R3
+0030CA F583              MOV     DPH,A
+0030CC E0                MOVX    A,@DPTR
+0030CD 4D                ORL     A,R5
+0030CE F0                MOVX    @DPTR,A
+0030CF EE                MOV     A,R6
+0030D0 2470              ADD     A,#070H
+0030D2 FB                MOV     R3,A
+0030D3 E4                CLR     A
+0030D4 3480              ADDC    A,#080H
+0030D6 8B82              MOV     DPL,R3
+0030D8 F583              MOV     DPH,A
+0030DA E0                MOVX    A,@DPTR
+0030DB FC                MOV     R4,A
+0030DC ED                MOV     A,R5
+0030DD F4                CPL     A
+0030DE FB                MOV     R3,A
+0030DF EC                MOV     A,R4
+0030E0 5B                ANL     A,R3
+0030E1 F0                MOVX    @DPTR,A
+  259: 
+0030E2 0F                INC     R7
+0030E3 0162              AJMP    ?C0073?KEYSCAN
+0030E5         ?C0074?KEYSCAN:
+  260: 	for (i=0; col[i]!=0; i++) {
+0030E5 E4                CLR     A
+0030E6 FF                MOV     R7,A
+0030E7         ?C0076?KEYSCAN:
+0030E7 EF                MOV     A,R7
+0030E8 900681            MOV     DPTR,#col
+0030EB 93                MOVC    A,@A+DPTR
+0030EC 607C              JZ      ?C0077?KEYSCAN
+  261: 		tgroup = col[i]  >> 3;
+0030EE EF                MOV     A,R7
+0030EF 93                MOVC    A,@A+DPTR
+0030F0 FD                MOV     R5,A
+0030F1 13                RRC     A
+0030F2 13                RRC     A
+0030F3 13                RRC     A
+0030F4 541F              ANL     A,#01FH
+0030F6 FE                MOV     R6,A
+  262: 		tgpionum = 1 << (col[i] & 7);
+0030F7 ED                MOV     A,R5
+0030F8 5407              ANL     A,#07H
+0030FA FD                MOV     R5,A
+0030FB 7401              MOV     A,#01H
+0030FD A805              MOV     R0,AR5
+0030FF 08                INC     R0
+003100 8002              SJMP    ?C0121?KEYSCAN
+003102         ?C0120?KEYSCAN:
+003102 C3                CLR     C
+003103 33                RLC     A
+003104         ?C0121?KEYSCAN:
+003104 D8FC              DJNZ    R0,?C0120?KEYSCAN
+003106 FD                MOV     R5,A
+  263: 		GET_RAW_KEY_SEL(ksSelMapCheck[i], tgroup, tgpionum);
+003107 EE                MOV     A,R6
+003108 2478              ADD     A,#078H
+00310A FB                MOV     R3,A
+00310B E4                CLR     A
+00310C 3480              ADDC    A,#080H
+00310E 8B82              MOV     DPL,R3
+003110 F583              MOV     DPH,A
+003112 E0                MOVX    A,@DPTR
+003113 FC                MOV     R4,A
+003114 ED                MOV     A,R5
+003115 F4                CPL     A
+003116 FB                MOV     R3,A
+003117 EC                MOV     A,R4
+003118 5B                ANL     A,R3
+003119 F0                MOVX    @DPTR,A
+00311A EE                MOV     A,R6
+00311B 2470              ADD     A,#070H
+00311D F582              MOV     DPL,A
+00311F E4                CLR     A
+003120 3480              ADDC    A,#080H
+003122 F583              MOV     DPH,A
+003124 E0                MOVX    A,@DPTR
+003125 4D                ORL     A,R5
+003126 F0                MOVX    @DPTR,A
+003127 EE                MOV     A,R6
+003128 2474              ADD     A,#074H
+00312A F582              MOV     DPL,A
+00312C E4                CLR     A
+00312D 3480              ADDC    A,#080H
+00312F F583              MOV     DPH,A
+003131 E0                MOVX    A,@DPTR
+003132 5B                ANL     A,R3
+003133 F0                MOVX    @DPTR,A
+003134 90811C            MOV     DPTR,#0811CH
+003137 E0                MOVX    A,@DPTR
+003138 F4                CPL     A
+003139 FC                MOV     R4,A
+00313A 74A8              MOV     A,#LOW ksSelMapCheck
+00313C 2F                ADD     A,R7
+00313D F582              MOV     DPL,A
+00313F E4                CLR     A
+003140 344D              ADDC    A,#HIGH ksSelMapCheck
+003142 F583              MOV     DPH,A
+003144 EC                MOV     A,R4
+003145 F0                MOVX    @DPTR,A
+003146 EE                MOV     A,R6
+003147 2478              ADD     A,#078H
+003149 FB                MOV     R3,A
+00314A E4                CLR     A
+00314B 3480              ADDC    A,#080H
+00314D 8B82              MOV     DPL,R3
+00314F F583              MOV     DPH,A
+003151 E0                MOVX    A,@DPTR
+003152 4D                ORL     A,R5
+003153 F0                MOVX    @DPTR,A
+003154 EE                MOV     A,R6
+003155 2470              ADD     A,#070H
+003157 FB                MOV     R3,A
+003158 E4                CLR     A
+003159 3480              ADDC    A,#080H
+00315B 8B82              MOV     DPL,R3
+00315D F583              MOV     DPH,A
+00315F E0                MOVX    A,@DPTR
+003160 FC                MOV     R4,A
+003161 ED                MOV     A,R5
+003162 F4                CPL     A
+003163 FB                MOV     R3,A
+003164 EC                MOV     A,R4
+003165 5B                ANL     A,R3
+003166 F0                MOVX    @DPTR,A
+  264: 	}
+003167 0F                INC     R7
+003168 01E7              AJMP    ?C0076?KEYSCAN
+00316A         ?C0077?KEYSCAN:
+  265: 
+  266: 	for (i=0; col[i]!=0; i++) {
+00316A E4                CLR     A
+00316B FF                MOV     R7,A
+00316C         ?C0079?KEYSCAN:
+00316C EF                MOV     A,R7
+00316D 900681            MOV     DPTR,#col
+003170 93                MOVC    A,@A+DPTR
+003171 6040              JZ      ?C0083?KEYSCAN
+  267: 		if (ksSelMapCheck[i]!=ksSelMapCurr[i]) {
+003173 74BC              MOV     A,#LOW ksSelMapCurr
+003175 2F                ADD     A,R7
+003176 F582              MOV     DPL,A
+003178 E4                CLR     A
+003179 344D              ADDC    A,#HIGH ksSelMapCurr
+00317B F583              MOV     DPH,A
+00317D E0                MOVX    A,@DPTR
+00317E FE                MOV     R6,A
+00317F 74A8              MOV     A,#LOW ksSelMapCheck
+003181 2F                ADD     A,R7
+003182 F582              MOV     DPL,A
+003184 E4                CLR     A
+003185 344D              ADDC    A,#HIGH ksSelMapCheck
+003187 F583              MOV     DPH,A
+003189 E0                MOVX    A,@DPTR
+00318A 6E                XRL     A,R6
+00318B 6023              JZ      ?C0081?KEYSCAN
+  268: 			ksSelMapCurr[i] &= ksSelMapCheck[i];
+00318D 74BC              MOV     A,#LOW ksSelMapCurr
+00318F 2F                ADD     A,R7
+003190 F582              MOV     DPL,A
+003192 E4                CLR     A
+003193 344D              ADDC    A,#HIGH ksSelMapCurr
+003195 F583              MOV     DPH,A
+003197 C083              PUSH    DPH
+003199 C082              PUSH    DPL
+00319B E0                MOVX    A,@DPTR
+00319C FE                MOV     R6,A
+00319D 74A8              MOV     A,#LOW ksSelMapCheck
+00319F 2F                ADD     A,R7
+0031A0 F582              MOV     DPL,A
+0031A2 E4                CLR     A
+0031A3 344D              ADDC    A,#HIGH ksSelMapCheck
+0031A5 F583              MOV     DPH,A
+0031A7 E0                MOVX    A,@DPTR
+0031A8 FD                MOV     R5,A
+0031A9 EE                MOV     A,R6
+0031AA 5D                ANL     A,R5
+0031AB D082              POP     DPL
+0031AD D083              POP     DPH
+0031AF F0                MOVX    @DPTR,A
+  269: 		}
+  270: 	}
+0031B0         ?C0081?KEYSCAN:
+0031B0 0F                INC     R7
+0031B1 80B9              SJMP    ?C0079?KEYSCAN
+  271: }
+0031B3         ?C0083?KEYSCAN:
+0031B3 22                RET     
+----- FUNCTION KS_ScanMatrix (END) -------
+
+
+----- FUNCTION LED_device_poweron (BEGIN) -----
+ FILE: 'led.c'
+   15: void LED_device_poweron()
+   16: {
+   17: 	if(g_variable.current_device_num == 1)
+   18: 		GPIO_Setout(BT_LED_GPIO,0);
+0031B4 904CC3            MOV     DPTR,#g_variable+04H
+0031B7 E0                MOVX    A,@DPTR
+0031B8 B40107            CJNE    A,#01H,?C0002?LED
+   19: 	else if(g_variable.current_device_num == 2)
+0031BB C201              CLR     ?_GPIO_Setout?BIT
+0031BD 7F1F              MOV     R7,#01FH
+0031BF 020EB2            LJMP    _GPIO_Setout
+0031C2         ?C0002?LED:
+   20: 		GPIO_Setout(BT2_LED_GPIO,0);
+0031C2 904CC3            MOV     DPTR,#g_variable+04H
+0031C5 E0                MOVX    A,@DPTR
+0031C6 B40207            CJNE    A,#02H,?C0004?LED
+   21: 	else if(g_variable.current_device_num == 3)
+0031C9 C201              CLR     ?_GPIO_Setout?BIT
+0031CB 7F1E              MOV     R7,#01EH
+0031CD 020EB2            LJMP    _GPIO_Setout
+0031D0         ?C0004?LED:
+   22: 	{	
+0031D0 904CC3            MOV     DPTR,#g_variable+04H
+0031D3 E0                MOVX    A,@DPTR
+0031D4 B4030E            CJNE    A,#03H,?C0006?LED
+   23: 		GPIO_Setout(BT_LED_GPIO,0);
+   24: 		GPIO_Setout(LOWPOWER_LED_GPIO,0);
+0031D7 C201              CLR     ?_GPIO_Setout?BIT
+0031D9 7F1F              MOV     R7,#01FH
+0031DB 120EB2            LCALL   _GPIO_Setout
+   25: 	}
+0031DE C201              CLR     ?_GPIO_Setout?BIT
+0031E0 7F1D              MOV     R7,#01DH
+0031E2 020EB2            LJMP    _GPIO_Setout
+   26: 	else
+0031E5         ?C0006?LED:
+   27: 	{
+   28: 		GPIO_Setout(G24_LED_GPIO,0);
+0031E5 C201              CLR     ?_GPIO_Setout?BIT
+0031E7 7F1D              MOV     R7,#01DH
+0031E9 020EB2            LJMP    _GPIO_Setout
+   29: 	}
+----- FUNCTION LED_device_poweron (END) -------
+
+
+----- FUNCTION kb_cb_Timer100ms (BEGIN) -----
+ FILE: 'sys.c'
+  680: static void kb_cb_Timer100ms()
+  681: {
+  682: 
+  683: 	if (g_variable.delay_enter_lpm_timer) 
+0031EC 904CEA            MOV     DPTR,#g_variable+02BH
+0031EF E0                MOVX    A,@DPTR
+0031F0 6002              JZ      ?C0134?SYS
+  684: 	{
+  685: 		g_variable.delay_enter_lpm_timer --;
+0031F2 14                DEC     A
+0031F3 F0                MOVX    @DPTR,A
+  686: 	}
+0031F4         ?C0134?SYS:
+  687: 
+  688: 	if(g_variable.recon_delay)
+0031F4 904CEF            MOV     DPTR,#g_variable+030H
+0031F7 E0                MOVX    A,@DPTR
+0031F8 6002              JZ      ?C0135?SYS
+  689: 		g_variable.recon_delay--;
+0031FA 14                DEC     A
+0031FB F0                MOVX    @DPTR,A
+0031FC         ?C0135?SYS:
+  690: 
+  691: 	if (g_variable.powerOn_timer != 0)
+0031FC 904CE5            MOV     DPTR,#g_variable+026H
+0031FF E0                MOVX    A,@DPTR
+003200 600F              JZ      ?C0136?SYS
+  692: 	{	
+  693: 		g_variable.powerOn_timer--;
+003202 14                DEC     A
+003203 F0                MOVX    @DPTR,A
+  694: 		LED_device_poweron();
+003204 31B4              ACALL   LED_device_poweron
+  695: 		if (!g_variable.powerOn_timer)
+003206 904CE5            MOV     DPTR,#g_variable+026H
+003209 E0                MOVX    A,@DPTR
+00320A 7030              JNZ     ?C0138?SYS
+  696: 		{
+  697: 			LED_device_poweroff();
+00320C 120F9C            LCALL   LED_device_poweroff
+  698: 		}
+  699: 	}
+00320F 802B              SJMP    ?C0138?SYS
+003211         ?C0136?SYS:
+  700: 	else
+  701: 	if (g_variable.pairing_timeout == 0) //bt  pairing
+003211 904CE9            MOV     DPTR,#g_variable+02AH
+003214 E0                MOVX    A,@DPTR
+003215 7025              JNZ     ?C0138?SYS
+  702: 	{
+  703: 		if(g_variable.battery_low_led_flash_interval)
+003217 904CE2            MOV     DPTR,#g_variable+023H
+00321A E0                MOVX    A,@DPTR
+00321B 601F              JZ      ?C0138?SYS
+  704: 		{
+  705: 			g_variable.battery_low_led_flash_interval--;
+00321D 14                DEC     A
+00321E F0                MOVX    @DPTR,A
+  706: 			if(g_variable.battery_low_led_flash_interval & 0x02)
+00321F E0                MOVX    A,@DPTR
+003220 30E109            JNB     ACC.1,?C0141?SYS
+  707: 			{
+  708: 				GPIO_Setout(LOWPOWER_LED_GPIO, 0);
+003223 C201              CLR     ?_GPIO_Setout?BIT
+003225 7F1D              MOV     R7,#01DH
+003227 120EB2            LCALL   _GPIO_Setout
+  709: 			}
+00322A 8007              SJMP    ?C0142?SYS
+00322C         ?C0141?SYS:
+  710: 			else
+  711: 				GPIO_Setout(LOWPOWER_LED_GPIO, 1);	
+00322C D201              SETB    ?_GPIO_Setout?BIT
+00322E 7F1D              MOV     R7,#01DH
+003230 120EB2            LCALL   _GPIO_Setout
+003233         ?C0142?SYS:
+  712: 			if(!g_variable.battery_low_led_flash_interval)
+003233 904CE2            MOV     DPTR,#g_variable+023H
+003236 E0                MOVX    A,@DPTR
+003237 7003              JNZ     ?C0138?SYS
+  713: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+003239 7404              MOV     A,#04H
+00323B F0                MOVX    @DPTR,A
+  714: 		}
+  715: 	}
+00323C         ?C0138?SYS:
+  716: 	
+  717: // The dongle must receive data within 200ms, otherwise it will be forced to lift
+  718: 	if(!long_press_flag)
+00323C 904DD5            MOV     DPTR,#long_press_flag
+00323F E0                MOVX    A,@DPTR
+003240 702D              JNZ     ?C0144?SYS
+  719: 	{
+  720: 		if (repeat_send_24g == 1)
+003242 904DD6            MOV     DPTR,#repeat_send_24g
+003245 E0                MOVX    A,@DPTR
+003246 6401              XRL     A,#01H
+003248 7025              JNZ     ?C0144?SYS
+  721: 		{
+  722: 			repeat_send_24g = 0;
+00324A F0                MOVX    @DPTR,A
+  723: 
+  724: 			 if (multikey[0] != 0)
+00324B 904E3C            MOV     DPTR,#multikey
+00324E E0                MOVX    A,@DPTR
+00324F 600D              JZ      ?C0146?SYS
+  725: 			{
+  726: 				IPC_TxHidData(multikey, 3);
+003251 7B01              MOV     R3,#01H
+003253 7A4E              MOV     R2,#HIGH multikey
+003255 793C              MOV     R1,#LOW multikey
+003257 7D03              MOV     R5,#03H
+003259 1214B0            LCALL   _IPC_TxHidData
+  727: 			}
+00325C 8011              SJMP    ?C0144?SYS
+00325E         ?C0146?SYS:
+  728: 			else if (hidBuff[0] != 0)
+00325E 904800            MOV     DPTR,#hidBuff
+003261 E0                MOVX    A,@DPTR
+003262 600B              JZ      ?C0144?SYS
+  729: 			{
+  730: 
+  731: 				IPC_TxHidData(hidBuff,9);
+003264 7B01              MOV     R3,#01H
+003266 7A48              MOV     R2,#HIGH hidBuff
+003268 7900              MOV     R1,#LOW hidBuff
+00326A 7D09              MOV     R5,#09H
+00326C 1214B0            LCALL   _IPC_TxHidData
+  732: 			}
+  733: 		}
+  734: 	}
+00326F         ?C0144?SYS:
+  735: 
+  736: //role switch time out
+  737: 	if (switch_role_timer != 0)
+00326F 904DD4            MOV     DPTR,#switch_role_timer
+003272 E0                MOVX    A,@DPTR
+003273 6009              JZ      ?C0149?SYS
+  738: 	{
+  739: 		switch_role_timer--; 
+003275 E0                MOVX    A,@DPTR
+003276 14                DEC     A
+003277 F0                MOVX    @DPTR,A
+  740: 		if (switch_role_timer == 0)
+003278 E0                MOVX    A,@DPTR
+003279 7003              JNZ     ?C0149?SYS
+  741: 		{
+  742: 			System_Reset_Connect();
+00327B 121B46            LCALL   System_Reset_Connect
+  743: 		}
+  744: 	}
+00327E         ?C0149?SYS:
+  745: 
+  746: 	if (delayChgInvTimer != 0){
+00327E 904DDE            MOV     DPTR,#delayChgInvTimer
+003281 E0                MOVX    A,@DPTR
+003282 6021              JZ      ?C0156?SYS
+  747: 		delayChgInvTimer--;
+003284 E0                MOVX    A,@DPTR
+003285 14                DEC     A
+003286 F0                MOVX    @DPTR,A
+  748: 		if (delayChgInvTimer == 0){
+003287 E0                MOVX    A,@DPTR
+003288 701B              JNZ     ?C0156?SYS
+  749: 		
+  750: 			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+00328A 904CC7            MOV     DPTR,#g_variable+08H
+00328D E0                MOVX    A,@DPTR
+00328E B40407            CJNE    A,#04H,?C0153?SYS
+  751: 			{
+  752: 				kscurrmult = 0x0c;
+003291 904213            MOV     DPTR,#kscurrmult
+003294 740C              MOV     A,#0CH
+003296 F0                MOVX    @DPTR,A
+  753: 			}
+003297 22                RET     
+003298         ?C0153?SYS:
+  754: 			else if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+003298 904CC9            MOV     DPTR,#g_variable+0AH
+00329B E0                MOVX    A,@DPTR
+00329C B40406            CJNE    A,#04H,?C0156?SYS
+  755: 			{
+  756: 				kscurrmult = 0x3a;
+00329F 904213            MOV     DPTR,#kscurrmult
+0032A2 743A              MOV     A,#03AH
+0032A4 F0                MOVX    @DPTR,A
+  757: 			}
+  758: 		}
+  759: 	}
+  760: }
+0032A5         ?C0156?SYS:
+0032A5 22                RET     
+----- FUNCTION kb_cb_Timer100ms (END) -------
+
+
+----- FUNCTION LED_handle (BEGIN) -----
+ FILE: 'led.c'
+   50: void LED_handle()
+   51: {
+   52: 	if (power_on_flag != 2)
+   53: 		return;
+0032A6 904DE1            MOV     DPTR,#power_on_flag
+0032A9 E0                MOVX    A,@DPTR
+0032AA 6402              XRL     A,#02H
+0032AC 6002              JZ      $ + 4H
+0032AE 616B              AJMP    ?C0017?LED
+0032B0         ?C0016?LED:
+   54: 
+   55: 	if(!g_variable.pairing_timeout)
+0032B0 904CE9            MOV     DPTR,#g_variable+02AH
+0032B3 E0                MOVX    A,@DPTR
+0032B4 6002              JZ      $ + 4H
+0032B6 615D              AJMP    ?C0018?LED
+   56: 	{
+   57: 		//low battery LED process
+   58: 		if (g_variable.battery_status == BAT_STATUS_SHUT_DOWN)
+0032B8 904CD5            MOV     DPTR,#g_variable+016H
+0032BB E0                MOVX    A,@DPTR
+0032BC B40205            CJNE    A,#02H,?C0019?LED
+   59: 		{
+   60: 			System_long_sleep();
+0032BF 120F93            LCALL   System_long_sleep
+   61: 		}
+0032C2 802F              SJMP    ?C0020?LED
+0032C4         ?C0019?LED:
+   62: 		else if (g_variable.battery_status == BAT_STATUS_LOW)
+0032C4 904CD5            MOV     DPTR,#g_variable+016H
+0032C7 E0                MOVX    A,@DPTR
+0032C8 B40114            CJNE    A,#01H,?C0021?LED
+   63: 		{
+   64: 			if (g_variable.battery_low_led_flash_flag == 0)
+0032CB 904CF7            MOV     DPTR,#g_variable+038H
+0032CE E0                MOVX    A,@DPTR
+0032CF 7022              JNZ     ?C0020?LED
+   65: 			{
+   66: 				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+0032D1 904CE2            MOV     DPTR,#g_variable+023H
+0032D4 7404              MOV     A,#04H
+0032D6 F0                MOVX    @DPTR,A
+   67: 				g_variable.battery_low_led_flash_flag = 1;
+0032D7 904CF7            MOV     DPTR,#g_variable+038H
+0032DA 7401              MOV     A,#01H
+0032DC F0                MOVX    @DPTR,A
+   68: 			}
+   69: 		}
+0032DD 8014              SJMP    ?C0020?LED
+0032DF         ?C0021?LED:
+   70: 		else
+   71: 		{
+   72: 			if (g_variable.battery_low_led_flash_flag == 1)
+0032DF 904CF7            MOV     DPTR,#g_variable+038H
+0032E2 E0                MOVX    A,@DPTR
+0032E3 B4010D            CJNE    A,#01H,?C0020?LED
+   73: 			{
+   74: 				g_variable.battery_low_led_flash_flag = 0;
+0032E6 E4                CLR     A
+0032E7 F0                MOVX    @DPTR,A
+   75: 				g_variable.battery_low_led_flash_interval = 0;
+0032E8 904CE2            MOV     DPTR,#g_variable+023H
+0032EB F0                MOVX    @DPTR,A
+   76: 				GPIO_Setout(LOWPOWER_LED_GPIO, 1);
+0032EC D201              SETB    ?_GPIO_Setout?BIT
+0032EE 7F1D              MOV     R7,#01DH
+0032F0 120EB2            LCALL   _GPIO_Setout
+   77: 			}
+   78: 		}
+0032F3         ?C0020?LED:
+   79: 
+   80: 		//capslock  numlock  scrolllock LED process
+   81: 		if (YC_check_is_connected())
+0032F3 1217E8            LCALL   YC_check_is_connected
+0032F6 EF                MOV     A,R7
+0032F7 6056              JZ      ?C0025?LED
+   82: 		{
+   83: 			if(m_caps_num_lock != m_caps_num_lock_last)
+0032F9 904DD9            MOV     DPTR,#m_caps_num_lock_last
+0032FC E0                MOVX    A,@DPTR
+0032FD FF                MOV     R7,A
+0032FE 904CB7            MOV     DPTR,#m_caps_num_lock
+003301 E0                MOVX    A,@DPTR
+003302 6F                XRL     A,R7
+003303 6066              JZ      ?C0017?LED
+   84: 			{
+   85: 				if(m_caps_num_lock & KB_PC_KEYSEL_NUMLOCK)
+003305 E0                MOVX    A,@DPTR
+003306 30E00F            JNB     ACC.0,?C0027?LED
+   86: 				{
+   87: 					g_variable.sys_numlockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+003309 904CE6            MOV     DPTR,#g_variable+027H
+00330C 740C              MOV     A,#0CH
+00330E F0                MOVX    @DPTR,A
+   88: 					GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
+00330F C201              CLR     ?_GPIO_Setout?BIT
+003311 7F10              MOV     R7,#010H
+003313 120EB2            LCALL   _GPIO_Setout
+   89: 				}
+003316 800C              SJMP    ?C0028?LED
+003318         ?C0027?LED:
+   90: 				else
+   91: 				{
+   92: 					GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+003318 D201              SETB    ?_GPIO_Setout?BIT
+00331A 7F10              MOV     R7,#010H
+00331C 120EB2            LCALL   _GPIO_Setout
+   93: 					g_variable.sys_numlockled_on_timer = 0;
+00331F E4                CLR     A
+003320 904CE6            MOV     DPTR,#g_variable+027H
+003323 F0                MOVX    @DPTR,A
+   94: 				}
+003324         ?C0028?LED:
+   95: 				
+   96: 				if(m_caps_num_lock & KB_PC_KEYSEL_CAPSLOCK)
+003324 904CB7            MOV     DPTR,#m_caps_num_lock
+003327 E0                MOVX    A,@DPTR
+003328 30E10F            JNB     ACC.1,?C0029?LED
+   97: 				{
+   98: 					g_variable.sys_capslockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+00332B 904CE7            MOV     DPTR,#g_variable+028H
+00332E 740C              MOV     A,#0CH
+003330 F0                MOVX    @DPTR,A
+   99: 					GPIO_Setout(CAPS_LED_GPIO, 0);
+003331 C201              CLR     ?_GPIO_Setout?BIT
+003333 7F0F              MOV     R7,#0FH
+003335 120EB2            LCALL   _GPIO_Setout
+  100: 				}
+003338 800C              SJMP    ?C0030?LED
+00333A         ?C0029?LED:
+  101: 				else 
+  102: 				{
+  103: 					GPIO_Setout(CAPS_LED_GPIO, 1);
+00333A D201              SETB    ?_GPIO_Setout?BIT
+00333C 7F0F              MOV     R7,#0FH
+00333E 120EB2            LCALL   _GPIO_Setout
+  104: 					g_variable.sys_capslockled_on_timer = 0;
+003341 E4                CLR     A
+003342 904CE7            MOV     DPTR,#g_variable+028H
+003345 F0                MOVX    @DPTR,A
+  105: 				}	
+003346         ?C0030?LED:
+  106: 
+  107: 				//if(m_caps_num_lock & KB_PC_KEYSEL_SCROLLLOCK)
+  108: 				//	g_variable.sys_scrolllockled_on_timer = KB_NUM_CAPS_LED_ON_TIMER;
+  109: 				//else 
+  110: 				//	g_variable.sys_scrolllockled_on_timer = 0;
+  111: 					
+  112: 				m_caps_num_lock_last = m_caps_num_lock;
+003346 904CB7            MOV     DPTR,#m_caps_num_lock
+003349 E0                MOVX    A,@DPTR
+00334A 904DD9            MOV     DPTR,#m_caps_num_lock_last
+00334D F0                MOVX    @DPTR,A
+  113: 			}
+  114: 		}
+00334E 22                RET     
+00334F         ?C0025?LED:
+  115: 		else
+  116: 		{
+  117: 			GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+00334F D201              SETB    ?_GPIO_Setout?BIT
+003351 7F10              MOV     R7,#010H
+003353 120EB2            LCALL   _GPIO_Setout
+  118: 			GPIO_Setout(CAPS_LED_GPIO, 1);
+003356 D201              SETB    ?_GPIO_Setout?BIT
+003358 7F0F              MOV     R7,#0FH
+00335A 020EB2            LJMP    _GPIO_Setout
+  119: 		}
+  120: 	}
+00335D         ?C0018?LED:
+  121: 	else
+  122: 	{
+  123: 		GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+00335D D201              SETB    ?_GPIO_Setout?BIT
+00335F 7F10              MOV     R7,#010H
+003361 120EB2            LCALL   _GPIO_Setout
+  124: 		GPIO_Setout(CAPS_LED_GPIO, 1);
+003364 D201              SETB    ?_GPIO_Setout?BIT
+003366 7F0F              MOV     R7,#0FH
+003368 120EB2            LCALL   _GPIO_Setout
+  125: 	}
+  126: 
+  127: }
+00336B         ?C0017?LED:
+00336B 22                RET     
+----- FUNCTION LED_handle (END) -------
+
+
+----- FUNCTION _kb_cb_Hid (BEGIN) -----
+ FILE: 'sys.c'
+   83: static void kb_cb_Hid(byte *p,byte len) {
+   84: 	//p[0] is hid type,always is 1(kb) now
+00336C 904EEA            MOV     DPTR,#len
+00336F ED                MOV     A,R5
+003370 F0                MOVX    @DPTR,A
+;---- Variable 'p' assigned to Register 'R1/R2/R3' ----
+   85: 	byte temp = p[1];
+003371 900001            MOV     DPTR,#01H
+003374 1203CF            LCALL   ?C?CLDOPTR
+003377 904EEB            MOV     DPTR,#temp
+00337A F0                MOVX    @DPTR,A
+   86: 
+   87: 	if (len<2) {
+   88: 		return;
+   89: 	}
+   90: }
+00337B 22                RET     
+----- FUNCTION _kb_cb_Hid (END) -------
+
+
+----- FUNCTION YC_adc_init (BEGIN) -----
+ FILE: 'adc.c'
+    3: void YC_adc_init()
+    4: {
+    5: 	byte i;
+    6: 	#ifndef  ADC_ENABLE
+    7: 		return;
+    8: 	#endif	
+    9: 	m_adc_channel = ADC_CHANNEL;
+00337C 904C90            MOV     DPTR,#m_adc_channel
+00337F 7433              MOV     A,#033H
+003381 F0                MOVX    @DPTR,A
+   10: 	g_variable.battery_check_interval = BATTERY_CHECK_INTERVAL;
+003382 904CD3            MOV     DPTR,#g_variable+014H
+003385 7405              MOV     A,#05H
+003387 F0                MOVX    @DPTR,A
+   11: 	g_variable.battery_value_index = 0;
+003388 E4                CLR     A
+003389 A3                INC     DPTR
+00338A F0                MOVX    @DPTR,A
+   12: 	for (i = 0; i < BAT_ARRAY_LEN; i++)
+;---- Variable 'i' assigned to Register 'R7' ----
+00338B FF                MOV     R7,A
+00338C         ?C0001?ADC:
+   13: 	{
+   14: 		g_variable.battery_value[i] = INIT_BATTERY_VALUE;
+00338C EF                MOV     A,R7
+00338D 25E0              ADD     A,ACC
+00338F 24D6              ADD     A,#LOW g_variable+017H
+003391 F582              MOV     DPL,A
+003393 E4                CLR     A
+003394 344C              ADDC    A,#HIGH g_variable+017H
+003396 F583              MOV     DPH,A
+003398 7479              MOV     A,#079H
+00339A F0                MOVX    @DPTR,A
+00339B A3                INC     DPTR
+00339C 7490              MOV     A,#090H
+00339E F0                MOVX    @DPTR,A
+   15: 	}
+00339F 0F                INC     R7
+0033A0 EF                MOV     A,R7
+0033A1 B404E8            CJNE    A,#04H,?C0001?ADC
+0033A4         ?C0002?ADC:
+   16: 
+   17: 	
+   18: 	if(m_adc_config_flag == ADC_TYPE_HVIN)
+0033A4 904C8F            MOV     DPTR,#m_adc_config_flag
+0033A7 E0                MOVX    A,@DPTR
+0033A8 6402              XRL     A,#02H
+0033AA 6002              JZ      $ + 4H
+0033AC 814B              AJMP    ?C0004?ADC
+   19: 	{
+   20: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V2+m_adc0vBase;
+0033AE 904C91            MOV     DPTR,#m_adc0vBase
+0033B1 E0                MOVX    A,@DPTR
+0033B2 FE                MOV     R6,A
+0033B3 A3                INC     DPTR
+0033B4 E0                MOVX    A,@DPTR
+0033B5 FF                MOV     R7,A
+0033B6 C3                CLR     C
+0033B7 904C94            MOV     DPTR,#m_adc3vValue+01H
+0033BA E0                MOVX    A,@DPTR
+0033BB 9F                SUBB    A,R7
+0033BC FD                MOV     R5,A
+0033BD 904C93            MOV     DPTR,#m_adc3vValue
+0033C0 E0                MOVX    A,@DPTR
+0033C1 9E                SUBB    A,R6
+0033C2 FC                MOV     R4,A
+0033C3 E4                CLR     A
+0033C4 120206            LCALL   ?C?FCASTI
+0033C7 7BC3              MOV     R3,#0C3H
+0033C9 7AF5              MOV     R2,#0F5H
+0033CB 7988              MOV     R1,#088H
+0033CD 783F              MOV     R0,#03FH
+0033CF 1200FB            LCALL   ?C?FPMUL
+0033D2 C004              PUSH    AR4
+0033D4 C005              PUSH    AR5
+0033D6 C006              PUSH    AR6
+0033D8 C007              PUSH    AR7
+0033DA 904C91            MOV     DPTR,#m_adc0vBase
+0033DD E0                MOVX    A,@DPTR
+0033DE FC                MOV     R4,A
+0033DF A3                INC     DPTR
+0033E0 E0                MOVX    A,@DPTR
+0033E1 FD                MOV     R5,A
+0033E2 E4                CLR     A
+0033E3 120206            LCALL   ?C?FCASTI
+0033E6 D003              POP     AR3
+0033E8 D002              POP     AR2
+0033EA D001              POP     AR1
+0033EC D000              POP     AR0
+0033EE 12000A            LCALL   ?C?FPADD
+0033F1 12023F            LCALL   ?C?CASTF
+0033F4 904CDE            MOV     DPTR,#g_variable+01FH
+0033F7 EE                MOV     A,R6
+0033F8 F0                MOVX    @DPTR,A
+0033F9 A3                INC     DPTR
+0033FA EF                MOV     A,R7
+0033FB F0                MOVX    @DPTR,A
+   21: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_3V0+m_adc0vBase;
+0033FC 904C91            MOV     DPTR,#m_adc0vBase
+0033FF E0                MOVX    A,@DPTR
+003400 FE                MOV     R6,A
+003401 A3                INC     DPTR
+003402 E0                MOVX    A,@DPTR
+003403 FF                MOV     R7,A
+003404 C3                CLR     C
+003405 904C94            MOV     DPTR,#m_adc3vValue+01H
+003408 E0                MOVX    A,@DPTR
+003409 9F                SUBB    A,R7
+00340A FD                MOV     R5,A
+00340B 904C93            MOV     DPTR,#m_adc3vValue
+00340E E0                MOVX    A,@DPTR
+00340F 9E                SUBB    A,R6
+003410 FC                MOV     R4,A
+003411 E4                CLR     A
+003412 120206            LCALL   ?C?FCASTI
+003415 7BAE              MOV     R3,#0AEH
+003417 7A47              MOV     R2,#047H
+003419 7981              MOV     R1,#081H
+00341B 783F              MOV     R0,#03FH
+00341D 1200FB            LCALL   ?C?FPMUL
+003420 C004              PUSH    AR4
+003422 C005              PUSH    AR5
+003424 C006              PUSH    AR6
+003426 C007              PUSH    AR7
+003428 904C91            MOV     DPTR,#m_adc0vBase
+00342B E0                MOVX    A,@DPTR
+00342C FC                MOV     R4,A
+00342D A3                INC     DPTR
+00342E E0                MOVX    A,@DPTR
+00342F FD                MOV     R5,A
+003430 E4                CLR     A
+003431 120206            LCALL   ?C?FCASTI
+003434 D003              POP     AR3
+003436 D002              POP     AR2
+003438 D001              POP     AR1
+00343A D000              POP     AR0
+00343C 12000A            LCALL   ?C?FPADD
+00343F 12023F            LCALL   ?C?CASTF
+003442 904CE0            MOV     DPTR,#g_variable+021H
+003445 EE                MOV     A,R6
+003446 F0                MOVX    @DPTR,A
+003447 A3                INC     DPTR
+003448 EF                MOV     A,R7
+003449 F0                MOVX    @DPTR,A
+   22: 	}
+00344A 22                RET     
+00344B         ?C0004?ADC:
+   23: 	else if(m_adc_config_flag == ADC_TYPE_VINLPM)
+00344B 904C8F            MOV     DPTR,#m_adc_config_flag
+00344E E0                MOVX    A,@DPTR
+00344F 6401              XRL     A,#01H
+003451 7002              JNZ     $ + 4H
+003453 81F1              AJMP    ?C0008?ADC
+   24: 	{
+   25: 
+   26: 	}
+003455         ?C0006?ADC:
+   27: 	else
+   28: 	{
+   29: 		g_variable.battery_level_low = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_1V0+m_adc0vBase;
+003455 904C91            MOV     DPTR,#m_adc0vBase
+003458 E0                MOVX    A,@DPTR
+003459 FE                MOV     R6,A
+00345A A3                INC     DPTR
+00345B E0                MOVX    A,@DPTR
+00345C FF                MOV     R7,A
+00345D C3                CLR     C
+00345E 904C94            MOV     DPTR,#m_adc3vValue+01H
+003461 E0                MOVX    A,@DPTR
+003462 9F                SUBB    A,R7
+003463 FD                MOV     R5,A
+003464 904C93            MOV     DPTR,#m_adc3vValue
+003467 E0                MOVX    A,@DPTR
+003468 9E                SUBB    A,R6
+003469 FC                MOV     R4,A
+00346A E4                CLR     A
+00346B 120206            LCALL   ?C?FCASTI
+00346E 7B29              MOV     R3,#029H
+003470 7A5C              MOV     R2,#05CH
+003472 794F              MOV     R1,#04FH
+003474 783F              MOV     R0,#03FH
+003476 1200FB            LCALL   ?C?FPMUL
+003479 C004              PUSH    AR4
+00347B C005              PUSH    AR5
+00347D C006              PUSH    AR6
+00347F C007              PUSH    AR7
+003481 904C91            MOV     DPTR,#m_adc0vBase
+003484 E0                MOVX    A,@DPTR
+003485 FC                MOV     R4,A
+003486 A3                INC     DPTR
+003487 E0                MOVX    A,@DPTR
+003488 FD                MOV     R5,A
+003489 E4                CLR     A
+00348A 120206            LCALL   ?C?FCASTI
+00348D D003              POP     AR3
+00348F D002              POP     AR2
+003491 D001              POP     AR1
+003493 D000              POP     AR0
+003495 12000A            LCALL   ?C?FPADD
+003498 12023F            LCALL   ?C?CASTF
+00349B 904CDE            MOV     DPTR,#g_variable+01FH
+00349E EE                MOV     A,R6
+00349F F0                MOVX    @DPTR,A
+0034A0 A3                INC     DPTR
+0034A1 EF                MOV     A,R7
+0034A2 F0                MOVX    @DPTR,A
+   30: 		g_variable.battery_level_shutdown = (m_adc3vValue - m_adc0vBase)*LOW_BATTER_COEFFICIENT_0V9+m_adc0vBase;
+0034A3 904C91            MOV     DPTR,#m_adc0vBase
+0034A6 E0                MOVX    A,@DPTR
+0034A7 FE                MOV     R6,A
+0034A8 A3                INC     DPTR
+0034A9 E0                MOVX    A,@DPTR
+0034AA FF                MOV     R7,A
+0034AB C3                CLR     C
+0034AC 904C94            MOV     DPTR,#m_adc3vValue+01H
+0034AF E0                MOVX    A,@DPTR
+0034B0 9F                SUBB    A,R7
+0034B1 FD                MOV     R5,A
+0034B2 904C93            MOV     DPTR,#m_adc3vValue
+0034B5 E0                MOVX    A,@DPTR
+0034B6 9E                SUBB    A,R6
+0034B7 FC                MOV     R4,A
+0034B8 E4                CLR     A
+0034B9 120206            LCALL   ?C?FCASTI
+0034BC 7B52              MOV     R3,#052H
+0034BE 7AB8              MOV     R2,#0B8H
+0034C0 791E              MOV     R1,#01EH
+0034C2 783F              MOV     R0,#03FH
+0034C4 1200FB            LCALL   ?C?FPMUL
+0034C7 C004              PUSH    AR4
+0034C9 C005              PUSH    AR5
+0034CB C006              PUSH    AR6
+0034CD C007              PUSH    AR7
+0034CF 904C91            MOV     DPTR,#m_adc0vBase
+0034D2 E0                MOVX    A,@DPTR
+0034D3 FC                MOV     R4,A
+0034D4 A3                INC     DPTR
+0034D5 E0                MOVX    A,@DPTR
+0034D6 FD                MOV     R5,A
+0034D7 E4                CLR     A
+0034D8 120206            LCALL   ?C?FCASTI
+0034DB D003              POP     AR3
+0034DD D002              POP     AR2
+0034DF D001              POP     AR1
+0034E1 D000              POP     AR0
+0034E3 12000A            LCALL   ?C?FPADD
+0034E6 12023F            LCALL   ?C?CASTF
+0034E9 904CE0            MOV     DPTR,#g_variable+021H
+0034EC EE                MOV     A,R6
+0034ED F0                MOVX    @DPTR,A
+0034EE A3                INC     DPTR
+0034EF EF                MOV     A,R7
+0034F0 F0                MOVX    @DPTR,A
+   31: 	}
+   32: 	
+   33: }
+0034F1         ?C0008?ADC:
+0034F1 22                RET     
+----- FUNCTION YC_adc_init (END) -------
+
+
+----- FUNCTION _bufsize (BEGIN) -----
+0034F2 904EC9            MOV     DPTR,#rptr
+0034F5 EE                MOV     A,R6
+0034F6 F0                MOVX    @DPTR,A
+0034F7 A3                INC     DPTR
+0034F8 EF                MOV     A,R7
+0034F9 F0                MOVX    @DPTR,A
+0034FA 904ECB            MOV     DPTR,#wptr
+0034FD EC                MOV     A,R4
+0034FE F0                MOVX    @DPTR,A
+0034FF A3                INC     DPTR
+003500 ED                MOV     A,R5
+003501 F0                MOVX    @DPTR,A
+;---- Variable 'buflen' assigned to Register 'R3' ----
+003502 904ECB            MOV     DPTR,#wptr
+003505 E0                MOVX    A,@DPTR
+003506 FE                MOV     R6,A
+003507 A3                INC     DPTR
+003508 E0                MOVX    A,@DPTR
+003509 FF                MOV     R7,A
+00350A D3                SETB    C
+00350B 904ECA            MOV     DPTR,#rptr+01H
+00350E E0                MOVX    A,@DPTR
+00350F 9F                SUBB    A,R7
+003510 904EC9            MOV     DPTR,#rptr
+003513 E0                MOVX    A,@DPTR
+003514 9E                SUBB    A,R6
+003515 4016              JC      ?C0001?IPC
+003517 904ECB            MOV     DPTR,#wptr
+00351A E0                MOVX    A,@DPTR
+00351B FE                MOV     R6,A
+00351C A3                INC     DPTR
+00351D E0                MOVX    A,@DPTR
+00351E FF                MOV     R7,A
+00351F 904ECA            MOV     DPTR,#rptr+01H
+003522 E0                MOVX    A,@DPTR
+003523 9F                SUBB    A,R7
+003524 FF                MOV     R7,A
+003525 904EC9            MOV     DPTR,#rptr
+003528 E0                MOVX    A,@DPTR
+003529 9E                SUBB    A,R6
+00352A FE                MOV     R6,A
+00352B 801E              SJMP    ?C0002?IPC
+00352D         ?C0001?IPC:
+00352D 904EC9            MOV     DPTR,#rptr
+003530 E0                MOVX    A,@DPTR
+003531 FE                MOV     R6,A
+003532 A3                INC     DPTR
+003533 E0                MOVX    A,@DPTR
+003534 FF                MOV     R7,A
+003535 C3                CLR     C
+003536 904ECC            MOV     DPTR,#wptr+01H
+003539 E0                MOVX    A,@DPTR
+00353A 9F                SUBB    A,R7
+00353B FF                MOV     R7,A
+00353C 904ECB            MOV     DPTR,#wptr
+00353F E0                MOVX    A,@DPTR
+003540 9E                SUBB    A,R6
+003541 FE                MOV     R6,A
+003542 AD03              MOV     R5,AR3
+003544 C3                CLR     C
+003545 EB                MOV     A,R3
+003546 9F                SUBB    A,R7
+003547 FF                MOV     R7,A
+003548 E4                CLR     A
+003549 9E                SUBB    A,R6
+00354A FE                MOV     R6,A
+00354B         ?C0002?IPC:
+00354B 22                RET     
+----- FUNCTION _bufsize (END) -------
+
+
+----- FUNCTION IPC_GetBBDIsconnectReason (BEGIN) -----
+00354C 900446            MOV     DPTR,#bbDisReason
+00354F E0                MOVX    A,@DPTR
+003550 FF                MOV     R7,A
+003551 22                RET     
+----- FUNCTION IPC_GetBBDIsconnectReason (END) -------
+
+
+----- FUNCTION YC_Ice_break (BEGIN) -----
+003552 908280            MOV     DPTR,#08280H
+003555 7401              MOV     A,#01H
+003557 F0                MOVX    @DPTR,A
+003558 22                RET     
+----- FUNCTION YC_Ice_break (END) -------
+
+
+----- FUNCTION _GPIO_ClearWakeup (BEGIN) -----
+;---- Variable 'gpio_num' assigned to Register 'R7' ----
+003559 EF                MOV     A,R7
+00355A F4                CPL     A
+00355B 603A              JZ      ?C0023?GPIO
+00355D         ?C0022?GPIO:
+00355D EF                MOV     A,R7
+00355E 5407              ANL     A,#07H
+003560 FE                MOV     R6,A
+;---- Variable 'queue' assigned to Register 'R6' ----
+003561 EF                MOV     A,R7
+003562 13                RRC     A
+003563 13                RRC     A
+003564 13                RRC     A
+003565 5403              ANL     A,#03H
+003567 FF                MOV     R7,A
+;---- Variable 'group' assigned to Register 'R7' ----
+003568 24A3              ADD     A,#LOW YC_GPIOWakeupL
+00356A F582              MOV     DPL,A
+00356C E4                CLR     A
+00356D 3400              ADDC    A,#HIGH YC_GPIOWakeupL
+00356F F583              MOV     DPH,A
+003571 C083              PUSH    DPH
+003573 C082              PUSH    DPL
+003575 E0                MOVX    A,@DPTR
+003576 FD                MOV     R5,A
+003577 7401              MOV     A,#01H
+003579 A806              MOV     R0,AR6
+00357B 08                INC     R0
+00357C 8002              SJMP    ?C0043?GPIO
+00357E         ?C0042?GPIO:
+00357E C3                CLR     C
+00357F 33                RLC     A
+003580         ?C0043?GPIO:
+003580 D8FC              DJNZ    R0,?C0042?GPIO
+003582 F4                CPL     A
+003583 FC                MOV     R4,A
+003584 5D                ANL     A,R5
+003585 D082              POP     DPL
+003587 D083              POP     DPH
+003589 F0                MOVX    @DPTR,A
+00358A 74A7              MOV     A,#LOW YC_GPIOWakeupH
+00358C 2F                ADD     A,R7
+00358D F582              MOV     DPL,A
+00358F E4                CLR     A
+003590 3400              ADDC    A,#HIGH YC_GPIOWakeupH
+003592 F583              MOV     DPH,A
+003594 E0                MOVX    A,@DPTR
+003595 5C                ANL     A,R4
+003596 F0                MOVX    @DPTR,A
+003597         ?C0023?GPIO:
+003597 22                RET     
+----- FUNCTION _GPIO_ClearWakeup (END) -------
+
+
+----- FUNCTION GPIO_fillpd (BEGIN) -----
+;---- Variable 'i' assigned to Register 'R7' ----
+003598 E4                CLR     A
+003599 FF                MOV     R7,A
+00359A         ?C0026?GPIO:
+00359A EF                MOV     A,R7
+00359B FD                MOV     R5,A
+00359C 7C00              MOV     R4,#00H
+00359E 2478              ADD     A,#078H
+0035A0 FB                MOV     R3,A
+0035A1 EC                MOV     A,R4
+0035A2 3480              ADDC    A,#080H
+0035A4 8B82              MOV     DPL,R3
+0035A6 F583              MOV     DPH,A
+0035A8 E0                MOVX    A,@DPTR
+0035A9 FE                MOV     R6,A
+0035AA ED                MOV     A,R5
+0035AB 2470              ADD     A,#070H
+0035AD FD                MOV     R5,A
+0035AE EC                MOV     A,R4
+0035AF 3480              ADDC    A,#080H
+0035B1 8D82              MOV     DPL,R5
+0035B3 F583              MOV     DPH,A
+0035B5 E0                MOVX    A,@DPTR
+0035B6 4E                ORL     A,R6
+0035B7 F4                CPL     A
+0035B8 FE                MOV     R6,A
+0035B9 EF                MOV     A,R7
+0035BA 247C              ADD     A,#07CH
+0035BC FD                MOV     R5,A
+0035BD EC                MOV     A,R4
+0035BE 3480              ADDC    A,#080H
+0035C0 8D82              MOV     DPL,R5
+0035C2 F583              MOV     DPH,A
+0035C4 EE                MOV     A,R6
+0035C5 F0                MOVX    @DPTR,A
+0035C6 0F                INC     R7
+0035C7 EF                MOV     A,R7
+0035C8 B404CF            CJNE    A,#04H,?C0026?GPIO
+0035CB 22                RET     
+----- FUNCTION GPIO_fillpd (END) -------
+
+
Index: YC1026_3mode_SDK_CUSTOMER/output/FW.HTM
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.HTM	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.HTM	(working copy)
@@ -0,0 +1,1243 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<title>LX51 Static Call Analysis</title>
+<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
+<style type="text/css">
+<!--
+p            { font-family: Verdana; font-size: 8pt; margin-top: 2; margin-bottom: 2 }
+.LI2         { margin-top: 2; margin-bottom: 2 }
+.Release     { background-color: #CCCCCC; font-weight: bold; padding: 6 }
+.ToolT       { font-size: 8pt; color: #808080 }
+.TinyT       { font-size: 8pt; text-align: Center }
+ul           { font-family: Verdana; font-size: 8pt; list-style-type: square;  margin-top: 2; margin-bottom: 2 }
+ol           { font-family: Verdana; font-size: 8pt }
+h1           { font-family: Verdana; font-size: 14pt; color: #000080; font-weight: bold; text-align: Center; margin-right: 3 }
+h2           { font-family: Verdana; font-size: 8pt; color: #000080; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+h3           { font-family: Verdana; font-size: 8pt; font-weight: bold; margin-top: 12; margin-bottom: 3; background-color: #CCCCCC; padding: 6 }
+pre          { font-family: Courier New; font-size: 8pt; background-color: #CCFFCC; margin-left: 24; margin-right: 24 }
+li           { margin-top: 3; margin-bottom: 0 }
+-->
+</style>
+</head>
+<body>
+<h1>Static Call Analysis for<br>OUTPUT\FW (BLUETOOTH)</h1>
+
+<p class="TinyT">
+Created from: <b>LX51 LINKER/LOCATER V4.41</b><br>
+Creation time: <b>05/09/2020  11:32:39</b><p>
+
+<hr>
+
+
+<h2><a name="S2"></a>?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH (C:000737H - C:00085BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_XMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S161">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S12"></a>?PR?YC_START_RECONNECT?BLUETOOTH (C:001FBDH - C:002004H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S74"></a>?PR?KSCOLINITIALIZE?KEYSCAN (C:001111H - C:00112EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S96"></a>?PR?_KB_CB_HID?SYS (C:00336CH - C:00337BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S98"></a>?PR?_KB_CB_EVENT?SYS (C:000AB3H - C:000EB1H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S91">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S197">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S161">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S76">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+<li><a href="#S88">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S91">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S92">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+<li><a href="#S14">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+<li><a href="#S10">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
+<li><a href="#S12">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S105"></a>?PR?KB_CB_TIMER500MS?SYS (C:0021B9H - C:0021EBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S100">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S114">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+<li><a href="#S101">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S103">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S102">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S106"></a>?PR?KB_CB_TIMER100MS?SYS (C:0031ECH - C:0032A5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S88">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S87">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S95">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+</ul>
+
+<h2><a name="S108"></a>?PR?YC_SYSTEM_MAIN?SYS (C:001B4FH - C:001BA5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=18 Bytes (<a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S133">?PR?IPC_ABANDONLPM?IPC</a></li>
+<li><a href="#S135">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S132">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S107">?PR?KB_CB_INIT?SYS</a></li>
+<li><a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S77">?PR?KS_UNISTALL?KEYSCAN</a></li>
+<li><a href="#S86">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S89">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S115">?PR?MAIN?RAM</a></li>
+</ul>
+
+<h2><a name="S115"></a>?PR?MAIN?RAM (C:001FAFH - C:001FB0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=18 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S128"></a>?PR?_IPC_TXSPPDATA?IPC (C:0017ABH - C:0017B2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S124">?PR?_IPC_TXDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S124">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S131"></a>?PR?_IPC_INITIALIZE?IPC (C:001F5DH - C:001F69H)</h2>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<h2><a name="S4"></a>?PR?_YC_STORE_RECORD_LIST?BLUETOOTH (C:00112FH - C:001205H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_XMEMCPY?UTILITIES</a>) Top=4 Bytes (<a href="#S14">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S14">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S6"></a>?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH (C:0017E8H - C:001804H)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S100">?PR?LED_TIMER500MS?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S89">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S100">?PR?LED_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S7"></a>?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH (C:001805H - C:001892H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=8 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S9"></a>?PR?YC_CANCEL_RECONNECT?BLUETOOTH (C:001893H - C:0018B3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S10"></a>?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH (C:000FEBH - C:000FF4H)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S11"></a>?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH (C:0018B4H - C:0018F5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S101">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S13"></a>?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH (C:002005H - C:00202FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S197">?PR?_IIC_READ?IIC</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S197">?PR?_IIC_READ?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S102">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S14"></a>?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH (C:0023E6H - C:0024CBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a>) Top=2 Bytes (<a href="#S98">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S164">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S161">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S16"></a>?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH (C:001A27H - C:001A96H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=8 Bytes (<a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S47"></a>?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS (C:000919H - C:000AB2H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a>) Top=10 Bytes (<a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S197">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S161">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S9">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S10">?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S13">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
+<li><a href="#S103">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S12">?PR?YC_START_RECONNECT?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S49"></a>?PR?_IPC_TXHIDDATA?KB_PROCESS (C:0014B0H - C:00156CH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a>) Top=6 Bytes (<a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S127">?PR?_IPC_TX24GDATA?IPC</a></li>
+<li><a href="#S129">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S126">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S7">?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S52">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
+<li><a href="#S56">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S51"></a>?PR?_KB_SET_MULTIKEY?KB_PROCESS (C:002781H - C:00279BH)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S67">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S67">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S52"></a>?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS (C:0016C9H - C:001702H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S54"></a>?PR?KB_BT_PINCODE_ENTER?KB_PROCESS (C:00279CH - C:002A10H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>) Top=2 Bytes (<a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S56"></a>?PR?KB_24G_GET_LED_STATUS?KB_PROCESS (C:001633H - C:001695H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=2 Bytes (<a href="#S57">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S57"></a>?PR?KB_MOTION?KB_PROCESS (C:001696H - C:0016C8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>) Top=2 Bytes (<a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S134">?PR?IPC_ISTXBUFFEMPTY?IPC</a></li>
+<li><a href="#S56">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S59">?PR?KB_NEED_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S59"></a>?PR?KB_NEED_KEYSCAN?KB_PROCESS (C:001703H - C:00176AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=16 Bytes (<a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a>) Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S52">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
+<li><a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S57">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S60"></a>?PR?_KB_MOTION_KEYSCAN?KB_PROCESS (C:001249H - C:0014AFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=14 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>) Top=4 Bytes (<a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
+<li><a href="#S67">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+<li><a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S57">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S62"></a>?PR?_KB_DEVICE_SELECT?KB_PROCESS (C:002A11H - C:002AF1H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=6 Bytes (<a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S95">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S64"></a>?PR?_KEY_REPLACE?KB_PROCESS (C:002AF2H - C:002B11H)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S65">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S65">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S65"></a>?PR?_KEY_FN_FUNCTION?KB_PROCESS (C:002B12H - C:002C6FH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S64">?PR?_KEY_REPLACE?KB_PROCESS</a>) Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S64">?PR?_KEY_REPLACE?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S67"></a>?PR?_KB_MULTIKEY_SETUP?KB_PROCESS (C:002C70H - C:002EE0H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S51">?PR?_KB_SET_MULTIKEY?KB_PROCESS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S69"></a>?PR?_BIT_COUNT?KEYSCAN (C:002743H - C:002750H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S70"></a>?PR?_KEYIN?KEYSCAN (C:002EE1H - C:002F70H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S71"></a>?PR?_KEYOUT?KEYSCAN (C:002F71H - C:003053H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S72"></a>?PR?KSRAWINITIALIZE?KEYSCAN (C:0010E9H - C:001105H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a>) Top=6 Bytes (<a href="#S76">?PR?KS_INITIALIZE?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S76">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S76"></a>?PR?KS_INITIALIZE?KEYSCAN (C:001106H - C:001110H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S72">?PR?KSRAWINITIALIZE?KEYSCAN</a>) Top=4 Bytes (<a href="#S91">?PR?SYSTEM_HARDWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S72">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S91">?PR?SYSTEM_HARDWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S77"></a>?PR?KS_UNISTALL?KEYSCAN (C:001BA6H - C:001C50H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S187">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>) Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S187">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+<li><a href="#S193">?PR?GPIO_FILLPD?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S79"></a>?PR?KS_SCANMATRIX?KEYSCAN (C:003054H - C:0031B3H)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S81"></a>?PR?_ARRAY_IS_EMPTY?KEYSCAN (C:002751H - C:002780H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S83"></a>?PR?KS_GETCURRENTEVT?KEYSCAN (C:002543H - C:002742H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S79">?PR?KS_SCANMATRIX?KEYSCAN</a>) Top=4 Bytes (<a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S81">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
+<li><a href="#S69">?PR?_BIT_COUNT?KEYSCAN</a></li>
+<li><a href="#S164">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S65">?PR?_KEY_FN_FUNCTION?KB_PROCESS</a></li>
+<li><a href="#S70">?PR?_KEYIN?KEYSCAN</a></li>
+<li><a href="#S71">?PR?_KEYOUT?KEYSCAN</a></li>
+<li><a href="#S79">?PR?KS_SCANMATRIX?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S57">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S86"></a>?PR?LED_ALL_SHUTDOWN?LED (C:000FF8H - C:00101AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S182">?PR?_GPIO_SETOUTPUT?GPIO</a>) Top=4 Bytes (<a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S182">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S87"></a>?PR?LED_DEVICE_POWERON?LED (C:0031B4H - C:0031EBH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S172">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S88"></a>?PR?LED_DEVICE_POWEROFF?LED (C:000F9CH - C:000FCEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S172">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S98">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S89"></a>?PR?LED_HANDLE?LED (C:0032A6H - C:00336BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S172">?PR?_GPIO_SETOUT?GPIO</a>) Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S6">?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S90"></a>?PR?SYSTEM_CLEAR_MEM?SYS (C:001599H - C:001632H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a>) Top=4 Bytes (<a href="#S92">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S92">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S91"></a>?PR?SYSTEM_HARDWARE_INIT?SYS (C:000FF5H - C:000FF7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=12 Bytes (<a href="#S76">?PR?KS_INITIALIZE?KEYSCAN</a>) Top=2 Bytes (<a href="#S98">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S76">?PR?KS_INITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S92"></a>?PR?SYSTEM_SOFTWARE_INIT?SYS (C:0017CBH - C:0017E7H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=8 Bytes (<a href="#S111">?PR?YC_ADC_INIT?ADC</a>) Top=2 Bytes (<a href="#S98">?PR?_KB_CB_EVENT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S90">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+<li><a href="#S111">?PR?YC_ADC_INIT?ADC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+</ul>
+
+<h2><a name="S94"></a>?PR?SYSTEM_LONG_SLEEP?SYS (C:000F93H - C:000F9BH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a>) Top=4 Bytes (<a href="#S101">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S89">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S101">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S103">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S95"></a>?PR?SYSTEM_RESET_CONNECT?SYS (C:001B46H - C:001B45H)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a></li>
+</ul>
+
+<h2><a name="S100"></a>?PR?LED_TIMER500MS?SYS (C:000EC4H - C:000F7AH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S190">?PR?_GPIO_FLIPOUTBIT?GPIO</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S190">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S6">?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S101"></a>?PR?YC_CONNECT_TIMEOUT_500MS?SYS (C:00228FH - C:002305H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S102"></a>?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS (C:002182H - C:0021B8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S13">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S13">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S103"></a>?PR?YC_PAIRING_TIMEROUT_500MS?SYS (C:002241H - C:00228EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S104"></a>?PR?KB_BUTTON_PRESS_TIMER500MS?SYS (C:0018F6H - C:001A26H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=10 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S86">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S95">?PR?SYSTEM_RESET_CONNECT?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S107"></a>?PR?KB_CB_INIT?SYS (C:001F57H - C:001F5CH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S111"></a>?PR?YC_ADC_INIT?ADC (C:00337CH - C:0034F1H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S92">?PR?SYSTEM_SOFTWARE_INIT?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S92">?PR?SYSTEM_SOFTWARE_INIT?SYS</a></li>
+</ul>
+
+<h2><a name="S112"></a>?PR?YC_ADC_CHECK?ADC (C:002306H - C:0023E5H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S114">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S114">?PR?YC_ADC_CHECK_TIMER500MS?ADC</a></li>
+</ul>
+
+<h2><a name="S114"></a>?PR?YC_ADC_CHECK_TIMER500MS?ADC (C:0021ECH - C:0021FCH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S112">?PR?YC_ADC_CHECK?ADC</a>) Top=2 Bytes (<a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S112">?PR?YC_ADC_CHECK?ADC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S105">?PR?KB_CB_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S116"></a>?PR?_BUFSIZE?IPC (C:0034F2H - C:00354BH)</h2>
+<p><br><b>Maximum Stack:</b> Top=12 Bytes (<a href="#S120">?PR?_IPCTX?IPC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S120">?PR?_IPCTX?IPC</a></li>
+</ul>
+
+<h2><a name="S118"></a>?PR?_IPCRX?IPC (C:001F07H - C:001F56H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=4 Bytes (<a href="#S135">?PR?IPC_DEALSINGLESTEP?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S135">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+</ul>
+
+<h2><a name="S120"></a>?PR?_IPCTX?IPC (C:000884H - C:000918H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S116">?PR?_BUFSIZE?IPC</a>) Top=10 Bytes (<a href="#S124">?PR?_IPC_TXDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S116">?PR?_BUFSIZE?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S124">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S122"></a>?PR?_IPC_TXCONTROLCMD?IPC (C:00085CH - C:000883H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S94">?PR?SYSTEM_LONG_SLEEP?SYS</a></li>
+<li><a href="#S9">?PR?YC_CANCEL_RECONNECT?BLUETOOTH</a></li>
+<li><a href="#S101">?PR?YC_CONNECT_TIMEOUT_500MS?SYS</a></li>
+<li><a href="#S11">?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH</a></li>
+<li><a href="#S103">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S102">?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S124"></a>?PR?_IPC_TXDATA?IPC (C:001771H - C:001796H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S155">?PR?_XMEMCPY?UTILITIES</a>) Top=10 Bytes (<a href="#S126">?PR?_IPC_TXBREDRHIDDATA?IPC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S120">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S129">?PR?_IPC_TXBLEDATA?IPC</a></li>
+<li><a href="#S126">?PR?_IPC_TXBREDRHIDDATA?IPC</a></li>
+<li><a href="#S128">?PR?_IPC_TXSPPDATA?IPC</a></li>
+</ul>
+
+<h2><a name="S126"></a>?PR?_IPC_TXBREDRHIDDATA?IPC (C:00179FH - C:0017AAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S124">?PR?_IPC_TXDATA?IPC</a>) Top=8 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S124">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S127"></a>?PR?_IPC_TX24GDATA?IPC (C:00176BH - C:001770H)</h2>
+<p><br><b>Maximum Stack:</b> Top=8 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S129"></a>?PR?_IPC_TXBLEDATA?IPC (C:001797H - C:00179EH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S124">?PR?_IPC_TXDATA?IPC</a>) Top=8 Bytes (<a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S124">?PR?_IPC_TXDATA?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S132"></a>?PR?IPC_WAITLPM?IPC (C:001CF0H - C:001CFDH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S133"></a>?PR?IPC_ABANDONLPM?IPC (C:001FB1H - C:001FBCH)</h2>
+<p><br><b>Maximum Stack:</b> Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S134"></a>?PR?IPC_ISTXBUFFEMPTY?IPC (C:0017B3H - C:0017CAH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S57">?PR?KB_MOTION?KB_PROCESS</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S57">?PR?KB_MOTION?KB_PROCESS</a></li>
+</ul>
+
+<h2><a name="S135"></a>?PR?IPC_DEALSINGLESTEP?IPC (C:001CFEH - C:001F06H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S118">?PR?_IPCRX?IPC</a>) Top=2 Bytes (<a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S118">?PR?_IPCRX?IPC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S108">?PR?YC_SYSTEM_MAIN?SYS</a></li>
+</ul>
+
+<h2><a name="S155"></a>?PR?_XMEMCPY?UTILITIES (C:001206H - C:001248H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S197">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S197">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S124">?PR?_IPC_TXDATA?IPC</a></li>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S4">?PR?_YC_STORE_RECORD_LIST?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S157"></a>?PR?_DMEMCPY?UTILITIES (C:0021FDH - C:002240H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=16 Bytes (<a href="#S199">?PR?_IIC_WRITE?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S199">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<h2><a name="S159"></a>?PR?_XMEMCLEAR?UTILITIES (C:00156DH - C:001598H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S90">?PR?SYSTEM_CLEAR_MEM?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S52">?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS</a></li>
+<li><a href="#S56">?PR?KB_24G_GET_LED_STATUS?KB_PROCESS</a></li>
+<li><a href="#S90">?PR?SYSTEM_CLEAR_MEM?SYS</a></li>
+</ul>
+
+<h2><a name="S161"></a>?PR?_XMEMCLEAR_FF?UTILITIES (C:0024CCH - C:0024F8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S2">?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH</a></li>
+<li><a href="#S14">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S163"></a>?PR?_DELAY1MS?UTILITIES (C:000F7BH - C:000F92H)</h2>
+<p><br><b>Maximum Stack:</b> Top=14 Bytes (<a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S132">?PR?IPC_WAITLPM?IPC</a></li>
+<li><a href="#S104">?PR?KB_BUTTON_PRESS_TIMER500MS?SYS</a></li>
+<li><a href="#S103">?PR?YC_PAIRING_TIMEROUT_500MS?SYS</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S164"></a>?PR?_COMPARE_STR?UTILITIES (C:0024F9H - C:002542H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S83">?PR?KS_GETCURRENTEVT?KEYSCAN</a></li>
+<li><a href="#S14">?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S166"></a>?PR?_GPIOSETBIT?GPIO (C:001088H - C:0010E8H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=14 Bytes (<a href="#S172">?PR?_GPIO_SETOUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S178">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S176">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S174">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<h2><a name="S169"></a>?PR?_GPIOGETBIT?GPIO (C:001F70H - C:001FAEH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S205">?C?LIB_CODE</a>) Top=6 Bytes (<a href="#S190">?PR?_GPIO_FLIPOUTBIT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S190">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+</ul>
+
+<h2><a name="S171"></a>?PR?_GPIO_GETINPUTSTATUS?GPIO (C:001F6AH - C:001F6FH)</h2>
+<p><br><b>Maximum Stack:</b> Top=6 Bytes (<a href="#S187">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S187">?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO</a></li>
+</ul>
+
+<h2><a name="S172"></a>?PR?_GPIO_SETOUT?GPIO (C:000EB2H - C:000EC3H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S166">?PR?_GPIOSETBIT?GPIO</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S166">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S190">?PR?_GPIO_FLIPOUTBIT?GPIO</a></li>
+<li><a href="#S182">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S106">?PR?KB_CB_TIMER100MS?SYS</a></li>
+<li><a href="#S88">?PR?LED_DEVICE_POWEROFF?LED</a></li>
+<li><a href="#S87">?PR?LED_DEVICE_POWERON?LED</a></li>
+<li><a href="#S89">?PR?LED_HANDLE?LED</a></li>
+<li><a href="#S100">?PR?LED_TIMER500MS?SYS</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S174"></a>?PR?_GPIO_SETPU?GPIO (C:001037H - C:001047H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S166">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S166">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S182">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S176"></a>?PR?_GPIO_SETPD?GPIO (C:001077H - C:001087H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S166">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S166">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S178"></a>?PR?_GPIO_SETOE?GPIO (C:001048H - C:001058H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S166">?PR?_GPIOSETBIT?GPIO</a>) Top=10 Bytes (<a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S166">?PR?_GPIOSETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S180">?PR?_GPIO_SETINPUT?GPIO</a></li>
+<li><a href="#S182">?PR?_GPIO_SETOUTPUT?GPIO</a></li>
+</ul>
+
+<h2><a name="S180"></a>?PR?_GPIO_SETINPUT?GPIO (C:001059H - C:001076H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S176">?PR?_GPIO_SETPD?GPIO</a>) Top=8 Bytes (<a href="#S72">?PR?KSRAWINITIALIZE?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S178">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S176">?PR?_GPIO_SETPD?GPIO</a></li>
+<li><a href="#S174">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S74">?PR?KSCOLINITIALIZE?KEYSCAN</a></li>
+<li><a href="#S72">?PR?KSRAWINITIALIZE?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S182"></a>?PR?_GPIO_SETOUTPUT?GPIO (C:00101BH - C:001036H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S178">?PR?_GPIO_SETOE?GPIO</a>) Top=6 Bytes (<a href="#S86">?PR?LED_ALL_SHUTDOWN?LED</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S178">?PR?_GPIO_SETOE?GPIO</a></li>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S174">?PR?_GPIO_SETPU?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S86">?PR?LED_ALL_SHUTDOWN?LED</a></li>
+</ul>
+
+<h2><a name="S187"></a>?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO (C:001C51H - C:001C63H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S171">?PR?_GPIO_GETINPUTSTATUS?GPIO</a>) Top=4 Bytes (<a href="#S77">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S171">?PR?_GPIO_GETINPUTSTATUS?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S77">?PR?KS_UNISTALL?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S190"></a>?PR?_GPIO_FLIPOUTBIT?GPIO (C:000FCFH - C:000FEAH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S169">?PR?_GPIOGETBIT?GPIO</a>) Top=4 Bytes (<a href="#S100">?PR?LED_TIMER500MS?SYS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S172">?PR?_GPIO_SETOUT?GPIO</a></li>
+<li><a href="#S169">?PR?_GPIOGETBIT?GPIO</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S100">?PR?LED_TIMER500MS?SYS</a></li>
+</ul>
+
+<h2><a name="S193"></a>?PR?GPIO_FILLPD?GPIO (C:003598H - C:0035CBH)</h2>
+<p><br><b>Maximum Stack:</b> Top=4 Bytes (<a href="#S77">?PR?KS_UNISTALL?KEYSCAN</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S77">?PR?KS_UNISTALL?KEYSCAN</a></li>
+</ul>
+
+<h2><a name="S196"></a>?PR?IICWAITDONE?IIC (C:0020E0H - C:0020E7H)</h2>
+<p><br><b>Maximum Stack:</b> Top=16 Bytes (<a href="#S197">?PR?_IIC_READ?IIC</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S197">?PR?_IIC_READ?IIC</a></li>
+<li><a href="#S199">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<h2><a name="S197"></a>?PR?_IIC_READ?IIC (C:002030H - C:0020DFH)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=2 Bytes (<a href="#S196">?PR?IICWAITDONE?IIC</a>) Top=14 Bytes (<a href="#S13">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S196">?PR?IICWAITDONE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S13">?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S199"></a>?PR?_IIC_WRITE?IIC (C:0020E8H - C:002181H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=4 Bytes (<a href="#S157">?PR?_DMEMCPY?UTILITIES</a>) Top=14 Bytes (<a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S157">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S196">?PR?IICWAITDONE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+</ul>
+
+<h2><a name="S201"></a>?PR?_IIC_WRITEBLOCK?IIC (C:001A97H - C:001B45H)</h2>
+<p><br><b>Maximum Stack:</b> Bottom=6 Bytes (<a href="#S199">?PR?_IIC_WRITE?IIC</a>) Top=12 Bytes (<a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a>)<p>
+<p><br><b>Calls to:</b></p>
+<ul>
+<li><a href="#S205">?C?LIB_CODE</a></li>
+<li><a href="#S163">?PR?_DELAY1MS?UTILITIES</a></li>
+<li><a href="#S199">?PR?_IIC_WRITE?IIC</a></li>
+</ul>
+
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S47">?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS</a></li>
+<li><a href="#S16">?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH</a></li>
+</ul>
+
+<h2><a name="S205"></a>?C?LIB_CODE (C:000003H - C:0005DEH)</h2>
+<p><br><b>Maximum Stack:</b> Top=18 Bytes (<a href="#S157">?PR?_DMEMCPY?UTILITIES</a>)<p>
+<p><br><b>Called from:</b></p>
+<ul>
+<li><a href="#S81">?PR?_ARRAY_IS_EMPTY?KEYSCAN</a></li>
+<li><a href="#S164">?PR?_COMPARE_STR?UTILITIES</a></li>
+<li><a href="#S157">?PR?_DMEMCPY?UTILITIES</a></li>
+<li><a href="#S169">?PR?_GPIOGETBIT?GPIO</a></li>
+<li><a href="#S166">?PR?_GPIOSETBIT?GPIO</a></li>
+<li><a href="#S201">?PR?_IIC_WRITEBLOCK?IIC</a></li>
+<li><a href="#S131">?PR?_IPC_INITIALIZE?IPC</a></li>
+<li><a href="#S122">?PR?_IPC_TXCONTROLCMD?IPC</a></li>
+<li><a href="#S49">?PR?_IPC_TXHIDDATA?KB_PROCESS</a></li>
+<li><a href="#S118">?PR?_IPCRX?IPC</a></li>
+<li><a href="#S120">?PR?_IPCTX?IPC</a></li>
+<li><a href="#S98">?PR?_KB_CB_EVENT?SYS</a></li>
+<li><a href="#S96">?PR?_KB_CB_HID?SYS</a></li>
+<li><a href="#S62">?PR?_KB_DEVICE_SELECT?KB_PROCESS</a></li>
+<li><a href="#S60">?PR?_KB_MOTION_KEYSCAN?KB_PROCESS</a></li>
+<li><a href="#S67">?PR?_KB_MULTIKEY_SETUP?KB_PROCESS</a></li>
+<li><a href="#S159">?PR?_XMEMCLEAR?UTILITIES</a></li>
+<li><a href="#S161">?PR?_XMEMCLEAR_FF?UTILITIES</a></li>
+<li><a href="#S155">?PR?_XMEMCPY?UTILITIES</a></li>
+<li><a href="#S135">?PR?IPC_DEALSINGLESTEP?IPC</a></li>
+<li><a href="#S54">?PR?KB_BT_PINCODE_ENTER?KB_PROCESS</a></li>
+<li><a href="#S112">?PR?YC_ADC_CHECK?ADC</a></li>
+<li><a href="#S111">?PR?YC_ADC_INIT?ADC</a></li>
+</ul>
+
+</body>
+</html>
Index: YC1026_3mode_SDK_CUSTOMER/output/FW.MAP
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.MAP	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/FW.MAP	(working copy)
@@ -0,0 +1,3415 @@
+LX51 LINKER/LOCATER V4.41                                                               05/09/2020  11:32:39  PAGE 1
+
+
+LX51 LINKER/LOCATER V4.41, INVOKED BY:
+H:\KEIL\C51\BIN\LX51.EXE OUTPUT/BLUETOOTH.OBJ, OUTPUT/GLOBAL_VARIABLE.OBJ, OUTPUT/KB_PROCESS.OBJ, OUTPUT/KEYSCAN.OBJ, OU
+>> TPUT/LED.OBJ, OUTPUT/SYS.OBJ, OUTPUT/ADC.OBJ, OUTPUT/RAM.OBJ, OUTPUT/..\PATCH\IPC.OBJ, OUTPUT/..\PATCH\UTILITIES.OBJ,
+>>  OUTPUT/..\PATCH\GPIO.OBJ, OUTPUT/..\PATCH\IIC.OBJ TO OUTPUT\FW CLASSES (XDATA (X:0X4DD0-X:0X4F40), CODE (C:0-C:0XFFF
+>> F), DATA (D:0X10-0X7F), IDATA (I:0X80-0XCF)) SEGMENTS (?STACK (D:0XD0)) NOOVERLAY PAGELENGTH (60000) CODE
+
+
+CPU MODE:     8051 MODE
+MEMORY MODEL: LARGE WITH FLOATING POINT ARITHMETIC
+
+
+INPUT MODULES INCLUDED:
+  OUTPUT/BLUETOOTH.OBJ (BLUETOOTH)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/GLOBAL_VARIABLE.OBJ (GLOBAL_VARIABLE)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/KB_PROCESS.OBJ (KB_PROCESS)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/KEYSCAN.OBJ (KEYSCAN)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/LED.OBJ (LED)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/SYS.OBJ (SYS)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/ADC.OBJ (ADC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/RAM.OBJ (RAM)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\IPC.OBJ (IPC)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\UTILITIES.OBJ (UTILITIES)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\GPIO.OBJ (GPIO)
+         COMMENT TYPE 0: C51 V9.00
+  OUTPUT/..\PATCH\IIC.OBJ (IIC)
+         COMMENT TYPE 0: C51 V9.00
+  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPADD)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPMUL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FCAST)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51FPL.LIB (?C?CASTF)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51FPL.LIB (?C?FPGETOPN)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C_STARTUP)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?COPY)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?CLDPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?CLDOPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?CSTPTR)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?IILDX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?ILDIX)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?LMUL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?ULDIV)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?LNEG)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?ULCMP)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?LSTXDATA)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?LSTKXDATA)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?CCASE)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C?ICALL)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+  H:\KEIL\C51\LIB\C51L.LIB (?C_INIT)
+         COMMENT TYPE 1: A51 / ASM51 Assembler
+
+
+ACTIVE MEMORY CLASSES OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+BASE        START       END         USED      MEMORY CLASS
+==========================================================
+X:000000H   X:004DD0H   X:004F40H   000360H   XDATA
+C:000000H   C:000000H   C:00FFFFH   003516H   CODE
+I:000000H   I:000010H   I:00007FH   000008H   DATA
+I:000000H   I:000080H   I:0000CFH   000001H   IDATA
+C:000000H   C:000000H   C:00FFFFH   0000B6H   CONST
+I:000020H.0 I:000020H.0 I:00002FH.7 000001H.2 BIT
+
+
+MEMORY MAP OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+START     STOP      LENGTH    ALIGN  RELOC    MEMORY CLASS   SEGMENT NAME
+=========================================================================
+
+* * * * * * * * * * *   D A T A   M E M O R Y   * * * * * * * * * * * * *
+000000H   000007H   000008H   ---    AT..     DATA           "REG BANK 0"
+000008H.0 00001FH.7 000018H.0 ---    ---      **GAP**
+000020H.0 000020H.0 000000H.1 BIT    UNIT     BIT            ?BI?_GPIOSETBIT?GPIO
+000020H.1 000020H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUT?GPIO
+000020H.2 000020H.2 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPU?GPIO
+000020H.3 000020H.3 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETPD?GPIO
+000020H.4 000020H.4 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOE?GPIO
+000020H.5 000020H.5 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETINPUT?GPIO
+000020H.6 000020H.6 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETOUTPUT?GPIO
+000020H.7 000020H.7 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUP?GPIO
+000021H.0 000021H.0 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+000021H.1 000021H.1 000000H.1 BIT    UNIT     BIT            ?BI?_GPIO_FLIPOUTBIT?GPIO
+000021H.2 0000CFH   0000AEH.6 ---    ---      **GAP**
+0000D0H   0000D0H   000001H   BYTE   UNIT     IDATA          ?STACK
+
+* * * * * * * * * * *   C O D E   M E M O R Y   * * * * * * * * * * * * *
+000000H   000002H   000003H   ---    OFFS..   CODE           ?CO??C_STARTUP?0
+000003H   0005DEH   0005DCH   BYTE   UNIT     CODE           ?C?LIB_CODE
+0005DFH   00066AH   00008CH   BYTE   UNIT     CODE           ?C_C51STARTUP
+00066BH   000680H   000016H   BYTE   UNIT     CODE           ?C_INITSEG
+000681H   000733H   0000B3H   BYTE   UNIT     CONST          ?CO?GLOBAL_VARIABLE
+000734H   000736H   000003H   BYTE   UNIT     CONST          ?CO?IPC
+000737H   00085BH   000125H   BYTE   UNIT     CODE           ?PR?_YC_LOAD_RECORD_LIST?BLUETOOTH
+00085CH   000883H   000028H   BYTE   UNIT     CODE           ?PR?_IPC_TXCONTROLCMD?IPC
+000884H   000918H   000095H   BYTE   UNIT     CODE           ?PR?_IPCTX?IPC
+000919H   000AB2H   00019AH   BYTE   UNIT     CODE           ?PR?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+000AB3H   000EB1H   0003FFH   BYTE   UNIT     CODE           ?PR?_KB_CB_EVENT?SYS
+000EB2H   000EC3H   000012H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUT?GPIO
+000EC4H   000F7AH   0000B7H   BYTE   UNIT     CODE           ?PR?LED_TIMER500MS?SYS
+000F7BH   000F92H   000018H   BYTE   UNIT     CODE           ?PR?_DELAY1MS?UTILITIES
+000F93H   000F9BH   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_LONG_SLEEP?SYS
+000F9CH   000FCEH   000033H   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWEROFF?LED
+000FCFH   000FEAH   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_FLIPOUTBIT?GPIO
+000FEBH   000FF4H   00000AH   BYTE   UNIT     CODE           ?PR?YC_CLEAR_RECONNECT_FLAG?BLUETOOTH
+000FF5H   000FF7H   000003H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_INIT?SYS
+000FF8H   00101AH   000023H   BYTE   UNIT     CODE           ?PR?LED_ALL_SHUTDOWN?LED
+00101BH   001036H   00001CH   BYTE   UNIT     CODE           ?PR?_GPIO_SETOUTPUT?GPIO
+001037H   001047H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPU?GPIO
+001048H   001058H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETOE?GPIO
+001059H   001076H   00001EH   BYTE   UNIT     CODE           ?PR?_GPIO_SETINPUT?GPIO
+001077H   001087H   000011H   BYTE   UNIT     CODE           ?PR?_GPIO_SETPD?GPIO
+001088H   0010E8H   000061H   BYTE   UNIT     CODE           ?PR?_GPIOSETBIT?GPIO
+0010E9H   001105H   00001DH   BYTE   UNIT     CODE           ?PR?KSRAWINITIALIZE?KEYSCAN
+001106H   001110H   00000BH   BYTE   UNIT     CODE           ?PR?KS_INITIALIZE?KEYSCAN
+001111H   00112EH   00001EH   BYTE   UNIT     CODE           ?PR?KSCOLINITIALIZE?KEYSCAN
+00112FH   001205H   0000D7H   BYTE   UNIT     CODE           ?PR?_YC_STORE_RECORD_LIST?BLUETOOTH
+001206H   001248H   000043H   BYTE   UNIT     CODE           ?PR?_XMEMCPY?UTILITIES
+001249H   0014AFH   000267H   BYTE   UNIT     CODE           ?PR?_KB_MOTION_KEYSCAN?KB_PROCESS
+0014B0H   00156CH   0000BDH   BYTE   UNIT     CODE           ?PR?_IPC_TXHIDDATA?KB_PROCESS
+00156DH   001598H   00002CH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR?UTILITIES
+001599H   001632H   00009AH   BYTE   UNIT     CODE           ?PR?SYSTEM_CLEAR_MEM?SYS
+001633H   001695H   000063H   BYTE   UNIT     CODE           ?PR?KB_24G_GET_LED_STATUS?KB_PROCESS
+001696H   0016C8H   000033H   BYTE   UNIT     CODE           ?PR?KB_MOTION?KB_PROCESS
+0016C9H   001702H   00003AH   BYTE   UNIT     CODE           ?PR?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+001703H   00176AH   000068H   BYTE   UNIT     CODE           ?PR?KB_NEED_KEYSCAN?KB_PROCESS
+00176BH   001770H   000006H   BYTE   UNIT     CODE           ?PR?_IPC_TX24GDATA?IPC
+001771H   001796H   000026H   BYTE   UNIT     CODE           ?PR?_IPC_TXDATA?IPC
+001797H   00179EH   000008H   BYTE   UNIT     CODE           ?PR?_IPC_TXBLEDATA?IPC
+00179FH   0017AAH   00000CH   BYTE   UNIT     CODE           ?PR?_IPC_TXBREDRHIDDATA?IPC
+0017ABH   0017B2H   000008H   BYTE   UNIT     CODE           ?PR?_IPC_TXSPPDATA?IPC
+0017B3H   0017CAH   000018H   BYTE   UNIT     CODE           ?PR?IPC_ISTXBUFFEMPTY?IPC
+0017CBH   0017E7H   00001DH   BYTE   UNIT     CODE           ?PR?SYSTEM_SOFTWARE_INIT?SYS
+0017E8H   001804H   00001DH   BYTE   UNIT     CODE           ?PR?YC_CHECK_IS_CONNECTED?BLUETOOTH
+001805H   001892H   00008EH   BYTE   UNIT     CODE           ?PR?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
+001893H   0018B3H   000021H   BYTE   UNIT     CODE           ?PR?YC_CANCEL_RECONNECT?BLUETOOTH
+0018B4H   0018F5H   000042H   BYTE   UNIT     CODE           ?PR?YC_DISCONNECT_ALL_LINK?BLUETOOTH
+0018F6H   001A26H   000131H   BYTE   UNIT     CODE           ?PR?KB_BUTTON_PRESS_TIMER500MS?SYS
+001A27H   001A96H   000070H   BYTE   UNIT     CODE           ?PR?YC_UPDATE_EEPROM_DATA?BLUETOOTH
+001A97H   001B45H   0000AFH   BYTE   UNIT     CODE           ?PR?_IIC_WRITEBLOCK?IIC
+001B46H   ---       000000H   BYTE   UNIT     CODE           ?PR?SYSTEM_RESET_CONNECT?SYS
+001B46H   001B4EH   000009H   BYTE   UNIT     CODE           ?PR?SYSTEM_HARDWARE_RESET?SYS
+001B4FH   001BA5H   000057H   BYTE   UNIT     CODE           ?PR?YC_SYSTEM_MAIN?SYS
+001BA6H   001C50H   0000ABH   BYTE   UNIT     CODE           ?PR?KS_UNISTALL?KEYSCAN
+001C51H   001C63H   000013H   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+001C64H   001CEFH   00008CH   BYTE   UNIT     CODE           ?PR?_GPIO_SETWAKEUP?GPIO
+001CF0H   001CFDH   00000EH   BYTE   UNIT     CODE           ?PR?IPC_WAITLPM?IPC
+001CFEH   001F06H   000209H   BYTE   UNIT     CODE           ?PR?IPC_DEALSINGLESTEP?IPC
+001F07H   001F56H   000050H   BYTE   UNIT     CODE           ?PR?_IPCRX?IPC
+001F57H   001F5CH   000006H   BYTE   UNIT     CODE           ?PR?KB_CB_INIT?SYS
+001F5DH   001F69H   00000DH   BYTE   UNIT     CODE           ?PR?_IPC_INITIALIZE?IPC
+001F6AH   001F6FH   000006H   BYTE   UNIT     CODE           ?PR?_GPIO_GETINPUTSTATUS?GPIO
+001F70H   001FAEH   00003FH   BYTE   UNIT     CODE           ?PR?_GPIOGETBIT?GPIO
+001FAFH   001FB0H   000002H   BYTE   UNIT     CODE           ?PR?MAIN?RAM
+001FB1H   001FBCH   00000CH   BYTE   UNIT     CODE           ?PR?IPC_ABANDONLPM?IPC
+001FBDH   002004H   000048H   BYTE   UNIT     CODE           ?PR?YC_START_RECONNECT?BLUETOOTH
+002005H   00202FH   00002BH   BYTE   UNIT     CODE           ?PR?YC_GET_BLE_RAMDON_LAP?BLUETOOTH
+002030H   0020DFH   0000B0H   BYTE   UNIT     CODE           ?PR?_IIC_READ?IIC
+0020E0H   0020E7H   000008H   BYTE   UNIT     CODE           ?PR?IICWAITDONE?IIC
+0020E8H   002181H   00009AH   BYTE   UNIT     CODE           ?PR?_IIC_WRITE?IIC
+002182H   0021B8H   000037H   BYTE   UNIT     CODE           ?PR?YC_WAIT_DISCONNECT_TIMER500MS?SYS
+0021B9H   0021EBH   000033H   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER500MS?SYS
+0021ECH   0021FCH   000011H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK_TIMER500MS?ADC
+0021FDH   002240H   000044H   BYTE   UNIT     CODE           ?PR?_DMEMCPY?UTILITIES
+002241H   00228EH   00004EH   BYTE   UNIT     CODE           ?PR?YC_PAIRING_TIMEROUT_500MS?SYS
+00228FH   002305H   000077H   BYTE   UNIT     CODE           ?PR?YC_CONNECT_TIMEOUT_500MS?SYS
+002306H   0023E5H   0000E0H   BYTE   UNIT     CODE           ?PR?YC_ADC_CHECK?ADC
+0023E6H   0024CBH   0000E6H   BYTE   UNIT     CODE           ?PR?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH
+0024CCH   0024F8H   00002DH   BYTE   UNIT     CODE           ?PR?_XMEMCLEAR_FF?UTILITIES
+0024F9H   002542H   00004AH   BYTE   UNIT     CODE           ?PR?_COMPARE_STR?UTILITIES
+002543H   002742H   000200H   BYTE   UNIT     CODE           ?PR?KS_GETCURRENTEVT?KEYSCAN
+002743H   002750H   00000EH   BYTE   UNIT     CODE           ?PR?_BIT_COUNT?KEYSCAN
+002751H   002780H   000030H   BYTE   UNIT     CODE           ?PR?_ARRAY_IS_EMPTY?KEYSCAN
+002781H   00279BH   00001BH   BYTE   UNIT     CODE           ?PR?_KB_SET_MULTIKEY?KB_PROCESS
+00279CH   002A10H   000275H   BYTE   UNIT     CODE           ?PR?KB_BT_PINCODE_ENTER?KB_PROCESS
+002A11H   002AF1H   0000E1H   BYTE   UNIT     CODE           ?PR?_KB_DEVICE_SELECT?KB_PROCESS
+002AF2H   002B11H   000020H   BYTE   UNIT     CODE           ?PR?_KEY_REPLACE?KB_PROCESS
+002B12H   002C6FH   00015EH   BYTE   UNIT     CODE           ?PR?_KEY_FN_FUNCTION?KB_PROCESS
+002C70H   002EE0H   000271H   BYTE   UNIT     CODE           ?PR?_KB_MULTIKEY_SETUP?KB_PROCESS
+002EE1H   002F70H   000090H   BYTE   UNIT     CODE           ?PR?_KEYIN?KEYSCAN
+002F71H   003053H   0000E3H   BYTE   UNIT     CODE           ?PR?_KEYOUT?KEYSCAN
+003054H   0031B3H   000160H   BYTE   UNIT     CODE           ?PR?KS_SCANMATRIX?KEYSCAN
+0031B4H   0031EBH   000038H   BYTE   UNIT     CODE           ?PR?LED_DEVICE_POWERON?LED
+0031ECH   0032A5H   0000BAH   BYTE   UNIT     CODE           ?PR?KB_CB_TIMER100MS?SYS
+0032A6H   00336BH   0000C6H   BYTE   UNIT     CODE           ?PR?LED_HANDLE?LED
+00336CH   00337BH   000010H   BYTE   UNIT     CODE           ?PR?_KB_CB_HID?SYS
+00337CH   0034F1H   000176H   BYTE   UNIT     CODE           ?PR?YC_ADC_INIT?ADC
+0034F2H   00354BH   00005AH   BYTE   UNIT     CODE           ?PR?_BUFSIZE?IPC
+00354CH   003551H   000006H   BYTE   UNIT     CODE           ?PR?IPC_GETBBDISCONNECTREASON?IPC
+003552H   003558H   000007H   BYTE   UNIT     CODE           ?PR?YC_ICE_BREAK?UTILITIES
+003559H   003597H   00003FH   BYTE   UNIT     CODE           ?PR?_GPIO_CLEARWAKEUP?GPIO
+003598H   0035CBH   000034H   BYTE   UNIT     CODE           ?PR?GPIO_FILLPD?GPIO
+
+* * * * * * * * * * *  X D A T A   M E M O R Y  * * * * * * * * * * * * *
+000040H   000045H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?23
+000046H   0000A2H   00005DH   ---    ---      **GAP**
+0000A3H   0000A6H   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?1
+0000A7H   0000AAH   000004H   BYTE   OFFS..   XDATA          ?XD?GPIO?0
+0000ABH   0003CFH   000325H   ---    ---      **GAP**
+0003D0H   0003D5H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?1
+0003D6H   000445H   000070H   ---    ---      **GAP**
+000446H   000446H   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?9
+000447H   00054EH   000108H   ---    ---      **GAP**
+00054FH   00054FH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?1
+000550H   00055FH   000010H   BYTE   OFFS..   XDATA          ?XD?IPC?11
+000560H   000B7DH   00061EH   ---    ---      **GAP**
+000B7EH   000B7EH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?0
+000B7FH   000B7FH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?5
+000B80H   000B80H   000001H   ---    ---      **GAP**
+000B81H   000B81H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?6
+000B82H   000B82H   000001H   ---    ---      **GAP**
+000B83H   000BE6H   000064H   BYTE   OFFS..   XDATA          ?XD?IIC?1
+000BE7H   000C4AH   000064H   BYTE   OFFS..   XDATA          ?XD?IPC?6
+000C4BH   000CAEH   000064H   BYTE   OFFS..   XDATA          ?XD?IPC?3
+000CAFH   000CB2H   000004H   BYTE   OFFS..   XDATA          ?XD?IIC?0
+000CB3H   004130H   00347EH   ---    ---      **GAP**
+004131H   004131H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?8
+004132H   004212H   0000E1H   ---    ---      **GAP**
+004213H   004213H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?26
+004214H   00425DH   00004AH   ---    ---      **GAP**
+00425EH   00425EH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?10
+00425FH   004261H   000003H   ---    ---      **GAP**
+004262H   004271H   000010H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?18
+004272H   004273H   000002H   ---    ---      **GAP**
+004274H   004279H   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?22
+00427AH   00447AH   000201H   ---    ---      **GAP**
+00447BH   00448AH   000010H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?19
+00448BH   00448BH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?7
+00448CH   0044F8H   00006DH   ---    ---      **GAP**
+0044F9H   0044FEH   000006H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?15
+0044FFH   0047F3H   0002F5H   ---    ---      **GAP**
+0047F4H   0047F5H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?21
+0047F6H   0047FFH   00000AH   ---    ---      **GAP**
+004800H   004809H   00000AH   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?14
+00480AH   004B99H   000390H   ---    ---      **GAP**
+004B9AH   004B9BH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?4
+004B9CH   004B9DH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?8
+004B9EH   004B9FH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?2
+004BA0H   004BA1H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?7
+004BA2H   004BA4H   000003H   ---    ---      **GAP**
+004BA5H   004BA6H   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?14
+004BA7H   004BFFH   000059H   ---    ---      **GAP**
+004C00H   004C03H   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?4
+004C04H   004C5DH   00005AH   ---    ---      **GAP**
+004C5EH   004C5FH   000002H   BYTE   OFFS..   XDATA          ?XD?IPC?12
+004C60H   004C8CH   00002DH   ---    ---      **GAP**
+004C8DH   004C8DH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?13
+004C8EH   004C8EH   000001H   BYTE   OFFS..   XDATA          ?XD?IPC?10
+004C8FH   004C8FH   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?20
+004C90H   004C90H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?11
+004C91H   004C92H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?5
+004C93H   004C94H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?9
+004C95H   004C96H   000002H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?25
+004C97H   004CB5H   00001FH   ---    ---      **GAP**
+004CB6H   004CB6H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?13
+004CB7H   004CB7H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?12
+004CB8H   004CBEH   000007H   ---    ---      **GAP**
+004CBFH   004D00H   000042H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?2
+004D01H   004D37H   000037H   ---    ---      **GAP**
+004D38H   004D38H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?24
+004D39H   004D3CH   000004H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?27
+004D3DH   004D92H   000056H   ---    ---      **GAP**
+004D93H   004DA6H   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?17
+004DA7H   004DA7H   000001H   ---    ---      **GAP**
+004DA8H   004DBBH   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?0
+004DBCH   004DCFH   000014H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?16
+004DD0H   004E44H   000075H   BYTE   UNIT     XDATA          ?XD?GLOBAL_VARIABLE
+004E45H   004E56H   000012H   BYTE   UNIT     XDATA          ?XD?SYS
+004E57H   004E68H   000012H   BYTE   UNIT     XDATA          ?XD?IPC
+004E69H   004E76H   00000EH   BYTE   UNIT     XDATA          ?XD?KS_GETCURRENTEVT?KEYSCAN
+004E77H   004E7FH   000009H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITEBLOCK?IIC
+004E80H   004E87H   000008H   BYTE   UNIT     XDATA          ?XD?_DMEMCPY?UTILITIES
+004E88H   004E8EH   000007H   BYTE   UNIT     XDATA          ?XD?KEYSCAN
+004E8FH   004E95H   000007H   BYTE   UNIT     XDATA          ?XD?_COMPARE_STR?UTILITIES
+004E96H   004E9CH   000007H   BYTE   UNIT     XDATA          ?XD?_IIC_WRITE?IIC
+004E9DH   004EA2H   000006H   BYTE   UNIT     XDATA          ?XD?_IPCTX?IPC
+004EA3H   004EA8H   000006H   BYTE   UNIT     XDATA          ?XD?_XMEMCPY?UTILITIES
+004EA9H   004EADH   000005H   BYTE   UNIT     XDATA          ?XD?_KB_MOTION_KEYSCAN?KB_PROCESS
+004EAEH   004EB2H   000005H   BYTE   UNIT     XDATA          ?XD?_KB_DEVICE_SELECT?KB_PROCESS
+004EB3H   004EB7H   000005H   BYTE   UNIT     XDATA          ?XD?YC_ADC_CHECK?ADC
+004EB8H   004EBCH   000005H   BYTE   UNIT     XDATA          ?XD?_IIC_READ?IIC
+004EBDH   004EC0H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXHIDDATA?KB_PROCESS
+004EC1H   004EC4H   000004H   BYTE   UNIT     XDATA          ?XD?_KB_MULTIKEY_SETUP?KB_PROCESS
+004EC5H   004EC8H   000004H   BYTE   UNIT     XDATA          ?XD?KS_SCANMATRIX?KEYSCAN
+004EC9H   004ECCH   000004H   BYTE   UNIT     XDATA          ?XD?_BUFSIZE?IPC
+004ECDH   004ED0H   000004H   BYTE   UNIT     XDATA          ?XD?_IPC_TXCONTROLCMD?IPC
+004ED1H   004ED3H   000003H   BYTE   UNIT     XDATA          ?XD?KB_BT_PINCODE_ENTER?KB_PROCESS
+004ED4H   004ED6H   000003H   BYTE   UNIT     XDATA          ?XD?KB_MOTION?KB_PROCESS
+004ED7H   004ED9H   000003H   BYTE   UNIT     XDATA          ?XD?_ARRAY_IS_EMPTY?KEYSCAN
+004EDAH   004EDCH   000003H   BYTE   UNIT     XDATA          ?XD?IPC_DEALSINGLESTEP?IPC
+004EDDH   004EDFH   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR?UTILITIES
+004EE0H   004EE2H   000003H   BYTE   UNIT     XDATA          ?XD?_XMEMCLEAR_FF?UTILITIES
+004EE3H   004EE5H   000003H   BYTE   UNIT     XDATA          ?XD?_GPIOSETBIT?GPIO
+004EE6H   004EE7H   000002H   BYTE   UNIT     XDATA          ?XD?_YC_STORE_RECORD_LIST?BLUETOOTH
+004EE8H   004EE9H   000002H   BYTE   UNIT     XDATA          ?XD?_KB_SEND_COMBINATION_KEY?KB_PROCESS
+004EEAH   004EEBH   000002H   BYTE   UNIT     XDATA          ?XD?_KB_CB_HID?SYS
+004EECH   004EEDH   000002H   BYTE   UNIT     XDATA          ?XD?_IPCRX?IPC
+004EEEH   004EEEH   000001H   BYTE   UNIT     XDATA          ?XD?_YC_LOAD_RECORD_LIST?BLUETOOTH
+004EEFH   004EEFH   000001H   BYTE   UNIT     XDATA          ?XD?YC_CHECK_NEED_RECONNECTED?BLUETOOTH
+004EF0H   004EF0H   000001H   BYTE   UNIT     XDATA          ?XD?YC_CLEAR_BT_SAME_ADDRESS_RECORD?BLUETOOTH
+004EF1H   004EF1H   000001H   BYTE   UNIT     XDATA          ?XD?_YC_KEY_ACTION_HANDLE?KB_PROCESS
+004EF2H   004EF2H   000001H   BYTE   UNIT     XDATA          ?XD?_KEY_FN_FUNCTION?KB_PROCESS
+004EF3H   004EF3H   000001H   BYTE   UNIT     XDATA          ?XD?KSRAWINITIALIZE?KEYSCAN
+004EF4H   004EF4H   000001H   BYTE   UNIT     XDATA          ?XD?KSCOLINITIALIZE?KEYSCAN
+004EF5H   004EF5H   000001H   BYTE   UNIT     XDATA          ?XD?KS_UNISTALL?KEYSCAN
+004EF6H   004EF6H   000001H   BYTE   UNIT     XDATA          ?XD?_KB_CB_EVENT?SYS
+004EF7H   004EF7H   000001H   BYTE   UNIT     XDATA          ?XD?_IPC_TXDATA?IPC
+004EF8H   004EF8H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIOGETBIT?GPIO
+004EF9H   004EF9H   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_SETWAKEUPBYCURRENTSTATE?GPIO
+004EFAH   004EFAH   000001H   BYTE   UNIT     XDATA          ?XD?_GPIO_FLIPOUTBIT?GPIO
+004EFBH   00800FH   003115H   ---    ---      **GAP**
+008010H   008010H   000001H   BYTE   OFFS..   XDATA          ?XD?GLOBAL_VARIABLE?3
+
+
+
+PUBLIC SYMBOLS OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+
+      VALUE       CLASS    TYPE      PUBLIC SYMBOL NAME
+      =================================================
+      02004E8FH   XDATA    BYTE      ?_compare_str?BYTE
+      02004E80H   XDATA    BYTE      ?_dmemcpy?BYTE
+      00000020H.5 BIT      BIT       ?_GPIO_SetInput?BIT
+      00000020H.4 BIT      BIT       ?_GPIO_Setoe?BIT
+      00000020H.1 BIT      BIT       ?_GPIO_Setout?BIT
+      00000020H.6 BIT      BIT       ?_GPIO_SetOutput?BIT
+      00000020H.3 BIT      BIT       ?_GPIO_SetPd?BIT
+      00000020H.2 BIT      BIT       ?_GPIO_SetPu?BIT
+      00000020H.7 BIT      BIT       ?_GPIO_SetWakeup?BIT
+      02004EA3H   XDATA    BYTE      ?_xmemcpy?BYTE
+      0100023FH   CODE     ---       ?C?CASTF
+      010005B3H   CODE     ---       ?C?CCASE
+      010003CFH   CODE     ---       ?C?CLDOPTR
+      010003B6H   CODE     ---       ?C?CLDPTR
+      00000000H   NUMBER   ---       ?C?CODESEG
+      01000390H   CODE     ---       ?C?COPY
+      010003FCH   CODE     ---       ?C?CSTPTR
+      0100020BH   CODE     ---       ?C?FCASTC
+      01000206H   CODE     ---       ?C?FCASTI
+      01000201H   CODE     ---       ?C?FCASTL
+      0100000AH   CODE     ---       ?C?FPADD
+      01000276H   CODE     ---       ?C?FPGETOPN2
+      010000FBH   CODE     ---       ?C?FPMUL
+      010002ABH   CODE     ---       ?C?FPNANRESULT
+      010002B5H   CODE     ---       ?C?FPOVERFLOW
+      0100028DH   CODE     ---       ?C?FPRESULT
+      010002A1H   CODE     ---       ?C?FPRESULT2
+      01000006H   CODE     ---       ?C?FPSUB
+      010002B2H   CODE     ---       ?C?FPUNDERFLOW
+      010005D9H   CODE     ---       ?C?ICALL
+      010005DDH   CODE     ---       ?C?ICALL2
+      0100040EH   CODE     ---       ?C?IILDX
+      01000424H   CODE     ---       ?C?ILDIX
+      0100043AH   CODE     ---       ?C?LMUL
+      01000557H   CODE     ---       ?C?LNEG
+      01000582H   CODE     ---       ?C?LSTKXDATA
+      01000576H   CODE     ---       ?C?LSTXDATA
+      01000565H   CODE     ---       ?C?ULCMP
+      010004C5H   CODE     ---       ?C?ULDIV
+      00000000H   NUMBER   ---       ?C?XDATASEG
+      01000626H   CODE     ---       ?C_START
+      01000000H   CODE     ---       ?C_STARTUP
+      01002751H   CODE     ---       _array_is_empty
+      010024F9H   CODE     ---       _compare_str
+      01000F7BH   CODE     ---       _Delay1ms
+      010021FDH   CODE     ---       _dmemcpy
+      01003559H   CODE     ---       _GPIO_ClearWakeup
+      01000FCFH   CODE     ---       _GPIO_FlipOutBit
+      01001F6AH   CODE     ---       _GPIO_GetInputStatus
+      01001059H   CODE     ---       _GPIO_SetInput
+      01001048H   CODE     ---       _GPIO_Setoe
+      01000EB2H   CODE     ---       _GPIO_Setout
+      0100101BH   CODE     ---       _GPIO_SetOutput
+      01001077H   CODE     ---       _GPIO_SetPd
+      01001037H   CODE     ---       _GPIO_SetPu
+      01001C64H   CODE     ---       _GPIO_SetWakeup
+      01001C51H   CODE     ---       _GPIO_SetWakeupByCurrentState
+      01002030H   CODE     ---       _IIC_Read
+      010020E8H   CODE     ---       _IIC_write
+      01001A97H   CODE     ---       _IIC_WriteBlock
+      01001F5DH   CODE     ---       _IPC_Initialize
+      0100176BH   CODE     ---       _IPC_Tx24GData
+      01001797H   CODE     ---       _IPC_TxBleData
+      0100179FH   CODE     ---       _IPC_TxBREDRHidData
+      0100085CH   CODE     ---       _IPC_TxControlCmd
+      01001771H   CODE     ---       _IPC_TxData
+      010014B0H   CODE     ---       _IPC_TxHidData
+      010017ABH   CODE     ---       _IPC_TxSppData
+      01002A11H   CODE     ---       _kb_device_select
+      01001249H   CODE     ---       _kb_motion_keyscan
+      01002C70H   CODE     ---       _kb_multikey_setup
+      010016C9H   CODE     ---       _kb_send_combination_key
+      01002781H   CODE     ---       _kb_set_multikey
+      01002B12H   CODE     ---       _key_fn_function
+      01002AF2H   CODE     ---       _key_replace
+      0100156DH   CODE     ---       _xmemclear
+      010024CCH   CODE     ---       _xmemclear_ff
+      01001206H   CODE     ---       _xmemcpy
+      01000919H   CODE     ---       _YC_key_action_handle
+      01000737H   CODE     ---       _YC_load_record_list
+      0100112FH   CODE     ---       _YC_store_record_list
+      02004DE2H   XDATA    BYTE      action_timeout
+      02004DE4H   XDATA    ---       bd_key_record_list
+      02004DDDH   XDATA    BYTE      ble_reconnect_flag
+      02004C8DH   XDATA    BYTE      btstimer
+      02004BA5H   XDATA    WORD      bttimer
+      02004C8EH   XDATA    BYTE      c51stimer
+      02004C5EH   XDATA    WORD      c51timer
+      01000681H   CONST    ---       col
+      02000B7EH   XDATA    BYTE      current_task
+      02004DDEH   XDATA    BYTE      delayChgInvTimer
+      02004DDBH   XDATA    BYTE      fn_flag
+      02004DE0H   XDATA    BYTE      fn_flag_last
+      02004DDFH   XDATA    BYTE      fn_lock_flag
+      02004DD3H   XDATA    BYTE      fn_tx_flag
+      02004CBFH   XDATA    ---       g_variable
+      02004DD0H   XDATA    BYTE      get_24g_led_send
+      01003598H   CODE     ---       GPIO_fillpd
+      02004800H   XDATA    ---       hidBuff
+      02004DDAH   XDATA    BYTE      iOS_rec_pinCode
+      01001FB1H   CODE     ---       IPC_AbandonLpm
+      01001CFEH   CODE     ---       IPC_DealSingleStep
+      0100354CH   CODE     ---       IPC_GetBBDIsconnectReason
+      010017B3H   CODE     ---       IPC_IsTxBuffEmpty
+      01001CF0H   CODE     ---       IPC_WaitLpm
+      02000550H   XDATA    ---       ipcPin
+      0200054FH   XDATA    BYTE      ipcPinlen
+      02000C4BH   XDATA    ---       ipcReadBuff
+      02000BE7H   XDATA    ---       ipcSendBuff
+      01001633H   CODE     ---       kb_24g_get_led_status
+      0100279CH   CODE     ---       kb_bt_pincode_enter
+      010018F6H   CODE     ---       kb_button_press_timer500ms
+      01001703H   CODE     ---       kb_need_keyscan
+      01002543H   CODE     ---       KS_GetCurrentEvt
+      01001106H   CODE     ---       KS_Initialize
+      01003054H   CODE     ---       KS_ScanMatrix
+      01001BA6H   CODE     ---       KS_Unistall
+      02004213H   XDATA    BYTE      kscurrmult
+      02004E88H   XDATA    ---       ksEvtPool
+      01000696H   CONST    ---       ksMap
+      02004DA8H   XDATA    ---       ksSelMapCheck
+      02004DBCH   XDATA    ---       ksSelMapCurr
+      02004D93H   XDATA    ---       ksSelMapOld
+      02004D39H   XDATA    DWORD     le_pin_code
+      02004DD2H   XDATA    BYTE      le_pin_code_len
+      01000FF8H   CODE     ---       LED_all_shutdown
+      01000F9CH   CODE     ---       LED_device_poweroff
+      010031B4H   CODE     ---       LED_device_poweron
+      010032A6H   CODE     ---       LED_handle
+      01000EC4H   CODE     ---       LED_timer500ms
+      02004DD5H   XDATA    BYTE      long_press_flag
+      02000B7FH   XDATA    BYTE      lpm_flag
+      02004C00H   XDATA    ---       m_24g_addr
+      02004C91H   XDATA    WORD      m_adc0vBase
+      02004C93H   XDATA    WORD      m_adc3vValue
+      02004C90H   XDATA    BYTE      m_adc_channel
+      02004C8FH   XDATA    BYTE      m_adc_config_flag
+      02004C95H   XDATA    WORD      m_adcCurrentValue
+      02004CB7H   XDATA    BYTE      m_caps_num_lock
+      02004DD9H   XDATA    BYTE      m_caps_num_lock_last
+      020044F9H   XDATA    ---       m_le_lap
+      0200447BH   XDATA    ---       m_le_ltk
+      0200425EH   XDATA    BYTE      m_link_key_exists
+      02004262H   XDATA    ---       m_linkkey
+      02004131H   XDATA    BYTE      m_lpm_mode
+      0200448BH   XDATA    BYTE      m_ltk_exists
+      02004CB6H   XDATA    BYTE      m_power_on_flag
+      02004274H   XDATA    ---       m_reconn_addr
+      02004D38H   XDATA    BYTE      m_reconnect_continue
+      02000040H   XDATA    ---       m_remote_addr
+      020003D0H   XDATA    ---       m_remote_le_addr
+      02008010H   XDATA    BYTE      m_reset_reg
+      020047F4H   XDATA    WORD      m_ui_state_map
+      02000B81H   XDATA    BYTE      m_wakup_from_power_flag
+      01001FAFH   CODE     ---       main
+      02004E3BH   XDATA    BYTE      mult_key_status
+      02004DE3H   XDATA    BYTE      mult_key_value
+      02004E3CH   XDATA    ---       multikey
+      02004DD7H   XDATA    BYTE      pinCode_flag
+      02004DE1H   XDATA    BYTE      power_on_flag
+      02004DDCH   XDATA    BYTE      press_long_time_flag
+      02004DD1H   XDATA    BYTE      recon_index
+      02004DD6H   XDATA    BYTE      repeat_send_24g
+      02004DD8H   XDATA    BYTE      standard_key_release_flag
+      02004DD4H   XDATA    BYTE      switch_role_timer
+      01000F93H   CODE     ---       System_long_sleep
+      01001B46H   CODE     ---       System_Reset_Connect
+      010017CBH   CODE     ---       System_Software_init
+      01002306H   CODE     ---       YC_adc_check
+      010021ECH   CODE     ---       YC_adc_check_timer500ms
+      0100337CH   CODE     ---       YC_adc_init
+      01001893H   CODE     ---       YC_cancel_reconnect
+      010017E8H   CODE     ---       YC_check_is_connected
+      01001805H   CODE     ---       YC_check_need_reconnected
+      010023E6H   CODE     ---       YC_clear_BT_same_address_record
+      01000FEBH   CODE     ---       YC_clear_reconnect_flag
+      0100228FH   CODE     ---       YC_connect_timeout_500ms
+      010018B4H   CODE     ---       YC_disconnect_all_link
+      01002005H   CODE     ---       YC_get_ble_ramdon_lap
+      020000A7H   XDATA    ---       YC_GPIOWakeupH
+      020000A3H   XDATA    ---       YC_GPIOWakeupL
+      01003552H   CODE     ---       YC_Ice_break
+      01002241H   CODE     ---       YC_pairing_timerout_500ms
+      01001FBDH   CODE     ---       YC_start_reconnect
+      01001B4FH   CODE     ---       YC_System_Main
+      01001A27H   CODE     ---       YC_update_eeprom_data
+      01002182H   CODE     ---       YC_wait_disconnect_timer500ms
+
+
+
+SYMBOL TABLE OF MODULE:  OUTPUT\FW (BLUETOOTH)
+
+      VALUE       REP       CLASS    TYPE      SYMBOL NAME
+      ====================================================
+      ---         MODULE    ---      ---       BLUETOOTH
+      01001A27H   PUBLIC    CODE     ---       YC_update_eeprom_data
+      010023E6H   PUBLIC    CODE     ---       YC_clear_BT_same_address_record
+      01002005H   PUBLIC    CODE     ---       YC_get_ble_ramdon_lap
+      01001FBDH   PUBLIC    CODE     ---       YC_start_reconnect
+      010018B4H   PUBLIC    CODE     ---       YC_disconnect_all_link
+      01000FEBH   PUBLIC    CODE     ---       YC_clear_reconnect_flag
+      01001893H   PUBLIC    CODE     ---       YC_cancel_reconnect
+      01001805H   PUBLIC    CODE     ---       YC_check_need_reconnected
+      010017E8H   PUBLIC    CODE     ---       YC_check_is_connected
+      0100112FH   PUBLIC    CODE     ---       _YC_store_record_list
+      01000737H   PUBLIC    CODE     ---       _YC_load_record_list
+
+      01000737H   BLOCK     CODE     ---       LVL=0
+      01000737H   LINE      ---      ---       #4
+      0100073CH   LINE      ---      ---       #5
+      0100073CH   LINE      ---      ---       #6
+      01000745H   LINE      ---      ---       #8
+      0100074BH   LINE      ---      ---       #9
+      01000750H   LINE      ---      ---       #10
+      01000767H   LINE      ---      ---       #11
+      01000767H   LINE      ---      ---       #12
+      01000783H   LINE      ---      ---       #13
+      010007A2H   LINE      ---      ---       #14
+      010007C1H   LINE      ---      ---       #15
+      010007C6H   LINE      ---      ---       #16
+      010007CCH   LINE      ---      ---       #17
+      010007D1H   LINE      ---      ---       #18
+      010007D6H   LINE      ---      ---       #19
+      010007D7H   LINE      ---      ---       #20
+      010007EEH   LINE      ---      ---       #21
+      010007EEH   LINE      ---      ---       #22
+      0100080AH   LINE      ---      ---       #23
+      01000829H   LINE      ---      ---       #24
+      0100082DH   LINE      ---      ---       #25
+      01000833H   LINE      ---      ---       #26
+      01000834H   LINE      ---      ---       #28
+      01000834H   LINE      ---      ---       #29
+      0100083AH   LINE      ---      ---       #30
+      0100083CH   LINE      ---      ---       #31
+      0100083EH   LINE      ---      ---       #32
+      01000840H   LINE      ---      ---       #33
+      01000842H   LINE      ---      ---       #34
+      01000844H   LINE      ---      ---       #35
+      01000851H   LINE      ---      ---       #36
+      01000855H   LINE      ---      ---       #37
+      0100085BH   LINE      ---      ---       #38
+      0100085BH   LINE      ---      ---       #39
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100112FH   BLOCK     CODE     ---       LVL=0
+      0100112FH   LINE      ---      ---       #43
+      01001139H   LINE      ---      ---       #44
+      01001139H   LINE      ---      ---       #45
+      0100113DH   LINE      ---      ---       #46
+      0100113DH   LINE      ---      ---       #47
+      01001150H   LINE      ---      ---       #48
+      0100116DH   LINE      ---      ---       #49
+      0100118DH   LINE      ---      ---       #50
+      010011ADH   LINE      ---      ---       #51
+      010011ADH   LINE      ---      ---       #52
+      010011B5H   LINE      ---      ---       #53
+      010011B5H   LINE      ---      ---       #54
+      010011C8H   LINE      ---      ---       #55
+      010011E5H   LINE      ---      ---       #56
+      01001205H   LINE      ---      ---       #57
+      01001205H   LINE      ---      ---       #58
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010017E8H   BLOCK     CODE     ---       LVL=0
+      010017E8H   LINE      ---      ---       #61
+      010017E8H   LINE      ---      ---       #62
+      010017E8H   LINE      ---      ---       #63
+      010017FFH   LINE      ---      ---       #66
+      010017FFH   LINE      ---      ---       #67
+      01001802H   LINE      ---      ---       #68
+      01001802H   LINE      ---      ---       #69
+      01001804H   LINE      ---      ---       #70
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001805H   BLOCK     CODE     ---       LVL=0
+      01001805H   LINE      ---      ---       #72
+      01001805H   LINE      ---      ---       #73
+      01001805H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001805H   LINE      ---      ---       #74
+      0100180AH   LINE      ---      ---       #75
+      01001819H   LINE      ---      ---       #77
+      0100181FH   LINE      ---      ---       #81
+      01001826H   LINE      ---      ---       #85
+      0100182CH   LINE      ---      ---       #87
+      01001832H   LINE      ---      ---       #88
+      01001838H   LINE      ---      ---       #90
+      0100184CH   LINE      ---      ---       #94
+      0100184CH   LINE      ---      ---       #95
+      01001852H   LINE      ---      ---       #96
+      01001852H   LINE      ---      ---       #97
+      01001855H   LINE      ---      ---       #98
+      01001861H   LINE      ---      ---       #100
+      01001861H   LINE      ---      ---       #101
+      01001871H   LINE      ---      ---       #102
+      01001871H   LINE      ---      ---       #103
+      01001874H   LINE      ---      ---       #104
+      01001876H   LINE      ---      ---       #106
+      01001876H   LINE      ---      ---       #107
+      0100187BH   LINE      ---      ---       #108
+      01001881H   LINE      ---      ---       #109
+      01001881H   LINE      ---      ---       #110
+      01001881H   LINE      ---      ---       #111
+      01001881H   LINE      ---      ---       #112
+      01001883H   LINE      ---      ---       #114
+      01001883H   LINE      ---      ---       #115
+      01001888H   LINE      ---      ---       #116
+      0100188DH   LINE      ---      ---       #117
+      0100188DH   LINE      ---      ---       #118
+      01001892H   LINE      ---      ---       #119
+      02004EEFH   SYMBOL    XDATA    VOID      return_val
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001893H   BLOCK     CODE     ---       LVL=0
+      01001893H   LINE      ---      ---       #122
+      01001893H   LINE      ---      ---       #123
+      01001893H   LINE      ---      ---       #124
+      0100189AH   LINE      ---      ---       #125
+      0100189AH   LINE      ---      ---       #126
+      0100189FH   LINE      ---      ---       #127
+      010018A2H   LINE      ---      ---       #128
+      010018A2H   LINE      ---      ---       #130
+      010018A9H   LINE      ---      ---       #131
+      010018A9H   LINE      ---      ---       #133
+      010018AEH   LINE      ---      ---       #134
+      010018B1H   LINE      ---      ---       #135
+      010018B1H   LINE      ---      ---       #136
+      010018B3H   LINE      ---      ---       #137
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FEBH   BLOCK     CODE     ---       LVL=0
+      01000FEBH   LINE      ---      ---       #140
+      01000FEBH   LINE      ---      ---       #141
+      01000FEBH   LINE      ---      ---       #142
+      01000FF0H   LINE      ---      ---       #143
+      01000FF4H   LINE      ---      ---       #144
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010018B4H   BLOCK     CODE     ---       LVL=0
+      010018B4H   LINE      ---      ---       #147
+      010018B4H   LINE      ---      ---       #148
+      010018B4H   LINE      ---      ---       #149
+      010018C1H   LINE      ---      ---       #151
+      010018C1H   LINE      ---      ---       #152
+      010018C6H   LINE      ---      ---       #153
+      010018C9H   LINE      ---      ---       #154
+      010018C9H   LINE      ---      ---       #155
+      010018D6H   LINE      ---      ---       #157
+      010018D6H   LINE      ---      ---       #158
+      010018DBH   LINE      ---      ---       #159
+      010018DEH   LINE      ---      ---       #160
+      010018DEH   LINE      ---      ---       #161
+      010018EBH   LINE      ---      ---       #163
+      010018EBH   LINE      ---      ---       #164
+      010018F0H   LINE      ---      ---       #165
+      010018F3H   LINE      ---      ---       #166
+      010018F3H   LINE      ---      ---       #167
+      010018F5H   LINE      ---      ---       #168
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001FBDH   BLOCK     CODE     ---       LVL=0
+      01001FBDH   LINE      ---      ---       #171
+      01001FBDH   LINE      ---      ---       #172
+      01001FBDH   LINE      ---      ---       #173
+      01001FC3H   LINE      ---      ---       #174
+      01001FCCH   LINE      ---      ---       #175
+      01001FCEH   LINE      ---      ---       #176
+      01001FD6H   LINE      ---      ---       #178
+      01001FE2H   LINE      ---      ---       #179
+      01001FE2H   LINE      ---      ---       #180
+      01001FE5H   LINE      ---      ---       #181
+      01001FE5H   LINE      ---      ---       #183
+      01001FE5H   LINE      ---      ---       #184
+      01001FFBH   LINE      ---      ---       #185
+      01001FFBH   LINE      ---      ---       #186
+      01002000H   LINE      ---      ---       #187
+      01002000H   LINE      ---      ---       #189
+      01002000H   LINE      ---      ---       #190
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002005H   BLOCK     CODE     ---       LVL=0
+      01002005H   LINE      ---      ---       #197
+      01002005H   LINE      ---      ---       #198
+      01002005H   LINE      ---      ---       #199
+      01002015H   LINE      ---      ---       #200
+      0100201BH   LINE      ---      ---       #201
+      0100201FH   LINE      ---      ---       #202
+      01002027H   LINE      ---      ---       #203
+      0100202FH   LINE      ---      ---       #204
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010023E6H   BLOCK     CODE     ---       LVL=0
+      010023E6H   LINE      ---      ---       #207
+      010023E6H   LINE      ---      ---       #208
+      010023E6H   BLOCK     CODE     NEAR LAB  LVL=1
+      010023E6H   LINE      ---      ---       #209
+      010023E6H   LINE      ---      ---       #212
+      010023EFH   LINE      ---      ---       #213
+      010023F4H   LINE      ---      ---       #214
+      010023FEH   LINE      ---      ---       #216
+      01002405H   LINE      ---      ---       #217
+      01002405H   LINE      ---      ---       #218
+      0100240DH   LINE      ---      ---       #219
+      0100240DH   LINE      ---      ---       #220
+      01002435H   LINE      ---      ---       #221
+      01002441H   LINE      ---      ---       #222
+      01002441H   LINE      ---      ---       #223
+      01002441H   LINE      ---      ---       #225
+      0100244AH   LINE      ---      ---       #226
+      0100244AH   LINE      ---      ---       #227
+      01002452H   LINE      ---      ---       #228
+      01002452H   LINE      ---      ---       #229
+      0100247AH   LINE      ---      ---       #230
+      01002486H   LINE      ---      ---       #231
+      01002486H   LINE      ---      ---       #232
+      01002486H   LINE      ---      ---       #234
+      0100248FH   LINE      ---      ---       #235
+      0100248FH   LINE      ---      ---       #236
+      01002497H   LINE      ---      ---       #237
+      01002497H   LINE      ---      ---       #238
+      010024BFH   LINE      ---      ---       #239
+      010024CBH   LINE      ---      ---       #240
+      010024CBH   LINE      ---      ---       #241
+      010024CBH   LINE      ---      ---       #242
+      010024CBH   LINE      ---      ---       #243
+      02004EF0H   SYMBOL    XDATA    VOID      record_index
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001A27H   BLOCK     CODE     ---       LVL=0
+      01001A27H   LINE      ---      ---       #247
+      01001A27H   LINE      ---      ---       #248
+      01001A27H   LINE      ---      ---       #249
+      01001A2EH   LINE      ---      ---       #250
+      01001A2EH   LINE      ---      ---       #251
+      01001A32H   LINE      ---      ---       #252
+      01001A37H   LINE      ---      ---       #253
+      01001A3EH   LINE      ---      ---       #254
+      01001A45H   LINE      ---      ---       #255
+      01001A55H   LINE      ---      ---       #256
+      01001A65H   LINE      ---      ---       #257
+      01001A75H   LINE      ---      ---       #258
+      01001A85H   LINE      ---      ---       #259
+      01001A8CH   LINE      ---      ---       #260
+      01001A91H   LINE      ---      ---       #261
+      01001A96H   LINE      ---      ---       #262
+      01001A96H   LINE      ---      ---       #263
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       GLOBAL_VARIABLE
+      02004E3CH   PUBLIC    XDATA    ---       multikey
+      02004E3BH   PUBLIC    XDATA    BYTE      mult_key_status
+      02004D39H   PUBLIC    XDATA    DWORD     le_pin_code
+      02004DE4H   PUBLIC    XDATA    ---       bd_key_record_list
+      02004DE3H   PUBLIC    XDATA    BYTE      mult_key_value
+      02004DE2H   PUBLIC    XDATA    BYTE      action_timeout
+      02004DE1H   PUBLIC    XDATA    BYTE      power_on_flag
+      02004DE0H   PUBLIC    XDATA    BYTE      fn_flag_last
+      02004213H   PUBLIC    XDATA    BYTE      kscurrmult
+      02004C95H   PUBLIC    XDATA    WORD      m_adcCurrentValue
+      02004D38H   PUBLIC    XDATA    BYTE      m_reconnect_continue
+      02004DDFH   PUBLIC    XDATA    BYTE      fn_lock_flag
+      02000040H   PUBLIC    XDATA    ---       m_remote_addr
+      02004DDEH   PUBLIC    XDATA    BYTE      delayChgInvTimer
+      02004DDDH   PUBLIC    XDATA    BYTE      ble_reconnect_flag
+      02004274H   PUBLIC    XDATA    ---       m_reconn_addr
+      02004DDCH   PUBLIC    XDATA    BYTE      press_long_time_flag
+      02004DDBH   PUBLIC    XDATA    BYTE      fn_flag
+      020047F4H   PUBLIC    XDATA    WORD      m_ui_state_map
+      02004DDAH   PUBLIC    XDATA    BYTE      iOS_rec_pinCode
+      02004C8FH   PUBLIC    XDATA    BYTE      m_adc_config_flag
+      02004DD9H   PUBLIC    XDATA    BYTE      m_caps_num_lock_last
+      0200447BH   PUBLIC    XDATA    ---       m_le_ltk
+      02004262H   PUBLIC    XDATA    ---       m_linkkey
+      02004D93H   PUBLIC    XDATA    ---       ksSelMapOld
+      02004DD8H   PUBLIC    XDATA    BYTE      standard_key_release_flag
+      02004DBCH   PUBLIC    XDATA    ---       ksSelMapCurr
+      02004DD7H   PUBLIC    XDATA    BYTE      pinCode_flag
+      02004DD6H   PUBLIC    XDATA    BYTE      repeat_send_24g
+      02004DD5H   PUBLIC    XDATA    BYTE      long_press_flag
+      020044F9H   PUBLIC    XDATA    ---       m_le_lap
+      02004800H   PUBLIC    XDATA    ---       hidBuff
+      02004CB6H   PUBLIC    XDATA    BYTE      m_power_on_flag
+      02004CB7H   PUBLIC    XDATA    BYTE      m_caps_num_lock
+      02004C90H   PUBLIC    XDATA    BYTE      m_adc_channel
+      02004DD4H   PUBLIC    XDATA    BYTE      switch_role_timer
+      0200425EH   PUBLIC    XDATA    BYTE      m_link_key_exists
+      02004C93H   PUBLIC    XDATA    WORD      m_adc3vValue
+      02004131H   PUBLIC    XDATA    BYTE      m_lpm_mode
+      02004DD3H   PUBLIC    XDATA    BYTE      fn_tx_flag
+      0200448BH   PUBLIC    XDATA    BYTE      m_ltk_exists
+      02000B81H   PUBLIC    XDATA    BYTE      m_wakup_from_power_flag
+      02004C91H   PUBLIC    XDATA    WORD      m_adc0vBase
+      02004DD2H   PUBLIC    XDATA    BYTE      le_pin_code_len
+      02004C00H   PUBLIC    XDATA    ---       m_24g_addr
+      02004DD1H   PUBLIC    XDATA    BYTE      recon_index
+      02004DD0H   PUBLIC    XDATA    BYTE      get_24g_led_send
+      02008010H   PUBLIC    XDATA    BYTE      m_reset_reg
+      02004CBFH   PUBLIC    XDATA    ---       g_variable
+      020003D0H   PUBLIC    XDATA    ---       m_remote_le_addr
+      02004DA8H   PUBLIC    XDATA    ---       ksSelMapCheck
+      01000696H   PUBLIC    CONST    ---       ksMap
+      01000681H   PUBLIC    CONST    ---       col
+
+      ---         MODULE    ---      ---       KB_PROCESS
+      01002C70H   PUBLIC    CODE     ---       _kb_multikey_setup
+      01002B12H   PUBLIC    CODE     ---       _key_fn_function
+      01002AF2H   PUBLIC    CODE     ---       _key_replace
+      01002A11H   PUBLIC    CODE     ---       _kb_device_select
+      01001249H   PUBLIC    CODE     ---       _kb_motion_keyscan
+      01001703H   PUBLIC    CODE     ---       kb_need_keyscan
+      01001633H   PUBLIC    CODE     ---       kb_24g_get_led_status
+      0100279CH   PUBLIC    CODE     ---       kb_bt_pincode_enter
+      010016C9H   PUBLIC    CODE     ---       _kb_send_combination_key
+      01002781H   PUBLIC    CODE     ---       _kb_set_multikey
+      010014B0H   PUBLIC    CODE     ---       _IPC_TxHidData
+      01000919H   PUBLIC    CODE     ---       _YC_key_action_handle
+
+      01000919H   BLOCK     CODE     ---       LVL=0
+      01000919H   LINE      ---      ---       #3
+      0100091EH   LINE      ---      ---       #4
+      0100091EH   LINE      ---      ---       #5
+      0100095BH   LINE      ---      ---       #6
+      0100095BH   LINE      ---      ---       #7
+      0100095BH   LINE      ---      ---       #8
+      0100095BH   LINE      ---      ---       #9
+      0100095BH   LINE      ---      ---       #10
+      01000968H   LINE      ---      ---       #12
+      01000968H   LINE      ---      ---       #13
+      0100096CH   LINE      ---      ---       #14
+      01000974H   LINE      ---      ---       #15
+      01000975H   LINE      ---      ---       #17
+      01000975H   LINE      ---      ---       #18
+      0100097EH   LINE      ---      ---       #19
+      01000984H   LINE      ---      ---       #20
+      01000988H   LINE      ---      ---       #21
+      0100098CH   LINE      ---      ---       #22
+      01000990H   LINE      ---      ---       #23
+      01000994H   LINE      ---      ---       #24
+      01000999H   LINE      ---      ---       #25
+      01000999H   LINE      ---      ---       #26
+      0100099AH   LINE      ---      ---       #27
+      0100099AH   LINE      ---      ---       #28
+      0100099EH   LINE      ---      ---       #29
+      010009A2H   LINE      ---      ---       #30
+      010009A2H   LINE      ---      ---       #31
+      010009A2H   LINE      ---      ---       #32
+      010009A7H   LINE      ---      ---       #33
+      010009B3H   LINE      ---      ---       #34
+      010009B3H   LINE      ---      ---       #35
+      010009BBH   LINE      ---      ---       #36
+      010009C1H   LINE      ---      ---       #37
+      010009C2H   LINE      ---      ---       #39
+      010009C2H   LINE      ---      ---       #40
+      010009C4H   LINE      ---      ---       #41
+      010009C9H   LINE      ---      ---       #45
+      010009CCH   LINE      ---      ---       #46
+      010009D0H   LINE      ---      ---       #51
+      010009D5H   LINE      ---      ---       #52
+      010009D5H   LINE      ---      ---       #53
+      010009D6H   LINE      ---      ---       #54
+      010009D6H   LINE      ---      ---       #55
+      010009D9H   LINE      ---      ---       #56
+      010009DEH   LINE      ---      ---       #57
+      010009DFH   LINE      ---      ---       #58
+      010009DFH   LINE      ---      ---       #59
+      010009ECH   LINE      ---      ---       #60
+      010009F2H   LINE      ---      ---       #61
+      010009F4H   LINE      ---      ---       #62
+      010009F8H   LINE      ---      ---       #63
+      010009FEH   LINE      ---      ---       #64
+      01000A0FH   LINE      ---      ---       #65
+      01000A20H   LINE      ---      ---       #66
+      01000A26H   LINE      ---      ---       #67
+      01000A2BH   LINE      ---      ---       #68
+      01000A2CH   LINE      ---      ---       #69
+      01000A2CH   LINE      ---      ---       #70
+      01000A2CH   LINE      ---      ---       #71
+      01000A31H   LINE      ---      ---       #72
+      01000A3DH   LINE      ---      ---       #73
+      01000A3DH   LINE      ---      ---       #74
+      01000A45H   LINE      ---      ---       #75
+      01000A46H   LINE      ---      ---       #77
+      01000A46H   LINE      ---      ---       #78
+      01000A57H   LINE      ---      ---       #79
+      01000A5BH   LINE      ---      ---       #80
+      01000A5FH   LINE      ---      ---       #82
+      01000A65H   LINE      ---      ---       #83
+      01000A68H   LINE      ---      ---       #84
+      01000A6CH   LINE      ---      ---       #85
+      01000A6CH   LINE      ---      ---       #86
+      01000A6DH   LINE      ---      ---       #87
+      01000A6DH   LINE      ---      ---       #88
+      01000A72H   LINE      ---      ---       #89
+      01000A7EH   LINE      ---      ---       #90
+      01000A7EH   LINE      ---      ---       #91
+      01000A86H   LINE      ---      ---       #92
+      01000A87H   LINE      ---      ---       #94
+      01000A87H   LINE      ---      ---       #95
+      01000A8FH   LINE      ---      ---       #96
+      01000A8FH   LINE      ---      ---       #97
+      01000A93H   LINE      ---      ---       #98
+      01000A99H   LINE      ---      ---       #99
+      01000A9CH   LINE      ---      ---       #100
+      01000AA2H   LINE      ---      ---       #101
+      01000AA7H   LINE      ---      ---       #102
+      01000AA7H   LINE      ---      ---       #103
+      01000AACH   LINE      ---      ---       #104
+      01000AACH   LINE      ---      ---       #105
+      01000AADH   LINE      ---      ---       #106
+      01000AADH   LINE      ---      ---       #107
+      01000AB2H   LINE      ---      ---       #108
+      01000AB2H   LINE      ---      ---       #109
+      01000AB2H   LINE      ---      ---       #110
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010014B0H   BLOCK     CODE     ---       LVL=0
+      010014B0H   LINE      ---      ---       #114
+      010014BEH   LINE      ---      ---       #115
+      010014BEH   LINE      ---      ---       #116
+      010014C6H   LINE      ---      ---       #118
+      010014CEH   LINE      ---      ---       #121
+      010014D5H   LINE      ---      ---       #122
+      010014D5H   LINE      ---      ---       #123
+      010014E5H   LINE      ---      ---       #124
+      010014E5H   LINE      ---      ---       #125
+      010014ECH   LINE      ---      ---       #126
+      010014ECH   LINE      ---      ---       #127
+      010014FCH   LINE      ---      ---       #128
+      010014FCH   LINE      ---      ---       #129
+      01001504H   LINE      ---      ---       #130
+      01001504H   LINE      ---      ---       #131
+      01001517H   LINE      ---      ---       #132
+      01001517H   LINE      ---      ---       #133
+      01001537H   LINE      ---      ---       #134
+      0100153DH   LINE      ---      ---       #136
+      01001543H   LINE      ---      ---       #137
+      01001545H   LINE      ---      ---       #138
+      01001549H   LINE      ---      ---       #139
+      01001549H   LINE      ---      ---       #140
+      01001559H   LINE      ---      ---       #141
+      01001559H   LINE      ---      ---       #142
+      0100155DH   LINE      ---      ---       #143
+      0100155FH   LINE      ---      ---       #145
+      0100155FH   LINE      ---      ---       #146
+      01001565H   LINE      ---      ---       #147
+      01001565H   LINE      ---      ---       #148
+      01001565H   LINE      ---      ---       #149
+      0100156CH   LINE      ---      ---       #150
+      0100156CH   LINE      ---      ---       #151
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002781H   BLOCK     CODE     ---       LVL=0
+      01002781H   LINE      ---      ---       #154
+      01002785H   LINE      ---      ---       #155
+      01002785H   LINE      ---      ---       #156
+      0100278DH   LINE      ---      ---       #157
+      0100278DH   LINE      ---      ---       #158
+      01002790H   LINE      ---      ---       #159
+      01002795H   LINE      ---      ---       #160
+      01002798H   LINE      ---      ---       #161
+      0100279BH   LINE      ---      ---       #162
+      0100279BH   LINE      ---      ---       #163
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010016C9H   BLOCK     CODE     ---       LVL=0
+      010016C9H   LINE      ---      ---       #166
+      010016D1H   LINE      ---      ---       #167
+      010016D1H   LINE      ---      ---       #168
+      010016DDH   LINE      ---      ---       #169
+      010016E3H   LINE      ---      ---       #170
+      010016F1H   LINE      ---      ---       #171
+      010016F9H   LINE      ---      ---       #172
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100279CH   BLOCK     CODE     ---       LVL=0
+      0100279CH   LINE      ---      ---       #193
+      0100279CH   LINE      ---      ---       #194
+      0100279CH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100279CH   LINE      ---      ---       #195
+      010027A5H   LINE      ---      ---       #196
+      010027B2H   LINE      ---      ---       #197
+      010027B8H   LINE      ---      ---       #199
+      010027CFH   LINE      ---      ---       #200
+      010027D8H   LINE      ---      ---       #201
+      010027DFH   LINE      ---      ---       #202
+      010027DFH   LINE      ---      ---       #203
+      010027E4H   LINE      ---      ---       #204
+      010027EAH   LINE      ---      ---       #205
+      010027EFH   LINE      ---      ---       #206
+      010027EFH   LINE      ---      ---       #208
+      010027FAH   LINE      ---      ---       #209
+      010027FAH   LINE      ---      ---       #210
+      010027FFH   LINE      ---      ---       #211
+      01002804H   LINE      ---      ---       #212
+      0100280AH   LINE      ---      ---       #213
+      0100280AH   LINE      ---      ---       #214
+      0100280BH   LINE      ---      ---       #216
+      0100280BH   LINE      ---      ---       #217
+      0100282CH   LINE      ---      ---       #218
+      0100282CH   LINE      ---      ---       #219
+      01002830H   LINE      ---      ---       #220
+      01002830H   LINE      ---      ---       #221
+      01002844H   LINE      ---      ---       #222
+      01002861H   LINE      ---      ---       #223
+      01002867H   LINE      ---      ---       #224
+      01002868H   LINE      ---      ---       #226
+      01002868H   LINE      ---      ---       #227
+      0100288FH   LINE      ---      ---       #228
+      010028D5H   LINE      ---      ---       #229
+      010028DBH   LINE      ---      ---       #230
+      010028DBH   LINE      ---      ---       #231
+      010028DCH   LINE      ---      ---       #232
+      010028FDH   LINE      ---      ---       #233
+      010028FDH   LINE      ---      ---       #234
+      01002901H   LINE      ---      ---       #235
+      01002901H   LINE      ---      ---       #236
+      01002915H   LINE      ---      ---       #237
+      01002932H   LINE      ---      ---       #238
+      01002938H   LINE      ---      ---       #239
+      01002939H   LINE      ---      ---       #241
+      01002939H   LINE      ---      ---       #242
+      01002960H   LINE      ---      ---       #243
+      010029A6H   LINE      ---      ---       #244
+      010029ACH   LINE      ---      ---       #245
+      010029ACH   LINE      ---      ---       #246
+      010029ADH   LINE      ---      ---       #247
+      010029C2H   LINE      ---      ---       #248
+      010029C2H   LINE      ---      ---       #249
+      010029C8H   LINE      ---      ---       #250
+      010029D8H   LINE      ---      ---       #251
+      010029DEH   LINE      ---      ---       #252
+      010029DEH   LINE      ---      ---       #253
+      010029FBH   LINE      ---      ---       #254
+      01002A01H   LINE      ---      ---       #255
+      01002A01H   LINE      ---      ---       #256
+      01002A02H   LINE      ---      ---       #258
+      01002A02H   LINE      ---      ---       #259
+      01002A10H   LINE      ---      ---       #260
+      01002A10H   LINE      ---      ---       #261
+      01002A10H   LINE      ---      ---       #262
+      01002A10H   LINE      ---      ---       #263
+      02004ED1H   SYMBOL    XDATA    VOID      pEvt
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001633H   BLOCK     CODE     ---       LVL=0
+      01001633H   LINE      ---      ---       #267
+      01001633H   LINE      ---      ---       #268
+      01001633H   LINE      ---      ---       #269
+      01001641H   LINE      ---      ---       #270
+      01001641H   LINE      ---      ---       #271
+      01001649H   LINE      ---      ---       #272
+      01001649H   LINE      ---      ---       #273
+      01001654H   LINE      ---      ---       #274
+      0100165EH   LINE      ---      ---       #275
+      01001664H   LINE      ---      ---       #276
+      01001669H   LINE      ---      ---       #277
+      01001669H   LINE      ---      ---       #278
+      0100166AH   LINE      ---      ---       #279
+      01001677H   LINE      ---      ---       #280
+      01001677H   LINE      ---      ---       #281
+      0100167BH   LINE      ---      ---       #282
+      01001686H   LINE      ---      ---       #283
+      01001690H   LINE      ---      ---       #284
+      01001695H   LINE      ---      ---       #285
+      01001695H   LINE      ---      ---       #286
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001696H   BLOCK     CODE     ---       LVL=0
+      01001696H   LINE      ---      ---       #290
+      01001696H   LINE      ---      ---       #291
+      01001696H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001696H   LINE      ---      ---       #292
+      0100169FH   LINE      ---      ---       #294
+      010016A3H   LINE      ---      ---       #296
+      010016B1H   LINE      ---      ---       #298
+      010016B4H   LINE      ---      ---       #299
+      010016B4H   LINE      ---      ---       #300
+      010016B9H   LINE      ---      ---       #301
+      010016BBH   LINE      ---      ---       #303
+      010016BBH   LINE      ---      ---       #304
+      010016C8H   LINE      ---      ---       #305
+      02004ED4H   SYMBOL    XDATA    VOID      pEvt
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001703H   BLOCK     CODE     ---       LVL=0
+      01001703H   LINE      ---      ---       #309
+      01001703H   LINE      ---      ---       #310
+      01001703H   LINE      ---      ---       #311
+      01001712H   LINE      ---      ---       #313
+      01001712H   LINE      ---      ---       #314
+      01001715H   LINE      ---      ---       #315
+      01001715H   LINE      ---      ---       #317
+      01001715H   LINE      ---      ---       #329
+      01001715H   LINE      ---      ---       #337
+      01001724H   LINE      ---      ---       #341
+      01001726H   LINE      ---      ---       #343
+      01001726H   LINE      ---      ---       #345
+      0100172DH   LINE      ---      ---       #346
+      0100172DH   LINE      ---      ---       #347
+      01001730H   LINE      ---      ---       #348
+      01001738H   LINE      ---      ---       #349
+      01001738H   LINE      ---      ---       #350
+      0100173FH   LINE      ---      ---       #351
+      0100173FH   LINE      ---      ---       #352
+      01001744H   LINE      ---      ---       #353
+      0100174AH   LINE      ---      ---       #354
+      01001752H   LINE      ---      ---       #355
+      01001752H   LINE      ---      ---       #356
+      01001759H   LINE      ---      ---       #357
+      01001759H   LINE      ---      ---       #358
+      0100175CH   LINE      ---      ---       #359
+      0100175EH   LINE      ---      ---       #360
+      01001762H   LINE      ---      ---       #361
+      0100176AH   LINE      ---      ---       #362
+      0100176AH   LINE      ---      ---       #363
+      0100176AH   LINE      ---      ---       #364
+      0100176AH   LINE      ---      ---       #365
+      0100176AH   LINE      ---      ---       #366
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001249H   BLOCK     CODE     ---       LVL=0
+      01001249H   LINE      ---      ---       #370
+      01001254H   LINE      ---      ---       #371
+      01001254H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001254H   LINE      ---      ---       #372
+      01001257H   LINE      ---      ---       #373
+      01001259H   LINE      ---      ---       #375
+      0100125DH   LINE      ---      ---       #376
+      0100126BH   LINE      ---      ---       #377
+      0100126BH   LINE      ---      ---       #378
+      01001289H   LINE      ---      ---       #379
+      01001289H   LINE      ---      ---       #380
+      0100128FH   LINE      ---      ---       #381
+      0100128FH   LINE      ---      ---       #382
+      01001297H   LINE      ---      ---       #383
+      0100129FH   LINE      ---      ---       #386
+      010012B2H   LINE      ---      ---       #388
+      010012C0H   LINE      ---      ---       #392
+      010012CFH   LINE      ---      ---       #393
+      010012CFH   LINE      ---      ---       #394
+      010012D5H   LINE      ---      ---       #395
+      010012D5H   LINE      ---      ---       #396
+      010012DBH   LINE      ---      ---       #397
+      010012E2H   LINE      ---      ---       #398
+      010012EDH   LINE      ---      ---       #399
+      010012F9H   LINE      ---      ---       #402
+      01001326H   LINE      ---      ---       #405
+      01001326H   LINE      ---      ---       #406
+      0100132EH   LINE      ---      ---       #407
+      0100132EH   LINE      ---      ---       #408
+      01001335H   LINE      ---      ---       #409
+      01001337H   LINE      ---      ---       #411
+      01001337H   LINE      ---      ---       #412
+      0100133EH   LINE      ---      ---       #413
+      0100133EH   LINE      ---      ---       #414
+      01001340H   LINE      ---      ---       #416
+      01001340H   LINE      ---      ---       #417
+      01001347H   LINE      ---      ---       #418
+      01001347H   LINE      ---      ---       #420
+      0100134DH   LINE      ---      ---       #421
+      01001354H   LINE      ---      ---       #422
+      01001354H   LINE      ---      ---       #423
+      0100135AH   LINE      ---      ---       #424
+      01001368H   LINE      ---      ---       #425
+      0100136DH   LINE      ---      ---       #426
+      01001377H   LINE      ---      ---       #427
+      0100137EH   LINE      ---      ---       #429
+      0100137EH   LINE      ---      ---       #432
+      01001386H   LINE      ---      ---       #433
+      01001386H   LINE      ---      ---       #434
+      01001394H   LINE      ---      ---       #435
+      01001394H   LINE      ---      ---       #436
+      010013BDH   LINE      ---      ---       #438
+      010013BDH   LINE      ---      ---       #439
+      010013C3H   LINE      ---      ---       #440
+      010013C3H   LINE      ---      ---       #441
+      010013CBH   LINE      ---      ---       #442
+      010013CBH   LINE      ---      ---       #444
+      010013D9H   LINE      ---      ---       #446
+      010013E0H   LINE      ---      ---       #447
+      010013E0H   LINE      ---      ---       #448
+      010013E3H   LINE      ---      ---       #449
+      010013E7H   LINE      ---      ---       #450
+      010013F1H   LINE      ---      ---       #451
+      010013F1H   LINE      ---      ---       #452
+      010013F8H   LINE      ---      ---       #453
+      010013F8H   LINE      ---      ---       #454
+      010013FAH   LINE      ---      ---       #455
+      010013FEH   LINE      ---      ---       #456
+      01001404H   LINE      ---      ---       #457
+      0100140EH   LINE      ---      ---       #458
+      0100140EH   LINE      ---      ---       #460
+      0100140EH   LINE      ---      ---       #461
+      01001414H   LINE      ---      ---       #462
+      01001426H   LINE      ---      ---       #463
+      01001429H   LINE      ---      ---       #465
+      0100142DH   LINE      ---      ---       #467
+      01001436H   LINE      ---      ---       #468
+      01001454H   LINE      ---      ---       #470
+      01001470H   LINE      ---      ---       #472
+      01001480H   LINE      ---      ---       #473
+      01001480H   LINE      ---      ---       #474
+      0100148EH   LINE      ---      ---       #475
+      0100149DH   LINE      ---      ---       #476
+      010014A5H   LINE      ---      ---       #478
+      010014AFH   LINE      ---      ---       #479
+      010014AFH   LINE      ---      ---       #481
+      02004EACH   SYMBOL    XDATA    VOID      temp
+      02004EADH   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002A11H   BLOCK     CODE     ---       LVL=0
+      01002A11H   LINE      ---      ---       #485
+      01002A1CH   LINE      ---      ---       #486
+      01002A1CH   BLOCK     CODE     NEAR LAB  LVL=1
+      01002A1CH   LINE      ---      ---       #487
+      01002A1FH   LINE      ---      ---       #488
+      01002A21H   LINE      ---      ---       #490
+      01002A2BH   LINE      ---      ---       #491
+      01002A2BH   LINE      ---      ---       #492
+      01002A31H   LINE      ---      ---       #494
+      01002A3DH   LINE      ---      ---       #495
+      01002A3DH   LINE      ---      ---       #496
+      01002A5FH   LINE      ---      ---       #498
+      01002A6BH   LINE      ---      ---       #499
+      01002A6BH   LINE      ---      ---       #500
+      01002A76H   LINE      ---      ---       #501
+      01002A76H   LINE      ---      ---       #502
+      01002A76H   LINE      ---      ---       #503
+      01002A76H   LINE      ---      ---       #504
+      01002A76H   LINE      ---      ---       #505
+      01002A7CH   LINE      ---      ---       #507
+      01002A83H   LINE      ---      ---       #508
+      01002A99H   LINE      ---      ---       #509
+      01002A99H   LINE      ---      ---       #510
+      01002A9EH   LINE      ---      ---       #511
+      01002AA4H   LINE      ---      ---       #512
+      01002AA4H   LINE      ---      ---       #513
+      01002AA6H   LINE      ---      ---       #514
+      01002AA6H   LINE      ---      ---       #515
+      01002AB1H   LINE      ---      ---       #516
+      01002AB1H   LINE      ---      ---       #517
+      01002AB8H   LINE      ---      ---       #518
+      01002ABDH   LINE      ---      ---       #519
+      01002AC2H   LINE      ---      ---       #520
+      01002AC8H   LINE      ---      ---       #521
+      01002AD0H   LINE      ---      ---       #522
+      01002AD6H   LINE      ---      ---       #523
+      01002AD9H   LINE      ---      ---       #524
+      01002ADCH   LINE      ---      ---       #525
+      01002ADCH   LINE      ---      ---       #526
+      01002ADCH   LINE      ---      ---       #527
+      01002ADCH   LINE      ---      ---       #528
+      01002ADFH   LINE      ---      ---       #529
+      01002ADFH   LINE      ---      ---       #531
+      01002ADFH   LINE      ---      ---       #532
+      01002AE6H   LINE      ---      ---       #533
+      01002AE6H   LINE      ---      ---       #534
+      01002AE8H   LINE      ---      ---       #535
+      01002AE8H   LINE      ---      ---       #537
+      01002AE8H   LINE      ---      ---       #538
+      01002AEFH   LINE      ---      ---       #539
+      01002AEFH   LINE      ---      ---       #540
+      01002AF1H   LINE      ---      ---       #541
+      02004EB1H   SYMBOL    XDATA    VOID      temp
+      02004EB2H   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002AF2H   BLOCK     CODE     ---       LVL=0
+      01002AF2H   LINE      ---      ---       #545
+      01002AF2H   LINE      ---      ---       #546
+      01002AF2H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002AF2H   LINE      ---      ---       #549
+      01002AF4H   LINE      ---      ---       #550
+      01002AF8H   LINE      ---      ---       #551
+      01002AF8H   LINE      ---      ---       #552
+      01002AFEH   LINE      ---      ---       #553
+      01002B00H   LINE      ---      ---       #554
+      01002B02H   LINE      ---      ---       #556
+      01002B02H   LINE      ---      ---       #557
+      01002B08H   LINE      ---      ---       #558
+      01002B08H   LINE      ---      ---       #559
+      01002B0BH   LINE      ---      ---       #560
+      01002B0FH   LINE      ---      ---       #561
+      01002B0FH   LINE      ---      ---       #562
+      01002B0FH   LINE      ---      ---       #564
+      01002B11H   LINE      ---      ---       #565
+      00000006H   SYMBOL    DATA     VOID      temp_value
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002B12H   BLOCK     CODE     ---       LVL=0
+      01002B12H   LINE      ---      ---       #570
+      01002B16H   LINE      ---      ---       #571
+      01002B16H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002B16H   LINE      ---      ---       #572
+      01002B1BH   LINE      ---      ---       #574
+      01002B1DH   LINE      ---      ---       #575
+      01002B27H   LINE      ---      ---       #576
+      01002B27H   LINE      ---      ---       #578
+      01002B63H   LINE      ---      ---       #579
+      01002B63H   LINE      ---      ---       #580
+      01002B63H   LINE      ---      ---       #581
+      01002B70H   LINE      ---      ---       #582
+      01002B72H   LINE      ---      ---       #583
+      01002B72H   LINE      ---      ---       #584
+      01002B7FH   LINE      ---      ---       #585
+      01002B81H   LINE      ---      ---       #586
+      01002B81H   LINE      ---      ---       #587
+      01002B87H   LINE      ---      ---       #589
+      01002B8BH   LINE      ---      ---       #591
+      01002B8FH   LINE      ---      ---       #592
+      01002B8FH   LINE      ---      ---       #593
+      01002B95H   LINE      ---      ---       #594
+      01002B97H   LINE      ---      ---       #596
+      01002B97H   LINE      ---      ---       #597
+      01002B9DH   LINE      ---      ---       #598
+      01002B9DH   LINE      ---      ---       #600
+      01002BAAH   LINE      ---      ---       #601
+      01002BACH   LINE      ---      ---       #602
+      01002BACH   LINE      ---      ---       #603
+      01002BB2H   LINE      ---      ---       #604
+      01002BB5H   LINE      ---      ---       #606
+      01002BB9H   LINE      ---      ---       #607
+      01002BB9H   LINE      ---      ---       #608
+      01002BBFH   LINE      ---      ---       #609
+      01002BC1H   LINE      ---      ---       #611
+      01002BC1H   LINE      ---      ---       #612
+      01002BC7H   LINE      ---      ---       #613
+      01002BC7H   LINE      ---      ---       #614
+      01002BD4H   LINE      ---      ---       #616
+      01002BD6H   LINE      ---      ---       #617
+      01002BD6H   LINE      ---      ---       #618
+      01002BDCH   LINE      ---      ---       #619
+      01002BE0H   LINE      ---      ---       #621
+      01002BE4H   LINE      ---      ---       #622
+      01002BE4H   LINE      ---      ---       #623
+      01002BEAH   LINE      ---      ---       #624
+      01002BECH   LINE      ---      ---       #626
+      01002BECH   LINE      ---      ---       #627
+      01002BF2H   LINE      ---      ---       #628
+      01002BF2H   LINE      ---      ---       #629
+      01002BFFH   LINE      ---      ---       #630
+      01002C01H   LINE      ---      ---       #631
+      01002C01H   LINE      ---      ---       #632
+      01002C0EH   LINE      ---      ---       #633
+      01002C10H   LINE      ---      ---       #634
+      01002C10H   LINE      ---      ---       #635
+      01002C1DH   LINE      ---      ---       #636
+      01002C1FH   LINE      ---      ---       #637
+      01002C1FH   LINE      ---      ---       #638
+      01002C2CH   LINE      ---      ---       #639
+      01002C2EH   LINE      ---      ---       #640
+      01002C2EH   LINE      ---      ---       #641
+      01002C3BH   LINE      ---      ---       #642
+      01002C3DH   LINE      ---      ---       #643
+      01002C3DH   LINE      ---      ---       #644
+      01002C4AH   LINE      ---      ---       #645
+      01002C4CH   LINE      ---      ---       #646
+      01002C4CH   LINE      ---      ---       #647
+      01002C59H   LINE      ---      ---       #648
+      01002C5BH   LINE      ---      ---       #649
+      01002C5BH   LINE      ---      ---       #650
+      01002C6AH   LINE      ---      ---       #651
+      01002C6AH   LINE      ---      ---       #652
+      01002C6AH   LINE      ---      ---       #653
+      01002C6AH   LINE      ---      ---       #654
+      01002C6AH   LINE      ---      ---       #655
+      01002C6AH   LINE      ---      ---       #657
+      01002C6FH   LINE      ---      ---       #658
+      02004EF2H   SYMBOL    XDATA    VOID      temp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002C70H   BLOCK     CODE     ---       LVL=0
+      01002C70H   LINE      ---      ---       #662
+      01002C7BH   LINE      ---      ---       #663
+      01002C7BH   BLOCK     CODE     NEAR LAB  LVL=1
+      01002C7BH   LINE      ---      ---       #664
+      01002C7EH   LINE      ---      ---       #666
+      01002C8BH   LINE      ---      ---       #667
+      01002C8BH   LINE      ---      ---       #668
+      01002CB6H   LINE      ---      ---       #670
+      01002CB6H   LINE      ---      ---       #671
+      01002CBDH   LINE      ---      ---       #672
+      01002CBDH   LINE      ---      ---       #673
+      01002CC4H   LINE      ---      ---       #674
+      01002CC6H   LINE      ---      ---       #675
+      01002CCAH   LINE      ---      ---       #676
+      01002CCAH   LINE      ---      ---       #677
+      01002CD1H   LINE      ---      ---       #678
+      01002CD3H   LINE      ---      ---       #679
+      01002CF3H   LINE      ---      ---       #680
+      01002CF3H   LINE      ---      ---       #681
+      01002CF8H   LINE      ---      ---       #682
+      01002CFAH   LINE      ---      ---       #683
+      01002CFEH   LINE      ---      ---       #684
+      01002CFEH   LINE      ---      ---       #685
+      01002D05H   LINE      ---      ---       #686
+      01002D07H   LINE      ---      ---       #687
+      01002D27H   LINE      ---      ---       #688
+      01002D27H   LINE      ---      ---       #689
+      01002D2CH   LINE      ---      ---       #690
+      01002D2EH   LINE      ---      ---       #691
+      01002D32H   LINE      ---      ---       #692
+      01002D32H   LINE      ---      ---       #693
+      01002D39H   LINE      ---      ---       #694
+      01002D3BH   LINE      ---      ---       #695
+      01002D5BH   LINE      ---      ---       #696
+      01002D5BH   LINE      ---      ---       #697
+      01002D60H   LINE      ---      ---       #698
+      01002D62H   LINE      ---      ---       #699
+      01002D66H   LINE      ---      ---       #700
+      01002D66H   LINE      ---      ---       #701
+      01002D6DH   LINE      ---      ---       #702
+      01002D6FH   LINE      ---      ---       #703
+      01002D8FH   LINE      ---      ---       #704
+      01002D8FH   LINE      ---      ---       #705
+      01002D95H   LINE      ---      ---       #706
+      01002D97H   LINE      ---      ---       #707
+      01002D9BH   LINE      ---      ---       #708
+      01002D9BH   LINE      ---      ---       #709
+      01002DA2H   LINE      ---      ---       #710
+      01002DA4H   LINE      ---      ---       #711
+      01002DC4H   LINE      ---      ---       #712
+      01002DC4H   LINE      ---      ---       #713
+      01002DCAH   LINE      ---      ---       #714
+      01002DCCH   LINE      ---      ---       #715
+      01002DD0H   LINE      ---      ---       #716
+      01002DD0H   LINE      ---      ---       #717
+      01002DD7H   LINE      ---      ---       #718
+      01002DD9H   LINE      ---      ---       #719
+      01002DF9H   LINE      ---      ---       #720
+      01002DF9H   LINE      ---      ---       #721
+      01002E00H   LINE      ---      ---       #722
+      01002E02H   LINE      ---      ---       #723
+      01002E06H   LINE      ---      ---       #724
+      01002E06H   LINE      ---      ---       #725
+      01002E0DH   LINE      ---      ---       #726
+      01002E0FH   LINE      ---      ---       #727
+      01002E2FH   LINE      ---      ---       #728
+      01002E2FH   LINE      ---      ---       #729
+      01002E36H   LINE      ---      ---       #730
+      01002E38H   LINE      ---      ---       #731
+      01002E3CH   LINE      ---      ---       #732
+      01002E3CH   LINE      ---      ---       #733
+      01002E43H   LINE      ---      ---       #734
+      01002E45H   LINE      ---      ---       #736
+      01002E65H   LINE      ---      ---       #737
+      01002E65H   LINE      ---      ---       #738
+      01002E6CH   LINE      ---      ---       #739
+      01002E6EH   LINE      ---      ---       #740
+      01002E72H   LINE      ---      ---       #741
+      01002E72H   LINE      ---      ---       #742
+      01002E79H   LINE      ---      ---       #743
+      01002E7BH   LINE      ---      ---       #744
+      01002E9BH   LINE      ---      ---       #745
+      01002E9BH   LINE      ---      ---       #746
+      01002EA0H   LINE      ---      ---       #747
+      01002EA2H   LINE      ---      ---       #748
+      01002EA6H   LINE      ---      ---       #749
+      01002EA6H   LINE      ---      ---       #750
+      01002EADH   LINE      ---      ---       #751
+      01002EADH   LINE      ---      ---       #753
+      01002EB4H   LINE      ---      ---       #754
+      01002EB4H   LINE      ---      ---       #755
+      01002ED4H   LINE      ---      ---       #756
+      01002ED8H   LINE      ---      ---       #757
+      01002ED8H   LINE      ---      ---       #758
+      01002ED8H   LINE      ---      ---       #759
+      01002EE0H   LINE      ---      ---       #760
+      02004EC4H   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       KEYSCAN
+      02004E88H   PUBLIC    XDATA    ---       ksEvtPool
+      01002543H   PUBLIC    CODE     ---       KS_GetCurrentEvt
+      01002751H   PUBLIC    CODE     ---       _array_is_empty
+      01003054H   PUBLIC    CODE     ---       KS_ScanMatrix
+      01001BA6H   PUBLIC    CODE     ---       KS_Unistall
+      01001106H   PUBLIC    CODE     ---       KS_Initialize
+
+      01002743H   BLOCK     CODE     ---       LVL=0
+      01002743H   LINE      ---      ---       #24
+      01002743H   LINE      ---      ---       #25
+      01002743H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002743H   LINE      ---      ---       #27
+      01002748H   LINE      ---      ---       #28
+      0100274BH   LINE      ---      ---       #29
+      0100274EH   LINE      ---      ---       #30
+      01002750H   LINE      ---      ---       #31
+      00000006H   SYMBOL    DATA     VOID      c
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002EE1H   BLOCK     CODE     ---       LVL=0
+      01002EE1H   LINE      ---      ---       #35
+      01002EE1H   LINE      ---      ---       #36
+      01002EE1H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002EE1H   LINE      ---      ---       #37
+      01002EE3H   LINE      ---      ---       #39
+      01002EE7H   LINE      ---      ---       #40
+      01002EE7H   LINE      ---      ---       #41
+      01002EEFH   LINE      ---      ---       #43
+      01002EEFH   LINE      ---      ---       #44
+      01002EF3H   LINE      ---      ---       #45
+      01002EF3H   LINE      ---      ---       #46
+      01002EFBH   LINE      ---      ---       #48
+      01002EFBH   LINE      ---      ---       #49
+      01002EFFH   LINE      ---      ---       #50
+      01002EFFH   LINE      ---      ---       #51
+      01002F07H   LINE      ---      ---       #53
+      01002F07H   LINE      ---      ---       #54
+      01002F0BH   LINE      ---      ---       #55
+      01002F0BH   LINE      ---      ---       #56
+      01002F13H   LINE      ---      ---       #58
+      01002F13H   LINE      ---      ---       #59
+      01002F17H   LINE      ---      ---       #60
+      01002F17H   LINE      ---      ---       #61
+      01002F1FH   LINE      ---      ---       #63
+      01002F1FH   LINE      ---      ---       #64
+      01002F23H   LINE      ---      ---       #65
+      01002F23H   LINE      ---      ---       #66
+      01002F2BH   LINE      ---      ---       #68
+      01002F2BH   LINE      ---      ---       #69
+      01002F2FH   LINE      ---      ---       #70
+      01002F2FH   LINE      ---      ---       #71
+      01002F37H   LINE      ---      ---       #73
+      01002F37H   LINE      ---      ---       #74
+      01002F3BH   LINE      ---      ---       #75
+      01002F3BH   LINE      ---      ---       #76
+      01002F43H   LINE      ---      ---       #78
+      01002F43H   LINE      ---      ---       #81
+      01002F45H   LINE      ---      ---       #82
+      01002F45H   LINE      ---      ---       #83
+      01002F54H   LINE      ---      ---       #84
+      01002F54H   LINE      ---      ---       #85
+      01002F57H   LINE      ---      ---       #86
+      01002F57H   LINE      ---      ---       #87
+      01002F5EH   LINE      ---      ---       #88
+      01002F6AH   LINE      ---      ---       #89
+      01002F6BH   LINE      ---      ---       #90
+      01002F6BH   LINE      ---      ---       #91
+      01002F70H   LINE      ---      ---       #92
+      00000006H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002F71H   BLOCK     CODE     ---       LVL=0
+      01002F71H   LINE      ---      ---       #94
+      01002F71H   LINE      ---      ---       #95
+      01002F71H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002F71H   LINE      ---      ---       #96
+      01002F73H   LINE      ---      ---       #97
+      01002F74H   LINE      ---      ---       #99
+      01002F82H   LINE      ---      ---       #100
+      01002F82H   LINE      ---      ---       #101
+      01002F89H   LINE      ---      ---       #102
+      01002F89H   LINE      ---      ---       #103
+      01002F8CH   LINE      ---      ---       #104
+      01002F8CH   LINE      ---      ---       #105
+      01002F8EH   LINE      ---      ---       #107
+      01002F94H   LINE      ---      ---       #110
+      01002F98H   LINE      ---      ---       #111
+      01002F98H   LINE      ---      ---       #112
+      01002FA0H   LINE      ---      ---       #114
+      01002FA0H   LINE      ---      ---       #115
+      01002FA4H   LINE      ---      ---       #116
+      01002FA4H   LINE      ---      ---       #117
+      01002FACH   LINE      ---      ---       #119
+      01002FACH   LINE      ---      ---       #120
+      01002FB0H   LINE      ---      ---       #121
+      01002FB0H   LINE      ---      ---       #122
+      01002FB8H   LINE      ---      ---       #124
+      01002FB8H   LINE      ---      ---       #125
+      01002FBCH   LINE      ---      ---       #126
+      01002FBCH   LINE      ---      ---       #127
+      01002FC4H   LINE      ---      ---       #129
+      01002FC4H   LINE      ---      ---       #130
+      01002FC8H   LINE      ---      ---       #131
+      01002FC8H   LINE      ---      ---       #132
+      01002FD0H   LINE      ---      ---       #134
+      01002FD0H   LINE      ---      ---       #135
+      01002FD4H   LINE      ---      ---       #136
+      01002FD4H   LINE      ---      ---       #137
+      01002FDCH   LINE      ---      ---       #139
+      01002FDCH   LINE      ---      ---       #140
+      01002FE0H   LINE      ---      ---       #141
+      01002FE0H   LINE      ---      ---       #142
+      01002FE8H   LINE      ---      ---       #144
+      01002FE8H   LINE      ---      ---       #145
+      01002FECH   LINE      ---      ---       #146
+      01002FECH   LINE      ---      ---       #147
+      01002FF4H   LINE      ---      ---       #149
+      01002FF4H   LINE      ---      ---       #151
+      01002FF6H   LINE      ---      ---       #152
+      01002FF6H   LINE      ---      ---       #153
+      01002FF9H   LINE      ---      ---       #154
+      01002FF9H   LINE      ---      ---       #155
+      01003007H   LINE      ---      ---       #156
+      0100300BH   LINE      ---      ---       #157
+      01003016H   LINE      ---      ---       #158
+      01003016H   LINE      ---      ---       #159
+      01003018H   LINE      ---      ---       #160
+      01003018H   LINE      ---      ---       #161
+      0100301AH   LINE      ---      ---       #163
+      0100301AH   LINE      ---      ---       #164
+      01003032H   LINE      ---      ---       #165
+      0100303FH   LINE      ---      ---       #166
+      0100303FH   LINE      ---      ---       #167
+      01003043H   LINE      ---      ---       #168
+      0100304EH   LINE      ---      ---       #169
+      0100304EH   LINE      ---      ---       #170
+      0100304EH   LINE      ---      ---       #171
+      01003053H   LINE      ---      ---       #172
+      00000006H   SYMBOL    DATA     VOID      i
+      00000005H   SYMBOL    DATA     VOID      found
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010010E9H   BLOCK     CODE     ---       LVL=0
+      010010E9H   LINE      ---      ---       #174
+      010010E9H   LINE      ---      ---       #175
+      010010E9H   BLOCK     CODE     NEAR LAB  LVL=1
+      010010E9H   LINE      ---      ---       #176
+      010010EEH   LINE      ---      ---       #178
+      010010F9H   LINE      ---      ---       #179
+      010010FDH   LINE      ---      ---       #180
+      01001105H   LINE      ---      ---       #181
+      02004EF3H   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001111H   BLOCK     CODE     ---       LVL=0
+      01001111H   LINE      ---      ---       #183
+      01001111H   LINE      ---      ---       #184
+      01001111H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001111H   LINE      ---      ---       #185
+      01001116H   LINE      ---      ---       #186
+      01001122H   LINE      ---      ---       #187
+      01001126H   LINE      ---      ---       #188
+      0100112EH   LINE      ---      ---       #189
+      02004EF4H   SYMBOL    XDATA    VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001106H   BLOCK     CODE     ---       LVL=0
+      01001106H   LINE      ---      ---       #191
+      01001106H   LINE      ---      ---       #192
+      01001106H   LINE      ---      ---       #193
+      0100110BH   LINE      ---      ---       #194
+      0100110DH   LINE      ---      ---       #195
+      0100110FH   LINE      ---      ---       #196
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001BA6H   BLOCK     CODE     ---       LVL=0
+      01001BA6H   LINE      ---      ---       #200
+      01001BA6H   LINE      ---      ---       #201
+      01001BA6H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001BA6H   LINE      ---      ---       #202
+      01001BA8H   LINE      ---      ---       #203
+      01001BACH   LINE      ---      ---       #204
+      01001BADH   LINE      ---      ---       #205
+      01001BAEH   LINE      ---      ---       #206
+      01001BB5H   LINE      ---      ---       #207
+      01001BBEH   LINE      ---      ---       #208
+      01001BCEH   LINE      ---      ---       #209
+      01001BE1H   LINE      ---      ---       #210
+      01001BEEH   LINE      ---      ---       #211
+      01001BFBH   LINE      ---      ---       #212
+      01001BFEH   LINE      ---      ---       #214
+      01001C01H   LINE      ---      ---       #216
+      01001C09H   LINE      ---      ---       #217
+      01001C11H   LINE      ---      ---       #218
+      01001C11H   LINE      ---      ---       #219
+      01001C17H   LINE      ---      ---       #220
+      01001C17H   LINE      ---      ---       #221
+      01001C1BH   LINE      ---      ---       #222
+      01001C1FH   LINE      ---      ---       #223
+      01001C23H   LINE      ---      ---       #224
+      01001C27H   LINE      ---      ---       #225
+      01001C2BH   LINE      ---      ---       #226
+      01001C2FH   LINE      ---      ---       #227
+      01001C33H   LINE      ---      ---       #228
+      01001C37H   LINE      ---      ---       #229
+      01001C37H   LINE      ---      ---       #231
+      01001C37H   LINE      ---      ---       #232
+      01001C40H   LINE      ---      ---       #233
+      01001C46H   LINE      ---      ---       #234
+      01001C46H   LINE      ---      ---       #236
+      01001C47H   LINE      ---      ---       #238
+      01001C47H   LINE      ---      ---       #239
+      01001C4CH   LINE      ---      ---       #240
+      01001C50H   LINE      ---      ---       #241
+      01001C50H   LINE      ---      ---       #242
+      00000007H   SYMBOL    DATA     VOID      i
+      02004EF5H   SYMBOL    XDATA    VOID      temp
+      00000006H   SYMBOL    DATA     VOID      tgroup
+      00000005H   SYMBOL    DATA     VOID      tgpionum
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003054H   BLOCK     CODE     ---       LVL=0
+      01003054H   LINE      ---      ---       #245
+      01003054H   LINE      ---      ---       #246
+      01003054H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003054H   LINE      ---      ---       #247
+      01003056H   LINE      ---      ---       #248
+      0100305AH   LINE      ---      ---       #249
+      0100305BH   LINE      ---      ---       #250
+      0100305CH   LINE      ---      ---       #251
+      0100305EH   LINE      ---      ---       #252
+      01003060H   LINE      ---      ---       #253
+      01003062H   LINE      ---      ---       #254
+      01003069H   LINE      ---      ---       #255
+      01003072H   LINE      ---      ---       #256
+      01003082H   LINE      ---      ---       #257
+      010030E2H   LINE      ---      ---       #258
+      010030E5H   LINE      ---      ---       #260
+      010030EEH   LINE      ---      ---       #261
+      010030F7H   LINE      ---      ---       #262
+      01003107H   LINE      ---      ---       #263
+      01003167H   LINE      ---      ---       #264
+      0100316AH   LINE      ---      ---       #266
+      01003173H   LINE      ---      ---       #267
+      0100318DH   LINE      ---      ---       #268
+      010031B0H   LINE      ---      ---       #269
+      010031B0H   LINE      ---      ---       #270
+      010031B3H   LINE      ---      ---       #271
+      00000007H   SYMBOL    DATA     VOID      i
+      02004EC5H   SYMBOL    XDATA    VOID      j
+      00000006H   SYMBOL    DATA     VOID      tgroup
+      00000005H   SYMBOL    DATA     VOID      tgpionum
+      02004EC6H   SYMBOL    XDATA    VOID      temp
+      02004EC7H   SYMBOL    XDATA    VOID      check
+      02004EC8H   SYMBOL    XDATA    VOID      rawSel
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002751H   BLOCK     CODE     ---       LVL=0
+      01002751H   LINE      ---      ---       #273
+      0100275CH   LINE      ---      ---       #274
+      0100275CH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100275CH   LINE      ---      ---       #276
+      01002763H   LINE      ---      ---       #277
+      01002763H   LINE      ---      ---       #278
+      01002778H   LINE      ---      ---       #279
+      0100277BH   LINE      ---      ---       #280
+      0100277EH   LINE      ---      ---       #281
+      01002780H   LINE      ---      ---       #282
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002543H   BLOCK     CODE     ---       LVL=0
+      01002543H   LINE      ---      ---       #285
+      01002543H   LINE      ---      ---       #286
+      01002543H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002543H   LINE      ---      ---       #288
+      01002548H   LINE      ---      ---       #289
+      0100254AH   LINE      ---      ---       #290
+      0100254CH   LINE      ---      ---       #291
+      0100254EH   LINE      ---      ---       #292
+      01002550H   LINE      ---      ---       #293
+      01002552H   LINE      ---      ---       #294
+      01002554H   LINE      ---      ---       #295
+      01002556H   LINE      ---      ---       #296
+      01002558H   LINE      ---      ---       #297
+      0100255AH   LINE      ---      ---       #298
+      0100255CH   LINE      ---      ---       #299
+      0100255EH   LINE      ---      ---       #300
+      01002560H   LINE      ---      ---       #301
+      01002562H   LINE      ---      ---       #303
+      01002565H   LINE      ---      ---       #305
+      01002593H   LINE      ---      ---       #307
+      01002593H   LINE      ---      ---       #308
+      0100259AH   LINE      ---      ---       #309
+      0100259CH   LINE      ---      ---       #311
+      0100259CH   LINE      ---      ---       #312
+      010025A3H   LINE      ---      ---       #313
+      010025A8H   LINE      ---      ---       #314
+      010025A8H   LINE      ---      ---       #316
+      010025B8H   LINE      ---      ---       #317
+      010025C7H   LINE      ---      ---       #318
+      010025CBH   LINE      ---      ---       #319
+      010025D1H   LINE      ---      ---       #320
+      010025D7H   LINE      ---      ---       #321
+      010025DFH   LINE      ---      ---       #322
+      010025DFH   LINE      ---      ---       #323
+      010025E7H   LINE      ---      ---       #324
+      010025EFH   LINE      ---      ---       #325
+      010025F7H   LINE      ---      ---       #326
+      01002603H   LINE      ---      ---       #327
+      01002622H   LINE      ---      ---       #328
+      01002628H   LINE      ---      ---       #329
+      0100262AH   LINE      ---      ---       #330
+      0100262AH   LINE      ---      ---       #331
+      0100262FH   LINE      ---      ---       #332
+      0100262FH   LINE      ---      ---       #334
+      01002641H   LINE      ---      ---       #335
+      01002641H   LINE      ---      ---       #336
+      0100265DH   LINE      ---      ---       #337
+      01002670H   LINE      ---      ---       #338
+      01002676H   LINE      ---      ---       #339
+      01002676H   LINE      ---      ---       #340
+      01002678H   LINE      ---      ---       #341
+      0100267AH   LINE      ---      ---       #343
+      0100267AH   LINE      ---      ---       #345
+      01002680H   LINE      ---      ---       #346
+      01002687H   LINE      ---      ---       #347
+      0100269FH   LINE      ---      ---       #348
+      010026AEH   LINE      ---      ---       #349
+      010026AEH   LINE      ---      ---       #350
+      010026B3H   LINE      ---      ---       #351
+      010026B3H   LINE      ---      ---       #352
+      010026C4H   LINE      ---      ---       #353
+      010026D8H   LINE      ---      ---       #354
+      010026DFH   LINE      ---      ---       #355
+      010026DFH   LINE      ---      ---       #356
+      010026E7H   LINE      ---      ---       #357
+      010026E9H   LINE      ---      ---       #359
+      010026E9H   LINE      ---      ---       #360
+      010026F1H   LINE      ---      ---       #361
+      010026F1H   LINE      ---      ---       #362
+      010026F1H   LINE      ---      ---       #363
+      010026F9H   LINE      ---      ---       #364
+      01002701H   LINE      ---      ---       #365
+      01002709H   LINE      ---      ---       #366
+      0100270FH   LINE      ---      ---       #367
+      0100270FH   LINE      ---      ---       #368
+      01002717H   LINE      ---      ---       #370
+      01002725H   LINE      ---      ---       #371
+      01002725H   LINE      ---      ---       #372
+      01002728H   LINE      ---      ---       #373
+      01002728H   LINE      ---      ---       #376
+      01002735H   LINE      ---      ---       #377
+      01002735H   LINE      ---      ---       #378
+      0100273CH   LINE      ---      ---       #379
+      0100273CH   LINE      ---      ---       #381
+      0100273CH   LINE      ---      ---       #382
+      01002742H   LINE      ---      ---       #383
+      01002742H   LINE      ---      ---       #386
+      02004E69H   SYMBOL    XDATA    VOID      i
+      02004E6AH   SYMBOL    XDATA    VOID      j
+      02004E6BH   SYMBOL    XDATA    VOID      temp
+      02004E6CH   SYMBOL    XDATA    VOID      flag
+      02004E6DH   SYMBOL    XDATA    VOID      offset
+      02004E6EH   SYMBOL    XDATA    VOID      state
+      02004E6FH   SYMBOL    XDATA    VOID      colCounttemp
+      02004E70H   SYMBOL    XDATA    VOID      rawSel
+      02004E71H   SYMBOL    XDATA    VOID      keyCounttemp
+      02004E72H   SYMBOL    XDATA    VOID      key_value_temp
+      02004E73H   SYMBOL    XDATA    VOID      ghost
+      02004E74H   SYMBOL    XDATA    VOID      rawCount
+      02004E75H   SYMBOL    XDATA    VOID      colCount
+      02004E76H   SYMBOL    XDATA    VOID      keyCount
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       LED
+      010032A6H   PUBLIC    CODE     ---       LED_handle
+      01000F9CH   PUBLIC    CODE     ---       LED_device_poweroff
+      010031B4H   PUBLIC    CODE     ---       LED_device_poweron
+      01000FF8H   PUBLIC    CODE     ---       LED_all_shutdown
+
+      01000FF8H   BLOCK     CODE     ---       LVL=0
+      01000FF8H   LINE      ---      ---       #4
+      01000FF8H   LINE      ---      ---       #5
+      01000FF8H   LINE      ---      ---       #6
+      01000FFFH   LINE      ---      ---       #7
+      01001005H   LINE      ---      ---       #8
+      0100100BH   LINE      ---      ---       #9
+      01001011H   LINE      ---      ---       #10
+      01001017H   LINE      ---      ---       #11
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010031B4H   BLOCK     CODE     ---       LVL=0
+      010031B4H   LINE      ---      ---       #15
+      010031B4H   LINE      ---      ---       #16
+      010031B4H   LINE      ---      ---       #17
+      010031BBH   LINE      ---      ---       #18
+      010031C2H   LINE      ---      ---       #19
+      010031C9H   LINE      ---      ---       #20
+      010031D0H   LINE      ---      ---       #21
+      010031D7H   LINE      ---      ---       #22
+      010031D7H   LINE      ---      ---       #23
+      010031DEH   LINE      ---      ---       #24
+      010031E5H   LINE      ---      ---       #25
+      010031E5H   LINE      ---      ---       #27
+      010031E5H   LINE      ---      ---       #28
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F9CH   BLOCK     CODE     ---       LVL=0
+      01000F9CH   LINE      ---      ---       #32
+      01000F9CH   LINE      ---      ---       #33
+      01000F9CH   LINE      ---      ---       #34
+      01000FA3H   LINE      ---      ---       #35
+      01000FA9H   LINE      ---      ---       #36
+      01000FB0H   LINE      ---      ---       #37
+      01000FB6H   LINE      ---      ---       #38
+      01000FBDH   LINE      ---      ---       #39
+      01000FBDH   LINE      ---      ---       #40
+      01000FC3H   LINE      ---      ---       #41
+      01000FC9H   LINE      ---      ---       #42
+      01000FC9H   LINE      ---      ---       #44
+      01000FC9H   LINE      ---      ---       #45
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010032A6H   BLOCK     CODE     ---       LVL=0
+      010032A6H   LINE      ---      ---       #50
+      010032A6H   LINE      ---      ---       #51
+      010032A6H   LINE      ---      ---       #52
+      010032B0H   LINE      ---      ---       #55
+      010032B8H   LINE      ---      ---       #56
+      010032B8H   LINE      ---      ---       #58
+      010032BFH   LINE      ---      ---       #59
+      010032BFH   LINE      ---      ---       #60
+      010032C2H   LINE      ---      ---       #61
+      010032C4H   LINE      ---      ---       #62
+      010032CBH   LINE      ---      ---       #63
+      010032CBH   LINE      ---      ---       #64
+      010032D1H   LINE      ---      ---       #65
+      010032D1H   LINE      ---      ---       #66
+      010032D7H   LINE      ---      ---       #67
+      010032DDH   LINE      ---      ---       #68
+      010032DDH   LINE      ---      ---       #69
+      010032DFH   LINE      ---      ---       #71
+      010032DFH   LINE      ---      ---       #72
+      010032E6H   LINE      ---      ---       #73
+      010032E6H   LINE      ---      ---       #74
+      010032E8H   LINE      ---      ---       #75
+      010032ECH   LINE      ---      ---       #76
+      010032F3H   LINE      ---      ---       #77
+      010032F3H   LINE      ---      ---       #78
+      010032F3H   LINE      ---      ---       #81
+      010032F9H   LINE      ---      ---       #82
+      010032F9H   LINE      ---      ---       #83
+      01003305H   LINE      ---      ---       #84
+      01003305H   LINE      ---      ---       #85
+      01003309H   LINE      ---      ---       #86
+      01003309H   LINE      ---      ---       #87
+      0100330FH   LINE      ---      ---       #88
+      01003316H   LINE      ---      ---       #89
+      01003318H   LINE      ---      ---       #91
+      01003318H   LINE      ---      ---       #92
+      0100331FH   LINE      ---      ---       #93
+      01003324H   LINE      ---      ---       #94
+      01003324H   LINE      ---      ---       #96
+      0100332BH   LINE      ---      ---       #97
+      0100332BH   LINE      ---      ---       #98
+      01003331H   LINE      ---      ---       #99
+      01003338H   LINE      ---      ---       #100
+      0100333AH   LINE      ---      ---       #102
+      0100333AH   LINE      ---      ---       #103
+      01003341H   LINE      ---      ---       #104
+      01003346H   LINE      ---      ---       #105
+      01003346H   LINE      ---      ---       #112
+      0100334EH   LINE      ---      ---       #113
+      0100334EH   LINE      ---      ---       #114
+      0100334FH   LINE      ---      ---       #116
+      0100334FH   LINE      ---      ---       #117
+      01003356H   LINE      ---      ---       #118
+      0100335DH   LINE      ---      ---       #119
+      0100335DH   LINE      ---      ---       #120
+      0100335DH   LINE      ---      ---       #122
+      0100335DH   LINE      ---      ---       #123
+      01003364H   LINE      ---      ---       #124
+      0100336BH   LINE      ---      ---       #125
+      0100336BH   LINE      ---      ---       #127
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       SYS
+      01001B4FH   PUBLIC    CODE     ---       YC_System_Main
+      010018F6H   PUBLIC    CODE     ---       kb_button_press_timer500ms
+      01002241H   PUBLIC    CODE     ---       YC_pairing_timerout_500ms
+      01002182H   PUBLIC    CODE     ---       YC_wait_disconnect_timer500ms
+      0100228FH   PUBLIC    CODE     ---       YC_connect_timeout_500ms
+      01000EC4H   PUBLIC    CODE     ---       LED_timer500ms
+      01001B46H   PUBLIC    CODE     ---       System_Reset_Connect
+      01000F93H   PUBLIC    CODE     ---       System_long_sleep
+      010017CBH   PUBLIC    CODE     ---       System_Software_init
+
+      01001599H   BLOCK     CODE     ---       LVL=0
+      01001599H   LINE      ---      ---       #11
+      01001599H   LINE      ---      ---       #12
+      01001599H   LINE      ---      ---       #13
+      010015A5H   LINE      ---      ---       #14
+      010015B1H   LINE      ---      ---       #15
+      010015BDH   LINE      ---      ---       #16
+      010015C9H   LINE      ---      ---       #17
+      010015D5H   LINE      ---      ---       #18
+      010015E1H   LINE      ---      ---       #20
+      010015E6H   LINE      ---      ---       #21
+      010015EAH   LINE      ---      ---       #22
+      010015EEH   LINE      ---      ---       #24
+      010015F2H   LINE      ---      ---       #25
+      010015F6H   LINE      ---      ---       #26
+      010015FAH   LINE      ---      ---       #27
+      010015FEH   LINE      ---      ---       #28
+      01001602H   LINE      ---      ---       #29
+      01001606H   LINE      ---      ---       #30
+      0100160AH   LINE      ---      ---       #31
+      0100160EH   LINE      ---      ---       #32
+      01001612H   LINE      ---      ---       #33
+      01001616H   LINE      ---      ---       #34
+      0100161AH   LINE      ---      ---       #35
+      0100161EH   LINE      ---      ---       #36
+      01001622H   LINE      ---      ---       #37
+      01001626H   LINE      ---      ---       #39
+      0100162AH   LINE      ---      ---       #40
+      0100162EH   LINE      ---      ---       #41
+      01001632H   LINE      ---      ---       #42
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000FF5H   BLOCK     CODE     ---       LVL=0
+      01000FF5H   LINE      ---      ---       #44
+      01000FF5H   LINE      ---      ---       #45
+      01000FF5H   LINE      ---      ---       #46
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010017CBH   BLOCK     CODE     ---       LVL=0
+      010017CBH   LINE      ---      ---       #51
+      010017CBH   LINE      ---      ---       #52
+      010017CBH   LINE      ---      ---       #53
+      010017CDH   LINE      ---      ---       #54
+      010017D0H   LINE      ---      ---       #55
+      010017D6H   LINE      ---      ---       #56
+      010017DCH   LINE      ---      ---       #57
+      010017E1H   LINE      ---      ---       #58
+      010017E7H   LINE      ---      ---       #59
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001B46H   BLOCK     CODE     ---       LVL=0
+      01001B46H   LINE      ---      ---       #61
+      01001B46H   LINE      ---      ---       #62
+      01001B46H   LINE      ---      ---       #63
+      01001B4CH   LINE      ---      ---       #64
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F93H   BLOCK     CODE     ---       LVL=0
+      01000F93H   LINE      ---      ---       #67
+      01000F93H   LINE      ---      ---       #68
+      01000F93H   LINE      ---      ---       #69
+      01000F98H   LINE      ---      ---       #70
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001B46H   BLOCK     CODE     ---       LVL=0
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100336CH   BLOCK     CODE     ---       LVL=0
+      0100336CH   LINE      ---      ---       #83
+      01003371H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003371H   LINE      ---      ---       #85
+      0100337BH   LINE      ---      ---       #87
+      0100337BH   LINE      ---      ---       #89
+      0100337BH   LINE      ---      ---       #90
+      02004EEBH   SYMBOL    XDATA    VOID      temp
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000AB3H   BLOCK     CODE     ---       LVL=0
+      01000AB3H   LINE      ---      ---       #92
+      01000AB8H   LINE      ---      ---       #93
+      01000AB8H   LINE      ---      ---       #94
+      01000AFEH   LINE      ---      ---       #95
+      01000AFEH   LINE      ---      ---       #96
+      01000AFEH   LINE      ---      ---       #100
+      01000AFEH   LINE      ---      ---       #101
+      01000B00H   LINE      ---      ---       #102
+      01000B03H   LINE      ---      ---       #103
+      01000B14H   LINE      ---      ---       #104
+      01000B18H   LINE      ---      ---       #105
+      01000B29H   LINE      ---      ---       #106
+      01000B2DH   LINE      ---      ---       #107
+      01000B3EH   LINE      ---      ---       #108
+      01000B42H   LINE      ---      ---       #109
+      01000B53H   LINE      ---      ---       #110
+      01000B5FH   LINE      ---      ---       #111
+      01000B5FH   LINE      ---      ---       #112
+      01000B69H   LINE      ---      ---       #113
+      01000B73H   LINE      ---      ---       #114
+      01000B79H   LINE      ---      ---       #115
+      01000B79H   LINE      ---      ---       #117
+      01000B7CH   LINE      ---      ---       #118
+      01000B7CH   LINE      ---      ---       #119
+      01000B7CH   LINE      ---      ---       #120
+      01000B7FH   LINE      ---      ---       #121
+      01000B7FH   LINE      ---      ---       #124
+      01000B7FH   LINE      ---      ---       #125
+      01000B7FH   LINE      ---      ---       #126
+      01000B92H   LINE      ---      ---       #127
+      01000B92H   LINE      ---      ---       #128
+      01000BA8H   LINE      ---      ---       #129
+      01000BACH   LINE      ---      ---       #130
+      01000BB2H   LINE      ---      ---       #131
+      01000BC3H   LINE      ---      ---       #132
+      01000BC9H   LINE      ---      ---       #133
+      01000BC9H   LINE      ---      ---       #134
+      01000BC9H   LINE      ---      ---       #135
+      01000BC9H   LINE      ---      ---       #136
+      01000BD1H   LINE      ---      ---       #137
+      01000BD1H   LINE      ---      ---       #140
+      01000BD1H   LINE      ---      ---       #141
+      01000BD1H   LINE      ---      ---       #142
+      01000BD7H   LINE      ---      ---       #143
+      01000BDAH   LINE      ---      ---       #144
+      01000BDCH   LINE      ---      ---       #145
+      01000BE2H   LINE      ---      ---       #146
+      01000BE8H   LINE      ---      ---       #147
+      01000BEDH   LINE      ---      ---       #148
+      01000BF1H   LINE      ---      ---       #149
+      01000BF7H   LINE      ---      ---       #150
+      01000BFBH   LINE      ---      ---       #152
+      01000C02H   LINE      ---      ---       #153
+      01000C02H   LINE      ---      ---       #154
+      01000C08H   LINE      ---      ---       #155
+      01000C0EH   LINE      ---      ---       #156
+      01000C0FH   LINE      ---      ---       #158
+      01000C15H   LINE      ---      ---       #159
+      01000C16H   LINE      ---      ---       #161
+      01000C16H   LINE      ---      ---       #162
+      01000C1BH   LINE      ---      ---       #163
+      01000C1DH   LINE      ---      ---       #164
+      01000C23H   LINE      ---      ---       #165
+      01000C28H   LINE      ---      ---       #167
+      01000C2EH   LINE      ---      ---       #168
+      01000C2EH   LINE      ---      ---       #169
+      01000C30H   LINE      ---      ---       #170
+      01000C37H   LINE      ---      ---       #171
+      01000C37H   LINE      ---      ---       #172
+      01000C37H   LINE      ---      ---       #174
+      01000C3EH   LINE      ---      ---       #175
+      01000C3EH   LINE      ---      ---       #176
+      01000C40H   LINE      ---      ---       #177
+      01000C42H   LINE      ---      ---       #178
+      01000C42H   LINE      ---      ---       #179
+      01000C42H   LINE      ---      ---       #180
+      01000C4AH   LINE      ---      ---       #181
+      01000C4AH   LINE      ---      ---       #182
+      01000C52H   LINE      ---      ---       #183
+      01000C52H   LINE      ---      ---       #184
+      01000C52H   LINE      ---      ---       #189
+      01000C52H   LINE      ---      ---       #190
+      01000C58H   LINE      ---      ---       #191
+      01000C5CH   LINE      ---      ---       #192
+      01000C61H   LINE      ---      ---       #193
+      01000C63H   LINE      ---      ---       #194
+      01000C6DH   LINE      ---      ---       #195
+      01000C6DH   LINE      ---      ---       #196
+      01000C73H   LINE      ---      ---       #197
+      01000C73H   LINE      ---      ---       #198
+      01000C74H   LINE      ---      ---       #199
+      01000C74H   LINE      ---      ---       #200
+      01000C7AH   LINE      ---      ---       #201
+      01000C7DH   LINE      ---      ---       #202
+      01000C81H   LINE      ---      ---       #203
+      01000C85H   LINE      ---      ---       #204
+      01000C8CH   LINE      ---      ---       #205
+      01000C90H   LINE      ---      ---       #206
+      01000C92H   LINE      ---      ---       #207
+      01000C97H   LINE      ---      ---       #208
+      01000C99H   LINE      ---      ---       #209
+      01000C9EH   LINE      ---      ---       #210
+      01000CA2H   LINE      ---      ---       #211
+      01000CA8H   LINE      ---      ---       #212
+      01000CADH   LINE      ---      ---       #214
+      01000CB3H   LINE      ---      ---       #215
+      01000CB7H   LINE      ---      ---       #216
+      01000CBAH   LINE      ---      ---       #217
+      01000CC2H   LINE      ---      ---       #218
+      01000CC8H   LINE      ---      ---       #219
+      01000CC9H   LINE      ---      ---       #220
+      01000CC9H   LINE      ---      ---       #221
+      01000CCDH   LINE      ---      ---       #222
+      01000CD1H   LINE      ---      ---       #223
+      01000CD1H   LINE      ---      ---       #224
+      01000CD1H   LINE      ---      ---       #225
+      01000CD6H   LINE      ---      ---       #226
+      01000CDBH   LINE      ---      ---       #227
+      01000CE0H   LINE      ---      ---       #228
+      01000CE8H   LINE      ---      ---       #229
+      01000CE8H   LINE      ---      ---       #230
+      01000CEEH   LINE      ---      ---       #231
+      01000CF4H   LINE      ---      ---       #232
+      01000CF7H   LINE      ---      ---       #234
+      01000CF7H   LINE      ---      ---       #235
+      01000CFCH   LINE      ---      ---       #236
+      01000D02H   LINE      ---      ---       #237
+      01000D07H   LINE      ---      ---       #238
+      01000D08H   LINE      ---      ---       #239
+      01000D08H   LINE      ---      ---       #240
+      01000D08H   LINE      ---      ---       #241
+      01000D0FH   LINE      ---      ---       #242
+      01000D0FH   LINE      ---      ---       #243
+      01000D14H   LINE      ---      ---       #244
+      01000D17H   LINE      ---      ---       #246
+      01000D17H   LINE      ---      ---       #247
+      01000D17H   LINE      ---      ---       #248
+      01000D1FH   LINE      ---      ---       #249
+      01000D24H   LINE      ---      ---       #250
+      01000D26H   LINE      ---      ---       #251
+      01000D2BH   LINE      ---      ---       #252
+      01000D30H   LINE      ---      ---       #253
+      01000D38H   LINE      ---      ---       #254
+      01000D38H   LINE      ---      ---       #255
+      01000D47H   LINE      ---      ---       #256
+      01000D47H   LINE      ---      ---       #257
+      01000D5DH   LINE      ---      ---       #258
+      01000D61H   LINE      ---      ---       #259
+      01000D67H   LINE      ---      ---       #260
+      01000D78H   LINE      ---      ---       #261
+      01000D7EH   LINE      ---      ---       #262
+      01000D7EH   LINE      ---      ---       #263
+      01000D83H   LINE      ---      ---       #264
+      01000D83H   LINE      ---      ---       #266
+      01000D8AH   LINE      ---      ---       #267
+      01000D8AH   LINE      ---      ---       #268
+      01000D8CH   LINE      ---      ---       #269
+      01000D8EH   LINE      ---      ---       #270
+      01000D8EH   LINE      ---      ---       #271
+      01000D8EH   LINE      ---      ---       #273
+      01000D95H   LINE      ---      ---       #274
+      01000D95H   LINE      ---      ---       #275
+      01000D97H   LINE      ---      ---       #276
+      01000D97H   LINE      ---      ---       #277
+      01000D97H   LINE      ---      ---       #279
+      01000D9DH   LINE      ---      ---       #280
+      01000D9DH   LINE      ---      ---       #281
+      01000DA5H   LINE      ---      ---       #282
+      01000DA5H   LINE      ---      ---       #283
+      01000DA5H   LINE      ---      ---       #285
+      01000DAFH   LINE      ---      ---       #286
+      01000DAFH   LINE      ---      ---       #288
+      01000DAFH   LINE      ---      ---       #291
+      01000DB9H   LINE      ---      ---       #292
+      01000DB9H   LINE      ---      ---       #293
+      01000DB9H   LINE      ---      ---       #294
+      01000DB9H   LINE      ---      ---       #296
+      01000DC1H   LINE      ---      ---       #297
+      01000DC1H   LINE      ---      ---       #298
+      01000DC5H   LINE      ---      ---       #299
+      01000DC7H   LINE      ---      ---       #301
+      01000DC7H   LINE      ---      ---       #302
+      01000DC9H   LINE      ---      ---       #303
+      01000DC9H   LINE      ---      ---       #304
+      01000DD0H   LINE      ---      ---       #305
+      01000DD1H   LINE      ---      ---       #308
+      01000DD1H   LINE      ---      ---       #309
+      01000DD7H   LINE      ---      ---       #310
+      01000DDBH   LINE      ---      ---       #311
+      01000DDEH   LINE      ---      ---       #312
+      01000DE0H   LINE      ---      ---       #313
+      01000DE4H   LINE      ---      ---       #314
+      01000DE8H   LINE      ---      ---       #315
+      01000DEEH   LINE      ---      ---       #316
+      01000DF0H   LINE      ---      ---       #317
+      01000DF5H   LINE      ---      ---       #318
+      01000DFBH   LINE      ---      ---       #319
+      01000DFCH   LINE      ---      ---       #320
+      01000DFCH   LINE      ---      ---       #321
+      01000E02H   LINE      ---      ---       #322
+      01000E05H   LINE      ---      ---       #323
+      01000E07H   LINE      ---      ---       #324
+      01000E0CH   LINE      ---      ---       #325
+      01000E11H   LINE      ---      ---       #326
+      01000E19H   LINE      ---      ---       #327
+      01000E1FH   LINE      ---      ---       #328
+      01000E20H   LINE      ---      ---       #329
+      01000E20H   LINE      ---      ---       #330
+      01000E2BH   LINE      ---      ---       #331
+      01000E33H   LINE      ---      ---       #332
+      01000E39H   LINE      ---      ---       #333
+      01000E3AH   LINE      ---      ---       #335
+      01000E3AH   LINE      ---      ---       #336
+      01000E44H   LINE      ---      ---       #337
+      01000E49H   LINE      ---      ---       #338
+      01000E4EH   LINE      ---      ---       #339
+      01000E53H   LINE      ---      ---       #340
+      01000E58H   LINE      ---      ---       #341
+      01000E59H   LINE      ---      ---       #343
+      01000E59H   LINE      ---      ---       #344
+      01000E61H   LINE      ---      ---       #345
+      01000E66H   LINE      ---      ---       #346
+      01000E68H   LINE      ---      ---       #347
+      01000E6DH   LINE      ---      ---       #349
+      01000E72H   LINE      ---      ---       #350
+      01000E72H   LINE      ---      ---       #351
+      01000E74H   LINE      ---      ---       #352
+      01000E76H   LINE      ---      ---       #353
+      01000E76H   LINE      ---      ---       #354
+      01000E76H   LINE      ---      ---       #356
+      01000E7DH   LINE      ---      ---       #357
+      01000E7DH   LINE      ---      ---       #358
+      01000E7FH   LINE      ---      ---       #359
+      01000E7FH   LINE      ---      ---       #360
+      01000E7FH   LINE      ---      ---       #363
+      01000E85H   LINE      ---      ---       #364
+      01000E85H   LINE      ---      ---       #365
+      01000E8DH   LINE      ---      ---       #366
+      01000E8DH   LINE      ---      ---       #367
+      01000E8DH   LINE      ---      ---       #369
+      01000E95H   LINE      ---      ---       #370
+      01000E95H   LINE      ---      ---       #372
+      01000E97H   LINE      ---      ---       #373
+      01000E99H   LINE      ---      ---       #375
+      01000E99H   LINE      ---      ---       #376
+      01000E9FH   LINE      ---      ---       #377
+      01000EA3H   LINE      ---      ---       #379
+      01000EAAH   LINE      ---      ---       #380
+      01000EAAH   LINE      ---      ---       #381
+      01000EB1H   LINE      ---      ---       #382
+      01000EB1H   LINE      ---      ---       #383
+      01000EB1H   LINE      ---      ---       #384
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000EC4H   BLOCK     CODE     ---       LVL=0
+      01000EC4H   LINE      ---      ---       #387
+      01000EC4H   LINE      ---      ---       #388
+      01000EC4H   LINE      ---      ---       #389
+      01000ECEH   LINE      ---      ---       #391
+      01000ED4H   LINE      ---      ---       #392
+      01000ED4H   LINE      ---      ---       #393
+      01000EDCH   LINE      ---      ---       #394
+      01000EDCH   LINE      ---      ---       #395
+      01000EE3H   LINE      ---      ---       #396
+      01000EE9H   LINE      ---      ---       #397
+      01000EF0H   LINE      ---      ---       #398
+      01000EF6H   LINE      ---      ---       #399
+      01000EFEH   LINE      ---      ---       #400
+      01000EFEH   LINE      ---      ---       #401
+      01000F02H   LINE      ---      ---       #402
+      01000F06H   LINE      ---      ---       #403
+      01000F06H   LINE      ---      ---       #404
+      01000F08H   LINE      ---      ---       #406
+      01000F08H   LINE      ---      ---       #407
+      01000F0EH   LINE      ---      ---       #408
+      01000F14H   LINE      ---      ---       #409
+      01000F1AH   LINE      ---      ---       #410
+      01000F1AH   LINE      ---      ---       #411
+      01000F1CH   LINE      ---      ---       #412
+      01000F22H   LINE      ---      ---       #413
+      01000F22H   LINE      ---      ---       #414
+      01000F28H   LINE      ---      ---       #415
+      01000F2EH   LINE      ---      ---       #416
+      01000F32H   LINE      ---      ---       #417
+      01000F32H   LINE      ---      ---       #419
+      01000F32H   LINE      ---      ---       #421
+      01000F32H   LINE      ---      ---       #424
+      01000F38H   LINE      ---      ---       #425
+      01000F38H   LINE      ---      ---       #426
+      01000F3EH   LINE      ---      ---       #427
+      01000F3EH   LINE      ---      ---       #428
+      01000F40H   LINE      ---      ---       #429
+      01000F46H   LINE      ---      ---       #430
+      01000F4CH   LINE      ---      ---       #431
+      01000F52H   LINE      ---      ---       #432
+      01000F54H   LINE      ---      ---       #434
+      01000F5AH   LINE      ---      ---       #436
+      01000F60H   LINE      ---      ---       #437
+      01000F60H   LINE      ---      ---       #438
+      01000F62H   LINE      ---      ---       #439
+      01000F68H   LINE      ---      ---       #440
+      01000F6EH   LINE      ---      ---       #441
+      01000F74H   LINE      ---      ---       #442
+      01000F74H   LINE      ---      ---       #444
+      01000F7AH   LINE      ---      ---       #445
+      01000F7AH   LINE      ---      ---       #446
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100228FH   BLOCK     CODE     ---       LVL=0
+      0100228FH   LINE      ---      ---       #448
+      0100228FH   LINE      ---      ---       #449
+      0100228FH   LINE      ---      ---       #452
+      0100229EH   LINE      ---      ---       #454
+      0100229EH   LINE      ---      ---       #455
+      010022ACH   LINE      ---      ---       #456
+      010022ACH   LINE      ---      ---       #457
+      010022AFH   LINE      ---      ---       #458
+      010022B5H   LINE      ---      ---       #459
+      010022B5H   LINE      ---      ---       #460
+      010022B6H   LINE      ---      ---       #461
+      010022BDH   LINE      ---      ---       #462
+      010022BDH   LINE      ---      ---       #463
+      010022CBH   LINE      ---      ---       #464
+      010022CEH   LINE      ---      ---       #465
+      010022CEH   LINE      ---      ---       #466
+      010022D5H   LINE      ---      ---       #467
+      010022D5H   LINE      ---      ---       #468
+      010022E1H   LINE      ---      ---       #469
+      010022E1H   LINE      ---      ---       #470
+      010022E6H   LINE      ---      ---       #471
+      010022E9H   LINE      ---      ---       #472
+      010022E9H   LINE      ---      ---       #473
+      010022E9H   LINE      ---      ---       #475
+      010022E9H   LINE      ---      ---       #476
+      010022F5H   LINE      ---      ---       #477
+      010022F5H   LINE      ---      ---       #478
+      010022FBH   LINE      ---      ---       #479
+      010022FBH   LINE      ---      ---       #480
+      010022FDH   LINE      ---      ---       #481
+      01002302H   LINE      ---      ---       #482
+      01002302H   LINE      ---      ---       #483
+      01002305H   LINE      ---      ---       #484
+      01002305H   LINE      ---      ---       #485
+      01002305H   LINE      ---      ---       #486
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002182H   BLOCK     CODE     ---       LVL=0
+      01002182H   LINE      ---      ---       #489
+      01002182H   LINE      ---      ---       #490
+      01002182H   LINE      ---      ---       #492
+      01002188H   LINE      ---      ---       #493
+      01002188H   LINE      ---      ---       #494
+      0100218BH   LINE      ---      ---       #495
+      0100218EH   LINE      ---      ---       #496
+      0100218EH   LINE      ---      ---       #497
+      0100219CH   LINE      ---      ---       #505
+      0100219CH   LINE      ---      ---       #506
+      010021A1H   LINE      ---      ---       #507
+      010021A7H   LINE      ---      ---       #508
+      010021ACH   LINE      ---      ---       #512
+      010021AEH   LINE      ---      ---       #513
+      010021B3H   LINE      ---      ---       #518
+      010021B8H   LINE      ---      ---       #519
+      010021B8H   LINE      ---      ---       #520
+      010021B8H   LINE      ---      ---       #521
+      010021B8H   LINE      ---      ---       #523
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002241H   BLOCK     CODE     ---       LVL=0
+      01002241H   LINE      ---      ---       #526
+      01002241H   LINE      ---      ---       #527
+      01002241H   LINE      ---      ---       #529
+      01002247H   LINE      ---      ---       #530
+      01002247H   LINE      ---      ---       #531
+      0100224EH   LINE      ---      ---       #532
+      01002254H   LINE      ---      ---       #533
+      01002257H   LINE      ---      ---       #534
+      01002257H   LINE      ---      ---       #535
+      0100225FH   LINE      ---      ---       #536
+      01002263H   LINE      ---      ---       #538
+      01002268H   LINE      ---      ---       #539
+      0100226BH   LINE      ---      ---       #540
+      0100226BH   LINE      ---      ---       #541
+      0100226BH   LINE      ---      ---       #543
+      01002271H   LINE      ---      ---       #544
+      01002271H   LINE      ---      ---       #545
+      01002278H   LINE      ---      ---       #546
+      0100227EH   LINE      ---      ---       #547
+      01002281H   LINE      ---      ---       #548
+      01002281H   LINE      ---      ---       #549
+      01002286H   LINE      ---      ---       #550
+      0100228BH   LINE      ---      ---       #551
+      0100228EH   LINE      ---      ---       #552
+      0100228EH   LINE      ---      ---       #553
+      0100228EH   LINE      ---      ---       #554
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010018F6H   BLOCK     CODE     ---       LVL=0
+      010018F6H   LINE      ---      ---       #556
+      010018F6H   LINE      ---      ---       #557
+      010018F6H   LINE      ---      ---       #560
+      010018FDH   LINE      ---      ---       #561
+      010018FDH   LINE      ---      ---       #562
+      01001904H   LINE      ---      ---       #563
+      01001907H   LINE      ---      ---       #564
+      0100190EH   LINE      ---      ---       #565
+      0100190EH   LINE      ---      ---       #566
+      01001913H   LINE      ---      ---       #567
+      01001913H   LINE      ---      ---       #568
+      01001915H   LINE      ---      ---       #570
+      0100191AH   LINE      ---      ---       #573
+      01001921H   LINE      ---      ---       #574
+      01001921H   LINE      ---      ---       #575
+      0100192AH   LINE      ---      ---       #576
+      0100192DH   LINE      ---      ---       #577
+      01001935H   LINE      ---      ---       #578
+      01001935H   LINE      ---      ---       #579
+      0100193BH   LINE      ---      ---       #580
+      01001941H   LINE      ---      ---       #581
+      01001941H   LINE      ---      ---       #582
+      01001946H   LINE      ---      ---       #583
+      01001948H   LINE      ---      ---       #584
+      0100194FH   LINE      ---      ---       #585
+      0100194FH   LINE      ---      ---       #586
+      01001955H   LINE      ---      ---       #587
+      0100195AH   LINE      ---      ---       #588
+      0100195DH   LINE      ---      ---       #589
+      0100195DH   LINE      ---      ---       #590
+      0100195DH   LINE      ---      ---       #591
+      0100195FH   LINE      ---      ---       #593
+      01001964H   LINE      ---      ---       #595
+      0100196BH   LINE      ---      ---       #596
+      0100196BH   LINE      ---      ---       #597
+      01001971H   LINE      ---      ---       #598
+      0100197AH   LINE      ---      ---       #599
+      0100197DH   LINE      ---      ---       #600
+      01001984H   LINE      ---      ---       #601
+      01001984H   LINE      ---      ---       #602
+      0100198EH   LINE      ---      ---       #603
+      0100198EH   LINE      ---      ---       #604
+      01001990H   LINE      ---      ---       #605
+      01001995H   LINE      ---      ---       #606
+      0100199AH   LINE      ---      ---       #607
+      0100199AH   LINE      ---      ---       #608
+      0100199AH   LINE      ---      ---       #609
+      0100199CH   LINE      ---      ---       #611
+      010019A1H   LINE      ---      ---       #613
+      010019A8H   LINE      ---      ---       #614
+      010019A8H   LINE      ---      ---       #615
+      010019AEH   LINE      ---      ---       #616
+      010019B7H   LINE      ---      ---       #617
+      010019BAH   LINE      ---      ---       #618
+      010019C2H   LINE      ---      ---       #619
+      010019C2H   LINE      ---      ---       #621
+      010019C8H   LINE      ---      ---       #622
+      010019CDH   LINE      ---      ---       #623
+      010019D2H   LINE      ---      ---       #624
+      010019D5H   LINE      ---      ---       #625
+      010019DAH   LINE      ---      ---       #626
+      010019DFH   LINE      ---      ---       #627
+      010019E7H   LINE      ---      ---       #628
+      010019EFH   LINE      ---      ---       #629
+      010019EFH   LINE      ---      ---       #630
+      010019F0H   LINE      ---      ---       #632
+      010019F0H   LINE      ---      ---       #633
+      010019F6H   LINE      ---      ---       #634
+      010019F6H   LINE      ---      ---       #635
+      010019F8H   LINE      ---      ---       #637
+      01001A04H   LINE      ---      ---       #638
+      01001A04H   LINE      ---      ---       #639
+      01001A0AH   LINE      ---      ---       #640
+      01001A0DH   LINE      ---      ---       #641
+      01001A15H   LINE      ---      ---       #642
+      01001A1BH   LINE      ---      ---       #644
+      01001A1DH   LINE      ---      ---       #645
+      01001A1FH   LINE      ---      ---       #646
+      01001A21H   LINE      ---      ---       #647
+      01001A21H   LINE      ---      ---       #648
+      01001A21H   LINE      ---      ---       #649
+      01001A26H   LINE      ---      ---       #650
+      01001A26H   LINE      ---      ---       #653
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010021B9H   BLOCK     CODE     ---       LVL=0
+      010021B9H   LINE      ---      ---       #657
+      010021B9H   LINE      ---      ---       #658
+      010021B9H   LINE      ---      ---       #659
+      010021BCH   LINE      ---      ---       #661
+      010021CAH   LINE      ---      ---       #663
+      010021CCH   LINE      ---      ---       #664
+      010021CEH   LINE      ---      ---       #665
+      010021D1H   LINE      ---      ---       #666
+      010021D3H   LINE      ---      ---       #667
+      010021D5H   LINE      ---      ---       #670
+      010021E4H   LINE      ---      ---       #672
+      010021E4H   LINE      ---      ---       #673
+      010021EBH   LINE      ---      ---       #674
+      010021EBH   LINE      ---      ---       #677
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010031ECH   BLOCK     CODE     ---       LVL=0
+      010031ECH   LINE      ---      ---       #680
+      010031ECH   LINE      ---      ---       #681
+      010031ECH   LINE      ---      ---       #683
+      010031F2H   LINE      ---      ---       #684
+      010031F2H   LINE      ---      ---       #685
+      010031F4H   LINE      ---      ---       #686
+      010031F4H   LINE      ---      ---       #688
+      010031FAH   LINE      ---      ---       #689
+      010031FCH   LINE      ---      ---       #691
+      01003202H   LINE      ---      ---       #692
+      01003202H   LINE      ---      ---       #693
+      01003204H   LINE      ---      ---       #694
+      01003206H   LINE      ---      ---       #695
+      0100320CH   LINE      ---      ---       #696
+      0100320CH   LINE      ---      ---       #697
+      0100320FH   LINE      ---      ---       #698
+      0100320FH   LINE      ---      ---       #699
+      01003211H   LINE      ---      ---       #701
+      01003217H   LINE      ---      ---       #702
+      01003217H   LINE      ---      ---       #703
+      0100321DH   LINE      ---      ---       #704
+      0100321DH   LINE      ---      ---       #705
+      0100321FH   LINE      ---      ---       #706
+      01003223H   LINE      ---      ---       #707
+      01003223H   LINE      ---      ---       #708
+      0100322AH   LINE      ---      ---       #709
+      0100322CH   LINE      ---      ---       #711
+      01003233H   LINE      ---      ---       #712
+      01003239H   LINE      ---      ---       #713
+      0100323CH   LINE      ---      ---       #714
+      0100323CH   LINE      ---      ---       #715
+      0100323CH   LINE      ---      ---       #718
+      01003242H   LINE      ---      ---       #719
+      01003242H   LINE      ---      ---       #720
+      0100324AH   LINE      ---      ---       #721
+      0100324AH   LINE      ---      ---       #722
+      0100324BH   LINE      ---      ---       #724
+      01003251H   LINE      ---      ---       #725
+      01003251H   LINE      ---      ---       #726
+      0100325CH   LINE      ---      ---       #727
+      0100325EH   LINE      ---      ---       #728
+      01003264H   LINE      ---      ---       #729
+      01003264H   LINE      ---      ---       #731
+      0100326FH   LINE      ---      ---       #732
+      0100326FH   LINE      ---      ---       #733
+      0100326FH   LINE      ---      ---       #734
+      0100326FH   LINE      ---      ---       #737
+      01003275H   LINE      ---      ---       #738
+      01003275H   LINE      ---      ---       #739
+      01003278H   LINE      ---      ---       #740
+      0100327BH   LINE      ---      ---       #741
+      0100327BH   LINE      ---      ---       #742
+      0100327EH   LINE      ---      ---       #743
+      0100327EH   LINE      ---      ---       #744
+      0100327EH   LINE      ---      ---       #746
+      01003284H   LINE      ---      ---       #747
+      01003287H   LINE      ---      ---       #748
+      0100328AH   LINE      ---      ---       #750
+      01003291H   LINE      ---      ---       #751
+      01003291H   LINE      ---      ---       #752
+      01003297H   LINE      ---      ---       #753
+      01003298H   LINE      ---      ---       #754
+      0100329FH   LINE      ---      ---       #755
+      0100329FH   LINE      ---      ---       #756
+      010032A5H   LINE      ---      ---       #757
+      010032A5H   LINE      ---      ---       #758
+      010032A5H   LINE      ---      ---       #759
+      010032A5H   LINE      ---      ---       #760
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F57H   BLOCK     CODE     ---       LVL=0
+      01001F57H   LINE      ---      ---       #774
+      01001F57H   LINE      ---      ---       #775
+      01001F57H   LINE      ---      ---       #776
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001B4FH   BLOCK     CODE     ---       LVL=0
+      01001B4FH   LINE      ---      ---       #781
+      01001B4FH   LINE      ---      ---       #782
+      01001B4FH   LINE      ---      ---       #783
+      01001B51H   LINE      ---      ---       #784
+      01001B51H   LINE      ---      ---       #785
+      01001B53H   LINE      ---      ---       #786
+      01001B56H   LINE      ---      ---       #787
+      01001B58H   LINE      ---      ---       #788
+      01001B5BH   LINE      ---      ---       #790
+      01001B66H   LINE      ---      ---       #791
+      01001B66H   LINE      ---      ---       #792
+      01001B68H   LINE      ---      ---       #794
+      01001B6BH   LINE      ---      ---       #795
+      01001B6DH   LINE      ---      ---       #796
+      01001B6FH   LINE      ---      ---       #797
+      01001B6FH   LINE      ---      ---       #799
+      01001B6FH   LINE      ---      ---       #800
+      01001B99H   LINE      ---      ---       #802
+      01001B99H   LINE      ---      ---       #803
+      01001B9BH   LINE      ---      ---       #804
+      01001B9DH   LINE      ---      ---       #805
+      01001B9DH   LINE      ---      ---       #807
+      01001B9DH   LINE      ---      ---       #808
+      01001B9FH   LINE      ---      ---       #809
+      01001BA1H   LINE      ---      ---       #810
+      01001BA3H   LINE      ---      ---       #811
+      01001BA3H   LINE      ---      ---       #812
+      01001BA3H   LINE      ---      ---       #813
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       ADC
+      010021ECH   PUBLIC    CODE     ---       YC_adc_check_timer500ms
+      01002306H   PUBLIC    CODE     ---       YC_adc_check
+      0100337CH   PUBLIC    CODE     ---       YC_adc_init
+
+      0100337CH   BLOCK     CODE     ---       LVL=0
+      0100337CH   LINE      ---      ---       #3
+      0100337CH   LINE      ---      ---       #4
+      0100337CH   BLOCK     CODE     NEAR LAB  LVL=1
+      0100337CH   LINE      ---      ---       #9
+      01003382H   LINE      ---      ---       #10
+      01003388H   LINE      ---      ---       #11
+      0100338BH   LINE      ---      ---       #12
+      0100338CH   LINE      ---      ---       #13
+      0100338CH   LINE      ---      ---       #14
+      0100339FH   LINE      ---      ---       #15
+      010033A4H   LINE      ---      ---       #18
+      010033AEH   LINE      ---      ---       #19
+      010033AEH   LINE      ---      ---       #20
+      010033FCH   LINE      ---      ---       #21
+      0100344AH   LINE      ---      ---       #22
+      0100344BH   LINE      ---      ---       #23
+      01003455H   LINE      ---      ---       #24
+      01003455H   LINE      ---      ---       #26
+      01003455H   LINE      ---      ---       #28
+      01003455H   LINE      ---      ---       #29
+      010034A3H   LINE      ---      ---       #30
+      010034F1H   LINE      ---      ---       #31
+      010034F1H   LINE      ---      ---       #33
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01002306H   BLOCK     CODE     ---       LVL=0
+      01002306H   LINE      ---      ---       #35
+      01002306H   LINE      ---      ---       #36
+      01002306H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002306H   LINE      ---      ---       #38
+      01002310H   LINE      ---      ---       #45
+      01002330H   LINE      ---      ---       #46
+      01002339H   LINE      ---      ---       #47
+      0100233BH   LINE      ---      ---       #48
+      01002340H   LINE      ---      ---       #49
+      01002340H   LINE      ---      ---       #50
+      01002377H   LINE      ---      ---       #51
+      01002381H   LINE      ---      ---       #52
+      0100239EH   LINE      ---      ---       #54
+      010023B3H   LINE      ---      ---       #55
+      010023B3H   LINE      ---      ---       #56
+      010023B9H   LINE      ---      ---       #57
+      010023BAH   LINE      ---      ---       #59
+      010023BAH   LINE      ---      ---       #60
+      010023D9H   LINE      ---      ---       #61
+      010023D9H   LINE      ---      ---       #62
+      010023DFH   LINE      ---      ---       #63
+      010023E0H   LINE      ---      ---       #65
+      010023E0H   LINE      ---      ---       #66
+      010023E5H   LINE      ---      ---       #67
+      010023E5H   LINE      ---      ---       #68
+      010023E5H   LINE      ---      ---       #70
+      02004EB3H   SYMBOL    XDATA    VOID      i
+      02004EB4H   SYMBOL    XDATA    VOID      batValue
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010021ECH   BLOCK     CODE     ---       LVL=0
+      010021ECH   LINE      ---      ---       #73
+      010021ECH   LINE      ---      ---       #74
+      010021ECH   LINE      ---      ---       #76
+      010021F2H   LINE      ---      ---       #77
+      010021F2H   LINE      ---      ---       #78
+      010021F4H   LINE      ---      ---       #79
+      010021F7H   LINE      ---      ---       #80
+      010021F7H   LINE      ---      ---       #81
+      010021FAH   LINE      ---      ---       #82
+      010021FCH   LINE      ---      ---       #83
+      010021FCH   LINE      ---      ---       #84
+      010021FCH   LINE      ---      ---       #85
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       RAM
+      01001FAFH   PUBLIC    CODE     ---       main
+
+      01001FAFH   BLOCK     CODE     ---       LVL=0
+      01001FAFH   LINE      ---      ---       #5
+      01001FAFH   LINE      ---      ---       #6
+      01001FAFH   LINE      ---      ---       #7
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      ---         MODULE    ---      ---       IPC
+      02004BA5H   PUBLIC    XDATA    WORD      bttimer
+      02004C8DH   PUBLIC    XDATA    BYTE      btstimer
+      02004C5EH   PUBLIC    XDATA    WORD      c51timer
+      02000550H   PUBLIC    XDATA    ---       ipcPin
+      02004C8EH   PUBLIC    XDATA    BYTE      c51stimer
+      02000BE7H   PUBLIC    XDATA    ---       ipcSendBuff
+      02000B7FH   PUBLIC    XDATA    BYTE      lpm_flag
+      02000C4BH   PUBLIC    XDATA    ---       ipcReadBuff
+      0200054FH   PUBLIC    XDATA    BYTE      ipcPinlen
+      02000B7EH   PUBLIC    XDATA    BYTE      current_task
+      01001CFEH   PUBLIC    CODE     ---       IPC_DealSingleStep
+      010017B3H   PUBLIC    CODE     ---       IPC_IsTxBuffEmpty
+      01001FB1H   PUBLIC    CODE     ---       IPC_AbandonLpm
+      01001CF0H   PUBLIC    CODE     ---       IPC_WaitLpm
+      01001F5DH   PUBLIC    CODE     ---       _IPC_Initialize
+      0100354CH   PUBLIC    CODE     ---       IPC_GetBBDIsconnectReason
+      01001797H   PUBLIC    CODE     ---       _IPC_TxBleData
+      010017ABH   PUBLIC    CODE     ---       _IPC_TxSppData
+      0100176BH   PUBLIC    CODE     ---       _IPC_Tx24GData
+      0100179FH   PUBLIC    CODE     ---       _IPC_TxBREDRHidData
+      01001771H   PUBLIC    CODE     ---       _IPC_TxData
+      0100085CH   PUBLIC    CODE     ---       _IPC_TxControlCmd
+
+      010034F2H   BLOCK     CODE     ---       LVL=0
+      010034F2H   LINE      ---      ---       #44
+      01003502H   LINE      ---      ---       #45
+      01003502H   LINE      ---      ---       #46
+      0100354BH   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F07H   BLOCK     CODE     ---       LVL=0
+      01001F07H   LINE      ---      ---       #49
+      01001F11H   LINE      ---      ---       #50
+      01001F11H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001F11H   LINE      ---      ---       #51
+      01001F19H   LINE      ---      ---       #52
+      01001F1FH   LINE      ---      ---       #53
+      01001F3EH   LINE      ---      ---       #54
+      01001F48H   LINE      ---      ---       #55
+      01001F4CH   LINE      ---      ---       #56
+      01001F4CH   LINE      ---      ---       #57
+      01001F4EH   LINE      ---      ---       #58
+      01001F56H   LINE      ---      ---       #59
+      00000006H   SYMBOL    DATA     VOID      src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000884H   BLOCK     CODE     ---       LVL=0
+      01000884H   LINE      ---      ---       #61
+      01000892H   LINE      ---      ---       #62
+      01000892H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000892H   LINE      ---      ---       #63
+      010008A1H   LINE      ---      ---       #64
+      010008C0H   LINE      ---      ---       #65
+      010008CAH   LINE      ---      ---       #66
+      010008EFH   LINE      ---      ---       #67
+      010008FDH   LINE      ---      ---       #68
+      01000907H   LINE      ---      ---       #69
+      01000907H   LINE      ---      ---       #70
+      01000909H   LINE      ---      ---       #71
+      01000918H   LINE      ---      ---       #72
+      02004EA1H   SYMBOL    XDATA    VOID      dest
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      0100085CH   BLOCK     CODE     ---       LVL=0
+      0100085CH   LINE      ---      ---       #74
+      01000861H   LINE      ---      ---       #75
+      01000861H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000861H   LINE      ---      ---       #76
+      01000874H   LINE      ---      ---       #79
+      0100087CH   LINE      ---      ---       #80
+      02004ECEH   SYMBOL    XDATA    VOID      cmdBuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001771H   BLOCK     CODE     ---       LVL=0
+      01001771H   LINE      ---      ---       #83
+      01001776H   LINE      ---      ---       #84
+      01001776H   LINE      ---      ---       #85
+      0100177CH   LINE      ---      ---       #86
+      01001787H   LINE      ---      ---       #87
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100179FH   BLOCK     CODE     ---       LVL=0
+      0100179FH   LINE      ---      ---       #90
+      0100179FH   LINE      ---      ---       #91
+      0100179FH   LINE      ---      ---       #92
+      010017A5H   LINE      ---      ---       #93
+      010017A8H   LINE      ---      ---       #94
+      010017AAH   LINE      ---      ---       #95
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100176BH   BLOCK     CODE     ---       LVL=0
+      0100176BH   LINE      ---      ---       #97
+      0100176BH   LINE      ---      ---       #98
+      0100176BH   LINE      ---      ---       #99
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010017ABH   BLOCK     CODE     ---       LVL=0
+      010017ABH   LINE      ---      ---       #103
+      010017ABH   LINE      ---      ---       #104
+      010017ABH   LINE      ---      ---       #105
+      010017B1H   LINE      ---      ---       #106
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001797H   BLOCK     CODE     ---       LVL=0
+      01001797H   LINE      ---      ---       #109
+      01001797H   LINE      ---      ---       #110
+      01001797H   LINE      ---      ---       #111
+      0100179DH   LINE      ---      ---       #112
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100354CH   BLOCK     CODE     ---       LVL=0
+      0100354CH   LINE      ---      ---       #115
+      0100354CH   LINE      ---      ---       #116
+      0100354CH   LINE      ---      ---       #117
+      01003551H   LINE      ---      ---       #118
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001F5DH   BLOCK     CODE     ---       LVL=0
+      01001F5DH   LINE      ---      ---       #120
+      01001F5DH   LINE      ---      ---       #121
+      01001F5DH   LINE      ---      ---       #122
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001CF0H   BLOCK     CODE     ---       LVL=0
+      01001CF0H   LINE      ---      ---       #125
+      01001CF0H   LINE      ---      ---       #126
+      01001CF0H   LINE      ---      ---       #127
+      01001CF5H   LINE      ---      ---       #128
+      01001CF9H   LINE      ---      ---       #129
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001FB1H   BLOCK     CODE     ---       LVL=0
+      01001FB1H   LINE      ---      ---       #132
+      01001FB1H   LINE      ---      ---       #133
+      01001FB1H   LINE      ---      ---       #134
+      01001FB7H   LINE      ---      ---       #135
+      01001FBCH   LINE      ---      ---       #136
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010017B3H   BLOCK     CODE     ---       LVL=0
+      010017B3H   LINE      ---      ---       #138
+      010017B3H   LINE      ---      ---       #139
+      010017B3H   LINE      ---      ---       #140
+      010017C7H   LINE      ---      ---       #141
+      010017C9H   LINE      ---      ---       #142
+      010017CAH   LINE      ---      ---       #143
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001CFEH   BLOCK     CODE     ---       LVL=0
+      01001CFEH   LINE      ---      ---       #146
+      01001CFEH   LINE      ---      ---       #147
+      01001CFEH   BLOCK     CODE     NEAR LAB  LVL=1
+      01001CFEH   LINE      ---      ---       #148
+      01001D10H   LINE      ---      ---       #149
+      01001D26H   LINE      ---      ---       #150
+      01001D26H   LINE      ---      ---       #151
+      01001D2EH   LINE      ---      ---       #152
+      01001D3FH   LINE      ---      ---       #153
+      01001D49H   LINE      ---      ---       #154
+      01001D68H   LINE      ---      ---       #155
+      01001D6AH   LINE      ---      ---       #156
+      01001D7CH   LINE      ---      ---       #157
+      01001D85H   LINE      ---      ---       #158
+      01001D9BH   LINE      ---      ---       #159
+      01001DD3H   LINE      ---      ---       #160
+      01001DD5H   LINE      ---      ---       #161
+      01001DE7H   LINE      ---      ---       #162
+      01001DF0H   LINE      ---      ---       #163
+      01001E06H   LINE      ---      ---       #164
+      01001E3EH   LINE      ---      ---       #165
+      01001E40H   LINE      ---      ---       #166
+      01001E52H   LINE      ---      ---       #167
+      01001E5BH   LINE      ---      ---       #168
+      01001E71H   LINE      ---      ---       #169
+      01001EA9H   LINE      ---      ---       #170
+      01001EABH   LINE      ---      ---       #171
+      01001EABH   LINE      ---      ---       #172
+      01001EADH   LINE      ---      ---       #173
+      01001EADH   LINE      ---      ---       #174
+      01001EADH   LINE      ---      ---       #175
+      01001EC1H   LINE      ---      ---       #176
+      01001ECFH   LINE      ---      ---       #178
+      01001ED2H   LINE      ---      ---       #180
+      01001EE1H   LINE      ---      ---       #181
+      01001EE3H   LINE      ---      ---       #182
+      01001EEDH   LINE      ---      ---       #183
+      01001EFBH   LINE      ---      ---       #185
+      01001EFEH   LINE      ---      ---       #187
+      01001F04H   LINE      ---      ---       #188
+      01001F06H   LINE      ---      ---       #190
+      01001EADH   SYMBOL    ---      ---       IPC_TIMERingleStep
+      02004EDAH   SYMBOL    XDATA    VOID      pbuff
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       UTILITIES
+      02004E8FH   PUBLIC    XDATA    BYTE      ?_compare_str?BYTE
+      010024F9H   PUBLIC    CODE     ---       _compare_str
+      01000F7BH   PUBLIC    CODE     ---       _Delay1ms
+      010024CCH   PUBLIC    CODE     ---       _xmemclear_ff
+      0100156DH   PUBLIC    CODE     ---       _xmemclear
+      02004E80H   PUBLIC    XDATA    BYTE      ?_dmemcpy?BYTE
+      010021FDH   PUBLIC    CODE     ---       _dmemcpy
+      02004EA3H   PUBLIC    XDATA    BYTE      ?_xmemcpy?BYTE
+      01001206H   PUBLIC    CODE     ---       _xmemcpy
+      01003552H   PUBLIC    CODE     ---       YC_Ice_break
+
+      01003552H   BLOCK     CODE     ---       LVL=0
+      01003552H   LINE      ---      ---       #3
+      01003552H   LINE      ---      ---       #4
+      01003552H   LINE      ---      ---       #5
+      01003558H   LINE      ---      ---       #7
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001206H   BLOCK     CODE     ---       LVL=0
+      01001206H   LINE      ---      ---       #9
+      01001217H   LINE      ---      ---       #10
+      01001217H   LINE      ---      ---       #11
+      01001221H   LINE      ---      ---       #12
+      01001248H   LINE      ---      ---       #14
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010021FDH   BLOCK     CODE     ---       LVL=0
+      010021FDH   LINE      ---      ---       #16
+      01002208H   LINE      ---      ---       #17
+      01002208H   LINE      ---      ---       #18
+      01002216H   LINE      ---      ---       #19
+      01002240H   LINE      ---      ---       #21
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100156DH   BLOCK     CODE     ---       LVL=0
+      0100156DH   LINE      ---      ---       #23
+      01001578H   LINE      ---      ---       #24
+      01001578H   LINE      ---      ---       #25
+      01001582H   LINE      ---      ---       #26
+      01001598H   LINE      ---      ---       #28
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      010024CCH   BLOCK     CODE     ---       LVL=0
+      010024CCH   LINE      ---      ---       #30
+      010024D7H   LINE      ---      ---       #31
+      010024D7H   LINE      ---      ---       #32
+      010024E1H   LINE      ---      ---       #33
+      010024F8H   LINE      ---      ---       #35
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000F7BH   BLOCK     CODE     ---       LVL=0
+      01000F7BH   LINE      ---      ---       #46
+      01000F7BH   LINE      ---      ---       #47
+      01000F7BH   BLOCK     CODE     NEAR LAB  LVL=1
+      01000F7BH   LINE      ---      ---       #49
+      01000F81H   LINE      ---      ---       #50
+      01000F8FH   LINE      ---      ---       #51
+      01000F92H   LINE      ---      ---       #52
+      00000004H   SYMBOL    DATA     VOID      j
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010024F9H   BLOCK     CODE     ---       LVL=0
+      010024F9H   LINE      ---      ---       #54
+      01002504H   LINE      ---      ---       #55
+      01002504H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002504H   LINE      ---      ---       #57
+      01002510H   LINE      ---      ---       #58
+      0100253AH   LINE      ---      ---       #59
+      0100253DH   LINE      ---      ---       #60
+      01002540H   LINE      ---      ---       #61
+      01002542H   LINE      ---      ---       #62
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       GPIO
+      020000A3H   PUBLIC    XDATA    ---       YC_GPIOWakeupL
+      020000A7H   PUBLIC    XDATA    ---       YC_GPIOWakeupH
+      01003598H   PUBLIC    CODE     ---       GPIO_fillpd
+      01000FCFH   PUBLIC    CODE     ---       _GPIO_FlipOutBit
+      01001C51H   PUBLIC    CODE     ---       _GPIO_SetWakeupByCurrentState
+      01003559H   PUBLIC    CODE     ---       _GPIO_ClearWakeup
+      00000020H.7 PUBLIC    BIT      BIT       ?_GPIO_SetWakeup?BIT
+      01001C64H   PUBLIC    CODE     ---       _GPIO_SetWakeup
+      00000020H.6 PUBLIC    BIT      BIT       ?_GPIO_SetOutput?BIT
+      0100101BH   PUBLIC    CODE     ---       _GPIO_SetOutput
+      00000020H.5 PUBLIC    BIT      BIT       ?_GPIO_SetInput?BIT
+      01001059H   PUBLIC    CODE     ---       _GPIO_SetInput
+      00000020H.4 PUBLIC    BIT      BIT       ?_GPIO_Setoe?BIT
+      01001048H   PUBLIC    CODE     ---       _GPIO_Setoe
+      00000020H.3 PUBLIC    BIT      BIT       ?_GPIO_SetPd?BIT
+      01001077H   PUBLIC    CODE     ---       _GPIO_SetPd
+      00000020H.2 PUBLIC    BIT      BIT       ?_GPIO_SetPu?BIT
+      01001037H   PUBLIC    CODE     ---       _GPIO_SetPu
+      00000020H.1 PUBLIC    BIT      BIT       ?_GPIO_Setout?BIT
+      01000EB2H   PUBLIC    CODE     ---       _GPIO_Setout
+      01001F6AH   PUBLIC    CODE     ---       _GPIO_GetInputStatus
+
+      01001088H   BLOCK     CODE     ---       LVL=0
+      01001088H   LINE      ---      ---       #9
+      01001093H   LINE      ---      ---       #10
+      01001093H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001093H   LINE      ---      ---       #11
+      01001095H   LINE      ---      ---       #12
+      01001096H   LINE      ---      ---       #14
+      0100109AH   LINE      ---      ---       #15
+      010010A1H   LINE      ---      ---       #17
+      010010A4H   LINE      ---      ---       #18
+      010010C6H   LINE      ---      ---       #19
+      010010C6H   LINE      ---      ---       #21
+      010010C6H   LINE      ---      ---       #22
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000005H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001F70H   BLOCK     CODE     ---       LVL=0
+      01001F70H   LINE      ---      ---       #26
+      01001F72H   LINE      ---      ---       #27
+      01001F72H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001F72H   LINE      ---      ---       #28
+      01001F77H   LINE      ---      ---       #29
+      01001F78H   LINE      ---      ---       #31
+      01001F7CH   LINE      ---      ---       #32
+      01001F83H   LINE      ---      ---       #33
+      01001FAEH   LINE      ---      ---       #35
+      02004EF8H   SYMBOL    XDATA    VOID      queue
+      00000006H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001F6AH   BLOCK     CODE     ---       LVL=0
+      01001F6AH   LINE      ---      ---       #37
+      01001F6AH   LINE      ---      ---       #38
+      01001F6AH   LINE      ---      ---       #39
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01000EB2H   BLOCK     CODE     ---       LVL=0
+      01000EB2H   LINE      ---      ---       #42
+      01000EB2H   LINE      ---      ---       #43
+      01000EB2H   LINE      ---      ---       #44
+      01000EB6H   LINE      ---      ---       #46
+      01000EC3H   LINE      ---      ---       #47
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001037H   BLOCK     CODE     ---       LVL=0
+      01001037H   LINE      ---      ---       #49
+      01001037H   LINE      ---      ---       #50
+      01001037H   LINE      ---      ---       #51
+      0100103BH   LINE      ---      ---       #53
+      01001047H   LINE      ---      ---       #54
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001077H   BLOCK     CODE     ---       LVL=0
+      01001077H   LINE      ---      ---       #56
+      01001077H   LINE      ---      ---       #57
+      01001077H   LINE      ---      ---       #58
+      0100107BH   LINE      ---      ---       #60
+      01001087H   LINE      ---      ---       #61
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001048H   BLOCK     CODE     ---       LVL=0
+      01001048H   LINE      ---      ---       #63
+      01001048H   LINE      ---      ---       #64
+      01001048H   LINE      ---      ---       #65
+      0100104CH   LINE      ---      ---       #67
+      01001058H   LINE      ---      ---       #68
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001059H   BLOCK     CODE     ---       LVL=0
+      01001059H   LINE      ---      ---       #70
+      0100105BH   LINE      ---      ---       #71
+      0100105BH   LINE      ---      ---       #72
+      0100105FH   LINE      ---      ---       #74
+      01001067H   LINE      ---      ---       #75
+      01001070H   LINE      ---      ---       #76
+      01001076H   LINE      ---      ---       #77
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      0100101BH   BLOCK     CODE     ---       LVL=0
+      0100101BH   LINE      ---      ---       #79
+      0100101DH   LINE      ---      ---       #80
+      0100101DH   LINE      ---      ---       #81
+      01001021H   LINE      ---      ---       #83
+      01001027H   LINE      ---      ---       #84
+      01001030H   LINE      ---      ---       #85
+      01001036H   LINE      ---      ---       #86
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001C64H   BLOCK     CODE     ---       LVL=0
+      01001C64H   LINE      ---      ---       #88
+      01001C64H   LINE      ---      ---       #89
+      01001C64H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C64H   LINE      ---      ---       #92
+      01001C6AH   LINE      ---      ---       #94
+      01001C6EH   LINE      ---      ---       #95
+      01001C75H   LINE      ---      ---       #96
+      01001C78H   LINE      ---      ---       #97
+      01001C99H   LINE      ---      ---       #98
+      01001CBAH   LINE      ---      ---       #99
+      01001CBBH   LINE      ---      ---       #101
+      01001CBBH   LINE      ---      ---       #102
+      01001CDDH   LINE      ---      ---       #103
+      01001CEFH   LINE      ---      ---       #104
+      01001CEFH   LINE      ---      ---       #105
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003559H   BLOCK     CODE     ---       LVL=0
+      01003559H   LINE      ---      ---       #107
+      01003559H   LINE      ---      ---       #108
+      01003559H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003559H   LINE      ---      ---       #111
+      0100355DH   LINE      ---      ---       #113
+      01003561H   LINE      ---      ---       #114
+      01003568H   LINE      ---      ---       #115
+      0100358AH   LINE      ---      ---       #116
+      01003597H   LINE      ---      ---       #117
+      00000006H   SYMBOL    DATA     VOID      queue
+      00000007H   SYMBOL    DATA     VOID      group
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01001C51H   BLOCK     CODE     ---       LVL=0
+      01001C51H   LINE      ---      ---       #119
+      01001C56H   LINE      ---      ---       #120
+      01001C56H   BLOCK     CODE     NEAR LAB  LVL=1
+      01001C56H   LINE      ---      ---       #121
+      01001C5AH   LINE      ---      ---       #122
+      00000021H.0 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01000FCFH   BLOCK     CODE     ---       LVL=0
+      01000FCFH   LINE      ---      ---       #125
+      01000FD4H   LINE      ---      ---       #126
+      01000FD4H   BLOCK     CODE     NEAR LAB  LVL=1
+      01000FD4H   LINE      ---      ---       #127
+      01000FDFH   LINE      ---      ---       #128
+      00000021H.1 SYMBOL    BIT      VOID      st
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      01003598H   BLOCK     CODE     ---       LVL=0
+      01003598H   LINE      ---      ---       #131
+      01003598H   LINE      ---      ---       #132
+      01003598H   BLOCK     CODE     NEAR LAB  LVL=1
+      01003598H   LINE      ---      ---       #134
+      0100359AH   LINE      ---      ---       #135
+      010035CBH   LINE      ---      ---       #136
+      00000007H   SYMBOL    DATA     VOID      i
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       IIC
+      01001A97H   PUBLIC    CODE     ---       _IIC_WriteBlock
+      010020E8H   PUBLIC    CODE     ---       _IIC_write
+      01002030H   PUBLIC    CODE     ---       _IIC_Read
+
+      010020E0H   BLOCK     CODE     ---       LVL=0
+      010020E0H   LINE      ---      ---       #11
+      010020E0H   LINE      ---      ---       #12
+      010020E0H   LINE      ---      ---       #13
+      010020E7H   LINE      ---      ---       #14
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01002030H   BLOCK     CODE     ---       LVL=0
+      01002030H   LINE      ---      ---       #16
+      01002041H   LINE      ---      ---       #17
+      01002041H   BLOCK     CODE     NEAR LAB  LVL=1
+      01002041H   LINE      ---      ---       #18
+      01002041H   LINE      ---      ---       #19
+      0100204AH   LINE      ---      ---       #20
+      01002050H   LINE      ---      ---       #21
+      01002056H   LINE      ---      ---       #22
+      0100205CH   LINE      ---      ---       #23
+      01002075H   LINE      ---      ---       #24
+      0100208AH   LINE      ---      ---       #25
+      010020A3H   LINE      ---      ---       #26
+      010020A9H   LINE      ---      ---       #27
+      010020B1H   LINE      ---      ---       #28
+      010020B8H   LINE      ---      ---       #29
+      010020B8H   LINE      ---      ---       #30
+      010020BFH   LINE      ---      ---       #31
+      010020C1H   LINE      ---      ---       #32
+      00000006H   SYMBOL    DATA     VOID      mem_src
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      010020E8H   BLOCK     CODE     ---       LVL=0
+      010020E8H   LINE      ---      ---       #35
+      01002103H   LINE      ---      ---       #36
+      01002103H   LINE      ---      ---       #37
+      01002124H   LINE      ---      ---       #38
+      0100212AH   LINE      ---      ---       #39
+      01002139H   LINE      ---      ---       #40
+      01002156H   LINE      ---      ---       #41
+      0100216DH   LINE      ---      ---       #42
+      01002174H   LINE      ---      ---       #43
+      01002179H   LINE      ---      ---       #44
+      01002180H   LINE      ---      ---       #45
+      ---         BLOCKEND  ---      ---       LVL=0
+
+      01001A97H   BLOCK     CODE     ---       LVL=0
+      01001A97H   LINE      ---      ---       #48
+      01001AAEH   LINE      ---      ---       #49
+      01001AAEH   BLOCK     CODE     NEAR LAB  LVL=1
+      01001AAEH   LINE      ---      ---       #51
+      01001ABAH   LINE      ---      ---       #52
+      01001ACAH   LINE      ---      ---       #53
+      01001AD8H   LINE      ---      ---       #54
+      01001AFEH   LINE      ---      ---       #55
+      01001B0BH   LINE      ---      ---       #56
+      01001B21H   LINE      ---      ---       #57
+      01001B26H   LINE      ---      ---       #58
+      01001B37H   LINE      ---      ---       #59
+      01001B43H   LINE      ---      ---       #60
+      01001B45H   LINE      ---      ---       #61
+      00000004H   SYMBOL    DATA     VOID      cris
+      02004E7EH   SYMBOL    XDATA    VOID      curr_len
+      ---         BLOCKEND  CODE     ---       LVL=1
+      ---         BLOCKEND  CODE     ---       LVL=0
+
+      ---         MODULE    ---      ---       ?C?FPADD
+      0100000AH   PUBLIC    CODE     ---       ?C?FPADD
+      01000006H   PUBLIC    CODE     ---       ?C?FPSUB
+
+      ---         MODULE    ---      ---       ?C?FPMUL
+      010000FBH   PUBLIC    CODE     ---       ?C?FPMUL
+
+      ---         MODULE    ---      ---       ?C?FCAST
+      0100020BH   PUBLIC    CODE     ---       ?C?FCASTC
+      01000206H   PUBLIC    CODE     ---       ?C?FCASTI
+      01000201H   PUBLIC    CODE     ---       ?C?FCASTL
+
+      ---         MODULE    ---      ---       ?C?CASTF
+      0100023FH   PUBLIC    CODE     ---       ?C?CASTF
+
+      ---         MODULE    ---      ---       ?C?FPGETOPN
+      01000276H   PUBLIC    CODE     ---       ?C?FPGETOPN2
+      010002ABH   PUBLIC    CODE     ---       ?C?FPNANRESULT
+      010002B5H   PUBLIC    CODE     ---       ?C?FPOVERFLOW
+      0100028DH   PUBLIC    CODE     ---       ?C?FPRESULT
+      010002A1H   PUBLIC    CODE     ---       ?C?FPRESULT2
+      010002B2H   PUBLIC    CODE     ---       ?C?FPUNDERFLOW
+
+      ---         MODULE    ---      ---       ?C_STARTUP
+      01000000H   PUBLIC    CODE     ---       ?C_STARTUP
+
+      ---         MODULE    ---      ---       ?C?COPY
+      01000390H   PUBLIC    CODE     ---       ?C?COPY
+
+      ---         MODULE    ---      ---       ?C?CLDPTR
+      010003B6H   PUBLIC    CODE     ---       ?C?CLDPTR
+
+      ---         MODULE    ---      ---       ?C?CLDOPTR
+      010003CFH   PUBLIC    CODE     ---       ?C?CLDOPTR
+
+      ---         MODULE    ---      ---       ?C?CSTPTR
+      010003FCH   PUBLIC    CODE     ---       ?C?CSTPTR
+
+      ---         MODULE    ---      ---       ?C?IILDX
+      0100040EH   PUBLIC    CODE     ---       ?C?IILDX
+
+      ---         MODULE    ---      ---       ?C?ILDIX
+      01000424H   PUBLIC    CODE     ---       ?C?ILDIX
+
+      ---         MODULE    ---      ---       ?C?LMUL
+      0100043AH   PUBLIC    CODE     ---       ?C?LMUL
+
+      ---         MODULE    ---      ---       ?C?ULDIV
+      010004C5H   PUBLIC    CODE     ---       ?C?ULDIV
+
+      ---         MODULE    ---      ---       ?C?LNEG
+      01000557H   PUBLIC    CODE     ---       ?C?LNEG
+
+      ---         MODULE    ---      ---       ?C?ULCMP
+      01000565H   PUBLIC    CODE     ---       ?C?ULCMP
+
+      ---         MODULE    ---      ---       ?C?LSTXDATA
+      01000576H   PUBLIC    CODE     ---       ?C?LSTXDATA
+
+      ---         MODULE    ---      ---       ?C?LSTKXDATA
+      01000582H   PUBLIC    CODE     ---       ?C?LSTKXDATA
+
+      ---         MODULE    ---      ---       ?C?CCASE
+      010005B3H   PUBLIC    CODE     ---       ?C?CCASE
+
+      ---         MODULE    ---      ---       ?C?ICALL
+      010005D9H   PUBLIC    CODE     ---       ?C?ICALL
+      010005DDH   PUBLIC    CODE     ---       ?C?ICALL2
+
+      ---         MODULE    ---      ---       ?C_INIT
+      01000626H   PUBLIC    CODE     ---       ?C_START
+
+Program Size: data=10.2 xdata=864 const=182 code=13590
+LX51 RUN COMPLETE.  0 WARNING(S),  0 ERROR(S)
Index: YC1026_3mode_SDK_CUSTOMER/output/FW.SBR
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/output/FW.SBR
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/output/eeprom.dat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/eeprom.dat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/eeprom.dat	(working copy)
@@ -0,0 +1,32768 @@
+00
+02
+aa
+55
+be
+1f
+c5
+12
+80
+18
+c0
+00
+00
+39
+c0
+01
+80
+3d
+c0
+02
+80
+48
+c0
+03
+02
+d0
+c0
+05
+02
+f1
+c0
+13
+82
+f5
+c0
+14
+03
+07
+c0
+15
+83
+0d
+c0
+21
+03
+18
+c0
+21
+83
+1c
+c0
+28
+03
+24
+c0
+2a
+03
+33
+c0
+48
+01
+f3
+c0
+49
+01
+bd
+c0
+4a
+01
+c3
+c0
+4a
+81
+ad
+c0
+58
+02
+ce
+c0
+58
+81
+71
+c0
+59
+01
+85
+c0
+59
+81
+9f
+c0
+5b
+01
+a8
+c0
+5c
+81
+79
+20
+20
+3b
+f1
+c0
+0c
+03
+3f
+c0
+0d
+83
+47
+c0
+11
+83
+66
+c0
+12
+03
+82
+c0
+19
+03
+fe
+c0
+1d
+d3
+b0
+c0
+1f
+02
+6b
+c0
+1f
+82
+6f
+c0
+25
+04
+47
+c0
+25
+83
+f7
+c0
+26
+04
+01
+c0
+27
+04
+07
+c0
+2b
+04
+0e
+c0
+31
+84
+16
+c0
+32
+04
+3b
+c0
+32
+84
+6c
+c0
+34
+85
+c9
+c0
+35
+85
+b2
+c0
+37
+05
+d0
+c0
+37
+84
+52
+c0
+43
+81
+16
+c0
+46
+82
+7d
+c0
+47
+02
+9a
+c0
+47
+82
+73
+c0
+66
+82
+00
+c0
+67
+81
+1a
+c0
+68
+01
+2f
+c0
+4e
+03
+86
+c0
+4f
+83
+9e
+c0
+71
+03
+ab
+c0
+71
+83
+bd
+c0
+73
+03
+d1
+20
+20
+3b
+f1
+68
+10
+81
+3b
+60
+00
+8b
+81
+70
+80
+06
+08
+20
+20
+30
+03
+20
+40
+00
+b1
+20
+40
+00
+4d
+20
+40
+00
+41
+20
+20
+30
+15
+68
+09
+47
+f4
+68
+00
+c3
+d8
+7d
+3a
+04
+0b
+68
+00
+c1
+33
+7d
+3a
+04
+06
+60
+09
+47
+f4
+20
+60
+00
+00
+20
+40
+33
+92
+20
+40
+34
+07
+20
+40
+30
+24
+20
+40
+05
+f1
+20
+20
+30
+22
+68
+00
+c7
+dc
+20
+3a
+00
+51
+68
+00
+c7
+93
+20
+7a
+00
+00
+20
+40
+01
+11
+20
+74
+00
+00
+1f
+f0
+fe
+00
+1f
+e2
+0c
+00
+20
+40
+00
+f2
+60
+00
+cb
+a7
+c0
+00
+80
+66
+c0
+03
+00
+70
+1f
+e2
+04
+00
+18
+c2
+22
+00
+68
+00
+c0
+40
+c3
+00
+00
+63
+1a
+22
+0c
+00
+c6
+84
+80
+00
+18
+42
+7e
+00
+c0
+01
+80
+72
+c0
+02
+80
+90
+20
+20
+3b
+f1
+1a
+22
+0c
+00
+d8
+a0
+00
+f8
+20
+20
+00
+ea
+20
+40
+00
+f2
+20
+40
+00
+f2
+60
+00
+8b
+7d
+20
+40
+00
+6b
+20
+20
+7c
+33
+20
+40
+00
+f5
+18
+c2
+04
+00
+18
+50
+84
+00
+60
+09
+4b
+9a
+20
+60
+00
+00
+d8
+a0
+0c
+d5
+20
+20
+00
+ea
+20
+40
+00
+f2
+1f
+e2
+22
+00
+18
+c2
+7e
+00
+60
+01
+02
+b7
+20
+40
+52
+7c
+24
+3a
+00
+7b
+1a
+20
+a2
+01
+20
+40
+4b
+2c
+20
+20
+00
+80
+d8
+a0
+4b
+ad
+1a
+22
+72
+00
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+20
+00
+ec
+18
+a0
+a5
+fe
+68
+01
+42
+b7
+e0
+a1
+00
+00
+58
+00
+00
+a1
+e0
+a0
+80
+00
+1a
+20
+f3
+ff
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+40
+00
+ec
+1a
+42
+0c
+00
+e8
+c1
+00
+00
+60
+01
+4c
+9b
+1f
+e0
+f2
+02
+20
+40
+7e
+45
+70
+4c
+9a
+64
+20
+60
+00
+00
+18
+c2
+22
+00
+68
+00
+cb
+a9
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+a9
+1f
+ef
+fe
+07
+d8
+a0
+4b
+ad
+98
+a0
+8a
+00
+1a
+22
+0c
+00
+20
+40
+00
+f2
+18
+c2
+22
+00
+1f
+e0
+ff
+ff
+1f
+e2
+72
+00
+1f
+e0
+fe
+07
+60
+00
+cc
+82
+1a
+22
+0c
+00
+20
+40
+00
+f2
+18
+c2
+22
+00
+c0
+00
+80
+a5
+c0
+01
+00
+ad
+c0
+01
+80
+af
+68
+01
+4c
+b8
+e0
+a1
+00
+00
+1a
+22
+0c
+00
+20
+40
+00
+ec
+20
+40
+56
+1e
+24
+7a
+00
+00
+70
+0b
+7d
+1b
+20
+20
+56
+20
+68
+01
+4c
+ba
+20
+20
+00
+a6
+68
+01
+4c
+bc
+20
+20
+00
+a6
+68
+0a
+4c
+59
+1c
+42
+7e
+00
+98
+46
+7e
+00
+d8
+40
+06
+40
+98
+46
+fc
+00
+20
+40
+7e
+fd
+18
+07
+fe
+00
+20
+7a
+00
+00
+1c
+42
+04
+00
+60
+0a
+4c
+59
+68
+09
+4b
+a5
+18
+50
+84
+00
+98
+40
+fe
+00
+1f
+f0
+fe
+00
+60
+01
+4b
+a5
+1f
+f0
+fe
+00
+1f
+e1
+7e
+03
+c1
+80
+00
+00
+68
+00
+cc
+8f
+c2
+80
+00
+ce
+c2
+80
+80
+d0
+da
+20
+00
+00
+20
+40
+00
+e1
+70
+89
+71
+8f
+68
+00
+cc
+90
+60
+10
+89
+73
+20
+40
+00
+d1
+da
+20
+00
+01
+20
+20
+00
+e1
+70
+89
+71
+bf
+20
+20
+00
+d1
+70
+89
+71
+af
+68
+10
+80
+53
+79
+20
+7e
+07
+60
+10
+80
+53
+68
+10
+89
+73
+1f
+e1
+fe
+30
+60
+10
+89
+73
+70
+89
+06
+7c
+70
+89
+72
+aa
+20
+00
+13
+88
+68
+19
+01
+50
+68
+10
+80
+53
+79
+3f
+fe
+07
+60
+10
+80
+53
+18
+50
+84
+00
+60
+09
+4c
+95
+20
+60
+00
+00
+d8
+40
+00
+21
+68
+00
+cc
+90
+98
+46
+04
+00
+1a
+22
+7e
+00
+79
+20
+04
+07
+24
+3a
+00
+e8
+79
+3f
+84
+07
+d8
+a0
+80
+78
+20
+20
+69
+f4
+20
+40
+00
+f2
+1f
+e2
+72
+00
+20
+40
+00
+ee
+20
+20
+00
+6b
+20
+40
+00
+f2
+e0
+a0
+80
+00
+c2
+00
+00
+ee
+20
+60
+00
+00
+20
+40
+00
+f5
+e8
+c0
+80
+00
+20
+60
+00
+00
+58
+00
+4b
+36
+98
+c6
+7c
+00
+24
+62
+80
+00
+d8
+c0
+4a
+a0
+20
+60
+00
+00
+df
+20
+00
+03
+d8
+c0
+4b
+a2
+18
+c2
+22
+00
+68
+01
+4b
+a0
+1f
+f0
+fe
+00
+1f
+e2
+0a
+00
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+e0
+a0
+80
+00
+20
+40
+01
+09
+c2
+00
+01
+01
+18
+a2
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4b
+a0
+20
+60
+00
+00
+58
+00
+4b
+9a
+98
+a6
+7c
+00
+24
+62
+80
+00
+d8
+a0
+4b
+36
+20
+60
+00
+00
+68
+01
+4b
+9e
+68
+09
+4b
+a0
+20
+20
+01
+13
+68
+01
+4b
+9a
+68
+09
+4b
+9c
+98
+46
+7c
+00
+20
+22
+e9
+b1
+20
+20
+32
+0b
+68
+08
+c7
+ef
+18
+41
+04
+0f
+60
+08
+c7
+ef
+20
+20
+7c
+06
+da
+20
+47
+df
+20
+40
+7f
+9f
+20
+7a
+00
+00
+1f
+e2
+26
+00
+20
+40
+01
+20
+20
+20
+3e
+a5
+c1
+0c
+00
+00
+c0
+0a
+05
+e1
+c0
+0a
+85
+e7
+c0
+03
+66
+14
+c0
+01
+01
+26
+20
+20
+3e
+7d
+70
+42
+9d
+00
+68
+01
+47
+f4
+c2
+83
+bf
+08
+2f
+ec
+00
+01
+20
+40
+81
+2c
+20
+20
+3f
+08
+68
+00
+84
+50
+c1
+01
+00
+00
+20
+20
+3e
+7b
+60
+08
+82
+59
+68
+00
+cc
+8d
+1f
+e0
+fe
+01
+60
+00
+cc
+8d
+68
+00
+82
+59
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+82
+59
+20
+40
+01
+4f
+20
+40
+01
+56
+20
+40
+01
+3b
+20
+20
+01
+33
+68
+00
+cc
+be
+24
+7a
+00
+00
+68
+00
+cc
+9a
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cc
+9a
+c1
+80
+80
+00
+70
+4c
+9a
+64
+68
+01
+47
+f4
+c4
+02
+80
+00
+68
+01
+4c
+9b
+20
+7a
+00
+00
+20
+40
+52
+7e
+24
+7a
+00
+00
+68
+01
+4c
+9b
+1f
+e2
+22
+00
+20
+40
+4b
+2c
+1a
+20
+f2
+02
+d8
+c0
+4c
+9d
+20
+20
+7e
+45
+68
+00
+c7
+f2
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+c7
+f2
+24
+7a
+00
+00
+20
+40
+3e
+bd
+20
+20
+4b
+22
+68
+00
+cc
+15
+20
+7a
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cc
+15
+20
+60
+00
+00
+1a
+62
+7e
+00
+1f
+e1
+7e
+f0
+c1
+28
+00
+00
+20
+40
+01
+63
+1a
+62
+7e
+00
+20
+7a
+00
+00
+60
+00
+cb
+a4
+20
+20
+00
+fa
+1a
+62
+7e
+00
+c0
+05
+81
+67
+c0
+01
+01
+6f
+20
+60
+00
+00
+70
+4c
+9a
+28
+58
+00
+00
+0a
+60
+01
+4c
+9b
+68
+01
+42
+b7
+e0
+a1
+00
+00
+58
+00
+01
+a1
+e0
+a1
+00
+00
+20
+60
+00
+00
+70
+4c
+9a
+00
+20
+60
+00
+00
+70
+41
+6e
+7f
+20
+40
+3c
+f3
+68
+00
+cc
+97
+20
+7a
+00
+00
+70
+4c
+97
+00
+1c
+42
+7e
+00
+60
+02
+4c
+59
+20
+60
+00
+00
+68
+00
+c2
+19
+24
+7a
+00
+00
+70
+80
+42
+06
+58
+00
+0f
+0c
+20
+40
+3d
+a7
+58
+03
+0d
+40
+20
+40
+3b
+f3
+37
+d9
+82
+00
+1e
+22
+60
+00
+20
+40
+3b
+36
+20
+00
+13
+88
+20
+20
+3d
+9d
+c6
+11
+80
+00
+68
+01
+47
+f4
+c2
+84
+bd
+1e
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+20
+40
+52
+7e
+24
+7a
+00
+00
+20
+40
+3d
+ca
+24
+7a
+00
+00
+20
+40
+3b
+36
+68
+00
+c7
+dc
+20
+3a
+3d
+25
+68
+00
+c7
+93
+20
+7a
+00
+00
+20
+20
+3d
+25
+20
+40
+01
+11
+24
+74
+00
+00
+20
+40
+01
+0e
+24
+74
+00
+00
+70
+0b
+7f
+01
+70
+0b
+7e
+01
+20
+40
+01
+a4
+20
+20
+01
+11
+20
+40
+01
+97
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+20
+3d
+2d
+68
+00
+8b
+7e
+20
+00
+00
+0a
+c0
+80
+01
+a4
+20
+60
+00
+00
+20
+40
+01
+97
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+20
+3d
+4f
+20
+40
+01
+af
+20
+20
+3a
+af
+68
+00
+c2
+19
+24
+3a
+01
+b5
+20
+40
+3d
+91
+20
+00
+75
+30
+20
+00
+75
+30
+20
+00
+75
+30
+20
+40
+3b
+0a
+70
+80
+42
+04
+68
+10
+89
+6b
+1f
+e1
+7e
+cf
+60
+10
+89
+6b
+1f
+e1
+fe
+30
+60
+10
+89
+6b
+20
+60
+00
+00
+60
+08
+80
+17
+18
+40
+a2
+04
+20
+20
+3a
+86
+60
+08
+80
+17
+18
+40
+a2
+00
+20
+20
+3a
+b6
+20
+40
+01
+c0
+58
+00
+05
+00
+20
+40
+3b
+f3
+70
+89
+06
+01
+70
+89
+00
+3c
+70
+89
+01
+e0
+70
+89
+6d
+12
+20
+00
+00
+0a
+70
+89
+02
+01
+70
+89
+02
+3d
+20
+00
+00
+0a
+70
+89
+03
+b7
+20
+00
+00
+0a
+70
+89
+02
+7d
+68
+00
+cb
+ef
+c0
+ff
+81
+db
+68
+02
+ca
+91
+e0
+a2
+80
+00
+e8
+c2
+80
+00
+e0
+a2
+80
+00
+70
+89
+56
+df
+20
+40
+01
+e2
+70
+89
+55
+df
+20
+60
+00
+00
+68
+02
+ca
+87
+e0
+a2
+80
+00
+e8
+c2
+80
+00
+e0
+a2
+80
+00
+70
+89
+56
+c2
+70
+89
+55
+d0
+20
+60
+00
+00
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d4
+20
+00
+00
+04
+20
+60
+00
+00
+70
+89
+55
+d4
+20
+00
+00
+04
+70
+89
+55
+d2
+20
+00
+00
+04
+70
+89
+55
+d1
+20
+00
+00
+04
+70
+89
+55
+d0
+70
+89
+56
+c0
+20
+60
+00
+00
+20
+30
+ba
+6f
+20
+40
+01
+ea
+20
+20
+3a
+6f
+20
+40
+52
+7c
+24
+7a
+00
+00
+20
+20
+00
+4d
+78
+34
+7c
+00
+68
+12
+01
+38
+79
+34
+7e
+1a
+60
+12
+00
+4c
+20
+40
+3d
+b0
+70
+00
+a2
+01
+20
+60
+00
+00
+70
+0b
+7e
+00
+70
+01
+77
+06
+20
+40
+3f
+a4
+58
+00
+01
+f6
+60
+01
+42
+8e
+58
+00
+01
+ff
+60
+01
+42
+8a
+58
+00
+01
+5b
+60
+01
+42
+92
+58
+00
+02
+72
+60
+01
+42
+90
+58
+00
+00
+4d
+60
+01
+42
+8c
+58
+00
+01
+f9
+60
+01
+42
+88
+58
+00
+4a
+a0
+1f
+f0
+fe
+00
+60
+01
+4b
+9a
+60
+01
+4b
+9c
+20
+40
+3e
+0b
+58
+00
+4b
+36
+1f
+f0
+fe
+00
+60
+01
+4b
+9e
+60
+01
+4b
+a0
+68
+00
+cc
+97
+c0
+2d
+02
+30
+20
+35
+82
+2e
+68
+01
+4c
+91
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+68
+01
+4c
+93
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+40
+02
+3b
+68
+04
+02
+a0
+24
+3a
+02
+28
+68
+01
+4a
+d4
+1f
+f0
+fe
+00
+20
+3a
+02
+28
+60
+01
+4c
+93
+20
+40
+05
+ee
+70
+4b
+a4
+2f
+20
+40
+00
+fa
+70
+4c
+97
+00
+70
+82
+80
+03
+20
+60
+00
+00
+70
+4b
+a4
+30
+20
+20
+02
+2a
+1c
+e2
+7e
+00
+20
+3a
+02
+75
+20
+40
+5b
+63
+20
+40
+4d
+99
+58
+00
+00
+00
+60
+04
+40
+40
+60
+01
+47
+f4
+1c
+42
+7e
+00
+60
+02
+4c
+59
+70
+4b
+a4
+33
+20
+20
+02
+2a
+20
+40
+68
+8a
+58
+00
+07
+e2
+da
+20
+02
+a0
+d8
+40
+00
+0c
+20
+40
+68
+d3
+20
+40
+68
+8d
+68
+04
+02
+a0
+20
+7a
+00
+00
+68
+00
+cc
+8f
+c2
+80
+02
+4d
+c2
+80
+82
+5b
+68
+01
+02
+a0
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+68
+01
+02
+a6
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+60
+00
+00
+68
+09
+02
+a4
+68
+01
+02
+aa
+18
+42
+24
+00
+1f
+e2
+22
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+1a
+22
+7e
+00
+98
+46
+26
+00
+1a
+63
+a6
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+20
+60
+00
+00
+68
+09
+02
+a2
+68
+01
+02
+a8
+18
+42
+24
+00
+1f
+e2
+22
+00
+98
+46
+26
+00
+1a
+6b
+26
+00
+1a
+42
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+91
+1a
+63
+a6
+00
+1a
+22
+7e
+00
+9a
+66
+7e
+00
+1f
+f0
+fe
+00
+60
+01
+4c
+93
+20
+60
+00
+00
+70
+00
+16
+27
+70
+89
+0f
+36
+70
+89
+0b
+5f
+20
+20
+53
+d4
+70
+89
+0f
+2e
+70
+89
+0b
+ff
+20
+20
+53
+d9
+20
+60
+00
+00
+70
+0b
+7e
+03
+20
+40
+01
+a4
+70
+4c
+97
+5a
+20
+40
+3d
+b8
+68
+12
+01
+38
+79
+3f
+fe
+0f
+60
+12
+00
+4c
+20
+40
+3d
+b0
+d8
+5f
+ff
+ff
+20
+20
+3c
+da
+20
+40
+7c
+20
+da
+20
+47
+e4
+20
+40
+7f
+9f
+1f
+e2
+04
+00
+20
+40
+7c
+24
+18
+42
+7e
+00
+20
+7a
+00
+00
+c0
+10
+82
+90
+c0
+11
+02
+92
+c0
+11
+82
+95
+c0
+00
+82
+b7
+c0
+06
+82
+af
+c0
+16
+02
+ae
+c0
+15
+82
+b5
+c0
+01
+82
+b9
+c0
+15
+02
+c2
+c0
+08
+82
+98
+c0
+09
+7c
+85
+20
+20
+7c
+5a
+70
+4b
+ef
+ff
+20
+20
+06
+f2
+79
+3f
+80
+23
+70
+4b
+ef
+ff
+20
+20
+06
+6e
+5f
+ff
+ff
+ff
+60
+02
+4c
+00
+20
+20
+06
+bf
+70
+0b
+7d
+22
+20
+20
+56
+20
+68
+00
+80
+7c
+20
+3a
+02
+9f
+20
+40
+61
+d9
+68
+00
+80
+7c
+24
+3a
+7c
+8c
+68
+00
+8b
+7d
+c5
+84
+fc
+87
+c0
+02
+02
+a4
+c0
+14
+02
+aa
+20
+20
+7c
+7b
+68
+01
+47
+f4
+c3
+01
+82
+a7
+20
+20
+7c
+a4
+58
+00
+00
+0a
+60
+02
+00
+51
+20
+20
+7c
+a4
+70
+00
+7c
+37
+68
+01
+4c
+98
+60
+01
+00
+51
+20
+60
+00
+00
+20
+40
+02
+b7
+20
+40
+3e
+ff
+20
+40
+7c
+d5
+18
+0a
+7e
+00
+60
+00
+c4
+f9
+70
+43
+dc
+05
+20
+20
+7c
+ae
+70
+43
+dc
+04
+20
+20
+7c
+ae
+70
+01
+77
+06
+20
+20
+7c
+97
+20
+40
+3b
+fa
+20
+40
+4d
+98
+20
+40
+5b
+62
+70
+01
+77
+06
+68
+00
+c7
+dc
+c0
+00
+02
+c0
+70
+01
+77
+17
+70
+42
+5e
+01
+20
+20
+7c
+a2
+68
+01
+47
+f4
+c2
+84
+bf
+90
+c2
+80
+02
+cb
+c2
+83
+fc
+d5
+c5
+11
+86
+6e
+70
+43
+d8
+00
+20
+40
+3f
+7e
+70
+0b
+7d
+37
+20
+20
+7c
+27
+20
+40
+3e
+ff
+20
+40
+7c
+d5
+20
+20
+3f
+77
+20
+40
+3b
+36
+20
+20
+3c
+dc
+20
+40
+02
+d2
+20
+20
+30
+2c
+da
+60
+02
+d4
+20
+20
+33
+01
+c3
+00
+b3
+07
+20
+40
+33
+3d
+20
+40
+02
+e1
+98
+46
+7e
+00
+1f
+e0
+fe
+01
+20
+21
+02
+db
+20
+20
+33
+25
+98
+00
+24
+00
+1a
+20
+8c
+02
+e8
+c1
+00
+00
+20
+3a
+33
+27
+20
+40
+33
+49
+20
+20
+02
+d5
+1f
+f1
+16
+00
+19
+6c
+96
+00
+20
+22
+82
+eb
+29
+60
+1e
+0f
+24
+60
+80
+00
+18
+51
+16
+00
+19
+6c
+96
+00
+24
+62
+80
+00
+79
+20
+04
+1c
+20
+60
+00
+00
+18
+51
+16
+00
+19
+6c
+96
+00
+29
+60
+1e
+0f
+24
+60
+80
+00
+79
+20
+7e
+1c
+20
+60
+00
+00
+60
+0c
+02
+a0
+20
+40
+7e
+53
+68
+0c
+02
+a0
+20
+20
+30
+7c
+78
+54
+7c
+00
+68
+01
+00
+32
+d8
+40
+ff
+ff
+98
+46
+7c
+00
+24
+62
+80
+00
+68
+02
+00
+34
+20
+38
+02
+fe
+9d
+06
+7e
+00
+20
+20
+02
+ff
+9c
+46
+7e
+00
+1f
+e6
+7c
+04
+24
+61
+00
+00
+18
+00
+7e
+00
+60
+01
+00
+32
+20
+20
+34
+df
+70
+0b
+7d
+20
+20
+40
+7c
+27
+20
+20
+03
+08
+60
+0a
+00
+34
+70
+47
+48
+01
+58
+00
+ff
+ff
+60
+01
+00
+32
+70
+00
+73
+01
+20
+60
+00
+00
+20
+40
+3b
+aa
+20
+40
+03
+10
+20
+20
+32
+67
+1c
+40
+c2
+01
+20
+40
+3a
+54
+18
+00
+48
+03
+20
+40
+3a
+42
+20
+40
+3b
+ae
+20
+40
+3b
+b4
+20
+40
+3b
+c5
+20
+20
+37
+5c
+20
+40
+3e
+25
+20
+40
+6d
+ec
+20
+40
+35
+d6
+20
+20
+34
+80
+20
+40
+3d
+61
+20
+40
+3b
+e2
+20
+21
+34
+98
+20
+40
+32
+04
+24
+34
+34
+98
+20
+40
+38
+12
+24
+3a
+03
+19
+20
+60
+00
+00
+20
+40
+32
+df
+24
+22
+b5
+68
+68
+00
+80
+47
+c3
+01
+b5
+71
+68
+00
+c1
+65
+c0
+09
+b5
+62
+68
+01
+4c
+43
+1f
+e6
+7c
+14
+24
+21
+35
+62
+60
+01
+00
+91
+68
+00
+cc
+42
+60
+00
+80
+90
+58
+00
+4c
+45
+60
+01
+01
+79
+20
+20
+35
+62
+68
+01
+00
+91
+60
+01
+4c
+43
+1f
+e6
+7c
+14
+24
+21
+35
+8f
+98
+00
+72
+00
+68
+00
+80
+90
+60
+00
+cc
+42
+68
+01
+01
+79
+98
+00
+0c
+00
+d8
+a0
+4c
+45
+20
+40
+7e
+45
+20
+20
+35
+8f
+68
+01
+02
+cd
+20
+3a
+4d
+fc
+68
+00
+82
+cf
+c0
+00
+83
+44
+20
+20
+4d
+bb
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+20
+4d
+c3
+e8
+c0
+80
+00
+c0
+05
+03
+4a
+20
+20
+4e
+14
+e8
+c0
+80
+00
+1f
+e2
+0e
+00
+e8
+c1
+00
+00
+1f
+e2
+22
+00
+1a
+62
+7e
+00
+9a
+26
+26
+00
+58
+00
+00
+0b
+e0
+a0
+80
+00
+18
+e2
+7e
+00
+e0
+a0
+80
+00
+e8
+c1
+00
+00
+c0
+01
+03
+58
+c0
+01
+83
+5f
+20
+20
+3b
+f1
+58
+02
+00
+08
+e0
+a3
+00
+00
+58
+00
+02
+00
+e0
+a2
+00
+00
+18
+00
+7e
+0c
+9a
+40
+a4
+00
+20
+20
+4e
+20
+58
+03
+00
+0c
+e0
+a3
+00
+00
+58
+00
+00
+06
+e0
+a4
+00
+00
+18
+00
+7e
+10
+9a
+40
+a4
+00
+20
+20
+4e
+20
+20
+40
+52
+c4
+18
+00
+24
+00
+20
+40
+52
+d0
+1f
+e2
+0a
+00
+68
+01
+02
+cd
+1f
+e2
+26
+00
+68
+01
+02
+cb
+98
+00
+0c
+00
+20
+40
+03
+70
+20
+20
+51
+10
+e8
+c0
+80
+00
+c0
+05
+03
+73
+20
+20
+51
+16
+e8
+c0
+80
+00
+1f
+e2
+0e
+00
+e8
+c1
+00
+00
+1f
+e2
+22
+00
+e8
+c1
+00
+00
+60
+01
+02
+a0
+1a
+62
+7e
+00
+9a
+26
+26
+00
+20
+40
+52
+d0
+58
+00
+00
+0b
+e0
+a0
+80
+00
+18
+e2
+7e
+00
+e0
+a0
+80
+00
+68
+01
+02
+a0
+20
+20
+03
+55
+da
+40
+00
+00
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+20
+52
+4d
+68
+01
+02
+cb
+1f
+e2
+0c
+00
+e8
+c0
+80
+00
+1f
+e1
+04
+0f
+1f
+f1
+fe
+00
+c0
+04
+cb
+18
+c0
+03
+cb
+18
+c0
+05
+03
+9b
+c0
+02
+83
+99
+c0
+00
+83
+92
+c0
+02
+4b
+18
+20
+60
+00
+00
+18
+42
+7e
+00
+c0
+02
+cb
+09
+70
+4c
+be
+01
+c0
+01
+cb
+18
+70
+4c
+be
+00
+c0
+02
+4b
+18
+20
+60
+00
+00
+20
+40
+03
+9b
+20
+20
+4b
+11
+e8
+c0
+80
+00
+c0
+00
+83
+f4
+20
+60
+00
+00
+20
+40
+52
+7a
+24
+7a
+00
+00
+20
+40
+03
+a2
+20
+20
+6d
+fd
+68
+00
+c1
+32
+c1
+00
+80
+00
+68
+00
+c3
+cd
+20
+7a
+00
+00
+1f
+e2
+22
+00
+70
+43
+cd
+00
+1a
+22
+7e
+00
+c0
+28
+4d
+dc
+20
+60
+00
+00
+68
+00
+80
+7d
+c0
+01
+83
+af
+c0
+03
+83
+ba
+20
+20
+5b
+92
+68
+00
+84
+df
+60
+00
+84
+45
+c0
+09
+83
+04
+c0
+19
+83
+b4
+20
+20
+5c
+58
+68
+00
+84
+4d
+79
+20
+7e
+00
+60
+00
+84
+4d
+70
+0b
+7d
+01
+20
+40
+7c
+27
+20
+20
+5c
+83
+68
+00
+84
+df
+60
+00
+84
+46
+20
+20
+5c
+f3
+78
+54
+7c
+00
+20
+40
+61
+d9
+68
+00
+80
+48
+20
+7a
+00
+00
+c2
+83
+df
+10
+c0
+01
+03
+c4
+20
+20
+5e
+e0
+18
+00
+7e
+11
+20
+40
+61
+b5
+68
+00
+80
+49
+1f
+e2
+04
+00
+c0
+00
+03
+cc
+c0
+07
+03
+cc
+c0
+0e
+03
+cc
+20
+60
+00
+00
+e0
+a0
+80
+00
+68
+00
+c7
+02
+e0
+a0
+80
+00
+58
+00
+00
+0e
+20
+20
+5f
+a6
+68
+00
+80
+7c
+20
+3a
+03
+d6
+20
+40
+61
+d9
+68
+00
+80
+7c
+24
+7a
+00
+00
+68
+00
+80
+55
+20
+7a
+00
+00
+c0
+03
+03
+e5
+c0
+08
+03
+db
+20
+20
+62
+3e
+68
+00
+c7
+48
+c1
+00
+00
+00
+c0
+00
+83
+e3
+d8
+e0
+00
+0a
+20
+40
+7e
+53
+24
+7a
+00
+00
+70
+47
+48
+00
+20
+20
+62
+9b
+20
+74
+80
+00
+20
+20
+03
+e5
+68
+00
+81
+77
+c2
+81
+62
+9b
+c2
+80
+03
+e8
+68
+00
+c2
+5e
+20
+3a
+62
+c7
+68
+00
+84
+4d
+c4
+01
+80
+00
+c4
+01
+00
+00
+68
+02
+04
+65
+d8
+40
+03
+20
+98
+40
+84
+00
+1c
+42
+7e
+00
+98
+46
+7c
+00
+24
+61
+00
+00
+20
+20
+62
+67
+e8
+c0
+80
+00
+60
+00
+cc
+b7
+20
+60
+00
+00
+20
+40
+54
+bd
+68
+08
+80
+17
+20
+40
+3a
+82
+20
+40
+3a
+87
+78
+28
+7c
+00
+d9
+60
+15
+7c
+20
+20
+54
+7f
+70
+44
+3e
+01
+70
+44
+3f
+00
+20
+20
+53
+4e
+20
+40
+53
+dd
+20
+40
+04
+04
+20
+20
+54
+c1
+20
+36
+81
+c6
+20
+40
+53
+ee
+20
+20
+3a
+91
+68
+00
+cc
+60
+60
+02
+46
+f9
+68
+00
+c4
+db
+c0
+00
+84
+0c
+20
+20
+54
+e0
+70
+44
+db
+00
+20
+20
+54
+ef
+68
+00
+83
+c0
+c4
+02
+80
+00
+68
+01
+03
+da
+68
+09
+03
+e0
+98
+46
+7e
+00
+24
+61
+00
+00
+70
+41
+31
+01
+20
+20
+55
+7e
+68
+00
+c4
+40
+c0
+03
+84
+30
+c0
+07
+84
+34
+c0
+03
+04
+22
+c0
+01
+04
+1f
+c0
+09
+84
+1d
+20
+20
+56
+3a
+18
+00
+04
+01
+20
+20
+58
+92
+58
+00
+00
+0a
+60
+01
+03
+ef
+20
+20
+56
+93
+70
+0b
+7d
+12
+20
+40
+7c
+33
+18
+00
+04
+01
+20
+34
+d8
+92
+70
+0b
+7d
+34
+20
+40
+7c
+27
+68
+00
+cc
+69
+c0
+01
+04
+2c
+70
+41
+31
+01
+20
+20
+04
+2e
+70
+0b
+7d
+46
+20
+40
+56
+20
+18
+00
+04
+01
+20
+20
+58
+92
+68
+00
+cc
+68
+e0
+a0
+80
+00
+18
+00
+04
+02
+20
+20
+58
+92
+18
+a0
+8b
+ff
+68
+04
+4c
+6c
+e0
+a4
+00
+00
+e8
+c4
+00
+00
+e0
+a4
+00
+00
+18
+00
+02
+02
+20
+20
+58
+8a
+68
+00
+c4
+44
+c0
+04
+d7
+19
+c0
+01
+04
+40
+c0
+03
+d7
+0d
+20
+20
+56
+56
+59
+00
+03
+02
+60
+01
+c4
+b5
+58
+00
+00
+01
+e0
+a0
+80
+00
+58
+01
+00
+10
+e0
+a1
+80
+00
+20
+20
+56
+f1
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+20
+23
+37
+5c
+78
+36
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+20
+54
+af
+e8
+c1
+80
+00
+60
+01
+83
+f9
+c0
+29
+04
+58
+c0
+01
+04
+6a
+c0
+09
+04
+5e
+20
+20
+59
+07
+70
+4d
+38
+01
+68
+01
+03
+fa
+c0
+0f
+84
+5c
+20
+20
+59
+ed
+d8
+c0
+03
+49
+20
+20
+03
+f4
+68
+01
+03
+fa
+1f
+e6
+7c
+1f
+20
+42
+84
+5c
+68
+01
+03
+fa
+68
+09
+4c
+bc
+18
+40
+84
+01
+98
+46
+7c
+00
+20
+22
+84
+67
+20
+20
+59
+ca
+70
+0b
+7d
+34
+20
+40
+7c
+27
+20
+20
+59
+ca
+70
+0b
+7d
+03
+20
+20
+56
+20
+68
+00
+c4
+44
+c0
+0d
+85
+a4
+c0
+0e
+85
+a4
+c0
+08
+85
+38
+c0
+04
+84
+ea
+c0
+02
+84
+d8
+c0
+03
+84
+8c
+c0
+09
+d8
+5c
+c0
+01
+84
+7d
+c0
+05
+84
+80
+c0
+06
+84
+78
+20
+20
+56
+66
+68
+01
+03
+fa
+c0
+03
+84
+7b
+20
+20
+57
+d6
+70
+03
+fc
+07
+20
+20
+57
+29
+68
+01
+4c
+6a
+e0
+a1
+00
+00
+20
+20
+58
+8a
+68
+01
+03
+fa
+c0
+07
+04
+83
+20
+20
+57
+c6
+68
+00
+cc
+69
+c0
+80
+57
+c6
+68
+00
+cc
+7c
+c0
+01
+d7
+c6
+18
+a2
+04
+00
+70
+4c
+69
+01
+18
+42
+0a
+00
+70
+03
+fc
+05
+20
+20
+57
+29
+20
+40
+57
+7b
+20
+74
+00
+00
+68
+09
+44
+c0
+58
+00
+18
+12
+98
+46
+7c
+00
+20
+22
+84
+a5
+58
+00
+18
+0f
+98
+46
+7c
+00
+20
+22
+84
+a7
+58
+00
+18
+0a
+98
+46
+7c
+00
+20
+22
+84
+ab
+58
+00
+18
+01
+98
+46
+7c
+00
+20
+22
+84
+a9
+20
+20
+57
+54
+68
+00
+cc
+7f
+d8
+40
+00
+00
+f9
+20
+04
+00
+98
+41
+7e
+00
+c0
+80
+57
+28
+68
+00
+cc
+7f
+f9
+20
+7e
+00
+60
+00
+cc
+7f
+20
+20
+04
+ad
+d8
+e0
+00
+00
+20
+20
+04
+9c
+d8
+e0
+00
+01
+20
+20
+04
+9c
+d8
+e0
+00
+03
+20
+20
+04
+9c
+d8
+e0
+00
+02
+20
+20
+04
+9c
+68
+01
+44
+c0
+1f
+e2
+22
+00
+68
+09
+44
+c4
+18
+42
+24
+00
+20
+40
+04
+b4
+20
+22
+84
+bf
+20
+20
+57
+28
+d8
+c0
+45
+04
+e8
+c1
+00
+00
+20
+7a
+00
+00
+e8
+c1
+80
+00
+e8
+c1
+00
+00
+9a
+26
+7c
+00
+20
+62
+80
+00
+18
+c0
+8d
+fd
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+04
+b5
+18
+c0
+8d
+f9
+e8
+c1
+00
+00
+60
+01
+4c
+61
+20
+40
+04
+cd
+20
+3a
+57
+28
+18
+c0
+8d
+fc
+e8
+c1
+00
+00
+1f
+e0
+ff
+ff
+60
+01
+4c
+63
+70
+44
+44
+07
+68
+02
+4c
+61
+60
+02
+44
+45
+18
+00
+04
+09
+20
+20
+58
+92
+e8
+c1
+00
+00
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+e8
+c1
+00
+00
+20
+7a
+00
+00
+e8
+c1
+00
+00
+9a
+46
+7c
+00
+20
+62
+80
+00
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+04
+d0
+d9
+60
+00
+03
+18
+00
+7e
+01
+60
+00
+c4
+45
+20
+40
+5a
+74
+20
+40
+5a
+7d
+20
+3a
+57
+46
+24
+21
+04
+e8
+78
+54
+7c
+00
+e0
+a1
+00
+00
+e8
+c1
+00
+00
+e0
+a1
+00
+00
+19
+60
+97
+ff
+20
+22
+d7
+46
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+04
+dc
+18
+c0
+8c
+02
+20
+20
+04
+e5
+68
+09
+44
+c0
+58
+00
+2a
+00
+98
+46
+7c
+00
+20
+22
+85
+2a
+58
+00
+2a
+50
+98
+46
+7c
+00
+20
+22
+85
+35
+58
+00
+28
+03
+98
+46
+7c
+00
+24
+22
+d7
+28
+68
+01
+44
+bc
+60
+01
+02
+a0
+78
+34
+7c
+00
+20
+40
+05
+7c
+24
+21
+05
+06
+68
+09
+02
+a0
+20
+40
+05
+84
+c0
+00
+85
+06
+20
+40
+05
+80
+24
+22
+85
+04
+78
+54
+7c
+00
+20
+40
+05
+08
+20
+40
+05
+6a
+20
+40
+05
+84
+20
+40
+05
+10
+20
+20
+05
+06
+20
+40
+05
+6a
+20
+20
+04
+f7
+20
+34
+57
+28
+20
+20
+05
+a2
+68
+01
+02
+a0
+60
+01
+44
+46
+68
+00
+cc
+67
+1f
+e2
+72
+00
+20
+40
+05
+99
+d8
+a0
+44
+48
+20
+40
+7e
+45
+20
+20
+05
+9c
+68
+09
+4c
+65
+18
+4c
+fe
+00
+c0
+82
+85
+22
+20
+40
+05
+96
+68
+01
+02
+a0
+e0
+a1
+00
+00
+20
+40
+05
+9c
+58
+00
+45
+04
+98
+40
+8c
+00
+e8
+c0
+80
+00
+18
+c2
+04
+00
+1f
+e2
+72
+00
+1f
+e0
+fe
+05
+60
+00
+c4
+45
+20
+40
+05
+96
+18
+42
+0c
+00
+20
+40
+7e
+45
+20
+20
+05
+9c
+20
+40
+05
+96
+68
+01
+02
+a0
+e0
+a1
+00
+00
+68
+01
+4c
+65
+e0
+a1
+00
+00
+20
+40
+05
+9c
+70
+44
+45
+07
+20
+60
+00
+00
+20
+40
+5b
+08
+e8
+c0
+80
+00
+1f
+e2
+72
+00
+1f
+e0
+fe
+02
+60
+00
+c4
+45
+18
+c0
+8d
+fb
+e8
+c1
+00
+00
+e0
+a1
+00
+00
+18
+c0
+8c
+03
+20
+40
+7e
+45
+20
+20
+58
+8a
+d8
+40
+2a
+50
+20
+40
+5b
+0c
+20
+20
+05
+2b
+d9
+60
+00
+02
+68
+01
+44
+bc
+60
+01
+02
+a0
+70
+0d
+5c
+00
+78
+34
+7c
+00
+20
+40
+05
+7c
+24
+21
+05
+60
+68
+09
+02
+a0
+20
+40
+05
+84
+c0
+00
+85
+63
+20
+40
+05
+80
+24
+22
+85
+5c
+68
+00
+8d
+5c
+c0
+00
+85
+63
+24
+34
+05
+4d
+78
+54
+7c
+00
+68
+00
+cc
+67
+1f
+e0
+fe
+04
+60
+00
+c4
+45
+20
+40
+05
+9c
+20
+20
+05
+57
+68
+00
+cc
+67
+1f
+e6
+7c
+10
+20
+22
+85
+63
+68
+00
+c4
+45
+1f
+e6
+7c
+10
+20
+22
+85
+63
+68
+01
+02
+a0
+1f
+e0
+ff
+ff
+60
+01
+0d
+5a
+20
+40
+05
+73
+68
+01
+02
+a0
+60
+01
+0d
+58
+20
+40
+05
+6e
+19
+60
+97
+ff
+20
+22
+85
+5e
+20
+40
+05
+6a
+20
+20
+05
+3d
+70
+0d
+5c
+01
+20
+20
+05
+5c
+68
+01
+02
+a0
+60
+01
+0d
+5a
+20
+20
+05
+67
+68
+01
+02
+a0
+1f
+e0
+ff
+ff
+60
+01
+0d
+5a
+20
+20
+05
+67
+20
+34
+57
+28
+20
+40
+05
+73
+20
+20
+05
+a2
+68
+09
+02
+a0
+18
+40
+84
+01
+60
+09
+02
+a0
+20
+60
+00
+00
+68
+00
+cc
+67
+60
+00
+81
+03
+1f
+e2
+72
+00
+20
+40
+05
+99
+20
+20
+7e
+45
+20
+40
+05
+96
+68
+01
+0d
+58
+e0
+a1
+00
+00
+68
+01
+0d
+5a
+e0
+a1
+00
+00
+68
+00
+81
+03
+1f
+e2
+72
+00
+20
+40
+7e
+45
+20
+20
+05
+9c
+68
+09
+02
+a0
+68
+01
+44
+be
+98
+46
+7c
+00
+20
+60
+00
+00
+68
+01
+44
+c0
+68
+09
+4c
+65
+98
+46
+7c
+00
+20
+60
+00
+00
+d8
+c0
+45
+04
+18
+42
+22
+00
+e8
+c1
+00
+00
+20
+3a
+05
+8f
+e8
+c9
+00
+00
+60
+09
+4c
+65
+9a
+26
+7c
+00
+20
+22
+85
+91
+e8
+c0
+80
+00
+98
+c0
+8c
+00
+20
+20
+05
+86
+58
+00
+00
+01
+20
+60
+00
+00
+e8
+c0
+80
+00
+60
+00
+cc
+67
+20
+40
+05
+9f
+58
+00
+00
+00
+20
+60
+00
+00
+68
+01
+02
+b9
+1f
+e2
+0a
+00
+20
+60
+00
+00
+68
+01
+02
+b7
+1f
+e2
+0c
+00
+20
+60
+00
+00
+18
+a2
+7e
+00
+60
+01
+02
+b9
+20
+60
+00
+00
+18
+c2
+7e
+00
+60
+01
+02
+b7
+20
+60
+00
+00
+20
+40
+05
+96
+20
+20
+58
+8a
+68
+00
+cb
+ab
+1f
+e0
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+ab
+1f
+ef
+fe
+07
+d8
+c0
+4b
+ad
+98
+c0
+8c
+00
+68
+00
+cc
+82
+1f
+e0
+ff
+fb
+1f
+e2
+72
+00
+d8
+a0
+44
+45
+20
+40
+7e
+45
+68
+08
+cc
+82
+20
+20
+58
+92
+1a
+62
+7e
+00
+c0
+01
+85
+c0
+c0
+05
+05
+c4
+c0
+00
+05
+bd
+c0
+09
+05
+c2
+c0
+01
+05
+c6
+1f
+e6
+7c
+0d
+20
+21
+58
+c0
+60
+00
+cc
+68
+70
+0b
+7d
+27
+20
+20
+56
+20
+70
+41
+31
+00
+20
+40
+59
+24
+20
+60
+00
+00
+70
+4c
+7c
+00
+20
+20
+59
+38
+70
+0b
+7d
+33
+20
+20
+56
+20
+70
+0b
+7d
+2b
+20
+20
+56
+20
+58
+00
+00
+14
+60
+01
+03
+ef
+20
+60
+00
+00
+68
+00
+c4
+3e
+28
+20
+06
+01
+20
+20
+85
+cd
+20
+20
+58
+a7
+68
+00
+c4
+3f
+20
+7a
+00
+00
+20
+20
+58
+a7
+e8
+c0
+80
+00
+c0
+00
+85
+d7
+c0
+02
+05
+dc
+c0
+04
+85
+d5
+20
+20
+58
+f8
+70
+4c
+69
+03
+20
+20
+59
+74
+60
+00
+c4
+ae
+e8
+c3
+00
+00
+e0
+a3
+00
+00
+70
+0b
+7d
+42
+20
+20
+56
+20
+20
+40
+74
+a8
+20
+22
+85
+df
+20
+20
+59
+68
+70
+4c
+69
+02
+20
+20
+59
+6a
+70
+41
+31
+00
+70
+4c
+7d
+00
+20
+40
+3f
+86
+20
+40
+3f
+7e
+20
+40
+3f
+a4
+20
+20
+3e
+cc
+70
+42
+13
+00
+70
+44
+8b
+00
+70
+4c
+7c
+00
+70
+4c
+69
+00
+70
+4c
+7f
+00
+70
+4c
+7d
+00
+20
+20
+3e
+d0
+58
+00
+00
+00
+60
+02
+4b
+a9
+20
+60
+00
+00
+c6
+91
+80
+00
+20
+40
+06
+17
+24
+34
+06
+08
+70
+4c
+15
+0a
+20
+40
+06
+32
+68
+00
+cb
+ef
+c1
+ff
+80
+00
+20
+40
+06
+90
+68
+00
+cd
+46
+24
+7a
+00
+00
+20
+40
+01
+97
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+58
+00
+e2
+90
+20
+40
+7e
+8a
+60
+0a
+41
+fc
+20
+20
+3c
+da
+20
+40
+01
+97
+24
+74
+00
+00
+68
+00
+8b
+7f
+24
+7a
+00
+00
+20
+40
+3c
+ab
+68
+01
+c2
+10
+20
+7a
+00
+00
+68
+00
+c1
+31
+20
+7a
+00
+00
+68
+00
+cc
+15
+24
+3a
+06
+04
+68
+04
+4d
+3d
+20
+40
+7e
+8a
+60
+0a
+41
+fc
+20
+20
+3c
+da
+68
+00
+cb
+ef
+c0
+ff
+86
+c7
+20
+40
+06
+1d
+20
+40
+07
+56
+70
+4b
+e6
+01
+20
+60
+00
+00
+78
+54
+7c
+00
+70
+4b
+e2
+02
+68
+00
+8c
+d5
+c0
+00
+86
+26
+c0
+01
+06
+2a
+c0
+01
+86
+2e
+68
+00
+cd
+46
+24
+5a
+34
+df
+20
+60
+00
+00
+58
+00
+00
+00
+60
+00
+8c
+d5
+70
+4b
+e1
+0a
+20
+20
+06
+30
+58
+00
+00
+03
+60
+00
+8c
+d5
+70
+4b
+e1
+04
+20
+20
+06
+30
+70
+4b
+e2
+01
+70
+4b
+e1
+08
+70
+4b
+e7
+00
+20
+20
+34
+df
+70
+4b
+e8
+00
+d9
+60
+0d
+00
+34
+73
+02
+00
+20
+40
+06
+5d
+24
+37
+86
+43
+20
+40
+06
+71
+20
+40
+06
+82
+68
+00
+cb
+e0
+1f
+e0
+fe
+01
+60
+00
+cb
+e0
+70
+4d
+46
+00
+68
+00
+cb
+ef
+c0
+ff
+86
+5b
+20
+40
+06
+55
+70
+4b
+e7
+00
+70
+4b
+e6
+00
+20
+60
+00
+00
+70
+4d
+46
+01
+68
+00
+cb
+e7
+1f
+e0
+fe
+01
+60
+00
+cb
+e7
+68
+00
+cb
+ef
+c0
+ff
+86
+6d
+68
+00
+cb
+e7
+c0
+7f
+86
+6e
+68
+00
+cb
+e7
+d8
+40
+00
+10
+98
+46
+7c
+00
+20
+21
+07
+70
+68
+00
+cb
+e8
+1f
+e0
+fe
+01
+60
+00
+cb
+e8
+20
+00
+00
+0a
+c0
+83
+86
+33
+20
+20
+07
+70
+58
+00
+00
+00
+60
+04
+8c
+d5
+20
+60
+00
+00
+c5
+91
+f2
+b9
+68
+04
+0c
+d5
+20
+60
+00
+00
+20
+40
+06
+7f
+20
+20
+06
+e2
+78
+57
+fc
+00
+20
+40
+07
+ce
+68
+00
+cc
+0a
+c0
+00
+86
+6a
+18
+00
+2a
+00
+68
+02
+4c
+00
+98
+00
+12
+00
+68
+08
+80
+17
+20
+40
+3a
+82
+20
+40
+3a
+87
+20
+40
+07
+88
+20
+57
+87
+c6
+20
+60
+00
+00
+70
+0c
+b4
+00
+78
+37
+fc
+00
+20
+20
+07
+c6
+20
+60
+00
+00
+70
+4d
+46
+00
+70
+0b
+7d
+32
+20
+20
+7c
+27
+20
+40
+07
+18
+68
+00
+cb
+df
+20
+7a
+00
+00
+98
+00
+72
+00
+20
+40
+06
+79
+d8
+c0
+0c
+b5
+d8
+a0
+0d
+17
+20
+20
+7e
+45
+68
+00
+8c
+b4
+2f
+e1
+f0
+08
+24
+60
+80
+00
+68
+08
+8c
+b5
+60
+08
+cc
+b7
+20
+60
+00
+00
+70
+4c
+28
+01
+70
+4c
+27
+00
+20
+60
+00
+00
+68
+00
+cc
+27
+1f
+e0
+fe
+01
+60
+00
+cc
+27
+20
+60
+00
+00
+68
+00
+cc
+27
+1f
+e6
+7c
+01
+24
+41
+06
+8e
+68
+00
+cc
+27
+c1
+00
+00
+00
+1f
+e0
+ff
+ff
+60
+00
+cc
+27
+20
+60
+00
+00
+70
+4c
+27
+02
+20
+60
+00
+00
+da
+20
+4c
+2b
+20
+40
+07
+38
+60
+08
+cc
+29
+28
+0f
+fe
+23
+20
+40
+86
+9e
+24
+40
+86
+a2
+98
+46
+7c
+00
+24
+21
+06
+b6
+68
+00
+cc
+27
+1f
+e6
+7c
+01
+24
+21
+06
+a6
+68
+00
+cc
+27
+c0
+00
+06
+b6
+20
+60
+00
+00
+58
+00
+00
+82
+20
+60
+00
+00
+58
+00
+00
+77
+20
+60
+00
+00
+58
+00
+00
+80
+20
+60
+00
+00
+58
+00
+00
+75
+20
+60
+00
+00
+68
+00
+cc
+27
+c1
+a3
+00
+00
+70
+4c
+27
+00
+68
+08
+cc
+29
+28
+0f
+fe
+23
+20
+40
+86
+a0
+24
+40
+86
+a4
+98
+46
+7c
+00
+24
+61
+00
+00
+68
+00
+cc
+28
+c0
+00
+06
+bd
+1f
+e0
+ff
+ff
+60
+00
+cc
+28
+c0
+00
+06
+bd
+70
+4c
+3d
+00
+20
+60
+00
+00
+68
+00
+cc
+28
+c0
+01
+06
+bb
+1f
+e0
+fe
+01
+60
+00
+cc
+28
+c0
+00
+86
+b4
+70
+4c
+3d
+02
+20
+60
+00
+00
+70
+4c
+3d
+04
+20
+60
+00
+00
+79
+20
+00
+23
+20
+40
+06
+c3
+70
+4b
+ef
+01
+20
+60
+00
+00
+70
+4b
+e0
+00
+70
+4b
+e9
+4e
+68
+02
+4b
+eb
+20
+20
+07
+48
+68
+00
+cb
+e6
+c0
+00
+b4
+df
+68
+00
+cb
+ef
+c0
+00
+86
+ce
+c0
+01
+06
+d1
+c0
+01
+86
+d4
+20
+20
+3b
+f1
+70
+4b
+ef
+11
+70
+0d
+37
+aa
+20
+20
+06
+d6
+70
+4b
+ef
+12
+70
+0d
+37
+55
+20
+20
+06
+d6
+70
+4b
+ef
+13
+70
+0d
+37
+22
+68
+00
+cb
+e2
+1f
+e1
+7e
+07
+60
+00
+8d
+38
+68
+02
+4c
+06
+60
+02
+0d
+39
+70
+0d
+3d
+00
+da
+20
+0d
+37
+d8
+40
+00
+07
+20
+40
+07
+13
+20
+40
+07
+56
+20
+40
+06
+1b
+20
+20
+34
+df
+68
+00
+cb
+ef
+c1
+7f
+80
+00
+c0
+08
+86
+e8
+c0
+09
+06
+ea
+c0
+09
+86
+ec
+20
+60
+00
+00
+70
+4b
+ef
+02
+20
+20
+06
+3f
+70
+4b
+ef
+03
+20
+20
+06
+3f
+70
+4b
+ef
+ff
+70
+0b
+7d
+31
+20
+40
+7c
+27
+68
+02
+0d
+19
+20
+40
+07
+48
+20
+20
+06
+3f
+c6
+11
+80
+00
+20
+40
+07
+49
+20
+40
+07
+70
+68
+00
+cb
+ef
+c1
+ff
+80
+00
+20
+40
+07
+05
+58
+00
+00
+00
+60
+01
+4c
+04
+20
+40
+3c
+ab
+20
+00
+07
+d0
+68
+00
+cc
+04
+c0
+7f
+86
+6e
+20
+40
+06
+5d
+24
+37
+87
+0e
+20
+40
+06
+55
+70
+4c
+13
+03
+79
+20
+00
+23
+70
+0b
+7d
+3c
+20
+20
+7c
+27
+70
+0d
+37
+ff
+68
+00
+cb
+e2
+60
+00
+8d
+38
+68
+02
+4c
+06
+60
+02
+0d
+39
+d8
+40
+00
+06
+da
+20
+0d
+37
+20
+40
+07
+13
+20
+20
+07
+56
+68
+01
+4c
+04
+1f
+e0
+fe
+01
+60
+01
+4c
+04
+20
+40
+07
+70
+20
+20
+06
+fa
+60
+08
+cb
+e1
+18
+42
+72
+00
+d8
+a0
+0c
+d5
+1a
+22
+0c
+00
+20
+20
+7e
+45
+68
+00
+8c
+b4
+1f
+e9
+7e
+00
+60
+00
+cb
+df
+1f
+e0
+fe
+01
+d8
+c0
+0c
+b4
+98
+c0
+8c
+00
+e8
+c1
+80
+00
+60
+01
+cc
+0b
+20
+60
+00
+00
+68
+08
+cc
+3c
+58
+00
+4c
+2b
+98
+40
+8a
+00
+1a
+22
+7e
+00
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+60
+08
+cc
+3c
+20
+60
+00
+00
+20
+40
+3a
+f3
+20
+7a
+00
+00
+68
+08
+cc
+3b
+da
+20
+4c
+33
+20
+40
+07
+31
+60
+08
+cc
+3b
+20
+60
+00
+00
+1a
+22
+7e
+00
+98
+40
+8a
+00
+68
+00
+80
+18
+e0
+a0
+80
+00
+18
+40
+84
+01
+18
+41
+04
+07
+20
+60
+00
+00
+d8
+40
+00
+00
+df
+20
+00
+08
+1a
+22
+0c
+00
+e8
+c0
+80
+00
+98
+40
+84
+00
+c2
+00
+07
+3b
+18
+49
+04
+00
+1f
+e2
+04
+00
+c6
+91
+80
+00
+1f
+e6
+fc
+0a
+20
+40
+7e
+fd
+18
+07
+fe
+00
+1f
+f2
+7e
+00
+18
+07
+04
+00
+98
+41
+84
+00
+20
+60
+00
+00
+60
+02
+4c
+00
+da
+20
+00
+00
+df
+20
+00
+04
+d8
+c0
+4c
+00
+e8
+c0
+80
+00
+9a
+20
+a2
+00
+c2
+00
+07
+4c
+1a
+22
+7e
+00
+60
+01
+4c
+16
+68
+00
+cc
+16
+68
+08
+cc
+17
+98
+40
+fe
+00
+60
+00
+cc
+18
+20
+60
+00
+00
+68
+00
+cb
+e1
+1f
+e0
+fe
+02
+60
+00
+cb
+e3
+68
+00
+cb
+e2
+60
+00
+8c
+f5
+68
+00
+cb
+e1
+1f
+e9
+fe
+00
+68
+08
+cb
+e0
+18
+41
+04
+03
+18
+43
+84
+00
+98
+41
+fe
+00
+68
+08
+cc
+0a
+98
+40
+fe
+00
+e0
+a0
+80
+00
+68
+00
+cb
+ef
+c0
+ff
+87
+68
+68
+00
+cb
+e2
+e0
+a0
+80
+00
+68
+00
+cb
+e1
+98
+00
+72
+00
+68
+00
+cb
+e2
+c0
+00
+87
+6e
+d8
+c0
+0c
+d5
+20
+20
+7e
+45
+d8
+c0
+0c
+d6
+20
+20
+7e
+45
+68
+08
+cb
+ea
+20
+40
+07
+76
+18
+40
+84
+01
+18
+41
+04
+03
+60
+08
+cb
+ea
+20
+60
+00
+00
+68
+00
+cc
+00
+1f
+e1
+7e
+03
+1f
+ef
+a2
+04
+58
+00
+4b
+f0
+9a
+20
+fe
+00
+98
+40
+8c
+00
+e8
+c0
+80
+00
+60
+00
+cb
+e9
+20
+60
+00
+00
+78
+44
+fc
+00
+78
+43
+fc
+00
+58
+55
+55
+55
+98
+00
+1e
+00
+68
+00
+cb
+e9
+1f
+ed
+84
+00
+79
+20
+04
+01
+18
+43
+1c
+00
+20
+60
+00
+00
+20
+40
+07
+7f
+78
+26
+fc
+00
+78
+30
+fc
+00
+78
+50
+7c
+00
+78
+28
+7c
+00
+68
+01
+4b
+e4
+98
+00
+36
+00
+37
+c1
+84
+00
+24
+2c
+07
+c9
+78
+46
+fc
+00
+78
+25
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+cc
+19
+68
+08
+cc
+18
+98
+46
+7c
+00
+24
+22
+87
+c6
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+8c
+b3
+68
+00
+cc
+10
+1f
+e6
+7c
+02
+20
+22
+87
+a5
+68
+00
+8c
+b3
+68
+08
+cb
+e2
+a8
+40
+0e
+00
+24
+20
+87
+c6
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+1f
+e9
+7e
+00
+1f
+e1
+72
+1f
+20
+22
+87
+af
+09
+80
+00
+08
+19
+89
+7e
+00
+e0
+a0
+80
+00
+c2
+00
+07
+ab
+18
+a2
+22
+00
+09
+80
+00
+08
+19
+89
+7e
+00
+60
+00
+cc
+2a
+1a
+22
+0a
+00
+09
+80
+00
+18
+78
+28
+7c
+00
+db
+60
+06
+64
+1f
+ef
+7e
+00
+1f
+f1
+7e
+00
+e0
+a1
+80
+00
+78
+45
+fc
+00
+20
+23
+07
+c6
+78
+37
+fc
+00
+68
+00
+80
+17
+1f
+e0
+a2
+00
+20
+40
+3a
+b6
+78
+46
+fc
+00
+20
+40
+3a
+7a
+68
+00
+cc
+2a
+1f
+e2
+22
+00
+20
+40
+07
+21
+20
+60
+00
+00
+78
+4d
+fc
+00
+78
+45
+fc
+00
+20
+20
+37
+5c
+20
+40
+07
+2a
+20
+20
+07
+c6
+20
+40
+3a
+7a
+68
+08
+cb
+e9
+20
+20
+3a
+91
+20
+40
+53
+d2
+68
+02
+4c
+00
+98
+00
+12
+00
+20
+40
+07
+7f
+20
+40
+07
+cb
+79
+20
+2a
+00
+78
+2e
+fc
+00
+78
+30
+7c
+00
+78
+50
+fc
+00
+19
+31
+7e
+00
+1f
+ec
+fe
+00
+1f
+f1
+fe
+00
+08
+00
+86
+28
+78
+4e
+fc
+00
+78
+2d
+fc
+00
+78
+23
+fc
+00
+78
+24
+fc
+00
+68
+00
+cc
+18
+08
+00
+86
+08
+68
+00
+cb
+e3
+98
+00
+72
+00
+d8
+c0
+0c
+f5
+e8
+c0
+80
+00
+08
+00
+86
+08
+c2
+00
+07
+e4
+78
+24
+7c
+00
+08
+00
+86
+18
+78
+44
+7c
+00
+37
+d3
+82
+00
+20
+00
+00
+64
+78
+4e
+fc
+00
+78
+4d
+fc
+00
+20
+60
+00
+00
+43
+70
+aa
+55
+ce
+35
+02
+05
+df
+02
+02
+ab
+e8
+64
+80
+f8
+e9
+33
+e8
+33
+60
+11
+04
+60
+f0
+ed
+33
+ec
+33
+70
+09
+e8
+fc
+e9
+fd
+ea
+fe
+eb
+ff
+22
+04
+60
+de
+d3
+eb
+9f
+ea
+9e
+e9
+9d
+e8
+c2
+e7
+8c
+f0
+c2
+f7
+95
+f0
+40
+0c
+e8
+cc
+f8
+e9
+cd
+f9
+ea
+ce
+fa
+eb
+cf
+fb
+12
+02
+76
+85
+d0
+f0
+58
+04
+70
+03
+20
+d5
+b3
+e8
+04
+70
+07
+50
+02
+b2
+d5
+02
+02
+b5
+92
+d5
+ec
+04
+60
+f7
+e4
+cc
+c0
+e0
+c3
+98
+f8
+60
+3b
+94
+18
+60
+08
+40
+0d
+d0
+e0
+fb
+02
+02
+8d
+e4
+fb
+fa
+c9
+fc
+80
+28
+e8
+30
+e4
+06
+e4
+c9
+fb
+e4
+ca
+fc
+e8
+30
+e3
+05
+e4
+c9
+ca
+cb
+fc
+e8
+54
+07
+60
+10
+f8
+c3
+e9
+13
+f9
+ea
+13
+fa
+eb
+13
+fb
+ec
+13
+fc
+d8
+f1
+30
+f5
+2f
+c3
+e4
+9c
+fc
+ef
+9b
+ff
+ee
+9a
+fe
+ed
+99
+fd
+d0
+e0
+fb
+ef
+4e
+4d
+4c
+70
+12
+22
+db
+03
+02
+02
+b2
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ed
+30
+e7
+eb
+02
+02
+8d
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+d0
+e0
+fb
+50
+13
+0b
+bb
+00
+03
+02
+02
+b5
+ed
+13
+fd
+ee
+13
+fe
+ef
+13
+ff
+ec
+13
+fc
+02
+02
+8d
+ec
+4d
+60
+11
+e8
+49
+70
+17
+ed
+33
+ec
+33
+04
+60
+0d
+e4
+fc
+ff
+fe
+fd
+22
+e9
+33
+e8
+33
+04
+70
+f8
+02
+02
+ab
+12
+02
+76
+58
+04
+60
+09
+e4
+cc
+24
+81
+50
+06
+28
+50
+09
+02
+02
+b5
+28
+40
+03
+02
+02
+b2
+c0
+e0
+eb
+4a
+70
+44
+b9
+80
+06
+d0
+e0
+fb
+02
+02
+a1
+ef
+4e
+70
+1c
+bd
+80
+08
+eb
+ff
+ea
+fe
+e9
+fd
+80
+eb
+e9
+8d
+f0
+a4
+fe
+e5
+f0
+02
+01
+e4
+e9
+cd
+f9
+ea
+fe
+eb
+ff
+ef
+89
+f0
+a4
+fc
+e5
+f0
+ce
+89
+f0
+a4
+2e
+ff
+e4
+35
+f0
+cd
+89
+f0
+a4
+2d
+fe
+e4
+35
+f0
+80
+67
+ef
+4e
+70
+05
+bd
+80
+d7
+80
+c3
+ef
+8b
+f0
+a4
+ac
+f0
+ee
+8b
+f0
+a4
+2c
+fc
+e4
+35
+f0
+f8
+ef
+8a
+f0
+a4
+2c
+e5
+f0
+38
+fc
+e4
+33
+cb
+8d
+f0
+a4
+2c
+fc
+e5
+f0
+3b
+f8
+ee
+8a
+f0
+a4
+2c
+fc
+e5
+f0
+38
+f8
+e4
+33
+cf
+89
+f0
+a4
+2c
+fc
+e5
+f0
+38
+cf
+34
+00
+ce
+89
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+33
+c9
+8d
+f0
+a4
+2e
+fe
+e5
+f0
+39
+cd
+8a
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+3d
+fd
+33
+d0
+e0
+fb
+50
+07
+0b
+bb
+00
+0f
+02
+02
+b5
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+02
+02
+8d
+75
+f0
+20
+80
+0e
+75
+f0
+10
+80
+05
+75
+f0
+08
+7d
+00
+7e
+00
+7f
+00
+33
+92
+d5
+30
+d5
+03
+12
+05
+57
+ec
+33
+40
+10
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+d5
+f0
+ed
+22
+e5
+f0
+24
+7e
+a2
+d5
+13
+cc
+92
+e7
+cd
+ce
+ff
+22
+ed
+d2
+e7
+cd
+33
+ec
+33
+92
+d5
+24
+81
+40
+06
+e4
+ff
+fe
+fd
+fc
+22
+fc
+e4
+cf
+ce
+cd
+cc
+24
+e0
+50
+11
+74
+ff
+80
+ed
+c3
+cc
+13
+cc
+cd
+13
+cd
+ce
+13
+ce
+cf
+13
+cf
+04
+70
+f0
+30
+d5
+de
+02
+05
+57
+e9
+d2
+e7
+c9
+33
+e8
+33
+f8
+92
+d5
+ed
+d2
+e7
+cd
+33
+ec
+33
+fc
+50
+02
+b2
+d5
+22
+ec
+30
+e7
+10
+0f
+bf
+00
+0c
+0e
+be
+00
+08
+0d
+bd
+00
+04
+0b
+eb
+60
+14
+a2
+d5
+eb
+13
+fc
+ed
+92
+e7
+fd
+22
+74
+ff
+fc
+fd
+fe
+ff
+22
+e4
+80
+f8
+a2
+d5
+74
+ff
+13
+fc
+7d
+80
+e4
+80
+ef
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+03
+10
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+e8
+8f
+f0
+a4
+cc
+8b
+f0
+a4
+2c
+fc
+e9
+8e
+f0
+a4
+2c
+fc
+8a
+f0
+ed
+a4
+2c
+fc
+ea
+8e
+f0
+a4
+cd
+a8
+f0
+8b
+f0
+a4
+2d
+cc
+38
+25
+f0
+fd
+e9
+8f
+f0
+a4
+2c
+cd
+35
+f0
+fc
+eb
+8e
+f0
+a4
+fe
+a9
+f0
+eb
+8f
+f0
+a4
+cf
+c5
+f0
+2e
+cd
+39
+fe
+e4
+3c
+fc
+ea
+a4
+2d
+ce
+35
+f0
+fd
+e4
+3c
+fc
+22
+75
+f0
+08
+75
+82
+00
+ef
+2f
+ff
+ee
+33
+fe
+cd
+33
+cd
+cc
+33
+cc
+c5
+82
+33
+c5
+82
+9b
+ed
+9a
+ec
+99
+e5
+82
+98
+40
+0c
+f5
+82
+ee
+9b
+fe
+ed
+9a
+fd
+ec
+99
+fc
+0f
+d5
+f0
+d6
+e4
+ce
+fb
+e4
+cd
+fa
+e4
+cc
+f9
+a8
+82
+22
+b8
+00
+c1
+b9
+00
+59
+ba
+00
+2d
+ec
+8b
+f0
+84
+cf
+ce
+cd
+fc
+e5
+f0
+cb
+f9
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+eb
+33
+fb
+10
+d7
+03
+99
+40
+04
+eb
+99
+fb
+0f
+d8
+e5
+e4
+f9
+fa
+22
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+c9
+33
+c9
+10
+d7
+05
+9b
+e9
+9a
+40
+07
+ec
+9b
+fc
+e9
+9a
+f9
+0f
+d8
+e0
+e4
+c9
+fa
+e4
+cc
+fb
+22
+75
+f0
+10
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+cc
+33
+cc
+c8
+33
+c8
+10
+d7
+07
+9b
+ec
+9a
+e8
+99
+40
+0a
+ed
+9b
+fd
+ec
+9a
+fc
+e8
+99
+f8
+0f
+d5
+f0
+da
+e4
+cd
+fb
+e4
+cc
+fa
+e4
+c8
+f9
+22
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+e4
+9d
+fd
+e4
+9c
+fc
+22
+eb
+9f
+f5
+f0
+ea
+9e
+42
+f0
+e9
+9d
+42
+f0
+e8
+9c
+45
+f0
+22
+ec
+f0
+a3
+ed
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+22
+a8
+82
+85
+83
+f0
+d0
+83
+d0
+82
+12
+05
+99
+12
+05
+99
+12
+05
+99
+12
+05
+99
+e4
+73
+e4
+93
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+f0
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+06
+26
+02
+1f
+af
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+06
+6b
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+4e
+45
+ff
+0a
+b3
+00
+00
+00
+ff
+21
+b9
+ff
+31
+ec
+00
+00
+00
+ff
+33
+6c
+00
+1a
+08
+09
+0a
+0b
+0c
+0d
+0e
+18
+19
+17
+15
+14
+13
+11
+16
+1b
+1c
+00
+00
+00
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+af
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+f2
+50
+4a
+4d
+00
+e1
+e5
+f6
+f7
+f5
+f4
+f1
+fa
+e3
+d1
+d3
+d2
+d4
+f8
+d5
+91
+d0
+af
+f9
+f3
+fb
+d6
+90
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+01
+01
+00
+90
+4e
+ee
+ef
+f0
+90
+4c
+f0
+e0
+70
+03
+02
+08
+5b
+90
+4c
+f0
+e0
+14
+f0
+e4
+90
+4d
+dd
+f0
+90
+4e
+ee
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+64
+01
+70
+70
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+eb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+7b
+90
+4e
+a8
+74
+10
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+fb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+f9
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+7f
+2b
+12
+08
+5c
+90
+4d
+dd
+74
+01
+f0
+e4
+90
+4c
+f0
+f0
+90
+44
+8b
+04
+f0
+22
+90
+4e
+ee
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+64
+02
+70
+46
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+eb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+62
+90
+4e
+a8
+74
+10
+f0
+12
+12
+06
+7f
+03
+11
+5c
+90
+42
+5e
+74
+01
+f0
+22
+90
+42
+74
+74
+ff
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7b
+01
+7a
+42
+79
+62
+7d
+10
+7c
+00
+12
+24
+cc
+7f
+03
+11
+5c
+90
+42
+5e
+74
+01
+f0
+22
+90
+4e
+cd
+ef
+f0
+78
+ce
+7c
+4e
+7d
+01
+7b
+ff
+7a
+07
+79
+34
+7e
+00
+7f
+03
+12
+03
+90
+90
+4e
+cd
+e0
+90
+4e
+d0
+f0
+7b
+01
+7a
+4e
+79
+ce
+7d
+03
+90
+4e
+9d
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4b
+9c
+e0
+ff
+a3
+e0
+90
+4e
+a1
+cf
+f0
+a3
+ef
+f0
+90
+4b
+9a
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9c
+e0
+fc
+a3
+e0
+fd
+7b
+64
+12
+34
+f2
+90
+4e
+a0
+e0
+fe
+ef
+c3
+9e
+40
+e1
+90
+4e
+a0
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+4e
+9d
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+a1
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+4e
+a1
+e0
+fe
+a3
+e0
+ff
+be
+4b
+c6
+bf
+36
+c3
+90
+4e
+a1
+74
+4a
+f0
+a3
+74
+a0
+f0
+80
+b7
+90
+4e
+a1
+e0
+ff
+a3
+e0
+90
+4b
+9c
+cf
+f0
+a3
+ef
+f0
+22
+90
+4e
+f1
+ef
+f0
+14
+b4
+0d
+00
+40
+02
+41
+ad
+90
+09
+34
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+09
+5b
+02
+09
+5b
+02
+09
+5b
+02
+0a
+ad
+02
+09
+a2
+02
+09
+d6
+02
+09
+df
+02
+0a
+2c
+02
+0a
+2c
+02
+0a
+6d
+02
+0a
+ad
+02
+0a
+ad
+02
+09
+9a
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+0d
+7f
+22
+11
+5c
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+90
+4e
+f1
+e0
+14
+90
+4d
+d1
+f0
+90
+42
+13
+74
+05
+f0
+90
+4c
+f0
+f0
+7f
+04
+11
+5c
+7f
+0a
+f1
+7b
+7f
+2a
+11
+5c
+e4
+90
+4c
+ed
+f0
+22
+7f
+0e
+11
+5c
+7f
+02
+01
+5c
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+0f
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+90
+4d
+e2
+74
+03
+f0
+22
+f1
+eb
+e4
+90
+41
+31
+f0
+12
+20
+05
+7f
+0d
+11
+5c
+e4
+90
+4c
+ed
+f0
+22
+12
+18
+b4
+e4
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+12
+24
+cc
+90
+4c
+c0
+74
+ff
+f0
+a3
+f0
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+d1
+b2
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+09
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7f
+21
+11
+5c
+90
+4c
+c5
+74
+02
+f0
+e4
+a3
+f0
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+09
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+90
+4c
+c5
+e0
+64
+01
+60
+18
+7f
+23
+11
+5c
+90
+4c
+c5
+74
+01
+f0
+e4
+a3
+f0
+90
+4c
+ee
+74
+f0
+f0
+e4
+90
+4c
+e9
+f0
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+ed
+f0
+22
+90
+4e
+f6
+ef
+f0
+12
+05
+b3
+0c
+52
+01
+0d
+17
+02
+0d
+08
+04
+0c
+74
+06
+0c
+d1
+0a
+0d
+08
+13
+0d
+d1
+14
+0e
+59
+15
+0b
+7f
+27
+0e
+20
+29
+0c
+c9
+2a
+0a
+fe
+2f
+0b
+7c
+30
+0b
+d1
+31
+0c
+16
+32
+0a
+fe
+33
+0d
+fc
+34
+0e
+3a
+35
+0b
+c9
+37
+0b
+7f
+39
+0b
+d1
+3c
+00
+00
+0e
+b1
+f1
+f5
+12
+17
+cb
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+12
+20
+30
+90
+4c
+f2
+e0
+b4
+ff
+1f
+a3
+e0
+b4
+ff
+1a
+90
+4c
+93
+e0
+a3
+e0
+90
+4c
+f2
+f0
+90
+4c
+91
+e0
+a3
+e0
+90
+4c
+f3
+f0
+90
+4c
+bf
+74
+01
+f0
+02
+1f
+bd
+02
+11
+06
+90
+4c
+c3
+e0
+ff
+d3
+94
+00
+50
+02
+c1
+b1
+ef
+94
+04
+40
+02
+c1
+b1
+ef
+75
+f0
+1d
+a4
+24
+c7
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1d
+7c
+00
+12
+24
+cc
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+c1
+b2
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+74
+03
+f0
+e4
+a3
+f0
+f1
+eb
+90
+4c
+e5
+e0
+70
+06
+d2
+01
+7f
+1d
+d1
+b2
+e4
+90
+4c
+ee
+f0
+90
+4c
+eb
+f0
+90
+4c
+c0
+74
+fe
+f0
+90
+4c
+c3
+f0
+90
+4e
+f6
+e0
+b4
+31
+0d
+90
+4c
+e5
+74
+1e
+f0
+90
+4c
+bf
+74
+02
+f0
+22
+90
+4c
+bf
+74
+01
+f0
+22
+e4
+90
+4c
+c5
+f0
+a3
+f0
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+ed
+e0
+60
+09
+f1
+eb
+90
+4c
+ed
+e0
+ff
+21
+19
+90
+4c
+ec
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+f0
+e0
+70
+02
+c1
+b1
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c9
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+47
+f4
+e0
+a3
+20
+e7
+02
+c1
+b1
+90
+4d
+d4
+74
+32
+f0
+22
+90
+4c
+c9
+74
+04
+f0
+e4
+a3
+f0
+7f
+0e
+11
+5c
+7f
+02
+11
+5c
+e4
+90
+4c
+e3
+f0
+a3
+f0
+a3
+e0
+70
+02
+f1
+9c
+e4
+90
+4c
+e9
+f0
+f1
+eb
+e4
+90
+4c
+eb
+f0
+90
+4d
+d4
+f0
+90
+42
+13
+74
+1a
+f0
+e4
+90
+4d
+da
+f0
+90
+00
+40
+e0
+60
+fa
+7f
+05
+11
+5c
+12
+23
+e6
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+7f
+04
+11
+5c
+7f
+0a
+e1
+7b
+e4
+90
+05
+4f
+f0
+90
+4d
+d7
+04
+f0
+e4
+90
+4d
+d4
+f0
+90
+47
+f4
+e0
+a3
+30
+e7
+0f
+90
+4d
+da
+74
+01
+f0
+90
+05
+4f
+74
+04
+f0
+ff
+01
+5c
+e4
+90
+4c
+f0
+f0
+90
+4c
+ca
+74
+02
+f0
+90
+4c
+c9
+04
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+08
+e4
+90
+4c
+c9
+f0
+a3
+f0
+22
+90
+4c
+c9
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c9
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+d4
+f0
+90
+4d
+da
+e0
+64
+01
+70
+4b
+90
+4c
+c3
+e0
+ff
+d3
+94
+00
+40
+3c
+ef
+94
+04
+50
+37
+ef
+75
+f0
+1d
+a4
+24
+c7
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1d
+7c
+00
+12
+24
+cc
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+d1
+b2
+e4
+90
+4d
+da
+f0
+90
+4c
+ec
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+ed
+e0
+ff
+60
+02
+21
+19
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+e0
+64
+01
+70
+02
+c1
+b1
+90
+4e
+f6
+e0
+64
+13
+70
+02
+c1
+b1
+90
+4c
+cb
+e0
+64
+04
+60
+06
+7f
+05
+31
+19
+80
+02
+f1
+93
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+a3
+f0
+a3
+f0
+7f
+0e
+11
+5c
+7f
+02
+11
+5c
+90
+4c
+e5
+e0
+70
+02
+f1
+9c
+e4
+90
+4c
+e9
+f0
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
+a3
+f0
+f1
+eb
+e4
+90
+4c
+eb
+f0
+90
+41
+31
+04
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4c
+c3
+e0
+14
+fd
+7f
+01
+12
+11
+2f
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4d
+39
+12
+05
+82
+00
+00
+00
+00
+e4
+90
+4d
+d2
+f0
+90
+4d
+d7
+04
+f0
+90
+4c
+c8
+04
+f0
+90
+4c
+c7
+04
+f0
+22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+a3
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+ed
+e0
+ff
+60
+02
+21
+19
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+cb
+e0
+64
+04
+60
+04
+f1
+93
+80
+11
+90
+4d
+38
+e0
+60
+04
+f1
+93
+80
+07
+90
+4c
+c3
+e0
+ff
+31
+19
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+ef
+f4
+60
+0d
+7b
+01
+7a
+80
+79
+74
+a2
+01
+92
+00
+12
+10
+88
+22
+90
+4d
+e1
+e0
+64
+02
+60
+02
+e1
+7a
+90
+4c
+e9
+e0
+60
+48
+90
+4c
+cc
+e0
+64
+01
+60
+2c
+90
+4c
+c3
+e0
+b4
+01
+06
+7f
+1f
+f1
+cf
+80
+49
+90
+4c
+c3
+e0
+b4
+02
+06
+7f
+1e
+f1
+cf
+80
+3c
+90
+4c
+c3
+e0
+64
+03
+70
+34
+7f
+1f
+f1
+cf
+7f
+1d
+f1
+cf
+80
+2a
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1e
+d1
+b2
+d2
+01
+7f
+1d
+d1
+b2
+80
+16
+90
+4c
+ee
+e0
+60
+10
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1e
+d1
+b2
+7f
+1d
+f1
+cf
+12
+17
+e8
+ef
+60
+42
+90
+4c
+e6
+e0
+60
+16
+14
+f0
+c2
+01
+7f
+10
+d1
+b2
+90
+4c
+e6
+e0
+70
+0e
+d2
+01
+7f
+10
+d1
+b2
+80
+06
+d2
+01
+7f
+10
+d1
+b2
+90
+4c
+e7
+e0
+60
+14
+14
+f0
+c2
+01
+7f
+0f
+d1
+b2
+90
+4c
+e7
+e0
+70
+0c
+d2
+01
+7f
+0f
+c1
+b2
+d2
+01
+7f
+0f
+d1
+b2
+22
+ef
+d3
+94
+00
+40
+11
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+1f
+80
+e9
+22
+e4
+90
+4d
+38
+f0
+7f
+19
+01
+5c
+90
+4c
+c3
+e0
+b4
+01
+06
+d2
+01
+7f
+1f
+c1
+b2
+90
+4c
+c3
+e0
+b4
+02
+06
+d2
+01
+7f
+1e
+c1
+b2
+90
+4c
+c3
+e0
+b4
+03
+0c
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1d
+c1
+b2
+d2
+01
+7f
+1d
+c1
+b2
+90
+4e
+fa
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+1f
+70
+92
+09
+90
+4e
+fa
+e0
+ff
+a2
+09
+b3
+92
+01
+c1
+b2
+e4
+90
+4c
+f0
+f0
+90
+4d
+dd
+f0
+22
+12
+11
+06
+d2
+06
+7f
+10
+12
+10
+1b
+d2
+06
+7f
+0f
+11
+1b
+d2
+06
+7f
+1f
+11
+1b
+d2
+06
+7f
+1e
+11
+1b
+d2
+06
+7f
+1d
+11
+1b
+d2
+06
+7f
+1d
+ac
+07
+ec
+f4
+60
+15
+af
+04
+d2
+04
+11
+48
+af
+04
+a2
+06
+92
+01
+12
+0e
+b2
+af
+04
+c2
+02
+11
+37
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+78
+a2
+02
+92
+00
+11
+88
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+70
+a2
+04
+92
+00
+11
+88
+22
+ac
+07
+ec
+f4
+60
+17
+af
+04
+a2
+05
+92
+03
+11
+77
+af
+04
+a2
+05
+b3
+92
+02
+11
+37
+af
+04
+c2
+04
+11
+48
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+7c
+a2
+03
+92
+00
+11
+88
+22
+90
+4e
+e3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+00
+22
+90
+4e
+e3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+02
+03
+fc
+90
+4e
+e3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
+e4
+90
+4e
+f3
+f0
+f0
+90
+4e
+f3
+e0
+ff
+c3
+94
+08
+50
+0c
+c2
+05
+11
+59
+90
+4e
+f3
+e0
+04
+f0
+80
+ea
+22
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+11
+e9
+e4
+90
+4e
+f4
+f0
+f0
+90
+4e
+f4
+e0
+90
+06
+81
+93
+ff
+60
+0c
+c2
+05
+11
+59
+90
+4e
+f4
+e0
+04
+f0
+80
+e9
+22
+90
+4e
+e7
+ed
+f0
+90
+4e
+e6
+ef
+f0
+64
+01
+70
+70
+a3
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+74
+01
+f0
+ef
+75
+f0
+1d
+a4
+24
+e5
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+03
+79
+d0
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+eb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+44
+79
+7b
+90
+4e
+a8
+74
+10
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+fb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+44
+79
+f9
+90
+4e
+a8
+74
+06
+f0
+80
+59
+90
+4e
+e6
+e0
+64
+02
+70
+50
+a3
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+74
+02
+f0
+ef
+75
+f0
+1d
+a4
+24
+e5
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+00
+79
+40
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+eb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+42
+79
+62
+90
+4e
+a8
+74
+10
+f0
+51
+06
+22
+90
+4e
+a3
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+a8
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+4e
+a5
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+a3
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+4e
+a9
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+90
+4d
+db
+f0
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+05
+50
+2c
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+b4
+af
+06
+90
+4d
+db
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+ca
+90
+4d
+db
+e0
+90
+4d
+e0
+f0
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+2a
+11
+ef
+60
+02
+81
+af
+90
+4e
+a9
+e0
+a3
+e0
+fa
+a3
+e0
+4a
+70
+02
+81
+af
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+03
+f0
+90
+4d
+de
+74
+0a
+f0
+e4
+90
+4c
+e3
+f0
+a3
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+4e
+79
+3c
+7d
+09
+7c
+00
+b1
+6d
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+b4
+2e
+0a
+90
+00
+02
+12
+03
+cf
+64
+29
+60
+0e
+ef
+64
+29
+70
+23
+90
+00
+02
+12
+03
+cf
+b4
+2e
+1a
+90
+4c
+c5
+e0
+64
+01
+60
+09
+90
+4c
+ce
+e0
+44
+10
+f0
+80
+10
+90
+4c
+ce
+e0
+54
+ef
+f0
+80
+07
+90
+4c
+ce
+e0
+54
+ef
+f0
+90
+4c
+b6
+74
+01
+f0
+90
+4c
+f4
+e0
+b4
+01
+2a
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4c
+f5
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+e4
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+90
+4c
+f4
+74
+02
+f0
+22
+90
+4c
+c5
+e0
+64
+03
+70
+45
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+05
+50
+37
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+64
+39
+60
+09
+ef
+64
+53
+60
+04
+ef
+b4
+47
+06
+90
+4d
+d0
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+bf
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+2c
+70
+90
+4e
+3b
+e0
+b4
+01
+11
+74
+02
+f0
+90
+4e
+3c
+f0
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+81
+b0
+90
+4e
+3b
+e0
+b4
+03
+16
+e4
+f0
+90
+4d
+e3
+f0
+90
+4e
+3c
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+81
+b0
+90
+48
+00
+74
+01
+f0
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+90
+48
+01
+f0
+e4
+a3
+f0
+90
+4d
+d8
+f0
+90
+00
+01
+12
+03
+cf
+b4
+af
+1e
+7e
+48
+7f
+03
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+02
+f9
+e4
+3a
+fa
+90
+4e
+a8
+74
+05
+f0
+51
+06
+80
+1c
+7e
+48
+7f
+03
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+ad
+74
+03
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+09
+50
+25
+74
+00
+2f
+f5
+82
+e4
+34
+48
+f5
+83
+e0
+b4
+af
+0f
+90
+4e
+ad
+e0
+24
+00
+f5
+82
+e4
+34
+48
+f5
+83
+e4
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+d1
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+22
+90
+4e
+bd
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+12
+18
+05
+ef
+70
+02
+a1
+6c
+90
+4c
+eb
+e0
+60
+02
+a1
+6c
+90
+4c
+c9
+e0
+b4
+04
+10
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+f1
+9f
+90
+4c
+c7
+e0
+b4
+04
+10
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+f1
+97
+90
+4c
+c5
+e0
+64
+03
+70
+68
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+64
+01
+70
+2e
+90
+00
+01
+12
+03
+cf
+70
+1e
+90
+00
+03
+12
+03
+cf
+70
+16
+90
+00
+04
+12
+03
+cf
+70
+0e
+90
+00
+05
+12
+03
+cf
+70
+06
+90
+4d
+d6
+f0
+80
+28
+90
+4d
+d6
+74
+01
+f0
+80
+20
+ef
+b4
+02
+1c
+90
+00
+01
+12
+03
+cf
+70
+0e
+90
+00
+02
+12
+03
+cf
+70
+06
+90
+4d
+d6
+f0
+80
+06
+90
+4d
+d6
+74
+01
+f0
+90
+4e
+c0
+e0
+fd
+f1
+6b
+22
+90
+4e
+dd
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+4e
+dd
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+e4
+12
+03
+fc
+80
+e0
+22
+7b
+01
+7a
+4c
+79
+bf
+7d
+42
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+93
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+a8
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+b1
+6d
+7b
+01
+7a
+4e
+79
+3c
+7d
+09
+7c
+00
+b1
+6d
+e4
+90
+4d
+de
+f0
+90
+4d
+e2
+f0
+90
+4d
+d4
+f0
+90
+4d
+da
+f0
+90
+4d
+d7
+f0
+90
+4d
+e1
+f0
+90
+4d
+d6
+f0
+90
+4d
+d0
+f0
+90
+4d
+dd
+f0
+90
+4d
+dc
+f0
+90
+4e
+3b
+f0
+90
+4d
+d5
+f0
+90
+4d
+d8
+f0
+90
+4d
+db
+f0
+90
+4d
+e0
+f0
+90
+4d
+d3
+f0
+90
+4d
+df
+f0
+90
+4d
+e3
+f0
+90
+4d
+d9
+f0
+90
+4d
+38
+f0
+22
+90
+4d
+d0
+e0
+64
+01
+70
+2f
+90
+4d
+d6
+e0
+70
+29
+90
+4c
+c5
+e0
+64
+03
+70
+4c
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+90
+4d
+d0
+74
+02
+f0
+e4
+90
+4e
+3b
+f0
+22
+90
+4d
+d0
+e0
+b4
+02
+24
+90
+4d
+d6
+e0
+70
+1e
+90
+4d
+d0
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+e4
+90
+4e
+3b
+f0
+22
+90
+4e
+d4
+e4
+f0
+a3
+f0
+a3
+f0
+f1
+b3
+50
+25
+12
+25
+43
+90
+4e
+d4
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+07
+90
+4c
+b6
+04
+f0
+c1
+33
+90
+4e
+d4
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+51
+49
+22
+90
+4e
+e8
+ef
+f0
+a3
+ed
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+b1
+6d
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4e
+e8
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+90
+4e
+e9
+e0
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+81
+b0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+03
+02
+27
+9c
+90
+4c
+f4
+e0
+ff
+60
+08
+64
+01
+60
+04
+ef
+b4
+03
+02
+c1
+96
+90
+4c
+f4
+e0
+b4
+02
+0b
+74
+03
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+80
+91
+90
+4c
+f4
+e0
+b4
+04
+13
+e4
+90
+4c
+f6
+f0
+90
+4c
+f4
+74
+05
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+c1
+c9
+90
+4c
+f4
+e0
+b4
+05
+11
+e4
+a3
+f0
+a3
+f0
+90
+4c
+f4
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+d1
+c9
+22
+90
+0b
+e7
+74
+06
+f0
+90
+4e
+f7
+ed
+f0
+e0
+fd
+90
+0b
+e8
+f0
+7e
+0b
+7f
+e9
+90
+4e
+a8
+ed
+f0
+51
+06
+7b
+01
+7a
+0b
+79
+e7
+90
+4e
+f7
+e0
+24
+02
+fd
+02
+08
+84
+90
+0b
+e7
+74
+05
+f0
+80
+d2
+90
+0b
+e7
+74
+03
+f0
+ed
+60
+02
+f1
+71
+22
+90
+0b
+e7
+74
+04
+f0
+80
+be
+90
+4b
+9c
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9a
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+b1
+99
+12
+33
+7c
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+e5
+74
+1e
+f0
+e4
+90
+4c
+f0
+f0
+90
+4d
+00
+74
+ff
+f0
+22
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+03
+7f
+01
+22
+7f
+00
+22
+e4
+90
+4e
+ef
+f0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+47
+f5
+e0
+30
+e3
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+ee
+e0
+60
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+c9
+e0
+70
+45
+90
+4c
+c7
+e0
+70
+3f
+90
+4c
+c5
+e0
+64
+03
+60
+37
+90
+4c
+ef
+e0
+70
+3b
+74
+0a
+f0
+a3
+e0
+70
+34
+90
+4d
+e1
+e0
+64
+02
+70
+2c
+90
+4c
+c3
+e0
+ff
+c3
+94
+01
+40
+0b
+ef
+d3
+94
+03
+50
+05
+12
+09
+19
+80
+17
+7f
+09
+12
+09
+19
+90
+4e
+ef
+74
+01
+f0
+80
+0a
+e4
+90
+4c
+eb
+f0
+90
+4e
+ef
+04
+f0
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+c9
+e0
+b4
+02
+08
+7f
+1e
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c7
+e0
+b4
+02
+08
+7f
+0e
+12
+08
+5c
+7f
+01
+22
+7f
+00
+22
+90
+4c
+c9
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+08
+7f
+04
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c7
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+08
+7f
+11
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+08
+7f
+22
+12
+08
+5c
+7f
+01
+22
+7f
+00
+22
+90
+4c
+ce
+e0
+30
+e0
+18
+a3
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+cf
+e0
+b4
+02
+0c
+7f
+05
+12
+09
+19
+80
+05
+e4
+90
+4c
+cf
+f0
+90
+4c
+ce
+e0
+30
+e1
+3e
+90
+4c
+d0
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d0
+e0
+64
+b4
+70
+2f
+90
+4d
+dc
+e0
+04
+f0
+e0
+d3
+94
+02
+50
+07
+e4
+90
+4c
+d0
+f0
+80
+1c
+90
+4d
+dc
+e0
+b4
+03
+15
+90
+4d
+d5
+74
+01
+f0
+e4
+90
+4c
+d0
+f0
+12
+0f
+93
+80
+05
+e4
+90
+4d
+dc
+f0
+90
+4c
+ce
+e0
+30
+e4
+31
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d1
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d1
+e0
+b4
+06
+1d
+90
+4c
+c3
+e0
+ff
+60
+03
+b4
+fe
+13
+11
+b4
+7f
+0a
+12
+0f
+7b
+7f
+0a
+12
+09
+19
+80
+05
+e4
+90
+4c
+d1
+f0
+90
+4c
+ce
+e0
+30
+e3
+48
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d2
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d2
+e0
+64
+06
+70
+64
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+7f
+05
+12
+09
+19
+12
+0f
+f8
+e4
+90
+4c
+cc
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+c0
+e0
+90
+4c
+c4
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+22
+90
+4c
+cc
+e0
+60
+2b
+e4
+f0
+90
+4c
+c3
+e0
+ff
+90
+4c
+c0
+e0
+6f
+60
+1d
+90
+4c
+eb
+74
+01
+f0
+12
+0f
+f8
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+11
+b4
+51
+27
+71
+46
+e4
+90
+4c
+d2
+f0
+22
+90
+4c
+bf
+e0
+ff
+60
+68
+64
+03
+60
+05
+7f
+c8
+12
+0f
+7b
+c2
+01
+7f
+ff
+12
+0e
+b2
+90
+4c
+bf
+e0
+b4
+02
+10
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+51
+97
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+51
+97
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+51
+97
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+51
+97
+d2
+01
+7f
+ff
+12
+0e
+b2
+7f
+0a
+12
+0f
+7b
+e4
+90
+4c
+bf
+f0
+22
+90
+4e
+77
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+79
+e0
+70
+02
+a3
+e0
+70
+02
+61
+45
+90
+4e
+77
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+4e
+7e
+f0
+a3
+ef
+f0
+90
+4e
+79
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+4e
+7e
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+4e
+7e
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+4e
+7a
+e0
+9d
+f0
+90
+4e
+79
+e0
+9c
+f0
+90
+4e
+77
+e0
+fe
+a3
+e0
+ff
+90
+4e
+7b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+20
+e8
+7f
+0a
+12
+0f
+7b
+90
+4e
+7e
+e0
+fe
+a3
+e0
+ff
+90
+4e
+7c
+ee
+8f
+f0
+12
+04
+0e
+90
+4e
+78
+e0
+2f
+f0
+90
+4e
+77
+e0
+3e
+f0
+41
+ae
+22
+90
+80
+10
+74
+01
+f0
+80
+fe
+22
+f1
+57
+91
+fe
+12
+17
+03
+51
+27
+12
+32
+a6
+90
+0b
+7e
+e0
+14
+60
+0d
+24
+fe
+70
+eb
+71
+a6
+12
+0f
+f8
+91
+f0
+80
+fe
+90
+4c
+ea
+e0
+70
+24
+90
+4c
+ec
+e0
+70
+1e
+90
+4c
+e5
+e0
+70
+18
+90
+4c
+e2
+e0
+70
+12
+90
+4c
+e7
+e0
+70
+0c
+90
+4c
+e6
+e0
+70
+06
+90
+4c
+e8
+e0
+60
+04
+f1
+b1
+80
+b4
+71
+a6
+91
+f0
+80
+ae
+80
+ac
+22
+e4
+ff
+90
+4e
+f5
+f0
+fe
+fd
+ef
+90
+06
+81
+93
+60
+49
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+0f
+80
+b0
+12
+35
+98
+90
+81
+1c
+e0
+90
+4e
+f5
+f0
+90
+4c
+d5
+e0
+64
+02
+60
+36
+90
+4d
+d5
+e0
+60
+20
+e4
+ff
+91
+51
+7f
+01
+91
+51
+7f
+02
+91
+51
+7f
+03
+91
+51
+7f
+04
+91
+51
+7f
+05
+91
+51
+7f
+06
+91
+51
+7f
+07
+80
+1a
+90
+4e
+f5
+e0
+ff
+90
+00
+a3
+f0
+ef
+f4
+90
+00
+a7
+f0
+22
+e4
+90
+00
+a3
+f0
+90
+00
+a7
+f0
+22
+90
+4e
+f9
+ef
+f0
+f1
+6a
+92
+08
+90
+4e
+f9
+e0
+ff
+a2
+08
+b3
+92
+07
+ef
+f4
+70
+02
+81
+ef
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+07
+43
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a3
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+e4
+90
+0b
+7f
+f0
+90
+0b
+7e
+f0
+7f
+01
+02
+0f
+7b
+7a
+0c
+79
+4b
+90
+4e
+da
+74
+01
+f0
+a3
+74
+0c
+f0
+a3
+74
+4b
+f0
+90
+4b
+a0
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9e
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+c1
+ad
+7e
+0c
+7f
+4b
+7d
+03
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+b4
+02
+2b
+90
+4e
+db
+e4
+75
+f0
+02
+12
+04
+0e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+90
+4e
+57
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+05
+dd
+c1
+ad
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+04
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+5a
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+c1
+ad
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+05
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+63
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+6d
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+03
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+66
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+02
+80
+fe
+90
+4b
+a5
+e0
+fe
+a3
+e0
+ff
+90
+4c
+5e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+22
+90
+4e
+5d
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+37
+12
+05
+d9
+90
+4b
+a5
+e0
+ff
+a3
+e0
+90
+4c
+5e
+cf
+f0
+a3
+ef
+f0
+80
+ca
+90
+4c
+8d
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+4e
+60
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+05
+d9
+90
+4c
+8d
+e0
+a3
+f0
+80
+dd
+22
+90
+4e
+ec
+ee
+f0
+a3
+ef
+f0
+a9
+05
+90
+4b
+9e
+e0
+fe
+a3
+e0
+ff
+ad
+01
+19
+ed
+60
+2f
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+4e
+ec
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ed
+f0
+ad
+07
+ac
+06
+bc
+4b
+d4
+bd
+9a
+d1
+7e
+4b
+7f
+36
+80
+cb
+90
+4b
+9e
+ee
+f0
+a3
+ef
+f0
+22
+7b
+01
+7a
+4e
+79
+45
+78
+57
+7c
+4e
+7d
+01
+7e
+00
+7f
+12
+02
+03
+90
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+4e
+f8
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4e
+f8
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+61
+4f
+90
+0b
+7f
+74
+01
+f0
+e4
+90
+0b
+7e
+f0
+22
+90
+4d
+e1
+74
+02
+f0
+90
+4c
+c0
+e0
+d3
+94
+03
+40
+02
+e4
+f0
+90
+4c
+c0
+e0
+90
+4c
+c3
+f0
+d3
+94
+03
+50
+0a
+e0
+ff
+c3
+94
+01
+40
+03
+02
+09
+19
+90
+4c
+00
+e0
+b4
+ff
+14
+a3
+e0
+b4
+ff
+0f
+a3
+e0
+b4
+ff
+0a
+a3
+e0
+b4
+ff
+05
+7f
+01
+02
+09
+19
+7f
+08
+02
+09
+19
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+11
+30
+90
+4c
+f2
+e0
+04
+f0
+a3
+e0
+04
+f0
+90
+4c
+f2
+e0
+90
+44
+fa
+f0
+90
+4c
+f3
+e0
+90
+44
+fb
+f0
+22
+90
+4e
+b8
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+4e
+b8
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+11
+e0
+90
+4e
+ba
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+0b
+79
+83
+90
+4e
+b8
+e0
+a3
+e0
+90
+4e
+a8
+f0
+02
+12
+06
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+90
+4e
+96
+ee
+f0
+a3
+ef
+f0
+90
+4e
+9a
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+98
+ec
+f0
+a3
+ed
+f0
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+90
+4e
+83
+c9
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7b
+01
+7a
+0b
+79
+86
+31
+fd
+90
+0b
+83
+74
+a0
+f0
+90
+4e
+96
+e0
+ff
+a3
+e0
+90
+0b
+84
+cf
+f0
+a3
+ef
+f0
+90
+4e
+99
+e0
+24
+03
+fd
+90
+4e
+98
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+01
+e0
+90
+4d
+e2
+e0
+60
+30
+e0
+14
+f0
+e0
+70
+2a
+90
+4c
+ed
+e0
+b4
+05
+23
+90
+47
+f5
+e0
+20
+e3
+1c
+e4
+90
+41
+31
+f0
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+11
+05
+7f
+0d
+12
+08
+5c
+e4
+90
+4c
+ed
+f0
+22
+12
+0e
+c4
+90
+4c
+e4
+e0
+04
+f0
+70
+06
+90
+4c
+e3
+e0
+04
+f0
+31
+ec
+51
+8f
+12
+18
+f6
+31
+82
+51
+41
+90
+4c
+ca
+e0
+64
+02
+60
+07
+90
+4c
+c8
+e0
+b4
+02
+07
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+d3
+e0
+60
+0a
+14
+f0
+e0
+70
+05
+74
+05
+f0
+71
+06
+22
+90
+4e
+80
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+86
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+83
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+80
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4c
+e9
+e0
+60
+24
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+e9
+e0
+14
+f0
+e0
+70
+14
+90
+4c
+c4
+e0
+90
+4c
+c3
+f0
+90
+4c
+c0
+f0
+7f
+0d
+12
+09
+19
+12
+0f
+93
+90
+4c
+ee
+e0
+60
+1d
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+ee
+e0
+14
+f0
+e0
+70
+0d
+7f
+22
+12
+08
+5c
+7f
+0a
+12
+0f
+7b
+12
+0f
+93
+22
+90
+4c
+c9
+e0
+64
+04
+60
+07
+90
+4c
+c7
+e0
+b4
+04
+18
+90
+4c
+e3
+e0
+64
+0e
+70
+04
+a3
+e0
+64
+10
+70
+59
+12
+18
+b4
+90
+4c
+ec
+74
+01
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+11
+90
+4c
+e3
+e0
+64
+0e
+70
+04
+a3
+e0
+64
+10
+70
+3a
+02
+0f
+93
+90
+4c
+c5
+e0
+b4
+01
+14
+90
+4c
+e3
+e0
+70
+04
+a3
+e0
+64
+28
+70
+24
+7f
+22
+12
+08
+5c
+02
+0f
+93
+90
+4c
+e3
+e0
+70
+04
+a3
+e0
+64
+14
+70
+10
+90
+4d
+dd
+e0
+60
+07
+e4
+f0
+7f
+0e
+12
+08
+5c
+12
+0f
+93
+22
+90
+4e
+b4
+12
+05
+82
+00
+00
+00
+00
+90
+4c
+95
+e0
+fe
+a3
+e0
+ff
+90
+4c
+d4
+e0
+fd
+04
+f0
+ed
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+ee
+f0
+a3
+ef
+f0
+90
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
+e4
+90
+4e
+b3
+f0
+90
+4e
+b4
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+90
+4e
+b3
+e0
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+eb
+2f
+ff
+ea
+3e
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4e
+b4
+12
+05
+76
+90
+4e
+b3
+e0
+04
+f0
+e0
+b4
+04
+bf
+90
+4e
+b4
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+04
+fa
+f9
+f8
+12
+04
+c5
+90
+4e
+b4
+12
+05
+76
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+d7
+e0
+9f
+90
+4c
+d6
+e0
+9e
+50
+07
+90
+4c
+d5
+74
+02
+f0
+22
+90
+4c
+de
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+b4
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+07
+90
+4c
+d5
+74
+01
+f0
+22
+e4
+90
+4c
+d5
+f0
+22
+90
+4c
+c3
+e0
+14
+90
+4e
+f0
+f0
+e4
+90
+4d
+d7
+f0
+90
+4e
+f0
+e0
+fd
+7f
+02
+12
+11
+2f
+90
+4e
+f0
+e0
+ff
+60
+3c
+90
+4d
+e4
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4d
+79
+e5
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4d
+79
+e4
+7d
+1d
+7c
+00
+91
+cc
+90
+4e
+f0
+e0
+ff
+64
+01
+60
+3c
+90
+4e
+01
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+02
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+01
+7d
+1d
+7c
+00
+91
+cc
+90
+4e
+f0
+e0
+ff
+64
+02
+60
+3c
+90
+4e
+1e
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+1f
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+1e
+7d
+1d
+7c
+00
+91
+cc
+22
+90
+4e
+e0
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+4e
+e0
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+74
+ff
+12
+03
+fc
+80
+df
+22
+90
+4e
+8f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+4e
+95
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+4e
+92
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+90
+4e
+8f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+e4
+90
+4e
+69
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+30
+54
+7a
+4d
+79
+a8
+90
+4e
+92
+74
+01
+f0
+a3
+74
+4d
+f0
+a3
+74
+a8
+f0
+a3
+74
+14
+f0
+7b
+01
+7a
+4d
+79
+bc
+91
+f9
+ef
+60
+16
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+f1
+51
+ef
+70
+09
+90
+4c
+ce
+e0
+44
+02
+f0
+80
+0c
+90
+4c
+ce
+e0
+54
+fd
+f0
+e4
+90
+4c
+d0
+f0
+e4
+90
+4e
+69
+f0
+90
+4e
+69
+e0
+ff
+90
+06
+81
+93
+60
+2f
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+6b
+f0
+e0
+fd
+60
+14
+90
+4e
+6f
+e0
+04
+f0
+a3
+e0
+fe
+ed
+4e
+f0
+af
+05
+f1
+43
+a3
+e0
+2f
+f0
+90
+4e
+69
+e0
+04
+f0
+80
+c6
+90
+4e
+71
+e0
+90
+4e
+76
+f0
+90
+4e
+6f
+e0
+90
+4e
+75
+f0
+90
+4e
+70
+e0
+ff
+f1
+43
+90
+4e
+74
+ef
+f0
+90
+4e
+76
+e0
+ff
+d3
+94
+02
+40
+1d
+90
+4e
+74
+e0
+fe
+a3
+e0
+fd
+d3
+9e
+40
+04
+ae
+05
+80
+00
+ef
+d3
+9e
+40
+08
+90
+4e
+73
+74
+01
+f0
+80
+05
+e4
+90
+4e
+73
+f0
+e4
+90
+4e
+69
+f0
+90
+4e
+69
+e0
+ff
+90
+06
+81
+93
+70
+02
+e1
+17
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+90
+4e
+6b
+f0
+90
+4e
+69
+e0
+ff
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+6e
+f0
+90
+4e
+6b
+e0
+70
+04
+e1
+0f
+e1
+0f
+90
+4e
+73
+e0
+60
+07
+7b
+00
+7a
+00
+79
+00
+22
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ee
+f0
+e4
+90
+4e
+6a
+f0
+90
+4e
+6a
+e0
+ff
+c3
+94
+08
+50
+5b
+a3
+e0
+30
+e0
+3e
+90
+4e
+69
+e0
+fe
+33
+33
+33
+54
+f8
+fe
+ef
+4e
+90
+4e
+6d
+f0
+a3
+e0
+ff
+90
+4e
+6d
+e0
+90
+06
+96
+93
+fd
+12
+2b
+12
+90
+4e
+72
+ef
+f0
+90
+4e
+6e
+e0
+30
+e0
+0a
+90
+4e
+72
+e0
+ff
+12
+2e
+e1
+80
+08
+90
+4e
+72
+e0
+ff
+12
+2f
+71
+90
+4e
+6b
+e0
+ff
+c3
+13
+f0
+90
+4e
+6e
+e0
+ff
+c3
+13
+f0
+90
+4e
+6a
+e0
+04
+f0
+80
+9b
+90
+4e
+6c
+74
+01
+f0
+90
+4e
+69
+e0
+04
+f0
+c1
+34
+90
+4e
+3b
+e0
+b4
+03
+0a
+90
+4d
+d8
+e0
+b4
+01
+03
+74
+02
+f0
+90
+4e
+6c
+e0
+70
+07
+90
+4d
+d8
+e0
+b4
+02
+07
+7b
+01
+7a
+4e
+79
+88
+22
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
+22
+90
+4e
+d7
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+ef
+c3
+9d
+50
+1b
+90
+4e
+d7
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+60
+03
+7f
+00
+22
+0f
+80
+e0
+7f
+01
+22
+ad
+07
+ac
+06
+90
+4e
+3b
+e0
+64
+02
+60
+0e
+74
+01
+f0
+90
+4e
+3c
+04
+f0
+ef
+a3
+f0
+ee
+a3
+f0
+22
+90
+4e
+d1
+e4
+f0
+a3
+f0
+a3
+f0
+b1
+43
+90
+4e
+d1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+03
+02
+2a
+10
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+70
+03
+02
+2a
+10
+64
+28
+60
+05
+ef
+64
+58
+70
+33
+90
+4c
+c8
+e0
+b4
+02
+10
+7f
+29
+12
+08
+5c
+90
+4c
+c8
+74
+03
+f0
+e4
+90
+4d
+d2
+f0
+90
+4c
+ca
+e0
+64
+02
+60
+03
+02
+2a
+10
+90
+42
+5e
+04
+f0
+7f
+0a
+12
+08
+5c
+90
+4c
+ca
+74
+03
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+62
+40
+02
+01
+dc
+ef
+c3
+94
+59
+50
+02
+01
+dc
+ef
+b4
+62
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+d8
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+a8
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+27
+40
+02
+21
+ad
+ef
+c3
+94
+1e
+50
+02
+21
+ad
+ef
+b4
+27
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+13
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+e3
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+64
+2a
+70
+40
+90
+05
+4f
+e0
+60
+10
+e0
+ff
+14
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+e4
+f0
+90
+4d
+d2
+e0
+60
+32
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+c5
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+14
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+12
+49
+22
+90
+4e
+ae
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+41
+e8
+90
+4e
+b2
+74
+05
+f0
+90
+4e
+b2
+e0
+ff
+14
+f0
+ef
+70
+02
+41
+ef
+90
+4e
+ae
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+b2
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4e
+b1
+f0
+c3
+94
+1e
+40
+7b
+e0
+ff
+d3
+94
+21
+50
+74
+ef
+24
+e2
+24
+fd
+50
+04
+60
+32
+80
+66
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+ce
+e0
+44
+08
+f0
+90
+4e
+b1
+e0
+24
+e3
+ff
+90
+4c
+c3
+e0
+b5
+07
+08
+90
+4c
+c5
+e0
+64
+03
+70
+43
+90
+4c
+c3
+ef
+f0
+90
+4c
+cc
+74
+01
+f0
+80
+36
+90
+4c
+c3
+e0
+ff
+60
+2f
+64
+fe
+60
+2b
+90
+4c
+ce
+e0
+54
+f7
+f0
+e4
+90
+4c
+c3
+f0
+7f
+0d
+12
+09
+19
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+12
+1a
+27
+12
+1b
+46
+7f
+01
+22
+90
+4c
+ce
+e0
+54
+f7
+f0
+41
+31
+90
+4c
+ce
+e0
+54
+f7
+f0
+7f
+00
+22
+ae
+05
+ef
+30
+e0
+0a
+90
+4d
+d3
+e0
+04
+f0
+ae
+03
+80
+0d
+90
+4d
+d3
+e0
+60
+07
+e0
+14
+f0
+af
+03
+ae
+07
+af
+06
+22
+ae
+07
+ac
+05
+e4
+90
+4e
+f2
+f0
+ec
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+81
+6a
+ec
+24
+c6
+b4
+0c
+00
+40
+02
+81
+6a
+90
+2b
+3f
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+2b
+63
+02
+2b
+72
+02
+2b
+81
+02
+2b
+ac
+02
+2b
+d6
+02
+2c
+01
+02
+2c
+10
+02
+2c
+1f
+02
+2c
+2e
+02
+2c
+3d
+02
+2c
+4c
+02
+2c
+5b
+af
+06
+ad
+04
+7b
+d7
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+af
+06
+ad
+04
+7b
+d8
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+04
+f0
+a3
+74
+2b
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+08
+f0
+a3
+14
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+08
+f0
+a3
+74
+50
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+69
+af
+06
+ad
+04
+7b
+d5
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+5a
+af
+06
+ad
+04
+7b
+f4
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+4b
+af
+06
+ad
+04
+7b
+f2
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+3c
+af
+06
+ad
+04
+7b
+f5
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+2d
+af
+06
+ad
+04
+7b
+f8
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+1e
+af
+06
+ad
+04
+7b
+f6
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+0f
+af
+06
+ae
+04
+ad
+06
+7b
+f7
+51
+f2
+90
+4e
+f2
+ef
+f0
+90
+4e
+f2
+e0
+ff
+22
+90
+4e
+c1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+f0
+90
+4e
+c4
+e0
+ff
+c3
+94
+06
+40
+02
+c1
+e0
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+54
+f0
+64
+f0
+60
+09
+ef
+54
+d0
+64
+d0
+60
+02
+c1
+d8
+12
+03
+b6
+fb
+b4
+f1
+09
+7f
+83
+7e
+01
+12
+27
+81
+c1
+ad
+eb
+b4
+f2
+09
+7f
+cd
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f3
+07
+7f
+b7
+12
+27
+81
+c1
+ad
+eb
+b4
+f4
+09
+7f
+b6
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f5
+07
+7f
+b5
+12
+27
+81
+c1
+ad
+eb
+b4
+f6
+09
+7f
+ea
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f7
+07
+7f
+e9
+12
+27
+81
+c1
+ad
+eb
+b4
+f8
+09
+7f
+e2
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f9
+08
+7f
+94
+0e
+12
+27
+81
+c1
+ad
+eb
+b4
+fa
+09
+7f
+8a
+7e
+01
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+fb
+08
+7f
+92
+0e
+12
+27
+81
+c1
+ad
+eb
+b4
+d0
+09
+7f
+2a
+7e
+02
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d1
+09
+7f
+25
+7e
+02
+12
+27
+81
+c1
+ad
+eb
+b4
+d3
+09
+7f
+26
+7e
+02
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d2
+09
+7f
+24
+7e
+02
+12
+27
+81
+80
+75
+eb
+b4
+d4
+09
+7f
+27
+7e
+02
+12
+27
+81
+80
+68
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d5
+09
+7f
+21
+7e
+02
+12
+27
+81
+80
+3f
+eb
+b4
+d6
+09
+7f
+23
+7e
+02
+12
+27
+81
+80
+32
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d7
+07
+7f
+70
+12
+27
+81
+80
+0b
+eb
+b4
+d8
+07
+7f
+6f
+7e
+00
+12
+27
+81
+90
+4e
+3b
+e0
+b4
+02
+24
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4d
+e3
+f0
+e4
+12
+03
+fc
+90
+4e
+c4
+e0
+04
+f0
+81
+7f
+22
+e4
+fe
+ef
+b4
+e7
+08
+90
+4e
+88
+e0
+44
+80
+f0
+22
+ef
+b4
+e6
+08
+90
+4e
+88
+e0
+44
+40
+f0
+22
+ef
+b4
+e5
+08
+90
+4e
+88
+e0
+44
+20
+f0
+22
+ef
+b4
+e4
+08
+90
+4e
+88
+e0
+44
+10
+f0
+22
+ef
+b4
+e3
+08
+90
+4e
+88
+e0
+44
+08
+f0
+22
+ef
+b4
+e2
+08
+90
+4e
+88
+e0
+44
+04
+f0
+22
+ef
+b4
+e1
+08
+90
+4e
+88
+e0
+44
+02
+f0
+22
+ef
+b4
+e0
+08
+90
+4e
+88
+e0
+44
+01
+f0
+22
+e4
+fe
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+6f
+60
+1c
+ed
+70
+14
+90
+4d
+e3
+e0
+6f
+60
+12
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+22
+0e
+ee
+b4
+06
+d5
+22
+e4
+fe
+fd
+ef
+54
+f0
+64
+f0
+60
+07
+ef
+54
+d0
+fc
+bc
+d0
+0c
+90
+4e
+3b
+e0
+b4
+02
+0b
+74
+03
+f0
+80
+06
+90
+4d
+d8
+74
+01
+f0
+ef
+b4
+e7
+08
+90
+4e
+88
+e0
+54
+7f
+f0
+22
+ef
+b4
+e6
+08
+90
+4e
+88
+e0
+54
+bf
+f0
+22
+ef
+b4
+e5
+08
+90
+4e
+88
+e0
+54
+df
+f0
+22
+ef
+b4
+e4
+08
+90
+4e
+88
+e0
+54
+ef
+f0
+22
+ef
+b4
+e3
+08
+90
+4e
+88
+e0
+54
+f7
+f0
+22
+ef
+b4
+e2
+08
+90
+4e
+88
+e0
+54
+fb
+f0
+22
+ef
+b4
+e1
+08
+90
+4e
+88
+e0
+54
+fd
+f0
+22
+ef
+b4
+e0
+08
+90
+4e
+88
+e0
+54
+fe
+f0
+22
+e4
+fe
+ed
+70
+21
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+6f
+70
+47
+ee
+b4
+05
+0b
+24
+89
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+7d
+01
+80
+34
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fc
+74
+88
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ec
+f0
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+60
+14
+ee
+b4
+05
+0b
+24
+89
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+0e
+ee
+b4
+06
+a3
+22
+e4
+ff
+90
+4e
+c5
+f0
+fe
+fd
+a3
+f0
+a3
+f0
+a3
+f0
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+01
+62
+e4
+ff
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+01
+e7
+e4
+ff
+ef
+90
+06
+81
+93
+60
+40
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+60
+23
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+ee
+5d
+d0
+82
+d0
+83
+f0
+0f
+80
+b9
+22
+90
+4c
+c3
+e0
+b4
+01
+07
+c2
+01
+7f
+1f
+02
+0e
+b2
+90
+4c
+c3
+e0
+b4
+02
+07
+c2
+01
+7f
+1e
+02
+0e
+b2
+90
+4c
+c3
+e0
+b4
+03
+0e
+c2
+01
+7f
+1f
+12
+0e
+b2
+c2
+01
+7f
+1d
+02
+0e
+b2
+c2
+01
+7f
+1d
+02
+0e
+b2
+90
+4c
+ea
+e0
+60
+02
+14
+f0
+90
+4c
+ef
+e0
+60
+02
+14
+f0
+90
+4c
+e5
+e0
+60
+0f
+14
+f0
+31
+b4
+90
+4c
+e5
+e0
+70
+30
+12
+0f
+9c
+80
+2b
+90
+4c
+e9
+e0
+70
+25
+90
+4c
+e2
+e0
+60
+1f
+14
+f0
+e0
+30
+e1
+09
+c2
+01
+7f
+1d
+12
+0e
+b2
+80
+07
+d2
+01
+7f
+1d
+12
+0e
+b2
+90
+4c
+e2
+e0
+70
+03
+74
+04
+f0
+90
+4d
+d5
+e0
+70
+2d
+90
+4d
+d6
+e0
+64
+01
+70
+25
+f0
+90
+4e
+3c
+e0
+60
+0d
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+12
+14
+b0
+80
+11
+90
+48
+00
+e0
+60
+0b
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+14
+b0
+90
+4d
+d4
+e0
+60
+09
+e0
+14
+f0
+e0
+70
+03
+12
+1b
+46
+90
+4d
+de
+e0
+60
+21
+e0
+14
+f0
+e0
+70
+1b
+90
+4c
+c7
+e0
+b4
+04
+07
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+3a
+f0
+22
+90
+4d
+e1
+e0
+64
+02
+60
+02
+61
+6b
+90
+4c
+e9
+e0
+60
+02
+61
+5d
+90
+4c
+d5
+e0
+b4
+02
+05
+12
+0f
+93
+80
+2f
+90
+4c
+d5
+e0
+b4
+01
+14
+90
+4c
+f7
+e0
+70
+22
+90
+4c
+e2
+74
+04
+f0
+90
+4c
+f7
+74
+01
+f0
+80
+14
+90
+4c
+f7
+e0
+b4
+01
+0d
+e4
+f0
+90
+4c
+e2
+f0
+d2
+01
+7f
+1d
+12
+0e
+b2
+12
+17
+e8
+ef
+60
+56
+90
+4d
+d9
+e0
+ff
+90
+4c
+b7
+e0
+6f
+60
+66
+e0
+30
+e0
+0f
+90
+4c
+e6
+74
+0c
+f0
+c2
+01
+7f
+10
+12
+0e
+b2
+80
+0c
+d2
+01
+7f
+10
+12
+0e
+b2
+e4
+90
+4c
+e6
+f0
+90
+4c
+b7
+e0
+30
+e1
+0f
+90
+4c
+e7
+74
+0c
+f0
+c2
+01
+7f
+0f
+12
+0e
+b2
+80
+0c
+d2
+01
+7f
+0f
+12
+0e
+b2
+e4
+90
+4c
+e7
+f0
+90
+4c
+b7
+e0
+90
+4d
+d9
+f0
+22
+d2
+01
+7f
+10
+12
+0e
+b2
+d2
+01
+7f
+0f
+02
+0e
+b2
+d2
+01
+7f
+10
+12
+0e
+b2
+d2
+01
+7f
+0f
+12
+0e
+b2
+22
+90
+4e
+ea
+ed
+f0
+90
+00
+01
+12
+03
+cf
+90
+4e
+eb
+f0
+22
+90
+4c
+90
+74
+33
+f0
+90
+4c
+d3
+74
+05
+f0
+e4
+a3
+f0
+ff
+ef
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+79
+f0
+a3
+74
+90
+f0
+0f
+ef
+b4
+04
+e8
+90
+4c
+8f
+e0
+64
+02
+60
+02
+81
+4b
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+c3
+7a
+f5
+79
+88
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+ae
+7a
+47
+79
+81
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4c
+8f
+e0
+64
+01
+70
+02
+81
+f1
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+29
+7a
+5c
+79
+4f
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+52
+7a
+b8
+79
+1e
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4e
+c9
+ee
+f0
+a3
+ef
+f0
+90
+4e
+cb
+ec
+f0
+a3
+ed
+f0
+90
+4e
+cb
+e0
+fe
+a3
+e0
+ff
+d3
+90
+4e
+ca
+e0
+9f
+90
+4e
+c9
+e0
+9e
+40
+16
+90
+4e
+cb
+e0
+fe
+a3
+e0
+ff
+90
+4e
+ca
+e0
+9f
+ff
+90
+4e
+c9
+e0
+9e
+fe
+80
+1e
+90
+4e
+c9
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+cc
+e0
+9f
+ff
+90
+4e
+cb
+e0
+9e
+fe
+ad
+03
+c3
+eb
+9f
+ff
+e4
+9e
+fe
+22
+90
+04
+46
+e0
+ff
+22
+90
+82
+80
+74
+01
+f0
+22
+ef
+f4
+60
+3a
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+e4
+ff
+ef
+fd
+7c
+00
+24
+78
+fb
+ec
+34
+80
+8b
+82
+f5
+83
+e0
+fe
+ed
+24
+70
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+e0
+4e
+f4
+fe
+ef
+24
+7c
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+ee
+f0
+0f
+ef
+b4
+04
+cf
+22
+7d
+d0
+aa
+55
+40
+00
+00
+40
+69
+04
+00
+00
+80
+09
+00
+00
+0c
+00
+11
+00
+00
+00
+00
+00
+00
+00
+35
+00
+00
+00
+4f
+02
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+09
+18
+00
+04
+c8
+00
+5c
+40
+00
+38
+c8
+00
+00
+80
+e0
+00
+90
+00
+00
+00
+00
+00
+a0
+01
+00
+4c
+00
+00
+00
+aa
+55
+01
+00
+31
+41
+01
+aa
+55
+02
+00
+13
+42
+40
+03
+aa
+55
+01
+00
+f7
+41
+0a
+aa
+55
+02
+00
+f5
+41
+10
+00
+aa
+55
+01
+00
+33
+41
+00
+aa
+55
+02
+00
+b1
+4c
+00
+00
+aa
+55
+03
+00
+4a
+41
+40
+25
+00
+aa
+55
+06
+00
+40
+41
+36
+08
+c2
+08
+66
+22
+aa
+55
+0f
+00
+02
+47
+0e
+42
+54
+33
+2e
+30
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+03
+00
+80
+42
+0e
+00
+01
+aa
+55
+01
+00
+84
+42
+01
+aa
+55
+01
+00
+47
+47
+0a
+aa
+55
+01
+00
+dc
+47
+00
+aa
+55
+01
+00
+f6
+47
+01
+aa
+55
+01
+00
+72
+41
+01
+aa
+55
+0e
+00
+5b
+47
+06
+03
+11
+00
+00
+01
+02
+10
+24
+11
+00
+12
+01
+00
+aa
+55
+01
+00
+71
+47
+00
+aa
+55
+76
+02
+11
+48
+04
+00
+11
+01
+00
+10
+02
+11
+24
+00
+01
+00
+00
+36
+01
+b6
+09
+00
+00
+0a
+00
+01
+00
+00
+09
+00
+01
+35
+03
+19
+11
+24
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+11
+35
+03
+19
+00
+11
+09
+00
+05
+35
+03
+19
+10
+02
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+00
+09
+35
+08
+35
+06
+19
+11
+24
+09
+01
+00
+09
+00
+0d
+35
+0f
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+13
+35
+03
+19
+00
+11
+09
+01
+00
+25
+3d
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+57
+69
+72
+65
+6c
+65
+73
+73
+20
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+20
+09
+01
+01
+25
+08
+4b
+65
+79
+62
+6f
+61
+72
+64
+09
+01
+02
+25
+10
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+43
+6f
+72
+70
+2e
+20
+20
+09
+02
+00
+09
+01
+00
+09
+02
+01
+09
+01
+11
+09
+02
+02
+08
+40
+09
+02
+03
+08
+21
+09
+02
+04
+28
+01
+09
+02
+05
+28
+01
+09
+02
+06
+35
+a5
+35
+a3
+08
+22
+25
+9f
+05
+01
+09
+06
+a1
+01
+85
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+25
+ff
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+02
+19
+00
+2a
+ff
+03
+15
+00
+26
+ff
+03
+95
+01
+75
+10
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+03
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+80
+26
+ff
+7f
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+09
+02
+07
+35
+08
+35
+06
+09
+04
+09
+09
+01
+00
+09
+02
+0b
+09
+01
+00
+09
+02
+0c
+09
+0c
+80
+09
+02
+0d
+28
+00
+09
+02
+0e
+28
+01
+09
+02
+0f
+09
+03
+18
+09
+02
+10
+09
+00
+00
+03
+10
+02
+12
+00
+00
+01
+00
+01
+00
+01
+36
+00
+a1
+09
+00
+00
+0a
+00
+01
+00
+01
+09
+00
+01
+35
+03
+19
+12
+00
+09
+00
+04
+35
+0d
+35
+06
+19
+01
+00
+09
+00
+01
+35
+03
+19
+00
+01
+09
+00
+06
+35
+09
+09
+65
+6e
+09
+00
+6a
+09
+01
+00
+09
+00
+09
+35
+08
+35
+06
+19
+12
+00
+09
+01
+00
+09
+01
+00
+25
+2f
+42
+72
+6f
+61
+64
+63
+6f
+6d
+20
+42
+6c
+75
+65
+74
+6f
+6f
+74
+68
+20
+57
+69
+72
+65
+6c
+65
+73
+73
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+20
+50
+6e
+50
+20
+53
+65
+72
+76
+65
+72
+09
+01
+01
+25
+08
+4b
+65
+79
+62
+6f
+61
+72
+64
+09
+02
+00
+09
+01
+03
+09
+02
+01
+09
+0a
+5c
+09
+02
+02
+09
+85
+02
+09
+02
+03
+09
+00
+01
+09
+02
+04
+28
+01
+09
+02
+05
+09
+00
+02
+00
+aa
+55
+02
+00
+59
+47
+11
+48
+aa
+55
+01
+00
+32
+41
+43
+aa
+55
+01
+00
+fb
+41
+00
+aa
+55
+08
+00
+38
+41
+ff
+ff
+8f
+f8
+83
+9d
+59
+82
+aa
+55
+01
+00
+dc
+07
+00
+aa
+55
+01
+00
+a2
+00
+00
+aa
+55
+01
+00
+dd
+07
+00
+aa
+55
+01
+00
+16
+00
+27
+aa
+55
+01
+00
+fd
+47
+ff
+aa
+55
+01
+00
+f7
+47
+ff
+aa
+55
+01
+00
+6e
+41
+80
+aa
+55
+02
+00
+a2
+4b
+02
+01
+aa
+55
+04
+00
+91
+4c
+9f
+3e
+cd
+4d
+aa
+55
+01
+00
+8f
+4c
+04
+aa
+55
+dd
+01
+04
+45
+01
+00
+00
+28
+02
+01
+18
+02
+00
+03
+28
+01
+20
+03
+00
+05
+2a
+01
+00
+04
+00
+02
+29
+02
+00
+00
+05
+00
+00
+28
+02
+00
+18
+06
+00
+03
+28
+01
+02
+07
+00
+00
+2a
+0e
+42
+54
+34
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+08
+00
+03
+28
+01
+02
+09
+00
+01
+2a
+02
+c1
+03
+0a
+00
+03
+28
+01
+02
+0b
+00
+04
+2a
+08
+06
+00
+06
+00
+64
+00
+2c
+01
+0c
+00
+00
+28
+02
+0a
+18
+0d
+00
+03
+28
+01
+02
+0e
+00
+50
+2a
+07
+02
+8a
+24
+66
+82
+01
+00
+0f
+00
+00
+28
+02
+12
+18
+10
+00
+03
+28
+01
+06
+11
+00
+4e
+2a
+01
+01
+12
+00
+03
+28
+01
+12
+13
+00
+4d
+2a
+08
+00
+00
+00
+00
+00
+00
+00
+00
+14
+00
+02
+29
+02
+00
+00
+15
+00
+08
+29
+02
+01
+01
+16
+00
+03
+28
+01
+12
+17
+00
+4d
+2a
+02
+00
+00
+18
+00
+02
+29
+02
+00
+00
+19
+00
+08
+29
+02
+02
+01
+1a
+00
+03
+28
+01
+12
+1b
+00
+4d
+2a
+05
+00
+00
+00
+00
+00
+1c
+00
+02
+29
+02
+00
+00
+1d
+00
+08
+29
+02
+03
+01
+1e
+00
+03
+28
+01
+0e
+1f
+00
+4d
+2a
+02
+00
+00
+20
+00
+02
+29
+02
+00
+00
+21
+00
+08
+29
+02
+01
+02
+22
+00
+03
+28
+01
+0a
+23
+00
+4b
+2a
+a0
+05
+01
+09
+06
+a1
+01
+85
+01
+75
+01
+95
+08
+05
+07
+19
+e0
+29
+e7
+15
+00
+25
+01
+81
+02
+95
+01
+75
+08
+81
+03
+95
+05
+75
+01
+05
+08
+19
+01
+29
+05
+91
+02
+95
+01
+75
+03
+91
+03
+95
+06
+75
+08
+15
+00
+26
+ff
+00
+05
+07
+19
+00
+29
+ff
+81
+00
+c0
+05
+0c
+09
+01
+a1
+01
+85
+02
+19
+00
+2a
+ff
+03
+15
+00
+26
+ff
+03
+95
+01
+75
+10
+81
+00
+c0
+05
+01
+09
+02
+a1
+01
+85
+03
+09
+01
+a1
+00
+05
+09
+19
+01
+29
+08
+15
+00
+25
+01
+75
+01
+95
+08
+81
+02
+05
+01
+09
+30
+09
+31
+16
+01
+80
+26
+ff
+7f
+75
+10
+95
+02
+81
+06
+09
+38
+15
+81
+25
+7f
+75
+08
+95
+01
+81
+06
+05
+0c
+0a
+38
+02
+95
+01
+81
+06
+c0
+c0
+24
+00
+03
+28
+01
+02
+25
+00
+4a
+2a
+04
+11
+01
+00
+01
+26
+00
+03
+28
+01
+04
+27
+00
+4c
+2a
+01
+00
+28
+00
+00
+28
+02
+0f
+18
+29
+00
+03
+28
+01
+12
+2a
+00
+19
+2a
+01
+64
+2b
+00
+02
+29
+02
+00
+00
+00
+00
+aa
+55
+01
+00
+6a
+4c
+17
+aa
+55
+01
+00
+f9
+46
+50
+aa
+55
+01
+00
+c2
+44
+14
+aa
+55
+06
+00
+f9
+44
+11
+46
+34
+54
+77
+dd
+aa
+55
+01
+00
+7e
+4c
+00
+aa
+55
+06
+00
+b8
+4c
+13
+00
+17
+00
+1b
+00
+aa
+55
+01
+00
+60
+4c
+50
+aa
+55
+10
+00
+6c
+4c
+0c
+00
+05
+00
+12
+b4
+08
+00
+10
+00
+10
+00
+00
+00
+2c
+01
+aa
+55
+0f
+00
+19
+44
+0e
+42
+54
+34
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+01
+00
+e4
+44
+07
+aa
+55
+01
+00
+dd
+44
+01
+aa
+55
+1c
+00
+d9
+43
+1f
+02
+01
+05
+03
+19
+c1
+03
+03
+03
+12
+18
+0f
+09
+42
+54
+34
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+11
+00
+f9
+43
+1f
+0f
+09
+42
+54
+34
+2e
+32
+20
+4b
+65
+79
+62
+6f
+61
+72
+64
+aa
+55
+01
+00
+10
+4c
+01
+aa
+55
+01
+00
+e2
+4b
+02
+aa
+55
+01
+00
+0f
+4c
+40
+aa
+55
+01
+00
+0a
+4c
+00
+aa
+55
+02
+00
+e4
+4b
+c0
+12
+aa
+55
+10
+00
+f0
+4b
+00
+13
+2c
+42
+06
+15
+36
+48
+0f
+1a
+3a
+4c
+11
+23
+31
+4d
+aa
+55
+01
+00
+ef
+4b
+ff
+aa
+55
+04
+00
+eb
+4b
+20
+15
+10
+05
+aa
+55
+0a
+00
+37
+0d
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+08
+00
+3d
+4d
+00
+48
+60
+00
+00
+00
+00
+00
+aa
+55
+05
+00
+19
+42
+00
+0a
+0b
+ef
+0f
+aa
+55
+01
+00
+f8
+41
+00
+aa
+55
+08
+00
+a3
+00
+00
+00
+00
+00
+00
+00
+00
+00
+aa
+55
+02
+00
+5d
+41
+02
+24
+aa
+55
+08
+00
+4d
+41
+12
+00
+00
+02
+12
+00
+00
+02
+aa
+55
+02
+00
+5b
+41
+20
+00
+aa
+55
+04
+00
+57
+41
+20
+00
+00
+20
+aa
+55
+04
+00
+5f
+41
+80
+03
+00
+06
+aa
+55
+02
+00
+98
+4c
+00
+13
+aa
+55
+02
+00
+9b
+42
+30
+3f
+aa
+55
+01
+00
+aa
+42
+20
+aa
+55
+7f
+00
+70
+4f
+07
+ff
+0a
+fb
+0b
+ff
+1a
+fb
+1b
+fb
+1c
+fb
+1d
+f6
+1e
+f2
+1f
+ee
+20
+ea
+21
+e6
+22
+e2
+23
+de
+24
+da
+25
+d6
+26
+d2
+27
+ce
+28
+ca
+29
+c6
+2a
+c2
+2b
+bd
+2c
+b9
+2d
+b5
+2e
+b1
+2f
+ad
+30
+a9
+31
+80
+32
+80
+33
+80
+34
+c0
+35
+c1
+36
+c2
+37
+c3
+38
+c4
+39
+c5
+3a
+c6
+3b
+c7
+3c
+06
+3d
+07
+3e
+46
+3f
+85
+40
+86
+41
+87
+42
+c6
+43
+c7
+44
+d6
+45
+d7
+46
+e6
+47
+f5
+48
+00
+49
+f8
+4a
+7f
+4e
+ec
+4f
+5e
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+68
+e4
+69
+00
+6a
+00
+6b
+30
+ff
+aa
+55
+02
+00
+63
+41
+70
+4f
+aa
+55
+00
+00
+ee
+46
+aa
+55
+0a
+00
+91
+4a
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+aa
+55
+0a
+00
+87
+4a
+55
+d0
+56
+c0
+57
+4c
+58
+6c
+59
+50
+74
+18
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+ff
+a8
+9d
Index: YC1026_3mode_SDK_CUSTOMER/output/fw.hex
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/fw.hex	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/fw.hex	(working copy)
@@ -0,0 +1,862 @@
+:100000000205DF0202ABE86480F8E933E8336011EF
+:100010000460F0ED33EC337009E8FCE9FDEAFEEB37
+:10002000FF220460DED3EB9FEA9EE99DE8C2E78CE5
+:10003000F0C2F795F0400CE8CCF8E9CDF9EACEFA39
+:10004000EBCFFB12027685D0F05804700320D5B3B5
+:10005000E80470075002B2D50202B592D5EC0460F4
+:10006000F7E4CCC0E0C398F8603B94186008400DFA
+:10007000D0E0FB02028DE4FBFAC9FC8028E830E402
+:1000800006E4C9FBE4CAFCE830E305E4C9CACBFCDA
+:10009000E854076010F8C3E913F9EA13FAEB13FB0D
+:1000A000EC13FCD8F130F52FC3E49CFCEF9BFFEE82
+:1000B0009AFEED99FDD0E0FBEF4E4D4C701222DB25
+:1000C000030202B2EC2CFCEF33FFEE33FEED33FD06
+:1000D000ED30E7EB02028DEF2BFFEE3AFEED39FD3E
+:1000E000D0E0FB50130BBB00030202B5ED13FDEE95
+:1000F00013FEEF13FFEC13FC02028DEC4D6011E8D0
+:10010000497017ED33EC3304600DE4FCFFFEFD2273
+:10011000E933E8330470F80202AB12027658046047
+:1001200009E4CC248150062850090202B528400376
+:100130000202B2C0E0EB4A7044B98006D0E0FB0294
+:1001400002A1EF4E701CBD8008EBFFEAFEE9FD80C6
+:10015000EBE98DF0A4FEE5F00201E4E9CDF9EAFE59
+:10016000EBFFEF89F0A4FCE5F0CE89F0A42EFFE4CC
+:1001700035F0CD89F0A42DFEE435F08067EF4E70A8
+:1001800005BD80D780C3EF8BF0A4ACF0EE8BF0A45C
+:100190002CFCE435F0F8EF8AF0A42CE5F038FCE410
+:1001A00033CB8DF0A42CFCE5F03BF8EE8AF0A42CC8
+:1001B000FCE5F038F8E433CF89F0A42CFCE5F03806
+:1001C000CF3400CE89F0A42FFFE5F03EFEE433C922
+:1001D0008DF0A42EFEE5F039CD8AF0A42FFFE5F0D6
+:1001E0003EFEE43DFD33D0E0FB50070BBB000F02A9
+:1001F00002B5EC2CFCEF33FFEE33FEED33FD0202D3
+:100200008D75F020800E75F010800575F0087D006A
+:100210007E007F003392D530D503120557EC334072
+:1002200010EF33FFEE33FEED33FDEC33FCD5F0ED94
+:1002300022E5F0247EA2D513CC92E7CDCEFF22EDAD
+:10024000D2E7CD33EC3392D524814006E4FFFEFDA6
+:10025000FC22FCE4CFCECDCC24E0501174FF80ED25
+:10026000C3CC13CCCD13CDCE13CECF13CF0470F0AF
+:1002700030D5DE020557E9D2E7C933E833F892D525
+:10028000EDD2E7CD33EC33FC5002B2D522EC30E7AF
+:10029000100FBF000C0EBE00080DBD00040BEB607C
+:1002A00014A2D5EB13FCED92E7FD2274FFFCFDFEDA
+:1002B000FF22E480F8A2D574FF13FC7D80E480EF78
+:1002C000E709F608DFFA8046E709F208DFFA803E20
+:1002D00088828C83E709F0A3DFFA8032E309F6080D
+:1002E000DFFA8078E309F208DFFA807088828C8375
+:1002F000E309F0A3DFFA806489828A83E0A3F60829
+:10030000DFFA805889828A83E0A3F208DFFA804C02
+:1003100080D280FA80C680D4806980F280338010D9
+:1003200080A680EA809A80A880DA80E280CA803342
+:1003300089828A83ECFAE493A3C8C582C8CCC583BA
+:10034000CCF0A3C8C582C8CCC583CCDFE9DEE7808A
+:100350000D89828A83E493A3F608DFF9ECFAA9F009
+:10036000EDFB2289828A83ECFAE0A3C8C582C8CC5F
+:10037000C583CCF0A3C8C582C8CCC583CCDFEADE78
+:10038000E880DB89828A83E493A3F208DFF980CCDA
+:1003900088F0EF60010E4E60C388F0ED2402B404D3
+:1003A0000050B9F582EB2402B4040050AF2323457A
+:1003B000822390031073BB010689828A83E0225056
+:1003C00002E722BBFE02E32289828A83E49322BBF6
+:1003D000010CE58229F582E5833AF583E022500697
+:1003E000E92582F8E622BBFE06E92582F8E222E54D
+:1003F0008229F582E5833AF583E49322BB010689DD
+:10040000828A83F0225002F722BBFE01F322C5F05C
+:10041000F8A3E028F0C5F0F8E58215827002158394
+:10042000E038F022A3F8E0C5F025F0F0E58215826F
+:1004300070021583E0C838F0E822E88FF0A4CC8B76
+:10044000F0A42CFCE98EF0A42CFC8AF0EDA42CFC8A
+:10045000EA8EF0A4CDA8F08BF0A42DCC3825F0FDC9
+:10046000E98FF0A42CCD35F0FCEB8EF0A4FEA9F0C2
+:10047000EB8FF0A4CFC5F02ECD39FEE43CFCEAA40E
+:100480002DCE35F0FDE43CFC2275F008758200EFBE
+:100490002FFFEE33FECD33CDCC33CCC58233C582B6
+:1004A0009BED9AEC99E58298400CF582EE9BFEED6F
+:1004B0009AFDEC99FC0FD5F0D6E4CEFBE4CDFAE43E
+:1004C000CCF9A88222B800C1B90059BA002DEC8B32
+:1004D000F084CFCECDFCE5F0CBF97818EF2FFFEE0E
+:1004E00033FEED33FDEC33FCEB33FB10D7039940C7
+:1004F00004EB99FB0FD8E5E4F9FA227818EF2FFF07
+:10050000EE33FEED33FDEC33FCC933C910D7059B48
+:10051000E99A4007EC9BFCE99AF90FD8E0E4C9FAA4
+:10052000E4CCFB2275F010EF2FFFEE33FEED33FD30
+:10053000CC33CCC833C810D7079BEC9AE899400A53
+:10054000ED9BFDEC9AFCE899F80FD5F0DAE4CDFBD1
+:10055000E4CCFAE4C8F922C3E49FFFE49EFEE49DE4
+:10056000FDE49CFC22EB9FF5F0EA9E42F0E99D42FF
+:10057000F0E89C45F022ECF0A3EDF0A3EEF0A3EF41
+:10058000F022A8828583F0D083D0821205991205CB
+:1005900099120599120599E473E493A3C583C5F0F4
+:1005A000C583C8C582C8F0A3C583C5F0C583C8C5C7
+:1005B00082C822D083D082F8E493701274019370C1
+:1005C0000DA3A393F8740193F5828883E4737402F6
+:1005D000936860EFA3A3A380DF8A838982E47378A2
+:1005E0007FE4F6D8FD7581CF020626021FAFE493A3
+:1005F000A3F8E493A34003F68001F208DFF4802916
+:10060000E493A3F85407240CC8C333C4540F442004
+:10061000C8834004F456800146F6DFE4800B0102F3
+:1006200004081020408090066BE47E019360BCA318
+:10063000FF543F30E509541FFEE493A360010ECF41
+:1006400054C025E060A840B8E493A3FAE493A3F86B
+:10065000E493A3C8C582C8CAC583CAF0A3C8C5822B
+:10066000C8CAC583CADFE9DEE780BE524E45FF0A2D
+:10067000B3000000FF21B9FF31EC000000FF336C34
+:10068000001A08090A0B0C0D0E181917151413116E
+:10069000161B1C00000048000000E400E03E142B84
+:1006A00004291D8B351E1A3916641B8A3A1F083C13
+:1006B000073D06883B201517090A19052221181C39
+:1006C0000D0B101123240C300E3F36872E251240BF
+:1006D0000F0037654126132F333432382D2747005A
+:1006E000AFE200E60046892A3144284542435F5C78
+:1006F000592C53514C00605D5A62544F4900615E61
+:100700005B6355564B4E57855852F2504A4D00E1A7
+:10071000E5F6F7F5F4F1FAE3D1D3D2D4F8D591D0D8
+:10072000AFF9F3FBD69000000000000000000000CD
+:1007300000000000010100904EEEEFF0904CF0E060
+:10074000700302085B904CF0E014F0E4904DDDF093
+:10075000904EEEE0FF75F01DA424E4F582E4344DE4
+:10076000F583E064017070EF75F01DA424E5F97461
+:100770004D35F0FA7B017E427F74904EA87406F0EE
+:10078000121206904EEEE075F01DA424EBF9744DA4
+:1007900035F0FA7B017E447F7B904EA87410F012F6
+:1007A0001206904EEEE075F01DA424FBF9744D3551
+:1007B000F0FA7B017E447FF9904EA87406F0121285
+:1007C000067F2B12085C904DDD7401F0E4904CF034
+:1007D000F090448B04F022904EEEE0FF75F01DA4E3
+:1007E00024E4F582E4344DF583E064027046EF754D
+:1007F000F01DA424E5F9744D35F0FA7B017E427FAB
+:1008000074904EA87406F0121206904EEEE075F049
+:100810001DA424EBF9744D35F0FA7B017E427F6212
+:10082000904EA87410F01212067F03115C90425E85
+:100830007401F02290427474FFF0A3F0A3F0A3F0CF
+:10084000A3F0A3F07B017A4279627D107C00122430
+:10085000CC7F03115C90425E7401F022904ECDEF8C
+:10086000F078CE7C4E7D017BFF7A0779347E007F65
+:1008700003120390904ECDE0904ED0F07B017A4E63
+:1008800079CE7D03904E9DEBF0A3EAF0A3E9F0A3AF
+:10089000EDF0904B9CE0FFA3E0904EA1CFF0A3EFD2
+:1008A000F0904B9AE0FEA3E0FF904B9CE0FCA3E0AD
+:1008B000FD7B641234F2904EA0E0FEEFC39E40E157
+:1008C000904EA0E0FF14F0EF603F904E9DE0FBA340
+:1008D000E475F001120424A9F0FA1203B6FF904E59
+:1008E000A1E475F00112042485F082F583EFF09005
+:1008F0004EA1E0FEA3E0FFBE4BC6BF36C3904EA1A3
+:10090000744AF0A374A0F080B7904EA1E0FFA3E07A
+:10091000904B9CCFF0A3EFF022904EF1EFF014B487
+:100920000D00400241AD90093475F003A4C5832544
+:10093000F0C5837302095B02095B02095B020AAD21
+:100940000209A20209D60209DF020A2C020A2C02BD
+:100950000A6D020AAD020AAD02099A904CC5E0FF89
+:1009600064036004EFB4020D7F22115C904EF1E04D
+:10097000904CEDF022904EF1E014904DD1F0904269
+:10098000137405F0904CF0F07F04115C7F0AF17B4A
+:100990007F2A115CE4904CEDF0227F0E115C7F0207
+:1009A000015CE4904CF0F01218B4EF70061218934A
+:1009B000EF600F904EF1E0904CEDF0904DE274033B
+:1009C000F022F1EBE4904131F01220057F0D115C33
+:1009D000E4904CEDF0221218B4E4904CEDF0227B40
+:1009E000017A4D79E47D577C001224CC904CC07480
+:1009F000FFF0A3F07FC8F17BC2017FFFD1B27B0182
+:100A00007A4D79E47D577C007F607E7F121A977B58
+:100A1000017A4C79C07D037C007FB77E7F121A97E4
+:100A2000D2017FFFD1B2E4904CEDF022E4904CF083
+:100A3000F01218B4EF7006121893EF6009904EF19F
+:100A4000E0904CEDF0227B017A4C79007D047C0033
+:100A50007F527E7F1220307F0AF17B7F21115C90D4
+:100A60004CC57402F0E4A3F0904CEDF022E4904CFD
+:100A7000F0F01218B4EF7006121893EF6009904E60
+:100A8000F1E0904CEDF022904CC5E0640160187FDD
+:100A900023115C904CC57401F0E4A3F0904CEE740B
+:100AA000F0F0E4904CE9F0E4904CEDF022E4904C4E
+:100AB000EDF022904EF6EFF01205B30C52010D1737
+:100AC000020D08040C74060CD10A0D08130DD11484
+:100AD0000E59150B7F270E20290CC92A0AFE2F0B51
+:100AE0007C300BD1310C16320AFE330DFC340E3A39
+:100AF000350BC9370B7F390BD13C00000EB1F1F536
+:100B00001217CB7B017A4C79007D047C007F527EEA
+:100B10007F1220307F0AF17B7B017A4D79E47D578B
+:100B20007C007F607E7F1220307F0AF17B7B017A20
+:100B30004C79C07D037C007FB77E7F1220307F0A16
+:100B4000F17B7B017A4C79F27D027C007FBA7E7F5B
+:100B5000122030904CF2E0B4FF1FA3E0B4FF1A90D3
+:100B60004C93E0A3E0904CF2F0904C91E0A3E09025
+:100B70004CF3F0904CBF7401F0021FBD02110690BF
+:100B80004CC3E0FFD394005002C1B1EF9404400283
+:100B9000C1B1EF75F01DA424C7F9744D35F0FA7B8F
+:100BA000017D1D7C001224CC7FC8F17BC2017FFF38
+:100BB000D1B27B017A4D79E47D577C007F607E7FE6
+:100BC000121A97D2017FFFC1B2904DD1E0FF020708
+:100BD00037904CC57403F0E4A3F0F1EB904CE5E0E2
+:100BE0007006D2017F1DD1B2E4904CEEF0904CEB38
+:100BF000F0904CC074FEF0904CC3F0904EF6E0B410
+:100C0000310D904CE5741EF0904CBF7402F02290B0
+:100C10004CBF7401F022E4904CC5F0A3F0904CE37B
+:100C2000F0A3F0904CEB04F0904CEDE06009F1EB98
+:100C3000904CEDE0FF2119904CECE0B40104E4F09D
+:100C4000E193904CF0E07002C1B1904DD1E0FF0211
+:100C50000737904CC97403F0A37401F0E4904CC7BB
+:100C6000F0A3F09047F4E0A320E702C1B1904DD487
+:100C70007432F022904CC97404F0E4A3F07F0E119A
+:100C80005C7F02115CE4904CE3F0A3F0A3E07002FF
+:100C9000F19CE4904CE9F0F1EBE4904CEBF0904DDA
+:100CA000D4F0904213741AF0E4904DDAF0900040C2
+:100CB000E060FA7F05115C1223E6904CC3E0904C93
+:100CC000C0F0904CBF7403F0227F04115C7F0AE1F6
+:100CD0007BE490054FF0904DD704F0E4904DD4F0B4
+:100CE0009047F4E0A330E70F904DDA7401F09005DF
+:100CF0004F7404F0FF015CE4904CF0F0904CCA7427
+:100D000002F0904CC904F022904CC5E0B40308E412
+:100D1000904CC9F0A3F022904CC9E0904CCBF0E489
+:100D2000904CC9F0A3F0904CEB04F0E4904DD4F05B
+:100D3000904DDAE06401704B904CC3E0FFD3940017
+:100D4000403CEF94045037EF75F01DA424C7F974AC
+:100D50004D35F0FA7B017D1D7C001224CC7FC8F15B
+:100D60007BC2017FFFD1B27B017A4D79E47D577C54
+:100D7000007F607E7F121A97D2017FFFD1B2E4908C
+:100D80004DDAF0904CECE0B40104E4F0E193904CC7
+:100D9000EDE0FF60022119904CF0E06008904DD129
+:100DA000E0FF020737904CC5E064017002C1B190CA
+:100DB0004EF6E064137002C1B1904CCBE064046065
+:100DC000067F0531198002F193E4904CE3F0A3F023
+:100DD00022904CC77403F0A37401F0E4A3F0A3F0D5
+:100DE0007F0E115C7F02115C904CE5E07002F19C7B
+:100DF000E4904CE9F0904CE3F0A3F022904CC774DF
+:100E000004F0E4A3F0F1EBE4904CEBF090413104FA
+:100E1000F0904CC3E0904CC0F0904CBF7403F022B3
+:100E2000904CC3E014FD7F0112112F904CC3E09051
+:100E30004CC0F0904CBF7403F022904D39120582E3
+:100E400000000000E4904DD2F0904DD704F0904C9B
+:100E5000C804F0904CC704F022904CC7E0904CCBF3
+:100E6000F0E4904CC7F0A3F0904CEB04F0A3E0B496
+:100E70000104E4F0E193904CEDE0FF600221199051
+:100E80004CF0E06008904DD1E0FF020737904CCB6A
+:100E9000E064046004F1938011904D38E06004F147
+:100EA000938007904CC3E0FF3119E4904CE3F0A32A
+:100EB000F022EFF4600D7B017A807974A201920038
+:100EC00012108822904DE1E064026002E17A904CB9
+:100ED000E9E06048904CCCE06401602C904CC3E0A9
+:100EE000B401067F1FF1CF8049904CC3E0B40206E5
+:100EF0007F1EF1CF803C904CC3E0640370347F1FB1
+:100F0000F1CF7F1DF1CF802AD2017F1FD1B2D20154
+:100F10007F1ED1B2D2017F1DD1B28016904CEEE07F
+:100F20006010D2017F1FD1B2D2017F1ED1B27F1DCE
+:100F3000F1CF1217E8EF6042904CE6E0601614F033
+:100F4000C2017F10D1B2904CE6E0700ED2017F104A
+:100F5000D1B28006D2017F10D1B2904CE7E060148C
+:100F600014F0C2017F0FD1B2904CE7E0700CD201B7
+:100F70007F0FC1B2D2017F0FD1B222EFD3940040D4
+:100F800011E4FDFC0DBD00010CBC04F8BDA6F51F6D
+:100F900080E922E4904D38F07F19015C904CC3E069
+:100FA000B40106D2017F1FC1B2904CC3E0B4020667
+:100FB000D2017F1EC1B2904CC3E0B4030CD2017FBA
+:100FC0001FD1B2D2017F1DC1B2D2017F1DC1B2902B
+:100FD0004EFAEFF07B017A807974121F70920990BB
+:100FE0004EFAE0FFA209B39201C1B2E4904CF0F0D6
+:100FF000904DDDF022121106D2067F1012101BD286
+:10100000067F0F111BD2067F1F111BD2067F1E11F8
+:101010001BD2067F1D111BD2067F1DAC07ECF460AE
+:1010200015AF04D2041148AF04A2069201120EB209
+:10103000AF04C202113722EFF4600C7B017A807991
+:1010400078A2029200118822EFF4600C7B017A8072
+:101050007970A2049200118822AC07ECF46017AFFB
+:1010600004A20592031177AF04A205B392021137CF
+:10107000AF04C204114822EFF4600C7B017A80793E
+:101080007CA2039200118822904EE3EBF0A3EAF0D9
+:10109000A3E9F0E4FEFDEF5407FEEF13131354032E
+:1010A000FD300022904EE3E0FBA3E0FAA3E02DF92F
+:1010B000E43AFA1203B6FF7401A806088002C333AB
+:1010C000D8FC4F0203FC904EE3E0FBA3E0FAA3E060
+:1010D0002DF9E43AFA1203B6FF7401A8060880025B
+:1010E000C333D8FCF45F0203FCE4904EF3F0F090BD
+:1010F0004EF3E0FFC39408500CC2051159904EF313
+:10110000E004F080EA22908080E4F0A3F0A3F011E4
+:10111000E9E4904EF4F0F0904EF4E090068193FFF5
+:10112000600CC2051159904EF4E004F080E9229061
+:101130004EE7EDF0904EE6EFF064017070A3E0FF33
+:1011400075F01DA424E4F582E4344DF5837401F0B8
+:10115000EF75F01DA424E5F582E4344DAF82FE7BEB
+:10116000017A0379D0904EA87406F05106904EE7AC
+:10117000E075F01DA424EBF582E4344DAF82FE7BD4
+:10118000017A44797B904EA87410F05106904EE796
+:10119000E075F01DA424FBF582E4344DAF82FE7BA4
+:1011A000017A4479F9904EA87406F08059904EE681
+:1011B000E064027050A3E0FF75F01DA424E4F58202
+:1011C000E4344DF5837402F0EF75F01DA424E5F5C9
+:1011D00082E4344DAF82FE7B017A007940904EA8C4
+:1011E0007406F05106904EE7E075F01DA424EBF56F
+:1011F00082E4344DAF82FE7B017A427962904EA840
+:101200007410F0510622904EA3EEF0A3EFF0A3EB82
+:10121000F0A3EAF0A3E9F0904EA8E0FF14F0EF602D
+:1012200027904EA5E0FBA3E475F001120424A9F079
+:10123000FA1203B6FF904EA3E475F0011204248560
+:10124000F082F583EFF080CF22904EA9EBF0A3EA75
+:10125000F0A3E9F0E4A3F0A3F0904DDBF0904EADE5
+:10126000F0904EADE0FFC39405502C904EA9E0FBEA
+:10127000A3E0FAA3E02401F9E43AFA7E00E92FF9A9
+:10128000EE3AFA1203B6B4AF06904DDB7401F0905B
+:101290004EADE004F080CA904DDBE0904DE0F09060
+:1012A0004EA9E0FBA3E0FAA3E0F9122A11EF6002D5
+:1012B00081AF904EA9E0A3E0FAA3E04A700281AFAB
+:1012C000904CC7E064046007904CC9E0B4040690F9
+:1012D00042137403F0904DDE740AF0E4904CE3F096
+:1012E000A3F07B017A4879007D09FCB16D7B017A1E
+:1012F0004E793C7D097C00B16D904EA9E0FBA3E0E6
+:10130000FAA3E0F99000011203CFFFB42E0A900077
+:10131000021203CF6429600EEF642970239000024B
+:101320001203CFB42E1A904CC5E064016009904CB2
+:10133000CEE04410F08010904CCEE054EFF08007E7
+:10134000904CCEE054EFF0904CB67401F0904CF419
+:10135000E0B4012A9048007401F0A3E0FF904CF53E
+:10136000E0FEEF4E904801F0E4904803F07B017AF4
+:101370004879007D0991B0904CF47402F022904CB1
+:10138000C5E064037045904EADF0904EADE0FFC3F4
+:1013900094055037904EA9E0FBA3E0FAA3E02401A6
+:1013A000F9E43AFA7E00E92FF9EE3AFA1203B6FFB1
+:1013B00064396009EF64536004EFB44706904DD080
+:1013C0007401F0904EADE004F080BF904EA9E0FBB8
+:1013D000A3E0FAA3E0F9122C70904E3BE0B40111A7
+:1013E0007402F0904E3CF07B017A4E793C7D038193
+:1013F000B0904E3BE0B40316E4F0904DE3F0904E15
+:101400003C7402F07B017A4E793C7D0381B09048B8
+:10141000007401F0904EA9E0FBA3E0FAA3E0F912FA
+:1014200003B6904801F0E4A3F0904DD8F09000018D
+:101430001203CFB4AF1E7E487F03904EA9E0FBA3FA
+:10144000E0FAA3E02402F9E43AFA904EA87405F019
+:101450005106801C7E487F03904EA9E0FBA3E0FA72
+:10146000A3E02401F9E43AFA904EA87406F051067C
+:10147000904EAD7403F0904EADE0FFC3940950253B
+:1014800074002FF582E43448F583E0B4AF0F904E3A
+:10149000ADE02400F582E43448F583E4F0904EADED
+:1014A000E004F080D17B017A4879007D0991B02277
+:1014B000904EBDEBF0A3EAF0A3E9F0A3EDF0121813
+:1014C00005EF7002A16C904CEBE06002A16C904CB7
+:1014D000C9E0B40410904EBDE0FBA3E0FAA3E0F92C
+:1014E000A3E0FDF19F904CC7E0B40410904EBDE026
+:1014F000FBA3E0FAA3E0F9A3E0FDF197904CC5E06F
+:1015000064037068904EBDE0FBA3E0FAA3E0F9121B
+:1015100003B6FF6401702E9000011203CF701E907D
+:1015200000031203CF70169000041203CF700E90C8
+:1015300000051203CF7006904DD6F08028904DD64E
+:101540007401F08020EFB4021C9000011203CF70F0
+:101550000E9000021203CF7006904DD6F0800690D8
+:101560004DD67401F0904EC0E0FDF16B22904EDD3F
+:10157000EBF0A3EAF0A3E9F0ED1DAE0470011C4E00
+:101580006016904EDDE0FBA3E475F001120424A97F
+:10159000F0FAE41203FC80E0227B017A4C79BF7DF3
+:1015A000427C00B16D7B017A4D79937D147C00B152
+:1015B0006D7B017A4D79A87D147C00B16D7B017A39
+:1015C0004D79BC7D147C00B16D7B017A4879007D3A
+:1015D000097C00B16D7B017A4E793C7D097C00B1BC
+:1015E0006DE4904DDEF0904DE2F0904DD4F0904DD2
+:1015F000DAF0904DD7F0904DE1F0904DD6F0904D4F
+:10160000D0F0904DDDF0904DDCF0904E3BF0904DE1
+:10161000D5F0904DD8F0904DDBF0904DE0F0904D2E
+:10162000D3F0904DDFF0904DE3F0904DD9F0904D18
+:1016300038F022904DD0E06401702F904DD6E070CC
+:1016400029904CC5E06403704C7B017A4879007D99
+:1016500009FCB16D7B017A4879007D0991B0904D0C
+:10166000D07402F0E4904E3BF022904DD0E0B402F2
+:1016700024904DD6E0701E904DD0F07B017A4879D1
+:10168000007D09FCB16D7B017A4879007D0991B03C
+:10169000E4904E3BF022904ED4E4F0A3F0A3F0F19E
+:1016A000B35025122543904ED4EBF0A3EAF0A3E902
+:1016B000F04A7007904CB604F0C133904ED4E0FB72
+:1016C000A3E0FAA3E0F9514922904EE8EFF0A3ED30
+:1016D000F07B017A4879007D097C00B16D9048006B
+:1016E0007401F0A3E0FF904EE8E0FEEF4E90480159
+:1016F000F0904EE9E0904803F07B017A4879007D54
+:101700000981B0904CC8E064026007904CCAE0B414
+:10171000020302279C904CF4E0FF6008640160041F
+:10172000EFB40302C196904CF4E0B4020B7403F0E2
+:10173000A3E0FFA3E0FD8091904CF4E0B40413E437
+:10174000904CF6F0904CF47405F0A3E0FFA3E0FD9C
+:10175000C1C9904CF4E0B40511E4A3F0A3F0904C9F
+:10176000F4F0A3E0FFA3E0FDD1C922900BE77406DB
+:10177000F0904EF7EDF0E0FD900BE8F07E0B7FE986
+:10178000904EA8EDF051067B017A0B79E7904EF769
+:10179000E02402FD020884900BE77405F080D290EB
+:1017A0000BE77403F0ED6002F17122900BE7740413
+:1017B000F080BE904B9CE0FEA3E0FF904B9AE0B51A
+:1017C0000607A3E0B50702D322C322B19912337CE6
+:1017D000904CEB7401F0904CE5741EF0E4904CF0EA
+:1017E000F0904D0074FFF022904CC9E06404600F4B
+:1017F000904CC7E064046007904CC5E0B403037FDD
+:1018000001227F0022E4904EEFF0904CC8E0640289
+:101810006007904CCAE0B40206904EEFE0FF2290C1
+:1018200047F5E030E306904EEFE0FF22904CEEE00B
+:101830006006904EEFE0FF22904CC9E07045904C5E
+:10184000C7E0703F904CC5E064036037904CEFE018
+:10185000703B740AF0A3E07034904DE1E0640270D4
+:101860002C904CC3E0FFC39401400BEFD394035082
+:101870000512091980177F09120919904EEF74019A
+:10188000F0800AE4904CEBF0904EEF04F0904EEFB5
+:10189000E0FF22904CC9E0B402087F1E12085C7F72
+:1018A0000122904CC7E0B402087F0E12085C7F0151
+:1018B000227F0022904CC9E0FF64046004EFB4036F
+:1018C000087F0412085C7F0122904CC7E0FF64048B
+:1018D0006004EFB403087F1112085C7F0122904C72
+:1018E000C5E0FF64036004EFB402087F2212085CC5
+:1018F0007F01227F0022904CCEE030E018A3E0C3AD
+:1019000094FA5003E004F0904CCFE0B4020C7F0551
+:101910001209198005E4904CCFF0904CCEE030E1F4
+:101920003E904CD0E0C394FA5003E004F0904CD0C9
+:10193000E064B4702F904DDCE004F0E0D3940250EA
+:1019400007E4904CD0F0801C904DDCE0B40315907F
+:101950004DD57401F0E4904CD0F0120F938005E463
+:10196000904DDCF0904CCEE030E431904CEA740ABB
+:10197000F0904CD1E0C394FA5003E004F0904CD1C5
+:10198000E0B4061D904CC3E0FF6003B4FE1311B435
+:101990007F0A120F7B7F0A1209198005E4904CD14F
+:1019A000F0904CCEE030E348904CEA740AF0904C52
+:1019B000D2E0C394FA5003E004F0904CD2E0640605
+:1019C0007064904CE974F0F0E4904CEEF07F0512F6
+:1019D0000919120FF8E4904CCCF0904CEB04F09005
+:1019E0004CC0E0904CC4F0904CC3E0904CC0F0224E
+:1019F000904CCCE0602BE4F0904CC3E0FF904CC0E6
+:101A0000E06F601D904CEB7401F0120FF8904CC326
+:101A1000E0904CC0F0904CBF7401F011B4512771AC
+:101A200046E4904CD2F022904CBFE0FF6068640323
+:101A300060057FC8120F7BC2017FFF120EB2904C6F
+:101A4000BFE0B402107B017A4C79007D047C007FFA
+:101A5000527E7F51977B017A4D79E47D577C007FE0
+:101A6000607E7F51977B017A4C79C07D037C007F3B
+:101A7000B77E7F51977B017A4C79F27D027C007FA3
+:101A8000BA7E7F5197D2017FFF120EB27F0A120FEA
+:101A90007BE4904CBFF022904E77EEF0A3EFF0A3E2
+:101AA000ECF0A3EDF0A3EBF0A3EAF0A3E9F0904E85
+:101AB00079E07002A3E070026145904E77E0FEA3EA
+:101AC000E0FF440F2401FDE43EFCC3ED9FFFEC9ECC
+:101AD000FE904E7EF0A3EFF0904E79E0FCA3E0FD87
+:101AE000D39FEC9E400A904E7EE0FEA3E0FF800470
+:101AF000AE04AF05904E7EEEF0FCA3EFF0FDC39078
+:101B00004E7AE09DF0904E79E09CF0904E77E0FEAA
+:101B1000A3E0FF904E7BE0FBA3E0FAA3E0F91220E4
+:101B2000E87F0A120F7B904E7EE0FEA3E0FF904E0E
+:101B30007CEE8FF012040E904E78E02FF0904E77EE
+:101B4000E03EF041AE229080107401F080FE22F160
+:101B50005791FE12170351271232A6900B7EE01404
+:101B6000600D24FE70EB71A6120FF891F080FE90CC
+:101B70004CEAE07024904CECE0701E904CE5E07074
+:101B800018904CE2E07012904CE7E0700C904CE63C
+:101B9000E07006904CE8E06004F1B180B471A69169
+:101BA000F080AE80AC22E4FF904EF5F0FEFDEF90A9
+:101BB0000681936049EF93FD131313541FFEED54F8
+:101BC00007FD7401A805088002C333D8FCFDEE248C
+:101BD00078FBE434808B82F583E0FCEDF4FBEC5B76
+:101BE000F0EE2470F582E43480F583E04DF0EE24CD
+:101BF00074F582E43480F583E05BF00F80B0123539
+:101C00009890811CE0904EF5F0904CD5E064026015
+:101C100036904DD5E06020E4FF91517F0191517FD6
+:101C20000291517F0391517F0491517F0591517F22
+:101C30000691517F07801A904EF5E0FF9000A3F0C7
+:101C4000EFF49000A7F022E49000A3F09000A7F03A
+:101C500022904EF9EFF0F16A9208904EF9E0FFA25F
+:101C600008B39207EFF4700281EFEF5407FEEF1311
+:101C700013135403FF30074324A3F582E43400F523
+:101C800083C083C082E0FD7401A806088002C333CC
+:101C9000D8FCF45DD082D083F074A72FF582E434B1
+:101CA00000F583C083C082E0FF7401A806088002AB
+:101CB000C333D8FC4FD082D083F02274A32FF58297
+:101CC000E43400F583C083C082E0FD7401A80608F7
+:101CD0008002C333D8FCFC4DD082D083F074A72F90
+:101CE000F582E43400F583E0FFECF4FEEF5EF022D1
+:101CF000E4900B7FF0900B7EF07F01020F7B7A0C5B
+:101D0000794B904EDA7401F0A3740CF0A3744BF08D
+:101D1000904BA0E0FEA3E0FF904B9EE06E7003A30B
+:101D2000E06F7002C1AD7E0C7F4B7D03F107904EDA
+:101D3000DAE0FBA3E0FAA3E0F91203B6B4022B90B9
+:101D40004EDBE475F00212040E904EDAE0FBA3E0E5
+:101D5000FAA3E0F91203B6FF904E57E0A3E0FAA30E
+:101D6000E0F5828A831205DDC1AD904EDAE0FBA377
+:101D7000E0FAA3E0F91203B664047059904EDB75E3
+:101D8000F00112040E7E0C7F4E904EDAE0FBA3E0D1
+:101D9000FAA3E0F91203B614FDF107904EDAE0FB66
+:101DA000A3E0FAA3E02401F9E43AFAC002C00190EA
+:101DB0004EDAE0A3E0FAA3E0F91203B6FD7C00904E
+:101DC0004E5AE0A3E0FAA3E0F5828A83D001D00264
+:101DD0001205DDC1AD904EDAE0FBA3E0FAA3E0F915
+:101DE0001203B664057059904EDB75F00112040EB3
+:101DF0007E0C7F4E904EDAE0FBA3E0FAA3E0F912EE
+:101E000003B614FDF107904EDAE0FBA3E0FAA3E07D
+:101E10002401F9E43AFAC002C001904EDAE0A3E0EE
+:101E2000FAA3E0F91203B6FD7C00904E63E0A3E054
+:101E3000FAA3E0F5828A83D001D0021205DD806D1D
+:101E4000904EDAE0FBA3E0FAA3E0F91203B66403D4
+:101E50007059904EDB75F00112040E7E0C7F4E908F
+:101E60004EDAE0FBA3E0FAA3E0F91203B614FDF1A9
+:101E700007904EDAE0FBA3E0FAA3E02401F9E43A8C
+:101E8000FAC002C001904EDAE0A3E0FAA3E0F91232
+:101E900003B6FD7C00904E66E0A3E0FAA3E0F58275
+:101EA0008A83D001D0021205DD800280FE904BA50E
+:101EB000E0FEA3E0FF904C5EE06E7003A3E06F6075
+:101EC00022904E5DE0FBA3E0FAA3E0F94A603712EE
+:101ED00005D9904BA5E0FFA3E0904C5ECFF0A3EFB7
+:101EE000F080CA904C8DE0FFA3E06F6019904E60C7
+:101EF000E0FBA3E0FAA3E0F94A600B1205D9904C8D
+:101F00008DE0A3F080DD22904EECEEF0A3EFF0A97F
+:101F100005904B9EE0FEA3E0FFAD0119ED602F0F91
+:101F2000EFAC0670010E14F5828C83E0FD904EEC50
+:101F3000E475F00112042485F082F583EDF0AD071D
+:101F4000AC06BC4BD4BD9AD17E4B7F3680CB904B38
+:101F50009EEEF0A3EFF0227B017A4E794578577C14
+:101F60004E7D017E007F120203907B017A81791CF5
+:101F7000AD07E4904EF8F0FEEF5407F0EF131313A3
+:101F80005403FEF5827583001203CFFD3395E0FC08
+:101F9000904EF8E0FF74017E00A807088005C33367
+:101FA000CE33CED8F9FFEE5CFEEF5D4E24FF22610A
+:101FB0004F900B7F7401F0E4900B7EF022904DE186
+:101FC0007402F0904CC0E0D394034002E4F0904CD3
+:101FD000C0E0904CC3F0D39403500AE0FFC39401D7
+:101FE0004003020919904C00E0B4FF14A3E0B4FFD1
+:101FF0000FA3E0B4FF0AA3E0B4FF057F01020919B3
+:102000007F080209197B017A4C79F27D027C007FFE
+:10201000BA7E7F1130904CF2E004F0A3E004F0901F
+:102020004CF2E09044FAF0904CF3E09044FBF02244
+:10203000904EB8ECF0A3EDF0A3EBF0A3EAF0A3E927
+:10204000F09080987404F0A3E4F0900CAF74A0F0CA
+:10205000A3EEF0A3EFF0900CB274A1F07A0C79AF7C
+:102060007E0C7FAF74AFFC740CFFECFEEF90809A97
+:10207000EEF0A3EFF0904EB8E0FCA3E0FAECFFEA3C
+:10208000FEEF90809EEEF0A3EFF07A0B79837E0B4B
+:102090007F837483FC740BFFECFEEF90809CEEF06A
+:1020A000A3EFF09080907402F090809CA3E020E772
+:1020B00007908090E04401F0908006E04404F01125
+:1020C000E0904EBAE0A3E0FAA3E0AE02FF7B017A13
+:1020D0000B7983904EB8E0A3E0904EA8F002120670
+:1020E00090812CE030E5F922904E96EEF0A3EFF0CF
+:1020F000904E9AEBF0A3EAF0A3E9F0904E98ECF042
+:10210000A3EDF0A3E0F9A3E0FAA3E0904E83C9F0B9
+:10211000A3EAF0A3E9F0A3ECF0A3EDF07B017A0BC6
+:10212000798631FD900B8374A0F0904E96E0FFA36A
+:10213000E0900B84CFF0A3EFF0904E99E02403FDE4
+:10214000904E98E03400FCEDFAECFFEAFEEF908050
+:1021500098EEF0A3EFF07A0B79837E0B7F83748384
+:10216000FC740BFFECFEEFA3EEF0A3EFF090809E6B
+:10217000E4F0A3F090809004F0908006E04404F036
+:1021800001E0904DE2E06030E014F0E0702A904C05
+:10219000EDE0B405239047F5E020E31CE4904131E5
+:1021A000F0904CE974F0F0E4904CEEF011057F0DE6
+:1021B00012085CE4904CEDF022120EC4904CE4E066
+:1021C00004F07006904CE3E004F031EC518F1218EB
+:1021D000F631825141904CCAE064026007904CC8CD
+:1021E000E0B40207E4904CE3F0A3F022904CD3E07B
+:1021F000600A14F0E070057405F0710622904E80BC
+:10220000EBF0A3EAF0A3E9F0904E8674FFF5F0122C
+:10221000042445F0602A904E83E0FBA3E475F001AE
+:10222000120424A9F0FA1203B6FF904E80E0FBA33B
+:10223000E475F001120424A9F0FAEF1203FC80C83F
+:1022400022904CE9E06024E4904CE3F0A3F0904C41
+:10225000E9E014F0E07014904CC4E0904CC3F090AE
+:102260004CC0F07F0D120919120F93904CEEE060F4
+:102270001DE4904CE3F0A3F0904CEEE014F0E0701D
+:102280000D7F2212085C7F0A120F7B120F9322909F
+:102290004CC9E064046007904CC7E0B40418904C4B
+:1022A000E3E0640E7004A3E0641070591218B49057
+:1022B0004CEC7401F022904CC5E0B40311904CE357
+:1022C000E0640E7004A3E06410703A020F93904C27
+:1022D000C5E0B40114904CE3E07004A3E0642870FE
+:1022E000247F2212085C020F93904CE3E07004A359
+:1022F000E064147010904DDDE06007E4F07F0E1292
+:10230000085C120F9322904EB41205820000000068
+:10231000904C95E0FEA3E0FF904CD4E0FD04F0ED7E
+:1023200025E024D6F582E4344CF583EEF0A3EFF0FB
+:10233000904CD4E0C394044002E4F0E4904EB3F037
+:10234000904EB4E0F8A3E0F9A3E0FAA3E0FB904ECE
+:10235000B3E025E024D6F582E4344CF583E0FEA317
+:10236000E0FFE4FCFDEB2FFFEA3EFEED39FDEC382B
+:10237000FC904EB4120576904EB3E004F0E0B40445
+:10238000BF904EB4E0FCA3E0FDA3E0FEA3E0FFE4B9
+:102390007B04FAF9F81204C5904EB4120576904CFD
+:1023A000E0E0FEA3E0FFC3904CD7E09F904CD6E066
+:1023B0009E5007904CD57402F022904CDEE0FEA3B4
+:1023C000E0FFE4FCFD904EB4E0F8A3E0F9A3E0FAEE
+:1023D000A3E0FBC31205655007904CD57401F022B1
+:1023E000E4904CD5F022904CC3E014904EF0F0E411
+:1023F000904DD7F0904EF0E0FD7F0212112F904EDD
+:10240000F0E0FF603C904DE4E064027034EF75F062
+:102410001DA424E5F9744D35F0FA904E927401F044
+:10242000A3EAF0A3E9F0A37406F07B017A4D79E505
+:1024300091F9EF600C7B017A4D79E47D1D7C009170
+:10244000CC904EF0E0FF6401603C904E01E06402ED
+:102450007034EF75F01DA424E5F9744D35F0FA9051
+:102460004E927401F0A3EAF0A3E9F0A37406F07BA6
+:10247000017A4E790291F9EF600C7B017A4E790175
+:102480007D1D7C0091CC904EF0E0FF6402603C909A
+:102490004E1EE064027034EF75F01DA424E5F9745B
+:1024A0004D35F0FA904E927401F0A3EAF0A3E9F0F2
+:1024B000A37406F07B017A4E791F91F9EF600C7BD3
+:1024C000017A4E791E7D1D7C0091CC22904EE0EB6E
+:1024D000F0A3EAF0A3E9F0ED1DAE0470011C4E601C
+:1024E00017904EE0E0FBA3E475F001120424A9F07C
+:1024F000FA74FF1203FC80DF22904E8FEBF0A3EA08
+:10250000F0A3E9F0E4FF904E95E0FEEFC39E50305B
+:10251000904E92E0FBA3E0FAA3E0F98F827583006E
+:102520001203CFFE904E8FE0FBA3E0FAA3E0F98FF9
+:10253000827583001203CF6E60037F00220F80C676
+:102540007F0122E4904E69F0A3F0A3F0A3F0A3F082
+:10255000A3F0A3F0A3F0A3F0A3F0A3F0A3F0A3F0E3
+:10256000A3F01230547A4D79A8904E927401F0A3E2
+:10257000744DF0A374A8F0A37414F07B017A4D7924
+:10258000BC91F9EF60167B017A4D79BC7D14F15155
+:10259000EF7009904CCEE04402F0800C904CCEE0FD
+:1025A00054FDF0E4904CD0F0E4904E69F0904E6908
+:1025B000E0FF90068193602F74BC2FF582E4344DC8
+:1025C000F583E0904E6BF0E0FD6014904E6FE004F8
+:1025D000F0A3E0FEED4EF0AF05F143A3E02FF09045
+:1025E0004E69E004F080C6904E71E0904E76F09017
+:1025F0004E6FE0904E75F0904E70E0FFF143904EBC
+:1026000074EFF0904E76E0FFD39402401D904E742C
+:10261000E0FEA3E0FDD39E4004AE058000EFD39E14
+:102620004008904E737401F08005E4904E73F0E41E
+:10263000904E69F0904E69E0FF900681937002E140
+:102640001774932FF582E4344DF583E0FE74BC2FAC
+:10265000F582E4344DF583E06E904E6BF0904E6958
+:10266000E0FF24BCF582E4344DF583E0904E6EF03B
+:10267000904E6BE07004E10FE10F904E73E0600745
+:102680007B007A0079002274BC2FF582E4344DF58A
+:1026900083E0FE74932FF582E4344DF583EEF0E48D
+:1026A000904E6AF0904E6AE0FFC39408505BA3E03E
+:1026B00030E03E904E69E0FE33333354F8FEEF4E87
+:1026C000904E6DF0A3E0FF904E6DE090069693FD66
+:1026D000122B12904E72EFF0904E6EE030E00A90A6
+:1026E0004E72E0FF122EE18008904E72E0FF122F32
+:1026F00071904E6BE0FFC313F0904E6EE0FFC3137A
+:10270000F0904E6AE004F0809B904E6C7401F09063
+:102710004E69E004F0C134904E3BE0B4030A904DA2
+:10272000D8E0B401037402F0904E6CE07007904D55
+:10273000D8E0B402077B017A4E7988227B007A00C8
+:10274000790022E4FEEF6006145FFF0E80F7AF060B
+:1027500022904ED7EBF0A3EAF0A3E9F0E4FFEFC339
+:102760009D501B904ED7E0FBA3E0FAA3E0F98F82C7
+:102770007583001203CF60037F00220F80E07F018A
+:1027800022AD07AC06904E3BE06402600E7401F08F
+:10279000904E3C04F0EFA3F0EEA3F022904ED1E473
+:1027A000F0A3F0A3F0B143904ED1EBF0A3EAF0A375
+:1027B000E9F04A7003022A10904ED1E0FBA3E0FA40
+:1027C000A3E0F99000011203CFFF7003022A106406
+:1027D000286005EF64587033904CC8E0B402107F55
+:1027E0002912085C904CC87403F0E4904DD2F0902C
+:1027F0004CCAE064026003022A1090425E04F07F3B
+:102800000A12085C904CCA7403F022904ED1E0FB8F
+:10281000A3E0FAA3E0F99000011203CFFFD3946282
+:10282000400201DCEFC39459500201DCEFB462387E
+:1028300090054FE0FF04F074502FF582E43405F565
+:10284000837430F0904D39E0FCA3E0FDA3E0FEA3DB
+:10285000E0FFE47B0AFAF9F812043A904D391205C8
+:1028600076904DD2E004F022904ED1E0FBA3E0FA46
+:10287000A3E0F99000011203CF24D8FF90054FE0A8
+:10288000FE04F074502EF582E43405F583EFF090E9
+:1028900000011203CF24A8FFE434FFFEE4FCFDC0D6
+:1028A00004C005C006C0077F0AFE904D39E0F8A3BA
+:1028B000E0F9A3E0FAA3E0FB12043AD003D002D07F
+:1028C00001D000EF2BFFEE3AFEED39FDEC38FC9025
+:1028D0004D39120576904DD2E004F022904ED1E0B1
+:1028E000FBA3E0FAA3E0F99000011203CFFFD39419
+:1028F00027400221ADEFC3941E500221ADEFB42753
+:102900003890054FE0FF04F074502FF582E4340551
+:10291000F5837430F0904D39E0FCA3E0FDA3E0FEB8
+:10292000A3E0FFE47B0AFAF9F812043A904D391259
+:102930000576904DD2E004F022904ED1E0FBA3E06A
+:10294000FAA3E0F99000011203CF2413FF90054F82
+:10295000E0FE04F074502EF582E43405F583EFF0C8
+:102960009000011203CF24E3FFE434FFFEE4FCFDFA
+:10297000C004C005C006C0077F0AFE904D39E0F8CC
+:10298000A3E0F9A3E0FAA3E0FB12043AD003D002DB
+:10299000D001D000EF2BFFEE3AFEED39FDEC38FC14
+:1029A000904D39120576904DD2E004F022904ED130
+:1029B000E0FBA3E0FAA3E0F99000011203CF642A40
+:1029C000704090054FE06010E0FF14F074502FF558
+:1029D00082E43405F583E4F0904DD2E06032904D0E
+:1029E00039E0FCA3E0FDA3E0FEA3E0FFE47B0AFAEC
+:1029F000F9F81204C5904D39120576904DD2E014C5
+:102A0000F022904ED1E0FBA3E0FAA3E0F9121249C4
+:102A100022904EAEEBF0A3EAF0A3E9F0E4A3F0A31A
+:102A2000F0904DDBE06401600241E8904EB2740525
+:102A3000F0904EB2E0FF14F0EF700241EF904EAE16
+:102A4000E0FBA3E0FAA3E02401F9E43AFA904EB2E5
+:102A5000E07E0029F9EE3AFA1203B6904EB1F0C3C7
+:102A6000941E407BE0FFD394215074EF24E224FDB8
+:102A7000500460328066904CEA740AF0904CCEE0CC
+:102A80004408F0904EB1E024E3FF904CC3E0B5075A
+:102A900008904CC5E064037043904CC3EFF0904C39
+:102AA000CC7401F08036904CC3E0FF602F64FE6070
+:102AB0002B904CCEE054F7F0E4904CC3F07F0D1215
+:102AC0000919904CEB7401F0904CC3E0904CC0F0AD
+:102AD000904CBF7401F0121A27121B467F012290FE
+:102AE0004CCEE054F7F04131904CCEE054F7F07FFB
+:102AF0000022AE05EF30E00A904DD3E004F0AE03C3
+:102B0000800D904DD3E06007E014F0AF03AE07AF47
+:102B10000622AE07AC05E4904EF2F0ECF0904DDBEF
+:102B2000E064016002816AEC24C6B40C00400281BA
+:102B30006A902B3F75F003A4C58325F0C58373020B
+:102B40002B63022B72022B81022BAC022BD6022CA0
+:102B500001022C10022C1F022C2E022C3D022C4CA8
+:102B6000022C5BAF06AD047BD751F2904EF2EFF032
+:102B7000816AAF06AD047BD851F2904EF2EFF0813E
+:102B80006A904CF57404F0A3742BF0EE30E00890DA
+:102B90004CF47401F08006904CF47404F0AF06AD70
+:102BA00004E4FB51F2904EF2EFF0816A904CF57420
+:102BB00008F0A314F0EE30E008904CF47401F080BB
+:102BC00006904CF47404F0AF06AD04E4FB51F290AF
+:102BD0004EF2EFF0816A904CF57408F0A37450F057
+:102BE000EE30E008904CF47401F08006904CF474E0
+:102BF00004F0AF06AD04E4FB51F2904EF2EFF0802A
+:102C000069AF06AD047BD551F2904EF2EFF0805AD9
+:102C1000AF06AD047BF451F2904EF2EFF0804BAF73
+:102C200006AD047BF251F2904EF2EFF0803CAF061D
+:102C3000AD047BF551F2904EF2EFF0802DAF06AD72
+:102C4000047BF851F2904EF2EFF0801EAF06AD0417
+:102C50007BF651F2904EF2EFF0800FAF06AE04AD6E
+:102C6000067BF751F2904EF2EFF0904EF2E0FF2229
+:102C7000904EC1EBF0A3EAF0A3E9F0E4A3F0F090EA
+:102C80004EC4E0FFC394064002C1E0904EC1E0FB99
+:102C9000A3E0FAA3E02401F9E43AFA7E00E92FF96F
+:102CA000EE3AFA1203B6FF54F064F06009EF54D024
+:102CB00064D06002C1D81203B6FBB4F1097F837EF1
+:102CC00001122781C1ADEBB4F2097FCD7E0012273E
+:102CD00081C1AD904EC1E0FBA3E0FAA3E02401F96D
+:102CE000E43AFAA3E07E0029F9EE3AFA1203B6FBC1
+:102CF000B4F3077FB7122781C1ADEBB4F4097FB6F7
+:102D00007E00122781C1AD904EC1E0FBA3E0FAA383
+:102D1000E02401F9E43AFAA3E07E0029F9EE3AFA58
+:102D20001203B6FBB4F5077FB5122781C1ADEBB432
+:102D3000F6097FEA7E00122781C1AD904EC1E0FB0B
+:102D4000A3E0FAA3E02401F9E43AFAA3E07E002923
+:102D5000F9EE3AFA1203B6FBB4F7077FE9122781BE
+:102D6000C1ADEBB4F8097FE27E00122781C1AD90BE
+:102D70004EC1E0FBA3E0FAA3E02401F9E43AFAA390
+:102D8000E07E0029F9EE3AFA1203B6FBB4F9087FA7
+:102D9000940E122781C1ADEBB4FA097F8A7E01122D
+:102DA0002781C1AD904EC1E0FBA3E0FAA3E024016E
+:102DB000F9E43AFAA3E07E0029F9EE3AFA1203B6F2
+:102DC000FBB4FB087F920E122781C1ADEBB4D00992
+:102DD0007F2A7E02122781C1AD904EC1E0FBA3E0A5
+:102DE000FAA3E02401F9E43AFAA3E07E0029F9EE1F
+:102DF0003AFA1203B6FBB4D1097F257E021227816D
+:102E0000C1ADEBB4D3097F267E02122781C1AD90FC
+:102E10004EC1E0FBA3E0FAA3E02401F9E43AFAA3EF
+:102E2000E07E0029F9EE3AFA1203B6FBB4D2097F2C
+:102E3000247E021227818075EBB4D4097F277E029D
+:102E40001227818068904EC1E0FBA3E0FAA3E02442
+:102E500001F9E43AFAA3E07E0029F9EE3AFA120306
+:102E6000B6FBB4D5097F217E02122781803FEBB4E7
+:102E7000D6097F237E021227818032904EC1E0FB6B
+:102E8000A3E0FAA3E02401F9E43AFAA3E07E0029E2
+:102E9000F9EE3AFA1203B6FBB4D7077F7012278116
+:102EA000800BEBB4D8077F6F7E00122781904E3BDA
+:102EB000E0B40224904EC1E0FBA3E0FAA3E02401B9
+:102EC000F9E43AFAA3E07E0029F9EE3AFA1203B6E1
+:102ED000904DE3F0E41203FC904EC4E004F0817FD7
+:102EE00022E4FEEFB4E708904E88E04480F022EF41
+:102EF000B4E608904E88E04440F022EFB4E5089034
+:102F00004E88E04420F022EFB4E408904E88E0447C
+:102F100010F022EFB4E308904E88E04408F022EF6E
+:102F2000B4E208904E88E04404F022EFB4E1089047
+:102F30004E88E04402F022EFB4E008904E88E0446E
+:102F400001F022E4FE74892EF582E4344EF583E02C
+:102F5000FD6F601CED7014904DE3E06F601274899A
+:102F60002EF582E4344EF583EFF0220EEEB406D552
+:102F700022E4FEFDEF54F064F06007EF54D0FCBC97
+:102F8000D00C904E3BE0B4020B7403F08006904DE1
+:102F9000D87401F0EFB4E708904E88E0547FF02237
+:102FA000EFB4E608904E88E054BFF022EFB4E50895
+:102FB000904E88E054DFF022EFB4E408904E88E0B1
+:102FC00054EFF022EFB4E308904E88E054F7F0227B
+:102FD000EFB4E208904E88E054FBF022EFB4E10831
+:102FE000904E88E054FDF022EFB4E008904E88E067
+:102FF00054FEF022E4FEED702174892EF582E43453
+:103000004EF583E06F7047EEB4050B2489F582E43A
+:10301000344EF583E4F07D01803474892EF582E42A
+:10302000344EF583E0FC74882EF582E4344EF5834B
+:10303000ECF074892EF582E4344EF583E06014EEF2
+:10304000B4050B2489F582E4344EF583E4F00EEEEA
+:10305000B406A322E4FF904EC5F0FEFDA3F0A3F05A
+:10306000A3F0EF90068193607CEF93FD131313544C
+:103070001FFEED5407FD7401A805088002C333D874
+:10308000FCFDEE2478FBE434808B82F583E0FCEDDC
+:10309000F4FBEC5BF0EE2470F582E43480F583E021
+:1030A0004DF0EE2474F582E43480F583E05BF0901B
+:1030B000811CE0F4FC74BC2FF582E4344DF583EC04
+:1030C000F0EE2478FBE434808B82F583E04DF0EE63
+:1030D0002470FBE434808B82F583E0FCEDF4FBECA0
+:1030E0005BF00F0162E4FFEF90068193607CEF9349
+:1030F000FD131313541FFEED5407FD7401A80508BA
+:103100008002C333D8FCFDEE2478FBE434808B824C
+:10311000F583E0FCEDF4FBEC5BF0EE2470F582E46B
+:103120003480F583E04DF0EE2474F582E43480F5CC
+:1031300083E05BF090811CE0F4FC74A82FF582E43E
+:10314000344DF583ECF0EE2478FBE434808B82F58B
+:1031500083E04DF0EE2470FBE434808B82F583E055
+:10316000FCEDF4FBEC5BF00F01E7E4FFEF90068170
+:1031700093604074BC2FF582E4344DF583E0FE7417
+:10318000A82FF582E4344DF583E06E602374BC2FE4
+:10319000F582E4344DF583C083C082E0FE74A82F2D
+:1031A000F582E4344DF583E0FDEE5DD082D083F00E
+:1031B0000F80B922904CC3E0B40107C2017F1F0207
+:1031C0000EB2904CC3E0B40207C2017F1E020EB2E1
+:1031D000904CC3E0B4030EC2017F1F120EB2C201B5
+:1031E0007F1D020EB2C2017F1D020EB2904CEAE0BA
+:1031F000600214F0904CEFE0600214F0904CE5E0B7
+:10320000600F14F031B4904CE5E07030120F9C80E8
+:103210002B904CE9E07025904CE2E0601F14F0E048
+:1032200030E109C2017F1D120EB28007D2017F1D5D
+:10323000120EB2904CE2E070037404F0904DD5E0B1
+:10324000702D904DD6E064017025F0904E3CE0600A
+:103250000D7B017A4E793C7D031214B080119048A9
+:1032600000E0600B7B017A4879007D091214B09070
+:103270004DD4E06009E014F0E07003121B46904D5D
+:10328000DEE06021E014F0E0701B904CC7E0B40475
+:1032900007904213740CF022904CC9E0B4040690DD
+:1032A0004213743AF022904DE1E064026002616BD7
+:1032B000904CE9E06002615D904CD5E0B4020512EB
+:1032C0000F93802F904CD5E0B40114904CF7E07030
+:1032D00022904CE27404F0904CF77401F08014904A
+:1032E0004CF7E0B4010DE4F0904CE2F0D2017F1D08
+:1032F000120EB21217E8EF6056904DD9E0FF904CD5
+:10330000B7E06F6066E030E00F904CE6740CF0C2FE
+:10331000017F10120EB2800CD2017F10120EB2E4A7
+:10332000904CE6F0904CB7E030E10F904CE7740C15
+:10333000F0C2017F0F120EB2800CD2017F0F120E6D
+:10334000B2E4904CE7F0904CB7E0904DD9F022D227
+:10335000017F10120EB2D2017F0F020EB2D2017F96
+:1033600010120EB2D2017F0F120EB222904EEAED71
+:10337000F09000011203CF904EEBF022904C90742D
+:1033800033F0904CD37405F0E4A3F0FFEF25E02474
+:10339000D6F582E4344CF5837479F0A37490F00F81
+:1033A000EFB404E8904C8FE064026002814B904CD3
+:1033B00091E0FEA3E0FFC3904C94E09FFD904C93FE
+:1033C000E09EFCE41202067BC37AF57988783F120E
+:1033D00000FBC004C005C006C007904C91E0FCA3F0
+:1033E000E0FDE4120206D003D002D001D0001200AA
+:1033F0000A12023F904CDEEEF0A3EFF0904C91E009
+:10340000FEA3E0FFC3904C94E09FFD904C93E09EA0
+:10341000FCE41202067BAE7A477981783F1200FB0A
+:10342000C004C005C006C007904C91E0FCA3E0FDBD
+:10343000E4120206D003D002D001D00012000A121A
+:10344000023F904CE0EEF0A3EFF022904C8FE0644E
+:1034500001700281F1904C91E0FEA3E0FFC3904C1B
+:1034600094E09FFD904C93E09EFCE41202067B29C1
+:103470007A5C794F783F1200FBC004C005C006C0DB
+:1034800007904C91E0FCA3E0FDE4120206D003D0CB
+:1034900002D001D00012000A12023F904CDEEEF082
+:1034A000A3EFF0904C91E0FEA3E0FFC3904C94E0BA
+:1034B0009FFD904C93E09EFCE41202067B527AB88A
+:1034C000791E783F1200FBC004C005C006C00790FB
+:1034D0004C91E0FCA3E0FDE4120206D003D002D040
+:1034E00001D00012000A12023F904CE0EEF0A3EF70
+:1034F000F022904EC9EEF0A3EFF0904ECBECF0A38B
+:10350000EDF0904ECBE0FEA3E0FFD3904ECAE09FDB
+:10351000904EC9E09E4016904ECBE0FEA3E0FF9097
+:103520004ECAE09FFF904EC9E09EFE801E904EC99D
+:10353000E0FEA3E0FFC3904ECCE09FFF904ECBE0B7
+:103540009EFEAD03C3EB9FFFE49EFE22900446E087
+:10355000FF229082807401F022EFF4603AEF54076A
+:10356000FEEF1313135403FF24A3F582E43400F594
+:1035700083C083C082E0FD7401A806088002C333C3
+:10358000D8FCF4FC5DD082D083F074A72FF582E4E0
+:103590003400F583E05CF022E4FFEFFD7C0024784A
+:1035A000FBEC34808B82F583E0FEED2470FDEC347F
+:1035B000808D82F583E04EF4FEEF247CFDEC3480B8
+:0C35C0008D82F583EEF00FEFB404CF22F3
+:00000001FF
Index: YC1026_3mode_SDK_CUSTOMER/output/fwram.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/fwram.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/fwram.rom	(working copy)
@@ -0,0 +1,13772 @@
+02
+05
+df
+02
+02
+ab
+e8
+64
+80
+f8
+e9
+33
+e8
+33
+60
+11
+04
+60
+f0
+ed
+33
+ec
+33
+70
+09
+e8
+fc
+e9
+fd
+ea
+fe
+eb
+ff
+22
+04
+60
+de
+d3
+eb
+9f
+ea
+9e
+e9
+9d
+e8
+c2
+e7
+8c
+f0
+c2
+f7
+95
+f0
+40
+0c
+e8
+cc
+f8
+e9
+cd
+f9
+ea
+ce
+fa
+eb
+cf
+fb
+12
+02
+76
+85
+d0
+f0
+58
+04
+70
+03
+20
+d5
+b3
+e8
+04
+70
+07
+50
+02
+b2
+d5
+02
+02
+b5
+92
+d5
+ec
+04
+60
+f7
+e4
+cc
+c0
+e0
+c3
+98
+f8
+60
+3b
+94
+18
+60
+08
+40
+0d
+d0
+e0
+fb
+02
+02
+8d
+e4
+fb
+fa
+c9
+fc
+80
+28
+e8
+30
+e4
+06
+e4
+c9
+fb
+e4
+ca
+fc
+e8
+30
+e3
+05
+e4
+c9
+ca
+cb
+fc
+e8
+54
+07
+60
+10
+f8
+c3
+e9
+13
+f9
+ea
+13
+fa
+eb
+13
+fb
+ec
+13
+fc
+d8
+f1
+30
+f5
+2f
+c3
+e4
+9c
+fc
+ef
+9b
+ff
+ee
+9a
+fe
+ed
+99
+fd
+d0
+e0
+fb
+ef
+4e
+4d
+4c
+70
+12
+22
+db
+03
+02
+02
+b2
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ed
+30
+e7
+eb
+02
+02
+8d
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+d0
+e0
+fb
+50
+13
+0b
+bb
+00
+03
+02
+02
+b5
+ed
+13
+fd
+ee
+13
+fe
+ef
+13
+ff
+ec
+13
+fc
+02
+02
+8d
+ec
+4d
+60
+11
+e8
+49
+70
+17
+ed
+33
+ec
+33
+04
+60
+0d
+e4
+fc
+ff
+fe
+fd
+22
+e9
+33
+e8
+33
+04
+70
+f8
+02
+02
+ab
+12
+02
+76
+58
+04
+60
+09
+e4
+cc
+24
+81
+50
+06
+28
+50
+09
+02
+02
+b5
+28
+40
+03
+02
+02
+b2
+c0
+e0
+eb
+4a
+70
+44
+b9
+80
+06
+d0
+e0
+fb
+02
+02
+a1
+ef
+4e
+70
+1c
+bd
+80
+08
+eb
+ff
+ea
+fe
+e9
+fd
+80
+eb
+e9
+8d
+f0
+a4
+fe
+e5
+f0
+02
+01
+e4
+e9
+cd
+f9
+ea
+fe
+eb
+ff
+ef
+89
+f0
+a4
+fc
+e5
+f0
+ce
+89
+f0
+a4
+2e
+ff
+e4
+35
+f0
+cd
+89
+f0
+a4
+2d
+fe
+e4
+35
+f0
+80
+67
+ef
+4e
+70
+05
+bd
+80
+d7
+80
+c3
+ef
+8b
+f0
+a4
+ac
+f0
+ee
+8b
+f0
+a4
+2c
+fc
+e4
+35
+f0
+f8
+ef
+8a
+f0
+a4
+2c
+e5
+f0
+38
+fc
+e4
+33
+cb
+8d
+f0
+a4
+2c
+fc
+e5
+f0
+3b
+f8
+ee
+8a
+f0
+a4
+2c
+fc
+e5
+f0
+38
+f8
+e4
+33
+cf
+89
+f0
+a4
+2c
+fc
+e5
+f0
+38
+cf
+34
+00
+ce
+89
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+33
+c9
+8d
+f0
+a4
+2e
+fe
+e5
+f0
+39
+cd
+8a
+f0
+a4
+2f
+ff
+e5
+f0
+3e
+fe
+e4
+3d
+fd
+33
+d0
+e0
+fb
+50
+07
+0b
+bb
+00
+0f
+02
+02
+b5
+ec
+2c
+fc
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+02
+02
+8d
+75
+f0
+20
+80
+0e
+75
+f0
+10
+80
+05
+75
+f0
+08
+7d
+00
+7e
+00
+7f
+00
+33
+92
+d5
+30
+d5
+03
+12
+05
+57
+ec
+33
+40
+10
+ef
+33
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+d5
+f0
+ed
+22
+e5
+f0
+24
+7e
+a2
+d5
+13
+cc
+92
+e7
+cd
+ce
+ff
+22
+ed
+d2
+e7
+cd
+33
+ec
+33
+92
+d5
+24
+81
+40
+06
+e4
+ff
+fe
+fd
+fc
+22
+fc
+e4
+cf
+ce
+cd
+cc
+24
+e0
+50
+11
+74
+ff
+80
+ed
+c3
+cc
+13
+cc
+cd
+13
+cd
+ce
+13
+ce
+cf
+13
+cf
+04
+70
+f0
+30
+d5
+de
+02
+05
+57
+e9
+d2
+e7
+c9
+33
+e8
+33
+f8
+92
+d5
+ed
+d2
+e7
+cd
+33
+ec
+33
+fc
+50
+02
+b2
+d5
+22
+ec
+30
+e7
+10
+0f
+bf
+00
+0c
+0e
+be
+00
+08
+0d
+bd
+00
+04
+0b
+eb
+60
+14
+a2
+d5
+eb
+13
+fc
+ed
+92
+e7
+fd
+22
+74
+ff
+fc
+fd
+fe
+ff
+22
+e4
+80
+f8
+a2
+d5
+74
+ff
+13
+fc
+7d
+80
+e4
+80
+ef
+e7
+09
+f6
+08
+df
+fa
+80
+46
+e7
+09
+f2
+08
+df
+fa
+80
+3e
+88
+82
+8c
+83
+e7
+09
+f0
+a3
+df
+fa
+80
+32
+e3
+09
+f6
+08
+df
+fa
+80
+78
+e3
+09
+f2
+08
+df
+fa
+80
+70
+88
+82
+8c
+83
+e3
+09
+f0
+a3
+df
+fa
+80
+64
+89
+82
+8a
+83
+e0
+a3
+f6
+08
+df
+fa
+80
+58
+89
+82
+8a
+83
+e0
+a3
+f2
+08
+df
+fa
+80
+4c
+80
+d2
+80
+fa
+80
+c6
+80
+d4
+80
+69
+80
+f2
+80
+33
+80
+10
+80
+a6
+80
+ea
+80
+9a
+80
+a8
+80
+da
+80
+e2
+80
+ca
+80
+33
+89
+82
+8a
+83
+ec
+fa
+e4
+93
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+e9
+de
+e7
+80
+0d
+89
+82
+8a
+83
+e4
+93
+a3
+f6
+08
+df
+f9
+ec
+fa
+a9
+f0
+ed
+fb
+22
+89
+82
+8a
+83
+ec
+fa
+e0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+f0
+a3
+c8
+c5
+82
+c8
+cc
+c5
+83
+cc
+df
+ea
+de
+e8
+80
+db
+89
+82
+8a
+83
+e4
+93
+a3
+f2
+08
+df
+f9
+80
+cc
+88
+f0
+ef
+60
+01
+0e
+4e
+60
+c3
+88
+f0
+ed
+24
+02
+b4
+04
+00
+50
+b9
+f5
+82
+eb
+24
+02
+b4
+04
+00
+50
+af
+23
+23
+45
+82
+23
+90
+03
+10
+73
+bb
+01
+06
+89
+82
+8a
+83
+e0
+22
+50
+02
+e7
+22
+bb
+fe
+02
+e3
+22
+89
+82
+8a
+83
+e4
+93
+22
+bb
+01
+0c
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e0
+22
+50
+06
+e9
+25
+82
+f8
+e6
+22
+bb
+fe
+06
+e9
+25
+82
+f8
+e2
+22
+e5
+82
+29
+f5
+82
+e5
+83
+3a
+f5
+83
+e4
+93
+22
+bb
+01
+06
+89
+82
+8a
+83
+f0
+22
+50
+02
+f7
+22
+bb
+fe
+01
+f3
+22
+c5
+f0
+f8
+a3
+e0
+28
+f0
+c5
+f0
+f8
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+38
+f0
+22
+a3
+f8
+e0
+c5
+f0
+25
+f0
+f0
+e5
+82
+15
+82
+70
+02
+15
+83
+e0
+c8
+38
+f0
+e8
+22
+e8
+8f
+f0
+a4
+cc
+8b
+f0
+a4
+2c
+fc
+e9
+8e
+f0
+a4
+2c
+fc
+8a
+f0
+ed
+a4
+2c
+fc
+ea
+8e
+f0
+a4
+cd
+a8
+f0
+8b
+f0
+a4
+2d
+cc
+38
+25
+f0
+fd
+e9
+8f
+f0
+a4
+2c
+cd
+35
+f0
+fc
+eb
+8e
+f0
+a4
+fe
+a9
+f0
+eb
+8f
+f0
+a4
+cf
+c5
+f0
+2e
+cd
+39
+fe
+e4
+3c
+fc
+ea
+a4
+2d
+ce
+35
+f0
+fd
+e4
+3c
+fc
+22
+75
+f0
+08
+75
+82
+00
+ef
+2f
+ff
+ee
+33
+fe
+cd
+33
+cd
+cc
+33
+cc
+c5
+82
+33
+c5
+82
+9b
+ed
+9a
+ec
+99
+e5
+82
+98
+40
+0c
+f5
+82
+ee
+9b
+fe
+ed
+9a
+fd
+ec
+99
+fc
+0f
+d5
+f0
+d6
+e4
+ce
+fb
+e4
+cd
+fa
+e4
+cc
+f9
+a8
+82
+22
+b8
+00
+c1
+b9
+00
+59
+ba
+00
+2d
+ec
+8b
+f0
+84
+cf
+ce
+cd
+fc
+e5
+f0
+cb
+f9
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+eb
+33
+fb
+10
+d7
+03
+99
+40
+04
+eb
+99
+fb
+0f
+d8
+e5
+e4
+f9
+fa
+22
+78
+18
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+ec
+33
+fc
+c9
+33
+c9
+10
+d7
+05
+9b
+e9
+9a
+40
+07
+ec
+9b
+fc
+e9
+9a
+f9
+0f
+d8
+e0
+e4
+c9
+fa
+e4
+cc
+fb
+22
+75
+f0
+10
+ef
+2f
+ff
+ee
+33
+fe
+ed
+33
+fd
+cc
+33
+cc
+c8
+33
+c8
+10
+d7
+07
+9b
+ec
+9a
+e8
+99
+40
+0a
+ed
+9b
+fd
+ec
+9a
+fc
+e8
+99
+f8
+0f
+d5
+f0
+da
+e4
+cd
+fb
+e4
+cc
+fa
+e4
+c8
+f9
+22
+c3
+e4
+9f
+ff
+e4
+9e
+fe
+e4
+9d
+fd
+e4
+9c
+fc
+22
+eb
+9f
+f5
+f0
+ea
+9e
+42
+f0
+e9
+9d
+42
+f0
+e8
+9c
+45
+f0
+22
+ec
+f0
+a3
+ed
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+22
+a8
+82
+85
+83
+f0
+d0
+83
+d0
+82
+12
+05
+99
+12
+05
+99
+12
+05
+99
+12
+05
+99
+e4
+73
+e4
+93
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+f0
+a3
+c5
+83
+c5
+f0
+c5
+83
+c8
+c5
+82
+c8
+22
+d0
+83
+d0
+82
+f8
+e4
+93
+70
+12
+74
+01
+93
+70
+0d
+a3
+a3
+93
+f8
+74
+01
+93
+f5
+82
+88
+83
+e4
+73
+74
+02
+93
+68
+60
+ef
+a3
+a3
+a3
+80
+df
+8a
+83
+89
+82
+e4
+73
+78
+7f
+e4
+f6
+d8
+fd
+75
+81
+cf
+02
+06
+26
+02
+1f
+af
+e4
+93
+a3
+f8
+e4
+93
+a3
+40
+03
+f6
+80
+01
+f2
+08
+df
+f4
+80
+29
+e4
+93
+a3
+f8
+54
+07
+24
+0c
+c8
+c3
+33
+c4
+54
+0f
+44
+20
+c8
+83
+40
+04
+f4
+56
+80
+01
+46
+f6
+df
+e4
+80
+0b
+01
+02
+04
+08
+10
+20
+40
+80
+90
+06
+6b
+e4
+7e
+01
+93
+60
+bc
+a3
+ff
+54
+3f
+30
+e5
+09
+54
+1f
+fe
+e4
+93
+a3
+60
+01
+0e
+cf
+54
+c0
+25
+e0
+60
+a8
+40
+b8
+e4
+93
+a3
+fa
+e4
+93
+a3
+f8
+e4
+93
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+f0
+a3
+c8
+c5
+82
+c8
+ca
+c5
+83
+ca
+df
+e9
+de
+e7
+80
+be
+52
+4e
+45
+ff
+0a
+b3
+00
+00
+00
+ff
+21
+b9
+ff
+31
+ec
+00
+00
+00
+ff
+33
+6c
+00
+1a
+08
+09
+0a
+0b
+0c
+0d
+0e
+18
+19
+17
+15
+14
+13
+11
+16
+1b
+1c
+00
+00
+00
+48
+00
+00
+00
+e4
+00
+e0
+3e
+14
+2b
+04
+29
+1d
+8b
+35
+1e
+1a
+39
+16
+64
+1b
+8a
+3a
+1f
+08
+3c
+07
+3d
+06
+88
+3b
+20
+15
+17
+09
+0a
+19
+05
+22
+21
+18
+1c
+0d
+0b
+10
+11
+23
+24
+0c
+30
+0e
+3f
+36
+87
+2e
+25
+12
+40
+0f
+00
+37
+65
+41
+26
+13
+2f
+33
+34
+32
+38
+2d
+27
+47
+00
+af
+e2
+00
+e6
+00
+46
+89
+2a
+31
+44
+28
+45
+42
+43
+5f
+5c
+59
+2c
+53
+51
+4c
+00
+60
+5d
+5a
+62
+54
+4f
+49
+00
+61
+5e
+5b
+63
+55
+56
+4b
+4e
+57
+85
+58
+52
+f2
+50
+4a
+4d
+00
+e1
+e5
+f6
+f7
+f5
+f4
+f1
+fa
+e3
+d1
+d3
+d2
+d4
+f8
+d5
+91
+d0
+af
+f9
+f3
+fb
+d6
+90
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+00
+01
+01
+00
+90
+4e
+ee
+ef
+f0
+90
+4c
+f0
+e0
+70
+03
+02
+08
+5b
+90
+4c
+f0
+e0
+14
+f0
+e4
+90
+4d
+dd
+f0
+90
+4e
+ee
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+64
+01
+70
+70
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+eb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+7b
+90
+4e
+a8
+74
+10
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+fb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+44
+7f
+f9
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+7f
+2b
+12
+08
+5c
+90
+4d
+dd
+74
+01
+f0
+e4
+90
+4c
+f0
+f0
+90
+44
+8b
+04
+f0
+22
+90
+4e
+ee
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+64
+02
+70
+46
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+74
+90
+4e
+a8
+74
+06
+f0
+12
+12
+06
+90
+4e
+ee
+e0
+75
+f0
+1d
+a4
+24
+eb
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7e
+42
+7f
+62
+90
+4e
+a8
+74
+10
+f0
+12
+12
+06
+7f
+03
+11
+5c
+90
+42
+5e
+74
+01
+f0
+22
+90
+42
+74
+74
+ff
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+7b
+01
+7a
+42
+79
+62
+7d
+10
+7c
+00
+12
+24
+cc
+7f
+03
+11
+5c
+90
+42
+5e
+74
+01
+f0
+22
+90
+4e
+cd
+ef
+f0
+78
+ce
+7c
+4e
+7d
+01
+7b
+ff
+7a
+07
+79
+34
+7e
+00
+7f
+03
+12
+03
+90
+90
+4e
+cd
+e0
+90
+4e
+d0
+f0
+7b
+01
+7a
+4e
+79
+ce
+7d
+03
+90
+4e
+9d
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+90
+4b
+9c
+e0
+ff
+a3
+e0
+90
+4e
+a1
+cf
+f0
+a3
+ef
+f0
+90
+4b
+9a
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9c
+e0
+fc
+a3
+e0
+fd
+7b
+64
+12
+34
+f2
+90
+4e
+a0
+e0
+fe
+ef
+c3
+9e
+40
+e1
+90
+4e
+a0
+e0
+ff
+14
+f0
+ef
+60
+3f
+90
+4e
+9d
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+a1
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+90
+4e
+a1
+e0
+fe
+a3
+e0
+ff
+be
+4b
+c6
+bf
+36
+c3
+90
+4e
+a1
+74
+4a
+f0
+a3
+74
+a0
+f0
+80
+b7
+90
+4e
+a1
+e0
+ff
+a3
+e0
+90
+4b
+9c
+cf
+f0
+a3
+ef
+f0
+22
+90
+4e
+f1
+ef
+f0
+14
+b4
+0d
+00
+40
+02
+41
+ad
+90
+09
+34
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+09
+5b
+02
+09
+5b
+02
+09
+5b
+02
+0a
+ad
+02
+09
+a2
+02
+09
+d6
+02
+09
+df
+02
+0a
+2c
+02
+0a
+2c
+02
+0a
+6d
+02
+0a
+ad
+02
+0a
+ad
+02
+09
+9a
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+0d
+7f
+22
+11
+5c
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+90
+4e
+f1
+e0
+14
+90
+4d
+d1
+f0
+90
+42
+13
+74
+05
+f0
+90
+4c
+f0
+f0
+7f
+04
+11
+5c
+7f
+0a
+f1
+7b
+7f
+2a
+11
+5c
+e4
+90
+4c
+ed
+f0
+22
+7f
+0e
+11
+5c
+7f
+02
+01
+5c
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+0f
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+90
+4d
+e2
+74
+03
+f0
+22
+f1
+eb
+e4
+90
+41
+31
+f0
+12
+20
+05
+7f
+0d
+11
+5c
+e4
+90
+4c
+ed
+f0
+22
+12
+18
+b4
+e4
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+12
+24
+cc
+90
+4c
+c0
+74
+ff
+f0
+a3
+f0
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+d1
+b2
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+09
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7f
+21
+11
+5c
+90
+4c
+c5
+74
+02
+f0
+e4
+a3
+f0
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+f0
+f0
+12
+18
+b4
+ef
+70
+06
+12
+18
+93
+ef
+60
+09
+90
+4e
+f1
+e0
+90
+4c
+ed
+f0
+22
+90
+4c
+c5
+e0
+64
+01
+60
+18
+7f
+23
+11
+5c
+90
+4c
+c5
+74
+01
+f0
+e4
+a3
+f0
+90
+4c
+ee
+74
+f0
+f0
+e4
+90
+4c
+e9
+f0
+e4
+90
+4c
+ed
+f0
+22
+e4
+90
+4c
+ed
+f0
+22
+90
+4e
+f6
+ef
+f0
+12
+05
+b3
+0c
+52
+01
+0d
+17
+02
+0d
+08
+04
+0c
+74
+06
+0c
+d1
+0a
+0d
+08
+13
+0d
+d1
+14
+0e
+59
+15
+0b
+7f
+27
+0e
+20
+29
+0c
+c9
+2a
+0a
+fe
+2f
+0b
+7c
+30
+0b
+d1
+31
+0c
+16
+32
+0a
+fe
+33
+0d
+fc
+34
+0e
+3a
+35
+0b
+c9
+37
+0b
+7f
+39
+0b
+d1
+3c
+00
+00
+0e
+b1
+f1
+f5
+12
+17
+cb
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+12
+20
+30
+7f
+0a
+f1
+7b
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+12
+20
+30
+90
+4c
+f2
+e0
+b4
+ff
+1f
+a3
+e0
+b4
+ff
+1a
+90
+4c
+93
+e0
+a3
+e0
+90
+4c
+f2
+f0
+90
+4c
+91
+e0
+a3
+e0
+90
+4c
+f3
+f0
+90
+4c
+bf
+74
+01
+f0
+02
+1f
+bd
+02
+11
+06
+90
+4c
+c3
+e0
+ff
+d3
+94
+00
+50
+02
+c1
+b1
+ef
+94
+04
+40
+02
+c1
+b1
+ef
+75
+f0
+1d
+a4
+24
+c7
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1d
+7c
+00
+12
+24
+cc
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+c1
+b2
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+74
+03
+f0
+e4
+a3
+f0
+f1
+eb
+90
+4c
+e5
+e0
+70
+06
+d2
+01
+7f
+1d
+d1
+b2
+e4
+90
+4c
+ee
+f0
+90
+4c
+eb
+f0
+90
+4c
+c0
+74
+fe
+f0
+90
+4c
+c3
+f0
+90
+4e
+f6
+e0
+b4
+31
+0d
+90
+4c
+e5
+74
+1e
+f0
+90
+4c
+bf
+74
+02
+f0
+22
+90
+4c
+bf
+74
+01
+f0
+22
+e4
+90
+4c
+c5
+f0
+a3
+f0
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+ed
+e0
+60
+09
+f1
+eb
+90
+4c
+ed
+e0
+ff
+21
+19
+90
+4c
+ec
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+f0
+e0
+70
+02
+c1
+b1
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c9
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+47
+f4
+e0
+a3
+20
+e7
+02
+c1
+b1
+90
+4d
+d4
+74
+32
+f0
+22
+90
+4c
+c9
+74
+04
+f0
+e4
+a3
+f0
+7f
+0e
+11
+5c
+7f
+02
+11
+5c
+e4
+90
+4c
+e3
+f0
+a3
+f0
+a3
+e0
+70
+02
+f1
+9c
+e4
+90
+4c
+e9
+f0
+f1
+eb
+e4
+90
+4c
+eb
+f0
+90
+4d
+d4
+f0
+90
+42
+13
+74
+1a
+f0
+e4
+90
+4d
+da
+f0
+90
+00
+40
+e0
+60
+fa
+7f
+05
+11
+5c
+12
+23
+e6
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+7f
+04
+11
+5c
+7f
+0a
+e1
+7b
+e4
+90
+05
+4f
+f0
+90
+4d
+d7
+04
+f0
+e4
+90
+4d
+d4
+f0
+90
+47
+f4
+e0
+a3
+30
+e7
+0f
+90
+4d
+da
+74
+01
+f0
+90
+05
+4f
+74
+04
+f0
+ff
+01
+5c
+e4
+90
+4c
+f0
+f0
+90
+4c
+ca
+74
+02
+f0
+90
+4c
+c9
+04
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+08
+e4
+90
+4c
+c9
+f0
+a3
+f0
+22
+90
+4c
+c9
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c9
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+e4
+90
+4d
+d4
+f0
+90
+4d
+da
+e0
+64
+01
+70
+4b
+90
+4c
+c3
+e0
+ff
+d3
+94
+00
+40
+3c
+ef
+94
+04
+50
+37
+ef
+75
+f0
+1d
+a4
+24
+c7
+f9
+74
+4d
+35
+f0
+fa
+7b
+01
+7d
+1d
+7c
+00
+12
+24
+cc
+7f
+c8
+f1
+7b
+c2
+01
+7f
+ff
+d1
+b2
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+12
+1a
+97
+d2
+01
+7f
+ff
+d1
+b2
+e4
+90
+4d
+da
+f0
+90
+4c
+ec
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+ed
+e0
+ff
+60
+02
+21
+19
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+c5
+e0
+64
+01
+70
+02
+c1
+b1
+90
+4e
+f6
+e0
+64
+13
+70
+02
+c1
+b1
+90
+4c
+cb
+e0
+64
+04
+60
+06
+7f
+05
+31
+19
+80
+02
+f1
+93
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+03
+f0
+a3
+74
+01
+f0
+e4
+a3
+f0
+a3
+f0
+7f
+0e
+11
+5c
+7f
+02
+11
+5c
+90
+4c
+e5
+e0
+70
+02
+f1
+9c
+e4
+90
+4c
+e9
+f0
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+c7
+74
+04
+f0
+e4
+a3
+f0
+f1
+eb
+e4
+90
+4c
+eb
+f0
+90
+41
+31
+04
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4c
+c3
+e0
+14
+fd
+7f
+01
+12
+11
+2f
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+03
+f0
+22
+90
+4d
+39
+12
+05
+82
+00
+00
+00
+00
+e4
+90
+4d
+d2
+f0
+90
+4d
+d7
+04
+f0
+90
+4c
+c8
+04
+f0
+90
+4c
+c7
+04
+f0
+22
+90
+4c
+c7
+e0
+90
+4c
+cb
+f0
+e4
+90
+4c
+c7
+f0
+a3
+f0
+90
+4c
+eb
+04
+f0
+a3
+e0
+b4
+01
+04
+e4
+f0
+e1
+93
+90
+4c
+ed
+e0
+ff
+60
+02
+21
+19
+90
+4c
+f0
+e0
+60
+08
+90
+4d
+d1
+e0
+ff
+02
+07
+37
+90
+4c
+cb
+e0
+64
+04
+60
+04
+f1
+93
+80
+11
+90
+4d
+38
+e0
+60
+04
+f1
+93
+80
+07
+90
+4c
+c3
+e0
+ff
+31
+19
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+ef
+f4
+60
+0d
+7b
+01
+7a
+80
+79
+74
+a2
+01
+92
+00
+12
+10
+88
+22
+90
+4d
+e1
+e0
+64
+02
+60
+02
+e1
+7a
+90
+4c
+e9
+e0
+60
+48
+90
+4c
+cc
+e0
+64
+01
+60
+2c
+90
+4c
+c3
+e0
+b4
+01
+06
+7f
+1f
+f1
+cf
+80
+49
+90
+4c
+c3
+e0
+b4
+02
+06
+7f
+1e
+f1
+cf
+80
+3c
+90
+4c
+c3
+e0
+64
+03
+70
+34
+7f
+1f
+f1
+cf
+7f
+1d
+f1
+cf
+80
+2a
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1e
+d1
+b2
+d2
+01
+7f
+1d
+d1
+b2
+80
+16
+90
+4c
+ee
+e0
+60
+10
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1e
+d1
+b2
+7f
+1d
+f1
+cf
+12
+17
+e8
+ef
+60
+42
+90
+4c
+e6
+e0
+60
+16
+14
+f0
+c2
+01
+7f
+10
+d1
+b2
+90
+4c
+e6
+e0
+70
+0e
+d2
+01
+7f
+10
+d1
+b2
+80
+06
+d2
+01
+7f
+10
+d1
+b2
+90
+4c
+e7
+e0
+60
+14
+14
+f0
+c2
+01
+7f
+0f
+d1
+b2
+90
+4c
+e7
+e0
+70
+0c
+d2
+01
+7f
+0f
+c1
+b2
+d2
+01
+7f
+0f
+d1
+b2
+22
+ef
+d3
+94
+00
+40
+11
+e4
+fd
+fc
+0d
+bd
+00
+01
+0c
+bc
+04
+f8
+bd
+a6
+f5
+1f
+80
+e9
+22
+e4
+90
+4d
+38
+f0
+7f
+19
+01
+5c
+90
+4c
+c3
+e0
+b4
+01
+06
+d2
+01
+7f
+1f
+c1
+b2
+90
+4c
+c3
+e0
+b4
+02
+06
+d2
+01
+7f
+1e
+c1
+b2
+90
+4c
+c3
+e0
+b4
+03
+0c
+d2
+01
+7f
+1f
+d1
+b2
+d2
+01
+7f
+1d
+c1
+b2
+d2
+01
+7f
+1d
+c1
+b2
+90
+4e
+fa
+ef
+f0
+7b
+01
+7a
+80
+79
+74
+12
+1f
+70
+92
+09
+90
+4e
+fa
+e0
+ff
+a2
+09
+b3
+92
+01
+c1
+b2
+e4
+90
+4c
+f0
+f0
+90
+4d
+dd
+f0
+22
+12
+11
+06
+d2
+06
+7f
+10
+12
+10
+1b
+d2
+06
+7f
+0f
+11
+1b
+d2
+06
+7f
+1f
+11
+1b
+d2
+06
+7f
+1e
+11
+1b
+d2
+06
+7f
+1d
+11
+1b
+d2
+06
+7f
+1d
+ac
+07
+ec
+f4
+60
+15
+af
+04
+d2
+04
+11
+48
+af
+04
+a2
+06
+92
+01
+12
+0e
+b2
+af
+04
+c2
+02
+11
+37
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+78
+a2
+02
+92
+00
+11
+88
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+70
+a2
+04
+92
+00
+11
+88
+22
+ac
+07
+ec
+f4
+60
+17
+af
+04
+a2
+05
+92
+03
+11
+77
+af
+04
+a2
+05
+b3
+92
+02
+11
+37
+af
+04
+c2
+04
+11
+48
+22
+ef
+f4
+60
+0c
+7b
+01
+7a
+80
+79
+7c
+a2
+03
+92
+00
+11
+88
+22
+90
+4e
+e3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+fe
+fd
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+fd
+30
+00
+22
+90
+4e
+e3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+02
+03
+fc
+90
+4e
+e3
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+2d
+f9
+e4
+3a
+fa
+12
+03
+b6
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5f
+02
+03
+fc
+e4
+90
+4e
+f3
+f0
+f0
+90
+4e
+f3
+e0
+ff
+c3
+94
+08
+50
+0c
+c2
+05
+11
+59
+90
+4e
+f3
+e0
+04
+f0
+80
+ea
+22
+90
+80
+80
+e4
+f0
+a3
+f0
+a3
+f0
+11
+e9
+e4
+90
+4e
+f4
+f0
+f0
+90
+4e
+f4
+e0
+90
+06
+81
+93
+ff
+60
+0c
+c2
+05
+11
+59
+90
+4e
+f4
+e0
+04
+f0
+80
+e9
+22
+90
+4e
+e7
+ed
+f0
+90
+4e
+e6
+ef
+f0
+64
+01
+70
+70
+a3
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+74
+01
+f0
+ef
+75
+f0
+1d
+a4
+24
+e5
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+03
+79
+d0
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+eb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+44
+79
+7b
+90
+4e
+a8
+74
+10
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+fb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+44
+79
+f9
+90
+4e
+a8
+74
+06
+f0
+80
+59
+90
+4e
+e6
+e0
+64
+02
+70
+50
+a3
+e0
+ff
+75
+f0
+1d
+a4
+24
+e4
+f5
+82
+e4
+34
+4d
+f5
+83
+74
+02
+f0
+ef
+75
+f0
+1d
+a4
+24
+e5
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+00
+79
+40
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+e7
+e0
+75
+f0
+1d
+a4
+24
+eb
+f5
+82
+e4
+34
+4d
+af
+82
+fe
+7b
+01
+7a
+42
+79
+62
+90
+4e
+a8
+74
+10
+f0
+51
+06
+22
+90
+4e
+a3
+ee
+f0
+a3
+ef
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+a8
+e0
+ff
+14
+f0
+ef
+60
+27
+90
+4e
+a5
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+a3
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ef
+f0
+80
+cf
+22
+90
+4e
+a9
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+90
+4d
+db
+f0
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+05
+50
+2c
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+b4
+af
+06
+90
+4d
+db
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+ca
+90
+4d
+db
+e0
+90
+4d
+e0
+f0
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+2a
+11
+ef
+60
+02
+81
+af
+90
+4e
+a9
+e0
+a3
+e0
+fa
+a3
+e0
+4a
+70
+02
+81
+af
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+03
+f0
+90
+4d
+de
+74
+0a
+f0
+e4
+90
+4c
+e3
+f0
+a3
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+4e
+79
+3c
+7d
+09
+7c
+00
+b1
+6d
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+b4
+2e
+0a
+90
+00
+02
+12
+03
+cf
+64
+29
+60
+0e
+ef
+64
+29
+70
+23
+90
+00
+02
+12
+03
+cf
+b4
+2e
+1a
+90
+4c
+c5
+e0
+64
+01
+60
+09
+90
+4c
+ce
+e0
+44
+10
+f0
+80
+10
+90
+4c
+ce
+e0
+54
+ef
+f0
+80
+07
+90
+4c
+ce
+e0
+54
+ef
+f0
+90
+4c
+b6
+74
+01
+f0
+90
+4c
+f4
+e0
+b4
+01
+2a
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4c
+f5
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+e4
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+90
+4c
+f4
+74
+02
+f0
+22
+90
+4c
+c5
+e0
+64
+03
+70
+45
+90
+4e
+ad
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+05
+50
+37
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+64
+39
+60
+09
+ef
+64
+53
+60
+04
+ef
+b4
+47
+06
+90
+4d
+d0
+74
+01
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+bf
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+2c
+70
+90
+4e
+3b
+e0
+b4
+01
+11
+74
+02
+f0
+90
+4e
+3c
+f0
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+81
+b0
+90
+4e
+3b
+e0
+b4
+03
+16
+e4
+f0
+90
+4d
+e3
+f0
+90
+4e
+3c
+74
+02
+f0
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+81
+b0
+90
+48
+00
+74
+01
+f0
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+90
+48
+01
+f0
+e4
+a3
+f0
+90
+4d
+d8
+f0
+90
+00
+01
+12
+03
+cf
+b4
+af
+1e
+7e
+48
+7f
+03
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+02
+f9
+e4
+3a
+fa
+90
+4e
+a8
+74
+05
+f0
+51
+06
+80
+1c
+7e
+48
+7f
+03
+90
+4e
+a9
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+a8
+74
+06
+f0
+51
+06
+90
+4e
+ad
+74
+03
+f0
+90
+4e
+ad
+e0
+ff
+c3
+94
+09
+50
+25
+74
+00
+2f
+f5
+82
+e4
+34
+48
+f5
+83
+e0
+b4
+af
+0f
+90
+4e
+ad
+e0
+24
+00
+f5
+82
+e4
+34
+48
+f5
+83
+e4
+f0
+90
+4e
+ad
+e0
+04
+f0
+80
+d1
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+22
+90
+4e
+bd
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ed
+f0
+12
+18
+05
+ef
+70
+02
+a1
+6c
+90
+4c
+eb
+e0
+60
+02
+a1
+6c
+90
+4c
+c9
+e0
+b4
+04
+10
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+f1
+9f
+90
+4c
+c7
+e0
+b4
+04
+10
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+a3
+e0
+fd
+f1
+97
+90
+4c
+c5
+e0
+64
+03
+70
+68
+90
+4e
+bd
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+64
+01
+70
+2e
+90
+00
+01
+12
+03
+cf
+70
+1e
+90
+00
+03
+12
+03
+cf
+70
+16
+90
+00
+04
+12
+03
+cf
+70
+0e
+90
+00
+05
+12
+03
+cf
+70
+06
+90
+4d
+d6
+f0
+80
+28
+90
+4d
+d6
+74
+01
+f0
+80
+20
+ef
+b4
+02
+1c
+90
+00
+01
+12
+03
+cf
+70
+0e
+90
+00
+02
+12
+03
+cf
+70
+06
+90
+4d
+d6
+f0
+80
+06
+90
+4d
+d6
+74
+01
+f0
+90
+4e
+c0
+e0
+fd
+f1
+6b
+22
+90
+4e
+dd
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+16
+90
+4e
+dd
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+e4
+12
+03
+fc
+80
+e0
+22
+7b
+01
+7a
+4c
+79
+bf
+7d
+42
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+93
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+a8
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+7c
+00
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+b1
+6d
+7b
+01
+7a
+4e
+79
+3c
+7d
+09
+7c
+00
+b1
+6d
+e4
+90
+4d
+de
+f0
+90
+4d
+e2
+f0
+90
+4d
+d4
+f0
+90
+4d
+da
+f0
+90
+4d
+d7
+f0
+90
+4d
+e1
+f0
+90
+4d
+d6
+f0
+90
+4d
+d0
+f0
+90
+4d
+dd
+f0
+90
+4d
+dc
+f0
+90
+4e
+3b
+f0
+90
+4d
+d5
+f0
+90
+4d
+d8
+f0
+90
+4d
+db
+f0
+90
+4d
+e0
+f0
+90
+4d
+d3
+f0
+90
+4d
+df
+f0
+90
+4d
+e3
+f0
+90
+4d
+d9
+f0
+90
+4d
+38
+f0
+22
+90
+4d
+d0
+e0
+64
+01
+70
+2f
+90
+4d
+d6
+e0
+70
+29
+90
+4c
+c5
+e0
+64
+03
+70
+4c
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+90
+4d
+d0
+74
+02
+f0
+e4
+90
+4e
+3b
+f0
+22
+90
+4d
+d0
+e0
+b4
+02
+24
+90
+4d
+d6
+e0
+70
+1e
+90
+4d
+d0
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+fc
+b1
+6d
+7b
+01
+7a
+48
+79
+00
+7d
+09
+91
+b0
+e4
+90
+4e
+3b
+f0
+22
+90
+4e
+d4
+e4
+f0
+a3
+f0
+a3
+f0
+f1
+b3
+50
+25
+12
+25
+43
+90
+4e
+d4
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+07
+90
+4c
+b6
+04
+f0
+c1
+33
+90
+4e
+d4
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+51
+49
+22
+90
+4e
+e8
+ef
+f0
+a3
+ed
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+7c
+00
+b1
+6d
+90
+48
+00
+74
+01
+f0
+a3
+e0
+ff
+90
+4e
+e8
+e0
+fe
+ef
+4e
+90
+48
+01
+f0
+90
+4e
+e9
+e0
+90
+48
+03
+f0
+7b
+01
+7a
+48
+79
+00
+7d
+09
+81
+b0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+03
+02
+27
+9c
+90
+4c
+f4
+e0
+ff
+60
+08
+64
+01
+60
+04
+ef
+b4
+03
+02
+c1
+96
+90
+4c
+f4
+e0
+b4
+02
+0b
+74
+03
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+80
+91
+90
+4c
+f4
+e0
+b4
+04
+13
+e4
+90
+4c
+f6
+f0
+90
+4c
+f4
+74
+05
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+c1
+c9
+90
+4c
+f4
+e0
+b4
+05
+11
+e4
+a3
+f0
+a3
+f0
+90
+4c
+f4
+f0
+a3
+e0
+ff
+a3
+e0
+fd
+d1
+c9
+22
+90
+0b
+e7
+74
+06
+f0
+90
+4e
+f7
+ed
+f0
+e0
+fd
+90
+0b
+e8
+f0
+7e
+0b
+7f
+e9
+90
+4e
+a8
+ed
+f0
+51
+06
+7b
+01
+7a
+0b
+79
+e7
+90
+4e
+f7
+e0
+24
+02
+fd
+02
+08
+84
+90
+0b
+e7
+74
+05
+f0
+80
+d2
+90
+0b
+e7
+74
+03
+f0
+ed
+60
+02
+f1
+71
+22
+90
+0b
+e7
+74
+04
+f0
+80
+be
+90
+4b
+9c
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9a
+e0
+b5
+06
+07
+a3
+e0
+b5
+07
+02
+d3
+22
+c3
+22
+b1
+99
+12
+33
+7c
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+e5
+74
+1e
+f0
+e4
+90
+4c
+f0
+f0
+90
+4d
+00
+74
+ff
+f0
+22
+90
+4c
+c9
+e0
+64
+04
+60
+0f
+90
+4c
+c7
+e0
+64
+04
+60
+07
+90
+4c
+c5
+e0
+b4
+03
+03
+7f
+01
+22
+7f
+00
+22
+e4
+90
+4e
+ef
+f0
+90
+4c
+c8
+e0
+64
+02
+60
+07
+90
+4c
+ca
+e0
+b4
+02
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+47
+f5
+e0
+30
+e3
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+ee
+e0
+60
+06
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+c9
+e0
+70
+45
+90
+4c
+c7
+e0
+70
+3f
+90
+4c
+c5
+e0
+64
+03
+60
+37
+90
+4c
+ef
+e0
+70
+3b
+74
+0a
+f0
+a3
+e0
+70
+34
+90
+4d
+e1
+e0
+64
+02
+70
+2c
+90
+4c
+c3
+e0
+ff
+c3
+94
+01
+40
+0b
+ef
+d3
+94
+03
+50
+05
+12
+09
+19
+80
+17
+7f
+09
+12
+09
+19
+90
+4e
+ef
+74
+01
+f0
+80
+0a
+e4
+90
+4c
+eb
+f0
+90
+4e
+ef
+04
+f0
+90
+4e
+ef
+e0
+ff
+22
+90
+4c
+c9
+e0
+b4
+02
+08
+7f
+1e
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c7
+e0
+b4
+02
+08
+7f
+0e
+12
+08
+5c
+7f
+01
+22
+7f
+00
+22
+90
+4c
+c9
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+08
+7f
+04
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c7
+e0
+ff
+64
+04
+60
+04
+ef
+b4
+03
+08
+7f
+11
+12
+08
+5c
+7f
+01
+22
+90
+4c
+c5
+e0
+ff
+64
+03
+60
+04
+ef
+b4
+02
+08
+7f
+22
+12
+08
+5c
+7f
+01
+22
+7f
+00
+22
+90
+4c
+ce
+e0
+30
+e0
+18
+a3
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+cf
+e0
+b4
+02
+0c
+7f
+05
+12
+09
+19
+80
+05
+e4
+90
+4c
+cf
+f0
+90
+4c
+ce
+e0
+30
+e1
+3e
+90
+4c
+d0
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d0
+e0
+64
+b4
+70
+2f
+90
+4d
+dc
+e0
+04
+f0
+e0
+d3
+94
+02
+50
+07
+e4
+90
+4c
+d0
+f0
+80
+1c
+90
+4d
+dc
+e0
+b4
+03
+15
+90
+4d
+d5
+74
+01
+f0
+e4
+90
+4c
+d0
+f0
+12
+0f
+93
+80
+05
+e4
+90
+4d
+dc
+f0
+90
+4c
+ce
+e0
+30
+e4
+31
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d1
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d1
+e0
+b4
+06
+1d
+90
+4c
+c3
+e0
+ff
+60
+03
+b4
+fe
+13
+11
+b4
+7f
+0a
+12
+0f
+7b
+7f
+0a
+12
+09
+19
+80
+05
+e4
+90
+4c
+d1
+f0
+90
+4c
+ce
+e0
+30
+e3
+48
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+d2
+e0
+c3
+94
+fa
+50
+03
+e0
+04
+f0
+90
+4c
+d2
+e0
+64
+06
+70
+64
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+7f
+05
+12
+09
+19
+12
+0f
+f8
+e4
+90
+4c
+cc
+f0
+90
+4c
+eb
+04
+f0
+90
+4c
+c0
+e0
+90
+4c
+c4
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+22
+90
+4c
+cc
+e0
+60
+2b
+e4
+f0
+90
+4c
+c3
+e0
+ff
+90
+4c
+c0
+e0
+6f
+60
+1d
+90
+4c
+eb
+74
+01
+f0
+12
+0f
+f8
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+11
+b4
+51
+27
+71
+46
+e4
+90
+4c
+d2
+f0
+22
+90
+4c
+bf
+e0
+ff
+60
+68
+64
+03
+60
+05
+7f
+c8
+12
+0f
+7b
+c2
+01
+7f
+ff
+12
+0e
+b2
+90
+4c
+bf
+e0
+b4
+02
+10
+7b
+01
+7a
+4c
+79
+00
+7d
+04
+7c
+00
+7f
+52
+7e
+7f
+51
+97
+7b
+01
+7a
+4d
+79
+e4
+7d
+57
+7c
+00
+7f
+60
+7e
+7f
+51
+97
+7b
+01
+7a
+4c
+79
+c0
+7d
+03
+7c
+00
+7f
+b7
+7e
+7f
+51
+97
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+51
+97
+d2
+01
+7f
+ff
+12
+0e
+b2
+7f
+0a
+12
+0f
+7b
+e4
+90
+4c
+bf
+f0
+22
+90
+4e
+77
+ee
+f0
+a3
+ef
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+79
+e0
+70
+02
+a3
+e0
+70
+02
+61
+45
+90
+4e
+77
+e0
+fe
+a3
+e0
+ff
+44
+0f
+24
+01
+fd
+e4
+3e
+fc
+c3
+ed
+9f
+ff
+ec
+9e
+fe
+90
+4e
+7e
+f0
+a3
+ef
+f0
+90
+4e
+79
+e0
+fc
+a3
+e0
+fd
+d3
+9f
+ec
+9e
+40
+0a
+90
+4e
+7e
+e0
+fe
+a3
+e0
+ff
+80
+04
+ae
+04
+af
+05
+90
+4e
+7e
+ee
+f0
+fc
+a3
+ef
+f0
+fd
+c3
+90
+4e
+7a
+e0
+9d
+f0
+90
+4e
+79
+e0
+9c
+f0
+90
+4e
+77
+e0
+fe
+a3
+e0
+ff
+90
+4e
+7b
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+20
+e8
+7f
+0a
+12
+0f
+7b
+90
+4e
+7e
+e0
+fe
+a3
+e0
+ff
+90
+4e
+7c
+ee
+8f
+f0
+12
+04
+0e
+90
+4e
+78
+e0
+2f
+f0
+90
+4e
+77
+e0
+3e
+f0
+41
+ae
+22
+90
+80
+10
+74
+01
+f0
+80
+fe
+22
+f1
+57
+91
+fe
+12
+17
+03
+51
+27
+12
+32
+a6
+90
+0b
+7e
+e0
+14
+60
+0d
+24
+fe
+70
+eb
+71
+a6
+12
+0f
+f8
+91
+f0
+80
+fe
+90
+4c
+ea
+e0
+70
+24
+90
+4c
+ec
+e0
+70
+1e
+90
+4c
+e5
+e0
+70
+18
+90
+4c
+e2
+e0
+70
+12
+90
+4c
+e7
+e0
+70
+0c
+90
+4c
+e6
+e0
+70
+06
+90
+4c
+e8
+e0
+60
+04
+f1
+b1
+80
+b4
+71
+a6
+91
+f0
+80
+ae
+80
+ac
+22
+e4
+ff
+90
+4e
+f5
+f0
+fe
+fd
+ef
+90
+06
+81
+93
+60
+49
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+0f
+80
+b0
+12
+35
+98
+90
+81
+1c
+e0
+90
+4e
+f5
+f0
+90
+4c
+d5
+e0
+64
+02
+60
+36
+90
+4d
+d5
+e0
+60
+20
+e4
+ff
+91
+51
+7f
+01
+91
+51
+7f
+02
+91
+51
+7f
+03
+91
+51
+7f
+04
+91
+51
+7f
+05
+91
+51
+7f
+06
+91
+51
+7f
+07
+80
+1a
+90
+4e
+f5
+e0
+ff
+90
+00
+a3
+f0
+ef
+f4
+90
+00
+a7
+f0
+22
+e4
+90
+00
+a3
+f0
+90
+00
+a7
+f0
+22
+90
+4e
+f9
+ef
+f0
+f1
+6a
+92
+08
+90
+4e
+f9
+e0
+ff
+a2
+08
+b3
+92
+07
+ef
+f4
+70
+02
+81
+ef
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+30
+07
+43
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+ff
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+4f
+d0
+82
+d0
+83
+f0
+22
+74
+a3
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+fc
+4d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+ff
+ec
+f4
+fe
+ef
+5e
+f0
+22
+e4
+90
+0b
+7f
+f0
+90
+0b
+7e
+f0
+7f
+01
+02
+0f
+7b
+7a
+0c
+79
+4b
+90
+4e
+da
+74
+01
+f0
+a3
+74
+0c
+f0
+a3
+74
+4b
+f0
+90
+4b
+a0
+e0
+fe
+a3
+e0
+ff
+90
+4b
+9e
+e0
+6e
+70
+03
+a3
+e0
+6f
+70
+02
+c1
+ad
+7e
+0c
+7f
+4b
+7d
+03
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+b4
+02
+2b
+90
+4e
+db
+e4
+75
+f0
+02
+12
+04
+0e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+ff
+90
+4e
+57
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+12
+05
+dd
+c1
+ad
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+04
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+5a
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+c1
+ad
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+05
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+63
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+6d
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+64
+03
+70
+59
+90
+4e
+db
+75
+f0
+01
+12
+04
+0e
+7e
+0c
+7f
+4e
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+14
+fd
+f1
+07
+90
+4e
+da
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+c0
+02
+c0
+01
+90
+4e
+da
+e0
+a3
+e0
+fa
+a3
+e0
+f9
+12
+03
+b6
+fd
+7c
+00
+90
+4e
+66
+e0
+a3
+e0
+fa
+a3
+e0
+f5
+82
+8a
+83
+d0
+01
+d0
+02
+12
+05
+dd
+80
+02
+80
+fe
+90
+4b
+a5
+e0
+fe
+a3
+e0
+ff
+90
+4c
+5e
+e0
+6e
+70
+03
+a3
+e0
+6f
+60
+22
+90
+4e
+5d
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+37
+12
+05
+d9
+90
+4b
+a5
+e0
+ff
+a3
+e0
+90
+4c
+5e
+cf
+f0
+a3
+ef
+f0
+80
+ca
+90
+4c
+8d
+e0
+ff
+a3
+e0
+6f
+60
+19
+90
+4e
+60
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+4a
+60
+0b
+12
+05
+d9
+90
+4c
+8d
+e0
+a3
+f0
+80
+dd
+22
+90
+4e
+ec
+ee
+f0
+a3
+ef
+f0
+a9
+05
+90
+4b
+9e
+e0
+fe
+a3
+e0
+ff
+ad
+01
+19
+ed
+60
+2f
+0f
+ef
+ac
+06
+70
+01
+0e
+14
+f5
+82
+8c
+83
+e0
+fd
+90
+4e
+ec
+e4
+75
+f0
+01
+12
+04
+24
+85
+f0
+82
+f5
+83
+ed
+f0
+ad
+07
+ac
+06
+bc
+4b
+d4
+bd
+9a
+d1
+7e
+4b
+7f
+36
+80
+cb
+90
+4b
+9e
+ee
+f0
+a3
+ef
+f0
+22
+7b
+01
+7a
+4e
+79
+45
+78
+57
+7c
+4e
+7d
+01
+7e
+00
+7f
+12
+02
+03
+90
+7b
+01
+7a
+81
+79
+1c
+ad
+07
+e4
+90
+4e
+f8
+f0
+fe
+ef
+54
+07
+f0
+ef
+13
+13
+13
+54
+03
+fe
+f5
+82
+75
+83
+00
+12
+03
+cf
+fd
+33
+95
+e0
+fc
+90
+4e
+f8
+e0
+ff
+74
+01
+7e
+00
+a8
+07
+08
+80
+05
+c3
+33
+ce
+33
+ce
+d8
+f9
+ff
+ee
+5c
+fe
+ef
+5d
+4e
+24
+ff
+22
+61
+4f
+90
+0b
+7f
+74
+01
+f0
+e4
+90
+0b
+7e
+f0
+22
+90
+4d
+e1
+74
+02
+f0
+90
+4c
+c0
+e0
+d3
+94
+03
+40
+02
+e4
+f0
+90
+4c
+c0
+e0
+90
+4c
+c3
+f0
+d3
+94
+03
+50
+0a
+e0
+ff
+c3
+94
+01
+40
+03
+02
+09
+19
+90
+4c
+00
+e0
+b4
+ff
+14
+a3
+e0
+b4
+ff
+0f
+a3
+e0
+b4
+ff
+0a
+a3
+e0
+b4
+ff
+05
+7f
+01
+02
+09
+19
+7f
+08
+02
+09
+19
+7b
+01
+7a
+4c
+79
+f2
+7d
+02
+7c
+00
+7f
+ba
+7e
+7f
+11
+30
+90
+4c
+f2
+e0
+04
+f0
+a3
+e0
+04
+f0
+90
+4c
+f2
+e0
+90
+44
+fa
+f0
+90
+4c
+f3
+e0
+90
+44
+fb
+f0
+22
+90
+4e
+b8
+ec
+f0
+a3
+ed
+f0
+a3
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+80
+98
+74
+04
+f0
+a3
+e4
+f0
+90
+0c
+af
+74
+a0
+f0
+a3
+ee
+f0
+a3
+ef
+f0
+90
+0c
+b2
+74
+a1
+f0
+7a
+0c
+79
+af
+7e
+0c
+7f
+af
+74
+af
+fc
+74
+0c
+ff
+ec
+fe
+ef
+90
+80
+9a
+ee
+f0
+a3
+ef
+f0
+90
+4e
+b8
+e0
+fc
+a3
+e0
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+9e
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+90
+80
+9c
+ee
+f0
+a3
+ef
+f0
+90
+80
+90
+74
+02
+f0
+90
+80
+9c
+a3
+e0
+20
+e7
+07
+90
+80
+90
+e0
+44
+01
+f0
+90
+80
+06
+e0
+44
+04
+f0
+11
+e0
+90
+4e
+ba
+e0
+a3
+e0
+fa
+a3
+e0
+ae
+02
+ff
+7b
+01
+7a
+0b
+79
+83
+90
+4e
+b8
+e0
+a3
+e0
+90
+4e
+a8
+f0
+02
+12
+06
+90
+81
+2c
+e0
+30
+e5
+f9
+22
+90
+4e
+96
+ee
+f0
+a3
+ef
+f0
+90
+4e
+9a
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+98
+ec
+f0
+a3
+ed
+f0
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+90
+4e
+83
+c9
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+ec
+f0
+a3
+ed
+f0
+7b
+01
+7a
+0b
+79
+86
+31
+fd
+90
+0b
+83
+74
+a0
+f0
+90
+4e
+96
+e0
+ff
+a3
+e0
+90
+0b
+84
+cf
+f0
+a3
+ef
+f0
+90
+4e
+99
+e0
+24
+03
+fd
+90
+4e
+98
+e0
+34
+00
+fc
+ed
+fa
+ec
+ff
+ea
+fe
+ef
+90
+80
+98
+ee
+f0
+a3
+ef
+f0
+7a
+0b
+79
+83
+7e
+0b
+7f
+83
+74
+83
+fc
+74
+0b
+ff
+ec
+fe
+ef
+a3
+ee
+f0
+a3
+ef
+f0
+90
+80
+9e
+e4
+f0
+a3
+f0
+90
+80
+90
+04
+f0
+90
+80
+06
+e0
+44
+04
+f0
+01
+e0
+90
+4d
+e2
+e0
+60
+30
+e0
+14
+f0
+e0
+70
+2a
+90
+4c
+ed
+e0
+b4
+05
+23
+90
+47
+f5
+e0
+20
+e3
+1c
+e4
+90
+41
+31
+f0
+90
+4c
+e9
+74
+f0
+f0
+e4
+90
+4c
+ee
+f0
+11
+05
+7f
+0d
+12
+08
+5c
+e4
+90
+4c
+ed
+f0
+22
+12
+0e
+c4
+90
+4c
+e4
+e0
+04
+f0
+70
+06
+90
+4c
+e3
+e0
+04
+f0
+31
+ec
+51
+8f
+12
+18
+f6
+31
+82
+51
+41
+90
+4c
+ca
+e0
+64
+02
+60
+07
+90
+4c
+c8
+e0
+b4
+02
+07
+e4
+90
+4c
+e3
+f0
+a3
+f0
+22
+90
+4c
+d3
+e0
+60
+0a
+14
+f0
+e0
+70
+05
+74
+05
+f0
+71
+06
+22
+90
+4e
+80
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+90
+4e
+86
+74
+ff
+f5
+f0
+12
+04
+24
+45
+f0
+60
+2a
+90
+4e
+83
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+12
+03
+b6
+ff
+90
+4e
+80
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+ef
+12
+03
+fc
+80
+c8
+22
+90
+4c
+e9
+e0
+60
+24
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+e9
+e0
+14
+f0
+e0
+70
+14
+90
+4c
+c4
+e0
+90
+4c
+c3
+f0
+90
+4c
+c0
+f0
+7f
+0d
+12
+09
+19
+12
+0f
+93
+90
+4c
+ee
+e0
+60
+1d
+e4
+90
+4c
+e3
+f0
+a3
+f0
+90
+4c
+ee
+e0
+14
+f0
+e0
+70
+0d
+7f
+22
+12
+08
+5c
+7f
+0a
+12
+0f
+7b
+12
+0f
+93
+22
+90
+4c
+c9
+e0
+64
+04
+60
+07
+90
+4c
+c7
+e0
+b4
+04
+18
+90
+4c
+e3
+e0
+64
+0e
+70
+04
+a3
+e0
+64
+10
+70
+59
+12
+18
+b4
+90
+4c
+ec
+74
+01
+f0
+22
+90
+4c
+c5
+e0
+b4
+03
+11
+90
+4c
+e3
+e0
+64
+0e
+70
+04
+a3
+e0
+64
+10
+70
+3a
+02
+0f
+93
+90
+4c
+c5
+e0
+b4
+01
+14
+90
+4c
+e3
+e0
+70
+04
+a3
+e0
+64
+28
+70
+24
+7f
+22
+12
+08
+5c
+02
+0f
+93
+90
+4c
+e3
+e0
+70
+04
+a3
+e0
+64
+14
+70
+10
+90
+4d
+dd
+e0
+60
+07
+e4
+f0
+7f
+0e
+12
+08
+5c
+12
+0f
+93
+22
+90
+4e
+b4
+12
+05
+82
+00
+00
+00
+00
+90
+4c
+95
+e0
+fe
+a3
+e0
+ff
+90
+4c
+d4
+e0
+fd
+04
+f0
+ed
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+ee
+f0
+a3
+ef
+f0
+90
+4c
+d4
+e0
+c3
+94
+04
+40
+02
+e4
+f0
+e4
+90
+4e
+b3
+f0
+90
+4e
+b4
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+90
+4e
+b3
+e0
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+eb
+2f
+ff
+ea
+3e
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4e
+b4
+12
+05
+76
+90
+4e
+b3
+e0
+04
+f0
+e0
+b4
+04
+bf
+90
+4e
+b4
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+04
+fa
+f9
+f8
+12
+04
+c5
+90
+4e
+b4
+12
+05
+76
+90
+4c
+e0
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+d7
+e0
+9f
+90
+4c
+d6
+e0
+9e
+50
+07
+90
+4c
+d5
+74
+02
+f0
+22
+90
+4c
+de
+e0
+fe
+a3
+e0
+ff
+e4
+fc
+fd
+90
+4e
+b4
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+c3
+12
+05
+65
+50
+07
+90
+4c
+d5
+74
+01
+f0
+22
+e4
+90
+4c
+d5
+f0
+22
+90
+4c
+c3
+e0
+14
+90
+4e
+f0
+f0
+e4
+90
+4d
+d7
+f0
+90
+4e
+f0
+e0
+fd
+7f
+02
+12
+11
+2f
+90
+4e
+f0
+e0
+ff
+60
+3c
+90
+4d
+e4
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4d
+79
+e5
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4d
+79
+e4
+7d
+1d
+7c
+00
+91
+cc
+90
+4e
+f0
+e0
+ff
+64
+01
+60
+3c
+90
+4e
+01
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+02
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+01
+7d
+1d
+7c
+00
+91
+cc
+90
+4e
+f0
+e0
+ff
+64
+02
+60
+3c
+90
+4e
+1e
+e0
+64
+02
+70
+34
+ef
+75
+f0
+1d
+a4
+24
+e5
+f9
+74
+4d
+35
+f0
+fa
+90
+4e
+92
+74
+01
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+a3
+74
+06
+f0
+7b
+01
+7a
+4e
+79
+1f
+91
+f9
+ef
+60
+0c
+7b
+01
+7a
+4e
+79
+1e
+7d
+1d
+7c
+00
+91
+cc
+22
+90
+4e
+e0
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+ed
+1d
+ae
+04
+70
+01
+1c
+4e
+60
+17
+90
+4e
+e0
+e0
+fb
+a3
+e4
+75
+f0
+01
+12
+04
+24
+a9
+f0
+fa
+74
+ff
+12
+03
+fc
+80
+df
+22
+90
+4e
+8f
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+90
+4e
+95
+e0
+fe
+ef
+c3
+9e
+50
+30
+90
+4e
+92
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+fe
+90
+4e
+8f
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+6e
+60
+03
+7f
+00
+22
+0f
+80
+c6
+7f
+01
+22
+e4
+90
+4e
+69
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+a3
+f0
+12
+30
+54
+7a
+4d
+79
+a8
+90
+4e
+92
+74
+01
+f0
+a3
+74
+4d
+f0
+a3
+74
+a8
+f0
+a3
+74
+14
+f0
+7b
+01
+7a
+4d
+79
+bc
+91
+f9
+ef
+60
+16
+7b
+01
+7a
+4d
+79
+bc
+7d
+14
+f1
+51
+ef
+70
+09
+90
+4c
+ce
+e0
+44
+02
+f0
+80
+0c
+90
+4c
+ce
+e0
+54
+fd
+f0
+e4
+90
+4c
+d0
+f0
+e4
+90
+4e
+69
+f0
+90
+4e
+69
+e0
+ff
+90
+06
+81
+93
+60
+2f
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+6b
+f0
+e0
+fd
+60
+14
+90
+4e
+6f
+e0
+04
+f0
+a3
+e0
+fe
+ed
+4e
+f0
+af
+05
+f1
+43
+a3
+e0
+2f
+f0
+90
+4e
+69
+e0
+04
+f0
+80
+c6
+90
+4e
+71
+e0
+90
+4e
+76
+f0
+90
+4e
+6f
+e0
+90
+4e
+75
+f0
+90
+4e
+70
+e0
+ff
+f1
+43
+90
+4e
+74
+ef
+f0
+90
+4e
+76
+e0
+ff
+d3
+94
+02
+40
+1d
+90
+4e
+74
+e0
+fe
+a3
+e0
+fd
+d3
+9e
+40
+04
+ae
+05
+80
+00
+ef
+d3
+9e
+40
+08
+90
+4e
+73
+74
+01
+f0
+80
+05
+e4
+90
+4e
+73
+f0
+e4
+90
+4e
+69
+f0
+90
+4e
+69
+e0
+ff
+90
+06
+81
+93
+70
+02
+e1
+17
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+90
+4e
+6b
+f0
+90
+4e
+69
+e0
+ff
+24
+bc
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+90
+4e
+6e
+f0
+90
+4e
+6b
+e0
+70
+04
+e1
+0f
+e1
+0f
+90
+4e
+73
+e0
+60
+07
+7b
+00
+7a
+00
+79
+00
+22
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+93
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ee
+f0
+e4
+90
+4e
+6a
+f0
+90
+4e
+6a
+e0
+ff
+c3
+94
+08
+50
+5b
+a3
+e0
+30
+e0
+3e
+90
+4e
+69
+e0
+fe
+33
+33
+33
+54
+f8
+fe
+ef
+4e
+90
+4e
+6d
+f0
+a3
+e0
+ff
+90
+4e
+6d
+e0
+90
+06
+96
+93
+fd
+12
+2b
+12
+90
+4e
+72
+ef
+f0
+90
+4e
+6e
+e0
+30
+e0
+0a
+90
+4e
+72
+e0
+ff
+12
+2e
+e1
+80
+08
+90
+4e
+72
+e0
+ff
+12
+2f
+71
+90
+4e
+6b
+e0
+ff
+c3
+13
+f0
+90
+4e
+6e
+e0
+ff
+c3
+13
+f0
+90
+4e
+6a
+e0
+04
+f0
+80
+9b
+90
+4e
+6c
+74
+01
+f0
+90
+4e
+69
+e0
+04
+f0
+c1
+34
+90
+4e
+3b
+e0
+b4
+03
+0a
+90
+4d
+d8
+e0
+b4
+01
+03
+74
+02
+f0
+90
+4e
+6c
+e0
+70
+07
+90
+4d
+d8
+e0
+b4
+02
+07
+7b
+01
+7a
+4e
+79
+88
+22
+7b
+00
+7a
+00
+79
+00
+22
+e4
+fe
+ef
+60
+06
+14
+5f
+ff
+0e
+80
+f7
+af
+06
+22
+90
+4e
+d7
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+ff
+ef
+c3
+9d
+50
+1b
+90
+4e
+d7
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+8f
+82
+75
+83
+00
+12
+03
+cf
+60
+03
+7f
+00
+22
+0f
+80
+e0
+7f
+01
+22
+ad
+07
+ac
+06
+90
+4e
+3b
+e0
+64
+02
+60
+0e
+74
+01
+f0
+90
+4e
+3c
+04
+f0
+ef
+a3
+f0
+ee
+a3
+f0
+22
+90
+4e
+d1
+e4
+f0
+a3
+f0
+a3
+f0
+b1
+43
+90
+4e
+d1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+4a
+70
+03
+02
+2a
+10
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+70
+03
+02
+2a
+10
+64
+28
+60
+05
+ef
+64
+58
+70
+33
+90
+4c
+c8
+e0
+b4
+02
+10
+7f
+29
+12
+08
+5c
+90
+4c
+c8
+74
+03
+f0
+e4
+90
+4d
+d2
+f0
+90
+4c
+ca
+e0
+64
+02
+60
+03
+02
+2a
+10
+90
+42
+5e
+04
+f0
+7f
+0a
+12
+08
+5c
+90
+4c
+ca
+74
+03
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+62
+40
+02
+01
+dc
+ef
+c3
+94
+59
+50
+02
+01
+dc
+ef
+b4
+62
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+d8
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+a8
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+ff
+d3
+94
+27
+40
+02
+21
+ad
+ef
+c3
+94
+1e
+50
+02
+21
+ad
+ef
+b4
+27
+38
+90
+05
+4f
+e0
+ff
+04
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+74
+30
+f0
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+3a
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+24
+13
+ff
+90
+05
+4f
+e0
+fe
+04
+f0
+74
+50
+2e
+f5
+82
+e4
+34
+05
+f5
+83
+ef
+f0
+90
+00
+01
+12
+03
+cf
+24
+e3
+ff
+e4
+34
+ff
+fe
+e4
+fc
+fd
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+7f
+0a
+fe
+90
+4d
+39
+e0
+f8
+a3
+e0
+f9
+a3
+e0
+fa
+a3
+e0
+fb
+12
+04
+3a
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+ef
+2b
+ff
+ee
+3a
+fe
+ed
+39
+fd
+ec
+38
+fc
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+04
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+90
+00
+01
+12
+03
+cf
+64
+2a
+70
+40
+90
+05
+4f
+e0
+60
+10
+e0
+ff
+14
+f0
+74
+50
+2f
+f5
+82
+e4
+34
+05
+f5
+83
+e4
+f0
+90
+4d
+d2
+e0
+60
+32
+90
+4d
+39
+e0
+fc
+a3
+e0
+fd
+a3
+e0
+fe
+a3
+e0
+ff
+e4
+7b
+0a
+fa
+f9
+f8
+12
+04
+c5
+90
+4d
+39
+12
+05
+76
+90
+4d
+d2
+e0
+14
+f0
+22
+90
+4e
+d1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+f9
+12
+12
+49
+22
+90
+4e
+ae
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+a3
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+41
+e8
+90
+4e
+b2
+74
+05
+f0
+90
+4e
+b2
+e0
+ff
+14
+f0
+ef
+70
+02
+41
+ef
+90
+4e
+ae
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+90
+4e
+b2
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4e
+b1
+f0
+c3
+94
+1e
+40
+7b
+e0
+ff
+d3
+94
+21
+50
+74
+ef
+24
+e2
+24
+fd
+50
+04
+60
+32
+80
+66
+90
+4c
+ea
+74
+0a
+f0
+90
+4c
+ce
+e0
+44
+08
+f0
+90
+4e
+b1
+e0
+24
+e3
+ff
+90
+4c
+c3
+e0
+b5
+07
+08
+90
+4c
+c5
+e0
+64
+03
+70
+43
+90
+4c
+c3
+ef
+f0
+90
+4c
+cc
+74
+01
+f0
+80
+36
+90
+4c
+c3
+e0
+ff
+60
+2f
+64
+fe
+60
+2b
+90
+4c
+ce
+e0
+54
+f7
+f0
+e4
+90
+4c
+c3
+f0
+7f
+0d
+12
+09
+19
+90
+4c
+eb
+74
+01
+f0
+90
+4c
+c3
+e0
+90
+4c
+c0
+f0
+90
+4c
+bf
+74
+01
+f0
+12
+1a
+27
+12
+1b
+46
+7f
+01
+22
+90
+4c
+ce
+e0
+54
+f7
+f0
+41
+31
+90
+4c
+ce
+e0
+54
+f7
+f0
+7f
+00
+22
+ae
+05
+ef
+30
+e0
+0a
+90
+4d
+d3
+e0
+04
+f0
+ae
+03
+80
+0d
+90
+4d
+d3
+e0
+60
+07
+e0
+14
+f0
+af
+03
+ae
+07
+af
+06
+22
+ae
+07
+ac
+05
+e4
+90
+4e
+f2
+f0
+ec
+f0
+90
+4d
+db
+e0
+64
+01
+60
+02
+81
+6a
+ec
+24
+c6
+b4
+0c
+00
+40
+02
+81
+6a
+90
+2b
+3f
+75
+f0
+03
+a4
+c5
+83
+25
+f0
+c5
+83
+73
+02
+2b
+63
+02
+2b
+72
+02
+2b
+81
+02
+2b
+ac
+02
+2b
+d6
+02
+2c
+01
+02
+2c
+10
+02
+2c
+1f
+02
+2c
+2e
+02
+2c
+3d
+02
+2c
+4c
+02
+2c
+5b
+af
+06
+ad
+04
+7b
+d7
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+af
+06
+ad
+04
+7b
+d8
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+04
+f0
+a3
+74
+2b
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+08
+f0
+a3
+14
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+81
+6a
+90
+4c
+f5
+74
+08
+f0
+a3
+74
+50
+f0
+ee
+30
+e0
+08
+90
+4c
+f4
+74
+01
+f0
+80
+06
+90
+4c
+f4
+74
+04
+f0
+af
+06
+ad
+04
+e4
+fb
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+69
+af
+06
+ad
+04
+7b
+d5
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+5a
+af
+06
+ad
+04
+7b
+f4
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+4b
+af
+06
+ad
+04
+7b
+f2
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+3c
+af
+06
+ad
+04
+7b
+f5
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+2d
+af
+06
+ad
+04
+7b
+f8
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+1e
+af
+06
+ad
+04
+7b
+f6
+51
+f2
+90
+4e
+f2
+ef
+f0
+80
+0f
+af
+06
+ae
+04
+ad
+06
+7b
+f7
+51
+f2
+90
+4e
+f2
+ef
+f0
+90
+4e
+f2
+e0
+ff
+22
+90
+4e
+c1
+eb
+f0
+a3
+ea
+f0
+a3
+e9
+f0
+e4
+a3
+f0
+f0
+90
+4e
+c4
+e0
+ff
+c3
+94
+06
+40
+02
+c1
+e0
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+7e
+00
+e9
+2f
+f9
+ee
+3a
+fa
+12
+03
+b6
+ff
+54
+f0
+64
+f0
+60
+09
+ef
+54
+d0
+64
+d0
+60
+02
+c1
+d8
+12
+03
+b6
+fb
+b4
+f1
+09
+7f
+83
+7e
+01
+12
+27
+81
+c1
+ad
+eb
+b4
+f2
+09
+7f
+cd
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f3
+07
+7f
+b7
+12
+27
+81
+c1
+ad
+eb
+b4
+f4
+09
+7f
+b6
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f5
+07
+7f
+b5
+12
+27
+81
+c1
+ad
+eb
+b4
+f6
+09
+7f
+ea
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f7
+07
+7f
+e9
+12
+27
+81
+c1
+ad
+eb
+b4
+f8
+09
+7f
+e2
+7e
+00
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+f9
+08
+7f
+94
+0e
+12
+27
+81
+c1
+ad
+eb
+b4
+fa
+09
+7f
+8a
+7e
+01
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+fb
+08
+7f
+92
+0e
+12
+27
+81
+c1
+ad
+eb
+b4
+d0
+09
+7f
+2a
+7e
+02
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d1
+09
+7f
+25
+7e
+02
+12
+27
+81
+c1
+ad
+eb
+b4
+d3
+09
+7f
+26
+7e
+02
+12
+27
+81
+c1
+ad
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d2
+09
+7f
+24
+7e
+02
+12
+27
+81
+80
+75
+eb
+b4
+d4
+09
+7f
+27
+7e
+02
+12
+27
+81
+80
+68
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d5
+09
+7f
+21
+7e
+02
+12
+27
+81
+80
+3f
+eb
+b4
+d6
+09
+7f
+23
+7e
+02
+12
+27
+81
+80
+32
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+fb
+b4
+d7
+07
+7f
+70
+12
+27
+81
+80
+0b
+eb
+b4
+d8
+07
+7f
+6f
+7e
+00
+12
+27
+81
+90
+4e
+3b
+e0
+b4
+02
+24
+90
+4e
+c1
+e0
+fb
+a3
+e0
+fa
+a3
+e0
+24
+01
+f9
+e4
+3a
+fa
+a3
+e0
+7e
+00
+29
+f9
+ee
+3a
+fa
+12
+03
+b6
+90
+4d
+e3
+f0
+e4
+12
+03
+fc
+90
+4e
+c4
+e0
+04
+f0
+81
+7f
+22
+e4
+fe
+ef
+b4
+e7
+08
+90
+4e
+88
+e0
+44
+80
+f0
+22
+ef
+b4
+e6
+08
+90
+4e
+88
+e0
+44
+40
+f0
+22
+ef
+b4
+e5
+08
+90
+4e
+88
+e0
+44
+20
+f0
+22
+ef
+b4
+e4
+08
+90
+4e
+88
+e0
+44
+10
+f0
+22
+ef
+b4
+e3
+08
+90
+4e
+88
+e0
+44
+08
+f0
+22
+ef
+b4
+e2
+08
+90
+4e
+88
+e0
+44
+04
+f0
+22
+ef
+b4
+e1
+08
+90
+4e
+88
+e0
+44
+02
+f0
+22
+ef
+b4
+e0
+08
+90
+4e
+88
+e0
+44
+01
+f0
+22
+e4
+fe
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fd
+6f
+60
+1c
+ed
+70
+14
+90
+4d
+e3
+e0
+6f
+60
+12
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ef
+f0
+22
+0e
+ee
+b4
+06
+d5
+22
+e4
+fe
+fd
+ef
+54
+f0
+64
+f0
+60
+07
+ef
+54
+d0
+fc
+bc
+d0
+0c
+90
+4e
+3b
+e0
+b4
+02
+0b
+74
+03
+f0
+80
+06
+90
+4d
+d8
+74
+01
+f0
+ef
+b4
+e7
+08
+90
+4e
+88
+e0
+54
+7f
+f0
+22
+ef
+b4
+e6
+08
+90
+4e
+88
+e0
+54
+bf
+f0
+22
+ef
+b4
+e5
+08
+90
+4e
+88
+e0
+54
+df
+f0
+22
+ef
+b4
+e4
+08
+90
+4e
+88
+e0
+54
+ef
+f0
+22
+ef
+b4
+e3
+08
+90
+4e
+88
+e0
+54
+f7
+f0
+22
+ef
+b4
+e2
+08
+90
+4e
+88
+e0
+54
+fb
+f0
+22
+ef
+b4
+e1
+08
+90
+4e
+88
+e0
+54
+fd
+f0
+22
+ef
+b4
+e0
+08
+90
+4e
+88
+e0
+54
+fe
+f0
+22
+e4
+fe
+ed
+70
+21
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+6f
+70
+47
+ee
+b4
+05
+0b
+24
+89
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+7d
+01
+80
+34
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+fc
+74
+88
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+ec
+f0
+74
+89
+2e
+f5
+82
+e4
+34
+4e
+f5
+83
+e0
+60
+14
+ee
+b4
+05
+0b
+24
+89
+f5
+82
+e4
+34
+4e
+f5
+83
+e4
+f0
+0e
+ee
+b4
+06
+a3
+22
+e4
+ff
+90
+4e
+c5
+f0
+fe
+fd
+a3
+f0
+a3
+f0
+a3
+f0
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+01
+62
+e4
+ff
+ef
+90
+06
+81
+93
+60
+7c
+ef
+93
+fd
+13
+13
+13
+54
+1f
+fe
+ed
+54
+07
+fd
+74
+01
+a8
+05
+08
+80
+02
+c3
+33
+d8
+fc
+fd
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+ee
+24
+70
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+4d
+f0
+ee
+24
+74
+f5
+82
+e4
+34
+80
+f5
+83
+e0
+5b
+f0
+90
+81
+1c
+e0
+f4
+fc
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+ec
+f0
+ee
+24
+78
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+4d
+f0
+ee
+24
+70
+fb
+e4
+34
+80
+8b
+82
+f5
+83
+e0
+fc
+ed
+f4
+fb
+ec
+5b
+f0
+0f
+01
+e7
+e4
+ff
+ef
+90
+06
+81
+93
+60
+40
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+6e
+60
+23
+74
+bc
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+c0
+83
+c0
+82
+e0
+fe
+74
+a8
+2f
+f5
+82
+e4
+34
+4d
+f5
+83
+e0
+fd
+ee
+5d
+d0
+82
+d0
+83
+f0
+0f
+80
+b9
+22
+90
+4c
+c3
+e0
+b4
+01
+07
+c2
+01
+7f
+1f
+02
+0e
+b2
+90
+4c
+c3
+e0
+b4
+02
+07
+c2
+01
+7f
+1e
+02
+0e
+b2
+90
+4c
+c3
+e0
+b4
+03
+0e
+c2
+01
+7f
+1f
+12
+0e
+b2
+c2
+01
+7f
+1d
+02
+0e
+b2
+c2
+01
+7f
+1d
+02
+0e
+b2
+90
+4c
+ea
+e0
+60
+02
+14
+f0
+90
+4c
+ef
+e0
+60
+02
+14
+f0
+90
+4c
+e5
+e0
+60
+0f
+14
+f0
+31
+b4
+90
+4c
+e5
+e0
+70
+30
+12
+0f
+9c
+80
+2b
+90
+4c
+e9
+e0
+70
+25
+90
+4c
+e2
+e0
+60
+1f
+14
+f0
+e0
+30
+e1
+09
+c2
+01
+7f
+1d
+12
+0e
+b2
+80
+07
+d2
+01
+7f
+1d
+12
+0e
+b2
+90
+4c
+e2
+e0
+70
+03
+74
+04
+f0
+90
+4d
+d5
+e0
+70
+2d
+90
+4d
+d6
+e0
+64
+01
+70
+25
+f0
+90
+4e
+3c
+e0
+60
+0d
+7b
+01
+7a
+4e
+79
+3c
+7d
+03
+12
+14
+b0
+80
+11
+90
+48
+00
+e0
+60
+0b
+7b
+01
+7a
+48
+79
+00
+7d
+09
+12
+14
+b0
+90
+4d
+d4
+e0
+60
+09
+e0
+14
+f0
+e0
+70
+03
+12
+1b
+46
+90
+4d
+de
+e0
+60
+21
+e0
+14
+f0
+e0
+70
+1b
+90
+4c
+c7
+e0
+b4
+04
+07
+90
+42
+13
+74
+0c
+f0
+22
+90
+4c
+c9
+e0
+b4
+04
+06
+90
+42
+13
+74
+3a
+f0
+22
+90
+4d
+e1
+e0
+64
+02
+60
+02
+61
+6b
+90
+4c
+e9
+e0
+60
+02
+61
+5d
+90
+4c
+d5
+e0
+b4
+02
+05
+12
+0f
+93
+80
+2f
+90
+4c
+d5
+e0
+b4
+01
+14
+90
+4c
+f7
+e0
+70
+22
+90
+4c
+e2
+74
+04
+f0
+90
+4c
+f7
+74
+01
+f0
+80
+14
+90
+4c
+f7
+e0
+b4
+01
+0d
+e4
+f0
+90
+4c
+e2
+f0
+d2
+01
+7f
+1d
+12
+0e
+b2
+12
+17
+e8
+ef
+60
+56
+90
+4d
+d9
+e0
+ff
+90
+4c
+b7
+e0
+6f
+60
+66
+e0
+30
+e0
+0f
+90
+4c
+e6
+74
+0c
+f0
+c2
+01
+7f
+10
+12
+0e
+b2
+80
+0c
+d2
+01
+7f
+10
+12
+0e
+b2
+e4
+90
+4c
+e6
+f0
+90
+4c
+b7
+e0
+30
+e1
+0f
+90
+4c
+e7
+74
+0c
+f0
+c2
+01
+7f
+0f
+12
+0e
+b2
+80
+0c
+d2
+01
+7f
+0f
+12
+0e
+b2
+e4
+90
+4c
+e7
+f0
+90
+4c
+b7
+e0
+90
+4d
+d9
+f0
+22
+d2
+01
+7f
+10
+12
+0e
+b2
+d2
+01
+7f
+0f
+02
+0e
+b2
+d2
+01
+7f
+10
+12
+0e
+b2
+d2
+01
+7f
+0f
+12
+0e
+b2
+22
+90
+4e
+ea
+ed
+f0
+90
+00
+01
+12
+03
+cf
+90
+4e
+eb
+f0
+22
+90
+4c
+90
+74
+33
+f0
+90
+4c
+d3
+74
+05
+f0
+e4
+a3
+f0
+ff
+ef
+25
+e0
+24
+d6
+f5
+82
+e4
+34
+4c
+f5
+83
+74
+79
+f0
+a3
+74
+90
+f0
+0f
+ef
+b4
+04
+e8
+90
+4c
+8f
+e0
+64
+02
+60
+02
+81
+4b
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+c3
+7a
+f5
+79
+88
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+ae
+7a
+47
+79
+81
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4c
+8f
+e0
+64
+01
+70
+02
+81
+f1
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+29
+7a
+5c
+79
+4f
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+de
+ee
+f0
+a3
+ef
+f0
+90
+4c
+91
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4c
+94
+e0
+9f
+fd
+90
+4c
+93
+e0
+9e
+fc
+e4
+12
+02
+06
+7b
+52
+7a
+b8
+79
+1e
+78
+3f
+12
+00
+fb
+c0
+04
+c0
+05
+c0
+06
+c0
+07
+90
+4c
+91
+e0
+fc
+a3
+e0
+fd
+e4
+12
+02
+06
+d0
+03
+d0
+02
+d0
+01
+d0
+00
+12
+00
+0a
+12
+02
+3f
+90
+4c
+e0
+ee
+f0
+a3
+ef
+f0
+22
+90
+4e
+c9
+ee
+f0
+a3
+ef
+f0
+90
+4e
+cb
+ec
+f0
+a3
+ed
+f0
+90
+4e
+cb
+e0
+fe
+a3
+e0
+ff
+d3
+90
+4e
+ca
+e0
+9f
+90
+4e
+c9
+e0
+9e
+40
+16
+90
+4e
+cb
+e0
+fe
+a3
+e0
+ff
+90
+4e
+ca
+e0
+9f
+ff
+90
+4e
+c9
+e0
+9e
+fe
+80
+1e
+90
+4e
+c9
+e0
+fe
+a3
+e0
+ff
+c3
+90
+4e
+cc
+e0
+9f
+ff
+90
+4e
+cb
+e0
+9e
+fe
+ad
+03
+c3
+eb
+9f
+ff
+e4
+9e
+fe
+22
+90
+04
+46
+e0
+ff
+22
+90
+82
+80
+74
+01
+f0
+22
+ef
+f4
+60
+3a
+ef
+54
+07
+fe
+ef
+13
+13
+13
+54
+03
+ff
+24
+a3
+f5
+82
+e4
+34
+00
+f5
+83
+c0
+83
+c0
+82
+e0
+fd
+74
+01
+a8
+06
+08
+80
+02
+c3
+33
+d8
+fc
+f4
+fc
+5d
+d0
+82
+d0
+83
+f0
+74
+a7
+2f
+f5
+82
+e4
+34
+00
+f5
+83
+e0
+5c
+f0
+22
+e4
+ff
+ef
+fd
+7c
+00
+24
+78
+fb
+ec
+34
+80
+8b
+82
+f5
+83
+e0
+fe
+ed
+24
+70
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+e0
+4e
+f4
+fe
+ef
+24
+7c
+fd
+ec
+34
+80
+8d
+82
+f5
+83
+ee
+f0
+0f
+ef
+b4
+04
+cf
+22
Index: YC1026_3mode_SDK_CUSTOMER/output/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/output/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/output/otp.dat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/otp.dat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/otp.dat	(working copy)
@@ -0,0 +1,12 @@
+00
+02
+aa
+55
+00
+00
+aa
+55
+00
+00
+82
+78
Index: YC1026_3mode_SDK_CUSTOMER/output/ramcode.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/ramcode.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/ramcode.rom	(working copy)
@@ -0,0 +1,2031 @@
+c5128018
+c0000039
+c001803d
+c0028048
+c00302d0
+c00502f1
+c01382f5
+c0140307
+c015830d
+c0210318
+c021831c
+c0280324
+c02a0333
+c04801f3
+c04901bd
+c04a01c3
+c04a81ad
+c05802ce
+c0588171
+c0590185
+c059819f
+c05b01a8
+c05c8179
+20203bf1
+c00c033f
+c00d8347
+c0118366
+c0120382
+c01903fe
+c01dd3b0
+c01f026b
+c01f826f
+c0250447
+c02583f7
+c0260401
+c0270407
+c02b040e
+c0318416
+c032043b
+c032846c
+c03485c9
+c03585b2
+c03705d0
+c0378452
+c0438116
+c046827d
+c047029a
+c0478273
+c0668200
+c067811a
+c068012f
+c04e0386
+c04f839e
+c07103ab
+c07183bd
+c07303d1
+20203bf1
+6810813b
+60008b81
+70800608
+20203003
+204000b1
+2040004d
+20400041
+20203015
+680947f4
+6800c3d8
+7d3a040b
+6800c133
+7d3a0406
+600947f4
+20600000
+20403392
+20403407
+20403024
+204005f1
+20203022
+6800c7dc
+203a0051
+6800c793
+207a0000
+20400111
+20740000
+1ff0fe00
+1fe20c00
+204000f2
+6000cba7
+c0008066
+c0030070
+1fe20400
+18c22200
+6800c040
+c3000063
+1a220c00
+c6848000
+18427e00
+c0018072
+c0028090
+20203bf1
+1a220c00
+d8a000f8
+202000ea
+204000f2
+204000f2
+60008b7d
+2040006b
+20207c33
+204000f5
+18c20400
+18508400
+60094b9a
+20600000
+d8a00cd5
+202000ea
+204000f2
+1fe22200
+18c27e00
+600102b7
+2040527c
+243a007b
+1a20a201
+20404b2c
+20200080
+d8a04bad
+1a227200
+680102b7
+1fe20c00
+202000ec
+18a0a5fe
+680142b7
+e0a10000
+580000a1
+e0a08000
+1a20f3ff
+680102b7
+1fe20c00
+204000ec
+1a420c00
+e8c10000
+60014c9b
+1fe0f202
+20407e45
+704c9a64
+20600000
+18c22200
+6800cba9
+1fe08401
+18410403
+6008cba9
+1feffe07
+d8a04bad
+98a08a00
+1a220c00
+204000f2
+18c22200
+1fe0ffff
+1fe27200
+1fe0fe07
+6000cc82
+1a220c00
+204000f2
+18c22200
+c00080a5
+c00100ad
+c00180af
+68014cb8
+e0a10000
+1a220c00
+204000ec
+2040561e
+247a0000
+700b7d1b
+20205620
+68014cba
+202000a6
+68014cbc
+202000a6
+680a4c59
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4c59
+68094ba5
+18508400
+9840fe00
+1ff0fe00
+60014ba5
+1ff0fe00
+1fe17e03
+c1800000
+6800cc8f
+c28000ce
+c28080d0
+da200000
+204000e1
+7089718f
+6800cc90
+60108973
+204000d1
+da200001
+202000e1
+708971bf
+202000d1
+708971af
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+60094c95
+20600000
+d8400021
+6800cc90
+98460400
+1a227e00
+79200407
+243a00e8
+793f8407
+d8a08078
+202069f4
+204000f2
+1fe27200
+204000ee
+2020006b
+204000f2
+e0a08000
+c20000ee
+20600000
+204000f5
+e8c08000
+20600000
+58004b36
+98c67c00
+24628000
+d8c04aa0
+20600000
+df200003
+d8c04ba2
+18c22200
+68014ba0
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+20400109
+c2000101
+18a27e00
+1ff0fe00
+60014ba0
+20600000
+58004b9a
+98a67c00
+24628000
+d8a04b36
+20600000
+68014b9e
+68094ba0
+20200113
+68014b9a
+68094b9c
+98467c00
+2022e9b1
+2020320b
+6808c7ef
+1841040f
+6008c7ef
+20207c06
+da2047df
+20407f9f
+207a0000
+1fe22600
+20400120
+20203ea5
+c10c0000
+c00a05e1
+c00a85e7
+c0036614
+c0010126
+20203e7d
+70429d00
+680147f4
+c283bf08
+2fec0001
+2040812c
+20203f08
+68008450
+c1010000
+20203e7b
+60088259
+6800cc8d
+1fe0fe01
+6000cc8d
+68008259
+207a0000
+1fe0ffff
+60008259
+2040014f
+20400156
+2040013b
+20200133
+6800ccbe
+247a0000
+6800cc9a
+207a0000
+1fe0ffff
+6000cc9a
+c1808000
+704c9a64
+680147f4
+c4028000
+68014c9b
+207a0000
+2040527e
+247a0000
+68014c9b
+1fe22200
+20404b2c
+1a20f202
+d8c04c9d
+20207e45
+6800c7f2
+207a0000
+1fe0ffff
+6000c7f2
+247a0000
+20403ebd
+20204b22
+6800cc15
+207a0000
+1fe0ffff
+6000cc15
+20600000
+1a627e00
+1fe17ef0
+c1280000
+20400163
+1a627e00
+207a0000
+6000cba4
+202000fa
+1a627e00
+c0058167
+c001016f
+20600000
+704c9a28
+5800000a
+60014c9b
+680142b7
+e0a10000
+580001a1
+e0a10000
+20600000
+704c9a00
+20600000
+70416e7f
+20403cf3
+6800cc97
+207a0000
+704c9700
+1c427e00
+60024c59
+20600000
+6800c219
+247a0000
+70804206
+58000f0c
+20403da7
+58030d40
+20403bf3
+37d98200
+1e226000
+20403b36
+20001388
+20203d9d
+c6118000
+680147f4
+c284bd1e
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+2040527e
+247a0000
+20403dca
+247a0000
+20403b36
+6800c7dc
+203a3d25
+6800c793
+207a0000
+20203d25
+20400111
+24740000
+2040010e
+24740000
+700b7f01
+700b7e01
+204001a4
+20200111
+20400197
+24740000
+68008b7f
+247a0000
+20203d2d
+68008b7e
+2000000a
+c08001a4
+20600000
+20400197
+24740000
+68008b7f
+247a0000
+20203d4f
+204001af
+20203aaf
+6800c219
+243a01b5
+20403d91
+20007530
+20007530
+20007530
+20403b0a
+70804204
+6810896b
+1fe17ecf
+6010896b
+1fe1fe30
+6010896b
+20600000
+60088017
+1840a204
+20203a86
+60088017
+1840a200
+20203ab6
+204001c0
+58000500
+20403bf3
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027d
+6800cbef
+c0ff81db
+6802ca91
+e0a28000
+e8c28000
+e0a28000
+708956df
+204001e2
+708955df
+20600000
+6802ca87
+e0a28000
+e8c28000
+e0a28000
+708956c2
+708955d0
+20600000
+20000004
+708955d1
+20000004
+708955d2
+20000004
+708955d4
+20000004
+20600000
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+708955d0
+708956c0
+20600000
+2030ba6f
+204001ea
+20203a6f
+2040527c
+247a0000
+2020004d
+78347c00
+68120138
+79347e1a
+6012004c
+20403db0
+7000a201
+20600000
+700b7e00
+70017706
+20403fa4
+580001f6
+6001428e
+580001ff
+6001428a
+5800015b
+60014292
+58000272
+60014290
+5800004d
+6001428c
+580001f9
+60014288
+58004aa0
+1ff0fe00
+60014b9a
+60014b9c
+20403e0b
+58004b36
+1ff0fe00
+60014b9e
+60014ba0
+6800cc97
+c02d0230
+2035822e
+68014c91
+1ff0fe00
+60014c91
+68014c93
+1ff0fe00
+60014c93
+2040023b
+680402a0
+243a0228
+68014ad4
+1ff0fe00
+203a0228
+60014c93
+204005ee
+704ba42f
+204000fa
+704c9700
+70828003
+20600000
+704ba430
+2020022a
+1ce27e00
+203a0275
+20405b63
+20404d99
+58000000
+60044040
+600147f4
+1c427e00
+60024c59
+704ba433
+2020022a
+2040688a
+580007e2
+da2002a0
+d840000c
+204068d3
+2040688d
+680402a0
+207a0000
+6800cc8f
+c280024d
+c280825b
+680102a0
+1ff0fe00
+60014c91
+680102a6
+1ff0fe00
+60014c93
+20600000
+680902a4
+680102aa
+18422400
+1fe22200
+1ff0fe00
+60014c93
+1a227e00
+98462600
+1a63a600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+20600000
+680902a2
+680102a8
+18422400
+1fe22200
+98462600
+1a6b2600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+1a63a600
+1a227e00
+9a667e00
+1ff0fe00
+60014c93
+20600000
+70001627
+70890f36
+70890b5f
+202053d4
+70890f2e
+70890bff
+202053d9
+20600000
+700b7e03
+204001a4
+704c975a
+20403db8
+68120138
+793ffe0f
+6012004c
+20403db0
+d85fffff
+20203cda
+20407c20
+da2047e4
+20407f9f
+1fe20400
+20407c24
+18427e00
+207a0000
+c0108290
+c0110292
+c0118295
+c00082b7
+c00682af
+c01602ae
+c01582b5
+c00182b9
+c01502c2
+c0088298
+c0097c85
+20207c5a
+704befff
+202006f2
+793f8023
+704befff
+2020066e
+5fffffff
+60024c00
+202006bf
+700b7d22
+20205620
+6800807c
+203a029f
+204061d9
+6800807c
+243a7c8c
+68008b7d
+c584fc87
+c00202a4
+c01402aa
+20207c7b
+680147f4
+c30182a7
+20207ca4
+5800000a
+60020051
+20207ca4
+70007c37
+68014c98
+60010051
+20600000
+204002b7
+20403eff
+20407cd5
+180a7e00
+6000c4f9
+7043dc05
+20207cae
+7043dc04
+20207cae
+70017706
+20207c97
+20403bfa
+20404d98
+20405b62
+70017706
+6800c7dc
+c00002c0
+70017717
+70425e01
+20207ca2
+680147f4
+c284bf90
+c28002cb
+c283fcd5
+c511866e
+7043d800
+20403f7e
+700b7d37
+20207c27
+20403eff
+20407cd5
+20203f77
+20403b36
+20203cdc
+204002d2
+2020302c
+da6002d4
+20203301
+c300b307
+2040333d
+204002e1
+98467e00
+1fe0fe01
+202102db
+20203325
+98002400
+1a208c02
+e8c10000
+203a3327
+20403349
+202002d5
+1ff11600
+196c9600
+202282eb
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+600c02a0
+20407e53
+680c02a0
+2020307c
+78547c00
+68010032
+d840ffff
+98467c00
+24628000
+68020034
+203802fe
+9d067e00
+202002ff
+9c467e00
+1fe67c04
+24610000
+18007e00
+60010032
+202034df
+700b7d20
+20407c27
+20200308
+600a0034
+70474801
+5800ffff
+60010032
+70007301
+20600000
+20403baa
+20400310
+20203267
+1c40c201
+20403a54
+18004803
+20403a42
+20403bae
+20403bb4
+20403bc5
+2020375c
+20403e25
+20406dec
+204035d6
+20203480
+20403d61
+20403be2
+20213498
+20403204
+24343498
+20403812
+243a0319
+20600000
+204032df
+2422b568
+68008047
+c301b571
+6800c165
+c009b562
+68014c43
+1fe67c14
+24213562
+60010091
+6800cc42
+60008090
+58004c45
+60010179
+20203562
+68010091
+60014c43
+1fe67c14
+2421358f
+98007200
+68008090
+6000cc42
+68010179
+98000c00
+d8a04c45
+20407e45
+2020358f
+680102cd
+203a4dfc
+680082cf
+c0008344
+20204dbb
+2040527a
+247a0000
+20204dc3
+e8c08000
+c005034a
+20204e14
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+5800000b
+e0a08000
+18e27e00
+e0a08000
+e8c10000
+c0010358
+c001835f
+20203bf1
+58020008
+e0a30000
+58000200
+e0a20000
+18007e0c
+9a40a400
+20204e20
+5803000c
+e0a30000
+58000006
+e0a40000
+18007e10
+9a40a400
+20204e20
+204052c4
+18002400
+204052d0
+1fe20a00
+680102cd
+1fe22600
+680102cb
+98000c00
+20400370
+20205110
+e8c08000
+c0050373
+20205116
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+600102a0
+1a627e00
+9a262600
+204052d0
+5800000b
+e0a08000
+18e27e00
+e0a08000
+680102a0
+20200355
+da400000
+2040527a
+247a0000
+2020524d
+680102cb
+1fe20c00
+e8c08000
+1fe1040f
+1ff1fe00
+c004cb18
+c003cb18
+c005039b
+c0028399
+c0008392
+c0024b18
+20600000
+18427e00
+c002cb09
+704cbe01
+c001cb18
+704cbe00
+c0024b18
+20600000
+2040039b
+20204b11
+e8c08000
+c00083f4
+20600000
+2040527a
+247a0000
+204003a2
+20206dfd
+6800c132
+c1008000
+6800c3cd
+207a0000
+1fe22200
+7043cd00
+1a227e00
+c0284ddc
+20600000
+6800807d
+c00183af
+c00383ba
+20205b92
+680084df
+60008445
+c0098304
+c01983b4
+20205c58
+6800844d
+79207e00
+6000844d
+700b7d01
+20407c27
+20205c83
+680084df
+60008446
+20205cf3
+78547c00
+204061d9
+68008048
+207a0000
+c283df10
+c00103c4
+20205ee0
+18007e11
+204061b5
+68008049
+1fe20400
+c00003cc
+c00703cc
+c00e03cc
+20600000
+e0a08000
+6800c702
+e0a08000
+5800000e
+20205fa6
+6800807c
+203a03d6
+204061d9
+6800807c
+247a0000
+68008055
+207a0000
+c00303e5
+c00803db
+2020623e
+6800c748
+c1000000
+c00083e3
+d8e0000a
+20407e53
+247a0000
+70474800
+2020629b
+20748000
+202003e5
+68008177
+c281629b
+c28003e8
+6800c25e
+203a62c7
+6800844d
+c4018000
+c4010000
+68020465
+d8400320
+98408400
+1c427e00
+98467c00
+24610000
+20206267
+e8c08000
+6000ccb7
+20600000
+204054bd
+68088017
+20403a82
+20403a87
+78287c00
+d960157c
+2020547f
+70443e01
+70443f00
+2020534e
+204053dd
+20400404
+202054c1
+203681c6
+204053ee
+20203a91
+6800cc60
+600246f9
+6800c4db
+c000840c
+202054e0
+7044db00
+202054ef
+680083c0
+c4028000
+680103da
+680903e0
+98467e00
+24610000
+70413101
+2020557e
+6800c440
+c0038430
+c0078434
+c0030422
+c001041f
+c009841d
+2020563a
+18000401
+20205892
+5800000a
+600103ef
+20205693
+700b7d12
+20407c33
+18000401
+2034d892
+700b7d34
+20407c27
+6800cc69
+c001042c
+70413101
+2020042e
+700b7d46
+20405620
+18000401
+20205892
+6800cc68
+e0a08000
+18000402
+20205892
+18a08bff
+68044c6c
+e0a40000
+e8c40000
+e0a40000
+18000202
+2020588a
+6800c444
+c004d719
+c0010440
+c003d70d
+20205656
+59000302
+6001c4b5
+58000001
+e0a08000
+58010010
+e0a18000
+202056f1
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+2023375c
+7836fc00
+68008017
+1fe0a200
+202054af
+e8c18000
+600183f9
+c0290458
+c001046a
+c009045e
+20205907
+704d3801
+680103fa
+c00f845c
+202059ed
+d8c00349
+202003f4
+680103fa
+1fe67c1f
+2042845c
+680103fa
+68094cbc
+18408401
+98467c00
+20228467
+202059ca
+700b7d34
+20407c27
+202059ca
+700b7d03
+20205620
+6800c444
+c00d85a4
+c00e85a4
+c0088538
+c00484ea
+c00284d8
+c003848c
+c009d85c
+c001847d
+c0058480
+c0068478
+20205666
+680103fa
+c003847b
+202057d6
+7003fc07
+20205729
+68014c6a
+e0a10000
+2020588a
+680103fa
+c0070483
+202057c6
+6800cc69
+c08057c6
+6800cc7c
+c001d7c6
+18a20400
+704c6901
+18420a00
+7003fc05
+20205729
+2040577b
+20740000
+680944c0
+58001812
+98467c00
+202284a5
+5800180f
+98467c00
+202284a7
+5800180a
+98467c00
+202284ab
+58001801
+98467c00
+202284a9
+20205754
+6800cc7f
+d8400000
+f9200400
+98417e00
+c0805728
+6800cc7f
+f9207e00
+6000cc7f
+202004ad
+d8e00000
+2020049c
+d8e00001
+2020049c
+d8e00003
+2020049c
+d8e00002
+2020049c
+680144c0
+1fe22200
+680944c4
+18422400
+204004b4
+202284bf
+20205728
+d8c04504
+e8c10000
+207a0000
+e8c18000
+e8c10000
+9a267c00
+20628000
+18c08dfd
+e8c08000
+98c08c00
+202004b5
+18c08df9
+e8c10000
+60014c61
+204004cd
+203a5728
+18c08dfc
+e8c10000
+1fe0ffff
+60014c63
+70444407
+68024c61
+60024445
+18000409
+20205892
+e8c10000
+e8c08000
+98c08c00
+e8c10000
+207a0000
+e8c10000
+9a467c00
+20628000
+e8c08000
+98c08c00
+202004d0
+d9600003
+18007e01
+6000c445
+20405a74
+20405a7d
+203a5746
+242104e8
+78547c00
+e0a10000
+e8c10000
+e0a10000
+196097ff
+2022d746
+e8c08000
+98c08c00
+202004dc
+18c08c02
+202004e5
+680944c0
+58002a00
+98467c00
+2022852a
+58002a50
+98467c00
+20228535
+58002803
+98467c00
+2422d728
+680144bc
+600102a0
+78347c00
+2040057c
+24210506
+680902a0
+20400584
+c0008506
+20400580
+24228504
+78547c00
+20400508
+2040056a
+20400584
+20400510
+20200506
+2040056a
+202004f7
+20345728
+202005a2
+680102a0
+60014446
+6800cc67
+1fe27200
+20400599
+d8a04448
+20407e45
+2020059c
+68094c65
+184cfe00
+c0828522
+20400596
+680102a0
+e0a10000
+2040059c
+58004504
+98408c00
+e8c08000
+18c20400
+1fe27200
+1fe0fe05
+6000c445
+20400596
+18420c00
+20407e45
+2020059c
+20400596
+680102a0
+e0a10000
+68014c65
+e0a10000
+2040059c
+70444507
+20600000
+20405b08
+e8c08000
+1fe27200
+1fe0fe02
+6000c445
+18c08dfb
+e8c10000
+e0a10000
+18c08c03
+20407e45
+2020588a
+d8402a50
+20405b0c
+2020052b
+d9600002
+680144bc
+600102a0
+700d5c00
+78347c00
+2040057c
+24210560
+680902a0
+20400584
+c0008563
+20400580
+2422855c
+68008d5c
+c0008563
+2434054d
+78547c00
+6800cc67
+1fe0fe04
+6000c445
+2040059c
+20200557
+6800cc67
+1fe67c10
+20228563
+6800c445
+1fe67c10
+20228563
+680102a0
+1fe0ffff
+60010d5a
+20400573
+680102a0
+60010d58
+2040056e
+196097ff
+2022855e
+2040056a
+2020053d
+700d5c01
+2020055c
+680102a0
+60010d5a
+20200567
+680102a0
+1fe0ffff
+60010d5a
+20200567
+20345728
+20400573
+202005a2
+680902a0
+18408401
+600902a0
+20600000
+6800cc67
+60008103
+1fe27200
+20400599
+20207e45
+20400596
+68010d58
+e0a10000
+68010d5a
+e0a10000
+68008103
+1fe27200
+20407e45
+2020059c
+680902a0
+680144be
+98467c00
+20600000
+680144c0
+68094c65
+98467c00
+20600000
+d8c04504
+18422200
+e8c10000
+203a058f
+e8c90000
+60094c65
+9a267c00
+20228591
+e8c08000
+98c08c00
+20200586
+58000001
+20600000
+e8c08000
+6000cc67
+2040059f
+58000000
+20600000
+680102b9
+1fe20a00
+20600000
+680102b7
+1fe20c00
+20600000
+18a27e00
+600102b9
+20600000
+18c27e00
+600102b7
+20600000
+20400596
+2020588a
+6800cbab
+1fe08401
+18410403
+6008cbab
+1feffe07
+d8c04bad
+98c08c00
+6800cc82
+1fe0fffb
+1fe27200
+d8a04445
+20407e45
+6808cc82
+20205892
+1a627e00
+c00185c0
+c00505c4
+c00005bd
+c00905c2
+c00105c6
+1fe67c0d
+202158c0
+6000cc68
+700b7d27
+20205620
+70413100
+20405924
+20600000
+704c7c00
+20205938
+700b7d33
+20205620
+700b7d2b
+20205620
+58000014
+600103ef
+20600000
+6800c43e
+28200601
+202085cd
+202058a7
+6800c43f
+207a0000
+202058a7
+e8c08000
+c00085d7
+c00205dc
+c00485d5
+202058f8
+704c6903
+20205974
+6000c4ae
+e8c30000
+e0a30000
+700b7d42
+20205620
+204074a8
+202285df
+20205968
+704c6902
+2020596a
+70413100
+704c7d00
+20403f86
+20403f7e
+20403fa4
+20203ecc
+70421300
+70448b00
+704c7c00
+704c6900
+704c7f00
+704c7d00
+20203ed0
+58000000
+60024ba9
+20600000
+c6918000
+20400617
+24340608
+704c150a
+20400632
+6800cbef
+c1ff8000
+20400690
+6800cd46
+247a0000
+20400197
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+5800e290
+20407e8a
+600a41fc
+20203cda
+20400197
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6800cc15
+243a0604
+68044d3d
+20407e8a
+600a41fc
+20203cda
+6800cbef
+c0ff86c7
+2040061d
+20400756
+704be601
+20600000
+78547c00
+704be202
+68008cd5
+c0008626
+c001062a
+c001862e
+6800cd46
+245a34df
+20600000
+58000000
+60008cd5
+704be10a
+20200630
+58000003
+60008cd5
+704be104
+20200630
+704be201
+704be108
+704be700
+202034df
+704be800
+d9600d00
+34730200
+2040065d
+24378643
+20400671
+20400682
+6800cbe0
+1fe0fe01
+6000cbe0
+704d4600
+6800cbef
+c0ff865b
+20400655
+704be700
+704be600
+20600000
+704d4601
+6800cbe7
+1fe0fe01
+6000cbe7
+6800cbef
+c0ff866d
+6800cbe7
+c07f866e
+6800cbe7
+d8400010
+98467c00
+20210770
+6800cbe8
+1fe0fe01
+6000cbe8
+2000000a
+c0838633
+20200770
+58000000
+60048cd5
+20600000
+c591f2b9
+68040cd5
+20600000
+2040067f
+202006e2
+7857fc00
+204007ce
+6800cc0a
+c000866a
+18002a00
+68024c00
+98001200
+68088017
+20403a82
+20403a87
+20400788
+205787c6
+20600000
+700cb400
+7837fc00
+202007c6
+20600000
+704d4600
+700b7d32
+20207c27
+20400718
+6800cbdf
+207a0000
+98007200
+20400679
+d8c00cb5
+d8a00d17
+20207e45
+68008cb4
+2fe1f008
+24608000
+68088cb5
+6008ccb7
+20600000
+704c2801
+704c2700
+20600000
+6800cc27
+1fe0fe01
+6000cc27
+20600000
+6800cc27
+1fe67c01
+2441068e
+6800cc27
+c1000000
+1fe0ffff
+6000cc27
+20600000
+704c2702
+20600000
+da204c2b
+20400738
+6008cc29
+280ffe23
+2040869e
+244086a2
+98467c00
+242106b6
+6800cc27
+1fe67c01
+242106a6
+6800cc27
+c00006b6
+20600000
+58000082
+20600000
+58000077
+20600000
+58000080
+20600000
+58000075
+20600000
+6800cc27
+c1a30000
+704c2700
+6808cc29
+280ffe23
+204086a0
+244086a4
+98467c00
+24610000
+6800cc28
+c00006bd
+1fe0ffff
+6000cc28
+c00006bd
+704c3d00
+20600000
+6800cc28
+c00106bb
+1fe0fe01
+6000cc28
+c00086b4
+704c3d02
+20600000
+704c3d04
+20600000
+79200023
+204006c3
+704bef01
+20600000
+704be000
+704be94e
+68024beb
+20200748
+6800cbe6
+c000b4df
+6800cbef
+c00086ce
+c00106d1
+c00186d4
+20203bf1
+704bef11
+700d37aa
+202006d6
+704bef12
+700d3755
+202006d6
+704bef13
+700d3722
+6800cbe2
+1fe17e07
+60008d38
+68024c06
+60020d39
+700d3d00
+da200d37
+d8400007
+20400713
+20400756
+2040061b
+202034df
+6800cbef
+c17f8000
+c00886e8
+c00906ea
+c00986ec
+20600000
+704bef02
+2020063f
+704bef03
+2020063f
+704befff
+700b7d31
+20407c27
+68020d19
+20400748
+2020063f
+c6118000
+20400749
+20400770
+6800cbef
+c1ff8000
+20400705
+58000000
+60014c04
+20403cab
+200007d0
+6800cc04
+c07f866e
+2040065d
+2437870e
+20400655
+704c1303
+79200023
+700b7d3c
+20207c27
+700d37ff
+6800cbe2
+60008d38
+68024c06
+60020d39
+d8400006
+da200d37
+20400713
+20200756
+68014c04
+1fe0fe01
+60014c04
+20400770
+202006fa
+6008cbe1
+18427200
+d8a00cd5
+1a220c00
+20207e45
+68008cb4
+1fe97e00
+6000cbdf
+1fe0fe01
+d8c00cb4
+98c08c00
+e8c18000
+6001cc0b
+20600000
+6808cc3c
+58004c2b
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008cc3c
+20600000
+20403af3
+207a0000
+6808cc3b
+da204c33
+20400731
+6008cc3b
+20600000
+1a227e00
+98408a00
+68008018
+e0a08000
+18408401
+18410407
+20600000
+d8400000
+df200008
+1a220c00
+e8c08000
+98408400
+c200073b
+18490400
+1fe20400
+c6918000
+1fe6fc0a
+20407efd
+1807fe00
+1ff27e00
+18070400
+98418400
+20600000
+60024c00
+da200000
+df200004
+d8c04c00
+e8c08000
+9a20a200
+c200074c
+1a227e00
+60014c16
+6800cc16
+6808cc17
+9840fe00
+6000cc18
+20600000
+6800cbe1
+1fe0fe02
+6000cbe3
+6800cbe2
+60008cf5
+6800cbe1
+1fe9fe00
+6808cbe0
+18410403
+18438400
+9841fe00
+6808cc0a
+9840fe00
+e0a08000
+6800cbef
+c0ff8768
+6800cbe2
+e0a08000
+6800cbe1
+98007200
+6800cbe2
+c000876e
+d8c00cd5
+20207e45
+d8c00cd6
+20207e45
+6808cbea
+20400776
+18408401
+18410403
+6008cbea
+20600000
+6800cc00
+1fe17e03
+1fefa204
+58004bf0
+9a20fe00
+98408c00
+e8c08000
+6000cbe9
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800cbe9
+1fed8400
+79200401
+18431c00
+20600000
+2040077f
+7826fc00
+7830fc00
+78507c00
+78287c00
+68014be4
+98003600
+37c18400
+242c07c9
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000cc19
+6808cc18
+98467c00
+242287c6
+09800008
+19897e00
+60008cb3
+6800cc10
+1fe67c02
+202287a5
+68008cb3
+6808cbe2
+a8400e00
+242087c6
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+202287af
+09800008
+19897e00
+e0a08000
+c20007ab
+18a22200
+09800008
+19897e00
+6000cc2a
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+202307c6
+7837fc00
+68008017
+1fe0a200
+20403ab6
+7846fc00
+20403a7a
+6800cc2a
+1fe22200
+20400721
+20600000
+784dfc00
+7845fc00
+2020375c
+2040072a
+202007c6
+20403a7a
+6808cbe9
+20203a91
+204053d2
+68024c00
+98001200
+2040077f
+204007cb
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800cc18
+08008608
+6800cbe3
+98007200
+d8c00cf5
+e8c08000
+08008608
+c20007e4
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
Index: YC1026_3mode_SDK_CUSTOMER/output/sched.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/output/sched.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/output/sched.rom	(working copy)
@@ -0,0 +1,668 @@
+4000:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+38   #mem_patch2C
+c8   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+4131:01
+4213:40
+4214:03
+41f7:0a
+41f5:10 00
+4133:00
+4cb1:00 00
+
+414a: 40 25 00
+
+4140:36 08 c2 08 66 22    
+4702:
+'BT3.0 Keyboard
+4280:0e 00
+4282:01
+4284:01
+4747:0a
+47dc:00
+47f6:01
+
+4172:01
+
+475b:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+4771:00
+
+#keyboard uuid
+4811:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+3601b6
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 35a5 35a3 0822 259f
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+25ff # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 090c80
+09020d 2800
+09020e 2801
+09020f 090318
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+090a5c
+090202#ProductID
+098502
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+4759:11 48
+#Auto reconnection after power on
+4132:43
+41fb:0
+4138:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+07dc:00
+00a2:00
+07dd:00
+0016:27
+
+47fd:ff
+47f7:ff
+
+416e:80
+
+
+4ba2:02 01
+
+
+4c91:9f 3e
+4c93:cd 4d
+4c8f:04    #01 VINLPM      #02 HVIN      #04 GPIO
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+4504:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18 
+#Characteristic: pnp id
+0d 00 03 28 01 02
+0e 00 50 2a 07 02 8a 24 66 82 01 00
+
+#Primary service: HID
+0f 00 00 28 02 12 18
+#Characteristic:Protocol mode
+10 00 03 28 01 06
+11 00 4e 2a 01 01
+#Characteristic: hid report
+12 00 03 28 01 12   
+13 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+14 00 02 29 02 00 00	
+15 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+16 00 03 28 01 12   
+17 00 4d 2a 02 00 00 	#hid report	led handle write
+18 00 02 29 02 00 00	
+19 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+1a 00 03 28 01 12  
+1b 00 4d 2a 05 00 00 00 00 00
+1c 00 02 29 02 00 00
+1d 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1e 00 03 28 01 0e   
+1f 00 4d 2a 02 00	00	#hid report	led handle write
+20 00 02 29 02 00 00	
+21 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+22 00 03 28 01 0a
+23 00 4b 2a a0
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#60
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+#Characteristic:Hid information
+24 00 03 28 01 02
+25 00 4a 2a 04 11 01 00 01        
+#Characteristic
+26 00 03 28 01 04
+27 00 4c 2a 01 00
+
+#Primary Service: BAS
+28 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+29 00 03 28 01 12 
+2a 00 19 2a 01 64 
+#Client Characteristic Configuration
+2b 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+4c6a:17
+46f9:50
+44c2:14
+44f9:11 46 34 54 77 dd
+
+
+4c7e:00
+4cb8:13 00
+4cba:17 00
+4cbc:1b 00
+4c60:50
+
+4c6c:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+10 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+4419:
+'BT4.2 Keyboard
+
+44e4:07 
+44dd:01
+#mem_le_adv_interval_max:00 01
+43d9:1f
+43da:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+'\09BT4.2 Keyboard
+
+43f9:1f
+43fa:
+'\09BT4.2 Keyboard
+
+
+#24g init
+4c10:01#tx
+4be2:02        #mouse 1,kb 2
+4c0f:4#max tx retry
+4c0a:00#with ack
+4be4:c0 12     #400us 
+4bf0:00 13 2c 42
+4bf4:06 15 36 48
+4bf8:0f 1a 3a 4c
+4bfc:11 23 31 4d
+4bef:ff
+4beb:20 15 10 05
+0d37:00 00 00 00 00 00 00 00 00 00
+4d3d:00 48 60 00 00 00 00 00#10 minmem_lpm_config:8f 10 ce
+4219:00 0a 0b ef 0f
+41f8:00
+00a3:00 00 00 00 00 00 00 00
+415d:02
+415e:24
+414d:12 00
+414f:00 02
+4151:12 00
+4153:00 02
+415b:20 00
+4157:20 00
+4159:00 20
+415f:80 03
+4161:00 06
+4c98:00 13
+
+429b:30 3f
+42aa:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+4163:70 4f
+
+46ee:
+4a91:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+4a87:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: YC1026_3mode_SDK_CUSTOMER/patch/adc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/adc.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/bluetooth.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/bluetooth.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/geneep.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/geneep.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/global_variable.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/global_variable.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/gpio.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/gpio.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/iic.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/iic.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/ipc.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/ipc.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/kb.dat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/kb.dat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/kb.dat	(working copy)
@@ -0,0 +1,561 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+38   #mem_patch2C
+c8   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:36 08 c2 08 66 22    
+mem_local_name_length:
+'BT3.0 Keyboard
+mem_sniff_param_interval:0e 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+3601b6
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 35a5 35a3 0822 259f
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+25ff # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 090c80
+09020d 2800
+09020e 2801
+09020f 090318
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+090a5c
+090202#ProductID
+098502
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18 
+#Characteristic: pnp id
+0d 00 03 28 01 02
+0e 00 50 2a 07 02 8a 24 66 82 01 00
+
+#Primary service: HID
+0f 00 00 28 02 12 18
+#Characteristic:Protocol mode
+10 00 03 28 01 06
+11 00 4e 2a 01 01
+#Characteristic: hid report
+12 00 03 28 01 12   
+13 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+14 00 02 29 02 00 00	
+15 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+16 00 03 28 01 12   
+17 00 4d 2a 02 00 00 	#hid report	led handle write
+18 00 02 29 02 00 00	
+19 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+1a 00 03 28 01 12  
+1b 00 4d 2a 05 00 00 00 00 00
+1c 00 02 29 02 00 00
+1d 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1e 00 03 28 01 0e   
+1f 00 4d 2a 02 00	00	#hid report	led handle write
+20 00 02 29 02 00 00	
+21 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+22 00 03 28 01 0a
+23 00 4b 2a a0
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#60
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+#Characteristic:Hid information
+24 00 03 28 01 02
+25 00 4a 2a 04 11 01 00 01        
+#Characteristic
+26 00 03 28 01 04
+27 00 4c 2a 01 00
+
+#Primary Service: BAS
+28 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+29 00 03 28 01 12 
+2a 00 19 2a 01 64 
+#Client Characteristic Configuration
+2b 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:13 00
+mem_att_report2:17 00
+mem_att_report3:1b 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+10 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT4.2 Keyboard
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+'\09BT4.2 Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT4.2 Keyboard
+
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+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_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 min
\ No newline at end of file
Index: YC1026_3mode_SDK_CUSTOMER/patch/kb_process.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/kb_process.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/keyboard.format
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/keyboard.format	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/keyboard.format	(working copy)
@@ -0,0 +1,329 @@
+
+omemalloc(
+//Keyboard Work Area
+2 mem_kb_state
+6 mem_kb_report_data
+1 mem_kb_keys
+1 mem_kb_rcv_led_data
+4 mem_kb_fast_wake_last
+//Keyboard Config Area
+1 mem_led_cap_gpio
+1 mem_led_num_gpio
+1 mem_led_scl_gpio
+0 mem_kb_map
+630 mem_kb_uuid_list
+
+// patch area
+10 mem_24g_paring_tx_power_param
+10 mem_5db_tx_power_param
+
+//c51
+1 mem_current_event
+1 mem_ipc_lock_rx_data_bt
+1 mem_ipc_lock_rx_data_c51
+1 mem_ipc_lock_tx_data_bt
+1 mem_ipc_lock_tx_data_c51
+
+
+150 mem_ipc_2bt_fifo_head
+0	mem_ipc_2bt_fifo_end
+100 mem_ipc_2C51_fifo_head
+0	mem_ipc_2C51_fifo_end
+2	mem_ipc_2bt_read_index
+2	mem_ipc_2bt_write_index
+2	mem_ipc_2C51_read_index
+2	mem_ipc_2C51_write_index
+
+2 mem_ipc_tx_evt_buff
+1 mem_ipc_tx_evt
+
+2 mem_ipc_bt_timer
+1 mem_ipc_rx_type
+
+0 mem_rfcomm_tx_buff
+
+1 mem_queue_ele_num
+2 mem_queue_write
+2 mem_queue_read
+0 mem_queue_start
+12 mem_uart_packet
+12 mem_data_ele0
+12 mem_data_ele1
+12 mem_data_ele2
+0 mem_queue_end
+2 mem_queue_temp
+
+
+// patch allocated
+1 mem_24g_rxdata_length
+1 mem_24g_pid
+1 mem_24g_datalen
+1 mem_24g_data_type
+1 mem_24g_txlen
+2 mem_24g_rx_window
+1 mem_24g_ensure
+1 mem_24g_get_ack_fail
+1 mem_24g_retry
+1 mem_24g_ch
+1 mem_24g_current_ch_number
+4 mem_24g_paring_addr
+1 mem_24g_pairing_sm
+4 mem_24g_ch_map1
+4 mem_24g_ch_map2
+4 mem_24g_ch_map3
+4 mem_24g_ch_map4
+4 mem_24g_addr
+2 mem_24g_check_dongle_times
+4 mem_24g_device_addr
+1 mem_24g_no_ack
+3 mem_24g_sta_crc
+1 mem_24g_sta_pid
+1 mem_24g_max_retry
+1 mem_24g_mode
+1 mem_24g_hop_pac_retry
+1 mem_24g_idle_timeout
+1 mem_24g_idle_cnt
+1 mem_24g_auto_paring_switch
+1 mem_24g_enter_lpm_timer
+2 mem_24g_syncword
+1 mem_24g_syncword_crc8
+1 mem_24g_get_syncword_crc8
+2 mem_24g_discard_cnt
+2 mem_cb_24g_data
+9 mem_24g_lasttx
+
+1 mem_power_ctrl_pac_succ_cnt
+1 mem_power_ctrl_level
+
+1 mem_rssi_avg_received
+1 mem_rssi_hex_received
+8 mem_rssi_signal_buf
+8 mem_rssi_noise_buf
+1 mem_rssi_noise_index
+1 mem_rssi_signal_index
+
+1 mem_tx_power
+1 mem_tx_power_temp
+3 mem_cnt
+1 mem_last_txlch
+2 mem_last_txlen
+20 mem_last_txdata
+
+//le
+4 mem_ipc_last_check_timer
+1 mem_prepare_write_len
+2 mem_ipc_c51_timer
+1 mem_le_rx_window
+2 mem_le_find_type_value_start_handle
+2 mem_le_find_type_value_end_handle
+2 mem_le_cur_att_type
+1 mem_le_search_len
+1 mem_le_ll_unknown_type
+1 mem_le_pairing_state
+2 mem_le_local_mtu
+16 mem_le_connection_updata_param
+1 mem_ltk_states
+1 mem_pair_state
+1 mem_empty_count
+1 mem_shutter_find_type_value_flag
+
+1 mem_le51_payload_len
+1 mem_le51_cmd
+
+1 mem_le51_tx_length
+1 mem_le51_txbuff_inuse
+9 mem_le51_txbuf
+
+1 mem_ipc_bt_100ms_timer
+1 mem_ipc_c51_100ms_timer
+
+1 mem_adc_config_flag
+1 mem_adc_channel
+2 mem_adc_0v
+2 mem_adc_3v
+2 mem_adc_current_value
+
+1 mem_hibernate_flag
+2 mem_new_supervision_to
+1 mem_kb_wake_timer
+20 mem_kb_last_data
+1 mem_kb_keycount
+1 mem_led_cap_delay_timer
+3 mem_test
+1 mem_seq
+1 mem_recon_index
+1 mem_power_on_flag
+1 mem_caps_num_lock
+2 mem_att_report1
+2 mem_att_report2
+2 mem_att_report3
+1 mem_suspend_flag
+120 mem_32asm_data_end
+1 mem_store_ltk_timer
+1 mem_reconnect_continue
+4 mem_le_pin_code
+8 mem_24g_enter_hibernate
+1 mem_24g_txfail_cnt
+1 mem_mouse_retry_flag
+1 mem_adc_pu_bit
+)
+
+//C51 synchronous task
+(
+3 START_C51_CORE
+)
+
+(
+0 ADC_CONFIG_VINLPM
+1 ADC_CONFIG_HVIN
+2 ADC_CONFIG_GPIO
+)
+
+(
+0 P24G_PAIRING_REQ_HEAD
+1 P24G_PAIRING_COMPLETE_HEAD
+)
+
+(
+0 ENSURE_OFF_24G
+1 ENSURE_ON_24G
+0x4e G24_PAIR_CH
+)
+
+(
+7 RSSI_BUF_LEN_SIGNAL
+255 RSSI_BUF_LEN_NOISE
+0x50 RSSI_THRESH_NOISE
+
+0x77 RSSI_DIS_MIN_24G
+0x82 RSSI_DIS_MAX_24G
+
+0x75 RSSI_DIS_MIN_BLE
+0x80 RSSI_DIS_MAX_BLE
+)
+
+(//bluetooth tx power
+0 TX_POWER_0DB
+1 TX_POWER_3DB
+2 TX_POWER_5DB
+3 TX_POWER_f3DB
+4 TX_POWER_f5DB
+)
+
+/* 24g */
+(
+6 dlen_24g
+14 plen_24g
+90 blen_tx_24g
+106 blen_rx_24g
+42 blen_txack_24g
+58 blen_rxack_24g
+7 retry_24g
+0xaaf08e acc_24g
+0x15c4 crc_data_3byte
+0xbb81 crc_data_6byte
+0x4160 crc_ack
+41390 crc_ack_4byte
+)
+
+(
+1 NO_ACK_24g
+0 with_ack_24g
+)
+
+(
+0 disable_24g
+1 tx_24g
+2 rx_24g
+
+0 bit_ack_24g
+)
+
+
+//mem_24g_data_type
+(
+0x07 bits_data
+//0-2 data type
+3 bit_abort
+4 bit_hop
+5 bit_sync
+//6-7 channel offset
+)
+
+// ble
+(
+0 FLAG_LE_PAIRING_NULL
+1 FLAG_LE_PAIRING_START
+2 FLAG_LE_PAIRING_AFTER_AUTH
+3 FLAG_LE_PAIRING_END
+)
+
+(
+0 PAIR_UNKNOWN
+1 PAIR_ING
+2 PAIR_DONE
+)
+
+(
+0 DEFAULT_STATES
+1 IPHONE_LOST_LTK
+2 MODULE_LOST_LTK
+3 LTK_NOT_LOST
+)
+
+(
+3 QUEUE_ELE_COUNT
+12 QUEUE_ELE_LENGTH
+)
+
+
+8 KB_KSCAN_ROW 
+7 KB_KSCAN_ROW_1
+20 KB_KSCAN_COL
+19 KB_KSCAN_COL_1
+
+/* ks_ctrl */
+(
+0x01 KB_KSCAN_CTRL_ENABLE					
+0x02 KB_KSCAN_CTRL_FREEZE					
+0x04 KB_KSCAN_CTRL_GHOST					
+0x08 KB_KSCAN_CTRL_INT						
+0x10 KB_KSCAN_CTRL_CLKON					
+0x20 KB_KSCAN_CTRL_FIFO_CLR				
+                  
+0 KB_KSCAN_STAT_EMPTY
+1 KB_KSCAN_STAT_FULL 					
+2 KB_KSCAN_STAT_OVERFLOW				
+6 KB_KSCAN_STAT_GHOST 
+
+0 KB_KSCAN_KEY_EVENT_STAT
+0 KB_KSCAN_KEY_PRESS	
+1 KB_KSCAN_KEY_RELEASE
+
+)
+
+
+/* special key codes */
+(
+0x1d KB_KCODE_1_M1
+0x27 KB_KCODE_0
+0x28 KB_KCODE_ENTER
+0x2a KB_KCODE_BKSP
+)
+
+
+0x01 HID_REPORTID_1
+0x02 HID_REPORTID_2
+0x03 HID_REPORTID_3
+0x04 HID_REPORTID_4
+
+/*DATA OUTPUT report id = 1*/
+0 KB_NUM_LOCK_SELECTED
+1 KB_CAPS_LOCK_SELECTED
+2 KB_SCROLL_LOCK_SELECTED
+
+
+0x1f  KB_UI_BUTTON_GPIO
+
+
+
Index: YC1026_3mode_SDK_CUSTOMER/patch/keyscan.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/keyscan.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/led.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/led.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/memmap.format
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/memmap.format	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/memmap.format	(working copy)
@@ -0,0 +1,1109 @@
+0x0000 mem_le_adv_transmit
+0x0001 mem_le_adv_waitcnt
+0x0002 mem_le_adv_rcv
+0x0003 mem_le_req_rcv
+0x0004 mem_le_scanrsp_rcv
+0x0005 mem_le_conn_rcv
+0x0006 mem_inquiryscan_waitcnt
+0x0007 mem_inquiryscan_rcvcnt
+0x0008 mem_pagescan_waitcnt
+0x0009 mem_pagescan_rcvcnt
+0x000a mem_pagescan_rcvfhscnt
+0x000b mem_slave_rcvcnt
+0x000c mem_page_transmit
+0x000d mem_page_rcv
+0x000e mem_page_rcv_fhs
+0x000f mem_master_rcvcnt
+0x0010 mem_fhs_wait_counter
+0x0011 mem_newconnto_counter
+0x0012 mem_inquiry_transmit
+0x0013 mem_inquiry_rcv
+0x0014 mem_fw_ver
+0x0015 mem_current_context
+0x0016 mem_le_ch_mapped
+0x0017 mem_last_freq
+0x0018 mem_rssi
+0x0019 mem_rx_type
+0x001a mem_rx_hec_err
+0x001c mem_rx_crc_err
+0x001e mem_context_ptr
+0x0020 mem_display
+0x0028 mem_bcd
+0x0030 mem_state
+0x0031 mem_mode
+0x0032 mem_tsniff
+0x0034 mem_sniff_anchor
+0x0038 mem_clk_offset
+0x003e mem_rx_window
+0x0040 mem_plap
+0x0043 mem_puap
+0x0044 mem_pnap
+0x0046 mem_conn_handle
+0x0047 mem_arq
+0x0048 mem_lmp_to_send
+0x0049 mem_lmi_opcode
+0x004a mem_lmo_reason
+0x004b mem_op
+0x004c mem_state_map
+0x004d mem_supervision_timer
+0x0051 mem_supervision_to
+0x0053 mem_name_offset
+0x0054 mem_key_size
+0x0055 mem_conn_sm
+0x0056 mem_aco
+0x0062 mem_kc
+0x0072 mem_conn_timer
+0x0073 mem_sniff_attempt
+0x0074 mem_sniff_timeout
+0x0075 mem_dsniff
+0x0077 mem_amaddr
+0x0078 mem_lmo_opcode1
+0x0079 mem_lmi_opcode1
+0x007a mem_lmo_reason1
+0x007b mem_lmo_tid1
+0x007c mem_lmo_opcode2
+0x007d mem_lmi_opcode2
+0x007e mem_lmo_reason2
+0x007f mem_lmo_tid2
+0x0080 mem_hci_version
+0x0083 mem_acl_pktlen
+0x0085 mem_sco_pktlen
+0x0086 mem_acl_pktcnt
+0x0088 mem_sco_pktcnt
+0x008a mem_current_sniff_attempt
+0x008b mem_current_sniff_timeout
+0x008c mem_nfreq_index_inq
+0x008d mem_nfreq_index_page
+0x008e mem_ninqy_index
+0x008f mem_fhs_misc
+0x0090 mem_tx_lch
+0x0091 mem_tx_len
+0x0093 mem_subsniff_instant
+0x0097 mem_subsniff_rate
+0x0098 mem_subsniff_tcmax
+0x009a mem_subsniff_tsniff
+0x009b mem_lpm_adjust
+0x009c mem_sync_clke
+0x00a2 mem_lpm_current_mult
+0x00a3 mem_gpio_wakeup_low
+0x00a7 mem_gpio_wakeup_high
+0x00ab mem_air_mode
+0x00ac mem_sco_asso_handle
+0x00ad mem_sco_handle
+0x00af mem_esco_desco
+0x00b0 mem_esco_type
+0x00b1 mem_neogotiation_state
+0x00b2 mem_saved_amaddr
+0x00b3 mem_esco_arq
+0x00b4 mem_esco_saved_arq
+0x00b5 mem_sco_obuf
+0x00d3 mem_sco_ibuf
+0x00f1 mem_sco_poll
+0x00f2 mem_npage_index
+0x00f3 mem_page_mode
+0x00f4 mem_page_clk
+0x00f8 mem_tst_pktcnt_sync
+0x00fa mem_tst_pktcnt_hec
+0x00fc mem_tst_pktcnt_crc
+0x00fe mem_tst_pktcnt_dmh
+0x0100 mem_tmp_buffer_head
+0x0103 mem_tmp_buffer
+0x0153 mem_tester_emulate
+0x0154 mem_temp_payload
+0x0154 test_mode_scenario
+0x0155 test_mode_hopping_mode
+0x0156 test_mode_tx_freq
+0x0157 test_mode_rx_freq
+0x0158 test_mode_power_mode
+0x0159 test_mode_poll_period
+0x015a test_mode_packet_type
+0x015b test_mode_data_length
+0x015d mem_test_mode_old_debug_config
+0x015e mem_tester_cnt
+0x015f mem_temp_am_addr
+0x0160 mem_temp_arq
+0x0161 mem_pdatatemp
+0x0169 mem_len
+0x016b mem_clkn_bt
+0x016f mem_clke_bt
+0x0173 mem_dpll_clkn
+0x0177 mem_connection_options
+0x0178 mem_nameres_cnt
+0x0179 mem_txptr
+0x017b mem_slot_offset
+0x017d extm_fhs_misc
+0x017e extm_newconn_am_addr
+0x017f extm_class
+0x0182 extm_lap
+0x0185 extm_uap
+0x0186 extm_nap
+0x0189 mem_debug_config
+0x018a mem_lch_code
+0x018b mem_fhs_am_addr
+0x018c mem_dpll_error
+0x018e mem_bdaddr_list_buff
+0x01b2 mem_select_list_item
+0x01b3 mem_temp_reconn_record
+0x01b3 mem_record_bt_mode
+0x01b4 mem_temp_lap
+0x01ba mem_list_item_ptr
+0x01bc mem_eir
+0x0220 mem_ucode_status
+0x0221 mem_otp_ucode_flag
+0x0223 mem_spid_tbuf/* spid buf: 03 addr[23:16] addr[15:8] addr[7:0] */
+0x0224 mem_iicd_tbuf/* iicd buf: iic_adr addr[15:8] addr[7:0] iic_adr */
+0x0224 mem_addr_hi
+0x0225 mem_addr_mi
+0x0226 mem_addr_lo
+0x0227 mem_iicd_addr
+0x0228 mem_spid_rbuf
+0x022c mem_ucode_buf
+0x022e mem_ucode_len
+0x0230 mem_sched_addr
+0x0232 mem_ucode_ptr
+0x0234 mem_ucode_keybuf
+0x0244 mem_check_plap_temp
+0x0256 mem_sensor_id
+0x0257 mem_reconnect_flag
+0x0258 mem_switch_fail_master_count
+0x0259 mem_app_evt_timer_count
+0x025a mem_dongle_count
+0x025b mem_le_addr_slave1
+0x0261 mem_le_addr_slave2
+0x0267 mem_le_peer_state
+0x0268 mem_app_peer_addr
+0x026e mem_dongle_peers
+0x026f mem_dongle_pairing_cnt
+0x0270 mem_dongle_signature
+0x0272 mem_h5rx_ackcnt
+0x0273 mem_check_err_acl_cont
+0x0274 mem_rp_packets
+0x0275 mem_packet_type
+0x0277 mem_hci_sniff_conn_handle
+0x0279 mem_hci_sniff_max_interval
+0x027b mem_hci_sniff_min_interval
+0x027d mem_hci_sniff_attempt
+0x027f mem_hci_sniff_timeout
+0x0281 mem_voice_setting
+0x0283 mem_retransmission_effort
+0x0284 mem_sco_ptype
+0x0286 mem_extm_uap_restore
+0x0289 mem_h5rx_rptr
+0x028b mem_h5rx_ack
+0x028c mem_h5tx_ack
+0x028d mem_h5tx_rptr
+0x028f mem_h5tx_wptr
+0x0291 mem_h5tx_free
+0x0293 mem_h5rx_tmp
+0x0294 mem_h5tx_seq
+0x0295 mem_hci_acl_queue_wptr
+0x0297 mem_hci_acl_queue_rptr
+0x0299 mem_hci_acl_queue_end
+0x029b mem_hci_acl_queue_wcnt
+0x029c mem_hci_acl_cnt
+0x029d mem_hci_acl_tx_trigger_wptr//tx via uart
+0x029f mem_ucode_id_local
+0x02a0 mem_temp//8 bytes
+0x02a8 mem_timeup// 4 bytes
+0x02ac mem_rega//4 bytes
+0x02b0 mem_regb//4 bytes
+0x02b4 mem_regc//3 bytes
+0x02b7 mem_contr//2 bytes
+0x02b9 mem_contw//2 bytes
+0x02bb mem_ucode_id_remote
+0x02bc mem_check_sum
+0x02bd mem_ucode_temp
+0x02be mem_ucode_temp1
+0x02bf mem_lock_in_enc//boolean
+0x02c0 mem_hci_disconn_reason
+0x02c1 mem_hci_curr_len
+0x02c2 mem_hci_curr_target
+0x02c4 mem_l2cap_mem_start
+0x02c4 mem_l2cap_rxbuff1_len
+0x02c6 mem_l2cap_rxbuff2_len
+0x02c8 mem_l2cap_rxbuff_new
+0x02ca mem_l2cap_rxbuff_inuse
+0x02cb mem_l2cap_payload_ptr
+0x02cd mem_l2cap_rx_pkt_length
+0x02cf mem_l2cap_rx_cid
+0x02d1 mem_l2cap_rx_done
+0x02d2 mem_l2cap_signal_tx_buff_ptr
+0x02d4 mem_l2cap_signal_tx_payload_ptr
+0x02d6 mem_l2cap_signal_tx_length
+0x02d8 mem_sdp_tx_buff_ptr
+0x02da mem_sdp_tx_payload_ptr
+0x02dc mem_sdp_tx_pkt_length
+0x02de mem_rfcomm_tx_buff_ptr
+0x02e0 mem_rfcomm_tx_payload_ptr
+0x02e2 mem_rfcomm_tx_pkt_length
+0x02e4 memL2CAP_T1
+0x02e6 mem_CONTROL_tasks
+0x02e7 mem_send_config_req
+0x02e8 mem_config_identifier
+0x02e9 mem_config_req_dest_CID
+0x02eb mem_rfcomm_malloc_fail_flag
+0x02ec mem_message_to_uppersm
+0x02ed mem_upper_sm_remote_page
+0x02ee mem_upper_sm_reconn
+0x02ef mem_upper_sm_ss
+0x02f0 mem_tx_malloc_log
+0x0330 mem_l2cap_mem_end
+0x0330 mem_scid
+0x0332 mem_cmd_length
+0x0334 mem_tt2
+0x0336 mem_tt3
+0x0338 mem_id
+0x033a mem_psm
+0x033c mem_l2cap_sdpres_delay_time
+0x0340 mem_le_rxbuf
+0x0378 mem_le_mic
+0x037c mem_le_peer_mic
+0x0380 mem_le_skdm
+0x0388 mem_le_skds
+0x0390 mem_le_peer_ltk
+0x03a0 mem_le_my_ltk
+0x03b0 mem_le_mrand
+0x03c0 mem_le_state
+0x03c1 mem_le_mode
+0x03c2 mem_le_tsniff
+0x03c4 mem_le_anchor
+0x03c8 mem_le_clk_offset
+0x03ce mem_le_receive_window
+0x03d0 mem_le_plap
+0x03d6 mem_le_conn_handle
+0x03d7 mem_le_arq
+0x03d8 mem_le_ch
+0x03d9 mem_le_hop
+0x03da mem_le_event_count
+0x03dc mem_le_supervision_timer
+0x03e0 mem_le_instant
+0x03e2 mem_le_channels
+0x03e3 mem_le_conn_sm
+0x03e4 mem_le_op
+0x03e5 mem_le_access
+0x03e9 mem_le_crcinit
+0x03ec mem_le_window_size
+0x03ed mem_le_slave_latency
+0x03ef mem_le_superto
+0x03f1 mem_le_channel_map
+0x03f6 mem_le_no_using
+0x03f8 mem_le_peer_sca
+0x03f9 mem_le_att_opcode
+0x03fa mem_le_att_handle
+0x03fc mem_le_err_code
+0x03fd mem_le_sk
+0x040d mem_le_testtype
+0x040e mem_le_test_sync
+0x0410 mem_le_test_pcnt
+0x0412 mem_le_rxon_ts
+0x0418 mem_le_rx_ll_opcode
+0x0419 mem_le_notify_attr_start
+0x041b mem_le_notify_len
+0x041c mem_cmd_le_create_conn
+0x041d mem_le_adv_temp
+0x0431 mem_24g_id
+0x0432 mem_lmo_header_length
+0x0433 mem_lmo_header_opcode
+0x0434 mem_lmo_payload
+0x0445 mem_lmi_accepted_opcode
+0x0446 mem_disconn_reason_send
+0x0447 mem_tx_fixed_freq
+0x0448 mem_rx_fixed_freq
+0x0449 mem_ext_features_page
+0x044a mem_lmpext_ssp_enable
+0x044c mem_remote_sppcap
+0x044d mem_lmp_conn_state
+0x044e mem_soft_timer
+0x0450 mem_pincode_state
+0x0451 mem_sres_tid
+0x0452 mem_accptsco_tid
+0x0453 mem_auth_enable
+0x0454 mem_wait_encryption
+0x0455 mem_sniff_payload
+0x0465 mem_aurand_send_delay_time
+0x0469 mem_module_temp_len
+0x046b mem_init_cnt
+0x046d mem_prcp_data
+0x0481 mem_prcp
+0x0482 mem_prcp_tx_len
+0x0483 rx_buf_data_ptr
+0x0485 memRemoteRPNBitRate
+0x0486 memRemotePRNDataBits
+0x0487 memRemotePRNStopBit
+0x0488 memRemotePRNParity
+0x0489 memRemotePRNFlowControl
+0x048a memRemotePRNXon
+0x048b memRemotePRNXoff
+0x048c mem_mod2div_temp
+0x048f mem_contw_temp
+0x0491 mem_attrib_list
+0x0493 mem_current_adss
+0x0494 mem_current_channel
+0x0495 mem_current_frame_type
+0x0496 mem_current_fcs
+0x0497 mem_current_length
+0x0499 mem_rfcomm_uih_payload_ptr
+0x049b mem_uih_cmd_type
+0x049c mem_uih_length
+0x049e mem_param_payload_ptr
+0x04a0 mem_ms_param
+0x04a1 mem_pn_credit_flow_type_info
+0x04a2 mem_pn_priority
+0x04a3 mem_pn_acknowledg_timer
+0x04a4 mem_pn_max_retrans
+0x04a5 mem_rfcomm_send_adss
+0x04a6 mem_rfcomm_send_frame_type
+0x04a7 mem_rfcomm_send_fcs
+0x04a8 mem_rfcomm_send_offset
+0x04a9 mem_sdp_mem_start
+0x04a9 mem_uuid_search_pat
+0x04ad mem_sdp_continue_byte
+0x04af mem_sdp_pduid
+0x04b0 mem_sdp_transactionid
+0x04b2 mem_sdp_attribute_maxbyte
+0x04b4 mem_sdp_record_maxcnt
+0x04b6 mem_sdp_error_code
+0x04be mem_sdp_record_handle
+0x04c2 mem_sdp_search_failed
+0x04c3 mem_sdp_LACAP_found
+0x04c4 mem_sdp_RFCOMM_found
+0x04c5 mem_handle_list
+0x04dd mem_handle_humber
+0x04de mem_sdp_mem_end
+0x04de mem_rxbuf
+0x04ef mem_random_number
+0x04ff mem_round_key
+0x050f mem_kinit
+0x051f mem_input_store
+0x052f mem_x
+0x053f mem_y
+0x054e mem_y15
+0x054f mem_pin_length
+0x0550 mem_pin
+0x0560 mem_key_store
+0x0571 mem_key_store_end
+0x0572 memp_ar_key
+0x0574 memp_ar_input
+0x0576 mem_ar_hround
+0x0580 mem_ec_infinite
+0x0581 mem_ec_loopc
+0x0582 memdat
+0x0582 mem_ax
+0x059a mem_ay
+0x05b2 mem_az
+0x05ca mem_bx
+0x05e2 mem_by
+0x05fa mem_bz
+0x0612 mem_cx
+0x062a mem_cy
+0x0641 mem_cy5
+0x0642 mem_cz
+0x065a mem_k
+0x0672 mem_align
+0x0682 mem_tmp1
+0x0682 memahbak
+0x069a mem_tmp5
+0x06a2 memahsave
+0x06b2 mem_tmp2
+0x06c2 memahsave_end
+0x06c2 mem_addr_padding
+0x06c3 mem_addr_value/* 12 bytes     */ 
+0x06ca mem_tmp3
+0x06ca mem_t1
+0x06cf mem_addr_value_end
+0x06d2 mem_addr_iocap_end
+0x06e2 mem_tmp0
+0x06e2 mem_t0
+0x06ea mem_tmp0a
+0x06fa mem_t2
+0x0712 mem_t3
+0x072a mem_t7
+0x0742 mem_p
+0x075a mem_a
+0x0772 mem_b
+0x078a mem_gx
+0x07a2 mem_gy
+0x07ba memh0
+0x07da mem_sp_state_start
+0x07da mem_sp_state
+0x07db mem_master_sp_state
+0x07dc mem_sp_flag
+0x07dd mem_master_sp_flag
+0x07de mem_sp_calc
+0x07df mem_sp_dh_ready
+0x07e0 mem_sp_localsm
+0x07e1 mem_pairing_auth
+0x07e2 mem_sp_flag_start
+0x07e2 mem_sp_local_key_send_count
+0x07e3 mem_sp_remote_key_recv_count
+0x07e4 mem_sp_remote_key_invalid
+0x07e5 mem_sp_dhkey_invalid
+0x07e6 mem_sp_iocap_local
+0x07e9 mem_sp_iocap_remote
+0x07ec mem_sp_gkey
+0x07f0 mem_sp_pubkey_remote
+0x07f0 mem_sp_pubkey_remote_x
+0x0808 mem_sp_pubkey_remote_x_end
+0x0808 mem_sp_pubkey_remote_y
+0x0820 mem_sp_dhkey
+0x0838 mem_sp_dhkey_end
+0x0838 mem_sp_random_local
+0x0848 mem_sp_random_local_end
+0x0848 mem_sp_random_remote
+0x0858 mem_sp_random_remote_end
+0x0858 memresult
+0x0858 mem_sp_calc_result
+0x0858 memh
+0x085c memg
+0x0860 memf
+0x0864 meme
+0x0868 mem_sp_calc_result_high
+0x0868 memd
+0x086c memc
+0x0870 memb
+0x0874 mema
+0x0878 mem_sp_check_result
+0x0888 mem_sp_confirm_remote
+0x0898 mem_sp_prarm_stack
+0x08a8 mem_UI_data_txbuff_length
+0x08aa mem_ipc_skip_continue_proc
+0x08ab mem_ui_timer_temp//length 4
+0x08ab mem_ipc_rega_temp
+0x08af mem_usb_status
+0x08b0 mem_usb_fifo_empty
+0x08b1 mem_usb_read_len
+0x08b2 mem_usb_rxbuf
+0x08f2 mem_usb_cnt
+0x08f4 mem_usb_tx_enable
+0x08f5 mem_usb_tx_count
+0x08f6 mem_usb_set_protocol_count
+0x08f7 mem_usb_desc
+0x08f8 mem_usb_state
+0x08f9 mem_usb_idle_cnt
+0x08fb mem_usb_idle_timeout
+0x08fd mem_usb_trig_timeout
+0x08ff mem_usb_setup
+0x08ff mem_usb_setup_bmRequestType
+0x0900 mem_usb_setup_bRequest
+0x0901 mem_usb_setup_bValue
+0x0902 mem_usb_setup_bValueH
+0x0903 mem_usb_setup_wIndex
+0x0905 mem_usb_setup_bLength
+0x0906 mem_usb_setup_bLengthH
+0x0907 mem_usb0_setup
+0x090f mem_bufptr
+0x0911 mem_remain
+0x0912 mem_devicedesc
+0x0926 mem_hidreportdesc_kb
+0x09ee mem_hidreportdesc_m
+0x0ab6 mem_confdesc
+0x0b1a mem_string0
+0x0b1f mem_string1
+0x0b3d mem_string2
+0x0b5b mem_string3
+0x0b79 mem_hold_contr
+0x0b7b mem_hold_contw
+0x0b7d mem_fifo_temp
+0x0b7e mem_c51_flag
+0x0b7f mem_c51_lpm_lock
+0x0b80 mem_c51_wait_lpm
+0x0b81 mem_wakup_from_power_flag
+0x0b82 mem_lmp_bb_disconnect_reason
+0x0b83 mem_c51_eeprom_buf
+0x0be7 mem_c51_ipc_txbuf
+0x0c4b mem_c51_ipc_rxbuf
+0x0caf mem_c51_iicd_buf
+0x0cb3 mem_24g_rxbuf
+0x0cd5 mem_24g_txbuf
+0x0cf5 mem_24g_txpayload
+0x0d17 mem_24g_rxpayload
+0x0d37 mem_24g_common_temp
+0x0d57 mem_packet_length_temp
+0x0d58 mem_le_cur_handle_start
+0x0d5a mem_le_cur_handle_end
+0x0d5c mem_le_search_res
+0x4000 mem_patch00
+0x4001 mem_patch01
+0x4002 mem_patch02
+0x4003 mem_patch03
+0x4004 mem_patch04
+0x4005 mem_patch05
+0x4006 mem_patch06
+0x4007 mem_patch07
+0x4008 mem_patch08
+0x4009 mem_patch09
+0x400a mem_patch0a
+0x400b mem_patch0b
+0x400c mem_patch0c
+0x400d mem_patch0d
+0x400e mem_patch0e
+0x400f mem_patch0f
+0x4010 mem_patch10
+0x4011 mem_patch11
+0x4012 mem_patch12
+0x4013 mem_patch13
+0x4014 mem_patch14
+0x4015 mem_patch15
+0x4016 mem_patch16
+0x4017 mem_patch17
+0x4018 mem_patch18
+0x4019 mem_patch19
+0x401a mem_patch1a
+0x401b mem_patch1b
+0x401c mem_patch1c
+0x401d mem_patch1d
+0x401e mem_patch1e
+0x401f mem_patch1f
+0x4020 mem_patch20
+0x4021 mem_patch21
+0x4022 mem_patch22
+0x4023 mem_patch23
+0x4024 mem_patch24
+0x4025 mem_patch25
+0x4026 mem_patch26
+0x4027 mem_patch27
+0x4028 mem_patch28
+0x4029 mem_patch29
+0x402a mem_patch2a
+0x402b mem_patch2b
+0x402c mem_patch2c
+0x402d mem_patch2d
+0x402e mem_patch2e
+0x402f mem_patch2f
+0x4030 mem_patch30
+0x4031 mem_patch31
+0x4032 mem_patch32
+0x4033 mem_patch33
+0x4034 mem_patch34
+0x4035 mem_patch35
+0x4036 mem_patch36
+0x4037 mem_patch37
+0x4038 mem_patch38
+0x4039 mem_patch39
+0x403a mem_patch3a
+0x403b mem_patch3b
+0x403c mem_patch3c
+0x403d mem_patch3d
+0x403e mem_patch3e
+0x403f mem_patch3f
+0x4040 mem_context
+0x4130 mem_current_amaddr
+0x4131 mem_lpm_mode
+0x4132 mem_device_option
+0x4133 mem_scan_mode
+0x4134 mem_last_clkn
+0x4138 mem_features
+0x4140 mem_lap
+0x4143 mem_uap
+0x4144 mem_nap
+0x4146 mem_npage
+0x4147 mem_glap
+0x414a mem_class
+0x414d mem_iscan_window
+0x414f mem_iscan_interval
+0x4151 mem_pscan_window
+0x4153 mem_pscan_interval
+0x4155 mem_page_interval
+0x4157 mem_page_window
+0x4159 mem_page_to
+0x415b mem_inq_window
+0x415d mem_fcomp_mul
+0x415e mem_fcomp_div
+0x415f mem_rx_window_init
+0x4161 mem_rx_window_sniff
+0x4163 mem_rf_init_ptr
+0x4165 mem_last_type
+0x4166 mem_last_type_esco
+0x4167 mem_last_type_saved
+0x4168 mem_retransmission_cnt
+0x416a mem_next_btclk
+0x416e mem_seqi
+0x416f mem_rf_rccal
+0x4170 mem_handle_num
+0x4171 mem_max_slot
+0x4172 mem_eir_enable
+0x4173 mem_afh_instant
+0x4177 mem_afh_error_total
+0x4179 mem_afh_cfg
+0x417a mem_afh_new_mod
+0x417b mem_afh_map_lo
+0x4180 mem_afh_map_hi
+0x4185 mem_afh_used
+0x4186 mem_afh_index
+0x4188 mem_afh_map_new
+0x4193 mem_afh_map
+0x41e3 mem_afh_timer
+0x41e7 mem_afh_classify_channel_map
+0x41f1 mem_chip_functions
+0x41f3 mem_lpm_wake_lock
+0x41f5 mem_lpm_interval
+0x41f7 mem_lpm_overhead
+0x41f8 mem_lpm_hibernate_switch
+0x41f9 mem_esco_addr
+0x41fa mem_sniff_unint_lost
+0x41fb mem_ptt
+0x41fc mem_sleep_counter//should be 0x41fc in REVC
+0x4200 mem_sleep_counter_all
+0x4204 mem_sleep_clkn
+0x420a mem_sniff_rcv
+0x420d mem_sniff_lost
+0x4210 mem_clks_per_lpo
+0x4213 mem_lpm_mult
+0x4214 mem_lpm_mult_timeout
+0x4215 mem_lpm_mult_cnt
+0x4216 mem_lpm_config
+0x4219 mem_lpm_xtalcnt
+0x421a mem_lpm_buckcnt
+0x421b mem_lpm_ldocnt
+0x421c mem_lpm_isogate
+0x421d mem_lpm_isogate_final
+0x421e mem_saved_gpio// should be 0x421e in REVC
+0x422e mem_saved_gsel
+0x4231 mem_saved_mark
+0x4239 mem_saved_spidctrl
+0x423a mem_patch_ptr
+0x423c mem_patch_len
+0x423e mem_timers
+0x425e mem_link_key_exists
+0x425f mem_link_key_eeprom_head
+0x4262 mem_link_key
+0x4272 mem_hci_cmd
+0x4273 mem_hci_conn_handle
+0x4274 mem_hci_plap
+0x4277 mem_hci_puap
+0x4278 mem_hci_pnap
+0x427a mem_uartd_rxitems_got_data
+0x427b mem_uartd_rxitems_threshold
+0x427c mem_uartd_rx_timeout
+0x427e mem_app_state
+0x427f mem_app_handshake_flag
+0x4280 mem_sniff_param_interval
+0x4282 mem_sniff_param_attempt
+0x4284 mem_sniff_param_timeout
+0x4286 mem_cb_check_wakelock
+0x4288 mem_cb_before_hibernate
+0x428a mem_cb_before_lpm
+0x428c mem_cb_le_process
+0x428e mem_cb_bt_process
+0x4290 mem_cb_idle_process
+0x4292 mem_cb_bb_event_process
+0x4294 mem_cb_discovry_timeout
+0x4296 mem_cb_att_write
+0x4298 mem_cb_update_notify_value
+0x429a mem_device_nums
+0x429b mem_eeprom_base
+0x429d mem_unsniff2sniff_timer_count
+0x429e mem_wake_up_delay_timer
+0x429f mem_app_connection_options
+0x42a0 mem_app_disconn_reason
+0x42a2 mem_app_disconn_reason_flag
+0x42a4 mem_at_using_flag
+0x42a5 mem_lpm_delay_after_sniff
+0x42a9 mem_xrecord_mode
+0x42aa mem_eeprom_block_size
+0x42ac mem_baud
+0x42ae mem_hci_lt_rx_state
+0x42af mem_l2cap_xmem_start
+0x42af mem_l2cap_tx_multi_offset//0 means single packet
+0x42b1 mem_sdp_remote_cid
+0x42b3 mem_rfcomm_remote_cid
+0x42b5 mem_hid_ctrl_remote_cid
+0x42b7 mem_hid_int_remote_cid
+0x42b9 mem_sdp_state
+0x42ba mem_rfcomm_state
+0x42bb mem_hid_control_state
+0x42bc mem_hid_interrupt_state
+0x42bd mem_spp_state
+0x42be mem_ML2CAP_comm_id
+0x42bf mem_used_map
+0x42c0 mem_tx_fifo0
+0x42c0 mem_tx_fifo0_map
+0x42c1 mem_tx_fifo0_ptr
+0x42c3 mem_tx_fifo1
+0x42c3 mem_tx_fifo1_map
+0x42c4 mem_tx_fifo1_ptr
+0x42c6 mem_tx_fifo2
+0x42c6 mem_tx_fifo2_map
+0x42c7 mem_tx_fifo2_ptr
+0x42c9 mem_tx_fifo3
+0x42c9 mem_tx_fifo3_map
+0x42ca mem_tx_fifo3_ptr
+0x42cc mem_tx_fifo_end
+0x42cc mem_l2cap_lpm_txbuf
+0x43cc mem_l2cap_flow_ctrl_flag
+0x43cd mem_l2cap_pending_item
+0x43ce mem_l2cap_xmem_end
+0x43ce mem_le_dsniff
+0x43d0 mem_le_conn_interval
+0x43d2 mem_le_scan_enable
+0x43d3 mem_le_scan_interval
+0x43d5 mem_le_scan_window
+0x43d7 mem_le_adv_led
+0x43d8 mem_le_adv_enable
+0x43d9 mem_le_adv_data_len
+0x43da mem_le_adv_data
+0x43f9 mem_le_scan_data_len
+0x43fa mem_le_scan_data
+0x4419 mem_le_name_len
+0x441a mem_le_name
+0x442e mem_le_led_on_time
+0x442f mem_le_new_map
+0x4434 mem_le_new_param
+0x4434 mem_le_new_window
+0x4435 mem_le_new_offset
+0x4437 mem_le_new_interval
+0x4439 mem_le_new_latency
+0x443b mem_le_new_timeout
+0x443d mem_le_temp
+0x443e mem_le_txheader
+0x443f mem_le_txlen
+0x4440 mem_le_txpayload
+0x4442 mem_le_txcid
+0x4444 mem_le_l2cap
+0x4445 mem_le_l2cap_response
+0x4446 mem_le_txbdy
+0x4465 mem_le_pcnt_tx
+0x446a mem_le_pcnt_rx
+0x446f mem_le_last_mic
+0x4473 mem_le_ivm
+0x4477 mem_le_ivs
+0x447b mem_le_ltk
+0x448b mem_ltk_exists
+0x448c mem_le_rconfirm
+0x449c mem_le_srand
+0x44ac mem_le_iat
+0x44ad mem_le_rat
+0x44ae mem_le_preq
+0x44b5 mem_le_pres
+0x44bc mem_le_search_handle_start
+0x44be mem_le_search_handle_end
+0x44c0 mem_le_att_offset
+0x44c0 mem_le_search_att_type
+0x44c2 mem_le_notify_handle
+0x44c4 mem_le_uuid
+0x44c6 mem_le_handle_data_len
+0x44c7 mem_le_handle_data
+0x44d7 mem_le_adv_param
+0x44d7 mem_le_adv_interval_min
+0x44d9 mem_le_adv_interval_max
+0x44db mem_le_adv_type
+0x44dc mem_le_adv_own_addr_type
+0x44dd mem_le_adv_direct_addr_type
+0x44de mem_le_adv_direct_addr
+0x44e4 mem_le_adv_channel_map
+0x44e5 mem_le_adv_filter_policy
+0x44e6 mem_le_conn_param
+0x44e6 mem_le_conn_peer_addr_type
+0x44e7 mem_le_conn_peer_addr
+0x44ed mem_le_conn_own_addr_type
+0x44ee mem_le_conn_interval_min
+0x44f0 mem_le_conn_interval_max
+0x44f2 mem_le_conn_latency
+0x44f4 mem_le_conn_superto
+0x44f6 mem_le_scan_params
+0x44f6 mem_le_scan_type
+0x44f7 mem_le_scan_own_addr_type
+0x44f8 mem_le_scan_filter_policy
+0x44f9 mem_le_lap
+0x44fc mem_le_uap
+0x44fd mem_le_nap
+0x44ff mem_le_xtype_fifo
+0x4504 mem_le_att_list
+0x46f8 mem_le_switch_send_data
+0x46f9 mem_le_transmit_window
+0x46fd mem_lmp_version
+0x4700 mem_lmp_subversion
+0x4702 mem_local_name_length
+0x4703 mem_local_name
+0x4706 mem_local_name2
+0x4746 mem_local_name_end
+0x4747 mem_unsniff2sniff_timer
+0x4748 mem_switch_flag
+0x4749 mem_eeprom_ota_base_addr/*the start- writing addr in eeprom  */
+0x474b mem_pn_dlci
+0x474c mem_pn_max_frame_size
+0x474e memFCStemp1
+0x474f memFCStemp2
+0x4750 memFCStemp3
+0x4751 mem_rfcomm_initiator
+0x4752 mem_remote_spp_channel
+0x4753 mem_HIUfcs_SPP
+0x4754 mem_HIUfcs_SPP_WCredits
+0x4755 mem_rfcomm_send_more_pkt
+0x4756 mem_remote_credits
+0x4757 mem_credit_given
+0x4758 mem_ms_channel
+0x4759 memui_uuid_table
+0x475b mem_all_uuid_16bits
+0x4771 mem_all_uuid_128bits
+0x4793 mem_sp_local_key_invalid
+0x4794 mem_sp_private_key
+0x47ac mem_sp_pubkey_local
+0x47ac mem_sp_pubkey_local_x
+0x47c4 mem_sp_pubkey_local_x_end
+0x47c4 mem_sp_pubkey_local_y
+0x47dc mem_ssp_enable
+0x47dd mem_ipc_lock_bt
+0x47de mem_ipc_lock_c51
+0x47df mem_ipc_fifo_bt2c51
+0x47e4 mem_ipc_fifo_c512bt
+0x47e9 mem_led_switch
+0x47ea mem_ui_button_timer
+0x47eb mem_ui_button_last_state
+0x47ec mem_ui_timer_last_btclk
+0x47f0 mem_discovery_timeout_timer_count
+0x47f2 mem_hid_handshake_timer_count
+0x47f3 memui_reconnect_mode
+0x47f4 mem_ui_state_map
+0x47f6 mem_ui_profile_supported
+0x47f7 mem_led_gpio
+0x47f8 mem_led_dark_time
+0x47fa mem_led_light_time
+0x47fc mem_ui_button_timeout
+0x47fd mem_ui_button_gpio
+0x47fe mem_discovery_timeout
+0x4800 mem_ir_ptr
+0x4802 mem_ir_type
+0x4803 mem_ir_cmd
+0x4804 mem_ir_play_count
+0x4805 mem_ir_report_len
+0x4807 mem_ir_pulse_zero
+0x4808 mem_ir_pulse_one
+0x4809 mem_ir_pulses
+0x4825 mem_ir_sequence_len
+0x4826 mem_ir_sequence
+0x4800 mem_acl_credits
+0x4802 mem_allow_switch
+0x4803 mem_hci_acl_queue_start/*param_acl_pktcnt+2 byte*/
+0x4807 mem_hci_wake_clk
+0x4800 mem_kb_state
+0x4802 mem_kb_report_data
+0x4808 mem_kb_keys
+0x4809 mem_kb_rcv_led_data
+0x480a mem_kb_fast_wake_last
+0x480e mem_led_cap_gpio
+0x480f mem_led_num_gpio
+0x4810 mem_led_scl_gpio
+0x4811 mem_kb_map
+0x4811 mem_kb_uuid_list
+0x4a87 mem_24g_paring_tx_power_param
+0x4a91 mem_5db_tx_power_param
+0x4a9b mem_current_event
+0x4a9c mem_ipc_lock_rx_data_bt
+0x4a9d mem_ipc_lock_rx_data_c51
+0x4a9e mem_ipc_lock_tx_data_bt
+0x4a9f mem_ipc_lock_tx_data_c51
+0x4aa0 mem_ipc_2bt_fifo_head
+0x4b36 mem_ipc_2bt_fifo_end
+0x4b36 mem_ipc_2C51_fifo_head
+0x4b9a mem_ipc_2C51_fifo_end
+0x4b9a mem_ipc_2bt_read_index
+0x4b9c mem_ipc_2bt_write_index
+0x4b9e mem_ipc_2C51_read_index
+0x4ba0 mem_ipc_2C51_write_index
+0x4ba2 mem_ipc_tx_evt_buff
+0x4ba4 mem_ipc_tx_evt
+0x4ba5 mem_ipc_bt_timer
+0x4ba7 mem_ipc_rx_type
+0x4ba8 mem_rfcomm_tx_buff
+0x4ba8 mem_queue_ele_num
+0x4ba9 mem_queue_write
+0x4bab mem_queue_read
+0x4bad mem_queue_start
+0x4bad mem_uart_packet
+0x4bb9 mem_data_ele0
+0x4bc5 mem_data_ele1
+0x4bd1 mem_data_ele2
+0x4bdd mem_queue_end
+0x4bdd mem_queue_temp
+0x4bdf mem_24g_rxdata_length
+0x4be0 mem_24g_pid
+0x4be1 mem_24g_datalen
+0x4be2 mem_24g_data_type
+0x4be3 mem_24g_txlen
+0x4be4 mem_24g_rx_window
+0x4be6 mem_24g_ensure
+0x4be7 mem_24g_get_ack_fail
+0x4be8 mem_24g_retry
+0x4be9 mem_24g_ch
+0x4bea mem_24g_current_ch_number
+0x4beb mem_24g_paring_addr
+0x4bef mem_24g_pairing_sm
+0x4bf0 mem_24g_ch_map1
+0x4bf4 mem_24g_ch_map2
+0x4bf8 mem_24g_ch_map3
+0x4bfc mem_24g_ch_map4
+0x4c00 mem_24g_addr
+0x4c04 mem_24g_check_dongle_times
+0x4c06 mem_24g_device_addr
+0x4c0a mem_24g_no_ack
+0x4c0b mem_24g_sta_crc
+0x4c0e mem_24g_sta_pid
+0x4c0f mem_24g_max_retry
+0x4c10 mem_24g_mode
+0x4c11 mem_24g_hop_pac_retry
+0x4c12 mem_24g_idle_timeout
+0x4c13 mem_24g_idle_cnt
+0x4c14 mem_24g_auto_paring_switch
+0x4c15 mem_24g_enter_lpm_timer
+0x4c16 mem_24g_syncword
+0x4c18 mem_24g_syncword_crc8
+0x4c19 mem_24g_get_syncword_crc8
+0x4c1a mem_24g_discard_cnt
+0x4c1c mem_cb_24g_data
+0x4c1e mem_24g_lasttx
+0x4c27 mem_power_ctrl_pac_succ_cnt
+0x4c28 mem_power_ctrl_level
+0x4c29 mem_rssi_avg_received
+0x4c2a mem_rssi_hex_received
+0x4c2b mem_rssi_signal_buf
+0x4c33 mem_rssi_noise_buf
+0x4c3b mem_rssi_noise_index
+0x4c3c mem_rssi_signal_index
+0x4c3d mem_tx_power
+0x4c3e mem_tx_power_temp
+0x4c3f mem_cnt
+0x4c42 mem_last_txlch
+0x4c43 mem_last_txlen
+0x4c45 mem_last_txdata
+0x4c59 mem_ipc_last_check_timer
+0x4c5d mem_prepare_write_len
+0x4c5e mem_ipc_c51_timer
+0x4c60 mem_le_rx_window
+0x4c61 mem_le_find_type_value_start_handle
+0x4c63 mem_le_find_type_value_end_handle
+0x4c65 mem_le_cur_att_type
+0x4c67 mem_le_search_len
+0x4c68 mem_le_ll_unknown_type
+0x4c69 mem_le_pairing_state
+0x4c6a mem_le_local_mtu
+0x4c6c mem_le_connection_updata_param
+0x4c7c mem_ltk_states
+0x4c7d mem_pair_state
+0x4c7e mem_empty_count
+0x4c7f mem_shutter_find_type_value_flag
+0x4c80 mem_le51_payload_len
+0x4c81 mem_le51_cmd
+0x4c82 mem_le51_tx_length
+0x4c83 mem_le51_txbuff_inuse
+0x4c84 mem_le51_txbuf
+0x4c8d mem_ipc_bt_100ms_timer
+0x4c8e mem_ipc_c51_100ms_timer
+0x4c8f mem_adc_config_flag
+0x4c90 mem_adc_channel
+0x4c91 mem_adc_0v
+0x4c93 mem_adc_3v
+0x4c95 mem_adc_current_value
+0x4c97 mem_hibernate_flag
+0x4c98 mem_new_supervision_to
+0x4c9a mem_kb_wake_timer
+0x4c9b mem_kb_last_data
+0x4caf mem_kb_keycount
+0x4cb0 mem_led_cap_delay_timer
+0x4cb1 mem_test
+0x4cb4 mem_seq
+0x4cb5 mem_recon_index
+0x4cb6 mem_power_on_flag
+0x4cb7 mem_caps_num_lock
+0x4cb8 mem_att_report1
+0x4cba mem_att_report2
+0x4cbc mem_att_report3
+0x4cbe mem_suspend_flag
+0x4cbf mem_32asm_data_end
+0x4d37 mem_store_ltk_timer
+0x4d38 mem_reconnect_continue
+0x4d39 mem_le_pin_code
+0x4d3d mem_24g_enter_hibernate
+0x4d45 mem_24g_txfail_cnt
+0x4d46 mem_mouse_retry_flag
+0x4d47 mem_adc_pu_bit
+0x4800 mem_at_gpio
+0x4801 mem_module_wake_up_gpio
+0x4802 mem_module_state_gpio
+0x4803 mem_module_connect_state_gpio
+0x4804 mem_module_version
+0x480a mem_last_uart_clock
+0x480e mem_current_packet_length
+0x4810 mem_module_prepare_tx_len
+0x4812 mem_module_state
+0x4813 mem_module_task
+0x4814 mem_cmode_addr
+0x481a mem_at_scan_time
+0x481c mem_prarm_pswd
+0x4820 mem_prarm_uart
+0x4824 mem_prarm_blename
+0x4827 mem_prarm_name
+0x482b mem_prarm_bleadss
+0x482e mem_prarm_adss
+0x4832 mem_prarm_vers
+0x4836 mem_prarm_class
+0x483b mem_prarm_clrflg
+0x4841 mem_prarm_reconn
+0x4847 mem_prarm_bledis
+0x4849 mem_prarm_dis
+0x484c mem_prarm_stsn
+0x4850 mem_prarm_atp
+0x4853 mem_prarm_list
+0x4857 mem_prarm_role
+0x485b mem_prarm_sniff
+0x4860 mem_prarm_ldev
+0x4864 mem_prarm_rssi
+0x4868 mem_prarm_cdev
+0x486c mem_prarm_bleinqr
+0x486f mem_prarm_inqr
+0x4873 mem_prarm_cmode
+0x4878 mem_prarm_mode
+0x487c mem_prarm_dmstate
+0x4883 mem_prarm_discov
+0x4889 mem_prarm_ota
+0x488c mem_prarm_bleconn
+0x488e mem_prarm_conn
+0x4892 mem_prarm_pageout
+0x4899 mem_prarm_recfail
+0x48a0 mem_module_uuid_list
+0x4800 mem_mouse_x
+0x4802 mem_mouse_y
+0x4804 mem_mouse_z
+0x4805 mem_mouse_key
+0x4806 mem_mouse_z_last
+0x4807 mem_mouse_z_before
+0x4808 mem_mouse_z_now
+0x4809 mem_mouse_z_data
+0x480a mem_mouse_move_flag
+0x480b mem_reconnect_timeout
+0x480c mem_mouse_direct_timeout
+0x480e mem_mouse_no_data_timeout
+0x4810 mem_mouse_blank_data_timeout
+0x4812 mem_mouse_discovery_timer
+0x4814 mem_mouse_direct_timer
+0x4816 mem_mouse_no_data_timer
+0x4818 mem_mouse_blank_data_timer
+0x481a mem_mouse_send_blank_timer
+0x481b mem_mouse_dpi
+0x481c mem_mouse_dpi_button_state
+0x481d mem_mouse_test_cnt
+0x481e mem_le_hibernate_timer
+0x4820 mem_mouse_mode_state
+0x4821 mem_sensor_type
+0x4822 mem_lbutton_gpio
+0x4823 mem_rbutton_gpio
+0x4824 mem_mbutton_gpio
+0x4825 mem_dpi_button_gpio
+0x4826 mem_sensor_data_gpio
+0x4827 mem_whee_a_data_gpio
+0x4828 mem_whee_b_data_gpio
+0x4829 mem_conn_cnt
+0x482a mem_mouse_uuid_list
+0x4800 mem_shutter_send_data
+0x4804 mem_shutter_key_temp
+0x4805 mem_shutter_send_length
+0x4806 mem_shutter_clkn_bt_last
+0x480a mem_shutter_key
+0x480b mem_shutter_flag
+0x480c mem_shutter_cable_unplug_conut
+0x480d mem_shutter_hid_disconn_count
+0x480e mem_shutter_1key_send_sm
+0x480f mem_shutter_iphonekey_gpio
+0x4810 mem_shutter_androidkey_gpio
+0x4811 mem_shutter_key_number
+0x4812 mem_shutter_uuid_list
Index: YC1026_3mode_SDK_CUSTOMER/patch/ram.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/ram.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/ramcode.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/ramcode.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/ramcode.rom	(working copy)
@@ -0,0 +1,2031 @@
+c5128018
+c0000039
+c001803d
+c0028048
+c00302d0
+c00502f1
+c01382f5
+c0140307
+c015830d
+c0210318
+c021831c
+c0280324
+c02a0333
+c04801f3
+c04901bd
+c04a01c3
+c04a81ad
+c05802ce
+c0588171
+c0590185
+c059819f
+c05b01a8
+c05c8179
+20203bf1
+c00c033f
+c00d8347
+c0118366
+c0120382
+c01903fe
+c01dd3b0
+c01f026b
+c01f826f
+c0250447
+c02583f7
+c0260401
+c0270407
+c02b040e
+c0318416
+c032043b
+c032846c
+c03485c9
+c03585b2
+c03705d0
+c0378452
+c0438116
+c046827d
+c047029a
+c0478273
+c0668200
+c067811a
+c068012f
+c04e0386
+c04f839e
+c07103ab
+c07183bd
+c07303d1
+20203bf1
+6810813b
+60008b81
+70800608
+20203003
+204000b1
+2040004d
+20400041
+20203015
+680947f4
+6800c3d8
+7d3a040b
+6800c133
+7d3a0406
+600947f4
+20600000
+20403392
+20403407
+20403024
+204005f1
+20203022
+6800c7dc
+203a0051
+6800c793
+207a0000
+20400111
+20740000
+1ff0fe00
+1fe20c00
+204000f2
+6000cba7
+c0008066
+c0030070
+1fe20400
+18c22200
+6800c040
+c3000063
+1a220c00
+c6848000
+18427e00
+c0018072
+c0028090
+20203bf1
+1a220c00
+d8a000f8
+202000ea
+204000f2
+204000f2
+60008b7d
+2040006b
+20207c33
+204000f5
+18c20400
+18508400
+60094b9a
+20600000
+d8a00cd5
+202000ea
+204000f2
+1fe22200
+18c27e00
+600102b7
+2040527c
+243a007b
+1a20a201
+20404b2c
+20200080
+d8a04bad
+1a227200
+680102b7
+1fe20c00
+202000ec
+18a0a5fe
+680142b7
+e0a10000
+580000a1
+e0a08000
+1a20f3ff
+680102b7
+1fe20c00
+204000ec
+1a420c00
+e8c10000
+60014c9b
+1fe0f202
+20407e45
+704c9a64
+20600000
+18c22200
+6800cba9
+1fe08401
+18410403
+6008cba9
+1feffe07
+d8a04bad
+98a08a00
+1a220c00
+204000f2
+18c22200
+1fe0ffff
+1fe27200
+1fe0fe07
+6000cc82
+1a220c00
+204000f2
+18c22200
+c00080a5
+c00100ad
+c00180af
+68014cb8
+e0a10000
+1a220c00
+204000ec
+2040561e
+247a0000
+700b7d1b
+20205620
+68014cba
+202000a6
+68014cbc
+202000a6
+680a4c59
+1c427e00
+98467e00
+d8400640
+9846fc00
+20407efd
+1807fe00
+207a0000
+1c420400
+600a4c59
+68094ba5
+18508400
+9840fe00
+1ff0fe00
+60014ba5
+1ff0fe00
+1fe17e03
+c1800000
+6800cc8f
+c28000ce
+c28080d0
+da200000
+204000e1
+7089718f
+6800cc90
+60108973
+204000d1
+da200001
+202000e1
+708971bf
+202000d1
+708971af
+68108053
+79207e07
+60108053
+68108973
+1fe1fe30
+60108973
+7089067c
+708972aa
+20001388
+68190150
+68108053
+793ffe07
+60108053
+18508400
+60094c95
+20600000
+d8400021
+6800cc90
+98460400
+1a227e00
+79200407
+243a00e8
+793f8407
+d8a08078
+202069f4
+204000f2
+1fe27200
+204000ee
+2020006b
+204000f2
+e0a08000
+c20000ee
+20600000
+204000f5
+e8c08000
+20600000
+58004b36
+98c67c00
+24628000
+d8c04aa0
+20600000
+df200003
+d8c04ba2
+18c22200
+68014ba0
+1ff0fe00
+1fe20a00
+1a220c00
+e8c08000
+e0a08000
+20400109
+c2000101
+18a27e00
+1ff0fe00
+60014ba0
+20600000
+58004b9a
+98a67c00
+24628000
+d8a04b36
+20600000
+68014b9e
+68094ba0
+20200113
+68014b9a
+68094b9c
+98467c00
+2022e9b1
+2020320b
+6808c7ef
+1841040f
+6008c7ef
+20207c06
+da2047df
+20407f9f
+207a0000
+1fe22600
+20400120
+20203ea5
+c10c0000
+c00a05e1
+c00a85e7
+c0036614
+c0010126
+20203e7d
+70429d00
+680147f4
+c283bf08
+2fec0001
+2040812c
+20203f08
+68008450
+c1010000
+20203e7b
+60088259
+6800cc8d
+1fe0fe01
+6000cc8d
+68008259
+207a0000
+1fe0ffff
+60008259
+2040014f
+20400156
+2040013b
+20200133
+6800ccbe
+247a0000
+6800cc9a
+207a0000
+1fe0ffff
+6000cc9a
+c1808000
+704c9a64
+680147f4
+c4028000
+68014c9b
+207a0000
+2040527e
+247a0000
+68014c9b
+1fe22200
+20404b2c
+1a20f202
+d8c04c9d
+20207e45
+6800c7f2
+207a0000
+1fe0ffff
+6000c7f2
+247a0000
+20403ebd
+20204b22
+6800cc15
+207a0000
+1fe0ffff
+6000cc15
+20600000
+1a627e00
+1fe17ef0
+c1280000
+20400163
+1a627e00
+207a0000
+6000cba4
+202000fa
+1a627e00
+c0058167
+c001016f
+20600000
+704c9a28
+5800000a
+60014c9b
+680142b7
+e0a10000
+580001a1
+e0a10000
+20600000
+704c9a00
+20600000
+70416e7f
+20403cf3
+6800cc97
+207a0000
+704c9700
+1c427e00
+60024c59
+20600000
+6800c219
+247a0000
+70804206
+58000f0c
+20403da7
+58030d40
+20403bf3
+37d98200
+1e226000
+20403b36
+20001388
+20203d9d
+c6118000
+680147f4
+c284bd1e
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+2040527e
+247a0000
+20403dca
+247a0000
+20403b36
+6800c7dc
+203a3d25
+6800c793
+207a0000
+20203d25
+20400111
+24740000
+2040010e
+24740000
+700b7f01
+700b7e01
+204001a4
+20200111
+20400197
+24740000
+68008b7f
+247a0000
+20203d2d
+68008b7e
+2000000a
+c08001a4
+20600000
+20400197
+24740000
+68008b7f
+247a0000
+20203d4f
+204001af
+20203aaf
+6800c219
+243a01b5
+20403d91
+20007530
+20007530
+20007530
+20403b0a
+70804204
+6810896b
+1fe17ecf
+6010896b
+1fe1fe30
+6010896b
+20600000
+60088017
+1840a204
+20203a86
+60088017
+1840a200
+20203ab6
+204001c0
+58000500
+20403bf3
+70890601
+7089003c
+708901e0
+70896d12
+2000000a
+70890201
+7089023d
+2000000a
+708903b7
+2000000a
+7089027d
+6800cbef
+c0ff81db
+6802ca91
+e0a28000
+e8c28000
+e0a28000
+708956df
+204001e2
+708955df
+20600000
+6802ca87
+e0a28000
+e8c28000
+e0a28000
+708956c2
+708955d0
+20600000
+20000004
+708955d1
+20000004
+708955d2
+20000004
+708955d4
+20000004
+20600000
+708955d4
+20000004
+708955d2
+20000004
+708955d1
+20000004
+708955d0
+708956c0
+20600000
+2030ba6f
+204001ea
+20203a6f
+2040527c
+247a0000
+2020004d
+78347c00
+68120138
+79347e1a
+6012004c
+20403db0
+7000a201
+20600000
+700b7e00
+70017706
+20403fa4
+580001f6
+6001428e
+580001ff
+6001428a
+5800015b
+60014292
+58000272
+60014290
+5800004d
+6001428c
+580001f9
+60014288
+58004aa0
+1ff0fe00
+60014b9a
+60014b9c
+20403e0b
+58004b36
+1ff0fe00
+60014b9e
+60014ba0
+6800cc97
+c02d0230
+2035822e
+68014c91
+1ff0fe00
+60014c91
+68014c93
+1ff0fe00
+60014c93
+2040023b
+680402a0
+243a0228
+68014ad4
+1ff0fe00
+203a0228
+60014c93
+204005ee
+704ba42f
+204000fa
+704c9700
+70828003
+20600000
+704ba430
+2020022a
+1ce27e00
+203a0275
+20405b63
+20404d99
+58000000
+60044040
+600147f4
+1c427e00
+60024c59
+704ba433
+2020022a
+2040688a
+580007e2
+da2002a0
+d840000c
+204068d3
+2040688d
+680402a0
+207a0000
+6800cc8f
+c280024d
+c280825b
+680102a0
+1ff0fe00
+60014c91
+680102a6
+1ff0fe00
+60014c93
+20600000
+680902a4
+680102aa
+18422400
+1fe22200
+1ff0fe00
+60014c93
+1a227e00
+98462600
+1a63a600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+20600000
+680902a2
+680102a8
+18422400
+1fe22200
+98462600
+1a6b2600
+1a427e00
+9a667e00
+1ff0fe00
+60014c91
+1a63a600
+1a227e00
+9a667e00
+1ff0fe00
+60014c93
+20600000
+70001627
+70890f36
+70890b5f
+202053d4
+70890f2e
+70890bff
+202053d9
+20600000
+700b7e03
+204001a4
+704c975a
+20403db8
+68120138
+793ffe0f
+6012004c
+20403db0
+d85fffff
+20203cda
+20407c20
+da2047e4
+20407f9f
+1fe20400
+20407c24
+18427e00
+207a0000
+c0108290
+c0110292
+c0118295
+c00082b7
+c00682af
+c01602ae
+c01582b5
+c00182b9
+c01502c2
+c0088298
+c0097c85
+20207c5a
+704befff
+202006f2
+793f8023
+704befff
+2020066e
+5fffffff
+60024c00
+202006bf
+700b7d22
+20205620
+6800807c
+203a029f
+204061d9
+6800807c
+243a7c8c
+68008b7d
+c584fc87
+c00202a4
+c01402aa
+20207c7b
+680147f4
+c30182a7
+20207ca4
+5800000a
+60020051
+20207ca4
+70007c37
+68014c98
+60010051
+20600000
+204002b7
+20403eff
+20407cd5
+180a7e00
+6000c4f9
+7043dc05
+20207cae
+7043dc04
+20207cae
+70017706
+20207c97
+20403bfa
+20404d98
+20405b62
+70017706
+6800c7dc
+c00002c0
+70017717
+70425e01
+20207ca2
+680147f4
+c284bf90
+c28002cb
+c283fcd5
+c511866e
+7043d800
+20403f7e
+700b7d37
+20207c27
+20403eff
+20407cd5
+20203f77
+20403b36
+20203cdc
+204002d2
+2020302c
+da6002d4
+20203301
+c300b307
+2040333d
+204002e1
+98467e00
+1fe0fe01
+202102db
+20203325
+98002400
+1a208c02
+e8c10000
+203a3327
+20403349
+202002d5
+1ff11600
+196c9600
+202282eb
+29601e0f
+24608000
+18511600
+196c9600
+24628000
+7920041c
+20600000
+18511600
+196c9600
+29601e0f
+24608000
+79207e1c
+20600000
+600c02a0
+20407e53
+680c02a0
+2020307c
+78547c00
+68010032
+d840ffff
+98467c00
+24628000
+68020034
+203802fe
+9d067e00
+202002ff
+9c467e00
+1fe67c04
+24610000
+18007e00
+60010032
+202034df
+700b7d20
+20407c27
+20200308
+600a0034
+70474801
+5800ffff
+60010032
+70007301
+20600000
+20403baa
+20400310
+20203267
+1c40c201
+20403a54
+18004803
+20403a42
+20403bae
+20403bb4
+20403bc5
+2020375c
+20403e25
+20406dec
+204035d6
+20203480
+20403d61
+20403be2
+20213498
+20403204
+24343498
+20403812
+243a0319
+20600000
+204032df
+2422b568
+68008047
+c301b571
+6800c165
+c009b562
+68014c43
+1fe67c14
+24213562
+60010091
+6800cc42
+60008090
+58004c45
+60010179
+20203562
+68010091
+60014c43
+1fe67c14
+2421358f
+98007200
+68008090
+6000cc42
+68010179
+98000c00
+d8a04c45
+20407e45
+2020358f
+680102cd
+203a4dfc
+680082cf
+c0008344
+20204dbb
+2040527a
+247a0000
+20204dc3
+e8c08000
+c005034a
+20204e14
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+1a627e00
+9a262600
+5800000b
+e0a08000
+18e27e00
+e0a08000
+e8c10000
+c0010358
+c001835f
+20203bf1
+58020008
+e0a30000
+58000200
+e0a20000
+18007e0c
+9a40a400
+20204e20
+5803000c
+e0a30000
+58000006
+e0a40000
+18007e10
+9a40a400
+20204e20
+204052c4
+18002400
+204052d0
+1fe20a00
+680102cd
+1fe22600
+680102cb
+98000c00
+20400370
+20205110
+e8c08000
+c0050373
+20205116
+e8c08000
+1fe20e00
+e8c10000
+1fe22200
+e8c10000
+600102a0
+1a627e00
+9a262600
+204052d0
+5800000b
+e0a08000
+18e27e00
+e0a08000
+680102a0
+20200355
+da400000
+2040527a
+247a0000
+2020524d
+680102cb
+1fe20c00
+e8c08000
+1fe1040f
+1ff1fe00
+c004cb18
+c003cb18
+c005039b
+c0028399
+c0008392
+c0024b18
+20600000
+18427e00
+c002cb09
+704cbe01
+c001cb18
+704cbe00
+c0024b18
+20600000
+2040039b
+20204b11
+e8c08000
+c00083f4
+20600000
+2040527a
+247a0000
+204003a2
+20206dfd
+6800c132
+c1008000
+6800c3cd
+207a0000
+1fe22200
+7043cd00
+1a227e00
+c0284ddc
+20600000
+6800807d
+c00183af
+c00383ba
+20205b92
+680084df
+60008445
+c0098304
+c01983b4
+20205c58
+6800844d
+79207e00
+6000844d
+700b7d01
+20407c27
+20205c83
+680084df
+60008446
+20205cf3
+78547c00
+204061d9
+68008048
+207a0000
+c283df10
+c00103c4
+20205ee0
+18007e11
+204061b5
+68008049
+1fe20400
+c00003cc
+c00703cc
+c00e03cc
+20600000
+e0a08000
+6800c702
+e0a08000
+5800000e
+20205fa6
+6800807c
+203a03d6
+204061d9
+6800807c
+247a0000
+68008055
+207a0000
+c00303e5
+c00803db
+2020623e
+6800c748
+c1000000
+c00083e3
+d8e0000a
+20407e53
+247a0000
+70474800
+2020629b
+20748000
+202003e5
+68008177
+c281629b
+c28003e8
+6800c25e
+203a62c7
+6800844d
+c4018000
+c4010000
+68020465
+d8400320
+98408400
+1c427e00
+98467c00
+24610000
+20206267
+e8c08000
+6000ccb7
+20600000
+204054bd
+68088017
+20403a82
+20403a87
+78287c00
+d960157c
+2020547f
+70443e01
+70443f00
+2020534e
+204053dd
+20400404
+202054c1
+203681c6
+204053ee
+20203a91
+6800cc60
+600246f9
+6800c4db
+c000840c
+202054e0
+7044db00
+202054ef
+680083c0
+c4028000
+680103da
+680903e0
+98467e00
+24610000
+70413101
+2020557e
+6800c440
+c0038430
+c0078434
+c0030422
+c001041f
+c009841d
+2020563a
+18000401
+20205892
+5800000a
+600103ef
+20205693
+700b7d12
+20407c33
+18000401
+2034d892
+700b7d34
+20407c27
+6800cc69
+c001042c
+70413101
+2020042e
+700b7d46
+20405620
+18000401
+20205892
+6800cc68
+e0a08000
+18000402
+20205892
+18a08bff
+68044c6c
+e0a40000
+e8c40000
+e0a40000
+18000202
+2020588a
+6800c444
+c004d719
+c0010440
+c003d70d
+20205656
+59000302
+6001c4b5
+58000001
+e0a08000
+58010010
+e0a18000
+202056f1
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+2023375c
+7836fc00
+68008017
+1fe0a200
+202054af
+e8c18000
+600183f9
+c0290458
+c001046a
+c009045e
+20205907
+704d3801
+680103fa
+c00f845c
+202059ed
+d8c00349
+202003f4
+680103fa
+1fe67c1f
+2042845c
+680103fa
+68094cbc
+18408401
+98467c00
+20228467
+202059ca
+700b7d34
+20407c27
+202059ca
+700b7d03
+20205620
+6800c444
+c00d85a4
+c00e85a4
+c0088538
+c00484ea
+c00284d8
+c003848c
+c009d85c
+c001847d
+c0058480
+c0068478
+20205666
+680103fa
+c003847b
+202057d6
+7003fc07
+20205729
+68014c6a
+e0a10000
+2020588a
+680103fa
+c0070483
+202057c6
+6800cc69
+c08057c6
+6800cc7c
+c001d7c6
+18a20400
+704c6901
+18420a00
+7003fc05
+20205729
+2040577b
+20740000
+680944c0
+58001812
+98467c00
+202284a5
+5800180f
+98467c00
+202284a7
+5800180a
+98467c00
+202284ab
+58001801
+98467c00
+202284a9
+20205754
+6800cc7f
+d8400000
+f9200400
+98417e00
+c0805728
+6800cc7f
+f9207e00
+6000cc7f
+202004ad
+d8e00000
+2020049c
+d8e00001
+2020049c
+d8e00003
+2020049c
+d8e00002
+2020049c
+680144c0
+1fe22200
+680944c4
+18422400
+204004b4
+202284bf
+20205728
+d8c04504
+e8c10000
+207a0000
+e8c18000
+e8c10000
+9a267c00
+20628000
+18c08dfd
+e8c08000
+98c08c00
+202004b5
+18c08df9
+e8c10000
+60014c61
+204004cd
+203a5728
+18c08dfc
+e8c10000
+1fe0ffff
+60014c63
+70444407
+68024c61
+60024445
+18000409
+20205892
+e8c10000
+e8c08000
+98c08c00
+e8c10000
+207a0000
+e8c10000
+9a467c00
+20628000
+e8c08000
+98c08c00
+202004d0
+d9600003
+18007e01
+6000c445
+20405a74
+20405a7d
+203a5746
+242104e8
+78547c00
+e0a10000
+e8c10000
+e0a10000
+196097ff
+2022d746
+e8c08000
+98c08c00
+202004dc
+18c08c02
+202004e5
+680944c0
+58002a00
+98467c00
+2022852a
+58002a50
+98467c00
+20228535
+58002803
+98467c00
+2422d728
+680144bc
+600102a0
+78347c00
+2040057c
+24210506
+680902a0
+20400584
+c0008506
+20400580
+24228504
+78547c00
+20400508
+2040056a
+20400584
+20400510
+20200506
+2040056a
+202004f7
+20345728
+202005a2
+680102a0
+60014446
+6800cc67
+1fe27200
+20400599
+d8a04448
+20407e45
+2020059c
+68094c65
+184cfe00
+c0828522
+20400596
+680102a0
+e0a10000
+2040059c
+58004504
+98408c00
+e8c08000
+18c20400
+1fe27200
+1fe0fe05
+6000c445
+20400596
+18420c00
+20407e45
+2020059c
+20400596
+680102a0
+e0a10000
+68014c65
+e0a10000
+2040059c
+70444507
+20600000
+20405b08
+e8c08000
+1fe27200
+1fe0fe02
+6000c445
+18c08dfb
+e8c10000
+e0a10000
+18c08c03
+20407e45
+2020588a
+d8402a50
+20405b0c
+2020052b
+d9600002
+680144bc
+600102a0
+700d5c00
+78347c00
+2040057c
+24210560
+680902a0
+20400584
+c0008563
+20400580
+2422855c
+68008d5c
+c0008563
+2434054d
+78547c00
+6800cc67
+1fe0fe04
+6000c445
+2040059c
+20200557
+6800cc67
+1fe67c10
+20228563
+6800c445
+1fe67c10
+20228563
+680102a0
+1fe0ffff
+60010d5a
+20400573
+680102a0
+60010d58
+2040056e
+196097ff
+2022855e
+2040056a
+2020053d
+700d5c01
+2020055c
+680102a0
+60010d5a
+20200567
+680102a0
+1fe0ffff
+60010d5a
+20200567
+20345728
+20400573
+202005a2
+680902a0
+18408401
+600902a0
+20600000
+6800cc67
+60008103
+1fe27200
+20400599
+20207e45
+20400596
+68010d58
+e0a10000
+68010d5a
+e0a10000
+68008103
+1fe27200
+20407e45
+2020059c
+680902a0
+680144be
+98467c00
+20600000
+680144c0
+68094c65
+98467c00
+20600000
+d8c04504
+18422200
+e8c10000
+203a058f
+e8c90000
+60094c65
+9a267c00
+20228591
+e8c08000
+98c08c00
+20200586
+58000001
+20600000
+e8c08000
+6000cc67
+2040059f
+58000000
+20600000
+680102b9
+1fe20a00
+20600000
+680102b7
+1fe20c00
+20600000
+18a27e00
+600102b9
+20600000
+18c27e00
+600102b7
+20600000
+20400596
+2020588a
+6800cbab
+1fe08401
+18410403
+6008cbab
+1feffe07
+d8c04bad
+98c08c00
+6800cc82
+1fe0fffb
+1fe27200
+d8a04445
+20407e45
+6808cc82
+20205892
+1a627e00
+c00185c0
+c00505c4
+c00005bd
+c00905c2
+c00105c6
+1fe67c0d
+202158c0
+6000cc68
+700b7d27
+20205620
+70413100
+20405924
+20600000
+704c7c00
+20205938
+700b7d33
+20205620
+700b7d2b
+20205620
+58000014
+600103ef
+20600000
+6800c43e
+28200601
+202085cd
+202058a7
+6800c43f
+207a0000
+202058a7
+e8c08000
+c00085d7
+c00205dc
+c00485d5
+202058f8
+704c6903
+20205974
+6000c4ae
+e8c30000
+e0a30000
+700b7d42
+20205620
+204074a8
+202285df
+20205968
+704c6902
+2020596a
+70413100
+704c7d00
+20403f86
+20403f7e
+20403fa4
+20203ecc
+70421300
+70448b00
+704c7c00
+704c6900
+704c7f00
+704c7d00
+20203ed0
+58000000
+60024ba9
+20600000
+c6918000
+20400617
+24340608
+704c150a
+20400632
+6800cbef
+c1ff8000
+20400690
+6800cd46
+247a0000
+20400197
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+5800e290
+20407e8a
+600a41fc
+20203cda
+20400197
+24740000
+68008b7f
+247a0000
+20403cab
+6801c210
+207a0000
+6800c131
+207a0000
+6800cc15
+243a0604
+68044d3d
+20407e8a
+600a41fc
+20203cda
+6800cbef
+c0ff86c7
+2040061d
+20400756
+704be601
+20600000
+78547c00
+704be202
+68008cd5
+c0008626
+c001062a
+c001862e
+6800cd46
+245a34df
+20600000
+58000000
+60008cd5
+704be10a
+20200630
+58000003
+60008cd5
+704be104
+20200630
+704be201
+704be108
+704be700
+202034df
+704be800
+d9600d00
+34730200
+2040065d
+24378643
+20400671
+20400682
+6800cbe0
+1fe0fe01
+6000cbe0
+704d4600
+6800cbef
+c0ff865b
+20400655
+704be700
+704be600
+20600000
+704d4601
+6800cbe7
+1fe0fe01
+6000cbe7
+6800cbef
+c0ff866d
+6800cbe7
+c07f866e
+6800cbe7
+d8400010
+98467c00
+20210770
+6800cbe8
+1fe0fe01
+6000cbe8
+2000000a
+c0838633
+20200770
+58000000
+60048cd5
+20600000
+c591f2b9
+68040cd5
+20600000
+2040067f
+202006e2
+7857fc00
+204007ce
+6800cc0a
+c000866a
+18002a00
+68024c00
+98001200
+68088017
+20403a82
+20403a87
+20400788
+205787c6
+20600000
+700cb400
+7837fc00
+202007c6
+20600000
+704d4600
+700b7d32
+20207c27
+20400718
+6800cbdf
+207a0000
+98007200
+20400679
+d8c00cb5
+d8a00d17
+20207e45
+68008cb4
+2fe1f008
+24608000
+68088cb5
+6008ccb7
+20600000
+704c2801
+704c2700
+20600000
+6800cc27
+1fe0fe01
+6000cc27
+20600000
+6800cc27
+1fe67c01
+2441068e
+6800cc27
+c1000000
+1fe0ffff
+6000cc27
+20600000
+704c2702
+20600000
+da204c2b
+20400738
+6008cc29
+280ffe23
+2040869e
+244086a2
+98467c00
+242106b6
+6800cc27
+1fe67c01
+242106a6
+6800cc27
+c00006b6
+20600000
+58000082
+20600000
+58000077
+20600000
+58000080
+20600000
+58000075
+20600000
+6800cc27
+c1a30000
+704c2700
+6808cc29
+280ffe23
+204086a0
+244086a4
+98467c00
+24610000
+6800cc28
+c00006bd
+1fe0ffff
+6000cc28
+c00006bd
+704c3d00
+20600000
+6800cc28
+c00106bb
+1fe0fe01
+6000cc28
+c00086b4
+704c3d02
+20600000
+704c3d04
+20600000
+79200023
+204006c3
+704bef01
+20600000
+704be000
+704be94e
+68024beb
+20200748
+6800cbe6
+c000b4df
+6800cbef
+c00086ce
+c00106d1
+c00186d4
+20203bf1
+704bef11
+700d37aa
+202006d6
+704bef12
+700d3755
+202006d6
+704bef13
+700d3722
+6800cbe2
+1fe17e07
+60008d38
+68024c06
+60020d39
+700d3d00
+da200d37
+d8400007
+20400713
+20400756
+2040061b
+202034df
+6800cbef
+c17f8000
+c00886e8
+c00906ea
+c00986ec
+20600000
+704bef02
+2020063f
+704bef03
+2020063f
+704befff
+700b7d31
+20407c27
+68020d19
+20400748
+2020063f
+c6118000
+20400749
+20400770
+6800cbef
+c1ff8000
+20400705
+58000000
+60014c04
+20403cab
+200007d0
+6800cc04
+c07f866e
+2040065d
+2437870e
+20400655
+704c1303
+79200023
+700b7d3c
+20207c27
+700d37ff
+6800cbe2
+60008d38
+68024c06
+60020d39
+d8400006
+da200d37
+20400713
+20200756
+68014c04
+1fe0fe01
+60014c04
+20400770
+202006fa
+6008cbe1
+18427200
+d8a00cd5
+1a220c00
+20207e45
+68008cb4
+1fe97e00
+6000cbdf
+1fe0fe01
+d8c00cb4
+98c08c00
+e8c18000
+6001cc0b
+20600000
+6808cc3c
+58004c2b
+98408a00
+1a227e00
+e0a08000
+18408401
+18410407
+6008cc3c
+20600000
+20403af3
+207a0000
+6808cc3b
+da204c33
+20400731
+6008cc3b
+20600000
+1a227e00
+98408a00
+68008018
+e0a08000
+18408401
+18410407
+20600000
+d8400000
+df200008
+1a220c00
+e8c08000
+98408400
+c200073b
+18490400
+1fe20400
+c6918000
+1fe6fc0a
+20407efd
+1807fe00
+1ff27e00
+18070400
+98418400
+20600000
+60024c00
+da200000
+df200004
+d8c04c00
+e8c08000
+9a20a200
+c200074c
+1a227e00
+60014c16
+6800cc16
+6808cc17
+9840fe00
+6000cc18
+20600000
+6800cbe1
+1fe0fe02
+6000cbe3
+6800cbe2
+60008cf5
+6800cbe1
+1fe9fe00
+6808cbe0
+18410403
+18438400
+9841fe00
+6808cc0a
+9840fe00
+e0a08000
+6800cbef
+c0ff8768
+6800cbe2
+e0a08000
+6800cbe1
+98007200
+6800cbe2
+c000876e
+d8c00cd5
+20207e45
+d8c00cd6
+20207e45
+6808cbea
+20400776
+18408401
+18410403
+6008cbea
+20600000
+6800cc00
+1fe17e03
+1fefa204
+58004bf0
+9a20fe00
+98408c00
+e8c08000
+6000cbe9
+20600000
+7844fc00
+7843fc00
+58555555
+98001e00
+6800cbe9
+1fed8400
+79200401
+18431c00
+20600000
+2040077f
+7826fc00
+7830fc00
+78507c00
+78287c00
+68014be4
+98003600
+37c18400
+242c07c9
+7846fc00
+7825fc00
+7823fc00
+7824fc00
+09800008
+19897e00
+6000cc19
+6808cc18
+98467c00
+242287c6
+09800008
+19897e00
+60008cb3
+6800cc10
+1fe67c02
+202287a5
+68008cb3
+6808cbe2
+a8400e00
+242087c6
+09800008
+19897e00
+e0a08000
+1fe97e00
+1fe1721f
+202287af
+09800008
+19897e00
+e0a08000
+c20007ab
+18a22200
+09800008
+19897e00
+6000cc2a
+1a220a00
+09800018
+78287c00
+db600664
+1fef7e00
+1ff17e00
+e0a18000
+7845fc00
+202307c6
+7837fc00
+68008017
+1fe0a200
+20403ab6
+7846fc00
+20403a7a
+6800cc2a
+1fe22200
+20400721
+20600000
+784dfc00
+7845fc00
+2020375c
+2040072a
+202007c6
+20403a7a
+6808cbe9
+20203a91
+204053d2
+68024c00
+98001200
+2040077f
+204007cb
+79202a00
+782efc00
+78307c00
+7850fc00
+19317e00
+1fecfe00
+1ff1fe00
+08008628
+784efc00
+782dfc00
+7823fc00
+7824fc00
+6800cc18
+08008608
+6800cbe3
+98007200
+d8c00cf5
+e8c08000
+08008608
+c20007e4
+78247c00
+08008618
+78447c00
+37d38200
+20000064
+784efc00
+784dfc00
+20600000
Index: YC1026_3mode_SDK_CUSTOMER/patch/rf.dat
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/rf.dat	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/rf.dat	(working copy)
@@ -0,0 +1,108 @@
+mem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_le_att_list+490:
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: YC1026_3mode_SDK_CUSTOMER/patch/sch.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/sch.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/sch.rom	(working copy)
@@ -0,0 +1,668 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+38   #mem_patch2C
+c8   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:36 08 c2 08 66 22    
+mem_local_name_length:
+'BT3.0 Keyboard
+mem_sniff_param_interval:0e 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+3601b6
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 35a5 35a3 0822 259f
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+25ff # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 090c80
+09020d 2800
+09020e 2801
+09020f 090318
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+090a5c
+090202#ProductID
+098502
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18 
+#Characteristic: pnp id
+0d 00 03 28 01 02
+0e 00 50 2a 07 02 8a 24 66 82 01 00
+
+#Primary service: HID
+0f 00 00 28 02 12 18
+#Characteristic:Protocol mode
+10 00 03 28 01 06
+11 00 4e 2a 01 01
+#Characteristic: hid report
+12 00 03 28 01 12   
+13 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+14 00 02 29 02 00 00	
+15 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+16 00 03 28 01 12   
+17 00 4d 2a 02 00 00 	#hid report	led handle write
+18 00 02 29 02 00 00	
+19 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+1a 00 03 28 01 12  
+1b 00 4d 2a 05 00 00 00 00 00
+1c 00 02 29 02 00 00
+1d 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1e 00 03 28 01 0e   
+1f 00 4d 2a 02 00	00	#hid report	led handle write
+20 00 02 29 02 00 00	
+21 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+22 00 03 28 01 0a
+23 00 4b 2a a0
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#60
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+#Characteristic:Hid information
+24 00 03 28 01 02
+25 00 4a 2a 04 11 01 00 01        
+#Characteristic
+26 00 03 28 01 04
+27 00 4c 2a 01 00
+
+#Primary Service: BAS
+28 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+29 00 03 28 01 12 
+2a 00 19 2a 01 64 
+#Client Characteristic Configuration
+2b 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:13 00
+mem_att_report2:17 00
+mem_att_report3:1b 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+10 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT4.2 Keyboard
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+'\09BT4.2 Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT4.2 Keyboard
+
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+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_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 minmem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_le_att_list+490:
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: YC1026_3mode_SDK_CUSTOMER/patch/sched.rom
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/sched.rom	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/patch/sched.rom	(working copy)
@@ -0,0 +1,668 @@
+mem_patch00:
+69   #mem_patch00
+04   #mem_patch01
+00   #mem_patch02
+00   #mem_patch03
+80   #mem_patch04
+09   #mem_patch05
+00   #mem_patch06
+00   #mem_patch07
+0c   #mem_patch08
+00   #mem_patch09
+11   #mem_patch0A
+00   #mem_patch0B
+00   #mem_patch0C
+00   #mem_patch0D
+00   #mem_patch0E
+00   #mem_patch0F
+00   #mem_patch10
+00   #mem_patch11
+35   #mem_patch12
+00   #mem_patch13
+00   #mem_patch14
+00   #mem_patch15
+4f   #mem_patch16
+02   #mem_patch17
+00   #mem_patch18
+00   #mem_patch19
+00   #mem_patch1A
+00   #mem_patch1B
+00   #mem_patch1C
+00   #mem_patch1D
+00   #mem_patch1E
+00   #mem_patch1F
+00   #mem_patch20
+00   #mem_patch21
+00   #mem_patch22
+09   #mem_patch23
+18   #mem_patch24
+00   #mem_patch25
+04   #mem_patch26
+c8   #mem_patch27
+00   #mem_patch28
+5c   #mem_patch29
+40   #mem_patch2A
+00   #mem_patch2B
+38   #mem_patch2C
+c8   #mem_patch2D
+00   #mem_patch2E
+00   #mem_patch2F
+80   #mem_patch30
+e0   #mem_patch31
+00   #mem_patch32
+90   #mem_patch33
+00   #mem_patch34
+00   #mem_patch35
+00   #mem_patch36
+00   #mem_patch37
+00   #mem_patch38
+a0   #mem_patch39
+01   #mem_patch3A
+00   #mem_patch3B
+4c   #mem_patch3C
+00   #mem_patch3D
+00   #mem_patch3E
+00   #mem_patch3F
+
+mem_lpm_mode:01
+mem_lpm_mult:40
+mem_lpm_mult_timeout:03
+mem_lpm_overhead:0a
+mem_lpm_interval:10 00
+mem_scan_mode:00
+mem_test:00 00
+
+mem_class: 40 25 00
+
+mem_lap:36 08 c2 08 66 22    
+mem_local_name_length:
+'BT3.0 Keyboard
+mem_sniff_param_interval:0e 00
+mem_sniff_param_attempt:01
+mem_sniff_param_timeout:01
+mem_unsniff2sniff_timer:0a
+mem_ssp_enable:00
+mem_ui_profile_supported:01
+
+mem_eir_enable:01
+
+mem_all_uuid_16bits:
+06
+03#Type: Complete list of 16-bit UUIDs
+1100 0001 0210 2411  0012  0100
+
+mem_all_uuid_128bits:00
+
+#keyboard uuid
+mem_kb_uuid_list:
+#uuids
+04 0011 0100 1002 1124
+
+#handle
+00010000
+
+#total length
+3601b6
+
+#attribute start, first 4 digit is attribute ID
+090000 0a 00010000
+090001 3503 191124
+090004 350d 3506 190100 090011 3503 190011
+090005 3503 191002
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191124 090100
+09000d 350f 350d 3506 190100 090013 3503 190011
+
+#Service Name
+#090100 2517
+#'Apple Wireless Keyboard
+#41 70 70 6c 65 20 57 69 72 65 6c 65 73 73 20 4b 65 79 62 6f 61 72 64
+#Service Name
+090100 253d
+#'Broadcom Bluetooth Wireless  Keyboard                        
+4272 6f61 6463 6f6d 2042 6c75 6574 6f6f 7468 2057 6972 656c 6573 7320 204b 6579 626f 6172 6420 
+2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 2020 20
+
+#Service Description
+090101 2508
+#'Keyboard
+4b6579626f617264
+
+#Provider Name
+#090102 250a
+#'Apple Inc.
+#41 70 70 6c 65 20 49 6e 63 2e
+#Provider Name
+090102 2510
+#'Broadcom Corp.  
+4272 6f61 6463 6f6d 2043 6f72 702e 2020
+
+090200 090100
+090201 090111
+090202 0840
+090203 0821
+090204 2801
+090205 2801
+090206 35a5 35a3 0822 259f
+
+# hid descriptor
+0501 # Usage Page(Generic Desktop)
+0906 # Usage(Keyboard)
+a101 # Collection(Application)
+8501 # Report ID(1)
+7501 # Report Size(1)
+9508 # Report Count(8)
+0507 # Usage Page(Keyboard/Keypad)
+19e0 # Usage Minimum(224)
+29e7 # Usage Maximum(231)
+1500 # Logical Minimum(0)
+2501 # Logical Maximum(1)
+8102 # Input(Data Variable Absolute) ; Modifier byte
+9501 # Report Count(1)
+7508 # Report Size(8)
+8103 # Input(Constant Variable Absolute) ; 
+9505 # Report Count(5)
+7501 # Report Size(1)
+0508 # Usage Page(LEDs)
+1901 # Usage Minimum(1)
+2905 # Usage Maximum(5)
+9102 # Output(Data Variable Absolute) ; LED report
+9501 # Report Count(1)
+7503 # Report Size(3)
+9103 # Output(Constant Variable Absolute) ; 
+9506 # Report Count(6)
+7508 # Report Size(8)
+1500 # Logical Minimum(0)
+25ff # Logical Maximum(255)
+0507 # Usage Page(Keyboard/Keypad)
+1900 # Usage Minimum(0)
+29ff # Usage Maximum(255)
+8100 # Input(Data Array) ; Key arrarys 6 bytes
+c0 # End Collection
+
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#69
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+090207 3508 3506 090409 090100
+09020b 090100
+09020c 090c80
+09020d 2800
+09020e 2801
+09020f 090318
+090210 090000
+#attribute end
+
+#uuids for pnpInformation	
+03 1002 1200 0001
+
+#handle
+00010001
+
+#total length 90 bytes
+3600a1
+
+#attribute list
+090000 0a00010001
+090001 3503 191200
+090004 350d 3506 190100 090001 3503 190001
+090006 3509 09656e 09006a 090100
+090009 3508 3506 191200 090100
+090100 252f42726f6164636f6d20426c7565746f6f746820576972656c657373204b6579626f61726420506e5020536572766572
+090101 25084b6579626f617264
+090200 090103
+090201# VendorID
+090a5c
+090202#ProductID
+098502
+090203 090001
+090204 2801
+090205 090002
+
+#attribute end
+00
+
+#Auto reconnection after power on
+
+memui_uuid_table:mem_kb_uuid_list
+#Auto reconnection after power on
+mem_device_option:43
+mem_ptt:0
+mem_features:
+ff
+ff
+8f
+f8	#fe--EDR  F8--BR
+83	#AFHclose 83
+9d
+59
+82
+
+#bluetootch param init
+mem_sp_flag:00
+mem_lpm_current_mult:00
+mem_master_sp_flag:00
+mem_le_ch_mapped:27
+
+mem_ui_button_gpio:ff
+mem_led_gpio:ff
+
+mem_seqi:80
+
+
+mem_ipc_tx_evt_buff:02 01
+
+
+mem_adc_0v:9f 3e
+mem_adc_3v:cd 4d
+mem_adc_config_flag:04    #01 VINLPM      #02 HVIN      #04 GPIO
+
+
+#attribute list: handle 2bytes, uuid 2bytes, length 1bytes, attribute Nbytes
+mem_le_att_list:
+
+#Primary service: GATT
+01 00 00 28 02 01 18
+#Characteristic: Service changed
+02 00 03 28 01 20
+03 00 05 2a 01 00
+#Client Characteristic Configuration
+04 00 02 29 02 00 00
+
+#Primary Service: GAP
+05 00 00 28 02 00 18 
+#Characteristic: Device Name
+06 00 03 28 01 02 
+07 00 00 2a 
+'BT4.2 Keyboard
+
+#Characteristic: Appearance
+08 00 03 28 01 02 
+09 00 01 2a 02 c1 03 
+#Characteristic: Peripheral Preferred Connection Parameters
+0a 00 03 28 01 02
+0b 00 04 2a 08 06 00 06 00 64 00 2c 01 # interval 6ms, latency 100, timeout 300
+
+#Primary Service: Device Information
+0c 00 00 28 02 0a 18 
+#Characteristic: pnp id
+0d 00 03 28 01 02
+0e 00 50 2a 07 02 8a 24 66 82 01 00
+
+#Primary service: HID
+0f 00 00 28 02 12 18
+#Characteristic:Protocol mode
+10 00 03 28 01 06
+11 00 4e 2a 01 01
+#Characteristic: hid report
+12 00 03 28 01 12   
+13 00 4d 2a 08 00 00 00 00 00 00 00 00	#hid report	led handle write
+14 00 02 29 02 00 00	
+15 00 08 29 02 01 01	#Report ID: 1	Report Type: Input
+#Characteristic:hid report
+16 00 03 28 01 12   
+17 00 4d 2a 02 00 00 	#hid report	led handle write
+18 00 02 29 02 00 00	
+19 00 08 29 02 02 01	#Report ID: 2	Report Type: Input
+
+#Characteristic:hid report
+1a 00 03 28 01 12  
+1b 00 4d 2a 05 00 00 00 00 00
+1c 00 02 29 02 00 00
+1d 00 08 29 02 03 01	#Report ID: 3	Report Type: Input
+
+#Characteristic:hid report
+1e 00 03 28 01 0e   
+1f 00 4d 2a 02 00	00	#hid report	led handle write
+20 00 02 29 02 00 00	
+21 00 08 29 02 01 02	#Report ID: 1	Report Type: Output
+
+#Characteristic:Report map
+22 00 03 28 01 0a
+23 00 4b 2a a0
+#66
+05 01
+09 06
+a1 01
+85 01
+75 01 
+95 08
+05 07
+19 e0 
+29 e7 
+15 00
+25 01
+81 02
+95 01 
+75 08
+81 03 
+95 05
+75 01
+05 08
+19 01
+29 05  
+91 02 
+95 01  
+75 03  
+91 03
+95 06 
+75 08 
+15 00 
+26 ff 00
+05 07
+19 00
+29 ff 
+81 00
+c0 
+
+#25
+05 0c  		
+09 01  		
+a1 01	
+85 02			
+19 00  		
+2a ff 03 
+15 00 
+26 ff 03		
+95 01  		
+75 10  			
+81 00  		
+c0
+
+#29
+#05 01
+#09 80
+#A1 01
+#85 03
+#15 00
+#25 01
+#75 01
+#95 03
+#19 81
+#29 83
+#81 02
+#95 01
+#75 05
+#81 03
+#C0
+
+#60
+05 01 # Usage Page(Generic Desktop)
+09 02 # Usage(Mouse)
+a1 01 # Collection(Application)
+85 03 # Report ID(3)
+09 01 # Usage(Pointer)
+a1 00 # Collection(Physical)
+05 09 # Usage Page(Buttons)
+19 01 # Usage Minimum(1)
+29 08 # Usage Maximum(8)
+15 00 # Logical Minimum(0)
+25 01 # Logical Maximum(1)
+75 01 # Report Size(1)
+95 08 # Report Count(8)
+81 02 # Input(Data Variable Absolute)
+05 01 # Usage Page(Generic Desktop)
+09 30 # Usage(X)
+09 31 # Usage(Y)
+16 01 80  #Logical Minimum (-32767)
+26 FF 7F #Logical Maximum (32767) 
+75 10 # Report Size(16)
+95 02 # Report Count(2)
+81 06 # Input(Data Variable Relative)
+09 38 # Usage(Wheel)
+15 81 # Logical Minimum(-127)
+25 7f # Logical Maximum(127)
+75 08 # Report Size(8)
+95 01 # Report Count(1)
+81 06 # Input(Data Variable Relative)
+
+05 0c  #USAGE_PAGE(Consumer Devices)
+0a 38 02
+95 01   #REPORT_COUNT (1)	
+81 06  #INPUT (Data,Var,Rel)
+
+c0 # End Collection
+c0 # End Collection
+
+#Characteristic:Hid information
+24 00 03 28 01 02
+25 00 4a 2a 04 11 01 00 01        
+#Characteristic
+26 00 03 28 01 04
+27 00 4c 2a 01 00
+
+#Primary Service: BAS
+28 00 00 28 02 0f 18 
+#Characteristic: Battery Level
+29 00 03 28 01 12 
+2a 00 19 2a 01 64 
+#Client Characteristic Configuration
+2b 00 02 29 02 00 00 
+#End of Attribute list
+00 00
+
+
+mem_le_local_mtu:17
+mem_le_transmit_window:50
+mem_le_notify_handle:14
+mem_le_lap:11 46 34 54 77 dd
+
+
+mem_empty_count:00
+mem_att_report1:13 00
+mem_att_report2:17 00
+mem_att_report3:1b 00
+mem_le_rx_window:50
+
+mem_le_connection_updata_param:
+0c 00 #Length
+05 00 #CID
+12 b4 
+08 00 
+10 00 #min interval
+10 00 #max interval
+00 00 #latency
+2c 01 #timeout
+
+mem_le_name_len:
+'BT4.2 Keyboard
+
+mem_le_adv_channel_map:07 
+mem_le_adv_direct_addr_type:01
+#mem_le_adv_interval_max:00 01
+mem_le_adv_data_len:1f
+mem_le_adv_data:
+#02 01 05 05 02 12 18 0f 18 03 19 c1 03
+02 01 05 03 19 c1 03 03 03 12 18
+'\09BT4.2 Keyboard
+
+mem_le_scan_data_len:1f
+mem_le_scan_data:
+'\09BT4.2 Keyboard
+
+
+#24g init
+mem_24g_mode:01#tx
+mem_24g_data_type:02        #mouse 1,kb 2
+mem_24g_max_retry:4#max tx retry
+mem_24g_no_ack:00#with ack
+mem_24g_rx_window:c0 12     #400us 
+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_pairing_sm:ff
+mem_24g_paring_addr:20 15 10 05
+mem_24g_common_temp:00 00 00 00 00 00 00 00 00 00
+mem_24g_enter_hibernate:00 48 60 00 00 00 00 00#10 minmem_lpm_config:8f 10 ce
+mem_lpm_xtalcnt:00 0a 0b ef 0f
+mem_lpm_hibernate_switch:00
+mem_gpio_wakeup_low:00 00 00 00 00 00 00 00
+mem_fcomp_mul:02
+mem_fcomp_div:24
+mem_iscan_window:12 00
+mem_iscan_interval:00 02
+mem_pscan_window:12 00
+mem_pscan_interval:00 02
+mem_inq_window:20 00
+mem_page_window:20 00
+mem_page_to:00 20
+mem_rx_window_init:80 03
+mem_rx_window_sniff:00 06
+mem_new_supervision_to:00 13
+
+mem_eeprom_base:30 3f
+mem_eeprom_block_size:20
+#pointers to tail space of mem_le_att_list
+4f70:
+07 ff #2M_IF
+0a fb
+0b ff 
+
+#agc table
+1a fb
+1b fb
+1c fb
+1d f6
+1e f2
+1f ee
+20 ea
+21 e6
+22 e2
+23 de
+24 da
+25 d6
+26 d2
+27 ce
+28 ca
+29 c6
+2a c2
+2b bd
+2c b9
+2d b5
+2e b1
+2f ad
+30 a9
+31 80
+32 80
+33 80
+34 c0
+35 c1
+36 c2
+37 c3
+38 c4
+39 c5
+3a c6
+3b c7
+3c 06
+3d 07
+3e 46
+3f 85
+40 86
+41 87
+42 c6
+43 c7
+44 d6
+45 d7
+46 e6
+47 f5
+48 00
+49 f8
+4a 7f
+4e ec
+4f 5e
+
+# tx power
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+#dpll
+68 e4
+69 00
+6a 00
+6b 30
+ff
+mem_rf_init_ptr:70 4f
+
+mem_le_att_list+490:
+mem_5db_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
+mem_24g_paring_tx_power_param:
+55 d0
+56 c0
+57 4c
+58 6c
+59 50
+
Index: YC1026_3mode_SDK_CUSTOMER/patch/sys.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/sys.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/patch/utilities.obj
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/patch/utilities.obj
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/ram.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/ram.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/ram.c	(working copy)
@@ -0,0 +1,8 @@
+
+extern void YC_System_Main(void);
+
+
+void main()
+{
+	YC_System_Main();
+}
Index: YC1026_3mode_SDK_CUSTOMER/sys.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/sys.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/sys.h	(working copy)
@@ -0,0 +1,70 @@
+#ifndef _YC_SYSTEM_H_
+#define _YC_SYSTEM_H_
+#include "common.h"
+
+#define STANDBY_TIMER_30MIN				3600		// 500ms*3600 = 30min
+#define STANDBY_TIMER_10MIN				1200		// 500ms*1200 = 10min
+#define RECONNECT_TIMER_5S				10			// 500ms*10 = 5s
+#define RECONNECT_TIMER_10S			20			// 500ms*20 = 10s
+
+#define BT_PAIRING_TIME_OUT_2MIN		240			// 500ms*240 = 2min
+#define BT_PAIRING_TIME_OUT_1MIN		120			// 500ms*120 = 1min
+#define G24_PAIRING_TIME_OUT_20S		40			// 500ms*40 = 20s
+
+#define KB_NUM_CAPS_LED_ON_TIMER    	12			// 500ms*12 = 6s
+
+#define KB_POWERON_LED_ON_TIMER		30			// 100ms*30 = 3s
+
+
+typedef enum c51_ble_state_enum
+{
+	CHANGE_TO_BLE_DISCONNECT =0,
+	CHANGE_TO_BLE_INDIR_ADV = 1,
+	CHANGE_TO_BLE_DIRECT_ADV,
+	CHANGE_TO_BLE_CONNECTING,
+	CHANGE_TO_BLE_CONNECTED,
+}C51_BLE_STATE;
+
+typedef enum c51_br_state_enum{
+	CHANGE_TO_BR_DISCONNECT =0,
+	CHANGE_TO_BR_DISCOVERY = 1,
+	CHANGE_TO_BR_RECONNECT,
+	CHANGE_TO_BR_CONNECTING,
+	CHANGE_TO_BR_CONNECTED,
+}C51_BR_STATE;
+
+typedef enum c51_24g_state_enum{
+	CHANGE_TO_24G_DISCONNECTED =0,
+	CHANGE_TO_24G_PAIRING= 1,
+	CHANGE_TO_24G_CONNECTING,
+	CHANGE_TO_24G_CONNECTED,
+}C51_24G_STATE;
+
+typedef enum c51_ble_connecting_substate_enum
+{
+	CHANGE_TO_BLE_SUB_NONE=0,
+	CHANGE_TO_BLE_SUB_INIT,
+	CHANGE_TO_BLE_SUB_PINCODE,
+	CHANGE_TO_BLE_SUB_PINCODE_OK,
+}C51_BLE_CONNECTING_SUBSTATE;
+
+typedef enum c51_br_connecting_substate_enum
+{
+	CHANGE_TO_BR_SUB_NONE =0,
+	CHANGE_TO_BR_SUB_INIT,
+	CHANGE_TO_BR_SUB_PINCODE,
+	CHANGE_TO_BR_SUB_PINCODE_OK,
+}C51_BR_CONNECTING_SUBSTATE;
+
+typedef enum c51_24g_connecting_substate_enum
+{
+	CHANGE_TO_24G_SUB_NONE=0,
+	CHANGE_TO_24G_SUB_INIT ,
+}C51_24G_CONNECTING_SUBSTATE;
+
+void System_long_sleep();
+void System_Reset_Connect();
+void YC_adc_init();
+
+
+#endif
Index: YC1026_3mode_SDK_CUSTOMER/sys.c
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/sys.c	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/sys.c	(working copy)
@@ -0,0 +1,815 @@
+#include "sys.h"
+#include "gpio.h"
+#include "kbhid.h"
+#include "ipc.h"
+#include "iic.h"
+#include "keyscan.h"
+#include "global_variable.h"
+#include "kb_process.h"
+
+/////////////////////////////////////////////////////////////////
+static void System_clear_mem()
+{
+	xmemclear((byte *)&g_variable,sizeof(G_VARIABLE_MAP));
+	xmemclear(ksSelMapOld,KB_KSCAN_COL_NUM);
+	xmemclear(ksSelMapCheck,KB_KSCAN_COL_NUM);
+	xmemclear(ksSelMapCurr,KB_KSCAN_COL_NUM);
+	xmemclear(hidBuff,9);
+	xmemclear(multikey,9);
+ 
+	delayChgInvTimer = 0;
+	action_timeout = 0;
+	switch_role_timer = 0;
+
+	iOS_rec_pinCode = 0;
+	pinCode_flag = 0;
+	power_on_flag = 0;
+	repeat_send_24g = 0;
+	get_24g_led_send = 0;
+	ble_reconnect_flag = 0;
+	press_long_time_flag = 0;
+	mult_key_status = 0;
+	long_press_flag = 0;
+	standard_key_release_flag = 0;
+	fn_flag = 0;
+	fn_flag_last = 0;
+	fn_tx_flag = 0;
+	fn_lock_flag = 0;
+
+	mult_key_value = 0;
+	m_caps_num_lock_last = 0; 
+	m_reconnect_continue = 0;
+}
+
+static void System_Hardware_init()
+{
+	KS_Initialize();
+	LED_all_shutdown();
+}
+
+
+void System_Software_init()
+{
+	System_clear_mem();
+	YC_adc_init();
+	g_variable.release_data =1;
+	g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+	g_variable.recon_count = 0;
+	g_variable.test_buff = 0xff;
+}
+
+static void System_Hardware_reset()
+{
+	m_reset_reg = 1;
+	while(1);
+}
+
+void System_long_sleep()
+{ 
+	m_reconnect_continue = 0;
+	IPC_TxControlCmd(IPC_CMD_ENTER_HIBERNATE);
+}
+
+void System_Reset_Connect()
+{
+	System_Hardware_reset();
+}
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+
+
+/////////////////////////////////////////////////////////////////
+static void kb_cb_Hid(byte *p,byte len) {
+	//p[0] is hid type,always is 1(kb) now
+	byte temp = p[1];
+
+	if (len<2) {
+		return;
+	}
+}
+
+static void kb_cb_event(byte evt)
+{
+	switch (evt) 
+	{
+	case IPC_EVT_HIBERNATE_WAKE:
+//		System_Hardware_init();
+//		System_Software_init();
+//		break;	
+	case IPC_EVT_RESET:
+		System_Hardware_init();
+		System_Software_init();
+		IIC_Read(EEPROM_RECON_INFO_BASE_6+2,4 , (byte *)m_24g_addr);
+		Delay1ms(10);
+		IIC_Read(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3, (byte *)bd_key_record_list);
+		Delay1ms(10);
+		IIC_Read(EEPROM_RECON_INFO_LAST_DEVICE ,3 ,(byte *)&g_variable.last_device_num);
+		Delay1ms(10);
+		IIC_Read(EEPROM_RECON_INFO_RAMDON_LE_LAP1 ,2 ,(byte *)&g_variable.ble_ramdon_lap1);
+		if(g_variable.ble_ramdon_lap1 == 0xff && g_variable.ble_ramdon_lap2 == 0xff)
+		{
+			g_variable.ble_ramdon_lap1 = m_adc3vValue;
+			g_variable.ble_ramdon_lap2 = m_adc0vBase;
+			g_variable.update_eeprom_flag = 1;
+		}
+
+		YC_start_reconnect();
+		break;
+	case IPC_EVT_WAKEUP:
+		KS_Initialize();
+		break;
+
+// connection event
+	case IPC_EVT_VIRTUAL_CABLE_UNPLUG:
+	case IPC_EVT_CLEAR_LINKKEY:
+		if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+		{
+			xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+			Delay1ms(200);
+			GPIO_Setout(EEPROM_WP_GPIO,0);
+			IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+			GPIO_Setout(EEPROM_WP_GPIO,1);
+		}
+		break;
+	case IPC_EVT_RECONNECT_STANDY:
+		YC_load_record_list(recon_index);
+		break;		
+		
+// 2.4G event	
+	case IPC_EVT_24G_PAIRING_COMPLETE:
+	case IPC_EVT_24G_ATTEMPT_SUCCESS:
+		g_variable.g24_currentState =  CHANGE_TO_24G_CONNECTED;
+		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+		YC_clear_reconnect_flag();
+		if(!g_variable.powerOn_timer)
+			GPIO_Setout(G24_LED_GPIO,1);
+		g_variable.pairing_g24_timeout = 0;
+		g_variable.release_data = 0;
+		g_variable.last_device_num = 0xfe;
+		g_variable.current_device_num = 0xfe;
+
+		if(evt == IPC_EVT_24G_PAIRING_COMPLETE)
+		{
+			g_variable.powerOn_timer = KB_POWERON_LED_ON_TIMER;
+			g_variable.update_eeprom_flag = 2;
+		}
+		else
+			g_variable.update_eeprom_flag = 1;
+		break;
+	
+	case IPC_EVT_24G_ATTEMPT_FAIL:	
+		g_variable.g24_currentState =  CHANGE_TO_24G_DISCONNECTED;
+		g_variable.g24_currentSubState = CHANGE_TO_24G_SUB_NONE;
+		g_variable.sleepTimer = 0;
+		g_variable.release_data = 1;
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_clear_reconnect_flag();
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+		}
+		break;
+
+
+		
+// BT3.0 event
+	case IPC_EVT_BB_CONNECTED:
+		g_variable.br_currentState = CHANGE_TO_BR_CONNECTING;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_INIT;
+		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		if ((m_ui_state_map & 0x8000) == 0x8000)
+		{
+			switch_role_timer = 50;
+		}
+		break;
+	case IPC_EVT_HID_CONNECTED:
+		g_variable.br_currentState = CHANGE_TO_BR_CONNECTED;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		g_variable.sleepTimer = 0;
+		if(!g_variable.powerOn_timer)
+			LED_device_poweroff();
+		g_variable.pairing_timeout = 0;
+		YC_clear_reconnect_flag();
+		g_variable.release_data = 0;
+		switch_role_timer = 0;
+		kscurrmult = 0x1a;
+		iOS_rec_pinCode = 0;	
+		
+		while (m_remote_addr[0]==0);
+		IPC_TxControlCmd(IPC_CMD_ENTER_SNIFF);
+		YC_clear_BT_same_address_record();
+		g_variable.last_device_num = g_variable.current_device_num;
+		g_variable.update_eeprom_flag = 3;
+		break;
+	case IPC_EVT_SWITCH_FAIL_MASTER:
+		IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+		Delay1ms(10);
+		break;	
+	case IPC_EVT_PINCODE_REQ:
+		ipcPinlen = 0;
+		pinCode_flag = 1;
+		switch_role_timer = 0;
+		if ((m_ui_state_map & 0x8000) == 0x8000)
+		{
+			iOS_rec_pinCode = 1;	
+			ipcPinlen = 4;
+			IPC_TxControlCmd(IPC_CMD_DISCONNECT);
+			return;
+		}
+		g_variable.recon_count = 0;
+		g_variable.br_currentSubState =  CHANGE_TO_BR_SUB_PINCODE;
+		g_variable.br_currentState =CHANGE_TO_BR_CONNECTING;
+		break;	
+	case IPC_EVT_RECONN_PAGE_TIMEOUT:
+	case IPC_EVT_RECONN_FAILED:
+		if (g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+		{
+			g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+			g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+			return;
+		}		
+	case IPC_EVT_BB_DISCONNECTED:
+		g_variable.history_state = g_variable.br_currentState ;
+		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		g_variable.release_data = 1;
+		switch_role_timer = 0;
+		if (iOS_rec_pinCode == 1)
+		{
+			if ((g_variable.current_device_num > 0) && (g_variable.current_device_num < 4))
+			{
+				xmemclear_ff((byte *)&bd_key_record_list[g_variable.current_device_num-1],sizeof(BD_KEY_RECORD));	
+				Delay1ms(200);
+				GPIO_Setout(EEPROM_WP_GPIO,0);
+				IIC_WriteBlock(EEPROM_RECON_INFO_BASE ,sizeof(BD_KEY_RECORD)*3 , (byte *)bd_key_record_list);		
+				GPIO_Setout(EEPROM_WP_GPIO,1);
+			}
+			iOS_rec_pinCode = 0;
+		}
+
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+			break;
+		}
+
+		if (g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+		{
+			return;
+		}
+
+
+		if (evt == IPC_EVT_RECONN_PAGE_TIMEOUT)
+		{
+			break;
+		}
+		
+		if (g_variable.history_state != CHANGE_TO_BR_CONNECTED)
+		{
+			YC_key_action_handle(KEY_DISCOVERY);
+		}
+		else
+		{
+			System_long_sleep();
+		}
+		g_variable.sleepTimer = 0;
+		break;		
+
+// BT 4.2 event
+	case IPC_EVT_LE_CONNECTED:
+		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_INIT;
+		g_variable.br_currentState = CHANGE_TO_BR_DISCONNECT;
+		g_variable.br_currentSubState = CHANGE_TO_BR_SUB_NONE;
+		IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+		IPC_TxControlCmd(IPC_CMD_STOP_DISCOVERY);
+		if(!g_variable.powerOn_timer)
+			LED_device_poweroff();
+		g_variable.pairing_timeout = 0;
+		g_variable.sleepTimer = 0;
+		break;
+	case IPC_EVT_LE_PROTOCOL_CONNECTED:
+	    	g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTED;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		YC_clear_reconnect_flag();
+		g_variable.release_data = 0;
+		m_lpm_mode = 1;
+		g_variable.last_device_num = g_variable.current_device_num;
+		g_variable.update_eeprom_flag = 3;
+		break;
+	case IPC_EVT_LE_ENC_INFO:
+		YC_store_record_list(1, g_variable.current_device_num-1);
+		g_variable.last_device_num = g_variable.current_device_num;
+		g_variable.update_eeprom_flag = 3;
+		break;
+
+	case IPC_EVT_LE_PINCODE_REQ:
+		le_pin_code = 0;
+		le_pin_code_len = 0;
+		pinCode_flag = 1;
+		g_variable.ble_currentSubState =  CHANGE_TO_BLE_SUB_PINCODE;
+		g_variable.ble_currentState = CHANGE_TO_BLE_CONNECTING;
+		break;
+		
+	case IPC_EVT_LE_DISCONNECTED:	
+		g_variable.history_state = g_variable.ble_currentState ;
+		g_variable.ble_currentState = CHANGE_TO_BLE_DISCONNECT;
+		g_variable.ble_currentSubState = CHANGE_TO_BLE_SUB_NONE;
+		g_variable.release_data = 1;
+		
+		if (g_variable.lockLpm == 1)
+		{
+			g_variable.lockLpm =0;
+			System_long_sleep();
+			break;
+		}
+
+		if (g_variable.key_action != KEY_NONE)
+		{
+			YC_key_action_handle(g_variable.key_action);
+			break;
+		}
+
+
+		if (g_variable.recon_count != 0)
+		{
+			YC_load_record_list(recon_index);
+			break;
+		}
+
+		if (g_variable.history_state != CHANGE_TO_BLE_CONNECTED)
+		{
+			//YC_key_action_handle(KEY_DISCOVERY);
+			System_long_sleep();
+		}
+		else
+		{
+			if(m_reconnect_continue)
+				System_long_sleep();
+			else
+				YC_key_action_handle(g_variable.current_device_num);
+		}
+		g_variable.sleepTimer = 0;
+		break;
+	}
+}
+
+
+void LED_timer500ms()
+{
+	if (power_on_flag != 2)
+		return;
+	if (g_variable.pairing_timeout != 0) //bt  pairing
+	{
+		if (g_variable.button_reconnect_flag != 1)
+		{
+			if(g_variable.current_device_num == 1)
+				GPIO_FlipOutBit(BT_LED_GPIO);
+			else if(g_variable.current_device_num == 2)
+				GPIO_FlipOutBit(BT2_LED_GPIO);
+			else if(g_variable.current_device_num == 3)
+			{
+				GPIO_FlipOutBit(BT_LED_GPIO);
+				GPIO_FlipOutBit(G24_LED_GPIO);
+			}
+		}
+		else
+		{
+			GPIO_Setout(BT_LED_GPIO,1);
+			GPIO_Setout(BT2_LED_GPIO,1);
+			GPIO_Setout(G24_LED_GPIO, 1);
+		}
+	}
+	else if (g_variable.pairing_g24_timeout != 0)
+	{
+		GPIO_Setout(BT_LED_GPIO,1);
+		GPIO_Setout(BT2_LED_GPIO,1);
+		GPIO_FlipOutBit(G24_LED_GPIO);
+	}
+	else
+	{
+		
+	}
+
+	
+	if (YC_check_is_connected())
+	{
+		if(g_variable.sys_numlockled_on_timer)
+		{
+			g_variable.sys_numlockled_on_timer--;
+			GPIO_Setout(NUM_LOCK_LED_GPIO, 0);
+			if(!g_variable.sys_numlockled_on_timer)
+				GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+		}
+		else 
+			GPIO_Setout(NUM_LOCK_LED_GPIO, 1);
+
+		if(g_variable.sys_capslockled_on_timer)
+		{
+			g_variable.sys_capslockled_on_timer--;
+			GPIO_Setout(CAPS_LED_GPIO, 0);
+			if(!g_variable.sys_capslockled_on_timer)
+				GPIO_Setout(CAPS_LED_GPIO, 1);
+		}
+		else
+			GPIO_Setout(CAPS_LED_GPIO, 1);
+	}	
+}
+
+void YC_connect_timeout_500ms()
+{
+	
+//system long sleep timer
+	if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED ||
+		g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+	{
+		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN) 
+		{
+			YC_disconnect_all_link();
+			g_variable.lockLpm = 1;
+		}
+	}
+	else if(g_variable.g24_currentState == CHANGE_TO_24G_CONNECTED)
+	{
+		if (g_variable.sleepTimer == STANDBY_TIMER_30MIN)
+			System_long_sleep();
+	}
+	else if(g_variable.g24_currentState == CHANGE_TO_24G_PAIRING)
+	{
+		if (g_variable.sleepTimer == G24_PAIRING_TIME_OUT_20S)
+		{
+			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+			System_long_sleep();
+		}
+	}
+	else
+	{
+		if (g_variable.sleepTimer == RECONNECT_TIMER_10S)
+		{
+			if(ble_reconnect_flag)
+			{
+				ble_reconnect_flag = 0;
+				IPC_TxControlCmd(IPC_CMD_STOP_ADV);
+			}
+			System_long_sleep();
+		}
+	}
+}
+
+
+void YC_wait_disconnect_timer500ms()
+{
+//before discovery/adv,if current state is connected,wait disconnect done
+	if (action_timeout!=0)
+	{
+		action_timeout--;
+		if(action_timeout == 0)
+		{
+			if(g_variable.key_action == KEY_DISCOVERY
+		#if DEVICE_MODE_BT_ONLY
+			&& (m_ui_state_map & 0x4000) != 0x4000)
+		#elif DEVICE_MODE_BLE_ONLY	
+			&& (m_ui_state_map & 0x0008) != 0x0008)
+		#else	
+			&& (m_ui_state_map & 0x4008) != 0x4008)
+		#endif
+			{
+				m_lpm_mode = 0;
+				g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+				g_variable.pairing_g24_timeout = 0;
+			#if DEVICE_MODE_BT_ONLY
+				IPC_TxControlCmd(IPC_CMD_START_DISCOVERY);
+			#elif DEVICE_MODE_BLE_ONLY	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV);
+			#else	
+				YC_get_ble_ramdon_lap();
+				IPC_TxControlCmd(IPC_CMD_START_ADV_DISCOVERY);
+			#endif
+				g_variable.key_action = KEY_NONE;
+			}
+		}
+	}
+
+}
+
+
+void YC_pairing_timerout_500ms()
+{
+//pairing timer
+	if (g_variable.pairing_timeout != 0)
+	{
+		g_variable.sleepTimer = 0;
+		g_variable.pairing_timeout--;
+		if (g_variable.pairing_timeout == 0)
+		{
+			g_variable.current_device_num = g_variable.temp_device_num;
+			g_variable.last_device_num = g_variable.current_device_num;
+		
+			YC_key_action_handle(KEY_STOP_DISCOVERY);
+			System_long_sleep();
+		}
+	}
+
+	if (g_variable.pairing_g24_timeout != 0)
+	{
+		g_variable.sleepTimer = 0;
+		g_variable.pairing_g24_timeout--;
+		if (g_variable.pairing_g24_timeout == 0)
+		{
+			IPC_TxControlCmd(IPC_CMD_STOP_24G);
+			Delay1ms(10);
+			System_long_sleep();
+		}
+	}
+}
+
+void kb_button_press_timer500ms()
+{
+	
+//key status 
+	if (g_variable.button_flag & KEY_FLAG_BTKEY_PRESS)		//press BT key
+	{
+		if (g_variable.button_timer[0] < 250)
+			g_variable.button_timer[0]++;
+		if (g_variable.button_timer[0] == 2)
+		{
+			YC_key_action_handle(KEY_DISCOVERY);
+		}
+	}
+	else
+		g_variable.button_timer[0] = 0;
+		
+	
+	if (g_variable.button_flag & KEY_FLAG_SAME_KEY_PRESS)
+	{
+		if (g_variable.button_timer[1] < 250)
+			g_variable.button_timer[1]++;
+		if (g_variable.button_timer[1] == 180)			// 500ms*180*3 = 4min30s
+		{
+			press_long_time_flag++;
+			if(press_long_time_flag <= 2)
+			{
+				g_variable.button_timer[1] = 0;
+			}
+			else if(press_long_time_flag == 3)
+			{
+				long_press_flag = 1;
+				g_variable.button_timer[1] = 0;
+				System_long_sleep();
+			}
+		}
+	}
+	else
+		press_long_time_flag = 0;
+		
+	if (g_variable.button_flag & KEY_FLAG_FN_24G_DEVICE_BUTTON)		// G24 pairing
+	{
+		g_variable.delay_enter_lpm_timer = 10;
+		if (g_variable.button_timer[2] < 250)
+			g_variable.button_timer[2]++;
+		if (g_variable.button_timer[2] == 6)
+		{
+			if( !g_variable.current_device_num || (g_variable.current_device_num == 0xfe))
+			{
+				YC_disconnect_all_link();
+				Delay1ms(10);
+				YC_key_action_handle(KEY_PAIRING_24G);
+			}
+		}
+	}
+	else
+		g_variable.button_timer[2] = 0;
+	
+	if (g_variable.button_flag & KEY_FLAG_FN_DEVICE_BUTTON)
+	{
+		g_variable.delay_enter_lpm_timer = 10;
+		if (g_variable.button_timer[3] < 250)
+			g_variable.button_timer[3]++;
+		if (g_variable.button_timer[3] == 6)
+		{
+			//do discoverable
+			g_variable.pairing_timeout = BT_PAIRING_TIME_OUT_2MIN;
+			g_variable.pairing_g24_timeout = 0;
+			YC_key_action_handle(KEY_DISCOVERY);
+			LED_all_shutdown();
+			g_variable.button_reconnect_flag = 0;
+			g_variable.release_data = 1;
+			g_variable.temp_device_num = g_variable.last_device_num;
+			g_variable.last_device_num = g_variable.current_device_num;
+		}
+	}
+	else
+	{
+		if (g_variable.button_reconnect_flag)
+		{
+			g_variable.button_reconnect_flag = 0;
+
+			if(g_variable.last_device_num !=g_variable.current_device_num)		//switch device,
+			{
+				g_variable.release_data = 1;
+				LED_all_shutdown();
+				g_variable.last_device_num = g_variable.current_device_num;
+				g_variable.update_eeprom_flag = 1;
+				
+				YC_disconnect_all_link();
+				YC_update_eeprom_data();
+				System_Reset_Connect();
+			}
+		}
+		g_variable.button_timer[3] = 0;
+	}
+
+
+}
+
+
+
+static void kb_cb_Timer500ms()
+{
+	LED_timer500ms();	
+
+	g_variable.sleepTimer++;
+
+	YC_adc_check_timer500ms();
+	YC_connect_timeout_500ms();
+	kb_button_press_timer500ms();
+	YC_wait_disconnect_timer500ms();
+	YC_pairing_timerout_500ms();
+	
+	
+	if((g_variable.br_currentSubState ==  CHANGE_TO_BR_SUB_PINCODE)
+	|| (g_variable.ble_currentSubState ==  CHANGE_TO_BLE_SUB_PINCODE))
+	{
+		g_variable.sleepTimer = 0;				//wait macOS enter pincode
+	}
+	
+	return;
+}
+
+
+static void kb_cb_Timer100ms()
+{
+
+	if (g_variable.delay_enter_lpm_timer) 
+	{
+		g_variable.delay_enter_lpm_timer --;
+	}
+
+	if(g_variable.recon_delay)
+		g_variable.recon_delay--;
+
+	if (g_variable.powerOn_timer != 0)
+	{	
+		g_variable.powerOn_timer--;
+		LED_device_poweron();
+		if (!g_variable.powerOn_timer)
+		{
+			LED_device_poweroff();
+		}
+	}
+	else
+	if (g_variable.pairing_timeout == 0) //bt  pairing
+	{
+		if(g_variable.battery_low_led_flash_interval)
+		{
+			g_variable.battery_low_led_flash_interval--;
+			if(g_variable.battery_low_led_flash_interval & 0x02)
+			{
+				GPIO_Setout(LOWPOWER_LED_GPIO, 0);
+			}
+			else
+				GPIO_Setout(LOWPOWER_LED_GPIO, 1);	
+			if(!g_variable.battery_low_led_flash_interval)
+				g_variable.battery_low_led_flash_interval = LOW_BATTERY_FLASH_INTERVAL;
+		}
+	}
+	
+// The dongle must receive data within 200ms, otherwise it will be forced to lift
+	if(!long_press_flag)
+	{
+		if (repeat_send_24g == 1)
+		{
+			repeat_send_24g = 0;
+
+			 if (multikey[0] != 0)
+			{
+				IPC_TxHidData(multikey, 3);
+			}
+			else if (hidBuff[0] != 0)
+			{
+
+				IPC_TxHidData(hidBuff,9);
+			}
+		}
+	}
+
+//role switch time out
+	if (switch_role_timer != 0)
+	{
+		switch_role_timer--; 
+		if (switch_role_timer == 0)
+		{
+			System_Reset_Connect();
+		}
+	}
+
+	if (delayChgInvTimer != 0){
+		delayChgInvTimer--;
+		if (delayChgInvTimer == 0){
+		
+			if (g_variable.ble_currentState == CHANGE_TO_BLE_CONNECTED)
+			{
+				kscurrmult = 0x0c;
+			}
+			else if (g_variable.br_currentState == CHANGE_TO_BR_CONNECTED)
+			{
+				kscurrmult = 0x3a;
+			}
+		}
+	}
+}
+
+
+
+static tIPCControlBlock cb = 
+{
+	kb_cb_event,
+	NULL,
+	kb_cb_Timer500ms,
+	kb_cb_Timer100ms,
+	NULL,
+	kb_cb_Hid
+};
+
+static void kb_cb_init()
+{
+	IPC_Initialize(&cb);
+}
+/////////////////////////////////////////////////////////////////
+
+/////////////////////////////////////////////////////////////////
+void YC_System_Main(void)
+{
+	kb_cb_init();
+	while(1) {
+		IPC_DealSingleStep();
+		kb_need_keyscan();
+		YC_update_eeprom_data();
+		LED_handle();
+		
+		switch (current_task) {
+		case FIX_ENTER_HIBERNATE:
+			KS_Unistall();
+			//GPIO_SetWakeupByCurrentState(BT_BUTTON_GPIO);
+			LED_all_shutdown();
+			IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+			while(1);
+			break;
+			
+		case FIX_ENTER_LPM:
+			if (g_variable.delay_enter_lpm_timer ||g_variable.lockLpm ||g_variable.powerOn_timer ||g_variable.battery_low_led_flash_interval ||
+			g_variable.sys_capslockled_on_timer ||g_variable.sys_numlockled_on_timer || g_variable.sys_scrolllockled_on_timer) 
+			{
+				IPC_AbandonLpm();
+				break;
+			}
+			else
+			{
+				KS_Unistall();
+				IPC_WaitLpm();	/*<wait enter lpm,do nothing*/
+				break;
+			}
+		}
+	}
+}
+
Index: YC1026_3mode_SDK_CUSTOMER/type.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/type.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/type.h	(working copy)
@@ -0,0 +1,25 @@
+#ifndef _YC_DEFINE_H_
+#define _YC_DEFINE_H_
+
+#define PUBLIC 
+#define LOCAL static
+
+typedef unsigned char byte;
+typedef unsigned char idata ibyte;
+typedef volatile unsigned char xdata xbyte;
+typedef volatile unsigned short xdata xword;
+typedef unsigned char xdata * pxbyte;
+typedef unsigned char xdata * data pxdbyte;
+typedef unsigned   short   word;
+typedef unsigned   long    ulong;
+typedef signed     long    s32_t;
+typedef bit bool;
+
+#define true 1
+#define false 0
+#ifndef NULL
+#define NULL (0)
+#endif
+
+#endif
+
Index: YC1026_3mode_SDK_CUSTOMER/util/crc16.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/util/crc16.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/util/crc16.pl
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/util/crc16.pl	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/util/crc16.pl	(working copy)
@@ -0,0 +1,27 @@
+$debug = 0;
+$crc = 0xffff;
+$i = 0;
+$offset = 0xffff;
+$source_file = $ARGV[0];
+$offset = $ARGV[1];
+
+open(EEP,"$source_file") or die $!;
+
+while (<EEP>) {    
+	$c = hex();
+
+  if($i >= $offset){
+  	if($debug){printf "%02x\t", $c;}
+  	$crc  = ($crc >> 8) | ($crc << 8);
+		$crc ^= $c & 0xff;
+		$crc ^= ($crc & 0xff) >> 4;
+		$crc ^= $crc << 12;
+		$crc ^= ($crc & 0xff) << 5;
+		$crc &= 0xffff;
+  }
+  $i ++;
+  if($debug){printf "%02x\t", $crc;}
+  printf "%02x\n", $c;
+}
+
+printf "%02x\n%02x\n", (($crc >> 8) & 0xff),($crc & 0xff);
Index: YC1026_3mode_SDK_CUSTOMER/util/eeprom2bin.pl
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/util/eeprom2bin.pl	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/util/eeprom2bin.pl	(working copy)
@@ -0,0 +1,15 @@
+
+$source_file = $ARGV[0];
+#$dest_file = $ARGV[1];
+
+
+open(EEP,"$source_file") or die $!;
+open(BINFILE, ">eeprom.bin") or die $!;
+binmode(BINFILE);
+while (<EEP>) {
+	printf BINFILE "%c", hex();
+}
+close(EEP);
+close(BINFILE);
+    
+   
Index: YC1026_3mode_SDK_CUSTOMER/util/eeprom2fulleeprom.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/util/eeprom2fulleeprom.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/util/eeprom2fulleeprom.pl
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/util/eeprom2fulleeprom.pl	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/util/eeprom2fulleeprom.pl	(working copy)
@@ -0,0 +1,18 @@
+
+
+
+$source_file = $ARGV[0];
+$eeprom_size = $ARGV[1];
+
+open(EEP,"$source_file") or die("cannot open files");
+for ($i = 1 ;$i<=$eeprom_size*128-2;$i++)
+{
+
+    while (<EEP>) { 
+        $c = hex();
+        printf "%02x\n", $c;
+        $i++;
+    }
+
+	printf "FF\n";
+}
Index: YC1026_3mode_SDK_CUSTOMER/util/hex2mif.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/util/hex2mif.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/util/hex2mif.pl
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/util/hex2mif.pl	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/util/hex2mif.pl	(working copy)
@@ -0,0 +1,103 @@
+#!/usr/bin/perl
+# 2005 - David Grant.
+# Take an ihex input from STDIN, and write a .mif file to STDOUT
+# This script could probably be implemented with something like:
+#    $#!@_%^$@%$@%$_!^$@#^@%$#@_%$@^&!%$_!%!%&$*(#^#@%^) 
+# But I perfer the somewhat readable version.
+
+# Flow from within the Nios2 SDK Shell:
+# nios2-elf-as file.asm -o file.o
+# nios2-elf-objcopy file.o --target ihex file.hex
+# cat file.hex | perl hex2mif.pl > file.mif
+
+my @rom = ();
+my @ram = ();
+
+sub conv {
+	my ($in) = @_;
+	$out = substr($in,6,2).substr($in,4,2).substr($in,2,2).substr($in,0,2);
+	return hex $out;
+}
+
+sub writeromfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		printf ("%02x\n", $buf[$x]);
+	}
+}
+
+sub writebinfile {
+	my (@buf) = @_;
+	my($x);
+
+	for($x=0; $x<@buf; $x++) {
+		for($y=0;$y<8;$y++) {
+			printf ("%d", $buf[$x] & 1<<(7-$y) ? 1 : 0);
+		}
+		printf "\n" if(($x & 3) == 3);
+	}
+}
+
+sub writemiffile {
+	my (@buf) = @_;
+	my($x);
+	print  ("WIDTH=8;\n");
+	print ("DEPTH=".@buf.";\n");
+	print ("CONTENT BEGIN\n");
+	for($x=0; $x<@buf; $x++) {
+		printf ("\t%04x : %02x;\n", $x, $buf[$x]);
+	}
+	print ("END;\n");
+}
+
+if($ARGV[0] eq "ram" || $ARGV[0] eq "rammif")
+{
+	$org = 0x8000;
+	$limit = 0xffff;
+} elsif($ARGV[0] eq "rom" || $ARGV[0] eq "bin" || $ARGV[0] eq "mif" || $ARGV[0] eq "rommif" ) {
+	$org = 0;
+	$limit = 0x7fff;
+} else {
+	$org = 0;
+	$limit = 0xffffff;
+}
+
+
+$org = 0;
+$limit = 0x7fff;
+
+while (<STDIN>) {
+	$l = $_;
+	next if(!/\w/);
+	$count = (hex substr($l, 1, 2));
+	$addr = (hex substr($l, 3, 4));
+	$type = (hex substr($l, 7, 2));
+	last if $type eq 1;
+	if($type == 4) {
+		$org = -(hex substr($l, 9, 4))*0x10000;
+	}
+	if($addr >= $org && $addr <= $limit) 
+	{
+		$addr*=4 if($ARGV[0] eq "bin");
+		$addr -= $org;
+		for($x=0; $x<$count; $x++) {
+			$rom[$addr + $x] = (hex substr($l, 9+2*$x, 2)) ; 
+		}
+	}
+}
+
+if($ARGV[0] eq "rom" || $ARGV[0] eq "ram" || $ARGV[0] eq "mem")
+{
+	writeromfile(@rom);
+}
+elsif($ARGV[0] eq "bin")
+{
+	writebinfile(@rom);
+}
+else
+{
+	writemiffile(@rom);
+}
+
Index: YC1026_3mode_SDK_CUSTOMER/util/transform_name2addr.exe
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: YC1026_3mode_SDK_CUSTOMER/util/transform_name2addr.exe
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Index: YC1026_3mode_SDK_CUSTOMER/util/transform_name2addr.pl
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/util/transform_name2addr.pl	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/util/transform_name2addr.pl	(working copy)
@@ -0,0 +1,103 @@
+$Sched_path=$ARGV[0];
+$Sched_test_path=$ARGV[1];
+$Memmap_path=$ARGV[2];
+open(Sched,$Sched_path)||die("Cannot open files\n");
+@sched=<Sched>;
+close(Sched);
+open(Sched_test,">$Sched_test_path");
+print Sched_test ("");
+close(Sched_test);
+open(Sched_test,">$Sched_test_path");
+open(Memmap,$Memmap_path)||die("Cannot open files\n");
+@memmap=<Memmap>;
+close(Memmap);
+$type_add=0;
+$type_exchange=0;
+foreach $sched(@sched)
+{
+	$sched_begin = $sched;
+	@Sched = split(/[#]+/, $sched);
+	$sched = @Sched[0];
+	@Sched[0] = "";
+	if($sched =~ /mem[\w]+/)
+	{
+		@memmap_name = split(/[\W]+/, $sched);
+		foreach $memmap_name(@memmap_name)
+		{
+			if($memmap_name =~ /mem[\w]+/)
+			{
+				$Memmap_name=$memmap_name;
+				$type_add = 0;
+				$type_exchange = 0;
+				if($sched =~ /$Memmap_name[+]/)
+				{
+					$type_add = 1;#修改的类型第一种，加
+					@ADD_Num=split(/[^0-9\+xa-fA-F]/,$sched);
+					foreach $ADD_Num(@ADD_Num)
+					{
+						if($ADD_Num =~ /\+/)
+						{
+							if($ADD_Num =~ /0x/)
+							{
+								@add_num = split(/\+0x/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = "0x".$add_num1;
+								$add_num = hex($add_num1);
+							}
+							else
+							{
+								@add_num = split(/\+/,$ADD_Num);
+								$add_num1 =@add_num[1];
+								$add_num_begin = $add_num1;
+								$add_num = int($add_num1);
+							}
+						}#$add_num是匹配出的需要加的数值，字符串形式
+					}
+				}
+				if($sched =~ /[:] *\t*$Memmap_name/)
+				{
+					$type_exchange = 1;#修改的类型第二种，高低位交换
+				}
+				foreach $memmap(@memmap)
+				{
+					if($memmap =~ /$Memmap_name/ && $memmap !~ /$Memmap_name[\w]+/)
+					{
+						@Memmap=split(/[ \t\n]/,$memmap);
+						$memmap_address=@Memmap[0];
+						$memmap_address =~ s/0x//;
+						if($type_add==1)
+						{
+							$memmap_address_D = hex($memmap_address);
+							$memmap_address_D = $memmap_address_D+$add_num;
+							$memmap_address_H = sprintf("%x", $memmap_address_D);
+							$memmap_address = $memmap_address_H;
+							$memmap_address_add_finish = $memmap_address;
+							$sched_begin =~ s/$Memmap_name\+$add_num_begin/$memmap_address/;
+						}
+						if($type_exchange==1)
+						{
+							$memmap_address_High = substr($memmap_address,0,2);
+							$memmap_address_Low = substr($memmap_address,2,2);
+							$memmap_address = $memmap_address_Low." ".$memmap_address_High;
+							if($type_add==0)
+							{
+								$sched_begin =~ s/$Memmap_name/$memmap_address/;
+							}
+							else
+							{
+								$sched_begin =~ s/$memmap_address_add_finish/$memmap_address/;
+							}
+						}
+					}
+				}
+				$sched_begin =~ s/$Memmap_name/$memmap_address/;
+			}
+		}
+		printf Sched_test ("%s",$sched_begin);
+	}
+	else
+	{
+		printf Sched_test ("%s",$sched_begin);
+	}	
+}
+close(Sched_test);
Index: YC1026_3mode_SDK_CUSTOMER/utilities.h
===================================================================
--- /YC1026/YC1026_3mode_SDK_CUSTOMER/utilities.h	(nonexistent)
+++ /YC1026/YC1026_3mode_SDK_CUSTOMER/utilities.h	(working copy)
@@ -0,0 +1,24 @@
+#ifndef _YC_UTILITIES_H_
+#define _YC_UTILITIES_H_
+#include "common.h"
+
+#define MAX(a,b) ((a)>(b)?(a):(b))
+
+/*==============Set a breakpoint function
+no input:
+no output
+====================*/
+void YC_Ice_break();
+
+void dmemcpy(byte *dest, byte* src, word len) ;
+
+void xmemcpy(pxbyte dest, byte* src, byte len);
+
+void Delay1ms(byte Time);
+
+void YC_DelayNOP(byte num);
+
+void xmemclear(byte *dest, word len);
+void xmemclear_ff(byte *dest, word len);
+byte compare_str(byte * str1,byte * str2,byte len);
+#endif
