01.02.00release

This commit is contained in:
sunbeam0529 2025-04-30 14:07:36 +08:00
parent 0126396b8e
commit 2ff30e9e7d
16 changed files with 4483 additions and 17115 deletions

File diff suppressed because one or more lines are too long

View File

@ -1,20 +1,88 @@
QualityReport
2025年1月10日 11:04:40
2025年4月30日 14:01:30
------ Start build(ECU_APP, DefaultBuild) ------
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe user\appTask.c -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BGG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english
user\appTask.c(144):W0520550:Variable "temp_N_state" was set but never used
user\appTask.c(146):W0520177:Variable "db_pos" was declared but never referenced
user\appTask.c(50):W0520177:Variable "err_counter" was declared but never referenced
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe DataFlash\r_pfdl.c rscan_driver\RL78_RCAN.c rscan_driver\r_rl78_can_drv.c rscan_driver\r_rl78_can_irq.c r_systeminit.c r_main.c r_cg_wdt_user.c r_cg_wdt.c r_cg_timer_user.c r_cg_timer.c r_cg_port_user.c r_cg_port.c r_cg_cgc_user.c r_cg_cgc.c r_cg_adc_user.c r_cg_adc.c sys\VectorTable.c CanNw\CanNw.c CanNw\CanNwConfig.c diagnose\Dcm_App.c diagnose\Dcm_App_Cfg.c diagnose\Dcm_Cfg.c diagnose\Dcm_DID.c diagnose\Dcm_DID_Cfg.c diagnose\Dcm_Key.c diagnose\extern.c diagnose\CanIf\CanIf.c diagnose\CanIf\CanIf_Cfg.c diagnose\CanTp\CanTp_Cfg.c diagnose\CanTrcv\CanTrcv.c diagnose\CanTrcv\CanTrcv_Cfg.c diagnose\DTC\DCM_DTC.c diagnose\Dcm.c diagnose\CanTp\CanTp.c user\appTask.c user\can_user.c user\hwCtrl.c user\CRC.c -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BGG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english
DataFlash\r_pfdl.c(107):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(137):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(162):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(166):W0520940:Missing return statement at end of non-void function "WriteDataflash"
DataFlash\r_pfdl.c(248):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(254):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(262):W0520188:Enumerated type mixed with another type
DataFlash\r_pfdl.c(292):W0520513:A value of type "uint32_t __near" cannot be assigned to an entity of type "volatile uint8_t *"
rscan_driver\r_rl78_can_drv.c(846):W0523076:Function declarations should have prototype
r_cg_timer_user.c(142):W0520167:Argument of type "uint16_t __near *" is incompatible with parameter of type "unsigned int *__near"
diagnose\Dcm_App.c(296):W0520549:Variable "DcmResetDelay" is used before its value is set
diagnose\Dcm_App.c(320):W0520177:Variable "ResetDelayCnt" was declared but never referenced
diagnose\Dcm_App.c(470):W0520177:Variable "ResetDelayCnt" was declared but never referenced
diagnose\Dcm_App.c(899):W0520549:Variable "LeDcm_u_Result" is used before its value is set
diagnose\Dcm_App.c(966):W0520549:Variable "LeDcm_u_Result" is used before its value is set
diagnose\Dcm_App.c(917):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced
diagnose\Dcm_App.c(1281):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Start"
diagnose\Dcm_App.c(1285):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Stop"
diagnose\Dcm_App.c(1289):W0520940:Missing return statement at end of non-void function "MngDcm_RoutineF001Result"
diagnose\Dcm_App.c(1559):W0520177:Variable "temp" was declared but never referenced
diagnose\Dcm_App.c(1906):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set
diagnose\Dcm_App.c(1840):W0520177:Variable "LeDcm_u_dataFomatldentifier" was declared but never referenced
diagnose\Dcm_App.c(1841):W0520177:Variable "LeDcm_u_addressAndLengthFomatldentifier" was declared but never referenced
diagnose\Dcm_App.c(1842):W0520177:Variable "LeDcm_w_Address" was declared but never referenced
diagnose\Dcm_App.c(1843):W0520177:Variable "LeDcm_w_DataLength" was declared but never referenced
diagnose\Dcm_App.c(1844):W0520177:Variable "LeDcm_u_SidIndex" was declared but never referenced
diagnose\Dcm_App.c(1845):W0520177:Variable "LeDcm_u_SecurityAccessCheckResult" was declared but never referenced
diagnose\Dcm_App.c(1846):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced
diagnose\Dcm_App.c(2010):W0520549:Variable "LeDcm_u_FinallyResult" is used before its value is set
diagnose\Dcm_App.c(1926):W0520177:Variable "LeDcm_w_SingleTransmitDataCount" was declared but never referenced
diagnose\Dcm_App.c(1927):W0520177:Variable "LeDcm_u_BlockSequenceCount" was declared but never referenced
diagnose\Dcm_App.c(1928):W0520177:Variable "LeDcm_u_BlockExpect" was declared but never referenced
diagnose\Dcm_App.c(1929):W0520177:Variable "LaDcm_u_TempBuffer" was declared but never referenced
diagnose\Dcm_App.c(60):W0520177:Variable "CeDcm_w_SecurityAccessFBLMask" was declared but never referenced
diagnose\Dcm_App.c(63):W0520177:Variable "SeDcm_w_DownLoadDataLength" was declared but never referenced
diagnose\Dcm_App.c(64):W0520177:Variable "SeDcm_w_TransmitDataCount" was declared but never referenced
diagnose\Dcm_App.c(65):W0520177:Variable "SeDcm_u_BlockSequenceCountSts" was declared but never referenced
diagnose\Dcm_App.c(66):W0520177:Variable "CaDcm_w_SingleAllowDateLength" was declared but never referenced
diagnose\Dcm_App.c(71):W0520177:Variable "SeDcm_u_RidF001Sts" was declared but never referenced
diagnose\Dcm_Cfg.c(83):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc"
diagnose\Dcm_Cfg.c(84):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc"
diagnose\Dcm_Cfg.c(87):W0520144:A value of type "uint8 (__far *)(void)" cannot be used to initialize an entity of type "SubDealfunc"
diagnose\Dcm_Cfg.c(1157):W0520940:Missing return statement at end of non-void function "MngDcm_ReadMemoryDataService"
diagnose\Dcm_Cfg.c(1179):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near"
diagnose\Dcm_Cfg.c(1199):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near"
diagnose\Dcm_Cfg.c(1240):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near"
diagnose\Dcm_Cfg.c(1259):W0520167:Argument of type "const TsDcm_h_WithParaSubCheckType __near *" is incompatible with parameter of type "const TsDcm_h_SubCheckType __far *__near"
diagnose\Dcm_Cfg.c(1294):W0520177:Variable "i" was declared but never referenced
diagnose\Dcm_Cfg.c(1304):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced
diagnose\Dcm_Cfg.c(1597):W0520177:Variable "LeDcm_u_DLCheckResult" was declared but never referenced
diagnose\Dcm_Cfg.c(1603):W0520177:Variable "LeDcm_u_CollectDataPost" was declared but never referenced
diagnose\Dcm_Cfg.c(509):W0520177:Function "MngDcm_2AReadDidCheckDL" was declared but never referenced
diagnose\Dcm_Cfg.c(551):W0520177:Function "MngDcm_IoDidCheckDL" was declared but never referenced
diagnose\Dcm_Key.c(76):W0520177:Variable "key_test" was declared but never referenced
diagnose\Dcm_Key.c(108):W0520940:Missing return statement at end of non-void function "GENERIC_ALGORITHM"
diagnose\CanIf\CanIf.c(299):W0520550:Variable "temp" was set but never used
diagnose\CanIf\CanIf.c(389):W0520188:Enumerated type mixed with another type
diagnose\CanIf\CanIf.c(20):W0520550:Variable "TsCanIf_h_TxQueue" was set but never used
diagnose\CanIf\CanIf_Cfg.c(33):W0520009:Nested comment is not allowed
diagnose\CanIf\CanIf_Cfg.c(43):W0520009:Nested comment is not allowed
diagnose\DTC\DCM_DTC.c(111):W0520167:Argument of type "uint32 __near *" is incompatible with parameter of type "unsigned char *__near"
diagnose\DTC\DCM_DTC.c(175):W0520167:Argument of type "uint8 __near (*)[2]" is incompatible with parameter of type "unsigned char *__near"
diagnose\DTC\DCM_DTC.c(166):W0520177:Variable "DtcSnapshotRecord" was declared but never referenced
diagnose\DTC\DCM_DTC.c(780):W0520167:Argument of type "uint8 __near (*)[28]" is incompatible with parameter of type "unsigned char *__near"
diagnose\DTC\DCM_DTC.c(97):W0520177:Function "ChkDiagVolt" was declared but never referenced
diagnose\DTC\DCM_DTC.c(107):W0520177:Function "GetLastSnapshotRecordNum" was declared but never referenced
diagnose\Dcm.c(69):W0520550:Variable "LeDcm_u_FinallyResult" was set but never used
diagnose\CanTp\CanTp.c(192):W0520069:Integer conversion resulted in truncation
diagnose\CanTp\CanTp.c(786):W0520188:Enumerated type mixed with another type
user\appTask.c(48):W0520177:Variable "err_counter" was declared but never referenced
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe cstart.asm stkinit.asm -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BGG.DVF" -g -c -msg_lang=english
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\ECU_APP.clnk
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
RAMDATA SECTION: 00000c05 Byte(s)
ROMDATA SECTION: 0000070b Byte(s)
PROGRAM SECTION: 000051ef Byte(s)
RAMDATA SECTION: 00000bed Byte(s)
ROMDATA SECTION: 000006fd Byte(s)
PROGRAM SECTION: 00004f0a Byte(s)
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
Renesas Optimizing Linker Completed
------ Build ended(Error:0, Warning:6)(ECU_APP, DefaultBuild) ------
------ Build ended(Error:0, Warning:73)(ECU_APP, DefaultBuild) ------
--- CommandFile 1 ---
DefaultBuild\ECU_APP.clnk :
@ -99,9 +167,9 @@ DefaultBuild\ECU_APP.clnk :
--- SHA1 hash value of output files ---
F:\work\LYFJDB\CODE\ECU_APP\DefaultBuild\ECU_APP.abs: cc53249e33d6458da0efc871a10621d03500b2f4
F:\work\LYFJDB\CODE\ECU_APP\OutPut\ECU_APP.mot: d9de1f1afffee0fbf874fc382ede3f8e81da256e
F:\work\LYFJDB\CODE\ECU_APP\output\ECU_APP.S19: d8313dc3f1c674c89b706d292e90ed7c002dd27e
F:\work\LYFJDB\CODE\ECU_APP\DefaultBuild\ECU_APP.abs: 39d7816aba54d3989156da3d1181342037f89597
F:\work\LYFJDB\CODE\ECU_APP\OutPut\ECU_APP.mot: e2a242b0357e2b2dc263694970a8e5309c73fe42
F:\work\LYFJDB\CODE\ECU_APP\output\ECU_APP.S19: 9a5c84ca377ddc2cb9ec22dd7b25bd5e860cc5bd
--- System Information ---
@ -129,13 +197,13 @@ F:\work\LYFJDB\CODE\ECU_APP\output\ECU_APP.S19: d8313dc3f1c674c89b706d292e90ed7c
C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage
*Private Working Set
210 MB
178 MB
*Number of GDI Objects
2126
2116
*Number of USER Objects
1181
1184
*Opened Files
6 editors, 6 files, 71 KB
6 editors, 6 files, 61 KB
--- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in

View File

@ -28,10 +28,10 @@ __far const unsigned char SW_VERSION[]={
'1' , //AC_SW_VERSION_01
'.' , //AC_SW_VERSION_02
'0' , //AC_SW_VERSION_03
'1' , //AC_SW_VERSION_04
'2' , //AC_SW_VERSION_04
'.' , //AC_SW_VERSION_05
'0' , //AC_SW_VERSION_06
'7' , //AC_SW_VERSION_07
'0' , //AC_SW_VERSION_07
' ' , //AC_SW_VERSION_08
' ' , //AC_SW_VERSION_09
' ' , //AC_SW_VERSION_10

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -80,7 +80,7 @@ void main(void)
{
//FlgTemp = 1;
C0CTRH &= ~0x0300; // 设置正常模式
TransmitCAN_Message(CANTP_RESP_CANID,8,KamData.RspData); //诊断信息发<EFBFBD><EFBFBD>?
TransmitCAN_Message(CANTP_RESP_CANID,8,KamData.RspData); //诊断信息发
}
value_init();
while (1U)
@ -107,7 +107,7 @@ void R_MAIN_UserInit(void)
InitCanTp_Parameter();
CAN_Pin_init();
CAN_TX_MESSAGE_INIT();
CanNwInit();//重要相关顺序说明CanNwInit(); 必须在CanUserInit(); 前面初始<EFBFBD><EFBFBD>?否则CAN接收不到报文
CanNwInit();//重要相关顺序说明CanNwInit(); 必须在CanUserInit(); 前面初始化,否则CAN接收不到报文
R_TAU0_Channel0_Start();
CAN_STB = 0;
CanUserInit();

View File

@ -94,7 +94,7 @@ void __near RSCAN_INTCANGRECC_interrupt(void)
ucNwNetIdelCheck = 1; //网络空闲检测 300ms如果没有置位 默认为空闲
}
if (RxCanMessage.IDL == 0x0189)
if (RxCanMessage.IDL == 0x0165)
{
if (App28sTxRxStatus & 0x02 != 0) // Rx enable
{

View File

@ -21,9 +21,10 @@
typedef enum
{
SIGID_SW_LOCK_IN,
SIGID_SW_L_IN,
SIGID_SW_P_IN,
SIGID_SW_RE2,
SIGID_SW_ShiftGaresPlus,
SIGID_SW_ShiftGaresMinus,
SIG_NUM,
}SIGID_type;

View File

@ -40,33 +40,23 @@ unsigned char BusoffFlag;
uint16_t VehicleSpeedRaw,VehicleSpeed;
uint8_t nouse;//Relocation value is odd number
uint8_t lock_state,lkey_state,Pkey_state,re2key_state;
#define LOCK_STATE_LOCKED 0
#define LOCK_STATE_UNLOCKED 1
static uint8_t g_lh_state,g_fnr_state;
uint8_t g_f_op,g_n_op,g_r_op;
static uint8_t PowerUpDetect_flag;
static uint8_t PowerUp_FNR_Error_flag,OperationFault_flag;
uint8_t unlock_state,Pkey_state,ShiftGearsPlus_state,ShiftGearsMinus_state;
static uint8_t g_fnr_state;
static uint8_t err_counter;
static uint8_t P_light_rcv;
#define FNR_ERROR_HL_POS 0
#define FNR_ERROR_F_POS 1
#define FNR_ERROR_N_POS 2
#define FNR_ERROR_R_POS 3
#define FNR_ERROR_P_POS 4
void IND_task(void);
void HD_task(void);
void PowerUpDetect(void);
void P_light_task(void);
void Apply_task(void)
{
// DiagnosticSession_Present=MngDcm_GetDiagnosticSession();
// DiagnosticSession_Present=MngDcm_GetDiagnosticSession();
if(CAN_STB == 0 && ucBusOffModeState == 0)//Tx enable
{
@ -93,10 +83,6 @@ void Apply_task(void)
{
Timer_5ms_flag = 0;
CAN_RX_Data_Handle();
if (PowerUpDetect_flag == 1)
{
HD_task();
}
// IGN_Detect();
@ -108,11 +94,7 @@ void Apply_task(void)
Timer_10ms_flag = 0;
KeyPro();
Can_Msg_Change();
if (PowerUpDetect_flag == 0)
{
PowerUpDetect();
}
P_light_task();
}
if (Timer_20ms_flag == 1)
{
@ -131,315 +113,43 @@ void Apply_task(void)
}
extern uint8 txbuf1[8];
void HD_F_CTRL(void)
{
}
//200MS
#define HD_DEBOUNCE 40
void HD_task(void)//5ms
{
uint16_t adval[3] = {0};
static uint8_t toN_step=0,temp_N_state,wait_N_release,wait_N_release_count;
static uint16_t fnr_counter[3] = {0},OperationFault_counter[3] = {0};
uint8_t db_pos = 0;
if (lkey_state == 1)
{
lkey_state = 0;
if (g_lh_state == LH_STATE_L)
{
g_lh_state = LH_STATE_H;
}
else
{
g_lh_state = LH_STATE_L;
}
}
adval[FNR_STATE_F] = getAdval(ADCH_HALL_F);
adval[FNR_STATE_N] = getAdval(ADCH_HALL_N);
adval[FNR_STATE_R] = getAdval(ADCH_HALL_R);
switch (g_fnr_state)
{
case FNR_STATE_N:
toN_step = 0;
temp_N_state = 0;
if (adval[FNR_STATE_N] < 20 && adval[FNR_STATE_F] > 1000 && adval[FNR_STATE_R]>1000)
{
if (wait_N_release == 1)
{
wait_N_release_count++;
if (wait_N_release_count > 40)
{
wait_N_release_count = 0;
wait_N_release = 0;
}
}
}
else
{
wait_N_release_count = 0;
}
if (wait_N_release == 1)
{
break;
}
if (adval[FNR_STATE_F] < 20 && adval[FNR_STATE_N] > 1000 && g_f_op == 0 && OperationFault_flag == 0)
{
fnr_counter[FNR_STATE_F]++;
if (fnr_counter[FNR_STATE_F] > HD_DEBOUNCE)
{
fnr_counter[FNR_STATE_F] = HD_DEBOUNCE;
if (lock_state == LOCK_STATE_LOCKED)
{
g_f_op = 1;
}
else
{
g_fnr_state = FNR_STATE_F;
}
}
}
else
{
fnr_counter[FNR_STATE_F] = 0;
}
if (adval[FNR_STATE_R] < 20 && adval[FNR_STATE_N] > 1000 && g_f_op == 0 && OperationFault_flag == 0)
{
fnr_counter[FNR_STATE_R]++;
if (fnr_counter[FNR_STATE_R] > HD_DEBOUNCE)
{
fnr_counter[FNR_STATE_R] = HD_DEBOUNCE;
if (lock_state == LOCK_STATE_LOCKED)
{
g_r_op = 1;
}
else
{
g_fnr_state = FNR_STATE_R;
}
}
}
else
{
fnr_counter[FNR_STATE_R] = 0;
}
if (adval[FNR_STATE_N] < 20 && adval[FNR_STATE_F] > 1000 && adval[FNR_STATE_R] > 1000)
{
g_f_op = 0;
g_r_op = 0;
OperationFault_flag = 0;
}
if (adval[FNR_STATE_N] < 20 && adval[FNR_STATE_F] < 20)
{
OperationFault_counter[FNR_STATE_F]++;
if (OperationFault_counter[FNR_STATE_F] > HD_DEBOUNCE)
{
OperationFault_counter[FNR_STATE_F] = HD_DEBOUNCE;
OperationFault_flag |= 1<<FNR_ERROR_F_POS;
}
}
else
{
OperationFault_counter[FNR_STATE_F] = 0;
//OperationFault_flag &= ~(1<<FNR_ERROR_F_POS);
}
if (adval[FNR_STATE_N] < 20 && adval[FNR_STATE_R] < 20)
{
OperationFault_counter[FNR_STATE_R]++;
if (OperationFault_counter[FNR_STATE_R] > HD_DEBOUNCE)
{
OperationFault_counter[FNR_STATE_R] = HD_DEBOUNCE;
OperationFault_flag |= 1<<FNR_ERROR_R_POS;
}
}
else
{
OperationFault_counter[FNR_STATE_R] = 0;
}
break;
case FNR_STATE_F:
case FNR_STATE_R:
/*
if (adval[FNR_STATE_N] < 20 && adval[FNR_STATE_F] > 1000 && adval[FNR_STATE_R] > 1000 && lock_state == LOCK_STATE_UNLOCKED)
{
fnr_counter[FNR_STATE_N]++;
if (fnr_counter[FNR_STATE_N] > HD_DEBOUNCE)
{
temp_N_state = 1;
}
}
else
{
fnr_counter[FNR_STATE_N] = 0;
temp_N_state = 0;
}*/
switch (toN_step)
{
case 0:
if (lock_state == LOCK_STATE_UNLOCKED && adval[FNR_STATE_N] < 20)
{
toN_step = 1;
temp_N_state = 0;
wait_N_release = 0;
}
if (lock_state == LOCK_STATE_LOCKED && g_fnr_state == FNR_STATE_F && adval[FNR_STATE_R] < 20)
{
g_n_op = 1;
}
else if (lock_state == LOCK_STATE_LOCKED && g_fnr_state == FNR_STATE_R && adval[FNR_STATE_F] < 20)
{
g_n_op = 1;
}
else
{
g_n_op = 0;
}
break;
case 1:
if(g_fnr_state == FNR_STATE_F)
{
if(adval[FNR_STATE_R] < 20)
{
g_fnr_state = FNR_STATE_N;
wait_N_release = 1;
}
}
else if(g_fnr_state == FNR_STATE_R)
{
if(adval[FNR_STATE_F] < 20)
{
g_fnr_state = FNR_STATE_N;
wait_N_release = 1;
}
}
if (lock_state == LOCK_STATE_LOCKED)
{
toN_step = 0;
}
break;
default:
break;
}
break;
default:
g_fnr_state = FNR_STATE_N;
break;
}
txbuf1[0] = adval[FNR_STATE_F]<50?0:1;
txbuf1[1] = adval[FNR_STATE_N]<50?0:1;
txbuf1[2] = adval[FNR_STATE_R]<50?0:1;
}
void PowerUpDetect(void)//10ms
{
static uint8_t count=0,powerupdelay=0;
uint16_t adval = 0;
uint8_t errbit = 0;
if (powerupdelay < 50)
{
powerupdelay++;
return;
}
PowerUp_FNR_Error_flag = 0;
//errbit = GetIOState(SIGID_SW_L_IN);
//PowerUp_FNR_Error_flag |= errbit<<FNR_ERROR_HL_POS;
errbit = GetIOState(SIGID_SW_P_IN);
PowerUp_FNR_Error_flag |= errbit<<FNR_ERROR_P_POS;
adval = getAdval(ADCH_HALL_F);
errbit = adval<50?1:0;
PowerUp_FNR_Error_flag |= errbit<<FNR_ERROR_F_POS;
adval = getAdval(ADCH_HALL_N);
errbit = adval<50?0:1;
PowerUp_FNR_Error_flag |= errbit<<FNR_ERROR_N_POS;
adval = getAdval(ADCH_HALL_R);
errbit = adval<50?1:0;
PowerUp_FNR_Error_flag |= errbit<<FNR_ERROR_R_POS;
if (PowerUp_FNR_Error_flag == 0)
{
count++;
if (count>=5)
{
PowerUpDetect_flag = 1;
count = 0;
}
}
else
{
count = 0;
}
}
void P_light_task(void)
{
static uint8_t counter;
switch (P_light_rcv)
{
case 0:
case 1:
case 2:
P_light_Ctrl(P_light_rcv);
counter=0;
break;
case 3:
counter++;
if (counter<11)
{
P_light_Ctrl(P_LIGHT_RED);
}
else if (counter<23)
{
P_light_Ctrl(P_LIGHT_YELLOE);
}
else
{
counter = 0;
}
break;
default:
counter=0;
P_light_Ctrl(0);
break;
}
}
void IND_task(void)
{
static uint8_t counter=0;
uint8_t duty[IND_NUM] = {0,0,0,0,3};
switch (g_fnr_state)
{
case FNR_P:
duty[IND_P] = 10;
break;
case FNR_N:
duty[IND_N] = 10;
break;
case FNR_R:
duty[IND_R] = 10;
break;
case FNR_1:
duty[IND_F] = 5;
break;
case FNR_2:
duty[IND_F] = 7;
break;
case FNR_3:
duty[IND_F] = 10;
break;
default:
break;
}
IND_Ctrl(IND_P,counter<duty[IND_P]?1:0);
IND_Ctrl(IND_F,counter<duty[IND_F]?1:0);
IND_Ctrl(IND_N,counter<duty[IND_N]?1:0);
IND_Ctrl(IND_R,counter<duty[IND_R]?1:0);
if (counter < 7)
{
IND_Ctrl(g_fnr_state);
}
else
{
IND_Ctrl(FNR_ALL_LIGHT);
}
counter++;
if (counter > 9)
{
@ -452,61 +162,19 @@ void IND_task(void)
void KeyPro(void)
{
//按下
if (getKeyPressFlag(SIGID_SW_LOCK_IN) == KEY_PRESSED)
{
lock_state = LOCK_STATE_UNLOCKED;
}
if (getKeyPressFlag(SIGID_SW_L_IN) == KEY_PRESSED)
{
lkey_state = 1;
}
if (getKeyPressFlag(SIGID_SW_RE2) == KEY_PRESSED)
{
re2key_state = !re2key_state;
RE2LED_CTRL(re2key_state);
}
//释放
if (getKeyReleaseFlag(SIGID_SW_LOCK_IN) == KEY_PRESSED)
{
lock_state = LOCK_STATE_LOCKED;
}
if (getKeyReleaseFlag(SIGID_SW_L_IN) == KEY_PRESSED)
{
lkey_state = 0;
}
Pkey_state = GetKeyState(SIGID_SW_P_IN);
unlock_state = GetKeyState(SIGID_SW_LOCK_IN);
ShiftGearsPlus_state = GetKeyState(SIGID_SW_ShiftGaresPlus);
ShiftGearsMinus_state = GetKeyState(SIGID_SW_ShiftGaresMinus);
}
void Can_Msg_Change(void)
{
//CAN_45A.Msg_Part.SCM_PsngrSeatBeltWarnSts = sbrWarnState;
CAN_188.Msg_Part.SL_Fswitch = (g_fnr_state == FNR_STATE_F)?1:0;
CAN_188.Msg_Part.SL_Hswitch = 0;//(g_lh_state == LH_STATE_H)?1:0;
CAN_188.Msg_Part.SL_Lswitch = 0;//(g_lh_state == LH_STATE_L)?1:0;
CAN_188.Msg_Part.SL_Nswitch = (g_fnr_state == FNR_STATE_N)?1:0;
CAN_188.Msg_Part.SL_Rswitch = (g_fnr_state == FNR_STATE_R)?1:0;
CAN_188.Msg_Part.switch1 = Pkey_state;
CAN_188.Msg_Part.switch2 = re2key_state;
CAN_188.Msg_Part.Reserve_1 = 0;
CAN_188.Msg_Part.F_OP = g_f_op;
CAN_188.Msg_Part.N_OP = g_n_op;
CAN_188.Msg_Part.R_OP = g_r_op;
CAN_188.Msg_Part.err1 = 0;//20240815delete
CAN_188.Msg_Part.err2 = PowerUp_FNR_Error_flag&(1<<FNR_ERROR_F_POS)?1:0;
CAN_188.Msg_Part.err3 = PowerUp_FNR_Error_flag&(1<<FNR_ERROR_N_POS)?1:0;
CAN_188.Msg_Part.err4 = PowerUp_FNR_Error_flag&(1<<FNR_ERROR_R_POS)?1:0;
CAN_188.Msg_Part.err5 = OperationFault_flag&(1<<FNR_ERROR_F_POS)?1:0;
CAN_188.Msg_Part.err6 = 0;
CAN_188.Msg_Part.err7 = OperationFault_flag&(1<<FNR_ERROR_R_POS)?1:0;
CAN_188.Msg_Part.err8 = PowerUp_FNR_Error_flag&(1<<FNR_ERROR_P_POS)?1:0;
CAN_188.Msg_Part.CRC = CRC_Calc_Table(CAN_188.Msg_Byte,7);
CAN_188.Msg_Part.SL_Pswitch = Pkey_state;
CAN_188.Msg_Part.UnlockSwitchState = unlock_state;
CAN_188.Msg_Part.ShiftGearsPlus = ShiftGearsPlus_state;
CAN_188.Msg_Part.ShiftGearsMinus = ShiftGearsMinus_state;
}
void EEL_READ(void)
{
@ -733,16 +401,13 @@ void value_init(void)
CAN_LostCount = 500;
BusOff_Detect_delay_count = 2000;
ucIgnStus = IGN_OFF;
lock_state = LOCK_STATE_LOCKED;
lkey_state = 0;
g_fnr_state = FNR_STATE_N;
g_lh_state = LH_STATE_H;
PowerUpDetect_flag = 0;
P_light_rcv = 0;
g_fnr_state = 0;
}
void CAN_RX_Data_Handle(void)
{
P_light_rcv = CAN_189.Msg_Part.P_light;
g_fnr_state = CAN_189.Msg_Part.Current_GearSignal;
}

View File

@ -14,12 +14,13 @@ typedef union{
unsigned char SL_Fswitch:1;
unsigned char SL_Nswitch:1;
unsigned char SL_Rswitch:1;
unsigned char switch1:1;
unsigned char switch2:1;
unsigned char Reserve_1:1;
unsigned char SL_Pswitch:1;
unsigned char ShiftGearsPlus:1;
unsigned char ShiftGearsMinus:1;
//byte 1 8
unsigned char Reserve_2:8;
unsigned char UnlockSwitchState:1;
unsigned char Reserve_2:7;
//byte 2 16
unsigned char err1:1;//HorL_SwitchFault 20240815delete
@ -53,11 +54,13 @@ typedef union{
unsigned char Msg_Byte[4];
struct{
//byte 0 0
unsigned char P_light:2;
unsigned char Reserve_0:6;
unsigned char Current_GearSignal:4;
unsigned char Parking_Request:1;
unsigned char ShiftOperationError:1;
unsigned char Reserve_0:2;
//byte 1-7
unsigned char Reserve_1;
unsigned char FaultCode;
unsigned char Reserve_2;
unsigned char Reserve_3;
unsigned char Reserve_4;

View File

@ -59,6 +59,7 @@ void KeyScan(void)
{
uint8_t i,key,key_nopress;
key_nopress = 0;
for (i = 0; i < SIG_NUM; i++)
{
key = GetIOState(i);
@ -95,26 +96,7 @@ void KeyScan(void)
}
void P_light_Ctrl(uint8_t state)
{
switch (state)
{
case P_LIGHT_NONE:
O_IND5_CTRL = 0;
O_IND1_CTRL = 0;
break;
case P_LIGHT_RED:
O_IND5_CTRL = 1;
O_IND1_CTRL = 0;
break;
case P_LIGHT_YELLOE:
O_IND5_CTRL = 0;
O_IND1_CTRL = 1;
break;
default:
break;
}
}
uint8_t GetIOState(uint8_t keyno)
@ -124,12 +106,12 @@ uint8_t GetIOState(uint8_t keyno)
//KEY
case SIGID_SW_LOCK_IN:
return I_SW_LOCK_IN==0?1:0;
case SIGID_SW_L_IN:
return I_SW_L_IN==0?1:0;
case SIGID_SW_P_IN:
return I_SW_RE1==0?1:0;
case SIGID_SW_RE2:
return I_SW_RE2==0?1:0;
return I_SW_L_IN==0?1:0;
case SIGID_SW_ShiftGaresPlus:
return (getAdval(ADCH_HALL_F)<20 && getAdval(ADCH_HALL_N)>1000)?1:0;
case SIGID_SW_ShiftGaresMinus:
return (getAdval(ADCH_HALL_R)<20 && getAdval(ADCH_HALL_N)>1000)?1:0;
default:
return 0;
}
@ -145,60 +127,33 @@ uint8_t GetKeyState(uint8_t keyno)
}
void IND_Ctrl(uint8_t fnr_state)
void IND_Ctrl(IND_Type ind,uint8_t state)
{
//O_IND_CTRL = 1;
switch (fnr_state)
switch (ind)
{
case FNR_STATE_F:
O_IND2_CTRL = 1;
O_IND3_CTRL = 0;
O_IND4_CTRL = 0;
case IND_P:
O_IND1_CTRL = state?1:0;
case IND_F:
O_IND2_CTRL = state?1:0;
break;
case FNR_STATE_N:
O_IND2_CTRL = 0;
O_IND3_CTRL = 1;
O_IND4_CTRL = 0;
case IND_N:
O_IND3_CTRL = state?1:0;
break;
case FNR_STATE_R:
O_IND2_CTRL = 0;
O_IND3_CTRL = 0;
O_IND4_CTRL = 1;
case IND_R:
O_IND4_CTRL = state?1:0;
break;
case FNR_ALL_LIGHT:
O_IND2_CTRL = 1;
O_IND3_CTRL = 1;
O_IND4_CTRL = 1;
case IND_ALL_LIGHT:
O_IND1_CTRL = state?1:0;
O_IND2_CTRL = state?1:0;
O_IND3_CTRL = state?1:0;
O_IND4_CTRL = state?1:0;
break;
default:
break;
}
}
void RE1LED_CTRL(uint8_t state)
{
if (state == 0)
{
O_IND5_CTRL = 0;
}
else
{
O_IND5_CTRL = 1;
}
}
void RE2LED_CTRL(uint8_t state)
{
if (state == 0)
{
O_IND6_CTRL = 0;
}
else
{
O_IND6_CTRL = 1;
}
}
uint16_t getAdval(ADCH_type ch)

View File

@ -9,12 +9,29 @@
#define KEY_PRESSED 1
#define KEY_NOPRESSED 0
#define LH_STATE_L 0
#define LH_STATE_H 1
#define FNR_STATE_N 0
#define FNR_STATE_F 1
#define FNR_STATE_R 2
#define FNR_ALL_LIGHT 3
typedef enum
{
FNR_Invalid,
FNR_1,
FNR_2,
FNR_3,
FNR_N,
FNR_R,
FNR_P,
FNR_NUM,
}FNR_Type;
typedef enum
{
IND_P,
IND_F,
IND_N,
IND_R,
IND_ALL_LIGHT,
IND_NUM,
}IND_Type;
#define P_LIGHT_NONE 0
#define P_LIGHT_RED 1
@ -30,9 +47,8 @@ void ClearKeyState(void);
uint8_t getKeyReleaseFlag(uint8_t id);
uint8_t getKeyPressFlag(uint8_t id);
void getInputStatus(unsigned char* data);
void IND_Ctrl(uint8_t fnr_state);
void P_light_Ctrl(uint8_t state);
void RE1LED_CTRL(uint8_t state);
void RE2LED_CTRL(uint8_t state);
void IND_Ctrl(IND_Type ind,uint8_t state);
#endif

View File

@ -1325,13 +1325,13 @@
:20A580003880F04810A8D860C87000B8E0582890982050E8B00878C0D86010A8F04838803B
:20A5A000883040F8A01868D078C0B00850E898202890E05800B8C8702098E85008B0C0781B
:20A5C00070C8B80058E09028803848F0A81060D8D06818A0F8403088CBF820FEFC82AE00CE
:20A5E0003684E53004F1EF04CC0000A747DFF93620FE3020FEEF04CC0000A747DFF94100AA
:20A60000327400EF08B3114944F74810E5F643DFF44100320000EF08B31149B8F74820FE80
:20A62000F643DFF4FC87AE00F6EFFED730F401BF6AF032C2F0E1FCEDAC00AFC2F04441079E
:20A64000DD0544DF07DF2C44DF07DF1240CBF03EDF0C40CCF080DF06FCFDBE00EF0F128FED
:20A66000C9F0314A7034CAF0F1FC00E000E5B1E5E5A9E5AFC2F0120CFC448000DE0DE5A7D7
:20A68000E5E15FCBF09FB0E5E5A9E513448901DF12365BE531850C540832CAF0309AF0EC3B
:20A6A00031F400D7D7D7345803A9085CEF08B9D700D761FCE592E5EC5FAF00D7ECBFF600CB
:20A5E0003676E530EEF0EF04CC0000A747DFF93620FE3020FEEF04CC0000A747DFF94100CF
:20A60000326600EF08B31149E4F44810E5F643DFF44100320000EF08B311494AF54820FE61
:20A62000F643DFF4FC87AE00F6EFFED730F401BF5CF032ACF0E1FCEDAC00AFACF0444107D8
:20A64000DD0544DF07DF2C44DF07DF1240B5F03EDF0C40B6F080DF06FCFDBE00EF0F128F19
:20A66000B3F0314A7034B4F0F1FC00E000E5A3E5E59BE5AFACF0120CFC448000DE0DE59943
:20A68000E5E15FB5F09FA2E5E59BE513446501DF12364DE531850C540832B4F03084F0ECCB
:20A6A000BAF100D7D7D7345803A9085CEF08B9D700D761FCE584E5EC5FAF00D7EC5FF400B5
:20A6C000C116F645DD094900009BA3A7B5EFF3C0D7FF7100900016BF04088C019F0108E52B
:20A6E0000308F2FCF8FF0E62CF800804D716E503088C02088C03BF0408340010CF02080FA6
:20A700008C069F81084C03DD2415080E00081E01BF0008148C04088C05BF06081251004E5B
@ -1340,14 +1340,14 @@
:20A7600016C80300AEF82761D339315E12F643DD27BBBC02BC04BC06BC08BC0ABC0CBC0EC9
:20A78000BC10BC12BC14BC16BC18BC1ABC1CBC1E3704200037B3EFD6AEF847DD06F6BBA7EF
:20A7A000A7EFF5D7C1200A13C30400F0121561D8A104F0FF4400001361F844001061C8EE73
:20A7C000FA008F84E570D1DF29C80A20C80B00AEF8040A00FCD2A600C80808A8000CF0B81D
:20A7E00002A812B806AEF8A1A1FCEDA60073E584E5E090DF49634CFFDF07FC4EA70073EF28
:20A80000F44C1BDF18C80803A8000CF031AEB802AEF8A1A1FCEDA60073CF84E502D1DF1EE4
:20A82000C80804A8000CF0B802A812B806A80CB804AEF8A1A1FCEDA60073CF84E5038F84C6
:20A7C000FA008F76E570D1DF29C80A20C80B00AEF8040A00FCD2A600C80808A8000CF0B82B
:20A7E00002A812B806AEF8A1A1FCEDA60073E576E5E090DF49634CFFDF07FC4EA70073EF36
:20A80000F44C1BDF18C80803A8000CF031AEB802AEF8A1A1FCEDA60073CF76E502D1DF1EF2
:20A82000C80804A8000CF0B802A812B806A80CB804AEF8A1A1FCEDA60073CF76E5038F76E2
:20A84000E54C02DF2F634CFFDF07FC4EA70073EFF4D1DF6BC80804A8000CF0B802A812B81D
:20A8600006A80CB804AEF8A1A1FCEDA60073CF84E50351034C03DF2B634CFFDF07FC4EA70B
:20A880000073EFF4D1DF38C80806A8000CF0B802A812B806AEF8A1A1FCEDA60073CF84E5AC
:20A8A0000451044C04DF1883DF07FC4EA70073EFF6FC54A700F584E55111EF04F584E5E15D
:20A8600006A80CB804AEF8A1A1FCEDA60073CF76E50351034C03DF2B634CFFDF07FC4EA719
:20A880000073EFF4D1DF38C80806A8000CF0B802A812B806AEF8A1A1FCEDA60073CF76E5BA
:20A8A0000451044C04DF1883DF07FC4EA70073EFF6FC54A700F576E55111EF04F576E5E179
:20A8C000100ED7C1200C130400F0B8001561D8A104F0FFF743A80061F844001061C8EE9BB4
:20A8E00000C80A20C80B00AEF8040A00FCD2A600C80808A800B802A812B806AEF8A1A1FCD5
:20A90000EDA6004CFFDF06FC4EA700EFF64C1BDF1BC80803A80031AEB802AEF8A1A1FCED58
@ -1359,10 +1359,10 @@
:20A9C00043DE0FA80616899BA5A717B806A800A1EFEB1008D72006AF2A036071BC30050068
:20A9E000DC19AF2A0360312515342603A9085CFB08B9AA0460312506300400EEDB00AF0877
:20AA0000036031250F340403A9085CFB08B9AA04603123E4340003300204BA22F6BA24A166
:20AA2000B9303A01BA02300500BA30AA8AB804AA8A085CFE08BA8A30A00314BF86E5C8026A
:20AA4000053004A1B800C6C7ABB917A1A116EB86E5ABBA02A8001204040016EB86E5ABBAB4
:20AA6000041304060016EB86E5ABBA061304080016EB86E5ABBA0813040A00EB86E516A8B1
:20AA800000040C00B800ABBA0A300C000286E514BF86E58802919802DFAC340403A804BAB7
:20AA2000B9303A01BA02300500BA30AA8AB804AA8A085CFE08BA8A30A00314BF78E5C80278
:20AA4000053004A1B800C6C7ABB917A1A116EB78E5ABBA02A8001204040016EB78E5ABBAD0
:20AA6000041304060016EB78E5ABBA061304080016EB78E5ABBA0813040A00EB78E516A8DB
:20AA800000040C00B800ABBA0A300C000278E514BF78E58802919802DFAC340403A804BAD3
:20AAA00086300400BA2E300210BA345112BA365004BA4CE6BA4E500EBA76AA226C035C0301
:20AAC000085C0708BA22A951FF085C0708B9AA0204A100BA02FE4103F61006D7AF2A036094
:20AAE000310513342603A9085CFC08B9AA0460718C300400DC26F52C03D540A1DD09343879
@ -1395,19 +1395,19 @@
:20AE4000FE92FBF743DFF9FE92FC440400DDF8FED6FC440400DDF8D7341600CA0000CA0109
:20AE600000CA0400CA0504CA0700FC26B100FC29B100FC07B100FCA3B100FC2DB000F5786D
:20AE800000D7717BFAEFD1FE27004008E5A5DF133406035208A95CFCB93400E5305107FC5E
:20AEA0007DDD00FC0DF300FCFFAE00FC05ED00EFF6FCCCF000FCD8C000FC6AEB00FE230002
:20AEC000FC55F400FC05B200FCC7B000712301FC38AE00FCF6B100FCE2B100FCE7B000715A
:20AEA0007DDD00FCA5F000FCFFAE00FC05ED00EFF6FC64EE00FCD8C000FC6AEB00FE2300D7
:20AEC000FCDEF100FC05B200FCC7B000712301FC38AE00FCF6B100FCE2B100FCE7B00071D4
:20AEE0007AFAD73621FF71837102017192D736E4FF7182710BE0710AEC710AE87183D7CEA4
:20AF0000ABACD71489D161F8D79199D714F7A94361F8D7B1B9D7C5C1C4C58977318E43DF0C
:20AF200014CA0000A80214880870896148DF07CA00001004D7678199EFF8C5C1C4C5A91672
:20AF400043DF17F6B9A80214880870896148DF05CA0000EF0281991004D717A1B9EFF830ED
:20AF60005EE5FEA7FF3093E5FE98FF306AF0FE9BFF30A2E5FE95FF30AEE5FE8FFFA298E5D4
:20AF8000A29AE5AF9CE5F743DD04B1BF9CE5AFA4E543DD04B1BFA4E5AF74F043DD04B1BF58
:20AFA00074F0E60294E512BF94E513340500CEFB030015616861F8E565F013340A00CEFBDF
:20AFC000030015616861F8E566F013341400CEFB030015616861F8E567F013343200CEFB20
:20AFE000030015616861F8E568F01334E803CEFB030015616861F8E569F013448813DC0495
:20B00000F6BF94E5E6025CF0BF5CF0F661D8A1025EF0BF5EF0AF62E5F743DD04B1BF62E5CE
:20B02000D592E561F8D7F592E5E564F0D734F00036F000F67182BAC630FF0ABAC4F6BF2ACF
:20AF600050E5FEA7FF3085E5FE98FF305CF0FE9BFF3094E5FE95FF30A0E5FE8FFFA28AE528
:20AF8000A28CE5AF8EE5F743DD04B1BF8EE5AF96E543DD04B1BF96E5AF66F043DD04B1BFAC
:20AFA00066F0E60286E512BF86E513340500CEFB030015616861F8E557F013340A00CEFB17
:20AFC000030015616861F8E558F013341400CEFB030015616861F8E559F013343200CEFB3C
:20AFE000030015616861F8E55AF01334E803CEFB030015616861F8E55BF013448813DC04B1
:20B00000F6BF86E5E6024EF0BF4EF0F661D8A10250F0BF50F0AF54E5F743DD04B1BF54E530
:20B02000D584E561F8D7F584E5E556F0D734F00036F000F67182BAC630FF0ABAC4F6BF2AF9
:20B0400002714AE6714BE2715AE6715BE2713AE7713BE3716AE6716BE2717AE6717BE271A0
:20B060004AE7714BE3717AE7717BE3710AD4710BD0711AD4711BD0712AD4712BD0714AEE85
:20B08000714AEA715AEE715AEABAA0C918FF7CAAC8085CFE08BAC8AACA085CFE08BACAF631
@ -1422,208 +1422,208 @@
:20B1A0001004D730100004E0001634100071D2CE3000710AE7710BE3710AEF710AEB510300
:20B1C0006F28FF9E2851186F23FF9E23CE3000CE32A0CA0000CA01FFCA0200CE3100710AE0
:20B1E00030D7710BE3710BE7717A30D7717B30710AE7710BE3D7710A30D7710B30D714AD1A
:20B200001E316EB9D7F596E5F6BF98E5BF9AE5BF9EE5BFA2E5304006BF9CE530F401BFA03F
:20B22000E5F5A6E5F5A7E5F5A8E5F597E5F5A9E5F5AAE5F5ABE530D007BFA4E5F5ACE5ECE8
:20B2400019B600D596E5DF3140A7E501DD198D01317514F510E5D511E5DF1E340603A96CB0
:20B2600003B9E511E5EF12F511E5D510E5DF0A340603E510E5A95CFCB940B1E501DF1230CF
:20B280008813BFAEE5F5B1E54096E50861F8E5B2E58F72F032A7E5FEB4029FA6E530A9E553
:20B2A000FEF602739FAAE58F96E5D1DD3191DD7891DD049161E89161F8EEC2009161F8EE6A
:20B2C000DA009161F8EE14019161F8EEDC019161F8EE4F01CF96E507F6BF98E5EF488FA6DB
:20B2E000E572914C02DE2A30D007BFA4E5E596E5304006BF9CE5F6BF98E5BFA2E5CF97E5E8
:20B30000029261F8EEB901CFADE50530F401EEB401F596E593DF64AF98E5448913DC5CF5EB
:20B3200097E5FC38F300EF5340ADE504DC0630F401BFA0E58FA6E57391DD0C40ACE501DD51
:20B3400006AF9CE5EE920093F7EF4643DF2DCF96E505304006BF9CE5F6BF98E530F401BF0E
:20B36000A0E5EEB700AF9CE543DF10CF96E50830F40122A2E5BF98E5E597E5EE770140AD31
:20B38000E504DC0630F401BFA0E5F740A6E501DFD430D007BFA4E5AF9CE5EFAF40B0E50110
:20B3A000DF28F5B0E5CF96E50330D007BFA4E5304006BF9CE5F6BF98E5BFA2E5CF97E502E5
:20B3C00030F401BFA0E5CFADE50540A6E501DD4040ACE501DD3AAFAEE5F7EF8C40B0E50142
:20B3E000DF28F5B0E5CF96E50330D007BFA4E5304006BF9CE5F6BF98E5BFA2E5CF97E502A5
:20B4000030F401BFA0E5CFADE50540A6E501EFC430D007BFA4E5304006BF9CE5CF97E5028C
:20B42000EED2008FA6E54C01DF0D30D007BFA4E5CF96E506EE1BFF4C02DF05E597E5EF3A96
:20B4400040B2E501DF21F5B2E530D007BFA4E5CF96E506304006BF9CE5F6BF98E530F401DC
:20B46000BFA0E5CF97E502AF98E544D107DC0BCF96E507F6BF98E5F597E540B0E501DF481B
:20B48000F5B0E5CF96E50430D007BFA4E5304006BF9CE5F6BF98E5BFA2E5CF97E50230F4E6
:20B4A00001BFA0E5CFADE505EF4B8FA6E572914C02DE1730D007BFA4E5CF96E502EE30FE90
:20B4C000F5ADE55014BFA0E5EF2BAF98E544D107DC2393DF17340603F6BF98E5F597E5F57E
:20B4E00010E5F511E5A96C03B9EE36FE30D007BF98E5F597E5CFC6E53651EE5FC7E5708FCC
:20B50000A6E57391DF046071CA70609FC7E551FB0F96E54C028FC9E5DE04718AEF02718BD8
:20B520009FC9E5634C02D9CAE5DF06CFC8E502EF0B93DF05E5C8E5EF03F5C8E5605C049F2C
:20B54000CAE5540832C6E530BEE5EC31F40077C3C4D5A8E5DF0CE5A8E5F6BF98E5F512E544
:20B56000EF1AAF98E544E903DE048991DF0E8991DFEBCA0000F6BF98E5E512E567D1DF05A5
:20B58000E5ABE5E1D7F14012E501DF0940ABE50161E85102D7F5ABE5D714E60214E5BF1405
:20B200001E316EB9D7F588E5F6BF8AE5BF8CE5BF90E5BF94E5304006BF8EE530F401BF92A1
:20B22000E5F598E5F599E5F59AE5F589E5F59BE5F59CE5F59DE530D007BF96E5F59EE5EC66
:20B2400019B600D588E5DF314099E501DD198D01317514F510E5D511E5DF1E340603A96CCC
:20B2600003B9E511E5EF12F511E5D510E5DF0A340603E510E5A95CFCB940A3E501DF1230DD
:20B280008813BFA0E5F5A3E54088E50861F8E5A4E58F64F03299E5FEB4029F98E5309BE5C3
:20B2A000FEF602739F9CE58F88E5D1DD3191DD7891DD049161E89161F8EEC2009161F8EE86
:20B2C000DA009161F8EE14019161F8EEDC019161F8EE4F01CF88E507F6BF8AE5EF488F9805
:20B2E000E572914C02DE2A30D007BF96E5E588E5304006BF8EE5F6BF8AE5BF94E5CF89E53C
:20B30000029261F8EEB901CF9FE50530F401EEB401F588E593DF64AF8AE5448913DC5CF515
:20B3200089E5FCC1F000EF53409FE504DC0630F401BF92E58F98E57391DD0C409EE501DD11
:20B3400006AF8EE5EE920093F7EF4643DF2DCF88E505304006BF8EE5F6BF8AE530F401BF46
:20B3600092E5EEB700AF8EE543DF10CF88E50830F4012294E5BF8AE5E589E5EE7701409F93
:20B38000E504DC0630F401BF92E5F74098E501DFD430D007BF96E5AF8EE5EFAF40A2E50156
:20B3A000DF28F5A2E5CF88E50330D007BF96E5304006BF8EE5F6BF8AE5BF94E5CF89E50247
:20B3C00030F401BF92E5CF9FE5054098E501DD40409EE501DD3AAFA0E5F7EF8C40A2E50196
:20B3E000DF28F5A2E5CF88E50330D007BF96E5304006BF8EE5F6BF8AE5BF94E5CF89E50207
:20B4000030F401BF92E5CF9FE5054098E501EFC430D007BF96E5304006BF8EE5CF89E502E0
:20B42000EED2008F98E54C01DF0D30D007BF96E5CF88E506EE1BFF4C02DF05E589E5EF3ACE
:20B4400040A4E501DF21F5A4E530D007BF96E5CF88E506304006BF8EE5F6BF8AE530F40130
:20B46000BF92E5CF89E502AF8AE544D107DC0BCF88E507F6BF8AE5F589E540A2E501DF487D
:20B48000F5A2E5CF88E50430D007BF96E5304006BF8EE5F6BF8AE5BF94E5CF89E50230F448
:20B4A00001BF92E5CF9FE505EF4B8F98E572914C02DE1730D007BF96E5CF88E502EE30FED6
:20B4C000F59FE55014BF92E5EF2BAF8AE544D107DC2393DF17340603F6BF8AE5F589E5F5C4
:20B4E00010E5F511E5A96C03B9EE36FE30D007BF8AE5F589E5CFB8E53651EE5FB9E5708F04
:20B5000098E57391DF046071CA70609FB9E551FB0F88E54C028FBBE5DE04718AEF02718B10
:20B520009FBBE5634C02D9BCE5DF06CFBAE502EF0B93DF05E5BAE5EF03F5BAE5605C049F72
:20B54000BCE5540832B8E530B0E5ECBAF10077C3C4D59AE5DF0CE59AE5F6BF8AE5F512E512
:20B56000EF1AAF8AE544E903DE048991DF0E8991DFEBCA0000F6BF8AE5E512E567D1DF05C1
:20B58000E59DE5E1D7F14012E501DF09409DE50161E85102D7F59DE5D714E60214E5BF142F
:20B5A000E5441F00DC2589D1DF178F16E5819F16E54C04DC06CF16E503E1D7F6BF14E5EFF9
:20B5C0000ACA0000F6BF14E5F516E5F1D732360430B6E5FC3AF500CFC6E53651EE5FC7E5D5
:20B5E0009FC7E57108C9E5F5C8E551045FCAE59FCAE5540832C6E530BEE5EC31F400F5CEA6
:20B60000E551EE5FCFE59FCFE57108D1E5F5D0E551045FD2E59FD2E5D7CFB4E50CFEADFF11
:20B62000EFDCF6BFEEE5BFF0E5F5F2E5F17319F3E50083634C03DFF5F5F6E5F17319F7E5D0
:20B640000083634C04DFF5F5FBE5F17319FCE50083634C0ADFF5F506E6F6BF08E6F173199C
:20B660000AE60083634C14DFF53422E63224E63026E6FC31E80091DF1AD526E6E161E85111
:20B6800002EB22E69FF1E5AF24E6BFEEE5899FF0E5E1D7F1D7200414F19800318E312D0397
:20B5C0000ACA0000F6BF14E5F516E5F1D732360430A8E5FCC3F200CFB8E53651EE5FB9E579
:20B5E0009FB9E57108BBE5F5BAE551045FBCE59FBCE5540832B8E530B0E5ECBAF100F5C090
:20B60000E551EE5FC1E59FC1E57108C3E5F5C2E551045FC4E59FC4E5D7CFA6E50CFEADFF73
:20B62000EFDCF6BFE0E5BFE2E5F5E4E5F17319E5E50083634C03DFF5F5E8E5F17319E9E524
:20B640000083634C04DFF5F5EDE5F17319EEE50083634C0ADFF5F5F8E5F6BFFAE5F17319D6
:20B66000FCE50083634C14DFF53414E63216E63018E6FC31E80091DF1AD518E6E161E85158
:20B6800002EB14E69FE3E5AF16E6BFE0E5899FE2E5E1D7F1D7200414F19800318E312D03DD
:20B6A000B802A116894DDF11A78A014DDF0BA802040300168A024DDD0C88008198004C0E66
:20B6C000DCD9C800FF88001004D7C79800C3C4F1735006D6051688004DDD0883634C04DC1E
:20B6E000EF53FF63C2D72006F52AE6402BE60261F8E543E6E52BE6CF2CE604E52DE6E52E42
:20B70000E6CF2FE6038FF2E57031732951400FF0E59800609801AF18E5129802629803AFAF
:20B6E000EF53FF63C2D72006F51CE6401DE60261F8E535E6E51DE6CF1EE604E51FE6E520A4
:20B70000E6CF21E6038FE4E57031732951400FE2E59800609801AF18E5129802629803AFD9
:20B720001AE5129804629805AEF812300600FC60EA00E1EF0AAEF812F6FC60EA00510240C8
:20B7400043E601DF180401001461D8A3134401001561F8448038DCEDCEAB00EFFB1006D7F8
:20B760002006E52AE6308813BF28E6402BE601DF2940F1E502DF0DAEF812F6FC60EA005173
:20B78000021006D7D930E58FF0E5FECC08321EE6300300FC60EA00F1EFE7CF2BE602CF2C43
:20B7A000E604E52DE6E52EE6F52FE6CF0AE5A58FF2E570317334CF08E5A5CF09E507CF009F
:20B7C000E50651400FF0E59F01E5609F02E5AF18E5129F03E5629F04E5AF1AE5129F05E526
:20B7E000629F06E5CF07E555EF0BF508E5AEF812F6FC60EA00CEAB00EFFB2006E52AE630CF
:20B800008813BF28E6402BE604DD0EE52DE6CF2BE604E52EE6CF2FE603CF2CE6048FF2E579
:20B820007031732951400FF0E59800609801AF18E5129802629803AF1AE512980462980515
:20B84000AEF812300600FC60EA00E1EF0AAEF812F6FC60EA0051021006D7C7402BE601DFAE
:20B860002840F1E502DF0CAEF812F6FC60EA005102C2D7D92BE58FF0E5FEDD07321EE63028
:20B880000300FC60EA00F1C2D78FF2E570317331CF08E5A5CF09E503CF00E50251400FF0C3
:20B7400035E601DF180401001461D8A3134401001561F8448038DCEDCEAB00EFFB1006D706
:20B760002006E51CE6308813BF1AE6401DE601DF2940E3E502DF0DAEF812F6FC60EA0051AB
:20B78000021006D7D930E58FE2E5FECC083210E6300300FC60EA00F1EFE7CF1DE602CF1E7B
:20B7A000E604E51FE6E520E6F521E6CF0AE5A58FE4E570317334CF08E5A5CF09E507CF00D7
:20B7C000E50651400FE2E59F01E5609F02E5AF18E5129F03E5629F04E5AF1AE5129F05E534
:20B7E000629F06E5CF07E555EF0BF508E5AEF812F6FC60EA00CEAB00EFFB2006E51CE630DD
:20B800008813BF1AE6401DE604DD0EE51FE6CF1DE604E520E6CF21E603CF1EE6048FE4E5E9
:20B820007031732951400FE2E59800609801AF18E5129802629803AF1AE512980462980523
:20B84000AEF812300600FC60EA00E1EF0AAEF812F6FC60EA0051021006D7C7401DE601DFBC
:20B860002840E3E502DF0CAEF812F6FC60EA005102C2D7D92BE58FE2E5FEDD073210E63052
:20B880000300FC60EA00F1C2D78FE4E570317331CF08E5A5CF09E503CF00E50251400FE2DF
:20B8A000E59F01E5609F02E5CF03E555CF04E555CF05E555CF06E555CF07E555CEAB00EF8A
:20B8C000FBF508E5AEF812F6FC60EA00CEAB00EFFBC1200C8F34E64C05DE4E819F34E64C9B
:20B8E0000571CA9F0EE5DF10301027BF36E6300300BF30E6CF0DE513300400C1AEF8040AC0
:20B9000000B802340F00320018FC80A900C08F34E698088F30E69809300400C1A802340F8A
:20B9200000320018FCA4A700C0AF32E6F743DF04AF36E64361E8EEB2004034E605DF36F572
:20B9400034E6F50EE5300400C1AEF8040A00B802340F005318FC80A900C08F34E698088F17
:20B9600030E69809300400C1A802340F00320018FCA4A700C08FF2E57031736051400FF073
:20B98000E59802609803402CE604DF1DFC48DC00B800BF1CE513BF1EE5129804629805A819
:20B9A00000129806629807EF0CC80400C80500C80600C80700717038E6880D74DB1EE5AF10
:20B9C0001CE5FC3DDD00BF3AE613BF3CE6AEF8A1A112300600FC60EA00E1EF0CAEF8A1A143
:20B9E00012F6FC60EA005102100ED7D92AE58FF0E5FE6506321EE6300300FC60EA00F1EF6D
:20BA0000E73638E6C1200831F30ACF38E604D925E5EEFE00F534E6F50EE5F173318E0222D6
:20BA2000E6A1A1148918F7E583634C04DFEED9F8E58FFAE598008FF7E5423CE6C0C18FF9B6
:20BA4000E561F8423AE6340F00320018DF47F6BF30E6F50DE55004C1AEF8040600B802FC66
:20BA600080A900C08F34E698048F30E69805300400C1A802340F00320018FCA4A700C0889B
:20BA8000094C02DF06CF2CE606EF424C12DF3ECF2CE607EF38E60230E6BF30E66071CA9FBB
:20BAA0000DE5300400C1AEF8040600B802FC80A900C08F34E698048F30E69805300400C1D4
:20BAC000A802340F00320018FCA4A700C0AF30E6F743DF328FF2E57031731C51400FF0E50D
:20BAE0009802609803CF38E604AEF8A1A112E6A1FC60EA00E1EF0CAEF8A1A112F6FC60EAE7
:20BB0000005102100AD7CF38E604440300DE16D928E58FF0E5FE4105321EE6300300FC6062
:20BB2000EA00F1EFDE301027BF32E6D929E5EFE22006403FE601DF448FF2E57031732A51C3
:20BB4000400FF0E59800609801AF08E612609803139802C80404E542E6E53FE6AEF812300A
:20BB60000500FC60EA00E1EF10E542E6E53FE6AEF812F6FC60EA0051021006D7D925E58FDD
:20BB8000F0E5FED404321EE6300300FC60EA00F1EFE78F42E6D7D7D72006D53FE6DF388F82
:20BBA000F2E57031732451400FF0E59800609801AF08E612609803139802C80404AEF81291
:20BBC000300500FC60EA00E1EF0AAEF812F6FC60EA0051021006D7D925E58FF0E5FE79041A
:20BBE000321EE6300300FC60EA00F1EFE72006D540E6DF388FF2E57031732451400FF0E584
:20BC00009800609801AF08E612609803139802C80404AEF812300500FC60EA00E1EF0AAEB1
:20BC2000F812F6FC60EA0051021006D7D925E58FF0E5FE2404321EE6300300FC60EA00F171
:20BC4000EFE72006D541E6DF388FF2E57031732451400FF0E59800609801AF08E61260988A
:20B8C000FBF508E5AEF812F6FC60EA00CEAB00EFFBC1200C8F26E64C05DE4E819F26E64CB7
:20B8E0000571CA9F0EE5DF10301027BF28E6300300BF22E6CF0DE513300400C1AEF8040ADC
:20B9000000B802340F00320018FC80A900C08F26E698088F22E69809300400C1A802340FA6
:20B9200000320018FCA4A700C0AF24E6F743DF04AF28E64361E8EEB2004026E605DF36F59C
:20B9400026E6F50EE5300400C1AEF8040A00B802340F005318FC80A900C08F26E698088F33
:20B9600022E69809300400C1A802340F00320018FCA4A700C08FE4E57031736051400FE29D
:20B98000E59802609803401EE604DF1DFC48DC00B800BF1CE513BF1EE5129804629805A827
:20B9A00000129806629807EF0CC80400C80500C80600C8070071702AE6880D74DB1EE5AF1E
:20B9C0001CE5FC3DDD00BF2CE613BF2EE6AEF8A1A112300600FC60EA00E1EF0CAEF8A1A15F
:20B9E00012F6FC60EA005102100ED7D92AE58FE2E5FE65063210E6300300FC60EA00F1EF89
:20BA0000E7362AE6C1200831F30ACF2AE604D925E5EEFE00F526E6F50EE5F173318E02140E
:20BA2000E6A1A1148918E9E583634C04DFEED9EAE58FECE598008FE9E5422EE6C0C18FEB0A
:20BA4000E561F8422CE6340F00320018DF47F6BF22E6F50DE55004C1AEF8040600B802FC82
:20BA600080A900C08F26E698048F22E69805300400C1A802340F00320018FCA4A700C088B7
:20BA8000094C02DF06CF1EE606EF424C12DF3ECF1EE607EF38E60222E6BF22E66071CA9FF3
:20BAA0000DE5300400C1AEF8040600B802FC80A900C08F26E698048F22E69805300400C1F0
:20BAC000A802340F00320018FCA4A700C0AF22E6F743DF328FE4E57031731C51400FE2E537
:20BAE0009802609803CF2AE604AEF8A1A112E6A1FC60EA00E1EF0CAEF8A1A112F6FC60EAF5
:20BB0000005102100AD7CF2AE604440300DE16D928E58FE2E5FE41053210E6300300FC608C
:20BB2000EA00F1EFDE301027BF24E6D929E5EFE220064031E601DF448FE4E57031732A51ED
:20BB4000400FE2E59800609801AFFAE512609803139802C80404E534E6E531E6AEF8123043
:20BB60000500FC60EA00E1EF10E534E6E531E6AEF812F6FC60EA0051021006D7D925E58FF9
:20BB8000E2E5FED4043210E6300300FC60EA00F1EFE78F34E6D7D7D72006D531E6DF388FBA
:20BBA000E4E57031732451400FE2E59800609801AFFAE512609803139802C80404AEF812BC
:20BBC000300500FC60EA00E1EF0AAEF812F6FC60EA0051021006D7D925E58FE2E5FE790428
:20BBE0003210E6300300FC60EA00F1EFE72006D532E6DF388FE4E57031732451400FE2E5BC
:20BC00009800609801AFFAE512609803139802C80404AEF812300500FC60EA00E1EF0AAEC0
:20BC2000F812F6FC60EA0051021006D7D925E58FE2E5FE24043210E6300300FC60EA00F18D
:20BC4000EFE72006D533E6DF388FE4E57031732451400FE2E59800609801AFFAE5126098C3
:20BC600003139802C80404AEF812300500FC60EA00E1EF0AAEF812F6FC60EA0051021006DA
:20BC8000D7D925E58FF0E5FECF03321EE6300300FC60EA00F1EFE72006403FE601DF388F0E
:20BCA000F2E57031732451400FF0E59800609801AF08E612609803139802C80404AEF81290
:20BCC000300500FC60EA00E1EF0AAEF812F6FC60EA0051021006D7D925E58FF0E5FE79031A
:20BCE000321EE6300300FC60EA00F1EFE720064040E601DF388FF2E57031732451400FF0FC
:20BD0000E59800609801AF08E612609803139802C80404AEF812300500FC60EA00E1EF0A79
:20BD2000AEF812F6FC60EA0051021006D7D925E58FF0E5FE2303321EE6300300FC60EA00B5
:20BD4000F1EFE720064041E601DF388FF2E57031732451400FF0E59800609801AF08E61224
:20BC8000D7D925E58FE2E5FECF033210E6300300FC60EA00F1EFE720064031E601DF388F38
:20BCA000E4E57031732451400FE2E59800609801AFFAE512609803139802C80404AEF812BB
:20BCC000300500FC60EA00E1EF0AAEF812F6FC60EA0051021006D7D925E58FE2E5FE790328
:20BCE0003210E6300300FC60EA00F1EFE720064032E601DF388FE4E57031732451400FE234
:20BD0000E59800609801AFFAE512609803139802C80404AEF812300500FC60EA00E1EF0A88
:20BD2000AEF812F6FC60EA0051021006D7D925E58FE2E5FE23033210E6300300FC60EA00D1
:20BD4000F1EFE720064033E601DF388FE4E57031732451400FE2E59800609801AFFAE5125D
:20BD6000609803139802C80404AEF812300500FC60EA00E1EF0AAEF812F6FC60EA005102F7
:20BD80001006D7D925E58FF0E5FECD02321EE6300300FC60EA00F1EFE7D7D7D7C773402B02
:20BDA000E604DF574C04DE3CD1DD398FF2E57031734F51400FF0E598006098015103612866
:20BDC00070634C03DF06609F2EE6EF049160DF059F2FE6EF039F2EE6AEF812E6A1FC60EAA3
:20BDE00000E1C2D740F1E502DD17D926E58FF0E5FE6602321EE6300300EF0A40F1E502DFB6
:20BE00000CAEF812F6FC60EA005102C2D7D92BE5EFDBC78FF2E57031731C51400FF0E59819
:20BE200000609801F52EE6F52FE6AEF812E6A1FC60EA00E1C2D7F52EE6F52FE6AEF812F636
:20BE4000FC60EA005102C2D7C78FF2E5704C02DF13E52EE6CF2FE603AEF812F6FC60EA00FF
:20BE60005102C2D751400FF0E59800609801E52EE6CF2FE603AEF812E6A1FC60EA00E1C2C8
:20BE8000D7C78FF2E5704C02DF13E52EE6CF2FE603AEF812F6FC60EA005102C2D751400F8E
:20BEA000F0E59800609801E52EE6CF2FE603AEF812E6FC60EA00E1C2D78F2FE6D78F2EE6C0
:20BEC000D751032F2FE6D751032F2EE6D7C7308813BF28E68FF2E57031731651400FF0E54A
:20BD80001006D7D925E58FE2E5FECD023210E6300300FC60EA00F1EFE7D7D7D7C773401D2C
:20BDA000E604DF574C04DE3CD1DD398FE4E57031734F51400FE2E598006098015103612882
:20BDC00070634C03DF06609F20E6EF049160DF059F21E6EF039F20E6AEF812E6A1FC60EACD
:20BDE00000E1C2D740E3E502DD17D926E58FE2E5FE66023210E6300300EF0A40E3E502DFEE
:20BE00000CAEF812F6FC60EA005102C2D7D92BE5EFDBC78FE4E57031731C51400FE2E59835
:20BE200000609801F520E6F521E6AEF812E6A1FC60EA00E1C2D7F520E6F521E6AEF812F66E
:20BE4000FC60EA005102C2D7C78FE4E5704C02DF13E520E6CF21E603AEF812F6FC60EA0029
:20BE60005102C2D751400FE2E59800609801E520E6CF21E603AEF812E6A1FC60EA00E1C2F2
:20BE8000D7C78FE4E5704C02DF13E520E6CF21E603AEF812F6FC60EA005102C2D751400FB8
:20BEA000E2E59800609801E520E6CF21E603AEF812E6FC60EA00E1C2D78F21E6D78F20E606
:20BEC000D751032F21E6D751032F20E6D7C7308813BF1AE68FE4E57031731651400FE2E590
:20BEE0009800609801AEF812E6A1FC60EA00E1C2D7AEF812F6FC60EA005102C2D730881307
:20BF0000BF28E6D7C740F1E502DF06402BE604DF24E52DE6FC9FE1008FF2E570317316510C
:20BF2000400FF0E59800609801AEF812E6A1FC60EA00E1C2D7AEF812F6FC60EA005102C244
:20BF4000D7C740F1E502DF06402BE604DF20F52DE68FF2E57031731651400FF0E5980060ED
:20BF60009801AEF812E6A1FC60EA00E1C2D7AEF812F6FC60EA005102C2D78F2DE6D7D924D3
:20BF8000E58FF0E5FED200321EE6300300FC60EA00F1D7D924E58FF0E5FEBD00321EE630AA
:20BFA0000300FC60EA00F1D7F52AE6E52BE6CF2CE604E52DE6E52EE6CF2FE603D7AF28E624
:20BFC000F74361F8D7B1BF28E6D72006AF32E6F743DD3E04FFFFBF32E6DF36F6BF30E6F5B2
:20BFE0000DE55004C1AEF8040400B802340F005318FC80A900C08F34E698028F30E69803BC
:20C00000300400C1A802340F00320018FCA4A700C0AF36E6F743DD3E04FFFFBF36E6DF36DB
:20C02000F534E6F50EE5300400C1AEF8040400B802340F005318FC80A900C08F34E69802D6
:20C040008F30E69803300400C1A802340F00320018FCA4A700C01006D79F1FE6609F20E6D7
:20C06000CF1EE67FD7C3C12004F0609802880C6140DD238802318E12A804168806318E0363
:20C0800007B8008807318E0305168B73C6C7639B88028170EFD51008D7D7D7C7403EE603E2
:20C0A000DF31AFEEE5E743DF1551400FF0E59800AEF812E6FC60EA00F53EE6F1C2D7D92241
:20C0C000E58FF0E5FE92FF321EE6300300FC60EA00EFE8D925E5EFE92022E52BE6CF2CE62E
:20C0E00004E52DE6E52EE6CF2FE603F6BF32E6BF30E6CF38E6045004C1340F00320018AE81
:20C10000F8A1A1FC80A900C08800729F34E6880173318E14BF30E6624C0761C8F534E66359
:20C120004C05DC05F614BF30E615440300DC06301027BF32E6F53EE6E53FE6E540E6E5411E
:20C14000E6F542E61022D7AF28E6D7308813BF28E6D78F2AE6D78F2BE6D78F2CE6D772F108
:20BF0000BF1AE6D7C740E3E502DF06401DE604DF24E51FE6FC9FE1008FE4E5703173165152
:20BF2000400FE2E59800609801AEF812E6A1FC60EA00E1C2D7AEF812F6FC60EA005102C252
:20BF4000D7C740E3E502DF06401DE604DF20F51FE68FE4E57031731651400FE2E598006033
:20BF60009801AEF812E6A1FC60EA00E1C2D7AEF812F6FC60EA005102C2D78F1FE6D7D924E1
:20BF8000E58FE2E5FED2003210E6300300FC60EA00F1D7D924E58FE2E5FEBD003210E630E2
:20BFA0000300FC60EA00F1D7F51CE6E51DE6CF1EE604E51FE6E520E6CF21E603D7AF1AE686
:20BFC000F74361F8D7B1BF1AE6D72006AF24E6F743DD3E04FFFFBF24E6DF36F6BF22E6F5EA
:20BFE0000DE55004C1AEF8040400B802340F005318FC80A900C08F26E698028F22E69803D8
:20C00000300400C1A802340F00320018FCA4A700C0AF28E6F743DD3E04FFFFBF28E6DF36F7
:20C02000F526E6F50EE5300400C1AEF8040400B802340F005318FC80A900C08F26E69802F2
:20C040008F22E69803300400C1A802340F00320018FCA4A700C01006D79F11E6609F12E601
:20C06000CF10E67FD7C3C12004F0609802880C6140DD238802318E12A804168806318E0371
:20C0800007B8008807318E0305168B73C6C7639B88028170EFD51008D7D7D7C74030E603F0
:20C0A000DF31AFE0E5E743DF1551400FE2E59800AEF812E6FC60EA00F530E6F1C2D7D9226B
:20C0C000E58FE2E5FE92FF3210E6300300FC60EA00EFE8D925E5EFE92022E51DE6CF1EE666
:20C0E00004E51FE6E520E6CF21E603F6BF24E6BF22E6CF2AE6045004C1340F00320018AED5
:20C10000F8A1A1FC80A900C08800729F26E6880173318E14BF22E6624C0761C8F526E66383
:20C120004C05DC05F614BF22E615440300DC06301027BF24E6F530E6E531E6E532E6E53372
:20C14000E6F534E61022D7AF1AE6D7308813BF1AE6D78F1CE6D78F1DE6D78F1EE6D772F15C
:20C1600073500AD60449A116624DDD0883634C0CDCEE53FF63D7C7500AD6124944A1980021
:20C18000FC56C1007088006158E161F8F1C2D7C7500AD60445A114899800FC5AC1007088F2
:20C1A000006158E161F8F1C2D7500AD60446A114895FF1E5E161F8F1D7500AD60447A114E3
:20C1A000006158E161F8F1C2D7500AD60446A114895FE3E5E161F8F1D7500AD60447A114F1
:20C1C00089318E43E161F3F1D7C1F388016143DE14635006D60516629EFD880071FB114D0B
:20C1E000DD0583EFE653FF63C2D7C1C55006D61488029EFDA8000514A51189318E43E16188
:20C20000E8F11004D7C1C3F388036143DE1963500AD6050404001688029EFD11AB16A80068
:20C220003747DD0583EFE153FF100463D7C1500AD6051488009EFD11899800FC56C10070C9
:20C2400088006158E161F8F1C2D7C1500AD61288009EFD150314A511899800FC5AC1007029
:20C2600088006158E161F8F1C2D72008EB22E6520F8A019FF2E57034BCA15103FE4AFF9808
:20C28000004CFFDF2B40F1E502DF0DAEF8A112F6FC60EA005102EF15D921E58FF0E5FC59C1
:20C2A000C000321EE6300300FC60EA00F11008D7DBEEE534BCA1500FFE2FFF91DF1A880053
:20C2600088006158E161F8F1C2D72008EB14E6520F8A019FE4E57034BCA15103FE4AFF9824
:20C28000004CFFDF2B40E3E502DF0DAEF8A112F6FC60EA005102EF15D921E58FE2E5FC59DD
:20C2A000C0003210E6300300FC60EA00F11008D7DBE0E534BCA1500FFE2FFF91DF1A88006F
:20C2C0005006D604BCA11204040014A3899EFCA31314A91661FAEFD5D922E5EFBE2008EB95
:20C2E00022E6520F8A019FF2E57034CEA15102FED7FE98004CFFDF2B40F1E502DF0DAEF804
:20C30000A112F6FC60EA005102EF15D921E58FF0E5FC59C000321EE6300300FC60EA00F1DF
:20C320001008D7DBEEE534CEA1500FFEBCFE91DF1A88005006D604CEA11204040014A3899B
:20C340009EFCA31314A91661FAEFD5D922E5EFBE208EAFEEE51204FDFF440900DE046275C6
:20C36000718C61C8EE630113311E609807D161F8EE57019F06E665718B318EC1F19808E196
:20C380009803EB22E6E3F230FCE5FC65C000C0F19803D506E661F8EEE200880673817234AA
:20C3A0005AA229FCE57009FCE5B80A12300F18FE53FE98004CFF61F8EE9A00345AA2500F50
:20C2E00014E6520F8A019FE4E57034CEA15102FED7FE98004CFFDF2B40E3E502DF0DAEF82E
:20C30000A112F6FC60EA005102EF15D921E58FE2E5FC59C0003210E6300300FC60EA00F1FB
:20C320001008D7DBE0E534CEA1500FFEBCFE91DF1A88005006D604CEA11204040014A389A9
:20C340009EFCA31314A91661FAEFD5D922E5EFBE208EAFE0E51204FDFF440900DE046275D4
:20C36000718C61C8EE630113311E609807D161F8EE57019FF8E565718B318EC1F19808E1A5
:20C380009803EB14E6E3F230EEE5FC65C000C0F19803D5F8E561F8EEE200880673817234D5
:20C3A0005AA229EEE57009EEE5B80A12300F18FE53FE98004CFF61F8EE9A00345AA2500F6C
:20C3C000FE6AFE9161E8EE8C008800345AA2500FFE77FE91DF7A8800500AD6045AA2120461
:20C3E0000800141304060016899EFCAB16AEF8040C0012040700B80861FAB006E64C01DF54
:20C3E0000800141304060016899EFCAB16AEF8040C0012040700B80861FAB0F8E54C01DF63
:20C4000065AEF8042700B804880C9802C2C3A80A14A804161561D9836461D988010C029850
:20C4200001F19800880270880061488801DD1B318E128800318E0312A8040314880073A833
:20C44000081661C999880081EFD861089801EF0DD927E5EF48B006E6880381980388060C34
:20C46000029806EE2CFF730920E5708FF0E5FC59C000321EE6300300FC60EA008803708867
:20C48000076140DF2C40F1E502DF0FAEF8040D0012F6FC60EA005102EF2DD926E58FF0E527
:20C4A000FC59C000321EE6300300FC60EA00F1EF1651400FF0E59827AEF804270012880122
:20C4C000318EFC60EA00E1108ED7D922E5EFCED72008EB22E6520F8A019FF2E57034ECA1DF
:20C4E0005102FEE4FC98004CFFDF2C40F1E502DF0EAEF8A1A112F6FC60EA005102EF15D9B2
:20C5000021E58FF0E5FC59C000321EE6300300FC60EA00F11008D7DBEEE534ECA1500FFE41
:20C44000081661C999880081EFD861089801EF0DD927E5EF48B0F8E5880381980388060C43
:20C46000029806EE2CFF730920E5708FE2E5FC59C0003210E6300300FC60EA008803708883
:20C48000076140DF2C40E3E502DF0FAEF8040D0012F6FC60EA005102EF2DD926E58FE2E543
:20C4A000FC59C0003210E6300300FC60EA00F1EF1651400FE2E59827AEF80427001288013E
:20C4C000318EFC60EA00E1108ED7D922E5EFCED72008EB14E6520F8A019FE4E57034ECA1FB
:20C4E0005102FEE4FC98004CFFDF2C40E3E502DF0EAEF8A1A112F6FC60EA005102EF15D9C0
:20C5000021E58FE2E5FC59C0003210E6300300FC60EA00F11008D7DBE0E534ECA1500FFE6B
:20C52000C8FC91DF1F88005006D604ECA1B8001204040016C48B9EFC13A1A116C5AB168918
:20C5400061FAEFD0D922E5EFB92008EB22E6520F8A019FF2E57034F8A15103FE6BFC98002E
:20C560004CFFDF2B40F1E502DF0DAEF8A112F6FC60EA005102EF15D921E58FF0E5FC59C01E
:20C5800000321EE6300300FC60EA00F11008D7DBEEE534F8A1500FFE50FC91DF1F88005081
:20C5A00006D604F8A11204040014A3899EFCA31316EB22E6AB168A0261FAEFD0D922E5EF19
:20C5C000B92010E6A1C1EB22E6E3F230FCE5FC65C000C0D9FDE58FFCE512344AA3300F07CC
:20C5400061FAEFD0D922E5EFB92008EB14E6520F8A019FE4E57034F8A15103FE6BFC98004A
:20C560004CFFDF2B40E3E502DF0DAEF8A112F6FC60EA005102EF15D921E58FE2E5FC59C03A
:20C58000003210E6300300FC60EA00F11008D7DBE0E534F8A1500FFE50FC91DF1F8800509D
:20C5A00006D604F8A11204040014A3899EFCA31316EB14E6AB168A0261FAEFD0D922E5EF27
:20C5C000B92010E6A1C1EB14E6E3F230EEE5FC65C000C0D9EFE58FEEE512344AA3300F0704
:20C5E000FE22FC98014CFF61F8EEC900318EB80214320A00CEFB02044CA316410F118B3171
:20C600008E04030042EEE561E8EEBF0015320A00CEFB02044CA314320003899800318EC181
:20C62000EB22E6300AE6FC65C000C0880098048801344AA3500FFEF4FB91DF798801344AFC
:20C600008E04030042E0E561E8EEBF0015320A00CEFB02044CA314320003899800318EC18F
:20C62000EB14E630FCE5FC65C000C0880098048801344AA3500FFEF4FB91DF798801344A19
:20C64000A3500FFE04FC91DF67A802320A00CEFB02044AA312040800141304060016899ED5
:20C66000FCAB16AEF804040012300AE661FA4C01DF3751400FF0E598058FFCE598068FFDB3
:20C68000E59807AEF804050012300300FC60EA00EF36D926E58FF0E5FC59C000321EE630F4
:20C6A0000300FC60EA00F1EF1F730920E570EFE5D927E5EFE040F1E502DFD7AEF804090038
:20C6C00012F6FC60EA0051021010D7D922E5EFC5D924E58FF0E5FC59C000321EE63003006A
:20C6E000FC60EA00F1D7D924E58FF0E5FC59C000321EE6300300FC60EA00F1D7C7AFEEE511
:20C70000440400DF67EB22E68A0298008A03318E128800708A0114318D031215318E144480
:20C7200080001361F8440000DD0C1544FF001361F844FFFFDF2EFC3DE700918FF0E5DF10C9
:20C740000C409801AEF8A112E6FC60EA00E1C2D7D924E5FC59C000321EE6300300FC60EA4F
:20C7600000F1C2D7D926E58FF0E5EFE7D922E5EFF62008EB22E6520F8A019FF2E57034DA51
:20C78000A15103FE43FA98004CFFDF2B40F1E502DF0DAEF8A112F6FC60EA005102EF15D9B3
:20C7A00021E58FF0E5FC59C000321EE6300300FC60EA00F11008D7DBEEE534DAA1500FFEB1
:20C66000FCAB16AEF80404001230FCE561FA4C01DF3751400FE2E598058FEEE598068FEFEC
:20C68000E59807AEF804050012300300FC60EA00EF36D926E58FE2E5FC59C0003210E63010
:20C6A0000300FC60EA00F1EF1F730920E570EFE5D927E5EFE040E3E502DFD7AEF804090046
:20C6C00012F6FC60EA0051021010D7D922E5EFC5D924E58FE2E5FC59C0003210E630030086
:20C6E000FC60EA00F1D7D924E58FE2E5FC59C0003210E6300300FC60EA00F1D7C7AFE0E53B
:20C70000440400DF67EB14E68A0298008A03318E128800708A0114318D031215318E14448E
:20C7200080001361F8440000DD0C1544FF001361F844FFFFDF2EFC3DE700918FE2E5DF10D7
:20C740000C409801AEF8A112E6FC60EA00E1C2D7D924E5FC59C0003210E6300300FC60EA5D
:20C7600000F1C2D7D926E58FE2E5EFE7D922E5EFF62008EB14E6520F8A019FE4E57034DA7B
:20C78000A15103FE43FA98004CFFDF2B40E3E502DF0DAEF8A112F6FC60EA005102EF15D9C1
:20C7A00021E58FE2E5FC59C0003210E6300300FC60EA00F11008D7DBE0E534DAA1500FFEDB
:20C7C00028FA91DF1A88005006D604DAA11204040014A3899EFCA31314A91661FAEFD5D905
:20C7E00022E5EFBE200CE6A1C1EB22E6E3F230FCE5FC65C000C0D9FDE58FFCE5123428A21C
:20C7E00022E5EFBE200CE6A1C1EB14E6E3F230EEE5FC65C000C0D9EFE58FEEE5123428A254
:20C80000300F05FEFFF998004CFF61F8EED100318EB802320A00CEFB02042AA2143200034A
:20C82000899801318EC1EB22E6300AE6FC65C000C088003428A2500FFEF2F99161E8EE8A42
:20C82000899801318EC1EB14E630FCE5FC65C000C088003428A2500FFEF2F99161E8EE8A5F
:20C840000088003428A2500FFEFFF991DF6588019804A802320A00CEFB020428A212040866
:20C8600000141304060016899EFCAB16AEF804040012300AE661FA4C01DF3151400FF0E580
:20C8800098058FFCE598068FFDE598078F0AE698088F0BE698098F0CE6980A8FEEE575980B
:20C8A00004AEF80405001265318EEF17730920E570EF03D927E58FF0E5FC59C000321EE612
:20C8C000300300FC60EA00F1100CD740F1E502DF0FAEF804050012F6FC60EA005102EFE8CE
:20C8E000D926E5EFD1EB22E6200C8A03708A02B802BF08E68A019FF2E5F19800318EB80480
:20C9000014320600CEFB0204DAA316410FA8021211AB438800DD1E819800DDE040F1E502ED
:20C8600000141304060016899EFCAB16AEF80404001230FCE561FA4C01DF3151400FE2E59D
:20C8800098058FEEE598068FEFE598078FFCE598088FFDE598098FFEE5980A8FE0E5759862
:20C8A00004AEF80405001265318EEF17730920E570EF03D927E58FE2E5FC59C0003210E62E
:20C8C000300300FC60EA00F1100CD740E3E502DF0FAEF804050012F6FC60EA005102EFE8DC
:20C8E000D926E5EFD1EB14E6200C8A03708A02B802BFFAE58A019FE4E5F19800318EB804AB
:20C9000014320600CEFB0204DAA316410FA8021211AB438800DD1E819800DDE040E3E502FB
:20C9200061E8EEFF00AEF804060012F6FC60EA005102EEEC0081DDE415320600CEFB02122A
:20C94000410F1149D8A39800FC56C1007088006158DF0B40F1E502DDCCD926E5EF64A804C8
:20C94000410F1149D8A39800FC56C1007088006158DF0B40E3E502DDCCD926E5EF64A804D6
:20C96000320600CEFB0204D9A314410F11899800FC5AC1007088006158DF05D927E5EF42DC
:20C980008FF2E59803F19802318E14320600CEFB0216A804320600CEFB0204DCA3B80041F4
:20C9A0000FA800371161090016880371FB4D8802DD128198024C03DCCF40F1E502DD98D9C0
:20C9C00021E5EF4B81DDF215320600CEFB0212410FC6C7131161090016A78B318E42EEE516
:20C980008FE4E59803F19802318E14320600CEFB0216A804320600CEFB0204DCA3B8004102
:20C9A0000FA800371161090016880371FB4D8802DD128198024C03DCCF40E3E502DD98D9CE
:20C9C00021E5EF4B81DDF215320600CEFB0212410FC6C7131161090016A78B318E42E0E524
:20C9E000DF2A15320600CEFB0214A804320600CEFB0204DCA316156109001204040014A36A
:20CA0000899EFCA31314A91661FAEF15D922E58FF0E5FC59C000321EE6300300FC60EA0003
:20CA2000F1100CD7D930E5EFE62008EB22E6520F8A019FF2E570340AA2E1FE8CF798004C3C
:20CA4000FFDF2B40F1E502DF0DAEF8A112F6FC60EA005102EF15D921E58FF0E5FC59C00085
:20CA6000321EE6300300FC60EA00F11008D7DBEEE5340AA2500FFE71F791DF1A880050066C
:20CA8000D6040AA21204040014A3899EFCA31314A91661FAEFD5D922E5EFBEEB22E62008CC
:20CAA0008A019FF2E5FC56C1004C04DF5DD9F2E53410A2520F5102FE0FF798004CFFDF1DA9
:20CAC00040F1E502DD4AD921E58FF0E5FC59C000321EE6300300FC60EA00F1EF3EDBEEE544
:20CA0000899EFCA31314A91661FAEF15D922E58FE2E5FC59C0003210E6300300FC60EA001F
:20CA2000F1100CD7D930E5EFE62008EB14E6520F8A019FE4E570340AA2E1FE8CF798004C58
:20CA4000FFDF2B40E3E502DF0DAEF8A112F6FC60EA005102EF15D921E58FE2E5FC59C000A1
:20CA60003210E6300300FC60EA00F11008D7DBE0E5340AA2500FFE71F791DF1A8800500688
:20CA8000D6040AA21204040014A3899EFCA31314A91661FAEFD5D922E5EFBEEB14E62008DA
:20CAA0008A019FE4E5FC56C1004C04DF5DD9E4E53410A2520F5102FE0FF798004CFFDF1DC5
:20CAC00040E3E502DD4AD921E58FE2E5FC59C0003210E6300300FC60EA00F1EF3EDBE0E57C
:20CAE0003410A2500FFE02F791DF1A88005006D60410A21204040014A3899EFCA31314A99F
:20CB00001661FAEF16D922E5EFBF40F1E502DF0EAEF8A112F6FC60EA0051021008D7D92B31
:20CB2000E58FF0E5FC59C000321EE6300300EFE5C3C1C7AEF8FC22D80091DF0FA8021488AE
:20CB00001661FAEF16D922E5EFBF40E3E502DF0EAEF8A112F6FC60EA0051021008D7D92B3F
:20CB2000E58FE2E5FC59C0003210E6300300EFE5C3C1C7AEF8FC22D80091DF0FA8021488CA
:20CB40000099A80414E1CA0001EF0251041006D7C3C1C7AEF8FC30D80091DF0FA8021488E3
:20CB60000099A80414E1CA0001EF0251041006D7C1C3200CAEF8040400B802FC3ED80091C2
:20CB8000DF24F19800318E12A80E0314880073A8021661C999836398004C08DFE8A80C148C
@ -1749,7 +1749,7 @@
:20DA8000FC5BDD0073C4C56399E1C2D7C15103FC5BDD0073C4C56399E1C2D7C15104FC5BB8
:20DAA000DD0073C4C56399E1C2D7C15106FC5BDD0073C4C56399E1C2D7C15107FC5BDD000C
:20DAC00073C4C56399E1C2D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1D7E1D734
:20DAE000E1D7E1D7E1D7E1D7E1D7E1D7E1D7FCFBF600E1D7E1D7FC2BF400E1D7E1D714F131
:20DAE000E1D7E1D7E1D7E1D7E1D7E1D7E1D7FC9BF400E1D7E1D7FCB4F100E1D7E1D714F10D
:20DB000073318E05168B1831E583634C08DFF25105FC2ADF007253083031E5FCC3DD00D119
:20DB2000E161E8F1D714F173318E05168B1831E583634C08DFF25105FC2ADF007253083085
:20DB400031E5FCC3DD00D1E161E8F1D714F173318E05168B1831E583634C11DFF2E1FC2A2A
@ -1769,9 +1769,9 @@
:20DD000040735CFC6108980363316A9802647CAA73312A723168A8007C52F0755C3F610B17
:20DD2000980067F0312E60610A7088000812880270655CFC6108708803100408D716644CE4
:20DD400001DF0417EE05FF4C03DF0417EE57FF4C11DF0317EF9FD7F1D7F1D74C08DC02F1DB
:20DD6000D75002D6046DE61489D7C15002D6046CE6148800CA0001A599C0D7F1D7C3BF7C98
:20DD8000E6C5C2511F5F7FE69F7FE6AF7EE6F05CE0BF7EE651806F83E65C8F9F83E6AF82AF
:20DDA000E6F05CF0BF82E6F6BF80E6C4C53084E6FC31F400307CE6FCE5AB00F743E161F829
:20DD6000D75002D6045FE61489D7C15002D6045EE6148800CA0001A599C0D7F1D7C3BF6EC2
:20DD8000E6C5C2511F5F71E69F71E6AF70E6F05CE0BF70E651806F75E65C8F9F75E6AF7411
:20DDA000E6F05CF0BF74E6F6BF72E6C4C53076E6FCBAF100306EE6FCE5AB00F743E161F8DB
:20DDC000F1C2D7C1205663980092DD1392DD4D9261F8EE87009261F8EEC1001058F1D730EF
:20DDE0005000C1AEF8040800B806340F00320014FC80A900C08800318EB802F6B800A802DB
:20DE000012A80043DD3BA80414A80012F10516A85614A3899BA515B85613EFE0305000C1A3
@ -1783,13 +1783,13 @@
:20DEC00043DD19A80414A80012F10504380016A85614A3899BA515B85613EFDD305000C186
:20DEE000340F00320014AEF8040800FCA4A700C0EEE8FE146392DD0B92DD0D92DD0F92DDB2
:20DF00001DF1D7320014EF08322014EF03323014318EC115340F00FC80A900C0EFE3323818
:20DF200014EFEDDB5EF0AF5CF0D773091FA4D714F1734101318E05161109009C9B83634CC9
:20DF200014EFEDDB50F0AF4EF0D773091FA4D714F1734101318E05161109009C9B83634CE5
:20DF400010DFEFD714F1734101318E05161109109C9B83634C0DDFEFD714F1734101318EBA
:20DF6000051611091D9C9B83634C10DFEFD714CA0018CA0106CA0215D7F1D7F1D7F1D7F169
:20DF8000D7F1D7F1D714CA0000D7148F8AF099D7F6BF92E6BF90E6BF94E6BF98E6BF9AE6C1
:20DFA000BF9CE6F596E6F59FE6F597E6F59EE6D7F58EE6D7E58EE6D7E58CE6CF8DE602FE6A
:20DFC000CEFFE58EE6D7F1D76F8FE69F8FE6F1D77CFF5F8FE69F8FE6F1D7148F8FE699F1EF
:20DFE000D7F1D7148F8CE699F1D7148F8DE699F1D7C79800FC6FE10088009F8DE6F1C2D7C6
:20DF8000D7F1D7F1D714CA0000D7148F74F099D7F6BF84E6BF82E6BF86E6BF8AE6BF8CE61D
:20DFA000BF8EE6F588E6F591E6F589E6F590E6D7F580E6D7E580E6D7E57EE6CF7FE602FEE8
:20DFC000CEFFE580E6D7F1D76F81E69F81E6F1D77CFF5F81E69F81E6F1D7148F81E699F143
:20DFE000D7F1D7148F7EE699F1D7148F7FE699F1D7C79800FC6FE10088009F7FE6F1C2D7F0
:20E00000C5C3C1C78F38A49801D1DD76F1980088017088006148DE6A318E14320C00CEFBF3
:20E0200002043CA416A804614900DD05880081EFDC15320C00CEFB02043EA4168802320CF6
:20E04000004D15CEFB02DF0F043CA412040600B80013040400EF0D043CA412040A00B8001A
@ -1797,189 +1797,189 @@
:20E0800061FA1008D7C5C3C12004FC54E100A80814880672A804FC7DDD009807FC58E100FE
:20E0A00088079161E8EEA600F198004F39A461C8EE9B00318E14321600CEFB020454A41604
:20E0C000A804614900DD05880081EFDD15321600CEFB020468A414320C0089318E16CEFB82
:20E0E000020494E614A804B9A5A5880699F198048806708804320C006148DD23318E14A83D
:20E100000805B80217CEFB020494E605040300B800A802148973C4C56399880481EFCF17F3
:20E12000CEFB02049FE61466CA000173E6D3EF020193DFFC1231FF6F93E6086F92E608BFDA
:20E1400092E6136F91E6086F90E608BF90E68807100AD7D7717BFAD7717AFAD7D7D7CFA037
:20E16000E602F5A1E6E5A2E6D7148FA0E699D7C798004C01DF0BFC9DE10088009FA0E6C0E1
:20E18000D74C02DFFAFC9EE100EFEF148FA1E699D7F5A1E6D7D7148FA2E699D7D7D7D72024
:20E0E000020486E614A804B9A5A5880699F198048806708804320C006148DD23318E14A84B
:20E100000805B80217CEFB020486E605040300B800A802148973C4C56399880481EFCF1701
:20E12000CEFB020491E61466CA000173E6D3EF020193DFFC1231FF6F85E6086F84E608BF04
:20E1400084E6136F83E6086F82E608BF82E68807100AD7D7717BFAD7717AFAD7D7D7CF927D
:20E16000E602F593E6E594E6D7148F92E699D7C798004C01DF0BFC9DE10088009F92E6C019
:20E18000D74C02DFFAFC9EE100EFEF148F93E699D7F593E6D7D7148F94E699D7D7D7D7204E
:20E1A000225108FC2ADF0072AEF8040600B804531CFCF3DE00F19802318E01B80012A80404
:20E1C0000314897381A800DF0904A5E614CA0001EF333348A4E631330639A5E601EF26132F
:20E1C0000314897381A800DF090497E614CA0001EF33334896E63133063997E601EF261359
:20E1E000086C010812A80403168B819B4C28DC0FCA0000CC00FF8802FEA600C2C3EFDAC2F2
:20E20000C339A5E60088028198024C0EDFAA5108FC2ADF0072531CAEF8040600FCC3DD0064
:20E220001022D730DC05BFC0E630F401BFC2E6EE6DFFAFC0E6F743DD04B1BFC0E6FC7BDD9F
:20E2400000D1DF0DAFC2E6F74361F8D7B1BFC2E6D730F401EFF72008735002D604A4E614E1
:20E20000C33997E60088028198024C0EDFAA5108FC2ADF0072531CAEF8040600FCC3DD0072
:20E220001022D730DC05BFB2E630F401BFB4E6EE6DFFAFB2E6F743DD04B1BFB2E6FC7BDDD7
:20E2400000D1DF0DAFB4E6F74361F8D7B1BFB4E6D730F401EFF72008735002D60496E6140B
:20E26000B804896C0999A589D1DF031008D7CA0000630C089802FC2ADF0072AEF804060079
:20E28000B8005302FCF3DE00A80414895C0898068802FC2ADF0072A8005302FCC3DD00EFD0
:20E2A000CA5002D604A4E6167183D7AFC0E6F743DF16AFC2E643DF10FC79DF00D1DD095194
:20E2C0000DFE92FF7108BEE6FCB9BE00311301D7E1FC59DD00D15104DF05FEC4FFEF03FE28
:20E2A000CA5002D60496E6167183D7AFB2E6F743DF16AFB4E643DF10FC79DF00D1DD0951BE
:20E2C0000DFE92FF7108B0E6FCB9BE00311301D7E1FC59DD00D15104DF05FEC4FFEF03FE36
:20E2E00074FF5102FC59DD00D15107DF05FEB1FFEF03FE61FF5103FC59DD00D1510ADF0585
:20E30000FE9EFFEF03FE4EFF8FCEE64C28DE05819FCEE6D7F5CEE6F1FC57DD004CA18FC4D6
:20E32000E6DC104C32DE06819FC4E6EF1BE1FE25FFEF15D1DF06E1FE67FFEF0C919FC4E6FE
:20E340004C2661C8CFC4E625F1FC57DD004C5A8FC5E6DE104C32DE06819FC5E6EF1BF1FE6F
:20E36000F4FEEF15D1DF06F1FE36FFEF0C919FC5E64C2661C8CFC5E625E1FC57DD004C312F
:20E380008FC6E6DC114C32DE06819FC6E6EF1D5102FEC2FEEF16D1DF075102FE03FFEF0C00
:20E3A000919FC6E64C2661C8CFC6E625E1FC57DD004C028FC7E6DE114C32DE06819FC7E68D
:20E3C000EF1D5103FE8FFEEF16D1DF075103FED0FEEF0C919FC7E64C2661C8CFC7E6255111
:20E3E00002FC57DD004C318FC8E6DC114C32DE06819FC8E6EF1D5105FE5BFEEF16D1DF079F
:20E400005105FE9CFEEF0C919FC8E64C2661C8CFC8E6255102FC57DD004C028FC9E6DE11FA
:20E420004C32DE06819FC9E6EF1D5106FE27FEEF16D1DF075106FE68FEEF0C919FC9E64C88
:20E440002661C8CFC9E6255103FC57DD004C318FCAE6DC114C32DE06819FCAE6EF1D510806
:20E46000FEF3FDEF16D1DF075108FE34FEEF0C919FCAE64C2661C8CFCAE6255103FC57DDCB
:20E48000004C028FCBE6DE114C32DE06819FCBE6EF1D5109FEBFFDEF16D1DF075109FE0098
:20E4A000FEEF0C919FCBE64C2661C8CFCBE6255104FC57DD004C318FCCE6DC114C32DE06B0
:20E4C000819FCCE6EF1D510BFE8BFDEF16D1DF07510BFECCFDEF0C919FCCE64C2661C8CF56
:20E4E000CCE6255104FC57DD004C028FCDE6DE0E4C32DE05819FCDE6D7510CEE58FDD1DFE9
:20E5000005510CEE9BFD919FCDE64C2661C8CFCDE625D75002D61249A4E6D7C3C520145324
:20E30000FE9EFFEF03FE4EFF8FC0E64C28DE05819FC0E6D7F5C0E6F1FC57DD004CA18FB60E
:20E32000E6DC104C32DE06819FB6E6EF1BE1FE25FFEF15D1DF06E1FE67FFEF0C919FB6E61A
:20E340004C2661C8CFB6E625F1FC57DD004C5A8FB7E6DE104C32DE06819FB7E6EF1BF1FE99
:20E36000F4FEEF15D1DF06F1FE36FFEF0C919FB7E64C2661C8CFB7E625E1FC57DD004C314B
:20E380008FB8E6DC114C32DE06819FB8E6EF1D5102FEC2FEEF16D1DF075102FE03FFEF0C1C
:20E3A000919FB8E64C2661C8CFB8E625E1FC57DD004C028FB9E6DE114C32DE06819FB9E6C5
:20E3C000EF1D5103FE8FFEEF16D1DF075103FED0FEEF0C919FB9E64C2661C8CFB9E625512D
:20E3E00002FC57DD004C318FBAE6DC114C32DE06819FBAE6EF1D5105FE5BFEEF16D1DF07BB
:20E400005105FE9CFEEF0C919FBAE64C2661C8CFBAE6255102FC57DD004C028FBBE6DE1124
:20E420004C32DE06819FBBE6EF1D5106FE27FEEF16D1DF075106FE68FEEF0C919FBBE64CA4
:20E440002661C8CFBBE6255103FC57DD004C318FBCE6DC114C32DE06819FBCE6EF1D510830
:20E46000FEF3FDEF16D1DF075108FE34FEEF0C919FBCE64C2661C8CFBCE6255103FC57DDE7
:20E48000004C028FBDE6DE114C32DE06819FBDE6EF1D5109FEBFFDEF16D1DF075109FE00B4
:20E4A000FEEF0C919FBDE64C2661C8CFBDE6255104FC57DD004C318FBEE6DC114C32DE06DA
:20E4C000819FBEE6EF1D510BFE8BFDEF16D1DF07510BFECCFDEF0C919FBEE64C2661C8CF72
:20E4E000BEE6255104FC57DD004C028FBFE6DE0E4C32DE05819FBFE6D7510CEE58FDD1DF13
:20E5000005510CEE9BFD919FBFE64C2661C8CFBFE625D75002D6124996E6D7C3C52014534E
:20E5200010C1776772AEF8040600B804FCF3DE0088004C07DE33D1DD30A81814880099CAF8
:20E540000101CA020A919A03A804128800318EB101B80003168B9A04A800A103168B9A0578
:20E56000A81614890C0699EF4C8151FFDF48C80306F173819802A81814880299CA0101CA85
:20E58000020A639A03A804128802318EB101B8000316A818040600B8188B9A04A800A103D6
:20E5A000168B9A05A81614890C06998803919803880273DFBEF1101AD7EB22E620088A022B
:20E5C0009FF6E55C09DF17D926E58FF0E5FC59C000321EE6300300FC60EA00F1EF435140A6
:20E5E0000FF0E598028FF2E59803C80409F1980098018800FE1CFF5FF6E5DD058801819846
:20E5A000168B9A05A81614890C06998803919803880273DFBEF1101AD7EB14E620088A0239
:20E5C0009FE8E55C09DF17D926E58FE2E5FC59C0003210E6300300FC60EA00F1EF435140D0
:20E5E0000FE2E598028FE4E59803C80409F1980098018800FE1CFF5FE8E5DD058801819870
:20E600000188008198004C0EDFE8C80501C8060088019807AEF8A1A112300600FC60EA00FD
:20E62000E11008D7EB22E620708A029FF6E55C09DF18D926E58FF0E5FC59C000321EE63062
:20E640000300FC60EA00F1EE7F0051400FF0E598068FF2E59807C80809C80203F19803FECB
:20E66000B1FE5FF6E5DD4A8803735004D614AEF8040600B80415047AA4B800A114A804167C
:20E62000E11008D7EB14E620708A029FE8E55C09DF18D926E58FE2E5FC59C0003210E6309A
:20E640000300FC60EA00F1EE7F0051400FE2E598068FE4E59807C80809C80203F19803FEE7
:20E66000B1FE5FE8E5DD4A8803735004D614AEF8040600B80415047AA4B800A114A804168A
:20E680008802728961F96281A5728961F9A8000403001488020C02728961F963FE74FE72C9
:20E6A00088020C0373A804166261D988020C04980288038198034C0EDFA5AEF80406001275
:20E6C0008802318EFC60EA00E11070D7206E51400FF0E598048FF2E59805C80609F363980C
:20E6C0008802318EFC60EA00E11070D7206E51400FE2E598048FE4E59805C80609F3639828
:20E6E0000263980388035004D614630C0372AEF80404001615047AA4B800A1148961F963BF
:20E700000C04A5738961D9A8000403001488020C05728961F988020C06318E0714880381D9
:20E7200098034C0ECA0009639802DFB8AEF804040012303B00FC60EA00106EE1D7201C3466
:20E740001C0032B2A4AEF8FCC0A600F1755002D6128539A4E600654C0EDFF15108FC2ADF38
:20E740001C0032B2A4AEF8FCC0A600F1755002D612853996E600654C0EDFF15108FC2ADF46
:20E760000072531CAEF8FCC3DD00D1E161E8F1101CD72008FC47C100F74361F8FCA8BF0065
:20E78000FC22B60091DF44FC4BC1008FF0E5FC5EC10098004CFFDF0B40F1E502DD24D9208B
:20E7A000E5EF2DFC76C10091DF6F8800FC8FC10091DF61880040F1E502DF19FCA9C100D1D2
:20E7C000DF10AEF8A112F6FC60EA00EF2AD922E5EF4A8800DBEEE5FCB9C10091DFEF8800F0
:20E78000FC22B60091DF44FC4BC1008FE2E5FC5EC10098004CFFDF0B40E3E502DD24D920A7
:20E7A000E5EF2DFC76C10091DF6F8800FC8FC10091DF61880040E3E502DF19FCA9C100D1E0
:20E7C000DF10AEF8A112F6FC60EA00EF2AD922E5EF4A8800DBE0E5FCB9C10091DFEF8800FE
:20E7E000500AD60444A112040800141304060016899EFCAB1661FAFCFDEC009161F8FCBDD4
:20E80000BF00FCCABF00FC32E200FC7ABF00D1DF1A1008D7D927E5EF03D92BE58FF0E5FC96
:20E8200059C000321EE6300300EF9CFCABE200EFE0C3168FD8E64C01DF15CFD8E6058F8E5D
:20E84000EB9BC6C7AF8CEBBB30D0E6B9E1C2D74C04DF13CFD8E6058F8EEB9BC6C7AF8CEB81
:20E86000BB30DBE6EFE5F1C2D7C5C1C713444107DF5C899800314A708FD8E6734C01DD0869
:20E880004C04DD044C05DF494C05DF424054F001DF3C604C03DF3788005C0FDF1FCF54F0F3
:20E8A000038A01D161F851B09FD9E640DAE67FF161D88A029FDAE6F556F0EF0391DF06F614
:20E8C000BF94EBEF09F554F0F5D8E6F597EBEE3C0160D1DF3688005C0F72318EBF8CEB6272
:20E8E0004C0861C8EE2601D161F8EE2001E5D8E6F58EEBF363318E1662614361C8EE0401EF
:20E90000170516A78B18D0E683EFE94C0161E8EE81008A017088005C0FBF8CEB44B104DC6C
:20E920001CCF48F030CF49F0028F72A49F4AF03448F052083051071006EC85E000440800FB
:20E9400061D8EEC800F58EEB34DBE6E6B800F3A80416630C02318E0716838B99A800BF9027
:20E96000EB634C06A800A1B800A5DFE3E592EBCF48F030F549F08F72A49F4AF03448F0528C
:20E9800008305107FC85E000CFD8E603CF96EB05EE2CFF4C02DF67634C03DF62F6BF94EBCD
:20E9A000C0C1E992EB636170605C0FDF4E63819F92EB8802D1DD044C08DC33E19802DB8CC3
:20E9C000EB13B804AF90EBB80043DE348802318E0516C2C38B48DBE6A313BF90EBA80433FA
:20E9E00043DD1D88028198024C08DCD2EF1F318E12AF8CEB234290EB61D3C0F5D8E6EF0DAB
:20EA0000CFD8E604E55AF030E803BF58F01006D71344DF07C5C6DF478FD8E64C01DD404C36
:20EA200004DD3C4C05DD388B705CF0DF32605C0F72318EBF8CEB624C08DE24E5D8E6E58EFB
:20EA4000EBF363318E14626143DE0B150714A58918D0E683EFECE55AF030E803BF58F0D701
:20EA6000C1C3C440D8E60561F8D597EB61E8EEA100F55AF030E803BF58F0A800F743DF069B
:20EA8000F5D8E6F1C2D7440800DE31609F48F051073649F0CC005591A7DFF93649F0A80098
:20EAA000A104FFFF12DD07899BA5A713EFF33448F05208305107FC85E000EFC4E597EB3659
:20EAC00098EBA104FFFF12DD07899BA5A713EFF3A800BF50F0A800120C109F48F0629F4917
:20EAE000F0344AF0F73698EB8B99A313BF52F0440600A5A7DCF23448F05208305107FC85FA
:20EB0000E000E596EBF6BF94EBE555F0E554F0EE71FFE1C2D7C3C71440D8E605DF48D5971C
:20EB2000EBDF4315440800DE3D649F48F0F38363734C071948F055DFF5F198008800318E28
:20EB40001245DE0FA80203168800738B1849F08363EFE73448F05208305107FC85E000F676
:20EB6000BF58F0F1EF01E11004D7F17319D0E6001948F0001998EB0019DBE60083634C08AD
:20EB8000DFE9F5D8E6F5D9E6CFDAE60AF6BF8CEBBF90EBBF94EBBF50F0BF52F0F58EEBF5A6
:20EBA00092EBF596EBF597EBF554F0F555F0F556F030E803BF58F0F55AF0D78FD8E6734CF9
:20EBC00003DF204096EB05DF12AF94EB4276A461D306F5D8E6F3EF0BA1EF05CF96EB05F638
:20EBE000BF94EB405AF001DF18AF58F04278A461D30CF5D8E6F55AF030E803F3EF06A1EF3B
:20EC00000330E803BF58F0634C05DF2F8F54F07391DF254096EB01DF18AF94EB4274A46190
:20EC2000D30CF554F0F5D8E6F597EBF3EF0AA1EF04E596EBF6BF94EB634C0361E8EEBC00D3
:20EC40008F56F0819F56F0D5D9E6DD574FDAE661E3EEA800E556F0AF50F01604F9FF12EB9F
:20EC600052F015435120DE4B0F55F09F48F0F315A116150498EB14891849F017BF52F08351
:20EC8000634C07A7A5DFF03448F05208305107FC85E0008F55F0815C0F9F55F08FD9E64CB6
:20ECA00001DF0BE554F0F6BF94EBE596EBD7919FD9E6D70F55F09F48F0F3172560728363F7
:20ECC000734C071948F055DFF515A116150498EB14F363614ADE0D891849F017BF52F08317
:20ECE000A7A5EFEE3448F05208305107FC85E000F554F0F5D8E6F597EBF5D9E6D7D5D8E6BB
:20ED0000E161E8F1D78D01312309D576F061F8FCA6F4004064F001DF2AF564F0FC72E700B0
:20ED2000FCBBEB00FCB9BE009F5BE5FCBDBE009F5CE5AF62E5F74361F8FEA504FCAEF500B9
:20ED4000FE6F024065F001DF0FF565F0FEE0054086F00161F8FE31004066F001DF14F5666F
:20ED6000F0FE6E02FEC202D586F061F8FE9E01FE0F024067F001DF06F567F0FEE2044068CE
:20ED8000F00161F8F568F0D7D72004407EF001DF10F57EF0D581F0DF05E581F0EF03F58121
:20EDA000F0E1FCB1F600B8025102FCB1F600B8005103FCB1F600128F82F0D1DD3A914C02A6
:20EDC000DE2FA80044140061C8EE1701A80244E903DC041344E90361D8EE0701407DF0011D
:20EDE00061E8EEFE00E60254E5BF54E544290061C8F582F0EEF000A80044E903DC32A8025A
:20EE0000441400DE2BD583F0DF26D588F0DF21E60256E5BF56E5442900DC19302800BF560B
:20EE2000E5D57DF0DF05E583F0EF09E582F0EF04F6BF56E513441400DE33A80044E903DC0D
:20EE40002CD583F0DF27D588F0DF22E60258E5BF58E5442900DC1A302800BF58E5D57DF0D0
:20EE6000DF05E585F0EF0ACF82F002EF04F6BF58E5A800441400DE16A80244E903DC0F1367
:20EE800044E903DC09F583F0F585F0F588F0A800441400DE1FA802441400DE18E60250E50C
:20EEA000BF50E5442900DC10302800BF50E5711088F0EF04F6BF50E513441400DE1FA800D3
:20EEC000441400DE18E60252E5BF52E5442900DC16302800BF52E5713088F0EF0AF6BF5209
:20EEE000E5EF04F6BF54E5A802443200F161C8E19F66E5A800443200F161C8E19F67E51330
:20EF0000443200F161C8E19F68E51004D7C78F4BE54C32DE06819F4BE5EF64F587F0C800EA
:20EF2000025102FC33F60031496F87F09F87F0E1FCB1F600443200DC03F1980088006F8701
:20EF4000F09F87F05102FCB1F600443200F161C851046F87F09F87F05103FCB1F600443267
:20EF600000510861C8F16F87F09F87F0DF0E8F4AE5819F4AE54C05DC06E586F0F54AE5C0B6
:20EF8000D78F89F04C03DC224C03DD06F590F0F1EF0C8F90F0819F90F04C0BDE05E1EC16E6
:20EFA000F6004C175102DCF6EF04FC16F600F590F0D7404CE507DE058F82F0EF025103FCEF
:20EFC00066F6008F4CE5819F4CE54C0A61C8F54CE5D7F1FC8CF5009161F8E57DF0E1FC8C35
:20EFE000F5009161F8E57EF05103FC8CF50091DF0ED580F0F161F8E19F80F0FCA6F600F188
:20F00000FC9DF5009161F8F57DF0E1FC9DF5009161F8F57EF0407DF001DF0A5102FC5BF623
:20F02000009F7FF0D7F57FF0D7C78F82F0734C01500461E8F0D1550861E85500634C0253CB
:20F040001061E8F33683F08F7FF031595C2098008F80F031695C4072656160880008616BF6
:20F060006168616A9F92F051F85F95F071843684F0718971843685F07199718471A99F9528
:20F08000F03687F05102319301F1500431A301F0530831B301F361683688F05010319301E2
:20F0A000F0616B534031B301F361683687F0508031C301F0616B61689F94F052073092F03B
:20F0C000FC28F7009F99F0C0D7D7D7D72024E6C1AEF8040400B802340F00320014FC80A9D0
:20F0E00000C0880281DF41F1734C08DE07C6C709DEA3EF184C19DE07318E04DEA3EF094C98
:20F1000021DE0B318E04DEA314C6C78961D983634C21DFD5302100C1340F00320014AEF8F5
:20F12000040400FCA4A700C0E6C1AEF8040400B802340F00320018FC80A900C0880281DF55
:20F140004CF1734C10DE07C6C709FFA3EF234C14DE07318E04FFA3EF144C18DE07318E04BB
:20F16000FFA3EF094C20DE0B318E04FFA314C6C78961D983634C20DFCA302000C1340F0088
:20F18000320018AEF8040400FCA4A700C01024D78F0C03F3313501E38F04033115418F0CD2
:20F1A00003313504A248E5E38F47E5724C0ADE0FAF48E5446400DC0762819F47E5EF116249
:20F1C0004C0ADC1BAF48E544E803DC13CF47E50A340403F6BF48E5BA08A9085CFC08B963D7
:20F1E000D7AF0C0360313545FC14AE006031153DAF74F0F743DF358F76F073D1DF063064BB
:20F2000000BF74F0634C05DE0BD1DD08FE3100306400EF0A4C05DC09FE250030E803BF7415
:20F22000F08F76F04C05DE04819F76F0D7D576F0DD0AAF74F0F74361F8F576F0F560E5D725
:20F24000345003F789718B990089718A99AF0C0343DD04F6BF0C035404A9085CFC08B9D756
:20F26000C7F1FCB1F60014321D01CEFB01316C31AE03BF8AF01532546FCEFB0114C0C331B1
:20F280006CA80031AEB8001531AE031404BC0216BF8CF0A8001261D8A1B800BF8EF04400D8
:20F2A000001761F8443521DE17E60262F0BF62F044FA00DC5630FA00BF62F0E560F0EF4BEA
:20F2C000A8004400001761F8447440DC18E60262F0BF62F044FA00DC3230FA00BF62F0CF45
:20F2E00060F002EF26150494DF1461C8B313F7431561F844591BDE13AF62F043DF09F6BFE6
:20F3000062F0F560F0EF04B1BF62F0C0D730F401BF6AF030D007BF62E5E572F0F57DF0F521
:20F320007EF0F582F0E581F0F586F0F589F0D751035F9AF09F89F0D7FCD7B00034B801F660
:20F34000B9BA40BA02BA42B9BA40FCECB10036F000710B3071C371837193712306713306B4
:20F3600071030C713303713301714301710303712201AF0403086C0408BF0403AF26030825
:20F380006C0108BF260300AF2603086C0408BF26037108C502716BD0716BD48D01317502FE
:20F3A00061FD716BD0716AD4712301FC82AE00FCB1AE00ECC7B000C3C66148880470DF11F7
:20F3C0008981739963614861D8D7CA0000CC0001D7CA0000CC0000D7300500C18D01317AF1
:20F3E000346FF0326EF0E0FECDFFC0300500C18D01317A3471F03270F0F0FEBAFFC0407013
:20F40000F001DF05F572F0EF0C406EF001DF06E572F07133018F72F04F91F0DD0D9F91F08A
:20F42000D1DF07340603A95CFCB9D7148F8AF099D7C1C3C664318EA104FFFF12DD0BC4C527
:20F440008B99A7A5C0C513EFEFC0D754083292F030AAF0EFDC712301511F5FA5F09FA5F05D
:20F46000308801BFA2F0AFA4F0F05CE0BFA4F051806FA9F05C8F9FA9F0AFA8F0F05CF0BF82
:20F48000A8F0F6BFA6F0F55AE554083292F030AAF0EF9E365BE5318301D73466E5520830E3
:20F4A0003303EC7DDD008F97E570914C02DE59604C02DF23AFA2E5F743DF17365CE5AFA063
:20F4C000E5BFA2E531850B8FADE54C05DE04819FADE5F56EE5EF318F6EE573D1DD2AAFA254
:20F4E000E56168DF23365CE563919F6EE5AFA0E5BFA2E531851230B6E5FCE5AB008FADE545
:20F500004C05DE04819FADE5AF5EE5F743DF2A365BE531852454083292F030AAF0FE11FF99
:20F5200030A2F0FCE5AB008F5AE5814C1061C8F19F5AE5303200BF5EE5D7C11413B98A0371
:20F540005C1F9A0315A1A114A9F05CE0B9C4C58A0771FA5C8F9A071504060014A9F05CF071
:20F56000B9A80004040014F6B9C0D7F1731970E50083634C04DFF5D74C04DE05731974E5FD
:20F5800001D74C04DE05731978E501D74C04DE0B318E0474E51489CA0000D7F1D74C04DE16
:20F5A0000B318E0478E51489CA0000D7F1D7C7F19800FE7E007291DF268800318E14880063
:20F5C000730970E5D1DF181501047CE514A9A1B9441400DC361970E50163FE9BFFEF2CD23F
:20F5E000DF2988005002D612797CE5440000DF178800730970E591DF058800FE84FF8800CE
:20F60000731970E500EF04B1787CE588008198004C04DF9EC0D7D1DD0791DD0B91DD0DD707
:20F62000711304715301D7711204EFF7711304715201D7D1DD0B91DD0E91DD1491DD16F1EA
:20F64000D78D06313AEF048D06312A5C017C01D7E15B06EFF88D06311AEFF04C04DE0573B7
:20F660000970E5D7F1D7D1DD1591DD0791DD1891DD20D73601FF71E271F3710303D73601F8
:20F68000FF71E371F2EFF33601FF71E371F3710203D73601FF71E271F2EFF3D1DF04711391
:20F6A00004D7711204D7D1DF0471030CD771020CD74C04DE085002D61279ECF0D7F6D78EB9
:20F6C00031D1DD0D91DD1591DD1D91DD25CE3100D730ECF0FCFEB100CE3101D730EEF0FC2F
:20F6E000FEB100CE3102D730F0F0FCFEB100CE3103D730F2F0FCFEB100EFD214CA0000D7BC
:20F700001653FF62318EA104FFFF1463DD1750087D7261017362317504637CB8739063DF4E
:20F72000F0A715EFE27CFFD71653FF62318EA104FFFF1463DD0A7D73A709D8A47315EFEFEE
:20F740007CFFD7FF00000000000000003200C8007856341211121314222431333536377F35
:20F76000727173787E00112233445566778899AABBCCDDEEFF000000000000000000000045
:20F7800000000000000000000000000000000003030032000000D007010300000000000056
:20F7A000000000000000000000000000000000000000000000000000FFFFFFFFFFFFFFFF51
:20E80000BF00FCCABF00FC32E200FC7ABF00D1DF1A1008D7D927E5EF03D92BE58FE2E5FCA4
:20E8200059C0003210E6300300EF9CFCABE200EFE0C3168FCAE64C01DF15CFCAE6058F8095
:20E84000EB9BC6C7AF7EEBBB30C2E6B9E1C2D74C04DF13CFCAE6058F80EB9BC6C7AF7EEBC7
:20E86000BB30CDE6EFE5F1C2D7C5C1C713444107DF5C899800314A708FCAE6734C01DD0885
:20E880004C04DD044C05DF494C05DF424046F001DF3C604C03DF3788005C0FDF1FCF46F00F
:20E8A000038A01D161F851B09FCBE640CCE67FF161D88A029FCCE6F548F0EF0391DF06F64C
:20E8C000BF86EBEF09F546F0F5CAE6F589EBEE3C0160D1DF3688005C0F72318EBF7EEB62B8
:20E8E0004C0861C8EE2601D161F8EE2001E5CAE6F580EBF363318E1662614361C8EE04010B
:20E90000170516A78B18C2E683EFE94C0161E8EE81008A017088005C0FBF7EEB44B104DC88
:20E920001CCF3AF030CF3BF0028F72A49F3CF0343AF052083051071006EC85E00044080033
:20E9400061D8EEC800F580EB34CDE6E6B800F3A80416630C02318E0716838B99A800BF8251
:20E96000EB634C06A800A1B800A5DFE3E584EBCF3AF030F53BF08F72A49F3CF0343AF052D2
:20E9800008305107FC85E000CFCAE603CF88EB05EE2CFF4C02DF67634C03DF62F6BF86EBF7
:20E9A000C0C1E984EB636170605C0FDF4E63819F84EB8802D1DD044C08DC33E19802DB7EED
:20E9C000EB13B804AF82EBB80043DE348802318E0516C2C38B48CDE6A313BF82EBA8043324
:20E9E00043DD1D88028198024C08DCD2EF1F318E12AF7EEB234282EB61D3C0F5CAE6EF0DD5
:20EA0000CFCAE604E54CF030E803BF4AF01006D71344DF07C5C6DF478FCAE64C01DD404C6E
:20EA200004DD3C4C05DD388B705CF0DF32605C0F72318EBF7EEB624C08DE24E5CAE6E58025
:20EA4000EBF363318E14626143DE0B150714A58918C2E683EFECE54CF030E803BF4AF0D72B
:20EA6000C1C3C440CAE60561F8D589EB61E8EEA100F54CF030E803BF4AF0A800F743DF06D3
:20EA8000F5CAE6F1C2D7440800DE31609F3AF05107363BF0CC005591A7DFF9363BF0A800D0
:20EAA000A104FFFF12DD07899BA5A713EFF3343AF05208305107FC85E000EFC4E589EB3675
:20EAC0008AEBA104FFFF12DD07899BA5A713EFF3A800BF42F0A800120C109F3AF0629F3B4F
:20EAE000F0343CF0F7368AEB8B99A313BF44F0440600A5A7DCF2343AF05208305107FC8532
:20EB0000E000E588EBF6BF86EBE547F0E546F0EE71FFE1C2D7C3C71440CAE605DF48D58970
:20EB2000EBDF4315440800DE3D649F3AF0F38363734C07193AF055DFF5F198008800318E44
:20EB40001245DE0FA80203168800738B183BF08363EFE7343AF05208305107FC85E000F692
:20EB6000BF4AF0F1EF01E11004D7F17319C2E600193AF000198AEB0019CDE60083634C08F3
:20EB8000DFE9F5CAE6F5CBE6CFCCE60AF6BF7EEBBF82EBBF86EBBF42F0BF44F0F580EBF524
:20EBA00084EBF588EBF589EBF546F0F547F0F548F030E803BF4AF0F54CF0D78FCAE6734C77
:20EBC00003DF204088EB05DF12AF86EB4276A461D306F5CAE6F3EF0BA1EF05CF88EB05F670
:20EBE000BF86EB404CF001DF18AF4AF04278A461D30CF5CAE6F54CF030E803F3EF06A1EF81
:20EC00000330E803BF4AF0634C05DF2F8F46F07391DF254088EB01DF18AF86EB4274A461C8
:20EC2000D30CF546F0F5CAE6F589EBF3EF0AA1EF04E588EBF6BF86EB634C0361E8EEBC0019
:20EC40008F48F0819F48F0D5CBE6DD574FCCE661E3EEA800E548F0AF42F01604F9FF12EBF3
:20EC600044F015435120DE4B0F47F09F3AF0F315A11615048AEB1489183BF017BF44F083A5
:20EC8000634C07A7A5DFF0343AF05208305107FC85E0008F47F0815C0F9F47F08FCBE64CEE
:20ECA00001DF0BE546F0F6BF86EBE588EBD7919FCBE6D70F47F09F3AF0F31725607283634B
:20ECC000734C07193AF055DFF515A11615048AEB14F363614ADE0D89183BF017BF44F0834F
:20ECE000A7A5EFEE343AF05208305107FC85E000F546F0F5CAE6F589EBF5CBE6D7D5CAE60F
:20ED0000E161E8F1D78D01312309D568F061F8FC2FF2004056F001DF2AF556F0FC72E70053
:20ED2000FCBBEB00FCB9BE009F4DE5FCBDBE009F4EE5AF54E5F74361F8FE3D02FC37F300C6
:20ED4000FE31004057F001DF06F557F0FE69034058F001DF09F558F0FEBB00FEDB00405998
:20ED6000F001DF06F559F0FE8E02405AF00161F8F55AF0D720048F73F091DD3091DD329112
:20ED8000DD3491DD1791DD1E91F19803DD0698029800EF2A98029800510AEF22C8020AF1A3
:20EDA00098039800EF18C8030AF1EFE2C80005EF08C80007EF03C8000AF1980398024F4A6C
:20EDC000E5E061E3F0F19801F1FCE0F30088004F4AE561D303E19801E19800880170E1FCEA
:20EDE000E0F30088024F4AE561C303F19800C0C15102FCE0F30088034F4AE5E061E3F05177
:20EE000003FCE0F3008F4AE5819F4AE54C0A61C8F54AE51004D7E1FCD5F3009F70F0F1FCF4
:20EE2000D5F3009F6FF05102FCD5F3009F71F05103FCD5F3009F72F0D73670F0511F5F7C24
:20EE4000F07184366FF071D97184367DF071813671F071843672F071E9718471F99F7CF07C
:20EE6000D7D7D7D72024E6C1AEF8040400B802340F00320014FC80A900C0880281DF41F159
:20EE8000734C08DE07C6C709DEA3EF184C19DE07318E04DEA3EF094C21DE0B318E04DEA388
:20EEA00014C6C78961D983634C21DFD5302100C1340F00320014AEF8040400FCA4A700C097
:20EEC000E6C1AEF8040400B802340F00320018FC80A900C0880281DF4CF1734C10DE07C610
:20EEE000C709FFA3EF234C14DE07318E04FFA3EF144C18DE07318E04FFA3EF094C20DE0BE6
:20EF0000318E04FFA314C6C78961D983634C20DFCA302000C1340F00320018AEF8040400E1
:20EF2000FCA4A700C01024D78F0C03F3313501E38F04033115418F0C03313504A248E5E30D
:20EF40008F47E5724C0ADE0FAF48E5446400DC0762819F47E5EF11624C0ADC1BAF48E5445D
:20EF6000E803DC13CF47E50A340403F6BF48E5BA08A9085CFC08B963D7AF0C036031354506
:20EF8000FC14AE006031153DAF66F0F743DF358F68F073D1DF06306400BF66F0634C05DE32
:20EFA0000BD1DD08FE3100306400EF0A4C05DC09FE250030E803BF66F08F68F04C05DE0431
:20EFC000819F68F0D7D568F0DD0AAF66F0F74361F8F568F0F552E5D7345003F789718B994A
:20EFE0000089718A99AF0C0343DD04F6BF0C035404A9085CFC08B9D7C7F1FC51F400143216
:20F000001D01CEFB01316C31AE03BF74F01532546FCEFB0114C0C3316CA80031AEB800150A
:20F0200031AE031404BC0216BF76F0A8001261D8A1B800BF78F04400001761F8443521DE3E
:20F0400017E60254F0BF54F044FA00DC5630FA00BF54F0E552F0EF4BA8004400001761F810
:20F06000447440DC18E60254F0BF54F044FA00DC3230FA00BF54F0CF52F002EF2615049427
:20F08000DF1461C8B313F7431561F844591BDE13AF54F043DF09F6BF54F0F552F0EF04B14B
:20F0A000BF54F0C0D730F401BF5CF030D007BF54E5E564F0F573F0D7510F5F84F09F73F0EA
:20F0C000D7FCD7B00034B801F6B9BA40BA02BA42B9BA40FCECB10036F000710B3071C371C5
:20F0E00083719371230671330671030C713303713301714301710303712201AF0403086C8F
:20F100000408BF0403AF2603086C0108BF260300AF2603086C0408BF26037108C502716B84
:20F12000D0716BD48D0131750261FD716BD0716AD4712301FC82AE00FCB1AE00ECC7B000E1
:20F14000C3C66148880470DF118981739963614861D8D7CA0000CC0001D7CA0000CC00005B
:20F16000D7300500C18D01317A3461F03260F0E0FECDFFC0300500C18D01317A3463F03230
:20F1800062F0F0FEBAFFC04062F001DF05F564F0EF0C4060F001DF06E564F07133018F64B4
:20F1A000F04F7AF0DD0D9F7AF0D1DF07340603A95CFCB9D7148F74F099D7C1C3C664318E4A
:20F1C000A104FFFF12DD0BC4C58B99A7A5C0C513EFEFC0D75408327CF03094F0EFDC71237F
:20F1E00001511F5F8FF09F8FF0308801BF8CF0AF8EF0F05CE0BF8EF051806F93F05C8F9FCB
:20F2000093F0AF92F0F05CF0BF92F0F6BF90F0F54CE55408327CF03094F0EF9E364DE5318E
:20F220008301D73458E55208303303EC7DDD008F89E570914C02DE59604C02DF23AF94E5A1
:20F24000F743DF17364EE5AF92E5BF94E531850B8F9FE54C05DE04819F9FE5F560E5EF31B2
:20F260008F60E573D1DD2AAF94E56168DF23364EE563919F60E5AF92E5BF94E531851230E5
:20F28000A8E5FCE5AB008F9FE54C05DE04819F9FE5AF50E5F743DF2A364DE53185245408A6
:20F2A000327CF03094F0FE11FF308CF0FCE5AB008F4CE5814C1061C8F19F4CE5303200BF0E
:20F2C00050E5D7C11413B98A035C1F9A0315A1A114A9F05CE0B9C4C58A0771FA5C8F9A07D2
:20F2E0001504060014A9F05CF0B9A80004040014F6B9C0D7F1731962E50083634C04DFF565
:20F30000D74C04DE05731966E501D74C04DE0573196AE501D74C04DE0B318E0466E514896A
:20F32000CA0000D7F1D74C04DE0B318E046AE51489CA0000D7F1D7C7F19800FE6100729161
:20F34000DF268800318E148800730962E5D1DF181501046EE514A9A1B9441400DC361962D1
:20F36000E50163FE9BFFEF2CD2DF2988005002D612796EE5440000DF178800730962E59113
:20F38000DF058800FE84FF8800731962E500EF04B1786EE588008198004C04DF9EC0D7D1E0
:20F3A000DD1591DD1B91DD1E91DF0A5103FEA100441400DC14F1D78D06313A5C017C01D71A
:20F3C0008D06312AEFF5E1EFE45102FE830044E903E13C00D74C04DE05730962E5D7F1D71A
:20F3E000C1D1DD0E91DD1B91DD2891DD2F91DD33C0D7D0502061F8F051DF5B0161689D0120
:20F40000C0C1D0504061F8F051BF5B0161689D01EFDED0508061F8F0517FEFEED0E0DF27D6
:20F42000F0EF24D0DF065A01DFF0EF056A0120504051BF5B0161689D018800D1DF055A0170
:20F440007FEFDD6A0180E051FE5B0361089D03EF9F4C04DE085002D61279D6F0D7F6D78E71
:20F4600031D1DD0D91DD1591DD1D91DD25CE3100D730D6F0FCFEB100CE3101D730D8F0FCBD
:20F48000FEB100CE3102D730DAF0FCFEB100CE3103D730DCF0FCFEB100EFD214CA0000D74A
:20F4A0001653FF62318EA104FFFF1463DD1750087D7261017362317504637CB8739063DFB1
:20F4C000F0A715EFE27CFFD71653FF62318EA104FFFF1463DD0A7D73A709D8A47315EFEF51
:20F4E0007CFFD7FF00000000000000003200C8007856341211121314222431333536377F98
:20F50000727173787E00112233445566778899AABBCCDDEEFF0000000000000000000000A7
:20F520000003030032000000D00701030000000000000000000000000000000000000000B8
:20F5400000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
:20F56000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
:20F58000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
:20F5A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
:20F5C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
:20F5E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
:20F60000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
:20F62000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
:20F64000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
:20F66000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
:20F68000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
:20F6A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
:20F6C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
:20F6E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
:20F70000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
:20F72000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
:20F74000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
:20F76000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
:20F78000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
:20F7A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
:20F7C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
:20F7E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
:20F80000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
@ -3295,7 +3295,7 @@
:209BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
:209BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
:209BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
:209C00004857303330302020202020202020202030312E30312E30312020202020303230F1
:209C00004857303130302020202020202020202030312E30322E30302020202020303230F3
:209C200031202020202020202020202020FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
:209C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
:209C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff