diff --git a/.project b/.project index 36714e6..af188fa 100644 --- a/.project +++ b/.project @@ -24,4 +24,17 @@ org.eclipse.cdt.core.ccnature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + driverlib + 2 + C:/ti/mspm0_sdk_2_02_00_05/source/ti/driverlib + + + + + SYSCONFIG_TOOL_SYMBOLS + file:/C:/ti/ccs1280/ccs/utils/sysconfig_1.21.0 + + diff --git a/Core/Source/ivec_mcal_mcan.c b/Core/Source/ivec_mcal_mcan.c index b1dc66e..1dce87d 100644 --- a/Core/Source/ivec_mcal_mcan.c +++ b/Core/Source/ivec_mcal_mcan.c @@ -20,13 +20,14 @@ volatile DL_MCAN_RxBufElement TempRxMsg; volatile uint8_t TempRxBuffer[8]; volatile uint32_t TempRxID; volatile uint32_t id; -DL_MCAN_ProtocolStatus HeaderStat; +volatile DL_MCAN_ProtocolStatus HeaderStat; volatile uint32_t l_canTransmitTimeout; volatile uint8_t u8CallBack_buff[8]={0}; volatile IVEC_McalStatus_e l_statusFlag = IVEC_MCAL_STATUS_SUCCESS; extern volatile uint8_t u8CANDataAct; #define MCAN_FILTER_SIZE 0u /*REQUIRED MCAN CONFIGS*/ +#define MCAN_FILTER_SIZE 2u __attribute__((weak)) void mcu_FDCAN_RxFifo_Callback(uint32_t Identifier, uint8_t *data, uint16_t DataLength) @@ -177,6 +178,7 @@ static DL_MCAN_MsgRAMConfigParams gMCAN0MsgRAMConfigParams ={ .rxFIFO1ElemSize = DL_MCAN_ELEM_SIZE_8BYTES, }; + static DL_MCAN_BitTimingParams gMCAN0BitTimes_500 = { /* Arbitration Baud Rate Pre-scaler. */ .nomRatePrescalar = 0, @@ -219,8 +221,8 @@ static DL_MCAN_BitTimingParams gMCAN0BitTimes_250 = { static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem1 = { .sfec = 001, .sft = 0x00, - .sfid1 = 0x1, - .sfid2 = 0x539, + .sfid1 = 0, + .sfid2 = 1280, }; //static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem1 = { @@ -233,8 +235,8 @@ static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem1 = { static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem2 = { .sfec = 0x1, .sft = 0x00, - .sfid1 = 0x541, - .sfid2 = 0x2046, + .sfid1 = 1536, + .sfid2 = 2046, }; static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem3 = { @@ -259,17 +261,18 @@ static const DL_MCAN_StdMsgIDFilterElement gMCAN0StdFiltelem5 = { }; static const DL_MCAN_ExtMsgIDFilterElement gMCAN0ExtFiltelem1 = { - .efec = 001, - .eft = 10, - .efid1 = 0x1fffff69, - .efid2 = 0xff, + .efec = 0x1, + .eft = 0x0, + .efid1 = 2047, + .efid2 = 536870911, }; + static const DL_MCAN_ExtMsgIDFilterElement gMCAN0ExtFiltelem2 = { .efec = 0x1, .eft = 0x0, - .efid1 = 4000, - .efid2 = 4500, + .efid1 = 2047, + .efid2 = 536870911, }; static const DL_MCAN_ExtMsgIDFilterElement gMCAN0ExtFiltelem3 = { @@ -285,14 +288,15 @@ volatile DL_MCAN_TxBufElement txMsg = { .xtd = 0U, .esi = 0U, .dlc = 8U, - .brs = 1U, - .fdf = 1U, + .brs = 0U, + .fdf = 0U, .efc = 1U, .mm = 0xAAU, - .data = 0U, + .data = {0}, }; + /*____________________________________________________________________________________________________________________________________________________________________________________________*/ @@ -315,98 +319,75 @@ static void _prv_vGetRxMsg(DL_MCAN_RxBufElement *rxMsg,uint32_t *ID,uint8_t *RxD } +void __prv_CANInterruptProcess(uint32_t u32InterruptStatus) +{ + uint32_t IntrStatus = u32InterruptStatus; + DL_MCAN_getProtocolStatus(CANFD0, &HeaderStat); + + if (IntrStatus & DL_MCAN_INTERRUPT_TC){ + b_ServiceInt = true; + u8_MCAN_StatusFlag = IVEC_MCAL_STATUS_SUCCESS; + } + + if( IntrStatus & DL_MCAN_INTERRUPT_BO) + DL_MCAN_setOpMode(CANFD0, DL_MCAN_OPERATION_MODE_NORMAL); + + if(IntrStatus & (DL_MCAN_INTERRUPT_RF0N | DL_MCAN_INTERRUPT_RF1N)){ + + while (false == b_ServiceInt); + + b_ServiceInt = false; + rxFS.fillLvl = 0; + rxFS.num = (IntrStatus & DL_MCAN_INTERRUPT_RF0N) ? DL_MCAN_RX_FIFO_NUM_0 : DL_MCAN_RX_FIFO_NUM_1; + + while ((rxFS.fillLvl) == 0) + { + DL_MCAN_getRxFIFOStatus(CANFD0, &rxFS); + } + + DL_MCAN_readMsgRam(CANFD0, DL_MCAN_MEM_TYPE_FIFO, 0, rxFS.num, &TempRxMsg); + DL_MCAN_writeRxFIFOAck(CANFD0, rxFS.num, rxFS.getIdx); + + b_ServiceInt = true; + if(HeaderStat.busOffStatus==1) + { + DL_MCAN_setOpMode(CANFD0, DL_MCAN_OPERATION_MODE_NORMAL); + } + if( !TempRxMsg.xtd ) + TempRxMsg.id = (uint32_t)(TempRxMsg.id >> 18); + uint8_t l_pu8DataArr[8] = {0}; + for( int ijk = 0; ijk < 8; ijk++ ) + l_pu8DataArr[ijk] = TempRxMsg.data[ijk] & 0xFF; + + mcu_FDCAN_RxFifo_Callback(TempRxMsg.id, &l_pu8DataArr[0], TempRxMsg.dlc); + } +} + /** * @brief Default Interrupt Handler for MCAN * */ void CANFD0_IRQHandler(void) { - uint32_t IntrStatus = DL_MCAN_getIntrStatus(CANFD0); - DL_MCAN_getProtocolStatus(CANFD0, &HeaderStat); - - if (IntrStatus & DL_MCAN_INTERRUPT_TC){ - __asm("nop"); - DL_MCAN_clearIntrStatus(CANFD0, IntrStatus,DL_MCAN_INTR_SRC_MCAN_LINE_1); - - b_ServiceInt = true; - u8_MCAN_StatusFlag = IVEC_MCAL_STATUS_SUCCESS; - __asm("nop"); - } - else if(IntrStatus & DL_MCAN_INTERRUPT_RF0N){ - - while (false == b_ServiceInt); - - b_ServiceInt = false; - rxFS.fillLvl = 0; - rxFS.num = DL_MCAN_RX_FIFO_NUM_0; - - while ((rxFS.fillLvl) == 0) + switch (DL_MCAN_getPendingInterrupt(CANFD0)) { + case DL_MCAN_IIDX_LINE1: { - DL_MCAN_getRxFIFOStatus(CANFD0, &rxFS); + uint32_t IntrStatus = DL_MCAN_getIntrStatus(CANFD0); + __prv_CANInterruptProcess(IntrStatus); + DL_MCAN_clearIntrStatus(MCAN0_INST, IntrStatus, + DL_MCAN_INTR_SRC_MCAN_LINE_1); } - - DL_MCAN_readMsgRam(CANFD0, DL_MCAN_MEM_TYPE_FIFO, 0, rxFS.num, &TempRxMsg); - DL_MCAN_writeRxFIFOAck(CANFD0, rxFS.num, rxFS.getIdx); - - xCanIdType_t idType = ERROR; -// if (TempRxMsg.id >= 0 && TempRxMsg.id <= 0x7FF) -// { -// idType = STD_ID; -// } else if (TempRxMsg.id <= 0x1FFFFFFF) -// { -// idType = EXT_ID; -// } -// -// for(int i=0;i<8;i++) -// { -// u8CallBack_buff[i]=(TempRxMsg.data[i] & 0xFF); -// } - - uint64_t idx = 0; - idx = TempRxMsg.id; - uint32_t value = ((TempRxMsg.id & (uint32_t) 0x1FFC0000) >> (uint32_t) 18); - if ((value > 0) && (value <= 0x7FF)) - if(TempRxMsg.xtd == 0) - { - idType = STD_ID; - idx = value; - idx = ((TempRxMsg.id & (uint32_t) 0x1FFC0000) >> (uint32_t) 18); - } - - - __asm("nop"); - - TempRxID = idx; - _prv_vGetRxMsg(&TempRxMsg,&TempRxID ,TempRxBuffer,TempRxMsg.dlc); - DL_MCAN_clearIntrStatus(CANFD0, IntrStatus,DL_MCAN_INTR_SRC_MCAN_LINE_1); - b_ServiceInt = true; - if(HeaderStat.busOffStatus==1) + break; + case DL_MCAN_IIDX_LINE0: { - DL_MCAN_setOpMode(CANFD0, DL_MCAN_OPERATION_MODE_NORMAL); + uint32_t IntrStatus = DL_MCAN_getIntrStatus(CANFD0); + __prv_CANInterruptProcess(IntrStatus); + DL_MCAN_clearIntrStatus(MCAN0_INST, IntrStatus, + DL_MCAN_INTR_SRC_MCAN_LINE_0); + break; } - - uint32_t u32RxCANID = 0; - uint8_t u8RxData[8] = {0}; - - xMCAL_MCANRx(CANFD0,&u32RxCANID,u8RxData,8); - -// vSOC_MeterCallback(u32RxCANID, &u8RxData[0]); - mcu_FDCAN_RxFifo_Callback(u32RxCANID, &u8RxData[0], TempRxMsg.dlc); - } - else if(IntrStatus & MCAN_IR_PEA_MASK) - { - __asm("nop"); - DL_MCAN_clearIntrStatus(CANFD0, IntrStatus,DL_MCAN_INTR_SRC_MCAN_LINE_1); - - } - else if(IntrStatus & MCAN_IR_BO_MASK) - - { - DL_MCAN_clearIntrStatus(CANFD0, IntrStatus,DL_MCAN_INTR_SRC_MCAN_LINE_1); - } - else{ - DL_MCAN_clearIntrStatus(CANFD0, IntrStatus,DL_MCAN_INTR_SRC_MCAN_LINE_1); - + default: + break; } } @@ -505,6 +486,7 @@ IVEC_McalStatus_e xMCAL_MCANInit(MCAN_Regs* MCAN, xCAN_baud_t BAUD) DL_MCAN_INTERRUPT_PEA | \ DL_MCAN_INTERRUPT_PED | \ DL_MCAN_INTERRUPT_RF0N | \ + DL_MCAN_INTERRUPT_RF1N | \ DL_MCAN_INTERRUPT_TC | \ DL_MCAN_INTERRUPT_TOO), 1U); @@ -516,11 +498,28 @@ IVEC_McalStatus_e xMCAL_MCANInit(MCAN_Regs* MCAN, xCAN_baud_t BAUD) DL_MCAN_INTERRUPT_PEA | \ DL_MCAN_INTERRUPT_PED | \ DL_MCAN_INTERRUPT_RF0N | \ + DL_MCAN_INTERRUPT_RF1N | \ DL_MCAN_INTERRUPT_TC | \ DL_MCAN_INTERRUPT_TOO), DL_MCAN_INTR_LINE_NUM_1); DL_MCAN_enableIntrLine(MCAN, DL_MCAN_INTR_LINE_NUM_1, 1U); + DL_MCAN_selectIntrLine(MCAN, (DL_MCAN_INTERRUPT_BEU | \ + DL_MCAN_INTERRUPT_BO | \ + DL_MCAN_INTERRUPT_ELO | \ + DL_MCAN_INTERRUPT_EP | \ + DL_MCAN_INTERRUPT_EW | \ + DL_MCAN_INTERRUPT_PEA | \ + DL_MCAN_INTERRUPT_PED | \ + DL_MCAN_INTERRUPT_RF0N | \ + DL_MCAN_INTERRUPT_RF1N | \ + DL_MCAN_INTERRUPT_TC | \ + DL_MCAN_INTERRUPT_TOO), DL_MCAN_INTR_LINE_NUM_0); + DL_MCAN_enableIntrLine(MCAN, DL_MCAN_INTR_LINE_NUM_0, 1U); + /* Enable MSPM0 MCAN interrupt */ + DL_MCAN_clearInterruptStatus(MCAN,(DL_MCAN_MSP_INTERRUPT_LINE0)); + DL_MCAN_enableInterrupt(MCAN,(DL_MCAN_MSP_INTERRUPT_LINE0)); + DL_MCAN_clearInterruptStatus(MCAN,(DL_MCAN_MSP_INTERRUPT_LINE1)); DL_MCAN_enableInterrupt(MCAN,(DL_MCAN_MSP_INTERRUPT_LINE1)); NVIC_SetPriority(CANFD0_INT_IRQn, 1); @@ -602,9 +601,7 @@ IVEC_McalStatus_e xMCAL_MCANTx(MCAN_Regs *MCAN, uint32_t u32ID ,uint16_t *TxData { txMsg.data[i]=TxData[i]; } - - // memcpy(txMsg.data,TxData,Bytes); - __asm("nop"); + txMsg.dlc = Bytes; DL_MCAN_writeMsgRam(MCAN, DL_MCAN_MEM_TYPE_BUF, BufNum , &txMsg); @@ -618,11 +615,9 @@ IVEC_McalStatus_e xMCAL_MCANTx(MCAN_Regs *MCAN, uint32_t u32ID ,uint16_t *TxData while(1){ if (u8_MCAN_StatusFlag == IVEC_MCAL_STATUS_SUCCESS || u8_MCAN_StatusFlag == IVEC_MCAL_STATUS_ERROR){ - __asm("nop"); return u8_MCAN_StatusFlag; } else if((i32MCAL_getTicks() - l_canTransmitTimeout) > 2){ - __asm("nop"); return IVEC_MCAL_STATUS_TIMEOUT; } } @@ -655,18 +650,12 @@ IVEC_McalStatus_e xMCAL_MCANRx(MCAN_Regs *MCAN,uint32_t *ID ,uint8_t *RxData, in DL_MCAN_setOpMode(CANFD0, DL_MCAN_OPERATION_MODE_NORMAL); } - if((((TempRxID&0xFFF)>>1)==0x16)) - { - xMCAL_SoftReset(); - } - if((((TempRxID&0xFFF)>>1)==0x1AE)||(((TempRxID&0xFFF)>>1)==0x520)||(((TempRxID&0xFFF)>>1)==0xBB)||(((TempRxID&0xFFF)>>1)==0x1A4)||(((TempRxID&0xFFF)>>1)==0x521))//TODO: CHANGE ID CHECKS AFTER UPDATED CAN MATRIX - { - *ID=((TempRxID&0xFFF)>>1); - } - else - { - *ID=TempRxID; - } +// if((((TempRxID&0xFFF)>>1)==0x16)) +// { +// xMCAL_SoftReset(); +// } + + *ID=TempRxID; for(int i=0;ieUartPortNumber); // Check if the UART instance is valid - if (uart_inst == NULL) + if (uart_inst == NULL || u32size==0) { return STATUS_ERROR; } - // Check if data length is valid - if(u32size==0) - { - return STATUS_ERROR; - } - uint32_t l_u32Tick = i32MCAL_getTicks(); for(int j=0; j +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * ======== SYSCFG_DL_init ======== + * Perform all required MSP DL initialization + * + * This function should be called once at a point before any use of + * MSP DL. + */ + + +/* clang-format off */ + +#define POWER_STARTUP_DELAY (16) + + +#define GPIO_HFXT_PORT GPIOA +#define GPIO_HFXIN_PIN DL_GPIO_PIN_5 +#define GPIO_HFXIN_IOMUX (IOMUX_PINCM10) +#define GPIO_HFXOUT_PIN DL_GPIO_PIN_6 +#define GPIO_HFXOUT_IOMUX (IOMUX_PINCM11) +#define CPUCLK_FREQ 24000000 + + + +/* Defines for CAPTURE_0 */ +#define CAPTURE_0_INST (TIMA1) +#define CAPTURE_0_INST_IRQHandler TIMA1_IRQHandler +#define CAPTURE_0_INST_INT_IRQN (TIMA1_INT_IRQn) +#define CAPTURE_0_INST_LOAD_VALUE (0U) +/* GPIO defines for channel 0 */ +#define GPIO_CAPTURE_0_C0_PORT GPIOA +#define GPIO_CAPTURE_0_C0_PIN DL_GPIO_PIN_10 +#define GPIO_CAPTURE_0_C0_IOMUX (IOMUX_PINCM21) +#define GPIO_CAPTURE_0_C0_IOMUX_FUNC IOMUX_PINCM21_PF_TIMA1_CCP0 + + + + + +/* Defines for TIMER_0 */ +#define TIMER_0_INST (TIMG0) +#define TIMER_0_INST_IRQHandler TIMG0_IRQHandler +#define TIMER_0_INST_INT_IRQN (TIMG0_INT_IRQn) +#define TIMER_0_INST_LOAD_VALUE (495U) +/* Defines for TIMER_1 */ +#define TIMER_1_INST (TIMA0) +#define TIMER_1_INST_IRQHandler TIMA0_IRQHandler +#define TIMER_1_INST_INT_IRQN (TIMA0_INT_IRQn) +#define TIMER_1_INST_LOAD_VALUE (1091U) + + + +/* Defines for UART_0 */ +#define UART_0_INST UART2 +#define UART_0_INST_FREQUENCY 24000000 +#define UART_0_INST_IRQHandler UART2_IRQHandler +#define UART_0_INST_INT_IRQN UART2_INT_IRQn +#define GPIO_UART_0_RX_PORT GPIOB +#define GPIO_UART_0_TX_PORT GPIOB +#define GPIO_UART_0_RX_PIN DL_GPIO_PIN_16 +#define GPIO_UART_0_TX_PIN DL_GPIO_PIN_15 +#define GPIO_UART_0_IOMUX_RX (IOMUX_PINCM33) +#define GPIO_UART_0_IOMUX_TX (IOMUX_PINCM32) +#define GPIO_UART_0_IOMUX_RX_FUNC IOMUX_PINCM33_PF_UART2_RX +#define GPIO_UART_0_IOMUX_TX_FUNC IOMUX_PINCM32_PF_UART2_TX +#define UART_0_BAUD_RATE (115200) +#define UART_0_IBRD_24_MHZ_115200_BAUD (13) +#define UART_0_FBRD_24_MHZ_115200_BAUD (1) + + + + + +/* Port definition for Pin Group GPIO_GRP_0 */ +#define GPIO_GRP_0_PORT (GPIOB) + +/* Defines for PIN_0: GPIOB.17 with pinCMx 43 on package pin 36 */ +#define GPIO_GRP_0_PIN_0_PIN (DL_GPIO_PIN_17) +#define GPIO_GRP_0_PIN_0_IOMUX (IOMUX_PINCM43) + + +/* Defines for MCAN0 */ +#define MCAN0_INST CANFD0 +#define GPIO_MCAN0_CAN_TX_PORT GPIOA +#define GPIO_MCAN0_CAN_TX_PIN DL_GPIO_PIN_26 +#define GPIO_MCAN0_IOMUX_CAN_TX (IOMUX_PINCM59) +#define GPIO_MCAN0_IOMUX_CAN_TX_FUNC IOMUX_PINCM59_PF_CANFD0_CANTX +#define GPIO_MCAN0_CAN_RX_PORT GPIOA +#define GPIO_MCAN0_CAN_RX_PIN DL_GPIO_PIN_27 +#define GPIO_MCAN0_IOMUX_CAN_RX (IOMUX_PINCM60) +#define GPIO_MCAN0_IOMUX_CAN_RX_FUNC IOMUX_PINCM60_PF_CANFD0_CANRX + + +/* Defines for MCAN0 MCAN RAM configuration */ +#define MCAN0_INST_MCAN_STD_ID_FILT_START_ADDR (0) +#define MCAN0_INST_MCAN_STD_ID_FILTER_NUM (1) +#define MCAN0_INST_MCAN_EXT_ID_FILT_START_ADDR (48) +#define MCAN0_INST_MCAN_EXT_ID_FILTER_NUM (1) +#define MCAN0_INST_MCAN_TX_BUFF_START_ADDR (148) +#define MCAN0_INST_MCAN_TX_BUFF_SIZE (2) +#define MCAN0_INST_MCAN_FIFO_1_START_ADDR (192) +#define MCAN0_INST_MCAN_FIFO_1_NUM (2) +#define MCAN0_INST_MCAN_TX_EVENT_START_ADDR (164) +#define MCAN0_INST_MCAN_TX_EVENT_SIZE (2) +#define MCAN0_INST_MCAN_EXT_ID_AND_MASK (0x1FFFFFFFU) +#define MCAN0_INST_MCAN_RX_BUFF_START_ADDR (208) +#define MCAN0_INST_MCAN_FIFO_0_START_ADDR (172) +#define MCAN0_INST_MCAN_FIFO_0_NUM (3) + + + + +/* clang-format on */ + +void SYSCFG_DL_init(void); +void SYSCFG_DL_initPower(void); +void SYSCFG_DL_GPIO_init(void); +void SYSCFG_DL_SYSCTL_init(void); +void SYSCFG_DL_SYSCTL_CLK_init(void); +void SYSCFG_DL_CAPTURE_0_init(void); +void SYSCFG_DL_TIMER_0_init(void); +void SYSCFG_DL_TIMER_1_init(void); +void SYSCFG_DL_UART_0_init(void); + +void SYSCFG_DL_MCAN0_init(void); + +bool SYSCFG_DL_saveConfiguration(void); +bool SYSCFG_DL_restoreConfiguration(void); + +#ifdef __cplusplus +} +#endif + +#endif /* ti_msp_dl_config_h */ diff --git a/TI_Bootloader.hex b/TI_Bootloader.hex new file mode 100644 index 0000000..223ec68 --- /dev/null +++ b/TI_Bootloader.hex @@ -0,0 +1,1860 @@ +:1000000000802020650600006106000061060000F7 +:1000100000000000000000000000000000000000E0 +:100020000000000000000000000000006106000069 +:10003000000000000000000061060000F51800004C +:100040006106000061060000610600006106000014 +:100050006106000061060000610600006106000004 +:1000600000000000610600006106000000000000C2 +:10007000000000006106000061060000610600004B +:1000800061060000610600006106000061060000D4 +:100090006106000061060000000000000000000092 +:1000A0006106000061060000000000000000000082 +:1000B000610600000000000061060000610600000B +:1000C000002243088B4274D303098B425FD3030A97 +:1000D0008B4244D3030B8B4228D3030C8B420DD3AA +:1000E000FF22090212BA030C8B4202D31212090238 +:1000F00065D0030B8B4219D300E0090AC30B8B4276 +:1001000001D3CB03C01A5241830B8B4201D38B0323 +:10011000C01A5241430B8B4201D34B03C01A5241C8 +:10012000030B8B4201D30B03C01A5241C30A8B420B +:1001300001D3CB02C01A5241830A8B4201D38B02F6 +:10014000C01A5241430A8B4201D34B02C01A52419A +:10015000030A8B4201D30B02C01A5241CDD2C3090C +:100160008B4201D3CB01C01A524183098B4201D388 +:100170008B01C01A524143098B4201D34B01C01A73 +:10018000524103098B4201D30B01C01A5241C308EB +:100190008B4201D3CB00C01A524183088B4201D35A +:1001A0008B00C01A524143088B4201D34B00C01A46 +:1001B0005241411A00D20146524110467047FFE7B2 +:1001C00001B5002000F006F802BDC0460029F7D0B6 +:1001D00076E770477047C046024670B50A439207FB +:1001E0002AD11E4DEE0104C808C9541B9443344063 +:1001F00017D0D0B2D9B2401A2106014310D190B223 +:1002000099B2401A210401430AD110021902000ACE +:10021000090A401A2102014302D1100E190E401A98 +:1002200070BD9A42DFD010BA19BA884201D90120B4 +:1002300070BD0020C04370BD02780B7801300131E1 +:10024000002A09D09A4207D102780B780130013197 +:10025000002A01D09A42EFD0D01A70BD01010101ED +:1002600003460B437FD4002243088B4274D3030917 +:100270008B425FD3030A8B4244D3030B8B4228D3B8 +:10028000030C8B420DD3FF22090212BA030C8B42DE +:1002900002D31212090265D0030B8B4219D300E07E +:1002A000090AC30B8B4201D3CB03C01A5241830B03 +:1002B0008B4201D38B03C01A5241430B8B4201D3B3 +:1002C0004B03C01A5241030B8B4201D30B03C01ADC +:1002D0005241C30A8B4201D3CB02C01A5241830A56 +:1002E0008B4201D38B02C01A5241430A8B4201D385 +:1002F0004B02C01A5241030A8B4201D30B02C01AAF +:100300005241CDD2C3098B4201D3CB01C01A524115 +:1003100083098B4201D38B01C01A524143098B429E +:1003200001D34B01C01A524103098B4201D30B0187 +:10033000C01A5241C3088B4201D3CB00C01A5241AC +:1003400083088B4201D38B00C01A524143088B4271 +:1003500001D34B00C01A5241411A00D2014652410A +:10036000104670475DE0CA0F00D04942031000D329 +:100370004042534000229C4603098B422DD3030A7E +:100380008B4212D3FC22890112BA030A8B420CD38E +:10039000890192118B4208D3890192118B4204D3B7 +:1003A00089013AD0921100E08909C3098B4201D337 +:1003B000CB01C01A524183098B4201D38B01C01A71 +:1003C000524143098B4201D34B01C01A52410309E8 +:1003D0008B4201D30B01C01A5241C3088B4201D397 +:1003E000CB00C01A524183088B4201D38B00C01A44 +:1003F0005241D9D243088B4201D34B00C01A52411B +:10040000411A00D20146634652415B10104601D3A7 +:100410004042002B00D54942704763465B1000D331 +:10042000404201B50020FFF7D5FE02BD0029F8D0FB +:1004300016E77047002B11D1002A0FD1002900D1F7 +:10044000002802D00021C943081C07B4024802A1B9 +:100450004018029003BDC0467DFDFFFF03B468460F +:1004600001B5029800F006F8019B9E4602B00CBC54 +:100470007047C046F0B557464E464546DE46E0B5A5 +:1004800004000D009246994683B08B4230D82DD09F +:100490004946504600F0BAF829000600200000F056 +:1004A000B5F8331A9846203B9B4633D45A465346F8 +:1004B000934042461F00534693401E00AF423AD835 +:1004C000AF4200D178E05B46A41BBD41002B00DAAF +:1004D00075E0002200230092019301235A469340C5 +:1004E0000193012342469340009328E08242CFD9F2 +:1004F00000220023009201930C9B002B01D01C6072 +:100500005D600098019903B03CBC90469946A246B4 +:10051000AB46F0BD424620239B1A5246DA40414684 +:1005200013004A468A40170042461F4353469340F1 +:100530001E00AF42C4D9002200230092019343461B +:10054000002BD9D0FB0772081A4346467B080EE001 +:10055000AB4201D1A2420CD8A41A9D41012024191A +:100560006D410021013E24184D41002E06D0AB42C2 +:10057000EED9013E24196D41002EF8D10098019961 +:100580005B4600196941002B24DB2B005A46444688 +:10059000D3402A00E2401C005B461500002B2ADBFA +:1005A00026009E40330026004746BE403200801A97 +:1005B0009941009001919FE7A342BCD883E742464E +:1005C000202300219B1A0022009101920122DA408F +:1005D000019286E7424620239B1A2A0046469A400B +:1005E0002300F340444613432A00E2401C005B46CC +:1005F0001500002BD4DA42462F0020232600974016 +:100600009B1ADE403B003343CDE7C04610B50029BE +:1006100003D100F007F8203002E0081C00F002F8D7 +:1006200010BDC0461C2101231B04984201D3000CBD +:1006300010391B0A984201D3000A08391B09984255 +:1006400001D30009043902A2105C40187047C0466B +:10065000040302020101010100000000000000008B +:10066000FEE7000010B50F4B0F4A10498B4202D233 +:1006700002CA02C3F9E70E4B0E4A0F498B4202D25F +:1006800002CA02C3F9E70D4B01E0002204C30C4A81 +:100690009342FAD302F0B6FF00F015F8FFF7E0FF3F +:1006A00010BDC0464000202090670000B80C2020FC +:1006B000000020208861000040002020B80C20208D +:1006C00018322020704710B501F03AF900F054F8C4 +:1006D000002010BD10B5074C074B236000F080FAD6 +:1006E0006060200000F062F800F04CF8034800F071 +:1006F0007BFA10BDB80C20204000202028012020CB +:1007000010B501F0FFF8040006E000F067F8194B9F +:100710001860012001F0FCF8164B1B68002B06D175 +:1007200001F0F0F8001BC8235B009842EDD3114B99 +:100730001B68012B09D000F0D7FC002812D16420DF +:1007400001F0E6F801F018F910BD792000F09EFBE9 +:10075000C046002400E0002400F05EF80134642C60 +:10076000F9DCF9E7642001F0D3F88020000200F002 +:100770006FFCE4E7C00C202010B5FFF7ABFFFFF7DC +:10078000BFFF10BD10B50024064B1B68A34200D864 +:1007900010BDE300044A9B581B68002B00D098470B +:1007A0000134F1E7C40C2020C80C202010B5094BFF +:1007B0001B68002B0BD1084AD90004688C50406894 +:1007C000521850600133034A1360002010BD01200D +:1007D000FCE7C046C40C2020C80C202010B5002027 +:1007E000002400E00134094B1B68A3420DD9E3004B +:1007F000074A9B589B68002BF4D098470128F1D1F9 +:10080000E400034B1C19034B1C6010BDC40C2020DA +:10081000C80C2020D00C202010B52D4B1B681B6865 +:10082000DB68002B0FD098471038C3B2072B45D890 +:100830009800284B1B589F46254B1B685B681B681C +:10084000002B00D0984710BD214B1B685B685B688C +:10085000002BF8D09847F6E71D4B1B685B689B6838 +:10086000002BF0D09847EEE7194B1B685B68DB68FC +:10087000002BE8D09847E6E7154B1B685B681B69BF +:10088000002BE0D09847C046DDE7114B1B685B6842 +:100890001B6A002BD7D09847D5E70D4B1B681B6808 +:1008A0001B69002BCFD079209847CCE7084B1B68F9 +:1008B0005B685B69002BC6D09847C4E7044B1B6894 +:1008C0001B681B69002BBED01F209847BBE7C046A2 +:1008D000D00C20202862000010B500F0DFFE10BD13 +:1008E00010B582B06A460D4B03CB03C2792000F0ED +:1008F000CDFA082000F0CAFA212000F0C7FA00243F +:1009000004E06B46185D00F0C1FA0134072CF8D9F9 +:10091000792000F0BBFA02B010BDC046486200006A +:10092000F8B500F009FA002803D01F2000F0AEFA55 +:100930001CE0792000F0AAFA1B4A13781B025178B8 +:100940000D001D4311701B0A5370EE0807272F403E +:10095000002E0CD1002F1AD1802280205200124983 +:10096000000200F0EFF9792000F090FAF8BD0024C1 +:10097000B442EFD0E00002300B4BC0181722082120 +:1009800000F04CFA792000F081FA0134F0E7E81B1E +:100990000230054D40191722082100F03FFA792056 +:1009A00000F074FAD8E7C046080D202010B5040006 +:1009B000094A13781B06517809040B439178090200 +:1009C0000B43D0781843206000F044F9002801D18F +:1009D0001F3010BD7920FCE7080D202000B583B042 +:1009E00000F0AAF9002804D01F2000F04FFA03B04D +:1009F00000BD792000F04AFA01A8FFF7D7FF1F28B1 +:100A00000AD000F071FB002809D0792000F03EFAEE +:100A1000019800F093F9EAE700F038FAE7E71F20C1 +:100A200000F034FAE3E70000F0B583B000F084F999 +:100A3000041E04D01F2000F029FA03B0F0BD01A865 +:100A4000FFF7B4FF1F2815D0792000F01FFA184BCC +:100A50001D790135EF0807262E40072D0DD8002EF1 +:100A60001AD12A001249019800F04AF9792000F0C1 +:100A70000DFAE2E700F00AFADFE7BC42EFD0E0004F +:100A80000B4BC0181422082100F0C8F9792000F09F +:100A9000FDF90134E4B2F0E7A81B054E80191422D9 +:100AA000082100F0BBF9792000F0F0F9D9E7C04641 +:100AB000080D2020F0B5CE46474680B583B000F043 +:100AC0003BF9071E07D01F2000F0E0F903B00CBC73 +:100AD00090469946F0BD01A8FFF768FF1F280FD088 +:100AE000792000F0D3F9284B1B790133DA089046BE +:100AF00007221A409146019800F0CEF8060021E046 +:100B000000F0C4F9E2E70830310000F0E1F831000C +:100B1000019800F0DDF81D4B18550134E4B2019B3B +:100B200001330193013D002D04D00198184B9842E8 +:100B3000EDD8E8E70821154800F024FA01235B42CC +:100B40009C46E0444346002B02D03C000825EAE7DF +:100B50004B46002B16D1792000F098F9B6E731000A +:100B6000019800F0B5F8094BD8550137FFB2019B49 +:100B700001330193013C002CF1D14946034800F0B8 +:100B800001FAE8E74C46F6E7080D2020080E202081 +:100B9000EFFF010010B5792000F078F90548342303 +:100BA000037003334370022100F0ECF9792000F068 +:100BB0006DF910BD080E202010B5792000F066F9FF +:100BC000212000F063F905480023037043700221DF +:100BD00000F0D8F9792000F059F910BD080E202056 +:100BE000004870475400202070B5184B1968002940 +:100BF0002AD1174B4A00541824010568E5501B19E7 +:100C000042685A6082689A60C268DA6002691A6152 +:100C100042695A6182699A61416A5962C16AD962BC +:100C20009047082805D0094A136801331360002053 +:100C300070BD064B1A6853009B181B01044AD31859 +:100C4000802292025A60EEE70120F1E7D40C2020C6 +:100C5000D80C2020002300E001330D4A12689A428C +:100C600013D95A00D21812010A4952588242F3D8B5 +:100C70005A00D21812018A1852688242ECD35A00E4 +:100C8000D3181B01CB18D86800E000207047C0467D +:100C9000D40C2020D80C20200100002000E00130DE +:100CA000094B1B6883420DD943001B181B01074ADF +:100CB0009B588B42F3D843001B181B01D3185B6869 +:100CC0008B42ECD37047C046D40C2020D80C202097 +:100CD00010B5094B1B688B4209D94B005918090103 +:100CE000064B59180B69002B03D0984700E00020F1 +:100CF00010BD0020FCE7C046D40C2020D80C2020DA +:100D000070B506000C001500FFF7C6FF084B1B6806 +:100D100083420BD9430018180001064B1818436989 +:100D2000002B03D02A0021003000984770BDC04638 +:100D3000D40C2020D80C20200020704710B500F0E3 +:100D400087F910BD70B50C001500FFF7A5FF0A4B21 +:100D50001B6883420BD9430018180001074B181871 +:100D6000C36A002B05D029002000984700E001202D +:100D700070BD0120FCE7C046D40C2020D80C2020F8 +:100D800010B50021014800F015FA10BD0080504058 +:100D900010B5024800F0A0FA10BDC04600805040D7 +:100DA00010B5FFF7EDFF10BD30B583B0002501246D +:100DB000002C11D0144B1A00803A190084390A20F3 +:100DC0000090124800F0D6FA0400FFF785FD0135C7 +:100DD000642DEDDD0025EBE7FFF77EFD0C4B5B6836 +:100DE000D8B20C4A5360002306E0094AD218117A9F +:100DF000094AD1540133DBB2054988228A5C9A4200 +:100E0000F3D803B030BDC046781020200080504099 +:100E1000F00F20209C002020080D2020F0B583B08A +:100E200007000E001500164B00225A60002403E054 +:100E30000134642C00DD0024124B1A00803A1900A2 +:100E400084390A200090104800F094FA0028EFD16D +:100E50000B4B5B68AB42EBD1FFF73EFD084B5B6889 +:100E6000AB420AD003B0F0BD054AD218127AFA5448 +:100E70000133DBB2B342F7D3F4E70023FAE7C0460D +:100E8000F00F2020781020200080504010B582B054 +:100E9000124A01238821535451682031516048245B +:100EA00010534832009300230D4800F0F3FA002459 +:100EB00004E00B4800F0E4FA01231840002804D0B5 +:100EC0000134642CF5DD0024F3E7FFF705FD034A48 +:100ED0005368203B536002B010BDC0469C002020E8 +:100EE0000080504030B585B0002302930393204B1F +:100EF0001A00803A19008439642000901D4800F0DF +:100F000039FA00282CD11C4B5B68DAB21B494B60C4 +:100F1000162A01D0002424E002AB17490A00083247 +:100F2000180030CA30C000229A71C87B03001E3BF3 +:100F3000DBB2092B1AD80A21FFF748F9C9B20529F3 +:100F400001D000240DE00E4902A8FFF745F9002862 +:100F500001D0002405E07930FFF798FF012400E07C +:100F60000024FFF7B9FC200005B030BD0024F8E7ED +:100F70007810202000805040F00F20209C0020207E +:100F80005062000070B582B00E00164B8822995452 +:100F90005968203159600023B34207D2C55C1A005A +:100FA000243252000F4C15530133F5E7009600230D +:100FB0000D4A0E4800F06EFA002404E00B4800F0E1 +:100FC0005FFA01231840002804D00134642CF5DDB9 +:100FD0000024F3E7FFF780FC024A5368203B53608C +:100FE00002B070BD9C002020E40020200080504012 +:100FF000054B1B78002B04D1034B01221A700020F3 +:10100000704701204042FBE7080F2020007870471E +:10101000F8B506000F001500530702D007239D43C3 +:101020000835002402E000F09BFC0834AC420BD2EF +:1010300000F098FC3A19A119044800F09AF840B25F +:101040000028F0D0C046EEE7F8BDC04600D00C4006 +:1010500010B50400FFF79CFE00F086FC084B002250 +:101060001A605A609A60236883F30888236883F3C0 +:101070000988BFF36F8F034B9C606368984710BD6E +:1010800010E000E000ED00E0F0B5C64600B5050058 +:101090000E000788023500F065FC00239846002406 +:1010A0000BE089020F4800F04EF840B2002802D051 +:1010B00001239C46E04401350134BC4207D2730849 +:1010C000A34204D929781F29EBD8C046F3E700F0E2 +:1010D00047FC4346002B03D0012004BC9046F0BDE2 +:1010E0000020FAE700D00C4010B580200002FFF786 +:1010F000B1FD012818D180231B0219684B1C15D0A3 +:101100000A000023FE2000060321494212184B4129 +:1011100007490C68002101208B4202DC02D1A24267 +:1011200000D9002040B200E0002010BD0020FCE704 +:101130005801202010B500F071FD10BD10B500F071 +:1011400063FE40B210BD70B504000D008022920015 +:10115000FFF7F0FF40222900200000F0E9FC0328FF +:1011600005D0042801D0012070BD0238FCE7002022 +:10117000FAE770B504000D00160080229200FFF718 +:10118000D9FF32002900200000F030FD032803D0F1 +:1011900004280CD0012070BD320029002000FFF788 +:1011A000CDFF032801D00120F5E70020F3E7023846 +:1011B000F1E7000030B58BB004000D00354BEC2298 +:1011C00086219950043234499950344B984245D184 +:1011D000012D49D8324B1B78002B4BD1F223DB0178 +:1011E0000122C2502F4900F041FE6946200001F063 +:1011F0004BFD200000F05AFE0028FAD0012120000B +:1012000000F078FE200000F08BFE0128FAD126497C +:10121000200000F099FE2549200000F085FF002DF8 +:101220002ED0012D31D02249200001F0CDF8214AE5 +:101230000021200001F0B8FB1F49200001F034FA22 +:101240000021200000F056FE200000F069FE00287A +:10125000FAD1134B01221A700BB030BD174B184A4C +:10126000B921184802F09CF9174B154ABA211548C4 +:1012700002F096F9154B124ABB21124802F090F980 +:101280001349200000F0FAFFCDE71249200000F0DA +:10129000F5FFC8E70080424086000400008050400F +:1012A000090F202038630000CC012020A00120205D +:1012B000000220203C630000FFFFFF1F5862000077 +:1012C000F0620000686200008C620000B4620000FE +:1012D000800120206001202010B504001A4B9842A4 +:1012E00024D11A4B1B78002B27D0194B194AC25016 +:1012F000102000F051FB0023F222D201A3508022E3 +:10130000154940208850BFF34F8FBFF36F8FD02116 +:10131000C9019820800560500C490B700F4BEC21DF +:101320005A5070320E499950002010BD83210D4B48 +:101330000D4A49000D4802F033F908210C4B0A4AC6 +:10134000FF310A4802F02CF900805040090F20209C +:1013500004680000030000B100E100E000804240AA +:101360008000040058620000006300006862000012 +:10137000CC620000F0B5CE46474680B583B08946C2 +:1013800090461F000A9E354B98421CD1344B1B7867 +:10139000002B1FD0334B00225A6000F0B3FA050037 +:1013A000304B5B68002B1CD100F0ACFA401BB04204 +:1013B0004CD22A4C2B49200001F090FB2A492000F6 +:1013C00001F036FBECE7D621284B294A4900294891 +:1013D00002F0E6F8D721284B254A4900254802F0BB +:1013E000DFF8204C0023236023681C4D234A009221 +:1013F00000220121280001F01FFA2168A2682800BC +:1014000001F0CEFB002827D11C4B1A7D3A709B6857 +:10141000012B08D0194B1B689B0C5B055B0D4A46E2 +:10142000136000230DE0154B4A461B681360F8E774 +:101430001A00143252001149525A4146CA5401331B +:10144000DBB23A789A42F3D8002000E0032003B0E0 +:101450000CBC90469946F0BD0020F8E70080504053 +:10146000090F20202411202078112020586200002C +:101470002463000068620000CC6200000C0F202092 +:1014800010B501F0EFFBC0B2012801D0012010BD62 +:101490000020FCE7F0B5C64600B5060017009846E8 +:1014A000069A374B98420FD1364B1B78002B12D03F +:1014B000082A17D880231B0199421AD3324B0120E6 +:1014C00098601960002123E09321304B304A490095 +:1014D000304802F065F828212F4B2D4AFF312D4866 +:1014E00002F05EF894212D4B294A4900294802F068 +:1014F00057F8254B0020986089041960E2E74B00FB +:10150000D85B0D0010356D001F4C6419A0800131AF +:101510009142F4D31C4B1A61C04642460021300070 +:1015200001F0EEF84146300001F052F9431C25D09D +:1015300000F0E8F91A4B18601A4B02221A700BE0FF +:10154000C046184B187840B204BC9046F0BD30003D +:10155000FFF796FF134B1870124B1B78002BEFD040 +:10156000104B1B78012BEBD000F0CCF90C4B1B6817 +:10157000C01A0228EBD9C0460320E5E70120E3E7C3 +:1015800000805040090F2020600220205862000097 +:101590001463000068620000CC620000E462000096 +:1015A000D83120200403202040284DD883002A4A27 +:1015B000D3589F463020002301E030200223274AE1 +:1015C0001278002A43D10343C92000061843244B54 +:1015D000882252019850234ABE2109069950802240 +:1015E00012019B58DB0735D51F4A204BD3581B05EA +:1015F000FAD51A4B01221A70002027E0302003236D +:10160000DDE730200423DAE730200523D7E7302058 +:101610000623D4E730200723D1E720200123CEE79B +:1016200020200223CBE70323C9E720200423C6E7B9 +:1016300020200523C3E720200623C0E7202007231E +:10164000BDE730200123BAE7012040427047012066 +:101650004042FBE70320F9E74C630000B40F202071 +:10166000002008400411000000F00A4004120000AD +:10167000084B1B78002B0AD0074A80231B019821B6 +:101680008905D150034B00221A70002070470120B9 +:101690004042FBE7B40F202000200840054A064BDB +:1016A000D358012B01D001207047044BA721D15002 +:1016B0000020F9E7002008400C110000081100008C +:1016C000074A084BD15808480140D150D15803303F +:1016D000FF308143D150054B00221A707047C0463D +:1016E00000F00A4008110000FFFEFFFFB50F2020A8 +:1016F000114B1B78012B1AD0104B984219D101388D +:1017000080235B0498420DD20D4A50600D48036A55 +:101710001B021B0AC02109060B43036200239360CE +:1017200007331360044B01221A70002003E00120EC +:1017300001E0012040427047B50F202080BB00002F +:1017400010E000E000ED00E010B50949094A0A4B3D +:10175000CA500A4B0A481A500A4AD020C0010A50FF +:10176000802109015A50102000F016F910BDC04622 +:1017700000805040030000B10468000000200840D1 +:10178000040800000100002610B5032902D0062934 +:1017900000D08FE0022802D0042800D08DE0032979 +:1017A00007D0062922D0022825D0042855D00020B1 +:1017B00010BD434B8A2252010239995041490A69AE +:1017C000042422430A6140495A58404C22405A504E +:1017D0003F4A002199503F4A116880239B004B40AB +:1017E000F024240123404B401360DCE7344A384B9B +:1017F0000021D150D7E7324A354B0021D150354C2A +:10180000216880239B004B40F020000103404B40A7 +:10181000236031490B68032083430B602F4BD15861 +:1018200002388143D150D1582D480140D1508230E7 +:10183000FF3001220A21800101F078FE294801F0E1 +:10184000ABFD216810224A40302313404B402360F7 +:10185000002001F03BFE0020AAE71F4A1368032185 +:101860008B431360164C1D4BE25802398A43E250F9 +:10187000E2581B490A40E2501A4801F08DFD1A4A0D +:101880001168A023DB014B40F020000203404B40D5 +:1018900013600D49605880235B0103436350134973 +:1018A0006358102003436350136811490B401360C1 +:1018B00000207DE7012040427AE70120404277E79F +:1018C00000F00A4000ED00E004110000FFFFDFFF20 +:1018D0000813000004010B4000010B400811000038 +:1018E000FFFEFFFF5064000038010B403C11000078 +:1018F000FFFDFFFF024A1368013313607047C046C3 +:10190000E4312020014B18687047C046E4312020A4 +:1019100010B584B00400FFF7F5FF03900023029395 +:10192000FFF7F0FF0190029BA34207D2019B039AAD +:101930009B1A0293FFF7E6FF0190F4E704B010BD95 +:1019400010B5FFF701FF03210220FFF71DFF034839 +:10195000FFF7CEFE0820FFF727FE10BD80BB00007A +:1019600062B6704772B6704710B5FFF781FEFFF799 +:10197000A7FEFFF7F7FF10BD044B9822520100218C +:101980009950034A034999507047C04600F00A40F5 +:1019900004130000010000E480B584B000AF78605B +:1019A0007A68931E043BC046FCD2FB60C046BD462D +:1019B00004B080BD80B584B000AFF860B9607A60D3 +:1019C000FA68BB681A4305497B681A4398235B0190 +:1019D000CA50C046BD4604B080BDC046000040406D +:1019E00080B500AF044A98235B01D3580722134007 +:1019F0001800BD4680BDC0460000404080B582B0A2 +:101A000000AFFFF7EDFF03007B60042200210120FF +:101A1000FFF7D0FF084B9B699AB2BB1C1205120D51 +:101A20001A80064998235B017A68CA50BB1C1B8840 +:101A30001800BD4602B080BD0000C4410000404017 +:101A400080B582B000AFFFF7CBFF03007B600422BC +:101A500000210120FFF7AEFF0A4B9B691B0BDBB295 +:101A600003221340DAB2FB1C01321A700649982394 +:101A70005B017A68CA50FB1C1B781800BD4602B097 +:101A800080BDC0460000C4410000404080B500AFAA +:101A900000231800BD4680BD80B582B000AF7860DD +:101AA00039607A6889235B013968D150C046BD46E8 +:101AB00002B080BD80B582B000AF786039603B680D +:101AC0009B0A1800BD4602B080BDB0B588B000AF1B +:101AD000786039601B257C19FFF7B2FF0300237083 +:101AE000FFF78CFF03007B613A687B6811001800E8 +:101AF000FFF7E0FF03003B617B191B78012B0FD937 +:101B00007B191B7819007869FEF7DAFA0300FB608D +:101B10003B69F9681800FEF759FB0B00FB6101E017 +:101B20003B69FB61FB691800BD4608B0B0BD000011 +:101B300080B584B000AFF860B960FB1D1A70FB1D62 +:101B40001B7802221343DBB21900FB68084A995044 +:101B5000BA68FB6811001800FFF79EFFFB681800C9 +:101B600004F00AFB03001800BD4604B080BDC04667 +:101B70000411000080B584B000AFF860B9607A60ED +:101B8000FB68084A01219950FB6807497A685A5056 +:101B9000BA68FB6811001800FFF77EFFC046BD461B +:101BA00004B080BD041100002411000080B584B091 +:101BB00000AFF860B9607A603B607A68B968FB682A +:101BC0001800FFF7D7FF3B681A68FB6805495A50B1 +:101BD0003B685A68FB6804495A50C046BD4604B089 +:101BE00080BDC046301100003411000080B584B0C3 +:101BF00000AFF860B9607A607B68074AB968F86836 +:101C0000FFF7D4FFFB68180004F0B6FA03001800D1 +:101C1000BD4604B080BDC046FF010000B0B58AB02B +:101C200000AFF860B960BB1D1A80BA68FB6811008C +:101C30001800FFF73FFF03003B62BA68FB68110022 +:101C40001800FFF742FF0300FB611B257C19FFF71B +:101C5000F7FE03002370FFF7D1FE03007B61002332 +:101C60007B62BB1D1A8880239B009A4200D06CE0E7 +:101C7000FFF70CFF031E14D07B191B78012B10D922 +:101C80007B695B083A6A9A4205D97B695B083A6AC4 +:101C9000D31A7B6207E07B695B083A6AD3187B62E0 +:101CA00001E03B6A7B627B6A1F2B0ED801227B6AB4 +:101CB0009A4013003B61FB68314A9B583A69D24312 +:101CC0001A40FB682E495A5055E0FB69FF2B25D876 +:101CD000FFF7B6FE0300012B10D1FB69203BDB08A8 +:101CE00001229A4013003B61FB68264A9B583A69DF +:101CF000D2431A40FB6823495A503CE0FB69DB0899 +:101D000001229A4013003B61FB681E4A9B583A69C6 +:101D1000D2431A40FB681B495A502CE0FA69FF2352 +:101D20005B009A4227D8FB69013BFF3BDB0801229D +:101D30009A4013003B61FB68134A9B583A69D243AF +:101D40001A40FB6810495A5015E0BB1D1A888023C1 +:101D5000DB009A420FD13B6A1F22134001229A40B6 +:101D600013003B61FB68094A9B583A69D2431A4009 +:101D7000FB6806495A50C046BD460AB0B0BDC046D1 +:101D8000D0110000D4110000D81100001012000082 +:101D900080B584B000AFF860B9607A60FB68084A2B +:101DA00003219950FB6807497A685A50BA68FB6862 +:101DB00011001800FFF770FEC046BD4604B080BD9C +:101DC000041100002411000080B584B000AFF86059 +:101DD000B9607A603B607A68B968FB681800FFF701 +:101DE000D7FF3B681A68FB6805495A503B685A6838 +:101DF000FB6804495A50C046BD4604B080BDC04689 +:101E0000301100003411000080B584B000AFF860DC +:101E1000B9607A607B68074AB968F868FFF7D4FF51 +:101E2000FB68180004F0A8F903001800BD4604B0D0 +:101E300080BDC046FF01000080B586B000AFF860ED +:101E4000B9607A60FB681B687B617B68DA437B69F9 +:101E500013407B61BB687A681A407B691A43FB6850 +:101E60001A60C046BD4606B080BD000080B582B095 +:101E700000AF786039600A4B0A4A98183B681B88A3 +:101E8000190080235B001A00FFF7D6FF3B689B78A0 +:101E900019007B68044A9950C046BD4602B080BD17 +:101EA00000F00A40381100000479000080B584B0C9 +:101EB00000AF78607B680E4A944663440122022199 +:101EC000180001F07CF90300BB60BB68012B04D152 +:101ED0000F23FB1801221A7003E00F23FB180022C6 +:101EE0001A700F23FB181B781800BD4604B080BD84 +:101EF0000872000080B582B000AF786039607B68FE +:101F0000064A9446634418003B680022012101F010 +:101F100037F9C046BD4602B080BDC046187000000B +:101F200080B582B000AF78607B68064A944663440F +:101F300000220121180001F042F903001800BD46FB +:101F400002B080BD1870000080B584B000AF78602A +:101F500039607B686A4A94466344180001F0F8F8D7 +:101F60000300BB60BB68102293431A003B689B6967 +:101F70001B0110210B401343BB60BB68202293431D +:101F80001A003B68DB695B0120210B401343BB60F7 +:101F9000BB68082293431A003B681B6ADB000821D8 +:101FA0000B401343BB607B68554A944663441A0058 +:101FB000BB681900100001F0D7F87B68180000F02A +:101FC000B7FE7B684F4A94466344180001F0C0F89E +:101FD0000300BB60BB684C4A1A403B681B6819028F +:101FE00080235B000B401343BB60BB68474A1A4029 +:101FF0003B685B68590280239B000B401343BB6026 +:10200000BB68434A1A403B689B6899038023DB0105 +:102010000B401343BB60BB683E4A1A403B68DB6819 +:10202000590380239B010B401343BB60BB683A4AB2 +:102030001A403B681B69190380235B010B40134363 +:10204000BB60BB68402293431A003B685B699B01FD +:1020500040210B401343BB607B682A4A944663448B +:102060001A00BB681900100001F07EF83B689B6AFB +:102070007F2B38D83B68DB6A7F2B34D83B685B6AA0 +:10208000FF2B30D87B68254A9446634418003B6890 +:102090009B6A00227F2101F073F87B681F4A9446F7 +:1020A000634418003B68DB6AFE22D101082201F07C +:1020B00067F87B681A4A9446634418003B685B6A79 +:1020C0000022FF2101F05CF87B68164A94466344C5 +:1020D00018003B681B6B80221104172201F050F896 +:1020E0000023FB6002E001235B42FB607B68180079 +:1020F00000F032FEFB681800BD4604B080BDC0464B +:102100000472000018700000FFFEFFFFFFFDFFFFDC +:10211000FFBFFFFFFFDFFFFFFFEFFFFF4870000083 +:10212000147000000C70000080B584B000AF7860BF +:1021300039607B68180000F0FBFD7B684B4A9446D1 +:10214000634418003B681B680522202101F018F841 +:102150007B68464A9446634418003B685B680222E9 +:10216000042101F00DF87B68E122D201944663441A +:1021700018003B68DB690022012101F001F87B684F +:10218000E122D2019446634418003B681B6A012295 +:10219000022100F0F5FF7B68E122D20194466344FE +:1021A00018003B685B6A02220C2100F0E9FF7B68A3 +:1021B000E122D2019446634418003B689B6A0422E2 +:1021C000302100F0DDFF3B689B680F2B41D83B6856 +:1021D0005A6980235B029A423BD27B68244A944628 +:1021E000634418003B68DB680022032100F0C8FF4D +:1021F0007B681F4A9446634418003B689B68013B18 +:10220000F0221103102200F0BBFF7B68194A9446AC +:10221000634418003B681B690122062100F0B0FFEF +:102220007B68144A9446634418003B685B69124912 +:10223000102200F0A5FF7B680E4A94466344180004 +:102240003B689B690022012100F09AFF0023FB609C +:1022500002E001235B42FB607B68180000F07CFD1C +:10226000FB681800BD4604B080BDC0461870000071 +:1022700020700000287000000000FFFF80B584B0CF +:1022800000AF786039607B68180000F051FD3B6852 +:10229000DB687F2B3ED83B689B687F2B3AD83B6836 +:1022A0005B68FF2B36D83B681A6880239B009A42F4 +:1022B00030D27B68414A9446634418003B68DB682F +:1022C000FE221106192200F05BFF7B683B4A944610 +:1022D000634418003B689B6800227F2100F050FF98 +:1022E0007B68364A9446634418003B685B68FF226B +:1022F0001102082200F044FF7B68304A9446634490 +:1023000018003B681B682E49102200F039FF00239B +:10231000FB6002E001235B42FB60FB68002B43D1C2 +:102320003B68DB690F2B3CD83B689B690F2B38D887 +:102330003B685B691F2B34D83B681B691F2B30D867 +:102340007B68204A9446634418003B68DB6900229E +:102350000F2100F015FF7B681A4A94466344180069 +:102360003B689B690422F02100F00AFF7B68154A54 +:102370009446634418003B685B69F82251010822C7 +:1023800000F0FEFE7B680F4A9446634418003B68E9 +:102390001B69F8225103102200F0F2FE0023FB60BB +:1023A00002E001235B42FB607B68180000F0D4FC74 +:1023B000FB681800BD4604B080BDC0461C7000001C +:1023C0000000FF010C70000080B584B000AF7860A1 +:1023D00039600023BB607B68180000F0A9FC3B68F3 +:1023E0005B68002B17D07B68A54A944663441800AD +:1023F0003B681B689B08A349022200F0C1FE7B6872 +:102400009F4A9446634418003B685B68FF221104AE +:10241000102200F0B5FE3B68DB68002B17D07B680C +:10242000994A9446634418003B689B689B08954909 +:10243000022200F0A5FE7B68934A9446634418008C +:102440003B68DB68FE22D103102200F099FE3B6856 +:102450005B6B002B3AD07B688C4A9446634418002F +:102460003B681B6B9B088749022200F089FE7B6852 +:10247000864A9446634418003B685B6BFE22D10396 +:10248000102200F07DFE7B68804A94466344180069 +:102490003B689B6BFE22D105182200F071FE7B6821 +:1024A0007A4A9446634418003B68DB6B802211062D +:1024B0001F2200F065FE7B68754A9446634418004D +:1024C0003B689B6D0022072100F05AFE3B685B6C65 +:1024D000002B3AD07B686F4A9446634418003B68EF +:1024E0001B6C9B086749022200F04AFE7B68694A20 +:1024F0009446634418003B685B6CFE22D1031022B3 +:1025000000F03EFE7B68634A9446634418003B68D3 +:102510009B6CFE22D105182200F032FE7B685D4ADA +:102520009446634418003B68DB6C802211061F222E +:1025300000F026FE7B68564A9446634418003B68C8 +:10254000DB6D0422702100F01BFE7B68524A94462A +:10255000634418003B681B6D9B084A49022200F047 +:102560000FFE7B684A4A9446634418003B685B6DE3 +:10257000E022D100082200F003FE3B689B6A002B9A +:1025800023D07B68454A9446634418003B685B6AE5 +:102590009B083C49022200F0F3FD7B683F4A9446C9 +:1025A000634418003B689B6AFC229103102200F0F0 +:1025B000E7FD7B68394A9446634418003B68DB6A50 +:1025C000FC229105182200F0DBFD3B685A693B684C +:1025D0009B69D318BB60BB68202B45D83B685B69FF +:1025E000002B03D13B689B69002B3DD07B682C4AB4 +:1025F0009446634418003B681B699B0821490222EA +:1026000000F0BEFD7B68264A9446634418003B6890 +:102610005B69FC229103102200F0B2FD7B68204A26 +:102620009446634418003B689B69FC22910518227C +:1026300000F0A6FD7B681A4A9446634418003B6884 +:10264000DB698022D1051E2200F09AFD7B68154AC5 +:102650009446634418003B681B6A0022072100F07F +:102660008FFD0023FB6002E001235B42FB607B687F +:10267000180000F071FBFB681800BD4604B080BD77 +:1026800084700000FCFF000088700000A070000053 +:10269000BC700000B0700000AC700000F070000072 +:1026A000C0700000C870000080B584B000AF7860D2 +:1026B00039603A6880239B059A4214D27B681800DF +:1026C00000F036FB7B680C4A9446634418003B6874 +:1026D0000A49002200F054FD7B68180000F03CFB22 +:1026E0000023FB6002E001235B42FB60FB681800F3 +:1026F000BD4604B080BDC04690700000FFFFFF1FC4 +:1027000080B58AB000AFF860B9607A603B600023A2 +:10271000FB610023BB6100237B6100237B620023FC +:102720003B62BB68002B03D17B687B6201233B6269 +:10273000BB68012B0ED1FB68214A94466344180004 +:10274000F8235B031022190000F039FD03007B62BF +:1027500001233B623B6A012B2ED1FB68194A944648 +:1027600063441800184B0222190000F028FD0300F2 +:10277000FB61FB68154A9446634400220721180058 +:1027800000F01DFD0300BB61FB699B00FB61BB69A1 +:10279000180000F0C5FC0300BB61BB699B00BB6176 +:1027A000BB697A6A5343FA69D3187B61FB683A685C +:1027B0007969180000F0C0FBC046BD460AB080BD74 +:1027C000C4700000C0700000FCFF0000C870000072 +:1027D00080B584B000AF786039603B681F2B20D88B +:1027E0007B68144A94466344180000F0B1FC03006F +:1027F000BB6001223B689A401300BA681343BB6078 +:102800007B68180000F0A8FA7B680A4A9446634483 +:102810001A00BB681900100000F0A6FC0023FB6042 +:1028200002E001235B42FB60FB681800BD4604B078 +:1028300080BDC046D070000080B58AB000AFF8609F +:10284000B9607A603B6000237B6200233B62002317 +:102850007B610023FB610023BB61BB68002B1CD1A3 +:10286000FB684A4A944663441800494B0222190007 +:1028700000F0A5FC03007B62FB68464A9446634473 +:102880001800E023DB000822190000F098FC030088 +:102890003B627B68BB610123FB61BB68012B54D1A8 +:1028A0003B68002B03D03B68012B27D04EE0FB6830 +:1028B000394A944663441800354B0222190000F04F +:1028C0007EFC03007B62FB68324A9446634400222C +:1028D0000721180000F073FC03003B62FB682F4ADD +:1028E000944663441800FC239B010822190000F061 +:1028F00066FC0300BB610123FB6127E0FB68284AFB +:10290000944663441800224B0222190000F057FC41 +:1029100003007B62FB681F4A9446634404227021D3 +:10292000180000F04CFC03003B62FB681D4A944613 +:1029300063441800FC239B010822190000F03FFCAF +:102940000300BB610123FB6100E0C046FB69012B72 +:1029500017D17B6A9B007B623B6A180000F0E0FBAA +:1029600003003B623B6A9B003B623B6ABA6953438C +:102970007A6AD3187B61FB683A6B7969180000F0BA +:10298000FFF9C046BD460AB080BDC046AC7000002D +:10299000FCFF0000BC700000A0700000A4700000EC +:1029A000B0700000B470000080B588B000AFF8606F +:1029B000B9607A60FB681C4A9446634418001B4B5C +:1029C0000222190000F0FBFB0300FB61FB699B0086 +:1029D000FB61BB689B00FA69D318BB6100237B6174 +:1029E0007B681B687A6913437B617B685B681B04A7 +:1029F0007A6913437B617B689B68DB067A691343C2 +:102A00007B617B68DB689B077A6913437B61FA68AB +:102A1000BB69D3187A691100180000F0A5FBC04605 +:102A2000BD4608B080BDC04684700000FCFF0000B9 +:102A300080B584B000AF786039607B68264A9446E0 +:102A40006344180000F084FB0300FB60FB6807226E +:102A50001A403B681A60FB68DB0803221A403B6897 +:102A60005A60FB685B0901221A403B689A60FB6868 +:102A70009B0901221A403B68DA60FB68DB090122EE +:102A80001A403B681A61FB681B0A07221A403B6820 +:102A90005A61FB68DB0A01221A403B689A61FB68B5 +:102AA0001B0B01221A403B68DA61FB685B0B0122B9 +:102AB0001A403B681A62FB689B0B01221A403B6874 +:102AC0005A62FB681B0C7F221A403B689A62C04620 +:102AD000BD4604B080BDC0464470000080B584B0DF +:102AE00000AF786039603B681B68002B02D0012B77 +:102AF00027D04DE07B68284A94466344180000F0D4 +:102B000027FB0300FB60FB687F221A403B685A608A +:102B1000FB681B0A3F221A403B689A60FB681B0C4B +:102B20003F221A403B68DA60FB681B0E01221A4004 +:102B30003B681A61FB685B0E01221A403B685A61D0 +:102B400026E07B68154A94466344180000F000FBB9 +:102B50000300FB60FB687F221A403B685A60FB68F9 +:102B60001B0A3F221A403B689A60FB681B0C3F22FD +:102B70001A403B68DA60FB681B0E01221A403B6872 +:102B80001A61FB685B0E01221A403B685A61C0461D +:102B9000C046BD4604B080BDA4700000B470000003 +:102BA00080B586B000AFF860B9607A60BB68002B72 +:102BB00003D0BB68012B22D043E0FB68254A944632 +:102BC00063441800FE23DB031022190000F0F7FA1B +:102BD00003003B613A697B689A420CD3FB681E4A4A +:102BE0009446634418007B6800223F2100F0C8FA35 +:102BF00000237B6129E001235B427B6125E0FB68C8 +:102C0000164A944663441800FE23DB031022190081 +:102C100000F0D5FA03003B613A697B689A420CD315 +:102C2000FB680F4A9446634418007B6800223F21EA +:102C300000F0A6FA00237B6107E001235B427B6181 +:102C400003E001235B427B61C0467B691800BD46FF +:102C500006B080BDA0700000A8700000B070000039 +:102C6000B870000080B582B000AF78607B68054A1C +:102C700094466344180000F06BFA03001800BD4648 +:102C800002B080BDD870000080B584B000AF78601D +:102C900039607B68E422D20194466344180000F056 +:102CA00057FA0300FB60FB683F221A403B68DA607A +:102CB000FB681B0A07221A403B689A60FB681B0CE2 +:102CC0001B051A0D3B685A60FB689A0F3B681A6037 +:102CD0007B68E022D20194466344180000F038FA81 +:102CE0000300FB60FB68FF221A403B681A61FB6827 +:102CF0001B0AFF221A403B685A61FB681B0C0F221B +:102D00001A403B689A61FB681B0D0F221A403B6812 +:102D1000DA61FB681B0E0F221A403B681A62FB68DF +:102D20001A0F3B685A62C046BD4604B080BD000021 +:102D300080B582B000AF78607B68064A94466344F1 +:102D4000180001230122022100F01AFAC046BD46F4 +:102D500002B080BD1870000080B582B000AF78600E +:102D60007B68064A9446634418000023012202212E +:102D700000F006FAC046BD4602B080BD18700000E3 +:102D800080B586B000AFF860B9607A6000233B611F +:102D900000237B61FA68BB68D318180000F0D8F9EB +:102DA00003003B613B69DB00DA087B681A603B6922 +:102DB0005B0F01221A407B685A603B699B0F01221E +:102DC0001A407B689A603B69DA0F7B68DA60BB68FF +:102DD0000433BB60FA68BB68D318180000F0B8F978 +:102DE00003003B613B691B041A0C7B681A613B6959 +:102DF0001B0C0F221A407B685A613B691B0D012294 +:102E00001A407B689A613B695B0D01221A407B681E +:102E1000DA613B691B0E7F221A407B681A623B69AC +:102E2000DA0F7B685A62BB680433BB6000237B61A6 +:102E300038E0FA68BB68D318180000F089F903007D +:102E40003B613B699BB2FF22134099B27B687A6970 +:102E500014325200D1523B691B0A9BB27A6901328B +:102E6000FF210B4099B27B6814325200D1523B696A +:102E70001B0C9BB27A690232FF210B4099B27B682E +:102E800014325200D1523B69190E7B69DA1C89B2A7 +:102E90007B6814325200D152BB680433BB607B693B +:102EA00004337B617B685B69180000F021F9020044 +:102EB0007B69D31A032B08D97B685B69180000F083 +:102EC00017F902007B699342B3D17B685B691800F4 +:102ED00000F00EF902007B69934229D0FA68BB68C2 +:102EE000D318180000F034F903003B613B699BB232 +:102EF000FF22134099B27B687A6914325200D15292 +:102F00003B691B0A9BB27A690132FF210B4099B2DF +:102F10007B6814325200D1523B691B0C9BB27A6918 +:102F20000232FF210B4099B27B6814325200D15219 +:102F3000C046BD4606B080BD80B586B000AFF86023 +:102F4000B9607A6000233B6100237B6100233B6111 +:102F50007B681A687B685B685B071A437B689B68C1 +:102F60009B071A437B68DB68DB0713433A6913430B +:102F70003B61FA68BB68D3183A691100180000F089 +:102F8000F3F8BB680433BB6000233B617B681B69BB +:102F90001A047B685B691B051A437B689B695B05A8 +:102FA0001A437B68DB69DB051A437B681B6A1B06D7 +:102FB00013433A6913433B61FA68BB68D3183A6913 +:102FC0001100180000F0D0F8BB680433BB60002388 +:102FD0007B6139E000233B617A687B6910335B00D9 +:102FE000D31804331B8819007B6901337A681033C6 +:102FF0005B00D31804331B881B020A001A437B6949 +:103000000233796810335B00CB1804331B881B0430 +:103010001A437B690333796810335B00CB180433A0 +:103020001B881B0613433A6913433B61FA68BB686C +:10303000D3183A691100180000F096F8BB68043301 +:10304000BB607B6904337B617B681B69180000F0FF +:103050004FF802007B69D31A032B08D97B681B69E0 +:10306000180000F045F802007B699342B2D17B68FA +:103070001B69180000F03CF802007B69934233D0D2 +:1030800000233B617A687B6910335B00D3180433FB +:103090001B8819007B6901337A6810335B00D318F1 +:1030A00004331B881B020A001A437B6902337968C8 +:1030B00010335B00CB1804331B881B041A437B6955 +:1030C0000333796810335B00CB1804331B881B066D +:1030D00013433A6913433B61FA68BB68D3183A69F2 +:1030E0001100180000F040F8C046BD4606B080BD93 +:1030F00090B593B000AF786008243A19074B1000E0 +:10310000190040231A0000F09FFA3B197A689200D8 +:10311000D3581800BD4613B090BDC046C86100002A +:10312000B0B58AB000AF786008217B18074A31CA71 +:1031300031C331CA31C311CA11C37B187A689200F6 +:10314000D3581800BD460AB0B0BDC04608620000A2 +:1031500080B584B000AF78607B681B68FB60FB685B +:103160001800BD4604B080BD80B582B000AF786065 +:1031700039607B683A681A60C046BD4602B080BDBF +:1031800080B586B000AFF860B9607A603B60FB68DC +:103190001B687B61BB68DA437B6913407B613A68DB +:1031A0007B689A401300BA6813407A6913437B61C5 +:1031B000FB687A691A60C046BD4606B080BD80B51E +:1031C00086B000AFF860B9607A60FB681B687B610D +:1031D0007B69BA681A407B68DA4013007B617B69BF +:1031E0001800BD4606B080BD80B584B000AFF86061 +:1031F000B9607A60FA68BB681A4305497B681A436C +:1032000098235B01CA50C046BD4604B080BDC0468D +:103210000000404080B500AF044A98235B01D358BA +:10322000072213401800BD4680BDC0460000404044 +:1032300080B586B000AFF860B9607A60FB681B6843 +:103240007B617B68DA437B6913407B61BB687A688A +:103250001A407B691A43FB681A60C046BD4606B037 +:1032600080BD000080B500AF024A034BD358180060 +:10327000BD4680BD00F00A400412000080B500AFDA +:10328000054A064BD3580449054A1340034A8B505C +:10329000C046BD4680BDC04600F00A40081100008F +:1032A000FFFEFFFF80B500AF054A064BD358044927 +:1032B00001229343034A8B50C046BD4680BDC046A1 +:1032C00000F00A400811000080B582B000AF020093 +:1032D000FB1D1A700449FB1D1B78044A8B50C04625 +:1032E000BD4602B080BDC04600F00A400C1100008F +:1032F00080B582B000AF7860064B074A94466344BD +:103300007968FF221800FFF793FFC046BD4602B060 +:1033100080BDC04600F00A401011000080B582B0A8 +:1033200000AF0200BB1D1A80064B074A9818BB1D50 +:103330001B88C02292011900FFF77AFFC046BD46E4 +:1033400002B080BD00F00A401011000080B500AF4F +:10335000054A064BD3580449802252051343034AB9 +:103360008B50C046BD4680BD00F00A4010110000E1 +:1033700080B500AF054A064BD3580449054A1340AF +:10338000034A8B50C046BD4680BDC04600F00A408F +:1033900010110000FFFFFFEFB0B584B000AF786000 +:1033A000FFF76CFFC046FFF75DFF02008023DB01E3 +:1033B0001A408023DB019A42F5D13D4B89246401F8 +:1033C00018197B685B7E01221900FFF731FF384B2B +:1033D000384D58197B6820229B5C03221900FFF7A7 +:1033E00027FFFFF717FF0300FB60042200210120E5 +:1033F000FFF7FAFE7B685B6A2D491B682E4A8B50EB +:103400007B685B6A04332A491B682C4A8B502C4921 +:1034100098235B01FA68CA50254B58197B68DB6911 +:103420001A02FE23DB011340FE22D2011900FFF72E +:10343000FFFE1F4B18197B681B681A04F0231B033F +:103440001A407B685B681B031B041B0C1A437B68D8 +:103450009B681902F0231B010B401A437B68DB6851 +:103460001A437B681B691A437B685B6913437A685C +:10347000127E1343134A1900FFF7DAFE0C4A124B6F +:10348000D3580B498022520013430F4A8B50C04639 +:10349000FFF7E8FE020080239B001A4080239B0078 +:1034A0009A42F5D1C046C046BD4604B0B0BDC04644 +:1034B00000F00A4024110000281100002C11000027 +:1034C0000000404072FF0F000811000080B582B07C +:1034D00000AF0200FB1D1A70FB1D1B781800FFF7E0 +:1034E000F3FEC046FFF7BEFE020080239B031A4096 +:1034F00080239B039A42F5D10A4A0B4BD3580949C2 +:10350000802252021343084A8B50C046FFF7AAFE9E +:10351000030010221340102BF8D1C046C046BD4610 +:1035200002B080BD00F00A400411000080B582B0F6 +:1035300000AF39601100BB1D021C1A807B1D0A1CE4 +:103540001A70FFF7AFFEBB1D1B881800FFF7E6FEE1 +:103550003B681800FFF7CCFE0F4A104BD3580E49BA +:10356000012213430D4A8B507B1D1B78002B0DD07D +:10357000FFF7ECFEC046FFF775FE020080235B00FC +:103580001A4080235B009A42F5D101E0FFF7F0FE7C +:10359000C046BD4602B080BD00F00A4008110000E0 +:1035A00030B514001A000A4B05001B6885B0D868B6 +:1035B000002C09D0074B019300912B00064902947F +:1035C00000F00EF801F062F8044B1C00F3E7C0466F +:1035D00008032020786400008864000084640000F0 +:1035E0000EB400B582B003AB0100054804CB0068FF +:1035F000019300F0BFF802B008BC03B01847C04602 +:103600000803202070B50C4D0C4E761BB61005D06B +:10361000002408CD01349847A642FAD1FDF752F8AC +:10362000074D084E761BB61005D0002408CD013496 +:103630009847A642FAD170BD8867000088670000ED +:103640008867000088670000F0B5C64600B50F2AFD +:1036500041D903270D003E0005430C0003002E4016 +:103660002F423DD11500103D2D09AC462D01A84635 +:103670008044256867681D605F60A568E7689D6095 +:10368000DF6010341F0010334745F2D165460F2329 +:103690000C2401352D01491913404519144222D03B +:1036A0008C59AC5104369C1B032CF9D80324043BE1 +:1036B0009B0801339B002240ED18C918561E002AB2 +:1036C00006D00023CC5C1A00EC5401339642F9D1A9 +:1036D00004BC9046F0BD0500561E002AF1D1F7E764 +:1036E0000500561EEDE71A00F6E7C046F8B54E464F +:1036F0004546DE4657464B6EE0B5914606000D0046 +:103700009B0433D513689A469368002B2CD05246FD +:1037100012689046524652689346970819D0002482 +:1037200002E00134A74212D04246A300D158300033 +:103730002A0001F045F9431CF3D14A460023936067 +:1037400053603CBC90469946A246AB46F8BD4B46FA +:103750009B685A4603218A439B1A4A469360082273 +:103760009446E244002BD2D10020E6E701F086FA2D +:10377000E3E7C046F0B5DE4657464E464546E0B55F +:10378000BFB08A4693461C0001900893002804D0DD +:10379000836B0293002B00D127E253465B6EDB075D +:1037A00000D537E153460C21595E53469A8993055B +:1037B00000D42BE180239B011A4209D10B435246CE +:1037C00051469381496E964A0A4051464A669AB2DA +:1037D00013073DD553461B69002B39D01A231340DC +:1037E0000A2B43D015AB129300235D46D3461493A6 +:1037F000139315AE0C930B930E930D9305932B78A7 +:10380000002B00D1A4E12C0004E063780134002BEC +:1038100000D1D9E0252BF8D1671BAC4200D0D7E00E +:103820002378002B00D193E1002310AAD370013B31 +:103830000293002300276278651C0493013513006E +:10384000203B5A2B00D9F1E076499B00CB589F468C +:103850005146019800F0B0FE5346002801D000F018 +:1038600044FE9A891A2313400A2BBBD153460E21DA +:103870005B5E002BB6DB53465B6EDB0703D4930520 +:1038800001D400F008FE23005A465146019800F08A +:103890004DFE059074E1019B1800984601F092FBE3 +:1038A000436818000D9302F03FFA0E900400404662 +:1038B00001F088FB83680B93002C01D000F0F7FC2B +:1038C0002A78BBE720232A781F43B7E710231F433A +:1038D000089ABB0600D47BE1072307329A430133E1 +:1038E0009C46944463460893536812680793069273 +:1038F000002B01DA00F089FC029BB946013309D0A4 +:1039000080239F43069A079B1100B946194301D1B2 +:1039100000F04FFC069B079C002C00D046E3092BCF +:1039200000D943E36322069B25A930338B5401233E +:10393000039310ABB7249C464F466444029B039A02 +:103940009946934200DA914610ABDB785A1E9341B8 +:10395000994478E010231F43BB0600D42AE10723D3 +:10396000089A07329A4318CA0693079408922E4B76 +:103970001F40B9460023002210A9CA700298421CB9 +:1039800000D1E3E180224F4697430699079A0C0045 +:10399000144300D0D9E1002801D000F00DFD002B28 +:1039A00001D000F00BFC4A4601331A4003924A460C +:1039B0003EAC1342C2D03021623325AAD15410ABA1 +:1039C000B7249C466444B9E7671BAC4200D1BFE012 +:1039D000149B3560FA18139B77600293013314929D +:1039E00013930836072B0BDD002A00D1DEE359467E +:1039F000019812AAFFF77AFE002800D090E215AED7 +:103A0000059B9C46BC446346059309E75346986D65 +:103A100001F0E0FA53460C21595E53469A89C9E6F3 +:103A2000FFDFFFFFE8640000FFFBFFFF002A00D17B +:103A30008EE0002325AC227010AAD3700133994682 +:103A400003930023029302231A003A400A923B4256 +:103A500001D09C46E14484231A003A4009923B423B +:103A600006D14A46049B9B1A9846002B00DDDBE2F8 +:103A7000139B14989C46591C10ABDB78002B0DD07F +:103A800010AB033333600123013073601490139142 +:103A9000072900DD51E28C46083601310A9B002BD4 +:103AA00019D011AB3360022302307360149013916C +:103AB000072900DC58E2002800D1A1E3594601980B +:103AC00012AAFFF713FE002800D029E2139B1498D6 +:103AD0009C46591C15AE099B802B00D171E1029BBD +:103AE000039A9B1A9A46002B00DDC9E1039B3460C0 +:103AF0009C466044736014901391072900DC5EE1DA +:103B0000002800D1E4E25946019812AAFFF7EEFD21 +:103B1000002800D004E2149815AE7B0705D54A466C +:103B2000049B9C1A002C00DDDBE2049B4B4500DA71 +:103B30004B46059A94469C4463460593002800D062 +:103B4000E6E1002313932B7815AE002B00D05AE644 +:103B5000149BDA460293002B01D000F0B7FC00233F +:103B6000139353465B6EDB0700D5DFE153469B8919 +:103B70009A0501D400F018FC5B0601D500F0C0FCEA +:103B800005983FB03CBC90469946A246AB46F0BD76 +:103B9000303A280000241100A3001B195B00CC1848 +:103BA00003001A7801301100303905000929F3D9D2 +:103BB000049444E6FB0600D551E37B0600D44BE3B6 +:103BC000089A08CA9BB20693002308920793CEE690 +:103BD000FB0600D54EE37B0600D448E308CA1BB2BF +:103BE0000693DB170793089282E600F05DFED4E5AA +:103BF000089B10AA10CB98460023D370002C01D14B +:103C000000F0F4FB029A531C00D18AE3002120004B +:103C100001F032FD002801D100F043FC031B0393A7 +:103C2000434608930023029388E6089A25AC08CA05 +:103C300010A923700023CB70013399460892039397 +:103C4000FFE6089B04CB0492002A00DBFDE2049A05 +:103C500008935242049204232A781F43EEE510236E +:103C60001F43B9464B469B0600D4ADE20723089A92 +:103C700007329A4318CA06930794089201237AE6FA +:103C80002A78682A00D1A3E340231F43D6E52B23DB +:103C900010AAD3702A78D1E580232A781F43CDE576 +:103CA0002A786B1C2A2A01D100F02FFC1100002475 +:103CB000303918001D000294092900D9BFE50024FD +:103CC000A3001B195B005C1803001A780130110077 +:103CD000303905000929F3D90294B0E501232A7887 +:103CE0001F43ABE510ABDB78002B00D0E8E52023C9 +:103CF00010AAD3702A78A1E50899D34A08C9069377 +:103D00000023079302331F4311AB1A80CF4BB946F0 +:103D10000C93089102232EE6BB0600D5BEE2FB06FB +:103D200000D55CE37B0600D5AEE3BB0500D456E3CB +:103D3000089A059908CA1970089260E52A786C2AD1 +:103D400000D13FE310231F4378E5B946012B00D192 +:103D5000E0E53EAC022B00D10BE10723B246A846BA +:103D60009C46069A079B5E07D7086146D8083E43E3 +:103D700003003000114025003031013C3200217039 +:103D80001843F0D1069207934A462F0056464546FF +:103D9000D20700D443E1302900D140E13022013C78 +:103DA000BB1E22703EAAD21A4F461C000392C5E5E4 +:103DB00001230398159416901490139315AE0836AA +:103DC000ABE64A46049B9B1A9A46002B00DC86E62B +:103DD000102B00DC85E39E4BA04631005446624622 +:103DE000BA465F46AB461D0005E0961C1A00083136 +:103DF000103C102C1ADD102310304B60531C0D604A +:103E000014901393072BF0DD002800D191E03900C6 +:103E1000019812AAFFF76AFC002800D0A9E1139AC2 +:103E2000103C1498561C15A9102CE4DC2B00B44649 +:103E30005D460E00BB465746A2464446984643465A +:103E40003360534673606346504414901393072BBA +:103E500000DCFEE1002800D1DAE25946019812AAFE +:103E6000FFF744FC00285BD1139B039A9C46591C26 +:103E7000029B14989B1A9A4615AE002B00DC35E67F +:103E8000102B00DCBDE2724BA04631005446624666 +:103E9000BA465F46AB461D0005E0961C1A00083185 +:103EA000103C102C19DD102310304B60531C0D609A +:103EB00014901393072BF0DD002825D039000198CA +:103EC00012AAFFF713FC002800D052E1139A103C0D +:103ED0001498561C15A9102CE5DC32002B000E009E +:103EE0005D461100BB465746A246444698464346A7 +:103EF000336053465044736014901391072900DDDA +:103F000043E108360131F1E50126002215A9C7E792 +:103F10005946019812AAFFF7E9FB002800D110E6E4 +:103F2000DA4653465B6EDB0700D41FE653469B8997 +:103F300022E60126002215A95AE7002800D153E104 +:103F40005946019812AAFFF7D1FB0028E8D1139B2C +:103F500014989C46591C15AEA0E511AB159302238D +:103F600001210220169315AE8C4663460836591C73 +:103F7000B1E50F20069A079BA846B4460C9E0100A7 +:103F80001140715C1D071709013C3D43217019095F +:103F90000B0029002A001943F1D1069207933EAB8A +:103FA0001B1B664645464F460393C7E480234A469B +:103FB000DB0000271A404B46AA46B1463D00069E4C +:103FC000079F90463EAC03930AE00A22002330008C +:103FD0003900FCF72FFA002F00D115E206000F0080 +:103FE0000A22002330003900FCF724FA4346013C42 +:103FF000303222700135002BE7D00B9B1B78AB428F +:10400000E3D1FF2DE1D0002F00D0A1E1092E00D98E +:104010009EE1039B0696079755464E4699463EAB52 +:104020001B1B4F46039389E41498102B00DC40E2DD +:10403000A446084B4446BA4632005F46E046AB46CB +:1040400013991D000EE0C04630780000CC640000DB +:1040500064660000546600008E1C19000832103C93 +:10406000102C18DD1023103053604B1C1560149079 +:104070001393072BF0DD002826D03900019812AAEF +:10408000FFF734FB002874D11399103C14984E1C90 +:1040900015AA102CE6DC43462900A04634005D46F4 +:1040A000A446BB46160057461C008A46534633605A +:1040B000434673606346404414901393072B00DD1E +:1040C000B1E00836591CD7E40021012615AAC6E73D +:1040D00013907B074FD54A46049B9C1A002C4ADD5F +:1040E00015AE102C00DCEBE1D74BA8461D00019B60 +:1040F000102731009A46139A05E0961C1A000831E1 +:10410000103C102C18DD1030531C0D604F601490C3 +:104110001393072BF1DD002827D05946504612AAE9 +:10412000FFF7E4FA002800D0FAE6139A103C14983E +:10413000561C15A9102CE6DC3300AA460E00454695 +:1041400019005346001918C614901391072900DC72 +:10415000EBE400280FD05946019812AAFFF7C6FADF +:10416000002800D0DCE61498DFE40126002215A91F +:10417000C6E7BA46F5E4049B4B4500DA4B46059A80 +:1041800094469C4463460593DBE4002800D10FE687 +:104190005946019812AAFFF7A9FA002800D0BFE6F5 +:1041A000139B14980293591C15AE9FE4139215AEFD +:1041B00026E4029B002B01D0FFF7B4FB00233EACAA +:1041C00002930393FFF7BAFB4B46DB065DD44B46E5 +:1041D0005B0656D5089A08CA9BB20693002308923C +:1041E00007930133FFF7C7FB0A9B002B70D011AB7D +:1041F000159302231693013B9C46022015AEB4E6AC +:10420000002301219C4615AE65E40699079A002417 +:104210004B429441069307942D2310AAD370B946BC +:104220002C3BFFF7ABFB002800D184E059460198F6 +:1042300012AAFFF75BFA002800D071E6139B1498CE +:104240009C46591C15AEFFF717FC2A780893FFF718 +:10425000F5FA0836591C42E4BB0500D5EBE0089B93 +:1042600004CB0692002208930792FFF780FBBB0560 +:1042700000D5F5E008CA0693DB1707930892FFF70D +:1042800037FB4B469B0500D5F2E0089B04CB06921A +:104290000022089307920123FFF76DFB0899059A06 +:1042A00008C91A60D2175A600891FFF7A8FA0B9B49 +:1042B000002B01D1FFF704FB0B9B1B78002B01D1D6 +:1042C000FFF7FEFA8023DB002A781F43FFF7B6FAD8 +:1042D0009C46012115AEFFF7FEFB5C4B0C93BB0621 +:1042E0004DD5072308990731994318C906930794B8 +:1042F0000891FB070AD50698079903000B4305D0E0 +:10430000302111AB19705A7002231F43504B1F40CC +:10431000B9460223FFF72FFBB946A3E44D4B0C939C +:10432000DDE7200001F000FD4346089300230390E1 +:104330000293FFF703FB10ABDB78002B71D10A9BD4 +:10434000002B00D009E69C46012115AEFFF7C7FB04 +:104350000E9B0D99E41A1A00200001F013FD0B9931 +:1043600030004B788C465A1E93419C4463460A2287 +:104370000B9339000023FCF75DF800252EE6FB06C1 +:104380000BD47B0607D5089908C99BB20693002376 +:1043900008910793ADE7BB056ED4089B02CB06914D +:1043A000002108930791A4E75346986D00F014FE8E +:1043B00053469B89FFF7E0FBB946012B00D0C8E4C8 +:1043C000FFF7B0FA20236A781F430135FFF736FA6A +:1043D00080239B006A781F430135FFF72FFA089A64 +:1043E000059908CA19600892FFF709FA029B03931E +:1043F000062B13D8039B184C994643460893FFF7A6 +:1044000020FB164B984672E5092E00D9E6E500E63A +:10441000002301219C4615AEFFF761FB06230393A1 +:10442000E8E710AB03331593012301210120169314 +:1044300015AEFFF730FB089A08CADBB206930023DB +:1044400008920793FFF793FA54660000B8640000DF +:10445000FFFBFFFFCC640000E06400006466000026 +:1044600008CA5BB20693DB1707930892FFF740FA7E +:10447000089A08CADBB2B0E6089908C9DBB206930D +:1044800000230891079334E7089A059908CA198010 +:104490000892FFF7B4F95346986D00F09DFDFFF7C1 +:1044A000F2F943460893029B039300230293FFF71C +:1044B00045FA139B0F9301339C461A4B9A46F5E538 +:1044C000139B0293591C174B9A463AE6594601989A +:1044D00012AAFFF70BF9002801D1FFF740FBFFF705 +:1044E00040FB114B8C469846A9E45B6EDB0707D472 +:1044F00053469B899B0503D45346986D00F06CFD91 +:1045000001235B420593FFF73BFB089904C9029224 +:10451000002A02DA0122524202926A7808911D00B2 +:10452000FFF78CF95466000064660000F0B51F00C8 +:1045300002231F4C1500A5440C0089896A46994343 +:104540006B469981636E80211993E3890600D381BC +:10455000E369C9000793636A16A809931AAB00932D +:104560000493002302910591069300F02FFD2A0089 +:104570003B0069463000FFF7FDF8051E0EDA6B467A +:104580009B895B0603D54022A3891343A381169818 +:1045900000F01EFD2800074B9D44F0BD6946300029 +:1045A00000F01CF90028EAD001256D42E7E7C0467B +:1045B00094FBFFFF6C040000334B70B505001868D6 +:1045C0000C00002802D0836B002B3DD00C23E25E50 +:1045D000A38919070DD52169002915D0D80724D53D +:1045E0000020A06060694042A0610020002924D022 +:1045F00070BDD90640D55B0729D4216908231A4329 +:10460000A28193B20029E9D1A02080268000B600C3 +:104610001840B042E2D02100280000F00FFD0C232A +:10462000E25EA3892169D807DAD400209D0700D46F +:104630006069A06000200029DAD11B06D8D540238C +:104640001A43A2810138D3E700F02EF9BEE7216BAF +:1046500000290AD023004033994204D0280000F0FA +:104660002BFA0C23E25E0023236324239A430023C6 +:10467000216963602160C1E709232B604023012089 +:104680001A43A2814042B3E708032020062010B558 +:1046900001F0D8FA012001F06DFDC046F0B5C64624 +:1046A0000C0000B5A28980460C23C95E13074CD4C8 +:1046B000802362681B010B43A381002A66DDA66A82 +:1046C000002E3ED042464146156800220A609AB24A +:1046D000DB0460D4012300224046E169B047431C5B +:1046E00068D0A289A66A530706D56368C01A236BEF +:1046F000002B01D0E36BC01A00230200E1694046A1 +:10470000B047431C49D143461B68002B45D01D2BA5 +:1047100001D0162B57D1A3892F4A1340A381002320 +:104720006360236923604346216B1D60002908D024 +:1047300023004033994202D0404600F0BDF90023E7 +:104740002363002004BC9046F0BD2669002EF8D0FB +:10475000236826609D1B0023920700D16369A36034 +:10476000002D04DCEDE736182D1A002DE9DD2B00B5 +:1047700032004046E169676AB8470028F3DC40220E +:104780000120A38940421343A381DBE7E26B002AA7 +:1047900000DD94E7D5E7206DA5E7A3890E4A134015 +:1047A0000022626022691BB2A3812260DB04BAD5B9 +:1047B0002065B8E743461B68002B00D191E71D2B0D +:1047C00006D0162B04D04022A3891343A381B9E756 +:1047D000434600201D60B5E7FFF7FFFF70B50500F9 +:1047E0000C00002802D0836B002B15D00C22A35E96 +:1047F000002B17D0626ED20701D49B0514D5280078 +:104800002100FFF74BFF636E0500DB0702D4A3898D +:104810009B0515D5280070BD00F046F80C22A35E5C +:10482000002BE7D10025F5E7A06D00F0D3FB2800B1 +:104830002100FFF733FF636E0500DB07EAD4E6E7EC +:10484000A06D00F0C9FBE5E7002310B5040003608C +:1048500043608360818143660021C2810361082235 +:10486000436183615C3000F09DFF2000064BE461F2 +:104870002362064B58306362054BA362054BE3622B +:1048800000F0A4FB10BDC046895C0000B15C0000D4 +:10489000F15C00001D5D000010B5024900F066FBF0 +:1048A00010BDC046615F000070B50400144D2800C3 +:1048B00000F090FBA36B002B1DD1124A0421E26390 +:1048C000B8229200A350B92303229B00E250083380 +:1048D000E218043BE25060680022FFF7B5FF0122B6 +:1048E0000921A068FFF7B0FF02221221E068FFF75C +:1048F000ABFF0123A363280000F06EFB70BDC04630 +:10490000F83120209948000010B5024800F062FB01 +:1049100010BDC0460C32202010B5024800F05CFBF0 +:1049200010BDC0460C322020F0B5CE46474680B5BB +:1049300083B080468946140000F03CFB012803D177 +:104940004B46013BFE2B30D9230001AF4A463900CC +:1049500040465C3301F0B0FA0600431C2BD000281F +:1049600021D03978002507E023685A1C226019708D +:104970000135B54217D2795DA368013BA360002BD6 +:10498000F2DAA269934201DB0A29EDD12200404606 +:1049900001F02EFA431CEBD10600300003B00CBC32 +:1049A00090469946F0BD4E46F7E74B4601AFD9B267 +:1049B00001263970D6E74022A3891343A381ECE78F +:1049C000536E70B505000E001400DB071ED4A189DC +:1049D0000C23D25E8B0516D580239B01194204D18E +:1049E0001A43A281626E13436366280022003100DD +:1049F000FFF79AFF636E0500DB0702D4A3899B05CE +:104A000008D5280070BDA06D00F0E4FA0C23E25E2A +:104A1000A189E1E7A06D00F0DFFAF2E7F8B50C003C +:104A2000050000F013FF204FBB685E6803239E4320 +:104A30001E4B341B9C466444240B013C113324035D +:104A40009C4207DB0021280001F0BCF8BB689B19E1 +:104A5000984204D0280000F001FF0020F8BD280093 +:104A6000614201F0AFF8431C0DD00122BB68361B38 +:104A700016435E600E4B28001A68141B1C6000F081 +:104A8000EDFE0120EAE70021280001F09BF8BA685A +:104A9000831A0F2BDEDD07490968401A04490860B4 +:104AA00001210B435360D5E7A4082020EF0F00003D +:104AB000B80F2020AC0C2020F0B5C64605000C0035 +:104AC00000B500294FD000F0C1FE210008394C6824 +:104AD000012622000320B2438F187B68834362487B +:104AE00098468368BB426BD043467B6026421ED10A +:104AF00008239C460C688444091B12198C68644581 +:104B00004FD0CB68E3609C604346FC186468344235 +:104B100011D1BB68554C4244A34200D17FE0FC68F0 +:104B2000DC60A360012313434B608A5006E0FC184D +:104B300064683442EDD016434E603A6080239B0097 +:104B40009A4213D25409D3080122A2404468DB00E0 +:104B50002243426018188368C8608B608160D96006 +:104B6000280000F07BFE04BC9046F0BD530A042BE5 +:104B70003FD89409260039343836E40004192368F4 +:104B8000083C03279C4243D05868B843904202D95E +:104B90009B689C42F8D1DC68CC608B60A160D960D6 +:104BA000DEE74346F8184068304258D11300B86831 +:104BB000FA6843441E43C26090604E60CB50CFE71A +:104BC00013004344264206D10A68891A8C689B1850 +:104BD000CA68E260946001221A434A60244A8160F4 +:104BE00012689A42BCD8234B28001968FFF716FFB9 +:104BF000B6E7142B07D9542B1AD8140B26006F34A0 +:104C00006E36E400BAE71E005C335B36DC00B5E7C5 +:104C10000122B610B240466832434260BCE7D96018 +:104C20009960CB608B60012313434B608A5097E7F8 +:104C3000AA246400A34205D8D40B26007834773622 +:104C4000E4009BE70C4CA34205D8940C26007D346D +:104C50007C36E40092E7FE247E26A4008EE7330033 +:104C600013434B603A607BE7A4082020AC08202067 +:104C7000B00C2020E80F202054050000F0B5454678 +:104C8000DE4657464E46E0B5936883B00C0090462A +:104C90000090002B23D08B891A0728D50A69002A97 +:104CA00025D0424616689A072DD50027AB4B002524 +:104CB0009946BA46002D5AD02B004D4500D9A74B36 +:104CC0005246E1690098676AB847002861DD4346AB +:104CD0009B6882442D1A181A43469860EAD1002036 +:104CE00003B03CBC90469946A246AB46F0BD2100BD +:104CF0000098FFF761FC002800D02CE14246A38910 +:104D000016689A07D1D4DA074BD400229146802244 +:104D1000920000279346002F24D05A46A5681342DC +:104D200000D186E0AA46BD4200D9B5E09022D2006B +:104D3000134200D0C7E020685246494600F0D6FC36 +:104D4000A3685D1BA5603D000027236853442360D2 +:104D500043469B68A9445D1B43469D60BFD0A38921 +:104D6000002FDAD13268776891460836D3E7336886 +:104D700075689A4608369DE759462A0000F0B6FC49 +:104D8000236821005B1900982360FFF727FD0028A6 +:104D900027D00C22A35E402201201343A38140426E +:104DA0009EE7002300279A4600209B46B146002F2D +:104DB00028D0002830D05646BE4200D93E00206898 +:104DC00022696369904203D9A2689D18AE42D3DC80 +:104DD000B3426CDC656A5A46E1690098A847051E33 +:104DE000D7DD53465B1B9A460120002B58D0434623 +:104DF0009B68AB447F1B5D1B43469D6000D16EE703 +:104E0000002FD6D14B461B689B464B465F68082354 +:104E10009C46E144002FF5D03A000A21584600F0A4 +:104E20002BFC002800D18DE05B460130C31A9A4666 +:104E3000C1E720682369984216D863699A46BB4245 +:104E400012D8474B38009F4200D946485146FBF7DD +:104E500007FA5346656A43434A46E1690098A84702 +:104E6000051E96DD7F1B73E7BD4200D93D002A0079 +:104E7000494600F03BFCA36822685B1B5219A36003 +:104E80002260002BEED121000098FFF7A7FC00283C +:104E900000D07EE77F1B5BE73D00BA4620684BE70A +:104EA00021000098FFF79AFC0028A0D071E732009B +:104EB000594600F01BFCA36835009B1BA3602368C8 +:104EC0009B1923608DE7606922682169551A4200A9 +:104ED0001218D00F8218681C5210C0199246019502 +:104EE000904201D9824602005B051AD51100009854 +:104EF00000F0ECF8051E28D0019A2169FEF7A4FB0A +:104F0000A389194A134080221343A3815246019B6F +:104F10002561E818D31A3D00BA4620606261A3609B +:104F20000AE7009800F0A2FC051EEFD1009D216960 +:104F30002800FFF7C1FD8022A3899343743A1BB276 +:104F40002A6028E77E1CB24636E70C23009A1360DD +:104F50000C22A35E1FE701204042C1E600FCFF7F58 +:104F6000FEFFFF7FFFFFFF7F7FFBFFFFF8B5474698 +:104F7000CE4680B5B827804689460026BF00474404 +:104F80007B68BC685D1E0DD4A389012B07D90E2256 +:104F9000A35E013303D021004046C847064368346E +:104FA000013DF1D23F68002FEAD130000CBC9046A1 +:104FB0009946F8BD9423024A5B00D05C7047C04616 +:104FC0003807202000487047280820207047C04636 +:104FD0007047C0467047C0467047C04670B50C0069 +:104FE0001E000E23C95E150096B0002915DB6A4627 +:104FF00001F024F8002810DBF022019B120213407C +:105000000D4A8020944663445A42534133608023C2 +:10501000DB002B60000116B070BD00233360A38954 +:105020001B0603D5402300202B60F4E78023DB0020 +:1050300000202B60EFE7C04600E0FFFF70B58B89D2 +:1050400005000C0082B09B0707D523004333236083 +:1050500023610123636102B070BD6A4601ABFFF7B3 +:10506000BDFF00990600280000F030F8002810D09D +:105070008022154BEB63A38920601343009A1BB277 +:105080006261019AA3812061002A0CD13343A3817C +:10509000E1E70C22A35E9A05DDD4032293430222AA +:1050A0001343A381D1E728000E23E15E00F0DAFF6D +:1050B000002802D10C22A35EE8E70323A2899A43C9 +:1050C000012313431BB2E1E799480000F0B54E46B7 +:1050D0004546DE465746E0B50D000B35060083B069 +:1050E000162D22D8102900D9B2E000F0AFFB102510 +:1050F00002201823CB4FFB181A005C68083A944230 +:1051000000D1B5E0032362689A431300E268A16806 +:10511000CA6091600122E318596830000A435A605E +:1051200000F09CFB2000083095E007239D4300D54C +:105130008EE0A94200D98BE000F088FBFC235B00E5 +:105140009D4200D2A5E1680A00D18BE0042800D975 +:1051500078E138239846A80980443930C100B14F1E +:1051600079184C680839A1420ED003239C4604E00C +:10517000002ACBDAE468A14206D062466368934312 +:105180005A1B0F2AF4DD40463A003C69083294422B +:1051900000D178E003236168994389460B00491BDD +:1051A0000F2900DD79E17A613A610029B2DA8022C3 +:1051B0009200914500D30EE15909DA0801238B4092 +:1051C000D2007968D2190B4391687B60E260A160DC +:1051D0009460CC60012182109140994259D80B42D1 +:1051E00005D103229043490004300B42FBD0032336 +:1051F0009846C3009946B944CC4682466346DC686B +:10520000A44507D12AE1002A00DB33E1E468A44584 +:1052100000D123E14246636893435A1B0F2AF2DD13 +:1052200001208046611905436560A068E56808377C +:10523000C560A86040461043F960B9604860CF601F +:1052400030008F60E25000F009FB2000083002E0DF +:105250000C230020336003B03CBC90469946A24624 +:10526000AB46F0BD80213F2340209846890076E779 +:10527000DC680230A34200D044E73A003C690832BF +:10528000944200D086E701217B68821091409942C8 +:10529000A5D90323BC6862689A439146954203D816 +:1052A000531B0F2B00DD88E023004B445E4A019323 +:1052B0005E4B93461B681268EB18013200D13BE14C +:1052C0005B4A944663441B0B1B0300933000009918 +:1052D00000F078FC03008046013300D1F8E0019B28 +:1052E000834200D9F2E0534B19009A460968009BAB +:1052F0008C46514663440B6001991A00814200D1EB +:1053000050E15B461B68013300D155E143460199EA +:105310005B1A9A1853461A600723424641461A40C0 +:105320000192194200D111E108239846881A424B94 +:105330000099804441449B1A5B1A1B051B0D009188 +:10534000300019009B4600F03DFC431C00D14FE1AA +:105350004346C01A03005B440093534652461B6801 +:1053600001215B44136042464046BA60009A0A43FA +:105370004260BC4200D123E14A460F2A00D821E115 +:1053800007200C3A824360680140052011436160A8 +:10539000A118486088600F2A00D934E1424644468B +:1053A000526826490868984200D20B602449086870 +:1053B000984200D38EE00B608CE001222900134359 +:1053C0001143651961603000BD606B6000F046FA02 +:1053D000200008303FE75A0A042A71D9142A00D95C +:1053E000C4E011005C325B31D20008235B429C4672 +:1053F000BA18944463469A6803239846944500D1AA +:105400009DE0434651689943494502D992689445C5 +:10541000F7D1D3689C467B686146A260E1608C60EE +:10542000D460D7E6A4082020AC0C2020E80F202070 +:105430000F100000B80F202008100000E00F2020FF +:10544000E40F2020142852D9542800D996E06E2366 +:105450009846280B80446F30C10080E608239B46A5 +:10546000073BDC449B46DA4443465246134200D095 +:10547000C4E64CE00122E318596830000A435A6040 +:10548000E368A268D3609A6000F0E8F92000083071 +:10549000E1E62B00E80808332CE6012360191D43E0 +:1054A000656078613861C26082601A004B460A43C9 +:1054B00042603000E15000F0D1F920000830CAE627 +:1054C0009A09110039323831D2008EE7BC4260D0DF +:1054D000BC68626803239A43531B954202D80F2B82 +:1054E00000DD6AE7300000F0B9F90020B3E65B2385 +:1054F000984680445C30C10031E608235B429C46FC +:10550000E1444B469B6801384B4500D098E0434648 +:105510000342F2D17B688B437B604900994200D9FA +:10552000B7E6002904D1B4E6042294464900E244D7 +:105530000B42F9D050465CE610330093C6E6891062 +:10554000023B8B4079680B437B6065E7009B300032 +:1055500043445B421B051B0D19009B4600F032FBC8 +:10556000431C00D0F4E600239B46F6E6542A2BD8D1 +:105570001A0B11006F326E31D20036E7AA235B009E +:1055800098422BD8DD3B9846E80B80447830C10028 +:10559000E5E52C4B009A9A461B689C4653466244AC +:1055A0001A60AEE6090500D0ABE6009ABC684A4432 +:1055B00001310A436260F4E65B4642461A60ABE69C +:1055C0004446EEE641608DE7AA2149008A4224D88C +:1055D000DA0B110078327731D20006E71A4B984285 +:1055E00024D87C239846A80C80447D30C100B6E5C1 +:1055F000009A019B94464246083B63449B1A0093E1 +:1056000000239B46A9E6210030000831FFF754FA39 +:105610005346BC681B686268C3E60B498A420BD8D4 +:105620009A0C11007D327C31D200DEE6FE217E2311 +:105630007F209846890092E5FE227E219200D4E6E2 +:105640007B686AE7B80F20205405000082B000296B +:105650000AD0002A0BD0002B0BD013780B601078E7 +:10566000431E984102B0704701A9002AF3D10020DF +:10567000F8E702204042F5E770B5CCB283070DD0C1 +:10568000531E002A0FD0032504E00130284206D023 +:10569000013B08D30278A242F7D170BD1300032B5F +:1056A0000CD8002B01D10020F7E7C31802E001302D +:1056B0008342F8D00278A242F9D1EEE7FF220D062C +:1056C0002D0C114029430D04064E0D430268064976 +:1056D0006A40511891433142E7D1043B0430032B17 +:1056E000F4D8DEE780808080FFFEFEFEF0B5C6467F +:1056F00000B588420CD98B18984209D2531E002A53 +:1057000003D0CA5CC254013BFBD204BC9046F0BD3E +:105710000F2A0BD80500561E002AF6D00023CC5CB9 +:105720001A00EC5401339642F9D1EEE703270D003D +:105730003E0005430C0003002E402F422CD11500E3 +:10574000103D2D09AC462D01A846804425681F0058 +:105750001D6065685D60A5689D60E5681034DD606A +:1057600010334745F2D165460F230C2401352D0136 +:10577000491913404519144211D08C59AC510436C3 +:105780009C1B032CF9D80324043B9B0801339B008A +:10579000ED18C9182240BEE70500561EBEE71A00E4 +:1057A000B9E7C046F0B5050083074AD0541E002A69 +:1057B00044D003000322CEB202E00135013C3DD3C8 +:1057C00001332E701342F8D1032C2FD9FF220A4047 +:1057D000150215432A0415430F2C35D92700103F15 +:1057E0003F093E01B4461E001A001036664415609B +:1057F00055609560D5601032B242F8D10F260C2268 +:1058000001373F012640DB193700224217D03E1FE7 +:10581000B608B400A4461A001C1D644420C2A2426B +:10582000FCD103240136B6009B193C40002C05D066 +:10583000C9B21C19197001339C42FBD1F0BD340070 +:10584000F4E714000300BFE72700E0E710B50248C3 +:10585000FFF7C0FB10BDC046FC31202010B5024848 +:10586000FFF7BAFB10BDC046FC312020F0B557460B +:105870004546DE464E46E0B50C000700904683B034 +:10588000002900D1CBE045460B35FFF7DFFF162D91 +:1058900070D810251023A84570D82600083E7168DE +:1058A00003220800904381460096984200DB99E06D +:1058B000C34A3018934692689446824200D1C4E0AD +:1058C000426801900092012292465046009A82431B +:1058D000019894468346DC44624650465268024230 +:1058E00000D092E00320009ACB4682439446E344E2 +:1058F0009B4500DB1AE152460A420FD10321326870 +:10590000B21A924652688A436146511849448B46FE +:1059100099423FDA4A4493469A4240DA4146380077 +:10592000FFF7D4FB8046002820D07368B44600936C +:1059300001230099020099430B00083A6344934203 +:1059400000D1FAE04A46043A242A00D9FAE00300DA +:10595000132A00D9C5E02200116819605168596006 +:1059600092689A6021003800FFF7A6F83800FFF728 +:1059700075FF07E007239D432B1E8CDA0C233B6049 +:1059800000239846404603B03CBC90469946A24648 +:10599000AB46F0BD019AD3689268D3609A605346D3 +:1059A0005246DB6892685646D3609A604A46043A8B +:1059B0000836242A00D99EE03300132A09D9534619 +:1059C000216899606168D9601B2A00D9C8E0083451 +:1059D00010332268D9461A6062685A60A26834009F +:1059E00056469A604B465B1B0F2B1DD80122494639 +:1059F000736813400B4373604E4473681A437260BC +:105A00003800FFF72BFFA046BCE7084200D085E72F +:105A100003213268B21A924652688A437AE711002B +:105A2000FFF754FB8046ADE7012072687119024010 +:105A30000343154375604B604E4473680831184347 +:105A400070603800FFF738F8DAE7624650680322E2 +:105A500090430D3282469446CA44AC44E24552DA41 +:105A6000CA0700D55AE73168721A03219246526874 +:105A70008A4310180100494400918C4500DD49E734 +:105A800053465246DB689268D3609A6008234A46C0 +:105A90005344043A9846242A7CD8132A08D95346FA +:105AA000216899606168D9601B2A78D8083410335E +:105AB00022681A6062685A60A2689A60534659194F +:105AC0005B469960009B38005A1B01231A434A60C9 +:105AD0005246526813401D4353465D60FFF7BEFEB9 +:105AE00050E721680160616841601B2A2ED82200BE +:105AF0000833083230E7210030003400FFF7F6FDAC +:105B0000D94656466EE75B460098A0464119996013 +:105B100053465A1B01231A434A6041680B401D43F8 +:105B2000456038000091FFF799FE2BE7019AD946AE +:105B3000D3689268D3609A6054E703225B6893430A +:105B400099444FE72100FFF7D1FD0BE7A168816081 +:105B5000E168C160242A0CD0220010331032FBE629 +:105B6000A1681961E1685961242A0BD010341833F7 +:105B70002FE72269010002612200606918321833A0 +:105B80004861E9E622699A61524661692033D16130 +:105B900018341EE721001800FFF7A8FD8EE7A16862 +:105BA0001961E1685961242A02D0103418337FE763 +:105BB00022699A61524661692033D161183477E7CE +:105BC000A4082020002370B5064D040008002B60B7 +:105BD00000F0BAFA431C00D070BD2B68002BFBD03C +:105BE0002360F9E71032202070B505000C001F2952 +:105BF00022D8B7239B00C358002B0ED08A009B18D5 +:105C00001A68002A09D0012A14D0511C0ED0002194 +:105C1000200019609047002070BD280000F030F887 +:105C200022000100280000F017F8F5E716230360B2 +:105C30000120F1E70020EFE7162303600120404236 +:105C4000EAE7C04610B5034B01001868FFF7CCFF28 +:105C500010BDC04608032020002370B5074D040086 +:105C6000080011002B6000F057FA431C00D070BDF3 +:105C70002B68002BFBD02360F9E7C04610322020B0 +:105C800010B500F039FA10BD70B50C000E25495F53 +:105C900000F00EFA002803DB236D1B18236570BD8E +:105CA000A389024A1340A381F9E7C046FFEFFFFF33 +:105CB000F8B50C001F000C23C95E05001600CB05CB +:105CC0000AD40A4B320019402800A1810E23E15E5C +:105CD0003B0000F01FF9F8BD0E23E15E0022022315 +:105CE00000F0D2F90C23E15EEBE7C046FFEFFFFFC7 +:105CF00070B50C000E25495F00F0C6F9431C06D0B4 +:105D00008023A2895B011343A381206570BDA38911 +:105D1000014A1340A381F9E7FFEFFFFF10B50E23FF +:105D2000C95E00F00BF910BD10B583070AD003005F +:105D3000032102E001330B4205D01A78002AF9D181 +:105D4000181A10BD030019680C4A0D4C8A188A43B2 +:105D500022420FD15968094A04338A188A432242E1 +:105D600008D15968054A04338A188A432242F1D07F +:105D700000E001331A78002AFBD1E1E7FFFEFEFEC6 +:105D800080808080F0B50C00044303000600A40767 +:105D900012D1032A10D9144CA44666460D68134C40 +:105DA0001F002C19AC4334421CD10433043A1E00AA +:105DB00004313D60032AF0D80024B71806E00D5DD9 +:105DC000013A3555BB1A0134002D02D0002AF6D114 +:105DD000F0BD0021D418002AFAD0197001339C427A +:105DE000FBD1F5E71E00E7E780808080FFFEFEFE26 +:105DF000F8B505000E001400002802D0836B002BBC +:105E00004BD0A369A289A3600C23E05E13071FD5C2 +:105E10002369002B1CD0FF21F7B20E40802189019D +:105E20000A4226D022686169D31A99422CDD0133D7 +:105E3000A1680139A160511C2160177062699A4202 +:105E40002ED0A389DB0701D50A2E29D03000F8BD5A +:105E500021002800FEF7B0FB002827D1FF21F7B270 +:105E60000E408021A28989010C23E05E23690A4249 +:105E7000D8D101430F4AA181616E0A40626661690F +:105E80002268D31A9942D2DC21002800FEF7A6FC32 +:105E900000280BD101232268CAE7FEF705FDB0E711 +:105EA00021002800FEF79AFC0028CFD00126764278 +:105EB000CCE7C046FFDFFFFF70B504001D0084B0D3 +:105EC000002909D0E0230B48C6582B002000B0471A +:105ED000431C0AD004B070BDE023064A01A9D6587D +:105EE0002B000022B047431CF4D100232B608A33DF +:105EF0002360EFE738072020002909D0FF2A02D8C5 +:105F000001200A7070478A23036001204042F9E7AC +:105F10000020F7E770B50400080011001A00002304 +:105F2000054D2B6000F01EF9431C00D070BD2B689E +:105F3000002BFBD02360F9E710322020002370B53E +:105F4000064D040008002B6000F0C6F8431C00D08A +:105F500070BD2B68002BFBD02360F9E710322020A6 +:105F6000F8B506000C1E4DD0002802D0836B002B24 +:105F70004AD00127636E3B4235D00C22A35E002B32 +:105F800040D021003000FEF789FBE36A0500002BBA +:105F900004D03000E169984700283CDBA3891B0648 +:105FA0003ED4216B002908D023004033994202D00F +:105FB0003000FEF781FD00232363616C002904D0CB +:105FC0003000FEF779FD00236364FEF79DFC00239B +:105FD000A381636EDB072CD5A06DFEF7F9FFFEF7FA +:105FE0009BFC2800F8BDA3899B05CAD4A06DFEF7D1 +:105FF000F1FF0C22A35E002BC3D1636E1D003D4058 +:106000003B4212D00025ECE70127FEF74DFC636E02 +:106010003B42B2D1E7E70125A3896D421B06C0D5FB +:1060200030002169FEF748FDBBE7A06DFEF7D4FF05 +:10603000D7E7A06DFEF7D0FFCEE7C046002370B5CE +:10604000074D0400080011002B6000F04DF8431CC0 +:1060500000D070BD2B68002BFBD02360F9E7C04651 +:1060600010322020002370B5064D040008002B607C +:1060700000F04AF8431C00D070BD2B68002BFBD009 +:106080002360F9E71032202070B5040008001100E9 +:106090001A000023054D2B6000F046F8431C00D089 +:1060A00070BD2B68002BFBD02360F9E71032202055 +:1060B00070B50400080011001A000023054D2B6084 +:1060C00000F03AF8431C00D070BD2B68002BFBD0C9 +:1060D0002360F9E71032202058220120014B404272 +:1060E0001A6070471032202058220120014B404294 +:1060F0001A6070471032202058220120014B404284 +:106100001A607047103220205822024B00201A607B +:106110007047C0461032202058220120014B4042D7 +:106120001A6070471032202058220120014B404253 +:106130001A6070471032202058220120014B404243 +:106140001A60704710322020044A030010680028AB +:1061500002D0C318136070470148FAE7EC0F202003 +:106160001832202058220120014B40421A6070470B +:1061700010322020FEE7C04601B40248844601BC2C +:08618000604700BF0100202070 +:1061880080B584B000AF78607A6888235B0101210C +:10619800D1507B68094A9B5807221340FB60FB6873 +:1061A800DBB2032B03D0FB68DBB2012BF1D1FB6818 +:1061B800DBB21800BD4604B080BDC046D013000055 +:1061C80000000000010000000200000003000000C1 +:1061D80004000000050000000600000007000000A1 +:1061E800080000000C00000010000000140000006F +:1061F80018000000200000003000000040000000EF +:106208000400000005000000060000000700000070 +:10621800080000000A0000000E0000001200000044 +:106228003808000048080000580800006808000006 +:1062380078080000AC0800009A0800008A080000EE +:106248001011121315141700564543424D53000000 +:106258004D43414E203D3D2043414E4644300000D1 +:106268002E2E2F4D43414C2F4D63616C5F5372634B +:106278002F697665635F6D63616C5F6D63616E2E18 +:106288006300000042415544203D3D2042415544B1 +:106298005F353030207C7C2042415544203D3D20F4 +:1062A800424155445F32353000000000625F4D4383 +:1062B800414E5F496E6974466C6167203D3D2030F0 +:1062C80000000000625F4D43414E5F496E697446AD +:1062D8006C616720213D2030000000004279746520 +:1062E80073203C3D20380000784D43414C5F4D43BE +:1062F800414E496E69740000784D43414C5F4D43EF +:10630800414E4465496E697400000000784D434170 +:106318004C5F4D43414E547800000000784D434196 +:106328004C5F4D43414E5278506F6C6C696E6700FC +:1063380000000000F8070000100000000100000045 +:106348000200000048160000B415000042160000C4 +:10635800BA150000FC15000002160000081600001F +:106368000E1600001416000048160000481600001B +:10637800481600004816000048160000481600009D +:10638800481600001A1600004816000048160000BB +:10639800481600004816000048160000481600007D +:1063A8004816000020160000481600004816000095 +:1063B800481600004816000048160000481600005D +:1063C800481600002616000048160000481600006F +:1063D800481600004816000048160000481600003D +:1063E800481600002A16000048160000481600004B +:1063F800481600004816000048160000481600001D +:106408004816000030160000481600004816000024 +:1064180048160000481600004816000048160000FC +:1064280048160000361600004816000048160000FE +:1064380048160000481600004816000048160000DC +:10644800481600003C160000010000000000000093 +:106458000000000000000000200000001000000004 +:106468000001000003000000000000002C00C441EF +:106478002C2066756E6374696F6E3A200000000008 +:10648800617373657274696F6E20222573222066AA +:1064980061696C65643A2066696C652022257322FF +:1064A8002C206C696E65202564257325730A00000D +:1064B8003031323334353637383941424344454632 +:1064C80000000000303132333435363738396162F4 +:1064D8006364656600000000286E756C6C29000016 +:1064E800E43C00002C3A00002C3A0000DC3C0000A0 +:1064F8002C3A00002C3A00002C3A00009638000094 +:106508002C3A00002C3A0000423C00008E3C00006F +:106518002C3A0000563C0000A03C00002C3A000039 +:10652800983C0000903B0000903B0000903B00002E +:10653800903B0000903B0000903B0000903B000027 +:10654800903B0000903B00002C3A00002C3A0000E1 +:106558002C3A00002C3A00002C3A00002C3A00009B +:106568002C3A00002C3A00002C3A00002A3C00008B +:10657800CC3800002C3A00002C3A00002C3A0000DD +:106588002C3A00002C3A00002C3A00002C3A00006B +:106598002C3A00002C3A00002C3A00005439000034 +:1065A8002C3A00002C3A00002C3A0000F03B000086 +:1065B8002C3A00005E3C00002C3A00002C3A000007 +:1065C800DA4200002C3A00002C3A00002C3A000075 +:1065D8002C3A00002C3A00002C3A00002C3A00001B +:1065E8002C3A00002C3A00002C3A00002A3C00000B +:1065F800D03800002C3A00002C3A00002C3A000059 +:10660800803C0000D0380000C43800002C3A00005C +:106618003C3D00002C3A0000183D000058390000AD +:10662800F83C0000C43800002C3A0000F03B0000A1 +:10663800C0380000184300002C3A00002C3A000033 +:106648001C4300002C3A0000C03800002020202005 +:1066580020202020202020202020202030303030F2 +:10666800303030303030303030303030430000009F +:10667800504F5349580000002E00000000202020F1 +:1066880020202020202028282828282020202020DA +:1066980020202020202020202020202020881010AA +:1066A8001010101010101010101010101004040406 +:1066B80004040404040404101010101010104141C4 +:1066C80041414141010101010101010101010101B2 +:1066D80001010101010101011010101010104242C6 +:1066E8004242424202020202020202020202020282 +:1066F8000202020202020202101010102000000022 +:106708000000000000000000000000000000000081 +:106718000000000000000000000000000000000071 +:106728000000000000000000000000000000000061 +:106738000000000000000000000000000000000051 +:106748000000000000000000000000000000000041 +:106758000000000000000000000000000000000031 +:106768000000000000000000000000000000000021 +:106778000000000000000000000000000000000011 +:08678800EC9CFF7F0100000002 +:10679000A10D000000000000E50E0000A90D0000A2 +:1067A0008D0E0000E1080000B90B0000950B000001 +:1067B000B50A0000290A0000DD0900000000000001 +:1067C000000000002109000000000000000000009F +:1067D00000000000000000000000000000000000B9 +:1067E0000000000000000000FF00000000000000AA +:1067F0001101000000000000000000000000000087 +:106800000000000000000000000000000000000088 +:106810000000000000000000000000000000000078 +:106820000000000000000000000000000000000068 +:106830000000000000000000000000000000000058 +:106840000000000000000000000000000000000048 +:106850000000000000000000000000000000000038 +:106860000000000000000000000000000000000028 +:106870000000000000000000008000000000020096 +:1068800000800100010000000D1000001110000048 +:10689000F10F000000000000000000005110000097 +:1068A00000000000891000000080000001000000CE +:1068B000000000008A000000130000001300000028 +:1068C00000000000000000000000000000000000C8 +:1068D0000000000029000000040000000400000087 +:1068E00000000000000000000000000000000000A8 +:1068F00000000000000000000F0000000000000089 +:1069000000000000FFFF0000000000000100000088 +:106910000100000003000000030000000000000070 +:106920000000000000000000000000000000000067 +:106930000000000000000000000000000100000056 +:10694000FF0000000A000000060000000100000037 +:106950000000000002000000300000000000000005 +:106960000A0000000A0000000A0000000000000009 +:1069700000000000800200000A000000000000008B +:10698000AA0000004000000000000000000000001D +:10699000BE0000000A0000000A0000000100000024 +:1069A000D000000000000000000000000000000017 +:1069B00000000000000000000000000000000000D7 +:1069C00008000000010000000100000001000000BC +:1069D000AA0000000000000000000000000000000D +:1069E00000000000000000000000000000000000A7 +:1069F0000000000000000000000000000000000097 +:106A00000000000000000000000000000000000086 +:106A10000000000000000000000000000000000076 +:106A20000000000000000000000000000000000066 +:106A30000000000000000000000000000000000056 +:106A40000000000000000000000000000000000046 +:106A500000000000010000001003202000000000E2 +:106A600000000000FC05202064062020CC06202029 +:106A70000000000000000000000000000000000016 +:106A80000000000000000000000000000000000006 +:106A900000000000000000000000000000000000F6 +:106AA00000000000000000000000000000000000E6 +:106AB00000000000000000000000000000000000D6 +:106AC00000000000000000000000000000000000C6 +:106AD00000000000000000000000000000000000B6 +:106AE00000000000000000000000000000000000A6 +:106AF0000000000000000000000000000000000096 +:106B00000000000000000000010000000000000084 +:106B10000E33CDAB34126DE6ECDE05000B00000049 +:106B20000000000000000000000000000000000065 +:106B30000000000000000000000000000000000055 +:106B40000000000000000000000000000000000045 +:106B50000000000000000000000000000000000035 +:106B60000000000000000000000000000000000025 +:106B70000000000000000000000000000000000015 +:106B80000000000000000000000000000000000005 +:106B900000000000000000000000000000000000F5 +:106BA00000000000000000000000000000000000E5 +:106BB00000000000000000000000000000000000D5 +:106BC00000000000000000000000000000000000C5 +:106BD00000000000000000000000000000000000B5 +:106BE00000000000000000000000000000000000A5 +:106BF0000000000000000000000000000000000095 +:106C00000000000000000000000000000000000084 +:106C10000000000000000000000000000000000074 +:106C20000000000000000000000000000000000064 +:106C30000000000000000000000000000000000054 +:106C40000000000000000000000000000000000044 +:106C50000000000000000000000000000000000034 +:106C60000000000000000000000000000000000024 +:106C70000000000000000000000000000000000014 +:106C80000000000000000000000000000000000004 +:106C900000000000000000000000000000000000F4 +:106CA00000000000000000000000000000000000E4 +:106CB00000000000000000000000000000000000D4 +:106CC00000000000000000000000000000000000C4 +:106CD00000000000000000000000000000000000B4 +:106CE00000000000000000000000000000000000A4 +:106CF0000000000000000000000000000000000094 +:106D00000000000000000000000000000000000083 +:106D10000000000000000000000000000000000073 +:106D20000000000000000000000000000000000063 +:106D30000000000000000000000000000000000053 +:106D40000000000000000000000000000000000043 +:106D50000000000000000000000000000000000033 +:106D60000000000000000000000000000000000023 +:106D70000000000000000000000000000000000013 +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E800000000000000000004300000000000000BF +:106E900000000000000000000000000000000000F2 +:106EA000000000000000000043000000000000009F +:106EB00000000000000000000000000000000000D2 +:106EC000000000000000000043000000000000007F +:106ED00000000000000000000000000000000000B2 +:106EE000000000000000000043000000000000005F +:106EF0000000000000000000000000000000000092 +:106F0000000000000000000043000000000000003E +:106F10000000000000000000000000000000000071 +:106F2000000000000000000043000000000000001E +:106F30000000000000000000000000000000000051 +:106F400000000000000000004300000000000000FE +:106F50000000000000000000000000000000000031 +:106F60000000000000000000F95E00004D56000027 +:106F70000000000084660000806600008464000059 +:106F80008464000084640000846400008464000061 +:106F90008464000084640000846400008464000051 +:106FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFF0000EF +:106FB0000100415343494900000000000000000067 +:106FC00000000000000000000000000000000000C1 +:106FD0000000415343494900000000000000000048 +:106FE00000000000000000000000000000000000A1 +:106FF000000000000000000000000000A4082020A5 +:10700000A4082020AC082020AC082020B4082020B0 +:10701000B4082020BC082020BC082020C408202060 +:10702000C4082020CC082020CC082020D408202010 +:10703000D4082020DC082020DC082020E4082020C0 +:10704000E4082020EC082020EC082020F408202070 +:10705000F4082020FC082020FC082020040920201F +:10706000040920200C0920200C09202014092020CC +:10707000140920201C0920201C092020240920207C +:10708000240920202C0920202C092020340920202C +:10709000340920203C0920203C09202044092020DC +:1070A000440920204C0920204C092020540920208C +:1070B000540920205C0920205C092020640920203C +:1070C000640920206C0920206C09202074092020EC +:1070D000740920207C0920207C092020840920209C +:1070E000840920208C0920208C092020940920204C +:1070F000940920209C0920209C092020A4092020FC +:10710000A4092020AC092020AC092020B4092020AB +:10711000B4092020BC092020BC092020C40920205B +:10712000C4092020CC092020CC092020D40920200B +:10713000D4092020DC092020DC092020E4092020BB +:10714000E4092020EC092020EC092020F40920206B +:10715000F4092020FC092020FC092020040A20201A +:10716000040A20200C0A20200C0A2020140A2020C7 +:10717000140A20201C0A20201C0A2020240A202077 +:10718000240A20202C0A20202C0A2020340A202027 +:10719000340A20203C0A20203C0A2020440A2020D7 +:1071A000440A20204C0A20204C0A2020540A202087 +:1071B000540A20205C0A20205C0A2020640A202037 +:1071C000640A20206C0A20206C0A2020740A2020E7 +:1071D000740A20207C0A20207C0A2020840A202097 +:1071E000840A20208C0A20208C0A2020940A202047 +:1071F000940A20209C0A20209C0A2020A40A2020F7 +:10720000A40A2020AC0A2020AC0A2020B40A2020A6 +:10721000B40A2020BC0A2020BC0A2020C40A202056 +:10722000C40A2020CC0A2020CC0A2020D40A202006 +:10723000D40A2020DC0A2020DC0A2020E40A2020B6 +:10724000E40A2020EC0A2020EC0A2020F40A202066 +:10725000F40A2020FC0A2020FC0A2020040B202015 +:10726000040B20200C0B20200C0B2020140B2020C2 +:10727000140B20201C0B20201C0B2020240B202072 +:10728000240B20202C0B20202C0B2020340B202022 +:10729000340B20203C0B20203C0B2020440B2020D2 +:1072A000440B20204C0B20204C0B2020540B202082 +:1072B000540B20205C0B20205C0B2020640B202032 +:1072C000640B20206C0B20206C0B2020740B2020E2 +:1072D000740B20207C0B20207C0B2020840B202092 +:1072E000840B20208C0B20208C0B2020940B202042 +:1072F000940B20209C0B20209C0B2020A40B2020F2 +:10730000A40B2020AC0B2020AC0B2020B40B2020A1 +:10731000B40B2020BC0B2020BC0B2020C40B202051 +:10732000C40B2020CC0B2020CC0B2020D40B202001 +:10733000D40B2020DC0B2020DC0B2020E40B2020B1 +:10734000E40B2020EC0B2020EC0B2020F40B202061 +:10735000F40B2020FC0B2020FC0B2020040C202010 +:10736000040C20200C0C20200C0C2020140C2020BD +:10737000140C20201C0C20201C0C2020240C20206D +:10738000240C20202C0C20202C0C2020340C20201D +:10739000340C20203C0C20203C0C2020440C2020CD +:1073A000440C20204C0C20204C0C2020540C20207D +:1073B000540C20205C0C20205C0C2020640C20202D +:1073C000640C20206C0C20206C0C2020740C2020DD +:1073D000740C20207C0C20207C0C2020840C20208D +:1073E000840C20208C0C20208C0C2020940C20203D +:1073F000940C20209C0C20209C0C2020FFFFFFFFE1 +:08740000000002000000000082 +:040000030000800079 +:00000001FF diff --git a/TI_Bootloader_HW35.hex b/TI_Bootloader_HW35.hex deleted file mode 100644 index cd1e008..0000000 --- a/TI_Bootloader_HW35.hex +++ /dev/null @@ -1,1858 +0,0 @@ -:1000000000802020650600006106000061060000F7 -:1000100000000000000000000000000000000000E0 -:100020000000000000000000000000006106000069 -:10003000000000000000000061060000CD18000074 -:100040006106000061060000610600006106000014 -:100050006106000061060000610600006106000004 -:1000600000000000610600006106000000000000C2 -:10007000000000006106000061060000610600004B -:1000800061060000610600006106000061060000D4 -:100090006106000061060000000000000000000092 -:1000A0006106000061060000000000000000000082 -:1000B000610600000000000061060000610600000B -:1000C000002243088B4274D303098B425FD3030A97 -:1000D0008B4244D3030B8B4228D3030C8B420DD3AA -:1000E000FF22090212BA030C8B4202D31212090238 -:1000F00065D0030B8B4219D300E0090AC30B8B4276 -:1001000001D3CB03C01A5241830B8B4201D38B0323 -:10011000C01A5241430B8B4201D34B03C01A5241C8 -:10012000030B8B4201D30B03C01A5241C30A8B420B -:1001300001D3CB02C01A5241830A8B4201D38B02F6 -:10014000C01A5241430A8B4201D34B02C01A52419A -:10015000030A8B4201D30B02C01A5241CDD2C3090C -:100160008B4201D3CB01C01A524183098B4201D388 -:100170008B01C01A524143098B4201D34B01C01A73 -:10018000524103098B4201D30B01C01A5241C308EB -:100190008B4201D3CB00C01A524183088B4201D35A -:1001A0008B00C01A524143088B4201D34B00C01A46 -:1001B0005241411A00D20146524110467047FFE7B2 -:1001C00001B5002000F006F802BDC0460029F7D0B6 -:1001D00076E770477047C046024670B50A439207FB -:1001E0002AD11E4DEE0104C808C9541B9443344063 -:1001F00017D0D0B2D9B2401A2106014310D190B223 -:1002000099B2401A210401430AD110021902000ACE -:10021000090A401A2102014302D1100E190E401A98 -:1002200070BD9A42DFD010BA19BA884201D90120B4 -:1002300070BD0020C04370BD02780B7801300131E1 -:10024000002A09D09A4207D102780B780130013197 -:10025000002A01D09A42EFD0D01A70BD01010101ED -:1002600003460B437FD4002243088B4274D3030917 -:100270008B425FD3030A8B4244D3030B8B4228D3B8 -:10028000030C8B420DD3FF22090212BA030C8B42DE -:1002900002D31212090265D0030B8B4219D300E07E -:1002A000090AC30B8B4201D3CB03C01A5241830B03 -:1002B0008B4201D38B03C01A5241430B8B4201D3B3 -:1002C0004B03C01A5241030B8B4201D30B03C01ADC -:1002D0005241C30A8B4201D3CB02C01A5241830A56 -:1002E0008B4201D38B02C01A5241430A8B4201D385 -:1002F0004B02C01A5241030A8B4201D30B02C01AAF -:100300005241CDD2C3098B4201D3CB01C01A524115 -:1003100083098B4201D38B01C01A524143098B429E -:1003200001D34B01C01A524103098B4201D30B0187 -:10033000C01A5241C3088B4201D3CB00C01A5241AC -:1003400083088B4201D38B00C01A524143088B4271 -:1003500001D34B00C01A5241411A00D2014652410A -:10036000104670475DE0CA0F00D04942031000D329 -:100370004042534000229C4603098B422DD3030A7E -:100380008B4212D3FC22890112BA030A8B420CD38E -:10039000890192118B4208D3890192118B4204D3B7 -:1003A00089013AD0921100E08909C3098B4201D337 -:1003B000CB01C01A524183098B4201D38B01C01A71 -:1003C000524143098B4201D34B01C01A52410309E8 -:1003D0008B4201D30B01C01A5241C3088B4201D397 -:1003E000CB00C01A524183088B4201D38B00C01A44 -:1003F0005241D9D243088B4201D34B00C01A52411B -:10040000411A00D20146634652415B10104601D3A7 -:100410004042002B00D54942704763465B1000D331 -:10042000404201B50020FFF7D5FE02BD0029F8D0FB -:1004300016E77047002B11D1002A0FD1002900D1F7 -:10044000002802D00021C943081C07B4024802A1B9 -:100450004018029003BDC0467DFDFFFF03B468460F -:1004600001B5029800F006F8019B9E4602B00CBC54 -:100470007047C046F0B557464E464546DE46E0B5A5 -:1004800004000D009246994683B08B4230D82DD09F -:100490004946504600F0BAF829000600200000F056 -:1004A000B5F8331A9846203B9B4633D45A465346F8 -:1004B000934042461F00534693401E00AF423AD835 -:1004C000AF4200D178E05B46A41BBD41002B00DAAF -:1004D00075E0002200230092019301235A469340C5 -:1004E0000193012342469340009328E08242CFD9F2 -:1004F00000220023009201930C9B002B01D01C6072 -:100500005D600098019903B03CBC90469946A246B4 -:10051000AB46F0BD424620239B1A5246DA40414684 -:1005200013004A468A40170042461F4353469340F1 -:100530001E00AF42C4D9002200230092019343461B -:10054000002BD9D0FB0772081A4346467B080EE001 -:10055000AB4201D1A2420CD8A41A9D41012024191A -:100560006D410021013E24184D41002E06D0AB42C2 -:10057000EED9013E24196D41002EF8D10098019961 -:100580005B4600196941002B24DB2B005A46444688 -:10059000D3402A00E2401C005B461500002B2ADBFA -:1005A00026009E40330026004746BE403200801A97 -:1005B0009941009001919FE7A342BCD883E742464E -:1005C000202300219B1A0022009101920122DA408F -:1005D000019286E7424620239B1A2A0046469A400B -:1005E0002300F340444613432A00E2401C005B46CC -:1005F0001500002BD4DA42462F0020232600974016 -:100600009B1ADE403B003343CDE7C04610B50029BE -:1006100003D100F007F8203002E0081C00F002F8D7 -:1006200010BDC0461C2101231B04984201D3000CBD -:1006300010391B0A984201D3000A08391B09984255 -:1006400001D30009043902A2105C40187047C0466B -:10065000040302020101010100000000000000008B -:10066000FEE7000010B50F4B0F4A10498B4202D233 -:1006700002CA02C3F9E70E4B0E4A0F498B4202D25F -:1006800002CA02C3F9E70D4B01E0002204C30C4A81 -:100690009342FAD302F0A2FF00F015F8FFF7E0FF53 -:1006A00010BDC0464800202070670000C00C20200C -:1006B000000020206061000048002020C00C2020A5 -:1006C00020322020704710B501F026F900F054F8D0 -:1006D000002010BD10B5074C074B236000F080FAD6 -:1006E0006060200000F062F800F04CF8034800F071 -:1006F0007BFA10BDC00C20204800202030012020B3 -:1007000010B501F0EBF8040006E000F067F8194BB3 -:100710001860012001F0E8F8164B1B68002B06D189 -:1007200001F0DCF8001BC8235B009842EDD3114BAD -:100730001B68012B09D000F0D7FC002812D16420DF -:1007400001F0D2F801F004F910BD792000F09EFB11 -:10075000C046002400E0002400F05EF80134642C60 -:10076000F9DCF9E7642001F0BFF88020000200F016 -:100770006FFCE4E7C80C202010B5FFF7ABFFFFF7D4 -:10078000BFFF10BD10B50024064B1B68A34200D864 -:1007900010BDE300044A9B581B68002B00D098470B -:1007A0000134F1E7CC0C2020D00C202010B5094BEF -:1007B0001B68002B0BD1084AD90004688C50406894 -:1007C000521850600133034A1360002010BD01200D -:1007D000FCE7C046CC0C2020D00C202010B5002017 -:1007E000002400E00134094B1B68A3420DD9E3004B -:1007F000074A9B589B68002BF4D098470128F1D1F9 -:10080000E400034B1C19034B1C6010BDCC0C2020D2 -:10081000D00C2020D80C202010B52D4B1B681B6855 -:10082000DB68002B0FD098471038C3B2072B45D890 -:100830009800284B1B589F46254B1B685B681B681C -:10084000002B00D0984710BD214B1B685B685B688C -:10085000002BF8D09847F6E71D4B1B685B689B6838 -:10086000002BF0D09847EEE7194B1B685B68DB68FC -:10087000002BE8D09847E6E7154B1B685B681B69BF -:10088000002BE0D09847C046DDE7114B1B685B6842 -:100890001B6A002BD7D09847D5E70D4B1B681B6808 -:1008A0001B69002BCFD079209847CCE7084B1B68F9 -:1008B0005B685B69002BC6D09847C4E7044B1B6894 -:1008C0001B681B69002BBED01F209847BBE7C046A2 -:1008D000D80C20200862000010B500F0DFFE10BD2B -:1008E00010B582B06A460D4B03CB03C2792000F0ED -:1008F000CDFA082000F0CAFA212000F0C7FA00243F -:1009000004E06B46185D00F0C1FA0134072CF8D9F9 -:10091000792000F0BBFA02B010BDC046286200008A -:10092000F8B500F009FA002803D01F2000F0AEFA55 -:100930001CE0792000F0AAFA1B4A13781B025178B8 -:100940000D001D4311701B0A5370EE0807272F403E -:10095000002E0CD1002F1AD1802280205200124983 -:10096000000200F0EFF9792000F090FAF8BD0024C1 -:10097000B442EFD0E00002300B4BC0181722082120 -:1009800000F04CFA792000F081FA0134F0E7E81B1E -:100990000230054D40191722082100F03FFA792056 -:1009A00000F074FAD8E7C046100D202010B50400FE -:1009B000094A13781B06517809040B439178090200 -:1009C0000B43D0781843206000F044F9002801D18F -:1009D0001F3010BD7920FCE7100D202000B583B03A -:1009E00000F0AAF9002804D01F2000F04FFA03B04D -:1009F00000BD792000F04AFA01A8FFF7D7FF1F28B1 -:100A00000AD000F071FB002809D0792000F03EFAEE -:100A1000019800F093F9EAE700F038FAE7E71F20C1 -:100A200000F034FAE3E70000F0B583B000F084F999 -:100A3000041E04D01F2000F029FA03B0F0BD01A865 -:100A4000FFF7B4FF1F2815D0792000F01FFA184BCC -:100A50001D790135EF0807262E40072D0DD8002EF1 -:100A60001AD12A001249019800F04AF9792000F0C1 -:100A70000DFAE2E700F00AFADFE7BC42EFD0E0004F -:100A80000B4BC0181422082100F0C8F9792000F09F -:100A9000FDF90134E4B2F0E7A81B054E80191422D9 -:100AA000082100F0BBF9792000F0F0F9D9E7C04641 -:100AB000100D2020F0B5CE46474680B583B000F03B -:100AC0003BF9071E07D01F2000F0E0F903B00CBC73 -:100AD00090469946F0BD01A8FFF768FF1F280FD088 -:100AE000792000F0D3F9284B1B790133DA089046BE -:100AF00007221A409146019800F0CEF8060021E046 -:100B000000F0C4F9E2E70830310000F0E1F831000C -:100B1000019800F0DDF81D4B18550134E4B2019B3B -:100B200001330193013D002D04D00198184B9842E8 -:100B3000EDD8E8E70821154800F024FA01235B42CC -:100B40009C46E0444346002B02D03C000825EAE7DF -:100B50004B46002B16D1792000F098F9B6E731000A -:100B6000019800F0B5F8094BD8550137FFB2019B49 -:100B700001330193013C002CF1D14946034800F0B8 -:100B800001FAE8E74C46F6E7100D2020100E202071 -:100B9000EFFF010010B5792000F078F90548342303 -:100BA000037003334370022100F0ECF9792000F068 -:100BB0006DF910BD100E202010B5792000F066F9F7 -:100BC000212000F063F905480023037043700221DF -:100BD00000F0D8F9792000F059F910BD100E20204E -:100BE000004870475C00202070B5184B1968002938 -:100BF0002AD1174B4A00541824010568E5501B19E7 -:100C000042685A6082689A60C268DA6002691A6152 -:100C100042695A6182699A61416A5962C16AD962BC -:100C20009047082805D0094A136801331360002053 -:100C300070BD064B1A6853009B181B01044AD31859 -:100C4000802292025A60EEE70120F1E7DC0C2020BE -:100C5000E00C2020002300E001330D4A12689A4284 -:100C600013D95A00D21812010A4952588242F3D8B5 -:100C70005A00D21812018A1852688242ECD35A00E4 -:100C8000D3181B01CB18D86800E000207047C0467D -:100C9000DC0C2020E00C20200100002000E00130CE -:100CA000094B1B6883420DD943001B181B01074ADF -:100CB0009B588B42F3D843001B181B01D3185B6869 -:100CC0008B42ECD37047C046DC0C2020E00C202087 -:100CD00010B5094B1B688B4209D94B005918090103 -:100CE000064B59180B69002B03D0984700E00020F1 -:100CF00010BD0020FCE7C046DC0C2020E00C2020CA -:100D000070B506000C001500FFF7C6FF084B1B6806 -:100D100083420BD9430018180001064B1818436989 -:100D2000002B03D02A0021003000984770BDC04638 -:100D3000DC0C2020E00C20200020704710B500F0D3 -:100D400087F910BD70B50C001500FFF7A5FF0A4B21 -:100D50001B6883420BD9430018180001074B181871 -:100D6000C36A002B05D029002000984700E001202D -:100D700070BD0120FCE7C046DC0C2020E00C2020E8 -:100D800010B50021014800F015FA10BD0080504058 -:100D900010B5024800F0A0FA10BDC04600805040D7 -:100DA00010B5FFF7EDFF10BD30B583B0002501246D -:100DB000002C11D0144B1A00803A190084390A20F3 -:100DC0000090124800F0D6FA0400FFF785FD0135C7 -:100DD000642DEDDD0025EBE7FFF77EFD0C4B5B6836 -:100DE000D8B20C4A5360002306E0094AD218117A9F -:100DF000094AD1540133DBB2054988228A5C9A4200 -:100E0000F3D803B030BDC046801020200080504091 -:100E1000F80F2020A4002020100D2020F0B583B072 -:100E200007000E001500164B00225A60002403E054 -:100E30000134642C00DD0024124B1A00803A1900A2 -:100E400084390A200090104800F094FA0028EFD16D -:100E50000B4B5B68AB42EBD1FFF73EFD084B5B6889 -:100E6000AB420AD003B0F0BD054AD218127AFA5448 -:100E70000133DBB2B342F7D3F4E70023FAE7C0460D -:100E8000F80F2020801020200080504010B582B044 -:100E9000124A01238821535451682031516048245B -:100EA00010534832009300230D4800F0F3FA002459 -:100EB00004E00B4800F0E4FA01231840002804D0B5 -:100EC0000134642CF5DD0024F3E7FFF705FD034A48 -:100ED0005368203B536002B010BDC046A4002020E0 -:100EE0000080504030B585B0002302930393204B1F -:100EF0001A00803A19008439642000901D4800F0DF -:100F000039FA00282CD11C4B5B68DAB21B494B60C4 -:100F1000162A01D0002424E002AB17490A00083247 -:100F2000180030CA30C000229A71C87B03001E3BF3 -:100F3000DBB2092B1AD80A21FFF748F9C9B20529F3 -:100F400001D000240DE00E4902A8FFF745F9002862 -:100F500001D0002405E07930FFF798FF012400E07C -:100F60000024FFF7B9FC200005B030BD0024F8E7ED -:100F70008010202000805040F80F2020A400202066 -:100F80003062000070B582B00E00164B8822995472 -:100F90005968203159600023B34207D2C55C1A005A -:100FA000243252000F4C15530133F5E7009600230D -:100FB0000D4A0E4800F06EFA002404E00B4800F0E1 -:100FC0005FFA01231840002804D00134642CF5DDB9 -:100FD0000024F3E7FFF780FC024A5368203B53608C -:100FE00002B070BDA4002020EC0020200080504002 -:100FF000054B1B78002B04D1034B01221A700020F3 -:10100000704701204042FBE7100F20200078704716 -:10101000F8B506000F001500530702D007239D43C3 -:101020000835002402E000F087FC0834AC420BD203 -:1010300000F084FC3A19A119044800F09AF840B273 -:101040000028F0D0C046EEE7F8BDC04600D00C4006 -:1010500010B50400FFF79CFE00F072FC084B002264 -:101060001A605A609A60236883F30888236883F3C0 -:101070000988BFF36F8F034B9C606368984710BD6E -:1010800010E000E000ED00E0F0B5C64600B5050058 -:101090000E000788023500F051FC0023984600241A -:1010A0000BE089020F4800F04EF840B2002802D051 -:1010B00001239C46E04401350134BC4207D2730849 -:1010C000A34204D929781F29EBD8C046F3E700F0E2 -:1010D00033FC4346002B03D0012004BC9046F0BDF6 -:1010E0000020FAE700D00C4010B580200002FFF786 -:1010F000B1FD012818D180231B0219684B1C15D0A3 -:101100000A000023FE2000060321494212184B4129 -:1011100007490C68002101208B4202DC02D1A24267 -:1011200000D9002040B200E0002010BD0020FCE704 -:101130006001202010B500F05DFD10BD10B500F07D -:101140004FFE40B210BD70B504000D008022920029 -:10115000FFF7F0FF40222900200000F0D5FC032813 -:1011600005D0042801D0012070BD0238FCE7002022 -:10117000FAE770B504000D00160080229200FFF718 -:10118000D9FF32002900200000F01CFD032803D005 -:1011900004280CD0012070BD320029002000FFF788 -:1011A000CDFF032801D00120F5E70020F3E7023846 -:1011B000F1E7000030B58BB004000D00354BEC2298 -:1011C00086219950043234499950344B984245D184 -:1011D000012D49D8324B1B78002B4BD1F223DB0178 -:1011E0000122C2502F4900F02DFE6946200001F077 -:1011F00037FD200000F046FE0028FAD00121200033 -:1012000000F064FE200000F077FE0128FAD12649A4 -:10121000200000F085FE2549200000F071FF002D20 -:101220002ED0012D31D02249200001F0B9F8214AF9 -:101230000021200001F0A4FB1F49200001F020FA4A -:101240000021200000F042FE200000F055FE0028A2 -:10125000FAD1134B01221A700BB030BD174B184A4C -:10126000B921184802F088F9174B154ABA211548D8 -:1012700002F082F9154B124ABB21124802F07CF9A8 -:101280001349200000F0E6FFCDE71249200000F0EE -:10129000E1FFC8E700804240860004000080504023 -:1012A000110F202018630000D4012020A801202065 -:1012B000080220201C630000FFFFFF1F38620000AF -:1012C000D0620000486200006C620000946200007E -:1012D000880120206801202010B504001A4B984294 -:1012E00024D11A4B1B78002B27D0194B194AC25016 -:1012F000102000F03DFB0023F222D201A3508022F7 -:10130000154940208850BFF34F8FBFF36F8FD02116 -:10131000C9019820800560500C490B700F4BEC21DF -:101320005A5070320E499950002010BD83210D4B48 -:101330000D4A49000D4802F01FF908210C4B0A4ADA -:10134000FF310A4802F018F900805040110F2020A8 -:1013500004680000030000B100E100E000804240AA -:101360008000040038620000E06200004862000073 -:10137000AC620000F0B5CE46474680B583B08946E2 -:1013800090461F000A9E354B98421CD1344B1B7867 -:10139000002B1FD0334B00225A6000F09FFA05004B -:1013A000304B5B68002B1CD100F098FA401BB04218 -:1013B0004CD22A4C2B49200001F07CFB2A4920000A -:1013C00001F022FBECE7D621284B294A49002948A5 -:1013D00002F0D2F8D721284B254A4900254802F0CF -:1013E000CBF8204C0023236023681C4D234A009235 -:1013F00000220121280001F00BFA2168A2682800D0 -:1014000001F0BAFB002827D11C4B1A7D3A709B686B -:10141000012B08D0194B1B689B0C5B055B0D4A46E2 -:10142000136000230DE0154B4A461B681360F8E774 -:101430001A00143252001149525A4146CA5401331B -:10144000DBB23A789A42F3D8002000E0032003B0E0 -:101450000CBC90469946F0BD0020F8E70080504053 -:10146000110F20202C112020801120203862000034 -:101470000463000048620000AC620000140F2020EA -:1014800010B501F0DBFBC0B2012801D0012010BD76 -:101490000020FCE7F0B5C64600B5060017009846E8 -:1014A000069A374B98420FD1364B1B78002B12D03F -:1014B000082A17D880231B0199421AD3324B0120E6 -:1014C00098601960002123E09321304B304A490095 -:1014D000304802F051F828212F4B2D4AFF312D487A -:1014E00002F04AF894212D4B294A4900294802F07C -:1014F00043F8254B0020986089041960E2E74B000F -:10150000D85B0D0010356D001F4C6419A0800131AF -:101510009142F4D31C4B1A61C04642460021300070 -:1015200001F0DAF84146300001F03EF9431C25D0C5 -:1015300000F0D4F91A4B18601A4B02221A700BE013 -:10154000C046184B187840B204BC9046F0BD30003D -:10155000FFF796FF134B1870124B1B78002BEFD040 -:10156000104B1B78012BEBD000F0B8F90C4B1B682B -:10157000C01A0228EBD9C0460320E5E70120E3E7C3 -:1015800000805040110F20206802202038620000A7 -:10159000F462000048620000AC620000C462000017 -:1015A000E03120200C03202040284DD883002A4A17 -:1015B000D3589F463020002301E030200223274AE1 -:1015C0001278002A43D10343C92000061843244B54 -:1015D000882252019850234ABE2109069950802240 -:1015E00012019B58DB0735D51F4A204BD3581B05EA -:1015F000FAD51A4B01221A70002027E0302003236D -:10160000DDE730200423DAE730200523D7E7302058 -:101610000623D4E730200723D1E720200123CEE79B -:1016200020200223CBE70323C9E720200423C6E7B9 -:1016300020200523C3E720200623C0E7202007231E -:10164000BDE730200123BAE7012040427047012066 -:101650004042FBE70320F9E72C630000BC0F202089 -:10166000002008400411000000F00A4004120000AD -:10167000084B1B78002B0AD0074A80231B019821B6 -:101680008905D150034B00221A70002070470120B9 -:101690004042FBE7BC0F202000200840054A064BD3 -:1016A000D358012B01D001207047044BA721D15002 -:1016B0000020F9E7002008400C110000081100008C -:1016C0000449054A8B58012083438B50034B002269 -:1016D0001A70704700F00A4008110000BD0F20206A -:1016E000114B1B78012B1AD0104B984219D101389D -:1016F00080235B0498420DD20D4A50600D48036A66 -:101700001B021B0AC02109060B43036200239360DE -:1017100007331360044B01221A70002003E00120FC -:1017200001E0012040427047BD0F2020C05D000055 -:1017300010E000E000ED00E010B50949094A0A4B4D -:10174000CA500A4B0A481A500A4AD020C0010A500F -:10175000802109015A50102000F00AF910BDC0463E -:1017600000805040030000B10468000000200840E1 -:10177000040800000100002610B5032902D0062944 -:1017800000D081E0022802D0042800D07FE00329A5 -:1017900007D0062922D0022825D0042847D00020CF -:1017A00010BD3C4B8A225201023999503A490A69CC -:1017B000042422430A6139495A58394C22405A506C -:1017C000384A00219950384A116880239B004B40C9 -:1017D000F024240123404B401360DCE72D4A314BB9 -:1017E0000021D150D7E7314A136803218B4313609E -:1017F000284A2F4BD15801388143D150D1582D4818 -:101800000140D1508230FF3001223221800101F0AD -:1018100079FE254A136830218B431360012001F0C3 -:1018200041FE254B00229A62DA620020B8E71F4A87 -:10183000136803218B431360164C1D4BE258023989 -:101840008A43E250E2581B490A40E2501B4801F02B -:101850008FFD1B4A1168A023DB014B40F0200002E2 -:1018600003404B4013600D49605880235B010343E4 -:10187000635014496358102003436350136812499E -:101880000B40136000208BE70120404288E70120D5 -:10189000404285E700F00A4000ED00E0041100003E -:1018A000FFFFDFFF0813000004010B4000010B40A5 -:1018B00008110000FFFEFFFF00804240306400007E -:1018C00038010B403C110000FFFDFFFF024A136886 -:1018D000013313607047C046EC312020014B18687B -:1018E0007047C046EC31202010B584B00400FFF7EB -:1018F000F5FF039000230293FFF7F0FF0190029B96 -:10190000A34207D2019B039A9B1A0293FFF7E6FFBB -:101910000190F4E704B010BD10B5FFF70DFF0321EF -:101920000220FFF729FF0348FFF7DAFE0820FFF740 -:101930003BFE10BDC05D000062B6704772B67047D6 -:1019400010B5FFF795FEFFF7BBFEFFF7F7FF10BDE1 -:10195000044B9822520100219950034A034999509F -:101960007047C04600F00A4004130000010000E484 -:1019700080B584B000AF78607A68931E043BC0469F -:10198000FCD2FB60C046BD4604B080BD80B584B0CB -:1019900000AFF860B9607A60FA68BB681A4305491D -:1019A0007B681A4398235B01CA50C046BD4604B009 -:1019B00080BDC0460000404080B500AF044A982377 -:1019C0005B01D358072213401800BD4680BDC046B6 -:1019D0000000404080B582B000AFFFF7EDFF03008C -:1019E0007B60042200210120FFF7D0FF084B9B6998 -:1019F0009AB2BB1C1205120D1A80064998235B018E -:101A00007A68CA50BB1C1B881800BD4602B080BD56 -:101A10000000C4410000404080B582B000AFFFF735 -:101A2000CBFF03007B60042200210120FFF7AEFF03 -:101A30000A4B9B691B0BDBB203221340DAB2FB1C7F -:101A400001321A70064998235B017A68CA50FB1C60 -:101A50001B781800BD4602B080BDC0460000C441DE -:101A60000000404080B500AF00231800BD4680BD97 -:101A700080B582B000AF786039607A6889235B01F5 -:101A80003968D150C046BD4602B080BD80B582B035 -:101A900000AF786039603B689B0A1800BD4602B011 -:101AA00080BDB0B588B000AF786039601B257C1967 -:101AB000FFF7B2FF03002370FFF78CFF03007B6189 -:101AC0003A687B6811001800FFF7E0FF03003B61F4 -:101AD0007B191B78012B0FD97B191B7819007869AA -:101AE000FEF7EEFA0300FB603B69F9681800FEF7A9 -:101AF0006DFB0B00FB6101E03B69FB61FB691800BA -:101B0000BD4608B0B0BD000080B584B000AFF8603D -:101B1000B960FB1D1A70FB1D1B7802221343DBB258 -:101B20001900FB68084A9950BA68FB681100180050 -:101B3000FFF79EFFFB68180004F00AFB0300180083 -:101B4000BD4604B080BDC0460411000080B584B01D -:101B500000AFF860B9607A60FB68084A01219950CB -:101B6000FB6807497A685A50BA68FB681100180088 -:101B7000FFF77EFFC046BD4604B080BD04110000E3 -:101B80002411000080B584B000AFF860B9607A60BD -:101B90003B607A68B968FB681800FFF7D7FF3B68BD -:101BA0001A68FB6805495A503B685A68FB68044943 -:101BB0005A50C046BD4604B080BDC046301100003A -:101BC0003411000080B584B000AFF860B9607A606D -:101BD0007B68074AB968F868FFF7D4FFFB6818000C -:101BE00004F0B6FA03001800BD4604B080BDC0463C -:101BF000FF010000B0B58AB000AFF860B960BB1D4E -:101C00001A80BA68FB6811001800FFF73FFF030055 -:101C10003B62BA68FB6811001800FFF742FF03003F -:101C2000FB611B257C19FFF7F7FE03002370FFF70C -:101C3000D1FE03007B6100237B62BB1D1A888023D9 -:101C40009B009A4200D06CE0FFF70CFF031E14D0FB -:101C50007B191B78012B10D97B695B083A6A9A4281 -:101C600005D97B695B083A6AD31A7B6207E07B6916 -:101C70005B083A6AD3187B6201E03B6A7B627B6A4D -:101C80001F2B0ED801227B6A9A4013003B61FB6830 -:101C9000314A9B583A69D2431A40FB682E495A5040 -:101CA00055E0FB69FF2B25D8FFF7B6FE0300012B9B -:101CB00010D1FB69203BDB0801229A4013003B61F5 -:101CC000FB68264A9B583A69D2431A40FB6823496D -:101CD0005A503CE0FB69DB0801229A4013003B614B -:101CE000FB681E4A9B583A69D2431A40FB681B495D -:101CF0005A502CE0FA69FF235B009A4227D8FB690F -:101D0000013BFF3BDB0801229A4013003B61FB686B -:101D1000134A9B583A69D2431A40FB6810495A50FB -:101D200015E0BB1D1A888023DB009A420FD13B6A65 -:101D30001F22134001229A4013003B61FB68094AAD -:101D40009B583A69D2431A40FB6806495A50C0462C -:101D5000BD460AB0B0BDC046D0110000D41100008D -:101D6000D81100001012000080B584B000AFF860F8 -:101D7000B9607A60FB68084A03219950FB680749FB -:101D80007A685A50BA68FB6811001800FFF770FEB5 -:101D9000C046BD4604B080BD0411000024110000FF -:101DA00080B584B000AFF860B9607A603B607A6853 -:101DB000B968FB681800FFF7D7FF3B681A68FB6833 -:101DC00005495A503B685A68FB6804495A50C04656 -:101DD000BD4604B080BDC046301100003411000083 -:101DE00080B584B000AFF860B9607A607B68074A5C -:101DF000B968F868FFF7D4FFFB68180004F0A8F989 -:101E000003001800BD4604B080BDC046FF010000BD -:101E100080B586B000AFF860B9607A60FB681B6877 -:101E20007B617B68DA437B6913407B61BB687A68BE -:101E30001A407B691A43FB681A60C046BD4606B06B -:101E400080BD000080B582B000AF786039600A4B79 -:101E50000A4A98183B681B88190080235B001A0007 -:101E6000FFF7D6FF3B689B7819007B68044A9950BE -:101E7000C046BD4602B080BD00F00A4038110000E7 -:101E80000479000080B584B000AF78607B680E4AAA -:101E90009446634401220221180001F07CF90300FA -:101EA000BB60BB68012B04D10F23FB1801221A7001 -:101EB00003E00F23FB1800221A700F23FB181B7876 -:101EC0001800BD4604B080BD0872000080B582B025 -:101ED00000AF786039607B68064A94466344180016 -:101EE0003B680022012101F037F9C046BD4602B02F -:101EF00080BDC0461870000080B582B000AF786029 -:101F00007B68064A9446634400220121180001F0D0 -:101F100042F903001800BD4602B080BD18700000F1 -:101F200080B584B000AF786039607B686A4A9446B7 -:101F30006344180001F0F8F80300BB60BB6810228E -:101F400093431A003B689B691B0110210B4013430C -:101F5000BB60BB68202293431A003B68DB695B01CE -:101F600020210B401343BB60BB68082293431A0037 -:101F70003B681B6ADB0008210B401343BB607B6896 -:101F8000554A944663441A00BB681900100001F0DA -:101F9000D7F87B68180000F0B7FE7B684F4A94467C -:101FA0006344180001F0C0F80300BB60BB684C4AF2 -:101FB0001A403B681B68190280235B000B401343E7 -:101FC000BB60BB68474A1A403B685B685902802384 -:101FD0009B000B401343BB60BB68434A1A403B68FD -:101FE0009B6899038023DB010B401343BB60BB68F4 -:101FF0003E4A1A403B68DB68590380239B010B4033 -:102000001343BB60BB683A4A1A403B681B6919031B -:1020100080235B010B401343BB60BB6840229343AA -:102020001A003B685B699B0140210B401343BB6076 -:102030007B682A4A944663441A00BB681900100062 -:1020400001F07EF83B689B6A7F2B38D83B68DB6ADF -:102050007F2B34D83B685B6AFF2B30D87B68254ADE -:102060009446634418003B689B6A00227F2101F07C -:1020700073F87B681F4A9446634418003B68DB6A28 -:10208000FE22D101082201F067F87B681A4A9446C3 -:10209000634418003B685B6A0022FF2101F05CF892 -:1020A0007B68164A9446634418003B681B6B802289 -:1020B0001104172201F050F80023FB6002E0012315 -:1020C0005B42FB607B68180000F032FEFB68180082 -:1020D000BD4604B080BDC046047200001870000008 -:1020E000FFFEFFFFFFFDFFFFFFBFFFFFFFDFFFFF63 -:1020F000FFEFFFFF48700000147000000C7000003C -:1021000080B584B000AF786039607B68180000F05B -:10211000FBFD7B684B4A9446634418003B681B6890 -:102120000522202101F018F87B68464A9446634452 -:1021300018003B685B680222042101F00DF87B68FF -:10214000E122D2019446634418003B68DB69002217 -:10215000012101F001F87B68E122D2019446634439 -:1021600018003B681B6A0122022100F0F5FF7B6822 -:10217000E122D2019446634418003B685B6A022264 -:102180000C2100F0E9FF7B68E122D2019446634410 -:1021900018003B689B6A0422302100F0DDFF3B6899 -:1021A0009B680F2B41D83B685A6980235B029A4297 -:1021B0003BD27B68244A9446634418003B68DB6842 -:1021C0000022032100F0C8FF7B681F4A9446634445 -:1021D00018003B689B68013BF0221103102200F0BD -:1021E000BBFF7B68194A9446634418003B681B692F -:1021F0000122062100F0B0FF7B68144A9446634434 -:1022000018003B685B691249102200F0A5FF7B684B -:102210000E4A9446634418003B689B6900220121E2 -:1022200000F09AFF0023FB6002E001235B42FB60A9 -:102230007B68180000F07CFDFB681800BD4604B008 -:1022400080BDC0461870000020700000287000009B -:102250000000FFFF80B584B000AF786039607B6814 -:10226000180000F051FD3B68DB687F2B3ED83B68CF -:102270009B687F2B3AD83B685B68FF2B36D83B685E -:102280001A6880239B009A4230D27B68414A944668 -:10229000634418003B68DB68FE221106192200F037 -:1022A0005BFF7B683B4A9446634418003B689B682D -:1022B00000227F2100F050FF7B68364A9446634439 -:1022C00018003B685B68FF221102082200F044FFFF -:1022D0007B68304A9446634418003B681B682E496B -:1022E000102200F039FF0023FB6002E001235B4273 -:1022F000FB60FB68002B43D13B68DB690F2B3CD8AC -:102300003B689B690F2B38D83B685B691F2B34D81F -:102310003B681B691F2B30D87B68204A9446634476 -:1023200018003B68DB6900220F2100F015FF7B6875 -:102330001A4A9446634418003B689B690422F021C2 -:1023400000F00AFF7B68154A9446634418003B6816 -:102350005B69F8225101082200F0FEFE7B680F4AFB -:102360009446634418003B681B69F822510310220D -:1023700000F0F2FE0023FB6002E001235B42FB6001 -:102380007B68180000F0D4FCFB681800BD4604B060 -:1023900080BDC0461C7000000000FF010C700000F2 -:1023A00080B584B000AF786039600023BB607B6883 -:1023B000180000F0A9FC3B685B68002B17D07B6815 -:1023C000A54A9446634418003B681B689B08A349D0 -:1023D000022200F0C1FE7B689F4A944663441800C5 -:1023E0003B685B68FF221104102200F0B5FE3B68D9 -:1023F000DB68002B17D07B68994A94466344180029 -:102400003B689B689B089549022200F0A5FE7B680B -:10241000934A9446634418003B68DB68FE22D1036C -:10242000102200F099FE3B685B6B002B3AD07B6872 -:102430008C4A9446634418003B681B6B9B08874991 -:10244000022200F089FE7B68864A944663441800A5 -:102450003B685B6BFE22D103102200F07DFE7B689F -:10246000804A9446634418003B689B6BFE22D1056A -:10247000182200F071FE7B687A4A94466344180083 -:102480003B68DB6B802211061F2200F065FE7B6833 -:10249000754A9446634418003B689B6D00220721EF -:1024A00000F05AFE3B685B6C002B3AD07B686F4AA9 -:1024B0009446634418003B681B6C9B0867490222E2 -:1024C00000F04AFE7B68694A9446634418003B6802 -:1024D0005B6CFE22D103102200F03EFE7B68634A53 -:1024E0009446634418003B689B6CFE22D105182279 -:1024F00000F032FE7B685D4A9446634418003B68F6 -:10250000DB6C802211061F2200F026FE7B68564AF3 -:102510009446634418003B68DB6D0422702100F090 -:102520001BFE7B68524A9446634418003B681B6D4F -:102530009B084A49022200F00FFE7B684A4A9446F3 -:10254000634418003B685B6DE022D100082200F074 -:1025500003FE3B689B6A002B23D07B68454A944668 -:10256000634418003B685B6A9B083C49022200F008 -:10257000F3FD7B683F4A9446634418003B689B6ABE -:10258000FC229103102200F0E7FD7B68394A944653 -:10259000634418003B68DB6AFC229105182200F0B6 -:1025A000DBFD3B685A693B689B69D318BB60BB681D -:1025B000202B45D83B685B69002B03D13B689B69A6 -:1025C000002B3DD07B682C4A9446634418003B683E -:1025D0001B699B082149022200F0BEFD7B68264A48 -:1025E0009446634418003B685B69FC229103102207 -:1025F00000F0B2FD7B68204A9446634418003B68B3 -:102600009B69FC229105182200F0A6FD7B681A4AFE -:102610009446634418003B68DB698022D1051E2282 -:1026200000F09AFD7B68154A9446634418003B68A5 -:102630001B6A0022072100F08FFD0023FB6002E0EF -:1026400001235B42FB607B68180000F071FBFB68B4 -:102650001800BD4604B080BD84700000FCFF00007F -:1026600088700000A0700000BC700000B070000016 -:10267000AC700000F0700000C0700000C870000076 -:1026800080B584B000AF786039603A6880239B05DC -:102690009A4214D27B68180000F036FB7B680C4A23 -:1026A0009446634418003B680A49002200F054FD38 -:1026B0007B68180000F03CFB0023FB6002E0012374 -:1026C0005B42FB60FB681800BD4604B080BDC0469D -:1026D00090700000FFFFFF1F80B58AB000AFF86068 -:1026E000B9607A603B600023FB610023BB6100237B -:1026F0007B6100237B6200233B62BB68002B03D11C -:102700007B687B6201233B62BB68012B0ED1FB68B7 -:10271000214A944663441800F8235B0310221900F1 -:1027200000F039FD03007B6201233B623B6A012B11 -:102730002ED1FB68194A944663441800184B0222B4 -:10274000190000F028FD0300FB61FB68154A944660 -:10275000634400220721180000F01DFD0300BB6147 -:10276000FB699B00FB61BB69180000F0C5FC03001E -:10277000BB61BB699B00BB61BB697A6A5343FA6961 -:10278000D3187B61FB683A687969180000F0C0FBD8 -:10279000C046BD460AB080BDC4700000C0700000D5 -:1027A000FCFF0000C870000080B584B000AF786006 -:1027B00039603B681F2B20D87B68144A94466344D9 -:1027C000180000F0B1FC0300BB6001223B689A4096 -:1027D0001300BA681343BB607B68180000F0A8FAC6 -:1027E0007B680A4A944663441A00BB6819001000CB -:1027F00000F0A6FC0023FB6002E001235B42FB60CB -:10280000FB681800BD4604B080BDC046D070000013 -:1028100080B58AB000AFF860B9607A603B60002391 -:102820007B6200233B6200237B610023FB6100236A -:10283000BB61BB68002B1CD1FB684A4A94466344C9 -:102840001800494B0222190000F0A5FC03007B622E -:10285000FB68464A944663441800E023DB000822E4 -:10286000190000F098FC03003B627B68BB61012308 -:10287000FB61BB68012B54D13B68002B03D03B6844 -:10288000012B27D04EE0FB68394A94466344180078 -:10289000354B0222190000F07EFC03007B62FB68CE -:1028A000324A9446634400220721180000F073FC6A -:1028B00003003B62FB682F4A944663441800FC23E4 -:1028C0009B010822190000F066FC0300BB61012394 -:1028D000FB6127E0FB68284A944663441800224BBA -:1028E0000222190000F057FC03007B62FB681F4ABC -:1028F0009446634404227021180000F04CFC03004D -:102900003B62FB681D4A944663441800FC239B010C -:102910000822190000F03FFC0300BB610123FB61AA -:1029200000E0C046FB69012B17D17B6A9B007B62EC -:102930003B6A180000F0E0FB03003B623B6A9B002F -:102940003B623B6ABA6953437A6AD3187B61FB687E -:102950003A6B7969180000F0FFF9C046BD460AB02D -:1029600080BDC046AC700000FCFF0000BC700000E1 -:10297000A0700000A4700000B0700000B4700000EF -:1029800080B588B000AFF860B9607A60FB681C4A17 -:102990009446634418001B4B0222190000F0FBFB15 -:1029A0000300FB61FB699B00FB61BB689B00FA694C -:1029B000D318BB6100237B617B681B687A69134372 -:1029C0007B617B685B681B047A6913437B617B686E -:1029D0009B68DB067A6913437B617B68DB689B0736 -:1029E0007A6913437B61FA68BB69D3187A6911006D -:1029F000180000F0A5FBC046BD4608B080BDC0462B -:102A000084700000FCFF000080B584B000AF7860E7 -:102A100039607B68264A94466344180000F084FBC2 -:102A20000300FB60FB6807221A403B681A60FB68E2 -:102A3000DB0803221A403B685A60FB685B090122ED -:102A40001A403B689A60FB689B0901221A403B6868 -:102A5000DA60FB68DB0901221A403B681A61FB68F7 -:102A60001B0A07221A403B685A61FB68DB0A0122F5 -:102A70001A403B689A61FB681B0B01221A403B68B5 -:102A8000DA61FB685B0B01221A403B681A62FB6843 -:102A90009B0B01221A403B685A62FB681B0C7F2289 -:102AA0001A403B689A62C046BD4604B080BDC0462D -:102AB0004470000080B584B000AF786039603B6836 -:102AC0001B68002B02D0012B27D04DE07B68284AE1 -:102AD00094466344180000F027FB0300FB60FB688A -:102AE0007F221A403B685A60FB681B0A3F221A404B -:102AF0003B689A60FB681B0C3F221A403B68DA6017 -:102B0000FB681B0E01221A403B681A61FB685B0ED2 -:102B100001221A403B685A6126E07B68154A9446B8 -:102B20006344180000F000FB0300FB60FB687F2299 -:102B30001A403B685A60FB681B0A3F221A403B68F8 -:102B40009A60FB681B0C3F221A403B68DA60FB6806 -:102B50001B0E01221A403B681A61FB685B0E0122C2 -:102B60001A403B685A61C046C046BD4604B080BDAD -:102B7000A4700000B470000080B586B000AFF860AB -:102B8000B9607A60BB68002B03D0BB68012B22D0F0 -:102B900043E0FB68254A944663441800FE23DB03A8 -:102BA0001022190000F0F7FA03003B613A697B68D4 -:102BB0009A420CD3FB681E4A9446634418007B6813 -:102BC00000223F2100F0C8FA00237B6129E00123A5 -:102BD0005B427B6125E0FB68164A9446634418001B -:102BE000FE23DB031022190000F0D5FA03003B613D -:102BF0003A697B689A420CD3FB680F4A9446634457 -:102C000018007B6800223F2100F0A6FA00237B61B8 -:102C100007E001235B427B6103E001235B427B61B0 -:102C2000C0467B691800BD4606B080BDA07000009C -:102C3000A8700000B0700000B870000080B582B0CD -:102C400000AF78607B68054A94466344180000F042 -:102C50006BFA03001800BD4602B080BDD8700000BA -:102C600080B584B000AF786039607B68E422D2011F -:102C700094466344180000F057FA0300FB60FB68B9 -:102C80003F221A403B68DA60FB681B0A07221A40A1 -:102C90003B689A60FB681B0C1B051A0D3B685A6069 -:102CA000FB689A0F3B681A607B68E022D201944669 -:102CB0006344180000F038FA0300FB60FB68FF2251 -:102CC0001A403B681A61FB681B0AFF221A403B68E6 -:102CD0005A61FB681B0C0F221A403B689A61FB6823 -:102CE0001B0D0F221A403B68DA61FB681B0E0F2296 -:102CF0001A403B681A62FB681A0F3B685A62C0466A -:102D0000BD4604B080BD000080B582B000AF7860E1 -:102D10007B68064A9446634418000123012202217D -:102D200000F01AFAC046BD4602B080BD187000001F -:102D300080B582B000AF78607B68064A94466344F1 -:102D4000180000230122022100F006FAC046BD4609 -:102D500002B080BD1870000080B586B000AFF8608A -:102D6000B9607A6000233B6100237B61FA68BB682D -:102D7000D318180000F0D8F903003B613B69DB0071 -:102D8000DA087B681A603B695B0F01221A407B6896 -:102D90005A603B699B0F01221A407B689A603B692D -:102DA000DA0F7B68DA60BB680433BB60FA68BB6823 -:102DB000D318180000F0B8F903003B613B691B040D -:102DC0001A0C7B681A613B691B0C0F221A407B6846 -:102DD0005A613B691B0D01221A407B689A613B696D -:102DE0005B0D01221A407B68DA613B691B0E7F2272 -:102DF0001A407B681A623B69DA0F7B685A62BB68CB -:102E00000433BB6000237B6138E0FA68BB68D318E9 -:102E1000180000F089F903003B613B699BB2FF2277 -:102E2000134099B27B687A6914325200D1523B69DF -:102E30001B0A9BB27A690132FF210B4099B27B6871 -:102E400014325200D1523B691B0C9BB27A69023298 -:102E5000FF210B4099B27B6814325200D1523B697A -:102E6000190E7B69DA1C89B27B6814325200D15288 -:102E7000BB680433BB607B6904337B617B685B693F -:102E8000180000F021F902007B69D31A032B08D93E -:102E90007B685B69180000F017F902007B699342B8 -:102EA000B3D17B685B69180000F00EF902007B6902 -:102EB000934229D0FA68BB68D318180000F034F99F -:102EC00003003B613B699BB2FF22134099B27B68D0 -:102ED0007A6914325200D1523B691B0A9BB27A695B -:102EE0000132FF210B4099B27B6814325200D1525B -:102EF0003B691B0C9BB27A690232FF210B4099B2ED -:102F00007B6814325200D152C046BD4606B080BD27 -:102F100080B586B000AFF860B9607A6000233B618D -:102F200000237B6100233B617B681A687B685B68D8 -:102F30005B071A437B689B689B071A437B68DB68C7 -:102F4000DB0713433A6913433B61FA68BB68D31844 -:102F50003A691100180000F0F3F8BB680433BB6055 -:102F600000233B617B681B691A047B685B691B0556 -:102F70001A437B689B695B051A437B68DB69DB0549 -:102F80001A437B681B6A1B0613433A6913433B6170 -:102F9000FA68BB68D3183A691100180000F0D0F83D -:102FA000BB680433BB6000237B6139E000233B61D5 -:102FB0007A687B6910335B00D31804331B881900CF -:102FC0007B6901337A6810335B00D31804331B88A4 -:102FD0001B020A001A437B690233796810335B00D5 -:102FE000CB1804331B881B041A437B6903337968AD -:102FF00010335B00CB1804331B881B0613433A695C -:1030000013433B61FA68BB68D3183A691100180092 -:1030100000F096F8BB680433BB607B6904337B61C6 -:103020007B681B69180000F04FF802007B69D31A17 -:10303000032B08D97B681B69180000F045F80200D3 -:103040007B699342B2D17B681B69180000F03CF8A1 -:1030500002007B69934233D000233B617A687B692D -:1030600010335B00D31804331B8819007B690133CC -:103070007A6810335B00D31804331B881B020A00E4 -:103080001A437B690233796810335B00CB18043331 -:103090001B881B041A437B690333796810335B0078 -:1030A000CB1804331B881B0613433A6913433B6157 -:1030B000FA68BB68D3183A691100180000F040F8AC -:1030C000C046BD4606B080BD90B593B000AF7860F5 -:1030D00008243A19074B1000190040231A0000F089 -:1030E0009FFA3B197A689200D3581800BD4613B076 -:1030F00090BDC046A8610000B0B58AB000AF78604E -:1031000008217B18074A31CA31C331CA31C311CAF9 -:1031100011C37B187A689200D3581800BD460AB0D4 -:10312000B0BDC046E861000080B584B000AF7860F3 -:103130007B681B68FB60FB681800BD4604B080BD5F -:1031400080B582B000AF786039607B683A681A60F9 -:10315000C046BD4602B080BD80B586B000AFF86005 -:10316000B9607A603B60FB681B687B61BB68DA43CF -:103170007B6913407B613A687B689A401300BA68A8 -:1031800013407A6913437B61FB687A691A60C04611 -:10319000BD4606B080BD80B586B000AFF860B960AE -:1031A0007A60FB681B687B617B69BA681A407B6840 -:1031B000DA4013007B617B691800BD4606B080BD14 -:1031C00080B584B000AFF860B9607A60FA68BB6817 -:1031D0001A4305497B681A4398235B01CA50C046CD -:1031E000BD4604B080BDC0460000404080B500AF81 -:1031F000044A98235B01D358072213401800BD46A8 -:1032000080BDC0460000404080B586B000AFF86089 -:10321000B9607A60FB681B687B617B68DA437B6915 -:1032200013407B61BB687A681A407B691A43FB686C -:103230001A60C046BD4606B080BD000080B500AF34 -:10324000024A034BD3581800BD4680BD00F00A4027 -:103250000412000080B500AF054A064BD35804495C -:10326000054A1340034A8B50C046BD4680BDC04648 -:1032700000F00A4008110000FFFEFFFF80B500AF1C -:10328000054A064BD358044901229343034A8B5005 -:10329000C046BD4680BDC04600F00A40081100008F -:1032A00080B582B000AF0200FB1D1A700449FB1DFF -:1032B0001B78044A8B50C046BD4602B080BDC04654 -:1032C00000F00A400C11000080B582B000AF7860B9 -:1032D000064B074A944663447968FF221800FFF7BB -:1032E00093FFC046BD4602B080BDC04600F00A4014 -:1032F0001011000080B582B000AF0200BB1D1A8023 -:10330000064B074A9818BB1D1B88C0229201190062 -:10331000FFF77AFFC046BD4602B080BD00F00A400C -:103320001011000080B500AF054A064BD358044980 -:10333000802252051343034A8B50C046BD4680BDD0 -:1033400000F00A401011000080B500AF054A064B9E -:10335000D3580449054A1340034A8B50C046BD4622 -:1033600080BDC04600F00A4010110000FFFFFFEFD3 -:10337000B0B584B000AF7860FFF76CFFC046FFF7D0 -:103380005DFF02008023DB011A408023DB019A42AB -:10339000F5D13D4B8924640118197B685B7E0122BD -:1033A0001900FFF731FF384B384D58197B68202240 -:1033B0009B5C03221900FFF727FFFFF717FF0300AD -:1033C000FB60042200210120FFF7FAFE7B685B6AA4 -:1033D0002D491B682E4A8B507B685B6A04332A494F -:1033E0001B682C4A8B502C4998235B01FA68CA5001 -:1033F000254B58197B68DB691A02FE23DB01134059 -:10340000FE22D2011900FFF7FFFE1F4B18197B683F -:103410001B681A04F0231B031A407B685B681B03BC -:103420001B041B0C1A437B689B681902F0231B01C9 -:103430000B401A437B68DB681A437B681B691A439D -:103440007B685B6913437A68127E1343134A190041 -:10345000FFF7DAFE0C4A124BD3580B498022520078 -:1034600013430F4A8B50C046FFF7E8FE020080234B -:103470009B001A4080239B009A42F5D1C046C0466B -:10348000BD4604B0B0BDC04600F00A4024110000A3 -:10349000281100002C1100000000404072FF0F00B6 -:1034A0000811000080B582B000AF0200FB1D1A7049 -:1034B000FB1D1B781800FFF7F3FEC046FFF7BEFEAA -:1034C000020080239B031A4080239B039A42F5D17C -:1034D0000A4A0B4BD3580949802252021343084A27 -:1034E0008B50C046FFF7AAFE030010221340102B9A -:1034F000F8D1C046C046BD4602B080BD00F00A40CB -:103500000411000080B582B000AF39601100BB1D0E -:10351000021C1A807B1D0A1C1A70FFF7AFFEBB1D30 -:103520001B881800FFF7E6FE3B681800FFF7CCFE8B -:103530000F4A104BD3580E49012213430D4A8B50AA -:103540007B1D1B78002B0DD0FFF7ECFEC046FFF76C -:1035500075FE020080235B001A4080235B009A42C4 -:10356000F5D101E0FFF7F0FEC046BD4602B080BDD8 -:1035700000F00A400811000030B514001A000A4B90 -:1035800005001B6885B0D868002C09D0074B019353 -:1035900000912B000649029400F00EF801F062F849 -:1035A000044B1C00F3E7C0461003202058640000C1 -:1035B00068640000646400000EB400B582B003AB20 -:1035C0000100054804CB0068019300F0BFF802B089 -:1035D00008BC03B01847C0461003202070B50C4D3E -:1035E0000C4E761BB61005D0002408CD0134984748 -:1035F000A642FAD1FDF766F8074D084E761BB610C5 -:1036000005D0002408CD01349847A642FAD170BDF8 -:10361000686700006867000068670000686700006E -:10362000F0B5C64600B50F2A41D903270D003E006C -:1036300005430C0003002E402F423DD11500103DE4 -:103640002D09AC462D01A8468044256867681D6099 -:103650005F60A568E7689D60DF6010341F0010336D -:103660004745F2D165460F230C2401352D01491938 -:1036700013404519144222D08C59AC5104369C1B7E -:10368000032CF9D80324043B9B0801339B00224000 -:10369000ED18C918561E002A06D00023CC5C1A006B -:1036A000EC5401339642F9D104BC9046F0BD0500BC -:1036B000561E002AF1D1F7E70500561EEDE71A0065 -:1036C000F6E7C046F8B54E464546DE4657464B6ED1 -:1036D000E0B5914606000D009B0433D513689A4669 -:1036E0009368002B2CD0524612689046524652687E -:1036F0009346970819D0002402E00134A74212D063 -:103700004246A300D15830002A0001F045F9431C7D -:10371000F3D14A460023936053603CBC90469946DF -:10372000A246AB46F8BD4B469B685A4603218A43E6 -:103730009B1A4A46936008229446E244002BD2D159 -:103740000020E6E701F086FAE3E7C046F0B5DE4682 -:1037500057464E464546E0B5BFB08A4693461C00E4 -:1037600001900893002804D0836B0293002B00D1B2 -:1037700027E253465B6EDB0700D537E153460C2149 -:10378000595E53469A89930500D42BE180239B010F -:103790001A4209D10B43524651469381496E964ACB -:1037A0000A4051464A669AB213073DD553461B69F3 -:1037B000002B39D01A2313400A2B43D015AB129398 -:1037C00000235D46D3461493139315AE0C930B93CD -:1037D0000E930D9305932B78002B00D1A4E12C00C0 -:1037E00004E063780134002B00D1D9E0252BF8D117 -:1037F000671BAC4200D0D7E02378002B00D193E1C7 -:10380000002310AAD370013B0293002300276278A3 -:10381000651C049301351300203B5A2B00D9F1E0BD -:1038200076499B00CB589F465146019800F0B0FE68 -:103830005346002801D000F044FE9A891A23134011 -:103840000A2BBBD153460E215B5E002BB6DB5346E1 -:103850005B6EDB0703D4930501D400F008FE230060 -:103860005A465146019800F04DFE059074E1019BC7 -:103870001800984601F092FB436818000D9302F07F -:103880003FFA0E900400404601F088FB83680B93DA -:10389000002C01D000F0F7FC2A78BBE720232A781F -:1038A0001F43B7E710231F43089ABB0600D47BE1F0 -:1038B000072307329A4301339C4694446346089396 -:1038C0005368126807930692002B01DA00F089FC16 -:1038D000029BB946013309D080239F43069A079B78 -:1038E0001100B946194301D100F04FFC069B079C1B -:1038F000002C00D046E3092B00D943E36322069B4A -:1039000025A930338B540123039310ABB7249C4675 -:103910004F466444029B039A9946934200DA9146CB -:1039200010ABDB785A1E9341994478E010231F4373 -:10393000BB0600D42AE10723089A07329A4318CA23 -:103940000693079408922E4B1F40B946002300228D -:1039500010A9CA700298421C00D1E3E180224F46B0 -:1039600097430699079A0C00144300D0D9E1002828 -:1039700001D000F00DFD002B01D000F00BFC4A46F9 -:1039800001331A4003924A463EAC1342C2D0302162 -:10399000623325AAD15410ABB7249C466444B9E7DE -:1039A000671BAC4200D1BFE0149B3560FA18139B33 -:1039B000776002930133149213930836072B0BDDC3 -:1039C000002A00D1DEE35946019812AAFFF77AFED9 -:1039D000002800D090E215AE059B9C46BC4463468F -:1039E000059309E75346986D01F0E0FA53460C2120 -:1039F000595E53469A89C9E6FFDFFFFFC86400009D -:103A0000FFFBFFFF002A00D18EE0002325AC2270CF -:103A100010AAD37001339946039300230293022323 -:103A20001A003A400A923B4201D09C46E14484236A -:103A30001A003A4009923B4206D14A46049B9B1A1F -:103A40009846002B00DDDBE2139B14989C46591C22 -:103A500010ABDB78002B0DD010AB033333600123A8 -:103A60000130736014901391072900DD51E28C46F8 -:103A7000083601310A9B002B19D011AB33600223A9 -:103A80000230736014901391072900DC58E200287B -:103A900000D1A1E35946019812AAFFF713FE0028AE -:103AA00000D029E2139B14989C46591C15AE099B23 -:103AB000802B00D171E1029B039A9B1A9A46002B3E -:103AC00000DDC9E1039B34609C4660447360149040 -:103AD0001391072900DC5EE1002800D1E4E2594699 -:103AE000019812AAFFF7EEFD002800D004E2149816 -:103AF00015AE7B0705D54A46049B9C1A002C00DDB9 -:103B0000DBE2049B4B4500DA4B46059A94469C4405 -:103B100063460593002800D0E6E1002313932B7839 -:103B200015AE002B00D05AE6149BDA460293002B08 -:103B300001D000F0B7FC0023139353465B6EDB0704 -:103B400000D5DFE153469B899A0501D400F018FCAB -:103B50005B0601D500F0C0FC05983FB03CBC904628 -:103B60009946A246AB46F0BD303A28000024110029 -:103B7000A3001B195B00CC1803001A780130110058 -:103B8000303905000929F3D9049444E6FB0600D531 -:103B900051E37B0600D44BE3089A08CA9BB2069314 -:103BA000002308920793CEE6FB0600D54EE37B0682 -:103BB00000D448E308CA1BB20693DB1707930892A8 -:103BC00082E600F05DFED4E5089B10AA10CB984673 -:103BD0000023D370002C01D100F0F4FB029A531C97 -:103BE00000D18AE30021200001F032FD002801D13C -:103BF00000F043FC031B0393434608930023029306 -:103C000088E6089A25AC08CA10A923700023CB7057 -:103C10000133994608920393FFE6089B04CB049274 -:103C2000002A00DBFDE2049A089352420492042326 -:103C30002A781F43EEE510231F43B9464B469B06E7 -:103C400000D4ADE20723089A07329A4318CA0693B4 -:103C50000794089201237AE62A78682A00D1A3E320 -:103C600040231F43D6E52B2310AAD3702A78D1E531 -:103C700080232A781F43CDE52A786B1C2A2A01D19C -:103C800000F02FFC11000024303918001D000294B0 -:103C9000092900D9BFE50024A3001B195B005C18AB -:103CA00003001A7801301100303905000929F3D9D1 -:103CB0000294B0E501232A781F43ABE510ABDB7813 -:103CC000002B00D0E8E5202310AAD3702A78A1E5C4 -:103CD0000899D34A08C906930023079302331F4368 -:103CE00011AB1A80CF4BB9460C93089102232EE6F4 -:103CF000BB0600D5BEE2FB0600D55CE37B0600D523 -:103D0000AEE3BB0500D456E3089A059908CA1970BA -:103D1000089260E52A786C2A00D13FE310231F4304 -:103D200078E5B946012B00D1E0E53EAC022B00D18D -:103D30000BE10723B246A8469C46069A079B5E07FE -:103D4000D7086146D8083E430300300011402500E3 -:103D50003031013C320021701843F0D106920793B4 -:103D60004A462F0056464546D20700D443E1302943 -:103D700000D140E13022013CBB1E22703EAAD21A83 -:103D80004F461C000392C5E5012303981594169035 -:103D90001490139315AE0836ABE64A46049B9B1A63 -:103DA0009A46002B00DC86E6102B00DC85E39E4B58 -:103DB000A046310054466246BA465F46AB461D00F7 -:103DC00005E0961C1A000831103C102C1ADD102357 -:103DD00010304B60531C0D6014901393072BF0DDD3 -:103DE000002800D191E03900019812AAFFF76AFC7F -:103DF000002800D0A9E1139A103C1498561C15A96C -:103E0000102CE4DC2B00B4465D460E00BB46574642 -:103E1000A246444698464346336053467360634621 -:103E2000504414901393072B00DCFEE1002800D1CE -:103E3000DAE25946019812AAFFF744FC00285BD148 -:103E4000139B039A9C46591C029B14989B1A9A46F2 -:103E500015AE002B00DC35E6102B00DCBDE2724B0A -:103E6000A046310054466246BA465F46AB461D0046 -:103E700005E0961C1A000831103C102C19DD1023A7 -:103E800010304B60531C0D6014901393072BF0DD22 -:103E9000002825D03900019812AAFFF713FC00284A -:103EA00000D052E1139A103C1498561C15A9102CFE -:103EB000E5DC32002B000E005D461100BB46574684 -:103EC000A246444698464346336053465044736086 -:103ED00014901391072900DD43E108360131F1E523 -:103EE0000126002215A9C7E75946019812AAFFF733 -:103EF000E9FB002800D110E6DA4653465B6EDB078B -:103F000000D41FE653469B8922E60126002215A90C -:103F10005AE7002800D153E15946019812AAFFF749 -:103F2000D1FB0028E8D1139B14989C46591C15AE70 -:103F3000A0E511AB1593022301210220169315AEC3 -:103F40008C4663460836591CB1E50F20069A079B3C -:103F5000A846B4460C9E01001140715C1D0717096C -:103F6000013C3D43217019090B0029002A00194327 -:103F7000F1D1069207933EAB1B1B664645464F4662 -:103F80000393C7E480234A46DB0000271A404B46D0 -:103F9000AA46B1463D00069E079F90463EAC03935D -:103FA0000AE00A22002330003900FCF743FA002F10 -:103FB00000D115E206000F000A220023300039006C -:103FC000FCF738FA4346013C303222700135002BB1 -:103FD000E7D00B9B1B78AB42E3D1FF2DE1D0002F44 -:103FE00000D0A1E1092E00D99EE1039B0696079718 -:103FF00055464E4699463EAB1B1B4F46039389E4FC -:104000001498102B00DC40E2A446084B4446BA4604 -:1040100032005F46E046AB4613991D000EE0C046F5 -:1040200030780000AC640000446600003466000094 -:104030008E1C19000832103C102C18DD1023103093 -:1040400053604B1C156014901393072BF0DD002870 -:1040500026D03900019812AAFFF734FB002874D14A -:104060001399103C14984E1C15AA102CE6DC4346FC -:104070002900A04634005D46A446BB4616005746BC -:104080001C008A465346336043467360634640448F -:1040900014901393072B00DDB1E00836591CD7E4C8 -:1040A0000021012615AAC6E713907B074FD54A4683 -:1040B000049B9C1A002C4ADD15AE102C00DCEBE1B1 -:1040C000D74BA8461D00019B102731009A46139A32 -:1040D00005E0961C1A000831103C102C18DD103039 -:1040E000531C0D604F6014901393072BF1DD0028D3 -:1040F00027D05946504612AAFFF7E4FA002800D00C -:10410000FAE6139A103C1498561C15A9102CE6DCFC -:104110003300AA460E00454619005346001918C63A -:1041200014901391072900DCEBE400280FD05946C6 -:10413000019812AAFFF7C6FA002800D0DCE614980E -:10414000DFE40126002215A9C6E7BA46F5E4049B80 -:104150004B4500DA4B46059A94469C4463460593CA -:10416000DBE4002800D10FE65946019812AAFFF7B8 -:10417000A9FA002800D0BFE6139B14980293591C9B -:1041800015AE9FE4139215AE26E4029B002B01D0DE -:10419000FFF7B4FB00233EAC02930393FFF7BAFB97 -:1041A0004B46DB065DD44B465B0656D5089A08CADB -:1041B0009BB206930023089207930133FFF7C7FBD6 -:1041C0000A9B002B70D011AB159302231693013B71 -:1041D0009C46022015AEB4E6002301219C4615AE94 -:1041E00065E40699079A00244B429441069307948C -:1041F0002D2310AAD370B9462C3BFFF7ABFB002848 -:1042000000D184E05946019812AAFFF75BFA002812 -:1042100000D071E6139B14989C46591C15AEFFF70D -:1042200017FC2A780893FFF7F5FA0836591C42E480 -:10423000BB0500D5EBE0089B04CB06920022089357 -:104240000792FFF780FBBB0500D5F5E008CA06938F -:10425000DB1707930892FFF737FB4B469B0500D50A -:10426000F2E0089B04CB06920022089307920123F8 -:10427000FFF76DFB0899059A08C91A60D2175A60B2 -:104280000891FFF7A8FA0B9B002B01D1FFF704FB65 -:104290000B9B1B78002B01D1FFF7FEFA8023DB007C -:1042A0002A781F43FFF7B6FA9C46012115AEFFF7A7 -:1042B000FEFB5C4B0C93BB064DD5072308990731D9 -:1042C000994318C9069307940891FB070AD50698E5 -:1042D000079903000B4305D0302111AB19705A70B8 -:1042E00002231F43504B1F40B9460223FFF72FFB09 -:1042F000B946A3E44D4B0C93DDE7200001F000FD2F -:1043000043460893002303900293FFF703FB10AB8F -:10431000DB78002B71D10A9B002B00D009E69C466C -:10432000012115AEFFF7C7FB0E9B0D99E41A1A0089 -:10433000200001F013FD0B9930004B788C465A1E7B -:1043400093419C4463460A220B9339000023FCF7F7 -:1043500071F800252EE6FB060BD47B0607D50899DD -:1043600008C99BB20693002308910793ADE7BB05EC -:104370006ED4089B02CB0691002108930791A4E715 -:104380005346986D00F014FE53469B89FFF7E0FBFF -:10439000B946012B00D0C8E4FFF7B0FA20236A78B1 -:1043A0001F430135FFF736FA80239B006A781F43CD -:1043B0000135FFF72FFA089A059908CA1960089283 -:1043C000FFF709FA029B0393062B13D8039B184CA3 -:1043D000994643460893FFF720FB164B984672E533 -:1043E000092E00D9E6E500E6002301219C4615AE22 -:1043F000FFF761FB06230393E8E710AB0333159344 -:10440000012301210120169315AEFFF730FB089A16 -:1044100008CADBB20693002308920793FFF793FACA -:104420003466000098640000FFFBFFFFAC640000EE -:10443000C06400004466000008CA5BB20693DB1744 -:1044400007930892FFF740FA089A08CADBB2B0E671 -:10445000089908C9DBB2069300230891079334E753 -:10446000089A059908CA19800892FFF7B4F95346CB -:10447000986D00F09DFDFFF7F2F943460893029B0B -:10448000039300230293FFF745FA139B0F93013325 -:104490009C461A4B9A46F5E5139B0293591C174B01 -:1044A0009A463AE65946019812AAFFF70BF90028F6 -:1044B00001D1FFF740FBFFF740FB114B8C469846BC -:1044C000A9E45B6EDB0707D453469B899B0503D4A5 -:1044D0005346986D00F06CFD01235B420593FFF796 -:1044E0003BFB089904C90292002A02DA01225242D7 -:1044F00002926A7808911D00FFF78CF9346600007B -:1045000044660000F0B51F0002231F4C1500A544AF -:104510000C0089896A4699436B469981636E8021B4 -:104520001993E3890600D381E369C9000793636A9D -:1045300016A809931AAB00930493002302910591E6 -:10454000069300F02FFD2A003B0069463000FFF77C -:10455000FDF8051E0EDA6B469B895B0603D54022EB -:10456000A3891343A381169800F01EFD2800074B72 -:104570009D44F0BD6946300000F01CF90028EAD0E7 -:1045800001256D42E7E7C04694FBFFFF6C04000085 -:10459000334B70B5050018680C00002802D0836BFF -:1045A000002B3DD00C23E25EA38919070DD52169AC -:1045B000002915D0D80724D50020A06060694042AA -:1045C000A0610020002924D070BDD90640D55B072A -:1045D00029D4216908231A43A28193B20029E9D181 -:1045E000A02080268000B6001840B042E2D0210012 -:1045F000280000F00FFD0C23E25EA3892169D80793 -:10460000DAD400209D0700D46069A0600020002952 -:10461000DAD11B06D8D540231A43A2810138D3E74B -:1046200000F02EF9BEE7216B00290AD023004033A9 -:10463000994204D0280000F02BFA0C23E25E0023FC -:10464000236324239A430023216963602160C1E727 -:1046500009232B60402301201A43A2814042B3E783 -:1046600010032020062010B501F0D8FA012001F037 -:104670006DFDC046F0B5C6460C0000B5A289804667 -:104680000C23C95E13074CD4802362681B010B43C3 -:10469000A381002A66DDA66A002E3ED0424641462E -:1046A000156800220A609AB2DB0460D4012300225C -:1046B0004046E169B047431C68D0A289A66A530707 -:1046C00006D56368C01A236B002B01D0E36BC01AB8 -:1046D00000230200E1694046B047431C49D14346EC -:1046E0001B68002B45D01D2B01D0162B57D1A38959 -:1046F0002F4A1340A381002363602369236043464C -:10470000216B1D60002908D023004033994202D05C -:10471000404600F0BDF900232363002004BC90460E -:10472000F0BD2669002EF8D0236826609D1B00236B -:10473000920700D16369A360002D04DCEDE7361811 -:104740002D1A002DE9DD2B0032004046E169676A31 -:10475000B8470028F3DC40220120A38940421343DC -:10476000A381DBE7E26B002A00DD94E7D5E7206D4B -:10477000A5E7A3890E4A13400022626022691BB29A -:10478000A3812260DB04BAD52065B8E743461B68E5 -:10479000002B00D191E71D2B06D0162B04D0402210 -:1047A000A3891343A381B9E7434600201D60B5E701 -:1047B000FFF7FFFF70B505000C00002802D0836BE7 -:1047C000002B15D00C22A35E002B17D0626ED207EF -:1047D00001D49B0514D528002100FFF74BFF636E21 -:1047E0000500DB0702D4A3899B0515D5280070BD01 -:1047F00000F046F80C22A35E002BE7D10025F5E778 -:10480000A06D00F0D3FB28002100FFF733FF636E9B -:104810000500DB07EAD4E6E7A06D00F0C9FBE5E799 -:10482000002310B504000360436083608181436608 -:104830000021C28103610822436183615C3000F082 -:104840009DFF2000064BE4612362064B58306362F3 -:10485000054BA362054BE36200F0A4FB10BDC0460C -:10486000615C0000895C0000C95C0000F55C000030 -:1048700010B5024900F066FB10BDC046395F00006C -:1048800070B50400144D280000F090FBA36B002BC2 -:104890001DD1124A0421E263B8229200A350B92329 -:1048A00003229B00E2500833E218043BE2506068A8 -:1048B0000022FFF7B5FF01220921A068FFF7B0FF32 -:1048C00002221221E068FFF7ABFF0123A363280057 -:1048D00000F06EFB70BDC046003220207148000021 -:1048E00010B5024800F062FB10BDC0461432202013 -:1048F00010B5024800F05CFB10BDC0461432202009 -:10490000F0B5CE46474680B583B080468946140050 -:1049100000F03CFB012803D14B46013BFE2B30D974 -:10492000230001AF4A46390040465C3301F0B0FA3B -:104930000600431C2BD0002821D03978002507E041 -:1049400023685A1C226019700135B54217D2795D6F -:10495000A368013BA360002BF2DAA269934201DB5A -:104960000A29EDD12200404601F02EFA431CEBD17A -:104970000600300003B00CBC90469946F0BD4E4690 -:10498000F7E74B4601AFD9B201263970D6E740228E -:10499000A3891343A381ECE7536E70B505000E00A5 -:1049A0001400DB071ED4A1890C23D25E8B0516D51B -:1049B00080239B01194204D11A43A281626E1343E2 -:1049C0006366280022003100FFF79AFF636E05003E -:1049D000DB0702D4A3899B0508D5280070BDA06D14 -:1049E00000F0E4FA0C23E25EA189E1E7A06D00F09B -:1049F000DFFAF2E7F8B50C00050000F013FF204FD6 -:104A0000BB685E6803239E431E4B341B9C46644474 -:104A1000240B013C113324039C4207DB00212800B6 -:104A200001F0BCF8BB689B19984204D0280000F044 -:104A300001FF0020F8BD2800614201F0AFF8431CDF -:104A40000DD00122BB68361B16435E600E4B28005A -:104A50001A68141B1C6000F0EDFE0120EAE700213B -:104A6000280001F09BF8BA68831A0F2BDEDD074996 -:104A70000968401A0449086001210B435360D5E7D7 -:104A8000AC082020EF0F0000C00F2020B40C202025 -:104A9000F0B5C64605000C0000B500294FD000F067 -:104AA000C1FE210008394C68012622000320B243D0 -:104AB0008F187B688343624898468368BB426BD0FB -:104AC00043467B6026421ED108239C460C688444E2 -:104AD000091B12198C6864454FD0CB68E3609C6059 -:104AE0004346FC186468344211D1BB68554C4244BB -:104AF000A34200D17FE0FC68DC60A3600123134384 -:104B00004B608A5006E0FC1864683442EDD01643CE -:104B10004E603A6080239B009A4213D25409D30816 -:104B20000122A2404468DB002243426018188368D7 -:104B3000C8608B608160D960280000F07BFE04BCF7 -:104B40009046F0BD530A042B3FD89409260039340F -:104B50003836E40004192368083C03279C4243D0FC -:104B60005868B843904202D99B689C42F8D1DC68EF -:104B7000CC608B60A160D960DEE74346F8184068DE -:104B8000304258D11300B868FA6843441E43C260EB -:104B900090604E60CB50CFE713004344264206D1CD -:104BA0000A68891A8C689B18CA68E26094600122BE -:104BB0001A434A60244A816012689A42BCD8234B47 -:104BC00028001968FFF716FFB6E7142B07D9542BF6 -:104BD0001AD8140B26006F346E36E400BAE71E00B4 -:104BE0005C335B36DC00B5E70122B610B2404668A4 -:104BF00032434260BCE7D9609960CB608B6001238F -:104C000013434B608A5097E7AA246400A34205D857 -:104C1000D40B260078347736E4009BE70C4CA34293 -:104C200005D8940C26007D347C36E40092E7FE24FF -:104C30007E26A4008EE7330013434B603A607BE787 -:104C4000AC082020B4082020B80C2020F00F202031 -:104C500054050000F0B54546DE4657464E46E0B5E1 -:104C6000936883B00C0090460090002B23D08B8972 -:104C70001A0728D50A69002A25D0424616689A07DD -:104C80002DD50027AB4B00259946BA46002D5AD0AA -:104C90002B004D4500D9A74B5246E1690098676A41 -:104CA000B847002861DD43469B6882442D1A181AD4 -:104CB00043469860EAD1002003B03CBC9046994638 -:104CC000A246AB46F0BD21000098FFF761FC00282A -:104CD00000D02CE14246A38916689A07D1D4DA079E -:104CE0004BD4002291468022920000279346002F49 -:104CF00024D05A46A568134200D186E0AA46BD4298 -:104D000000D9B5E09022D200134200D0C7E020685D -:104D10005246494600F0D6FCA3685D1BA5603D00E5 -:104D2000002723685344236043469B68A9445D1BC6 -:104D300043469D60BFD0A389002FDAD132687768DF -:104D400091460836D3E7336875689A4608369DE77A -:104D500059462A0000F0B6FC236821005B19009830 -:104D60002360FFF727FD002827D00C22A35E4022F6 -:104D700001201343A38140429EE7002300279A4667 -:104D800000209B46B146002F28D0002830D0564640 -:104D9000BE4200D93E00206822696369904203D96F -:104DA000A2689D18AE42D3DCB3426CDC656A5A46F9 -:104DB000E1690098A847051ED7DD53465B1B9A465C -:104DC0000120002B58D043469B68AB447F1B5D1BE2 -:104DD00043469D6000D16EE7002FD6D14B461B683D -:104DE0009B464B465F6808239C46E144002FF5D064 -:104DF0003A000A21584600F02BFC002800D18DE033 -:104E00005B460130C31A9A46C1E72068236998427D -:104E100016D863699A46BB4212D8474B38009F4266 -:104E200000D946485146FBF71BFA5346656A43438F -:104E30004A46E1690098A847051E96DD7F1B73E787 -:104E4000BD4200D93D002A00494600F03BFCA36862 -:104E500022685B1B5219A3602260002BEED1210057 -:104E60000098FFF7A7FC002800D07EE77F1B5BE7D8 -:104E70003D00BA4620684BE721000098FFF79AFCF6 -:104E80000028A0D071E73200594600F01BFCA3684F -:104E900035009B1BA36023689B1923608DE7606925 -:104EA00022682169551A42001218D00F8218681C16 -:104EB0005210C01992460195904201D982460200D3 -:104EC0005B051AD51100009800F0ECF8051E28D0FB -:104ED000019A2169FEF7A4FBA389194A1340802295 -:104EE0001343A3815246019B2561E818D31A3D0064 -:104EF000BA4620606261A3600AE7009800F0A2FC55 -:104F0000051EEFD1009D21692800FFF7C1FD802219 -:104F1000A3899343743A1BB22A6028E77E1CB246E9 -:104F200036E70C23009A13600C22A35E1FE70120D2 -:104F30004042C1E600FCFF7FFEFFFF7FFFFFFF7FD7 -:104F40007FFBFFFFF8B54746CE4680B5B8278046C1 -:104F500089460026BF0047447B68BC685D1E0DD4AF -:104F6000A389012B07D90E22A35E013303D02100B0 -:104F70004046C84706436834013DF1D23F68002FE0 -:104F8000EAD130000CBC90469946F8BD9423024A01 -:104F90005B00D05C7047C046400720200048704747 -:104FA000300820207047C0467047C0467047C04652 -:104FB0007047C04670B50C001E000E23C95E150078 -:104FC00096B0002915DB6A4601F024F8002810DBB2 -:104FD000F022019B120213400D4A80209446634444 -:104FE0005A42534133608023DB002B60000116B02E -:104FF00070BD00233360A3891B0603D54023002026 -:105000002B60F4E78023DB0000202B60EFE7C04635 -:1050100000E0FFFF70B58B8905000C0082B09B0794 -:1050200007D523004333236023610123636102B06A -:1050300070BD6A4601ABFFF7BDFF0099060028006E -:1050400000F030F8002810D08022154BEB63A389C4 -:1050500020601343009A1BB26261019AA381206110 -:10506000002A0CD13343A381E1E70C22A35E9A0509 -:10507000DDD40322934302221343A381D1E7280006 -:105080000E23E15E00F0DAFF002802D10C22A35EBD -:10509000E8E70323A2899A43012313431BB2E1E704 -:1050A00071480000F0B54E464546DE465746E0B52D -:1050B0000D000B35060083B0162D22D8102900D91B -:1050C000B2E000F0AFFB102502201823CB4FFB18F5 -:1050D0001A005C68083A944200D1B5E00323626884 -:1050E0009A431300E268A168CA6091600122E31844 -:1050F000596830000A435A6000F09CFB20000830D9 -:1051000095E007239D4300D58EE0A94200D98BE0AE -:1051100000F088FBFC235B009D4200D2A5E1680AF9 -:1051200000D18BE0042800D978E138239846A809FB -:1051300080443930C100B14F79184C680839A14218 -:105140000ED003239C4604E0002ACBDAE468A14297 -:1051500006D06246636893435A1B0F2AF4DD40462B -:105160003A003C690832944200D178E00323616838 -:10517000994389460B00491B0F2900DD79E17A61CB -:105180003A610029B2DA80229200914500D30EE103 -:105190005909DA0801238B40D2007968D2190B43F0 -:1051A00091687B60E260A1609460CC600121821014 -:1051B0009140994259D80B4205D1032290434900AE -:1051C00004300B42FBD003239846C3009946B944F0 -:1051D000CC4682466346DC68A44507D12AE1002A12 -:1051E00000DB33E1E468A44500D123E14246636873 -:1051F00093435A1B0F2AF2DD0120804661190543B3 -:105200006560A068E5680837C560A860404610433F -:10521000F960B9604860CF6030008F60E25000F004 -:1052200009FB2000083002E00C230020336003B0AB -:105230003CBC90469946A246AB46F0BD80213F2338 -:1052400040209846890076E7DC680230A34200D00F -:1052500044E73A003C690832944200D086E70121D5 -:105260007B68821091409942A5D90323BC6862688B -:105270009A439146954203D8531B0F2B00DD88E0DB -:1052800023004B445E4A01935E4B93461B681268B1 -:10529000EB18013200D13BE15B4A944663441B0B9F -:1052A0001B0300933000009900F078FC0300804657 -:1052B000013300D1F8E0019B834200D9F2E0534B67 -:1052C00019009A460968009B8C46514663440B605E -:1052D00001991A00814200D150E15B461B680133FD -:1052E00000D155E1434601995B1A9A1853461A605A -:1052F0000723424641461A400192194200D111E16A -:1053000008239846881A424B0099804441449B1ACE -:105310005B1A1B051B0D0091300019009B4600F025 -:105320003DFC431C00D14FE14346C01A03005B44DF -:105330000093534652461B6801215B44136042466A -:105340004046BA60009A0A434260BC4200D123E161 -:105350004A460F2A00D821E107200C3A82436068B0 -:105360000140052011436160A118486088600F2A40 -:1053700000D934E1424644465268264908689842BA -:1053800000D20B6024490868984200D38EE00B607D -:105390008CE001222900134311436519616030003C -:1053A000BD606B6000F046FA200008303FE75A0A03 -:1053B000042A71D9142A00D9C4E011005C325B318F -:1053C000D20008235B429C46BA18944463469A680C -:1053D00003239846944500D19DE043465168994384 -:1053E000494502D992689445F7D1D3689C467B68B9 -:1053F0006146A260E1608C60D460D7E6AC082020F2 -:10540000B40C2020F00F20200F100000C00F20202F -:1054100008100000E80F2020EC0F2020142852D99B -:10542000542800D996E06E239846280B80446F30AC -:10543000C10080E608239B46073BDC449B46DA44D8 -:1054400043465246134200D0C4E64CE00122E31822 -:10545000596830000A435A60E368A268D3609A60D2 -:1054600000F0E8F920000830E1E62B00E8080833F6 -:105470002CE6012360191D43656078613861C260C4 -:1054800082601A004B460A4342603000E15000F04F -:10549000D1F920000830CAE69A09110039323831B2 -:1054A000D2008EE7BC4260D0BC68626803239A4396 -:1054B000531B954202D80F2B00DD6AE7300000F045 -:1054C000B9F90020B3E65B23984680445C30C10004 -:1054D00031E608235B429C46E1444B469B68013819 -:1054E0004B4500D098E043460342F2D17B688B43A2 -:1054F0007B604900994200D9B7E6002904D1B4E69F -:10550000042294464900E2440B42F9D050465CE63E -:1055100010330093C6E68910023B8B4079680B4339 -:105520007B6065E7009B300043445B421B051B0D1D -:1055300019009B4600F032FB431C00D0F4E6002328 -:105540009B46F6E6542A2BD81A0B11006F326E31A7 -:10555000D20036E7AA235B0098422BD8DD3B984661 -:10556000E80B80447830C100E5E52C4B009A9A4660 -:105570001B689C46534662441A60AEE6090500D09B -:10558000ABE6009ABC684A4401310A436260F4E623 -:105590005B4642461A60ABE64446EEE641608DE764 -:1055A000AA2149008A4224D8DA0B110078327731D7 -:1055B000D20006E71A4B984224D87C239846A80CC0 -:1055C00080447D30C100B6E5009A019B9446424676 -:1055D000083B63449B1A009300239B46A9E62100E5 -:1055E00030000831FFF754FA5346BC681B68626804 -:1055F000C3E60B498A420BD89A0C11007D327C31EC -:10560000D200DEE6FE217E237F209846890092E5C7 -:10561000FE227E219200D4E67B686AE7C00F20203C -:105620005405000082B000290AD0002A0BD0002BBC -:105630000BD013780B601078431E984102B070476E -:1056400001A9002AF3D10020F8E702204042F5E743 -:1056500070B5CCB283070DD0531E002A0FD003259E -:1056600004E00130284206D0013B08D30278A24270 -:10567000F7D170BD1300032B0CD8002B01D10020F3 -:10568000F7E7C31802E001308342F8D00278A24263 -:10569000F9D1EEE7FF220D062D0C114029430D0430 -:1056A000064E0D43026806496A4051189143314243 -:1056B000E7D1043B0430032BF4D8DEE78080808000 -:1056C000FFFEFEFEF0B5C64600B588420CD98B1829 -:1056D000984209D2531E002A03D0CA5CC254013B2F -:1056E000FBD204BC9046F0BD0F2A0BD80500561E15 -:1056F000002AF6D00023CC5C1A00EC540133964209 -:10570000F9D1EEE703270D003E0005430C0003002E -:105710002E402F422CD11500103D2D09AC462D01F5 -:10572000A846804425681F001D6065685D60A56807 -:105730009D60E5681034DD6010334745F2D1654661 -:105740000F230C2401352D0149191340451914422A -:1057500011D08C59AC5104369C1B032CF9D803246E -:10576000043B9B0801339B00ED18C9182240BEE79B -:105770000500561EBEE71A00B9E7C046F0B50500A1 -:1057800083074AD0541E002A44D003000322CEB21D -:1057900002E00135013C3DD301332E701342F8D1B4 -:1057A000032C2FD9FF220A40150215432A04154362 -:1057B0000F2C35D92700103F3F093E01B4461E008B -:1057C0001A0010366644156055609560D560103239 -:1057D000B242F8D10F260C2201373F012640DB19D7 -:1057E0003700224217D03E1FB608B400A4461A0064 -:1057F0001C1D644420C2A242FCD103240136B60021 -:105800009B193C40002C05D0C9B21C1919700133FA -:105810009C42FBD1F0BD3400F4E714000300BFE765 -:105820002700E0E710B50248FFF7C0FB10BDC046F7 -:105830000432202010B50248FFF7BAFB10BDC04665 -:1058400004322020F0B557464546DE464E46E0B5C8 -:105850000C000700904683B0002900D1CBE04546FC -:105860000B35FFF7DFFF162D70D810251023A84544 -:1058700070D82600083E71680322080090438146D4 -:105880000096984200DB99E0C34A3018934692682C -:105890009446824200D1C4E0426801900092012205 -:1058A00092465046009A8243019894468346DC44CF -:1058B000624650465268024200D092E00320009AAD -:1058C000CB4682439446E3449B4500DB1AE15246B3 -:1058D0000A420FD103213268B21A924652688A43B3 -:1058E0006146511849448B4699423FDA4A449346EF -:1058F0009A4240DA41463800FFF7D4FB8046002840 -:1059000020D07368B44600930123009902009943A4 -:105910000B00083A6344934200D1FAE04A46043A45 -:10592000242A00D9FAE00300132A00D9C5E0220096 -:10593000116819605168596092689A6021003800B6 -:10594000FFF7A6F83800FFF775FF07E007239D4330 -:105950002B1E8CDA0C233B6000239846404603B094 -:105960003CBC90469946A246AB46F0BD019AD3682E -:105970009268D3609A6053465246DB6892685646F6 -:10598000D3609A604A46043A0836242A00D99EE039 -:105990003300132A09D95346216899606168D96098 -:1059A0001B2A00D9C8E0083410332268D9461A608F -:1059B00062685A60A268340056469A604B465B1B88 -:1059C0000F2B1DD801224946736813400B437360A7 -:1059D0004E4473681A4372603800FFF72BFFA046ED -:1059E000BCE7084200D085E703213268B21A92462C -:1059F00052688A437AE71100FFF754FB8046ADE70F -:105A000001207268711902400343154375604B60B1 -:105A10004E4473680831184370603800FFF738F857 -:105A2000DAE762465068032290430D32824694467C -:105A3000CA44AC44E24552DACA0700D55AE7316895 -:105A4000721A0321924652688A4310180100494491 -:105A500000918C4500DD49E753465246DB68926869 -:105A6000D3609A6008234A465344043A9846242A4D -:105A70007CD8132A08D95346216899606168D96097 -:105A80001B2A78D80834103322681A6062685A607A -:105A9000A2689A60534659195B469960009B38008A -:105AA0005A1B01231A434A605246526813401D4351 -:105AB00053465D60FFF7BEFE50E7216801606168F4 -:105AC00041601B2A2ED822000833083230E721001B -:105AD00030003400FFF7F6FDD94656466EE75B46C8 -:105AE0000098A0464119996053465A1B01231A4356 -:105AF0004A6041680B401D43456038000091FFF744 -:105B000099FE2BE7019AD946D3689268D3609A60D0 -:105B100054E703225B68934399444FE72100FFF762 -:105B2000D1FD0BE7A1688160E168C160242A0CD037 -:105B3000220010331032FBE6A1681961E168596157 -:105B4000242A0BD0103418332FE722690100026198 -:105B500022006069183218334861E9E622699A61C7 -:105B6000524661692033D16118341EE721001800C4 -:105B7000FFF7A8FD8EE7A1681961E1685961242A41 -:105B800002D0103418337FE722699A615246616966 -:105B90002033D161183477E7AC082020002370B59A -:105BA000064D040008002B6000F0BAFA431C00D038 -:105BB00070BD2B68002BFBD02360F9E71832202042 -:105BC00070B505000C001F2922D8B7239B00C358CD -:105BD000002B0ED08A009B181A68002A09D0012ACF -:105BE00014D0511C0ED000212000196090470020D5 -:105BF00070BD280000F030F822000100280000F0FD -:105C000017F8F5E7162303600120F1E70020EFE71E -:105C10001623036001204042EAE7C04610B5034B5B -:105C200001001868FFF7CCFF10BDC046100320200C -:105C3000002370B5074D0400080011002B6000F030 -:105C400057FA431C00D070BD2B68002BFBD023609B -:105C5000F9E7C0461832202010B500F039FA10BD1F -:105C600070B50C000E25495F00F00EFA002803DB2A -:105C7000236D1B18236570BDA389024A1340A381BD -:105C8000F9E7C046FFEFFFFFF8B50C001F000C233B -:105C9000C95E05001600CB050AD40A4B3200194034 -:105CA0002800A1810E23E15E3B0000F01FF9F8BD42 -:105CB0000E23E15E0022022300F0D2F90C23E15E04 -:105CC000EBE7C046FFEFFFFF70B50C000E25495F04 -:105CD00000F0C6F9431C06D08023A2895B01134360 -:105CE000A381206570BDA389014A1340A381F9E710 -:105CF000FFEFFFFF10B50E23C95E00F00BF910BDDA -:105D000010B583070AD00300032102E001330B42E0 -:105D100005D01A78002AF9D1181A10BD03001968A5 -:105D20000C4A0D4C8A188A4322420FD15968094AFD -:105D300004338A188A43224208D15968054A043339 -:105D40008A188A432242F1D000E001331A78002AEF -:105D5000FBD1E1E7FFFEFEFE80808080F0B50C0005 -:105D6000044303000600A40712D1032A10D9144CDF -:105D7000A44666460D68134C1F002C19AC433442F0 -:105D80001CD10433043A1E0004313D60032AF0D8CC -:105D90000024B71806E00D5D013A3555BB1A0134F1 -:105DA000002D02D0002AF6D1F0BD0021D418002A1F -:105DB000FAD0197001339C42FBD1F5E71E00E7E7EA -:105DC00080808080FFFEFEFEF8B505000E00140006 -:105DD000002802D0836B002B4BD0A369A289A3605B -:105DE0000C23E05E13071FD52369002B1CD0FF2175 -:105DF000F7B20E40802189010A4226D022686169EB -:105E0000D31A99422CDD0133A1680139A160511CDC -:105E10002160177062699A422ED0A389DB0701D5F1 -:105E20000A2E29D03000F8BD21002800FEF7B0FB73 -:105E3000002827D1FF21F7B20E408021A2898901D5 -:105E40000C23E05E23690A42D8D101430F4AA181A5 -:105E5000616E0A40626661692268D31A9942D2DC97 -:105E600021002800FEF7A6FC00280BD101232268A0 -:105E7000CAE7FEF705FDB0E721002800FEF79AFC0F -:105E80000028CFD001267642CCE7C046FFDFFFFFD7 -:105E900070B504001D0084B0002909D0E0230B4830 -:105EA000C6582B002000B047431C0AD004B070BD78 -:105EB000E023064A01A9D6582B000022B047431C14 -:105EC000F4D100232B608A332360EFE740072020C2 -:105ED000002909D0FF2A02D801200A7070478A23BE -:105EE000036001204042F9E70020F7E770B50400A5 -:105EF000080011001A000023054D2B6000F01EF968 -:105F0000431C00D070BD2B68002BFBD02360F9E749 -:105F100018322020002370B5064D040008002B60C5 -:105F200000F0C6F8431C00D070BD2B68002BFBD0DE -:105F30002360F9E718322020F8B506000C1E4DD07A -:105F4000002802D0836B002B4AD00127636E3B42AE -:105F500035D00C22A35E002B40D021003000FEF78C -:105F600089FBE36A0500002B04D03000E169984703 -:105F700000283CDBA3891B063ED4216B002908D0F6 -:105F800023004033994202D03000FEF781FD002308 -:105F90002363616C002904D03000FEF779FD0023F3 -:105FA0006364FEF79DFC0023A381636EDB072CD5A1 -:105FB000A06DFEF7F9FFFEF79BFC2800F8BDA38952 -:105FC0009B05CAD4A06DFEF7F1FF0C22A35E002B47 -:105FD000C3D1636E1D003D403B4212D00025ECE76B -:105FE0000127FEF74DFC636E3B42B2D1E7E7012586 -:105FF000A3896D421B06C0D530002169FEF748FD1C -:10600000BBE7A06DFEF7D4FFD7E7A06DFEF7D0FF8A -:10601000CEE7C046002370B5074D0400080011000C -:106020002B6000F04DF8431C00D070BD2B68002B96 -:10603000FBD02360F9E7C04618322020002370B55A -:10604000064D040008002B6000F04AF8431C00D005 -:1060500070BD2B68002BFBD02360F9E7183220209D -:1060600070B50400080011001A000023054D2B60D4 -:1060700000F046F8431C00D070BD2B68002BFBD00D -:106080002360F9E71832202070B5040008001100E1 -:106090001A000023054D2B6000F03AF8431C00D095 -:1060A00070BD2B68002BFBD02360F9E7183220204D -:1060B00058220120014B40421A60704718322020BC -:1060C00058220120014B40421A60704718322020AC -:1060D00058220120014B40421A607047183220209C -:1060E0005822024B00201A607047C0461832202008 -:1060F00058220120014B40421A607047183220207C -:1061000058220120014B40421A607047183220206B -:1061100058220120014B40421A607047183220205B -:10612000044A03001068002802D0C31813607047A7 -:106130000148FAE7F40F20202032202058220120C5 -:10614000014B40421A60704718322020FEE7C046DB -:1061500001B40248844601BC604700BF0100202012 -:1061600080B584B000AF78607A6888235B01012134 -:10617000D1507B680A4A9B5807221340FB6005E018 -:106180007B68074A9B5807221340FB60FB68DBB221 -:10619000042BF5D0FB68DBB21800BD4604B080BD0F -:0861A000D01300000000000014 -:1061A80000000000010000000200000003000000E1 -:1061B80004000000050000000600000007000000C1 -:1061C800080000000C00000010000000140000008F -:1061D800180000002000000030000000400000000F -:1061E8000400000005000000060000000700000091 -:1061F800080000000A0000000E0000001200000065 -:106208003808000048080000580800006808000026 -:1062180078080000AC0800009A0800008A0800000E -:106228001011121315141700564543424D53000020 -:106238004D43414E203D3D2043414E4644300000F1 -:106248002E2E2F4D43414C2F4D63616C5F5372636B -:106258002F697665635F6D63616C5F6D63616E2E38 -:106268006300000042415544203D3D2042415544D1 -:106278005F353030207C7C2042415544203D3D2014 -:10628800424155445F32353000000000625F4D43A3 -:10629800414E5F496E6974466C6167203D3D203010 -:1062A80000000000625F4D43414E5F496E697446CD -:1062B8006C616720213D2030000000004279746540 -:1062C80073203C3D20380000784D43414C5F4D43DE -:1062D800414E496E69740000784D43414C5F4D430F -:1062E800414E4465496E697400000000784D434191 -:1062F8004C5F4D43414E547800000000784D4341B7 -:106308004C5F4D43414E5278506F6C6C696E67001C -:1063180000000000F8070000100000000100000065 -:106328000200000048160000B415000042160000E4 -:10633800BA150000FC15000002160000081600003F -:106348000E1600001416000048160000481600003B -:1063580048160000481600004816000048160000BD -:10636800481600001A1600004816000048160000DB -:10637800481600004816000048160000481600009D -:1063880048160000201600004816000048160000B5 -:10639800481600004816000048160000481600007D -:1063A800481600002616000048160000481600008F -:1063B800481600004816000048160000481600005D -:1063C800481600002A16000048160000481600006B -:1063D800481600004816000048160000481600003D -:1063E8004816000030160000481600004816000045 -:1063F800481600004816000048160000481600001D -:10640800481600003616000048160000481600001E -:1064180048160000481600004816000048160000FC -:10642800481600003C1600000100000001000000B2 -:106438000000000000000000200000000000000034 -:10644800000000000B000000020000002400C4410E -:106458002C2066756E6374696F6E3A200000000028 -:10646800617373657274696F6E20222573222066CA -:1064780061696C65643A2066696C6520222573221F -:106488002C206C696E65202564257325730A00002D -:106498003031323334353637383941424344454652 -:1064A8000000000030313233343536373839616214 -:1064B8006364656600000000286E756C6C29000036 -:1064C800BC3C0000043A0000043A0000B43C000060 -:1064D800043A0000043A0000043A00006E38000054 -:1064E800043A0000043A00001A3C0000663C000030 -:1064F800043A00002E3C0000783C0000043A0000FA -:10650800703C0000683B0000683B0000683B0000EE -:10651800683B0000683B0000683B0000683B0000E7 -:10652800683B0000683B0000043A0000043A0000A1 -:10653800043A0000043A0000043A0000043A00005B -:10654800043A0000043A0000043A0000023C00004B -:10655800A4380000043A0000043A0000043A00009D -:10656800043A0000043A0000043A0000043A00002B -:10657800043A0000043A0000043A00002C390000F4 -:10658800043A0000043A0000043A0000C83B000046 -:10659800043A0000363C0000043A0000043A0000C7 -:1065A800B2420000043A0000043A0000043A000035 -:1065B800043A0000043A0000043A0000043A0000DB -:1065C800043A0000043A0000043A0000023C0000CB -:1065D800A8380000043A0000043A0000043A000019 -:1065E800583C0000A83800009C380000043A00001D -:1065F800143D0000043A0000F03C0000303900006F -:10660800D03C00009C380000043A0000C83B000061 -:1066180098380000F0420000043A0000043A0000F4 -:10662800F4420000043A000098380000202020209E -:106638002020202020202020202020203030303012 -:1066480030303030303030303030303043000000BF -:10665800504F5349580000002E0000000020202011 -:1066680020202020202028282828282020202020FA -:1066780020202020202020202020202020881010CA -:106688001010101010101010101010101004040426 -:1066980004040404040404101010101010104141E4 -:1066A80041414141010101010101010101010101D2 -:1066B80001010101010101011010101010104242E6 -:1066C80042424242020202020202020202020202A2 -:1066D8000202020202020202101010102000000042 -:1066E80000000000000000000000000000000000A2 -:1066F8000000000000000000000000000000000092 -:106708000000000000000000000000000000000081 -:106718000000000000000000000000000000000071 -:106728000000000000000000000000000000000061 -:106738000000000000000000000000000000000051 -:106748000000000000000000000000000000000041 -:106758000000000000000000000000000000000031 -:086768000C9DFF7F0100000001 -:10677000A10D000000000000E50E0000A90D0000C2 -:106780008D0E0000E1080000B90B0000950B000021 -:10679000B50A0000290A0000DD0900000000000021 -:1067A00000000000210900000000000000000000BF -:1067B00000000000000000000000000000000000D9 -:1067C0000000000000000000FF00000000000000CA -:1067D00011010000000000000000000000000000A7 -:1067E00000000000000000000000000000000000A9 -:1067F0000000000000000000000000000000000099 -:106800000000000000000000000000000000000088 -:106810000000000000000000000000000000000078 -:106820000000000000000000000000000000000068 -:106830000000000000000000000000000000000058 -:106840000000000000000000000000000000000048 -:1068500000000000000000000080000000000200B6 -:1068600000800100010000000D1000001110000068 -:10687000F10F0000000000000000000051100000B7 -:1068800000000000891000000080000001000000EE -:10689000000000008A000000130000001300000048 -:1068A00000000000000000000000000000000000E8 -:1068B00000000000290000000400000004000000A7 -:1068C00000000000000000000000000000000000C8 -:1068D00000000000000000000F00000000000000A9 -:1068E00000000000FFFF00000000000001000000A9 -:1068F0000100000003000000030000000000000091 -:106900000000000000000000000000000000000087 -:106910000000000000000000000000000100000076 -:10692000FF0000000A000000060000000100000057 -:106930000000000002000000300000000000000025 -:106940000A0000000A0000000A0000000000000029 -:1069500000000000800200000A00000000000000AB -:10696000AA0000004000000000000000000000003D -:10697000BE0000000A0000000A0000000100000044 -:10698000D000000000000000000000000000000037 -:1069900000000000000000000000000000000000F7 -:1069A00008000000010000000100000001000000DC -:1069B000AA0000000000000000000000000000002D -:1069C00000000000000000000000000000000000C7 -:1069D00000000000000000000000000000000000B7 -:1069E00000000000000000000000000000000000A7 -:1069F0000000000000000000000000000000000097 -:106A00000000000000000000000000000000000086 -:106A10000000000000000000000000000000000076 -:106A20000000000000000000000000000000000066 -:106A300000000000010000001803202000000000FA -:106A400000000000040620206C062020D406202030 -:106A50000000000000000000000000000000000036 -:106A60000000000000000000000000000000000026 -:106A70000000000000000000000000000000000016 -:106A80000000000000000000000000000000000006 -:106A900000000000000000000000000000000000F6 -:106AA00000000000000000000000000000000000E6 -:106AB00000000000000000000000000000000000D6 -:106AC00000000000000000000000000000000000C6 -:106AD00000000000000000000000000000000000B6 -:106AE00000000000000000000100000000000000A5 -:106AF0000E33CDAB34126DE6ECDE05000B0000006A -:106B00000000000000000000000000000000000085 -:106B10000000000000000000000000000000000075 -:106B20000000000000000000000000000000000065 -:106B30000000000000000000000000000000000055 -:106B40000000000000000000000000000000000045 -:106B50000000000000000000000000000000000035 -:106B60000000000000000000000000000000000025 -:106B70000000000000000000000000000000000015 -:106B80000000000000000000000000000000000005 -:106B900000000000000000000000000000000000F5 -:106BA00000000000000000000000000000000000E5 -:106BB00000000000000000000000000000000000D5 -:106BC00000000000000000000000000000000000C5 -:106BD00000000000000000000000000000000000B5 -:106BE00000000000000000000000000000000000A5 -:106BF0000000000000000000000000000000000095 -:106C00000000000000000000000000000000000084 -:106C10000000000000000000000000000000000074 -:106C20000000000000000000000000000000000064 -:106C30000000000000000000000000000000000054 -:106C40000000000000000000000000000000000044 -:106C50000000000000000000000000000000000034 -:106C60000000000000000000000000000000000024 -:106C70000000000000000000000000000000000014 -:106C80000000000000000000000000000000000004 -:106C900000000000000000000000000000000000F4 -:106CA00000000000000000000000000000000000E4 -:106CB00000000000000000000000000000000000D4 -:106CC00000000000000000000000000000000000C4 -:106CD00000000000000000000000000000000000B4 -:106CE00000000000000000000000000000000000A4 -:106CF0000000000000000000000000000000000094 -:106D00000000000000000000000000000000000083 -:106D10000000000000000000000000000000000073 -:106D20000000000000000000000000000000000063 -:106D30000000000000000000000000000000000053 -:106D40000000000000000000000000000000000043 -:106D50000000000000000000000000000000000033 -:106D60000000000000000000000000000000000023 -:106D70000000000000000000000000000000000013 -:106D80000000000000000000000000000000000003 -:106D900000000000000000000000000000000000F3 -:106DA00000000000000000000000000000000000E3 -:106DB00000000000000000000000000000000000D3 -:106DC00000000000000000000000000000000000C3 -:106DD00000000000000000000000000000000000B3 -:106DE00000000000000000000000000000000000A3 -:106DF0000000000000000000000000000000000093 -:106E00000000000000000000000000000000000082 -:106E10000000000000000000000000000000000072 -:106E20000000000000000000000000000000000062 -:106E30000000000000000000000000000000000052 -:106E40000000000000000000000000000000000042 -:106E50000000000000000000000000000000000032 -:106E600000000000000000004300000000000000DF -:106E70000000000000000000000000000000000012 -:106E800000000000000000004300000000000000BF -:106E900000000000000000000000000000000000F2 -:106EA000000000000000000043000000000000009F -:106EB00000000000000000000000000000000000D2 -:106EC000000000000000000043000000000000007F -:106ED00000000000000000000000000000000000B2 -:106EE000000000000000000043000000000000005F -:106EF0000000000000000000000000000000000092 -:106F0000000000000000000043000000000000003E -:106F10000000000000000000000000000000000071 -:106F2000000000000000000043000000000000001E -:106F30000000000000000000000000000000000051 -:106F40000000000000000000D15E00002556000097 -:106F500000000000646600006066000064640000D9 -:106F60006464000064640000646400006464000001 -:106F700064640000646400006464000064640000F1 -:106F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFF00000F -:106F90000100415343494900000000000000000087 -:106FA00000000000000000000000000000000000E1 -:106FB0000000415343494900000000000000000068 -:106FC00000000000000000000000000000000000C1 -:106FD000000000000000000000000000AC082020BD -:106FE000AC082020B4082020B4082020BC082020B1 -:106FF000BC082020C4082020C4082020CC08202061 -:10700000CC082020D4082020D4082020DC08202010 -:10701000DC082020E4082020E4082020EC082020C0 -:10702000EC082020F4082020F4082020FC08202070 -:10703000FC08202004092020040920200C0920201D -:107040000C09202014092020140920201C092020CC -:107050001C09202024092020240920202C0920207C -:107060002C09202034092020340920203C0920202C -:107070003C09202044092020440920204C092020DC -:107080004C09202054092020540920205C0920208C -:107090005C09202064092020640920206C0920203C -:1070A0006C09202074092020740920207C092020EC -:1070B0007C09202084092020840920208C0920209C -:1070C0008C09202094092020940920209C0920204C -:1070D0009C092020A4092020A4092020AC092020FC -:1070E000AC092020B4092020B4092020BC092020AC -:1070F000BC092020C4092020C4092020CC0920205C -:10710000CC092020D4092020D4092020DC0920200B -:10711000DC092020E4092020E4092020EC092020BB -:10712000EC092020F4092020F4092020FC0920206B -:10713000FC092020040A2020040A20200C0A202018 -:107140000C0A2020140A2020140A20201C0A2020C7 -:107150001C0A2020240A2020240A20202C0A202077 -:107160002C0A2020340A2020340A20203C0A202027 -:107170003C0A2020440A2020440A20204C0A2020D7 -:107180004C0A2020540A2020540A20205C0A202087 -:107190005C0A2020640A2020640A20206C0A202037 -:1071A0006C0A2020740A2020740A20207C0A2020E7 -:1071B0007C0A2020840A2020840A20208C0A202097 -:1071C0008C0A2020940A2020940A20209C0A202047 -:1071D0009C0A2020A40A2020A40A2020AC0A2020F7 -:1071E000AC0A2020B40A2020B40A2020BC0A2020A7 -:1071F000BC0A2020C40A2020C40A2020CC0A202057 -:10720000CC0A2020D40A2020D40A2020DC0A202006 -:10721000DC0A2020E40A2020E40A2020EC0A2020B6 -:10722000EC0A2020F40A2020F40A2020FC0A202066 -:10723000FC0A2020040B2020040B20200C0B202013 -:107240000C0B2020140B2020140B20201C0B2020C2 -:107250001C0B2020240B2020240B20202C0B202072 -:107260002C0B2020340B2020340B20203C0B202022 -:107270003C0B2020440B2020440B20204C0B2020D2 -:107280004C0B2020540B2020540B20205C0B202082 -:107290005C0B2020640B2020640B20206C0B202032 -:1072A0006C0B2020740B2020740B20207C0B2020E2 -:1072B0007C0B2020840B2020840B20208C0B202092 -:1072C0008C0B2020940B2020940B20209C0B202042 -:1072D0009C0B2020A40B2020A40B2020AC0B2020F2 -:1072E000AC0B2020B40B2020B40B2020BC0B2020A2 -:1072F000BC0B2020C40B2020C40B2020CC0B202052 -:10730000CC0B2020D40B2020D40B2020DC0B202001 -:10731000DC0B2020E40B2020E40B2020EC0B2020B1 -:10732000EC0B2020F40B2020F40B2020FC0B202061 -:10733000FC0B2020040C2020040C20200C0C20200E -:107340000C0C2020140C2020140C20201C0C2020BD -:107350001C0C2020240C2020240C20202C0C20206D -:107360002C0C2020340C2020340C20203C0C20201D -:107370003C0C2020440C2020440C20204C0C2020CD -:107380004C0C2020540C2020540C20205C0C20207D -:107390005C0C2020640C2020640C20206C0C20202D -:1073A0006C0C2020740C2020740C20207C0C2020DD -:1073B0007C0C2020840C2020840C20208C0C20208D -:1073C0008C0C2020940C2020940C20209C0C20203D -:1073D0009C0C2020A40C2020A40C2020FFFFFFFFE9 -:0873E0000000020000000000A3 -:04000003000000C039 -:00000001FF diff --git a/bootloader_flasher.uniflash b/bootloader_flasher.uniflash new file mode 100644 index 0000000..2a97a75 --- /dev/null +++ b/bootloader_flasher.uniflash @@ -0,0 +1 @@ +{"programs":[{"name":"CORTEX_M0P","programs":[{"file":{"name":"TI_Bootloader.hex","path":"D:/AAR/bootloader/Platform/TI_MSPM0/mcu_flash_proj_gnu/Debug/TI_Bootloader.hex","size":83551,"type":"NWFile","isLocal":true},"isBinary":false,"index":0,"isSelected":true,"provider":"NWProgramProvider"},{"file":{"name":"mspm0g3507_mcal.hex","path":"D:/AAR/cantouart_ti/Test__GNU/mspm0g3507_mcal.hex","size":114033,"type":"NWFile","isLocal":true},"isBinary":false,"index":1,"isSelected":true,"provider":"NWProgramProvider"}]}],"propertyActions":{"actionList":[],"orderIndex":0},"session":{"version":"uniflash_session_format_version_2","ccxmlContent":"\n\n\n \n \n \t\n \t\t \n \t\n \t\t \n \t\n \t\t \n \t\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n\n","deviceXMLFile":"MSPM0G3507","connectionXMLFile":"TIXDS110_Connection","queryConfig":{"cores":[{"name":"CORTEX_M0P","pathName":"Texas Instruments XDS110 USB Debug Probe/CORTEX_M0P","isa":"CORTEX_M0P","$$hashKey":"object:7166"}],"deviceProperties":{"FilterString":{"Type":"stringfield","Value":"MSPM0","id":"FilterString"},"DefaultToolChain":{"Type":"stringfield","Value":"TICLANG","id":"DefaultToolChain"},"PromoteSDKExamples":{"Type":"stringfield","Value":"true","id":"PromoteSDKExamples"},"HexBuildOptions":{"Type":"stringfield","Value":"--romwidth=8 --memwidth=8 --intel","id":"HexBuildOptions"},"TICLANGHexBuildOptions":{"Type":"stringfield","Value":"--romwidth=8 --memwidth=8 --intel","id":"TICLANGHexBuildOptions"},"EnableSWDPassword":{"Type":"choicelist","Name":"Enable SWD Password","Value":"0","id":"EnableSWDPassword"},"MSPM0SWDPassword0":{"Name":"SWD Password [0] (32-bit HEX format)","Type":"numericfield","Value":"0","NumericType":"HEX","UpperBound":"0xFFFFFFFF","LowerBound":"0","id":"MSPM0SWDPassword0"},"MSPM0SWDPassword1":{"Name":"SWD Password [1] (32-bit HEX format)","Type":"numericfield","Value":"0","NumericType":"HEX","UpperBound":"0xFFFFFFFF","LowerBound":"0","id":"MSPM0SWDPassword1"},"MSPM0SWDPassword2":{"Name":"SWD Password [2] (32-bit HEX format)","Type":"numericfield","Value":"0","NumericType":"HEX","UpperBound":"0xFFFFFFFF","LowerBound":"0","id":"MSPM0SWDPassword2"},"MSPM0SWDPassword3":{"Name":"SWD Password [3] (32-bit HEX format)","Type":"numericfield","Value":"0","NumericType":"HEX","UpperBound":"0xFFFFFFFF","LowerBound":"0","id":"MSPM0SWDPassword3"}},"partnum":"MSPM0G3507","connectionProperties":{"Diagnostic Command":{"Name":"Diagnostic Command","Type":"hiddenfield","Value":"%ccs_base%/common/uscif/dbgjtag -f %boarddatafile% -rv -o -S integrity","ID":"DiagnosticCommand"},"Debug Probe Filename":{"Name":"Debug Probe Filename","Type":"hiddenfield","Value":"jioxds110.dll","ID":"SEPK.POD_DRVR"},"Debug Probe Selection":{"Name":"Debug Probe Selection","Type":"choicelist","Value":"0","ID":"SEPK.POD_PORT"},"Power Selection":{"id":"Power Selection","Name":"Power Selection","Type":"choicelist","Value":"0","ID":"SEPK.POD_SUPPLY"},"Title":{"Name":"Title","Type":"hiddenfield","Value":"Texas Instruments XDS110 USB","ID":"PRODUCT.TITLE"},"Alias":{"Name":"Alias","Type":"hiddenfield","Value":"TI_XDS110_USB","ID":"PRODUCT.ALIAS"},"Name":{"Name":"Name","Type":"hiddenfield","Value":"XDS110","ID":"PRODUCT.NAME"},"TMS/TDO Output Timing":{"Name":"TMS/TDO Output Timing","Type":"hiddenfield","Value":"FALL","ID":"USCIF.TDOEDGE"},"The JTAG TCLK Frequency (MHz)":{"Name":"The JTAG TCLK Frequency (MHz)","Type":"choicelist","Value":"0","ID":"USCIF.TCLK_PROGRAM"},"JTAG Signal Isolation":{"Name":"JTAG Signal Isolation","Type":"choicelist","Value":"1","ID":"USCIF.JTAG_ISOLATE"},"SWD Mode Settings":{"id":"SWD Mode Settings","desc":"JTAG / SWD / cJTAG Mode","Type":"choicelist","Value":"0","ID":"DOT7.DTS_USAGE"},"SWD.SWJ_DP_DEFAULT_MODE":{"Name":"SWJ-DP default mode","id":"SWD.SWJ_DP_DEFAULT_MODE","desc":"Default mode of the SWJ-DP","Type":"hiddenfield","Value":"0"},"SWD.APPY_PIN_RESET_DORMANT_WAKEUP":{"Name":"Apply pin reset","id":"SWD.APPY_PIN_RESET_DORMANT_WAKEUP","desc":"Apply pin reset when waking up from the dormant state","Type":"hiddenfield","Value":"0"}},"deviceXMLFile":"/TICloudAgent/win/ccs_base/common/targetdb/devices/MSPM0G3507.xml","connectionXMLFile":"/TICloudAgent/win/ccs_base/common/targetdb/connections/TIXDS110_Connection.xml","debuggableCores":[{"name":"CORTEX_M0P","pathName":"Texas Instruments XDS110 USB Debug Probe/CORTEX_M0P","isa":"CORTEX_M0P","$$hashKey":"object:7166"},{"name":"SEC_AP","pathName":"Texas Instruments XDS110 USB Debug Probe/SEC_AP","isa":"SEC_AP"}],"nondebuggableCores":[]}},"propertyValues":[{"name":"CORTEX_M0P","valueObj":[{"id":"FlashResetBeforeLoadSetting","value":true,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"FlashResetAfterLoadSetting","value":true,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"FlashResetType","value":"Hard reset","modified":false,"disabled":false,"valueType":"ChoiceList"},{"id":"MSPM0EraseText","modified":false,"disabled":false,"valueType":"Text"},{"id":"FlashEraseSelection","value":"Erase MAIN memory only","modified":false,"disabled":false,"valueType":"ChoiceList"},{"id":"FlashEraseSectorsText","modified":false,"disabled":false,"valueType":"Text"},{"id":"FlashEraseSectorsStartAddress","value":"0","modified":false,"disabled":false,"valueType":"String"},{"id":"FlashEraseSectorsEndAddress","value":"0","modified":false,"disabled":false,"valueType":"String"},{"id":"FlashNonMainIgnoreErase","value":false,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"FlashVerification","value":true,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"ManualMassErase","modified":false,"disabled":false,"valueType":"Button"},{"id":"AutomaticMassErase","modified":false,"disabled":false,"valueType":"Button"},{"id":"ManualFactoryReset","modified":false,"disabled":false,"valueType":"Button"},{"id":"AutomaticFactoryReset","modified":false,"disabled":false,"valueType":"Button"},{"id":"EraseECCSRAMText","modified":false,"disabled":false,"valueType":"Text"},{"id":"EraseECCSRAM","value":false,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"FlashSkipDeviceID","value":false,"modified":false,"disabled":false,"valueType":"Boolean"},{"id":"FlashVerboseMode","value":false,"modified":false,"disabled":false,"valueType":"Boolean"}]}],"quickSettings":[{"core":"CORTEX_M0P","pinnedList":[]}]} \ No newline at end of file diff --git a/bs_touchAndLcd/slprj/ert/_sharedutils/shared_file.dmr b/bs_touchAndLcd/slprj/ert/_sharedutils/shared_file.dmr index fe96753..3d8ff7a 100644 Binary files a/bs_touchAndLcd/slprj/ert/_sharedutils/shared_file.dmr and b/bs_touchAndLcd/slprj/ert/_sharedutils/shared_file.dmr differ diff --git a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/BlockTraceInfo.mat b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/BlockTraceInfo.mat index 3fe90e8..99ee170 100644 Binary files a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/BlockTraceInfo.mat and b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/BlockTraceInfo.mat differ diff --git a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/CompileInfo.xml b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/CompileInfo.xml index faa6c32..6daa0c3 100644 --- a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/CompileInfo.xml +++ b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/CompileInfo.xml @@ -1,14 +1,14 @@ - + sJSjS2nhFB3Qcky7Q7UDQFE sKuRTaq5s8EZI5Gj28zXs2E - + [{"Name":"","Profile":""}] socTouchDisplay - [{"Name":"in_bTouchDetected","Profile":""},{"Name":"ip_u32TouchDuration_msec","Profile":""},{"Name":"ip_u32DisplayDuration_msec","Profile":""},{"Name":"Input","Profile":""},{"Name":"op_bDisplayStatus","Profile":""},{"Name":"op_bErrorStatus","Profile":""},{"Name":"op_u8HundredsPlace","Profile":""},{"Name":"op_u8TensPlace","Profile":""},{"Name":"op_u8OnesPlace","Profile":""}] + [{"Name":"in_bTouchDetected","Profile":""},{"Name":"ip_u32TouchDuration_msec","Profile":""},{"Name":"ip_u32DisplayDuration_msec","Profile":""},{"Name":"Input","Profile":""},{"Name":"ip_u32canId","Profile":""},{"Name":"op_bDisplayStatus","Profile":""},{"Name":"op_bErrorStatus","Profile":""},{"Name":"op_u8HundredsPlace","Profile":""},{"Name":"op_u8TensPlace","Profile":""},{"Name":"op_u8OnesPlace","Profile":""}] - + socTouchDisplay socTouchDisplay @@ -16,13 +16,13 @@ socTouchDisplay.sldd socTouchDisplay.sldd socTouchDisplay.sldd - - + + true socTouchDisplay.sldd DataDictionary - + true base workspace BaseWorkspace @@ -40,7 +40,7 @@ true true true - + true inf -inf @@ -53,10 +53,10 @@ 0 - - + + - + true inf -inf @@ -70,10 +70,10 @@ 0 - - + + - + true inf -inf @@ -87,10 +87,10 @@ 0 - - + + - + true inf -inf @@ -104,8 +104,25 @@ 0 - - + + + + + true + inf + -inf + 2 + 4 + + true + D1 + .1 + 40 + 0 + + + + false true @@ -113,6 +130,7 @@ false false false + false false false false @@ -120,12 +138,13 @@ false 2 -1.0 - 4 + 5 0 + false false false @@ -136,7 +155,7 @@ - + true inf -inf @@ -148,10 +167,10 @@ 0 - - + + - + true inf -inf @@ -164,10 +183,10 @@ 0 - - + + - + inf -inf 2 @@ -179,10 +198,10 @@ 0 - - + + - + inf -inf 3 @@ -194,10 +213,10 @@ 0 - - + + - + inf -inf 4 @@ -209,8 +228,8 @@ 0 - - + + true @@ -224,50 +243,50 @@ 323 <?xml version="1.0"?> <slexec_sto version="1.1" packageUris="http://schema.mathworks.com/mf0/slexec_mm_sto/R2023a_202208151321"> - <sto.Registry type="sto.Registry" uuid="3a3d3d52-cd9c-47c0-a0c8-32e7580def99"> + <sto.Registry type="sto.Registry" uuid="cd25431f-875e-462e-90e6-77aba17625d3"> <executionSpec>Undetermined</executionSpec> <identifier>socTouchDisplay</identifier> - <clockRegistry type="sto.ClockRegistry" uuid="926692e5-6e1d-44ce-95bd-ec062455c3dd"> - <clocks type="sto.Timer" uuid="b6a56536-b6c2-4e08-a692-5478eb83994e"> + <clockRegistry type="sto.ClockRegistry" uuid="dd27bfe6-2f41-4359-8706-c010ed9dc578"> + <clocks type="sto.Timer" uuid="23b6ef5b-2cde-4de5-8f5c-41238b19192e"> <clockTickConstraint>PeriodicWithFixedResolution</clockTickConstraint> <computedFundamentalDiscretePeriod>.1</computedFundamentalDiscretePeriod> - <fastestDiscreteRate type="sto.ClassicPeriodicDiscreteRate" uuid="b24d7f8a-e80b-4bf6-a138-35e053d007e1"/> + <fastestDiscreteRate type="sto.ClassicPeriodicDiscreteRate" uuid="a4a85346-4500-496a-b655-7c0b2e0a41ce"/> <isDefaultTimer>true</isDefaultTimer> <resolution>.1</resolution> <timeAdvanceMode>FixedStep</timeAdvanceMode> <identifier>socTouchDisplay::defaultTimer</identifier> - <rates type="sto.ClassicPeriodicDiscreteRate" uuid="b24d7f8a-e80b-4bf6-a138-35e053d007e1"> + <rates type="sto.ClassicPeriodicDiscreteRate" uuid="a4a85346-4500-496a-b655-7c0b2e0a41ce"> <annotation>D1</annotation> <clockId>socTouchDisplay::defaultTimer</clockId> <description>Discrete 1</description> <taskId>_task0</taskId> - <rateSpec type="sto.RateSpec" uuid="04741580-1702-4d99-a71f-5c59fff197c6"> + <rateSpec type="sto.RateSpec" uuid="e2802860-1cd7-4f78-a3ea-f71eeea3095b"> <period>.1</period> <rateType>ClassicPeriodicDiscrete</rateType> </rateSpec> </rates> - <baseRate type="sto.ClassicPeriodicDiscreteRate" uuid="66637882-0267-41e0-a267-d06135e27d03"> + <baseRate type="sto.ClassicPeriodicDiscreteRate" uuid="83ac6bc7-b933-4c64-aaa4-c68795b13cf0"> <annotation>D1</annotation> <clockId>socTouchDisplay::defaultTimer</clockId> <description>Discrete 1</description> <taskId>_task0</taskId> - <rateSpec type="sto.RateSpec" uuid="a1392d16-b148-4f54-a21b-6f8b08d0035f"> + <rateSpec type="sto.RateSpec" uuid="a04f93e4-1521-445e-8894-e52d5e91ab8e"> <period>.1</period> <rateType>ClassicPeriodicDiscrete</rateType> </rateSpec> </baseRate> </clocks> - <clocks type="sto.Event" uuid="e41a78c8-b216-4f36-9dee-4f997b4b1c11"> + <clocks type="sto.Event" uuid="885722a5-c5f4-4bd2-9701-8e7be9b9e22e"> <eventType>PARAMETER_CHANGE_EVENT</eventType> <cNum>1</cNum> <clockType>Event</clockType> <identifier>ParameterChangeEvent</identifier> - <rates type="sto.ModelWideEventRate" uuid="90d6839c-de09-4d36-8a0c-4a5a598feba9"> + <rates type="sto.ModelWideEventRate" uuid="936e84dc-3ded-47f7-8ab3-c85ff31937e5"> <clockId>ParameterChangeEvent</clockId> <rateIdx>-1</rateIdx> <taskId>ModelWideParameterChangeEvent</taskId> <useForExecution>NotForExecution</useForExecution> - <rateSpec type="sto.RateSpec" uuid="1ff799ef-cf4a-4029-870d-05c901611246"> + <rateSpec type="sto.RateSpec" uuid="19ce4db5-4ab9-480c-b5ec-8fffafc7135e"> <period>inf</period> <rateType>ModelWideParameterChangeEvent</rateType> </rateSpec> @@ -275,15 +294,15 @@ </clocks> <timeAdvanceMode>FixedStep</timeAdvanceMode> </clockRegistry> - <taskRegistry type="sto.TaskRegistry" uuid="51c7559b-0d95-45c2-89b5-e8ca1b1a2a36"> - <rootTaskHierarchyElements type="sto.Task" uuid="83d195cc-1e47-4c1f-bf41-cf7515d90315"> + <taskRegistry type="sto.TaskRegistry" uuid="0d993ee2-3b65-4573-8898-5196aac386ca"> + <rootTaskHierarchyElements type="sto.Task" uuid="7a8d6f06-f507-4752-b49d-2d40b196b835"> <isExplicit>true</isExplicit> - <rates type="sto.ModelWideEventRate" uuid="ddbb3b2c-a7d0-41a7-9985-12f1dbe63b55"> + <rates type="sto.ModelWideEventRate" uuid="e25b0b14-78dd-4492-8e0f-646a47ceb794"> <clockId>ParameterChangeEvent</clockId> <rateIdx>-1</rateIdx> <taskId>ModelWideParameterChangeEvent</taskId> <useForExecution>NotForExecution</useForExecution> - <rateSpec type="sto.RateSpec" uuid="9773adec-69fb-499f-b3d5-c885d4c27f15"> + <rateSpec type="sto.RateSpec" uuid="f3a4db8e-6eb5-4170-b182-f2fb8ee48e34"> <period>inf</period> <rateType>ModelWideParameterChangeEvent</rateType> </rateSpec> @@ -294,15 +313,15 @@ <identifier>ModelWideParameterChangeEvent</identifier> <priority>-1</priority> </rootTaskHierarchyElements> - <rootTaskHierarchyElements type="sto.Task" uuid="8d35a7a1-6a0f-4104-8229-9f1d048673ef"> + <rootTaskHierarchyElements type="sto.Task" uuid="d3bf08c5-2444-421e-8164-08c71bb6edf8"> <isExecutable>true</isExecutable> <orderIndex>1</orderIndex> - <rates type="sto.ClassicPeriodicDiscreteRate" uuid="cc569252-814e-451a-b975-9d4d66331c6d"> + <rates type="sto.ClassicPeriodicDiscreteRate" uuid="f3a57984-7593-41ca-8198-978ffde0f85d"> <annotation>D1</annotation> <clockId>socTouchDisplay::defaultTimer</clockId> <description>Discrete 1</description> <taskId>_task0</taskId> - <rateSpec type="sto.RateSpec" uuid="b90a1e82-5f37-4e57-8497-d7a2efda69c7"> + <rateSpec type="sto.RateSpec" uuid="d6123553-da2e-4156-bc60-26c4ac2e0a35"> <period>.1</period> <rateType>ClassicPeriodicDiscrete</rateType> </rateSpec> @@ -313,11 +332,11 @@ <identifier>_task0</identifier> <priority>40</priority> </rootTaskHierarchyElements> - <taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="2e3cd3f0-1e21-43b0-9c9c-83e394120168"> + <taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="f2944dc6-df54-41da-8274-72899cb2e2c9"> <clockIdentifier>socTouchDisplay::defaultTimer</clockIdentifier> <taskIdentifier>_task0</taskIdentifier> </taskDependencyGraph> - <taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="dd557f49-849f-47e0-be4f-d57d5f19b2d6"> + <taskDependencyGraph type="sto.SerializedTaskConnectionList" uuid="e0cf3055-a235-4970-a1cf-fff869fdec18"> <clockIdentifier>ParameterChangeEvent</clockIdentifier> <taskIdentifier>ModelWideParameterChangeEvent</taskIdentifier> </taskDependencyGraph> @@ -326,10 +345,10 @@ </sto.Registry> </slexec_sto> true - - - - + + + + true .1 2 @@ -339,7 +358,7 @@ 1 FixedStepDiscrete SOLVER_TYPE_FIXEDSTEP - + 8 64 32 @@ -355,13 +374,14 @@ 64 - - - + + + 0 1 2 3 + 4 0 1 2 @@ -371,87 +391,95 @@ 1 2 3 + 4 0 1 2 3 4 - - - - + + + + true true true true true - - - - - + + + + + - - - - - + + + + + 1.0 .1 0.0 in_bTouchDetected - + 1.0 .1 0.0 ip_u32TouchDuration_msec - + 1.0 .1 0.0 ip_u32DisplayDuration_msec - + 10.0 .1 0.0 CAN_MESSAGE_BUS Input + + 1.0 + .1 + 0.0 + uint32 + ip_u32canId + socTouchDisplay - + 1.0 .1 0.0 boolean op_bDisplayStatus - + 1.0 .1 0.0 boolean op_bErrorStatus - + 1.0 .1 0.0 uint8 op_u8HundredsPlace - + 1.0 .1 0.0 uint8 op_u8TensPlace - + 1.0 .1 0.0 @@ -461,7 +489,7 @@ ROOT - + @@ -489,6 +517,10 @@ portip_u32TouchDuration_msec RootInport + + portip_u32canId + RootInport + portop_bDisplayStatus RootOutport @@ -575,19 +607,19 @@ - - - + + + sltpEvents - + sltpTaskGroups - - - + + + D1 - + socTouchDisplay::defaultTimer _task0 @@ -596,6 +628,6 @@ sltpTasks - + \ No newline at end of file diff --git a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/binfo.mat b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/binfo.mat index 69adcb5..f70e749 100644 Binary files a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/binfo.mat and b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/binfo.mat differ diff --git a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/minfo.mat b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/minfo.mat index 8217a33..c87adbe 100644 Binary files a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/minfo.mat and b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/minfo.mat differ diff --git a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/scv b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/scv index 396e8c4..421544f 100644 Binary files a/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/scv and b/bs_touchAndLcd/slprj/ert/socTouchDisplay/tmwinternal/scv differ diff --git a/bs_touchAndLcd/socTouchDisplay.slx b/bs_touchAndLcd/socTouchDisplay.slx index 63ff07d..e2a29b8 100644 Binary files a/bs_touchAndLcd/socTouchDisplay.slx and b/bs_touchAndLcd/socTouchDisplay.slx differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/buildInfo.mat b/bs_touchAndLcd/socTouchDisplay_ert_rtw/buildInfo.mat index 1183c40..9931635 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/buildInfo.mat and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/buildInfo.mat differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/codeInfo.mat b/bs_touchAndLcd/socTouchDisplay_ert_rtw/codeInfo.mat index 1142149..208d3cc 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/codeInfo.mat and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/codeInfo.mat differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/codedescriptor.dmr b/bs_touchAndLcd/socTouchDisplay_ert_rtw/codedescriptor.dmr index ec771fb..cb0aec4 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/codedescriptor.dmr and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/codedescriptor.dmr differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/compileInfo.mat b/bs_touchAndLcd/socTouchDisplay_ert_rtw/compileInfo.mat index 7c8f4da..6a7279d 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/compileInfo.mat and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/compileInfo.mat differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/ert_main.c b/bs_touchAndLcd/socTouchDisplay_ert_rtw/ert_main.c index 070f9a0..974572e 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/ert_main.c +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/ert_main.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.c b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.c deleted file mode 100644 index d209c32..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * File: rtGetInf.c - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#include "rtwtypes.h" -#include "rtGetInf.h" -#include -#include "rt_nonfinite.h" -#define NumBitsPerChar 8U - -/* - * Initialize rtInf needed by the generated code. - * Inf is initialized as non-signaling. Assumes IEEE. - */ -real_T rtGetInf(void) -{ - size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); - real_T inf = 0.0; - if (bitsPerReal == 32U) { - inf = rtGetInfF(); - } else { - union { - LittleEndianIEEEDouble bitVal; - real_T fltVal; - } tmpVal; - - tmpVal.bitVal.words.wordH = 0x7FF00000U; - tmpVal.bitVal.words.wordL = 0x00000000U; - inf = tmpVal.fltVal; - } - - return inf; -} - -/* - * Initialize rtInfF needed by the generated code. - * Inf is initialized as non-signaling. Assumes IEEE. - */ -real32_T rtGetInfF(void) -{ - IEEESingle infF; - infF.wordL.wordLuint = 0x7F800000U; - return infF.wordL.wordLreal; -} - -/* - * Initialize rtMinusInf needed by the generated code. - * Inf is initialized as non-signaling. Assumes IEEE. - */ -real_T rtGetMinusInf(void) -{ - size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); - real_T minf = 0.0; - if (bitsPerReal == 32U) { - minf = rtGetMinusInfF(); - } else { - union { - LittleEndianIEEEDouble bitVal; - real_T fltVal; - } tmpVal; - - tmpVal.bitVal.words.wordH = 0xFFF00000U; - tmpVal.bitVal.words.wordL = 0x00000000U; - minf = tmpVal.fltVal; - } - - return minf; -} - -/* - * Initialize rtMinusInfF needed by the generated code. - * Inf is initialized as non-signaling. Assumes IEEE. - */ -real32_T rtGetMinusInfF(void) -{ - IEEESingle minfF; - minfF.wordL.wordLuint = 0xFF800000U; - return minfF.wordL.wordLreal; -} - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.h deleted file mode 100644 index 9f967f2..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetInf.h +++ /dev/null @@ -1,32 +0,0 @@ -/* - * File: rtGetInf.h - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#ifndef RTW_HEADER_rtGetInf_h_ -#define RTW_HEADER_rtGetInf_h_ -#include "rt_nonfinite.h" -#include "rtwtypes.h" - -extern real_T rtGetInf(void); -extern real32_T rtGetInfF(void); -extern real_T rtGetMinusInf(void); -extern real32_T rtGetMinusInfF(void); - -#endif /* RTW_HEADER_rtGetInf_h_ */ - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.c b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.c deleted file mode 100644 index 1138165..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * File: rtGetNaN.c - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#include "rtwtypes.h" -#include "rtGetNaN.h" -#include -#include "rt_nonfinite.h" -#define NumBitsPerChar 8U - -/* - * Initialize rtNaN needed by the generated code. - * NaN is initialized as non-signaling. Assumes IEEE. - */ -real_T rtGetNaN(void) -{ - size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); - real_T nan = 0.0; - if (bitsPerReal == 32U) { - nan = rtGetNaNF(); - } else { - union { - LittleEndianIEEEDouble bitVal; - real_T fltVal; - } tmpVal; - - tmpVal.bitVal.words.wordH = 0xFFF80000U; - tmpVal.bitVal.words.wordL = 0x00000000U; - nan = tmpVal.fltVal; - } - - return nan; -} - -/* - * Initialize rtNaNF needed by the generated code. - * NaN is initialized as non-signaling. Assumes IEEE. - */ -real32_T rtGetNaNF(void) -{ - IEEESingle nanF = { { 0.0F } }; - - nanF.wordL.wordLuint = 0xFFC00000U; - return nanF.wordL.wordLreal; -} - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.h deleted file mode 100644 index e6f8ec3..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtGetNaN.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * File: rtGetNaN.h - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#ifndef RTW_HEADER_rtGetNaN_h_ -#define RTW_HEADER_rtGetNaN_h_ -#include "rt_nonfinite.h" -#include "rtwtypes.h" - -extern real_T rtGetNaN(void); -extern real32_T rtGetNaNF(void); - -#endif /* RTW_HEADER_rtGetNaN_h_ */ - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.c b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.c deleted file mode 100644 index cee5a89..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.c +++ /dev/null @@ -1,92 +0,0 @@ -/* - * File: rt_nonfinite.c - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#include "rtGetNaN.h" -#include "rtGetInf.h" -#include -#include "rtwtypes.h" -#include "rt_nonfinite.h" -#define NumBitsPerChar 8U - -real_T rtInf; -real_T rtMinusInf; -real_T rtNaN; -real32_T rtInfF; -real32_T rtMinusInfF; -real32_T rtNaNF; - -/* - * Initialize the rtInf, rtMinusInf, and rtNaN needed by the - * generated code. NaN is initialized as non-signaling. Assumes IEEE. - */ -void rt_InitInfAndNaN(size_t realSize) -{ - (void) (realSize); - rtNaN = rtGetNaN(); - rtNaNF = rtGetNaNF(); - rtInf = rtGetInf(); - rtInfF = rtGetInfF(); - rtMinusInf = rtGetMinusInf(); - rtMinusInfF = rtGetMinusInfF(); -} - -/* Test if value is infinite */ -boolean_T rtIsInf(real_T value) -{ - return (boolean_T)((value==rtInf || value==rtMinusInf) ? 1U : 0U); -} - -/* Test if single-precision value is infinite */ -boolean_T rtIsInfF(real32_T value) -{ - return (boolean_T)(((value)==rtInfF || (value)==rtMinusInfF) ? 1U : 0U); -} - -/* Test if value is not a number */ -boolean_T rtIsNaN(real_T value) -{ - boolean_T result = (boolean_T) 0; - size_t bitsPerReal = sizeof(real_T) * (NumBitsPerChar); - if (bitsPerReal == 32U) { - result = rtIsNaNF((real32_T)value); - } else { - union { - LittleEndianIEEEDouble bitVal; - real_T fltVal; - } tmpVal; - - tmpVal.fltVal = value; - result = (boolean_T)((tmpVal.bitVal.words.wordH & 0x7FF00000) == 0x7FF00000 && - ( (tmpVal.bitVal.words.wordH & 0x000FFFFF) != 0 || - (tmpVal.bitVal.words.wordL != 0) )); - } - - return result; -} - -/* Test if single-precision value is not a number */ -boolean_T rtIsNaNF(real32_T value) -{ - IEEESingle tmp; - tmp.wordL.wordLreal = value; - return (boolean_T)( (tmp.wordL.wordLuint & 0x7F800000) == 0x7F800000 && - (tmp.wordL.wordLuint & 0x007FFFFF) != 0 ); -} - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.h deleted file mode 100644 index d0aac5e..0000000 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rt_nonfinite.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * File: rt_nonfinite.h - * - * Code generated for Simulink model 'socTouchDisplay'. - * - * Model version : 1.104 - * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 - * - * Target selection: ert.tlc - * Embedded hardware selection: Intel->x86-64 (Windows64) - * Code generation objectives: Unspecified - * Validation result: Not run - */ - -#ifndef RTW_HEADER_rt_nonfinite_h_ -#define RTW_HEADER_rt_nonfinite_h_ -#include -#include "rtwtypes.h" -#define NOT_USING_NONFINITE_LITERALS 1 - -extern real_T rtInf; -extern real_T rtMinusInf; -extern real_T rtNaN; -extern real32_T rtInfF; -extern real32_T rtMinusInfF; -extern real32_T rtNaNF; -extern void rt_InitInfAndNaN(size_t realSize); -extern boolean_T rtIsInf(real_T value); -extern boolean_T rtIsInfF(real32_T value); -extern boolean_T rtIsNaN(real_T value); -extern boolean_T rtIsNaNF(real32_T value); -typedef struct { - struct { - uint32_T wordH; - uint32_T wordL; - } words; -} BigEndianIEEEDouble; - -typedef struct { - struct { - uint32_T wordL; - uint32_T wordH; - } words; -} LittleEndianIEEEDouble; - -typedef struct { - union { - real32_T wordLreal; - uint32_T wordLuint; - } wordL; -} IEEESingle; - -#endif /* RTW_HEADER_rt_nonfinite_h_ */ - -/* - * File trailer for generated code. - * - * [EOF] - */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypes.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypes.h index ca7aee2..5d570f9 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypes.h +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypes.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypeschksum.mat b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypeschksum.mat index 354ad20..6f4dd72 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypeschksum.mat and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/rtwtypeschksum.mat differ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.c b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.c index d919bf0..746e117 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.c +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) @@ -16,7 +16,6 @@ #include "socTouchDisplay.h" #include "rtwtypes.h" #include -#include "rt_nonfinite.h" #include "socTouchDisplay_private.h" /* Named constants for Chart: '/Chart' */ @@ -48,11 +47,12 @@ RT_MODEL_socTouchDisplay_T *const socTouchDisplay_M = &socTouchDisplay_M_; /* Model step function */ void socTouchDisplay_step(void) { - real_T tmp; + int32_T i; int32_T s3_iter; - uint32_T tmp_0; + uint32_T tmp; uint8_T rtb_Cast; boolean_T Memory_PreviousInput; + boolean_T rtb_Equal; boolean_T rtb_Memory; /* Outputs for Iterator SubSystem: '/canMsgDecode' incorporates: @@ -71,842 +71,38 @@ void socTouchDisplay_step(void) &socTouchDisplay_B.Selector.Length, &socTouchDisplay_B.Selector.Data[0], &socTouchDisplay_B.SFunction); - /* Memory: '/Memory' */ - rtb_Memory = Memory_PreviousInput; - - /* S-Function (scanunpack): '/CAN Unpack' */ - { - /* S-Function (scanunpack): '/CAN Unpack' */ - if ((8 == socTouchDisplay_B.SFunction.Length) && - (socTouchDisplay_B.SFunction.ID != INVALID_CAN_ID) ) { - if ((220839530 == socTouchDisplay_B.SFunction.ID) && (1U == - socTouchDisplay_B.SFunction.Extended) ) { - { - /* --------------- START Unpacking signal 16 ------------------ - * startBit = 0 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - { - real_T outValue = 0; - - { - uint8_T unpackedValue = 0; - - { - uint8_T tempValue = (uint8_T) (0); - - { - tempValue = tempValue | (uint8_T) - (socTouchDisplay_B.SFunction.Data[0]); - } - - unpackedValue = tempValue; - } - - outValue = (real_T) (unpackedValue); - } - - { - real_T result = (real_T) outValue; - socTouchDisplay_B.CANUnpack_o17 = result; - } - } - - /* --------------- START Unpacking signal 0 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 1 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 2 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 3 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 4 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 5 ------------------ - * startBit = 56 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 6 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 7 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 8 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 9 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 10 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 11 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 12 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 13 ------------------ - * startBit = 56 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 14 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 15 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 17 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 18 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 19 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 20 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 21 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 22 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 23 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 24 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 25 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 26 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 27 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 28 ------------------ - * startBit = 8 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 29 ------------------ - * startBit = 9 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 30 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 31 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 32 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 33 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 34 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 35 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 36 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 37 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 38 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 39 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 40 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 41 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 42 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 43 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 44 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 45 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 46 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 47 ------------------ - * startBit = 9 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 48 ------------------ - * startBit = 8 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 49 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 50 ------------------ - * startBit = 10 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 51 ------------------ - * startBit = 11 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 52 ------------------ - * startBit = 13 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 53 ------------------ - * startBit = 14 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 54 ------------------ - * startBit = 15 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 55 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* Perform the mode dependency check to value */ - if (socTouchDisplay_B.CANUnpack_o17 == 2.0) { - { - real_T outValue = 0; - - { - uint8_T unpackedValue = 0; - - { - uint8_T tempValue = (uint8_T) (0); - - { - tempValue = tempValue | (uint8_T) - (socTouchDisplay_B.SFunction.Data[2]); - } - - unpackedValue = tempValue; - } - - outValue = (real_T) (unpackedValue); - } - - { - real_T result = (real_T) outValue; - socTouchDisplay_B.CANUnpack_o56 = result; - } - } - } - - /* --------------- START Unpacking signal 56 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 57 ------------------ - * startBit = 12 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - } - } + /* RelationalOperator: '/Equal' incorporates: + * Inport: '/ip_u32canId' + */ + rtb_Equal = (socTouchDisplay_B.SFunction.ID == socTouchDisplay_U.ip_u32canId); + + /* Outputs for Enabled SubSystem: '/Enabled Subsystem' incorporates: + * EnablePort: '/Enable' + */ + /* Logic: '/AND' incorporates: + * Constant: '/Constant' + * RelationalOperator: '/Equal1' + */ + if ((socTouchDisplay_B.SFunction.Data[0] == 2) && rtb_Equal) { + for (i = 0; i < 8; i++) { + /* SignalConversion generated from: '/In1' */ + socTouchDisplay_B.In1[i] = socTouchDisplay_B.SFunction.Data[i]; } } + /* End of Logic: '/AND' */ + /* End of Outputs for SubSystem: '/Enabled Subsystem' */ + /* DataTypeConversion: '/Cast' */ - tmp = floor(socTouchDisplay_B.CANUnpack_o56); - if (rtIsNaN(tmp) || rtIsInf(tmp)) { - tmp = 0.0; - } else { - tmp = fmod(tmp, 256.0); - } + rtb_Cast = socTouchDisplay_B.In1[2]; - if (tmp < 0.0) { - rtb_Cast = (uint8_T)-(int8_T)(uint8_T)-tmp; - } else { - rtb_Cast = (uint8_T)tmp; - } - - /* End of DataTypeConversion: '/Cast' */ + /* Memory: '/Memory' */ + rtb_Memory = Memory_PreviousInput; /* Update for Memory: '/Memory' incorporates: * Logic: '/OR' - * RelationalOperator: '/Equal' */ - Memory_PreviousInput = ((socTouchDisplay_B.SFunction.ID == 220839530U) || - Memory_PreviousInput); + Memory_PreviousInput = (rtb_Equal || Memory_PreviousInput); } /* End of Outputs for SubSystem: '/canMsgDecode' */ @@ -1012,9 +208,9 @@ void socTouchDisplay_step(void) socTouchDisplay_DW.durationCounter_2 = 0U; } - tmp_0 = (uint32_T)ceil(socTouchDisplay_U.ip_u32TouchDuration_msec); - if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_2 * 100) > - tmp_0) && Memory_PreviousInput) { + tmp = (uint32_T)ceil(socTouchDisplay_U.ip_u32TouchDuration_msec); + if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_2 * 100) > tmp) + && Memory_PreviousInput) { socTouchDisplay_DW.temporalCounter_i1 = 0U; socTouchDisplay_DW.is_c3_socTouchDisplay = socTouchDisplay_IN_displaySoc; @@ -1026,7 +222,7 @@ void socTouchDisplay_step(void) } if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_1_g * 100) > - tmp_0) && (!Memory_PreviousInput)) { + tmp) && (!Memory_PreviousInput)) { socTouchDisplay_DW.temporalCounter_i1 = 0U; socTouchDisplay_DW.is_c3_socTouchDisplay = socTouchDisplay_IN_displayError; @@ -1114,18 +310,7 @@ void socTouchDisplay_step(void) /* Model initialize function */ void socTouchDisplay_initialize(void) { - /* Registration code */ - - /* initialize non-finites */ - rt_InitInfAndNaN(sizeof(real_T)); - - /* SystemInitialize for Iterator SubSystem: '/canMsgDecode' */ - - /* Start for S-Function (scanunpack): '/CAN Unpack' */ - - /*-----------S-Function Block: /CAN Unpack -----------------*/ - - /* End of SystemInitialize for SubSystem: '/canMsgDecode' */ + /* (no initialization code required) */ } /* Model terminate function */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.h index 8782958..aba0a60 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.h +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) @@ -18,11 +18,9 @@ #ifndef socTouchDisplay_COMMON_INCLUDES_ #define socTouchDisplay_COMMON_INCLUDES_ #include "rtwtypes.h" -#include "can_message.h" #endif /* socTouchDisplay_COMMON_INCLUDES_ */ #include "socTouchDisplay_types.h" -#include "rt_nonfinite.h" #include "ivec_rte_dummy.h" /* Macros for accessing real-time model data structure */ @@ -38,64 +36,7 @@ typedef struct { CAN_MESSAGE_BUS Selector; /* '/Selector' */ CAN_MESSAGE_BUS SFunction; /* '/S-Function' */ - real_T CANUnpack_o1; /* '/CAN Unpack' */ - real_T CANUnpack_o2; /* '/CAN Unpack' */ - real_T CANUnpack_o3; /* '/CAN Unpack' */ - real_T CANUnpack_o4; /* '/CAN Unpack' */ - real_T CANUnpack_o5; /* '/CAN Unpack' */ - real_T CANUnpack_o6; /* '/CAN Unpack' */ - real_T CANUnpack_o7; /* '/CAN Unpack' */ - real_T CANUnpack_o8; /* '/CAN Unpack' */ - real_T CANUnpack_o9; /* '/CAN Unpack' */ - real_T CANUnpack_o10; /* '/CAN Unpack' */ - real_T CANUnpack_o11; /* '/CAN Unpack' */ - real_T CANUnpack_o12; /* '/CAN Unpack' */ - real_T CANUnpack_o13; /* '/CAN Unpack' */ - real_T CANUnpack_o14; /* '/CAN Unpack' */ - real_T CANUnpack_o15; /* '/CAN Unpack' */ - real_T CANUnpack_o16; /* '/CAN Unpack' */ - real_T CANUnpack_o17; /* '/CAN Unpack' */ - real_T CANUnpack_o18; /* '/CAN Unpack' */ - real_T CANUnpack_o19; /* '/CAN Unpack' */ - real_T CANUnpack_o20; /* '/CAN Unpack' */ - real_T CANUnpack_o21; /* '/CAN Unpack' */ - real_T CANUnpack_o22; /* '/CAN Unpack' */ - real_T CANUnpack_o23; /* '/CAN Unpack' */ - real_T CANUnpack_o24; /* '/CAN Unpack' */ - real_T CANUnpack_o25; /* '/CAN Unpack' */ - real_T CANUnpack_o26; /* '/CAN Unpack' */ - real_T CANUnpack_o27; /* '/CAN Unpack' */ - real_T CANUnpack_o28; /* '/CAN Unpack' */ - real_T CANUnpack_o29; /* '/CAN Unpack' */ - real_T CANUnpack_o30; /* '/CAN Unpack' */ - real_T CANUnpack_o31; /* '/CAN Unpack' */ - real_T CANUnpack_o32; /* '/CAN Unpack' */ - real_T CANUnpack_o33; /* '/CAN Unpack' */ - real_T CANUnpack_o34; /* '/CAN Unpack' */ - real_T CANUnpack_o35; /* '/CAN Unpack' */ - real_T CANUnpack_o36; /* '/CAN Unpack' */ - real_T CANUnpack_o37; /* '/CAN Unpack' */ - real_T CANUnpack_o38; /* '/CAN Unpack' */ - real_T CANUnpack_o39; /* '/CAN Unpack' */ - real_T CANUnpack_o40; /* '/CAN Unpack' */ - real_T CANUnpack_o41; /* '/CAN Unpack' */ - real_T CANUnpack_o42; /* '/CAN Unpack' */ - real_T CANUnpack_o43; /* '/CAN Unpack' */ - real_T CANUnpack_o44; /* '/CAN Unpack' */ - real_T CANUnpack_o45; /* '/CAN Unpack' */ - real_T CANUnpack_o46; /* '/CAN Unpack' */ - real_T CANUnpack_o47; /* '/CAN Unpack' */ - real_T CANUnpack_o48; /* '/CAN Unpack' */ - real_T CANUnpack_o49; /* '/CAN Unpack' */ - real_T CANUnpack_o50; /* '/CAN Unpack' */ - real_T CANUnpack_o51; /* '/CAN Unpack' */ - real_T CANUnpack_o52; /* '/CAN Unpack' */ - real_T CANUnpack_o53; /* '/CAN Unpack' */ - real_T CANUnpack_o54; /* '/CAN Unpack' */ - real_T CANUnpack_o55; /* '/CAN Unpack' */ - real_T CANUnpack_o56; /* '/CAN Unpack' */ - real_T CANUnpack_o57; /* '/CAN Unpack' */ - real_T CANUnpack_o58; /* '/CAN Unpack' */ + uint8_T In1[8]; /* '/In1' */ } B_socTouchDisplay_T; /* Block states (default storage) for system '' */ @@ -105,8 +46,6 @@ typedef struct { uint32_T temporalCounter_i1; /* '/Chart' */ uint32_T durationCounter_1_g; /* '/Chart' */ uint32_T durationCounter_2; /* '/Chart' */ - int_T CANUnpack_ModeSignalID; /* '/CAN Unpack' */ - int_T CANUnpack_StatusPortID; /* '/CAN Unpack' */ uint8_T is_active_c1_socTouchDisplay;/* '/Chart1' */ uint8_T is_c1_socTouchDisplay; /* '/Chart1' */ uint8_T is_active_c3_socTouchDisplay;/* '/Chart' */ @@ -119,6 +58,7 @@ typedef struct { real_T ip_u32TouchDuration_msec; /* '/ip_u32TouchDuration_msec' */ real_T ip_u32DisplayDuration_msec; /* '/ip_u32DisplayDuration_msec' */ CAN_MESSAGE_BUS Input[MAX_CAN_MESSAGE_INSTANCE];/* '/Input' */ + uint32_T ip_u32canId; /* '/ip_u32canId' */ } ExtU_socTouchDisplay_T; /* External outputs (root outports fed by signals with default storage) */ @@ -182,6 +122,7 @@ extern RT_MODEL_socTouchDisplay_T *const socTouchDisplay_M; * '' : 'socTouchDisplay/Chart1' * '' : 'socTouchDisplay/canMsgDecode' * '' : 'socTouchDisplay/displayData' + * '' : 'socTouchDisplay/canMsgDecode/Enabled Subsystem' */ #endif /* RTW_HEADER_socTouchDisplay_h_ */ diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.mk b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.mk index da141bf..196814f 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.mk +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.mk @@ -2,7 +2,7 @@ ## Makefile generated for component 'socTouchDisplay'. ## ## Makefile : socTouchDisplay.mk -## Generated on : Mon Oct 28 16:04:26 2024 +## Generated on : Thu Nov 07 22:32:48 2024 ## Final product: $(RELATIVE_PATH_TO_ANCHOR)/socTouchDisplay.exe ## Product type : executable ## @@ -23,7 +23,7 @@ MAKEFILE = socTouchDisplay.mk MATLAB_ROOT = C:/PROGRA~1/MATLAB/R2023b MATLAB_BIN = C:/PROGRA~1/MATLAB/R2023b/bin MATLAB_ARCH_BIN = $(MATLAB_BIN)/win64 -START_DIR = D:/MATLAB/bs_touchAndLcd +START_DIR = D:/AAR/cantouart_ti/bs_touchAndLcd SOLVER = SOLVER_OBJ = CLASSIC_INTERFACE = 0 @@ -183,7 +183,7 @@ DEFINES = $(DEFINES_BUILD_ARGS) $(DEFINES_CUSTOM) $(DEFINES_OPTS) $(DEFINES_STAN ## SOURCE FILES ########################################################################### -SRCS = $(START_DIR)/socTouchDisplay_ert_rtw/rtGetInf.c $(START_DIR)/socTouchDisplay_ert_rtw/rtGetNaN.c $(START_DIR)/socTouchDisplay_ert_rtw/rt_nonfinite.c $(START_DIR)/socTouchDisplay_ert_rtw/socTouchDisplay.c +SRCS = $(START_DIR)/socTouchDisplay_ert_rtw/socTouchDisplay.c MAIN_SRC = $(START_DIR)/socTouchDisplay_ert_rtw/ert_main.c @@ -193,7 +193,7 @@ ALL_SRCS = $(SRCS) $(MAIN_SRC) ## OBJECTS ########################################################################### -OBJS = rtGetInf.obj rtGetNaN.obj rt_nonfinite.obj socTouchDisplay.obj +OBJS = socTouchDisplay.obj MAIN_OBJ = ert_main.obj @@ -515,18 +515,6 @@ ert_main.obj : $(START_DIR)/socTouchDisplay_ert_rtw/ert_main.c $(CC) $(CFLAGS) -o "$@" "$<" -rtGetInf.obj : $(START_DIR)/socTouchDisplay_ert_rtw/rtGetInf.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -rtGetNaN.obj : $(START_DIR)/socTouchDisplay_ert_rtw/rtGetNaN.c - $(CC) $(CFLAGS) -o "$@" "$<" - - -rt_nonfinite.obj : $(START_DIR)/socTouchDisplay_ert_rtw/rt_nonfinite.c - $(CC) $(CFLAGS) -o "$@" "$<" - - socTouchDisplay.obj : $(START_DIR)/socTouchDisplay_ert_rtw/socTouchDisplay.c $(CC) $(CFLAGS) -o "$@" "$<" diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.rsp b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.rsp index 65ca82f..764f2a3 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.rsp +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay.rsp @@ -1,5 +1,2 @@ ert_main.obj -rtGetInf.obj -rtGetNaN.obj -rt_nonfinite.obj socTouchDisplay.obj diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_comp.rsp b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_comp.rsp index 10bda03..38460a8 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_comp.rsp +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_comp.rsp @@ -1,8 +1,7 @@ --ID:/MATLAB/bs_touchAndLcd --ID:/MATLAB/bs_touchAndLcd/socTouchDisplay_ert_rtw +-ID:/AAR/cantouart_ti/bs_touchAndLcd +-ID:/AAR/cantouart_ti/bs_touchAndLcd/socTouchDisplay_ert_rtw -IC:/Program\ Files/MATLAB/R2023b/extern/include -IC:/Program\ Files/MATLAB/R2023b/simulink/include -IC:/Program\ Files/MATLAB/R2023b/rtw/c/src -IC:/Program\ Files/MATLAB/R2023b/rtw/c/src/ext_mode/common -IC:/Program\ Files/MATLAB/R2023b/rtw/c/ert --IC:/Program\ Files/MATLAB/R2023b/toolbox/shared/can/src/scanutil diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_private.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_private.h index 911ccfe..9b74ee1 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_private.h +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_private.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_types.h b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_types.h index 7153d59..07a7b29 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_types.h +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/socTouchDisplay_types.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/simulink_cache.xml b/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/simulink_cache.xml index e20125f..0b3422a 100644 --- a/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/simulink_cache.xml +++ b/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/simulink_cache.xml @@ -1,6 +1,6 @@ - - 2oxCrrkWYAfYsid2BKElsqmUm/b9blgB8ROjvTY5kkSHI15WRdu5OidAq6Boxegx/r4DqPRAm5D7oEE/jWVWyQ== + + 8bTFSfmqHVlYhNqKtSda3c/Kq/qLr9+hTAYNegrcsTT+6h7F5vQznuwmUe5uezw4aTCxAwaPBDr/BUHto5jDVQ== \ No newline at end of file diff --git a/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/tr b/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/tr index c8a891e..4a193df 100644 Binary files a/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/tr and b/bs_touchAndLcd/socTouchDisplay_ert_rtw/tmwinternal/tr differ diff --git a/ivec_APP/inc/socTouchDisplay.h b/ivec_APP/inc/socTouchDisplay.h index 8782958..aba0a60 100644 --- a/ivec_APP/inc/socTouchDisplay.h +++ b/ivec_APP/inc/socTouchDisplay.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) @@ -18,11 +18,9 @@ #ifndef socTouchDisplay_COMMON_INCLUDES_ #define socTouchDisplay_COMMON_INCLUDES_ #include "rtwtypes.h" -#include "can_message.h" #endif /* socTouchDisplay_COMMON_INCLUDES_ */ #include "socTouchDisplay_types.h" -#include "rt_nonfinite.h" #include "ivec_rte_dummy.h" /* Macros for accessing real-time model data structure */ @@ -38,64 +36,7 @@ typedef struct { CAN_MESSAGE_BUS Selector; /* '/Selector' */ CAN_MESSAGE_BUS SFunction; /* '/S-Function' */ - real_T CANUnpack_o1; /* '/CAN Unpack' */ - real_T CANUnpack_o2; /* '/CAN Unpack' */ - real_T CANUnpack_o3; /* '/CAN Unpack' */ - real_T CANUnpack_o4; /* '/CAN Unpack' */ - real_T CANUnpack_o5; /* '/CAN Unpack' */ - real_T CANUnpack_o6; /* '/CAN Unpack' */ - real_T CANUnpack_o7; /* '/CAN Unpack' */ - real_T CANUnpack_o8; /* '/CAN Unpack' */ - real_T CANUnpack_o9; /* '/CAN Unpack' */ - real_T CANUnpack_o10; /* '/CAN Unpack' */ - real_T CANUnpack_o11; /* '/CAN Unpack' */ - real_T CANUnpack_o12; /* '/CAN Unpack' */ - real_T CANUnpack_o13; /* '/CAN Unpack' */ - real_T CANUnpack_o14; /* '/CAN Unpack' */ - real_T CANUnpack_o15; /* '/CAN Unpack' */ - real_T CANUnpack_o16; /* '/CAN Unpack' */ - real_T CANUnpack_o17; /* '/CAN Unpack' */ - real_T CANUnpack_o18; /* '/CAN Unpack' */ - real_T CANUnpack_o19; /* '/CAN Unpack' */ - real_T CANUnpack_o20; /* '/CAN Unpack' */ - real_T CANUnpack_o21; /* '/CAN Unpack' */ - real_T CANUnpack_o22; /* '/CAN Unpack' */ - real_T CANUnpack_o23; /* '/CAN Unpack' */ - real_T CANUnpack_o24; /* '/CAN Unpack' */ - real_T CANUnpack_o25; /* '/CAN Unpack' */ - real_T CANUnpack_o26; /* '/CAN Unpack' */ - real_T CANUnpack_o27; /* '/CAN Unpack' */ - real_T CANUnpack_o28; /* '/CAN Unpack' */ - real_T CANUnpack_o29; /* '/CAN Unpack' */ - real_T CANUnpack_o30; /* '/CAN Unpack' */ - real_T CANUnpack_o31; /* '/CAN Unpack' */ - real_T CANUnpack_o32; /* '/CAN Unpack' */ - real_T CANUnpack_o33; /* '/CAN Unpack' */ - real_T CANUnpack_o34; /* '/CAN Unpack' */ - real_T CANUnpack_o35; /* '/CAN Unpack' */ - real_T CANUnpack_o36; /* '/CAN Unpack' */ - real_T CANUnpack_o37; /* '/CAN Unpack' */ - real_T CANUnpack_o38; /* '/CAN Unpack' */ - real_T CANUnpack_o39; /* '/CAN Unpack' */ - real_T CANUnpack_o40; /* '/CAN Unpack' */ - real_T CANUnpack_o41; /* '/CAN Unpack' */ - real_T CANUnpack_o42; /* '/CAN Unpack' */ - real_T CANUnpack_o43; /* '/CAN Unpack' */ - real_T CANUnpack_o44; /* '/CAN Unpack' */ - real_T CANUnpack_o45; /* '/CAN Unpack' */ - real_T CANUnpack_o46; /* '/CAN Unpack' */ - real_T CANUnpack_o47; /* '/CAN Unpack' */ - real_T CANUnpack_o48; /* '/CAN Unpack' */ - real_T CANUnpack_o49; /* '/CAN Unpack' */ - real_T CANUnpack_o50; /* '/CAN Unpack' */ - real_T CANUnpack_o51; /* '/CAN Unpack' */ - real_T CANUnpack_o52; /* '/CAN Unpack' */ - real_T CANUnpack_o53; /* '/CAN Unpack' */ - real_T CANUnpack_o54; /* '/CAN Unpack' */ - real_T CANUnpack_o55; /* '/CAN Unpack' */ - real_T CANUnpack_o56; /* '/CAN Unpack' */ - real_T CANUnpack_o57; /* '/CAN Unpack' */ - real_T CANUnpack_o58; /* '/CAN Unpack' */ + uint8_T In1[8]; /* '/In1' */ } B_socTouchDisplay_T; /* Block states (default storage) for system '' */ @@ -105,8 +46,6 @@ typedef struct { uint32_T temporalCounter_i1; /* '/Chart' */ uint32_T durationCounter_1_g; /* '/Chart' */ uint32_T durationCounter_2; /* '/Chart' */ - int_T CANUnpack_ModeSignalID; /* '/CAN Unpack' */ - int_T CANUnpack_StatusPortID; /* '/CAN Unpack' */ uint8_T is_active_c1_socTouchDisplay;/* '/Chart1' */ uint8_T is_c1_socTouchDisplay; /* '/Chart1' */ uint8_T is_active_c3_socTouchDisplay;/* '/Chart' */ @@ -119,6 +58,7 @@ typedef struct { real_T ip_u32TouchDuration_msec; /* '/ip_u32TouchDuration_msec' */ real_T ip_u32DisplayDuration_msec; /* '/ip_u32DisplayDuration_msec' */ CAN_MESSAGE_BUS Input[MAX_CAN_MESSAGE_INSTANCE];/* '/Input' */ + uint32_T ip_u32canId; /* '/ip_u32canId' */ } ExtU_socTouchDisplay_T; /* External outputs (root outports fed by signals with default storage) */ @@ -182,6 +122,7 @@ extern RT_MODEL_socTouchDisplay_T *const socTouchDisplay_M; * '' : 'socTouchDisplay/Chart1' * '' : 'socTouchDisplay/canMsgDecode' * '' : 'socTouchDisplay/displayData' + * '' : 'socTouchDisplay/canMsgDecode/Enabled Subsystem' */ #endif /* RTW_HEADER_socTouchDisplay_h_ */ diff --git a/ivec_APP/src/socTouchDisplay.c b/ivec_APP/src/socTouchDisplay.c index d919bf0..746e117 100644 --- a/ivec_APP/src/socTouchDisplay.c +++ b/ivec_APP/src/socTouchDisplay.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'socTouchDisplay'. * - * Model version : 1.104 + * Model version : 1.111 * Simulink Coder version : 23.2 (R2023b) 01-Aug-2023 - * C/C++ source code generated on : Mon Oct 28 16:04:13 2024 + * C/C++ source code generated on : Thu Nov 7 22:32:36 2024 * * Target selection: ert.tlc * Embedded hardware selection: Intel->x86-64 (Windows64) @@ -16,7 +16,6 @@ #include "socTouchDisplay.h" #include "rtwtypes.h" #include -#include "rt_nonfinite.h" #include "socTouchDisplay_private.h" /* Named constants for Chart: '/Chart' */ @@ -48,11 +47,12 @@ RT_MODEL_socTouchDisplay_T *const socTouchDisplay_M = &socTouchDisplay_M_; /* Model step function */ void socTouchDisplay_step(void) { - real_T tmp; + int32_T i; int32_T s3_iter; - uint32_T tmp_0; + uint32_T tmp; uint8_T rtb_Cast; boolean_T Memory_PreviousInput; + boolean_T rtb_Equal; boolean_T rtb_Memory; /* Outputs for Iterator SubSystem: '/canMsgDecode' incorporates: @@ -71,842 +71,38 @@ void socTouchDisplay_step(void) &socTouchDisplay_B.Selector.Length, &socTouchDisplay_B.Selector.Data[0], &socTouchDisplay_B.SFunction); - /* Memory: '/Memory' */ - rtb_Memory = Memory_PreviousInput; - - /* S-Function (scanunpack): '/CAN Unpack' */ - { - /* S-Function (scanunpack): '/CAN Unpack' */ - if ((8 == socTouchDisplay_B.SFunction.Length) && - (socTouchDisplay_B.SFunction.ID != INVALID_CAN_ID) ) { - if ((220839530 == socTouchDisplay_B.SFunction.ID) && (1U == - socTouchDisplay_B.SFunction.Extended) ) { - { - /* --------------- START Unpacking signal 16 ------------------ - * startBit = 0 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - { - real_T outValue = 0; - - { - uint8_T unpackedValue = 0; - - { - uint8_T tempValue = (uint8_T) (0); - - { - tempValue = tempValue | (uint8_T) - (socTouchDisplay_B.SFunction.Data[0]); - } - - unpackedValue = tempValue; - } - - outValue = (real_T) (unpackedValue); - } - - { - real_T result = (real_T) outValue; - socTouchDisplay_B.CANUnpack_o17 = result; - } - } - - /* --------------- START Unpacking signal 0 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 1 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 2 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 3 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 4 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 5 ------------------ - * startBit = 56 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 6 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 7 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 8 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 9 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 10 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 11 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 12 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 13 ------------------ - * startBit = 56 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 14 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 15 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 17 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 18 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 19 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 20 ------------------ - * startBit = 48 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 21 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 22 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 23 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 24 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 25 ------------------ - * startBit = 24 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 26 ------------------ - * startBit = 32 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 27 ------------------ - * startBit = 40 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 28 ------------------ - * startBit = 8 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 29 ------------------ - * startBit = 9 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 30 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 31 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 32 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 33 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 34 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 35 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 36 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 37 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 38 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 39 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 40 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 41 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 42 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 43 ------------------ - * startBit = 16 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 44 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 45 ------------------ - * startBit = 48 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 46 ------------------ - * startBit = 32 - * length = 16 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 47 ------------------ - * startBit = 9 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 48 ------------------ - * startBit = 8 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 49 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = SIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 50 ------------------ - * startBit = 10 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 51 ------------------ - * startBit = 11 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 52 ------------------ - * startBit = 13 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 53 ------------------ - * startBit = 14 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 54 ------------------ - * startBit = 15 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 55 ------------------ - * startBit = 16 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* Perform the mode dependency check to value */ - if (socTouchDisplay_B.CANUnpack_o17 == 2.0) { - { - real_T outValue = 0; - - { - uint8_T unpackedValue = 0; - - { - uint8_T tempValue = (uint8_T) (0); - - { - tempValue = tempValue | (uint8_T) - (socTouchDisplay_B.SFunction.Data[2]); - } - - unpackedValue = tempValue; - } - - outValue = (real_T) (unpackedValue); - } - - { - real_T result = (real_T) outValue; - socTouchDisplay_B.CANUnpack_o56 = result; - } - } - } - - /* --------------- START Unpacking signal 56 ------------------ - * startBit = 8 - * length = 8 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - - /* --------------- START Unpacking signal 57 ------------------ - * startBit = 12 - * length = 1 - * desiredSignalByteLayout = BIGENDIAN - * dataType = UNSIGNED - * factor = 1.0 - * offset = 0.0 - * -----------------------------------------------------------------------*/ - /* - * Signal is not connected or connected to terminator. - * No unpacking code generated. - */ - } - } + /* RelationalOperator: '/Equal' incorporates: + * Inport: '/ip_u32canId' + */ + rtb_Equal = (socTouchDisplay_B.SFunction.ID == socTouchDisplay_U.ip_u32canId); + + /* Outputs for Enabled SubSystem: '/Enabled Subsystem' incorporates: + * EnablePort: '/Enable' + */ + /* Logic: '/AND' incorporates: + * Constant: '/Constant' + * RelationalOperator: '/Equal1' + */ + if ((socTouchDisplay_B.SFunction.Data[0] == 2) && rtb_Equal) { + for (i = 0; i < 8; i++) { + /* SignalConversion generated from: '/In1' */ + socTouchDisplay_B.In1[i] = socTouchDisplay_B.SFunction.Data[i]; } } + /* End of Logic: '/AND' */ + /* End of Outputs for SubSystem: '/Enabled Subsystem' */ + /* DataTypeConversion: '/Cast' */ - tmp = floor(socTouchDisplay_B.CANUnpack_o56); - if (rtIsNaN(tmp) || rtIsInf(tmp)) { - tmp = 0.0; - } else { - tmp = fmod(tmp, 256.0); - } + rtb_Cast = socTouchDisplay_B.In1[2]; - if (tmp < 0.0) { - rtb_Cast = (uint8_T)-(int8_T)(uint8_T)-tmp; - } else { - rtb_Cast = (uint8_T)tmp; - } - - /* End of DataTypeConversion: '/Cast' */ + /* Memory: '/Memory' */ + rtb_Memory = Memory_PreviousInput; /* Update for Memory: '/Memory' incorporates: * Logic: '/OR' - * RelationalOperator: '/Equal' */ - Memory_PreviousInput = ((socTouchDisplay_B.SFunction.ID == 220839530U) || - Memory_PreviousInput); + Memory_PreviousInput = (rtb_Equal || Memory_PreviousInput); } /* End of Outputs for SubSystem: '/canMsgDecode' */ @@ -1012,9 +208,9 @@ void socTouchDisplay_step(void) socTouchDisplay_DW.durationCounter_2 = 0U; } - tmp_0 = (uint32_T)ceil(socTouchDisplay_U.ip_u32TouchDuration_msec); - if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_2 * 100) > - tmp_0) && Memory_PreviousInput) { + tmp = (uint32_T)ceil(socTouchDisplay_U.ip_u32TouchDuration_msec); + if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_2 * 100) > tmp) + && Memory_PreviousInput) { socTouchDisplay_DW.temporalCounter_i1 = 0U; socTouchDisplay_DW.is_c3_socTouchDisplay = socTouchDisplay_IN_displaySoc; @@ -1026,7 +222,7 @@ void socTouchDisplay_step(void) } if (((uint32_T)((int32_T)socTouchDisplay_DW.durationCounter_1_g * 100) > - tmp_0) && (!Memory_PreviousInput)) { + tmp) && (!Memory_PreviousInput)) { socTouchDisplay_DW.temporalCounter_i1 = 0U; socTouchDisplay_DW.is_c3_socTouchDisplay = socTouchDisplay_IN_displayError; @@ -1114,18 +310,7 @@ void socTouchDisplay_step(void) /* Model initialize function */ void socTouchDisplay_initialize(void) { - /* Registration code */ - - /* initialize non-finites */ - rt_InitInfAndNaN(sizeof(real_T)); - - /* SystemInitialize for Iterator SubSystem: '/canMsgDecode' */ - - /* Start for S-Function (scanunpack): '/CAN Unpack' */ - - /*-----------S-Function Block: /CAN Unpack -----------------*/ - - /* End of SystemInitialize for SubSystem: '/canMsgDecode' */ + /* (no initialization code required) */ } /* Model terminate function */ diff --git a/ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h b/ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h index ec6e14a..9493a30 100644 --- a/ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h +++ b/ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h @@ -67,4 +67,4 @@ IVEC_EcuCommonErr_e xECU_CANDeInit(MCAN_Regs* MCAN); IVEC_EcuCommonErr_e xECU_WriteDataOverCAN(uint8_t* pucBuf, uint32_t ulId, int retCode, uint32_t BufNum); IVEC_EcuCommonErr_e xECU_CANGetData(can_buff_t *xBuff); IVEC_EcuCommonErr_e xECU_CanReInit(MCAN_Regs* MCAN,uint16_t speed); - +IVEC_EcuCommonErr_e xECU_GetCanStatus(MCAN_Regs* MCAN, uint16_t speed); diff --git a/ivec_ECU/ivec_ecu_can/src/ivec_ecu_can.c b/ivec_ECU/ivec_ecu_can/src/ivec_ecu_can.c index e69fd79..5ef705e 100644 --- a/ivec_ECU/ivec_ecu_can/src/ivec_ecu_can.c +++ b/ivec_ECU/ivec_ecu_can/src/ivec_ecu_can.c @@ -28,49 +28,18 @@ IVEC_EcuCommonErr_e xECU_WriteDataOverCAN(uint8_t* pucBuf, uint32_t ulId, int re { IVEC_EcuCommonErr_e l_xFuncStatus = commonECU_WRITE_FAIL; uint8_t l_i32Ret; -// if ( (retCode >= 0) && (ulId > 0x00) && (ulId < 0xffffffff) ) -// { - DL_MCAN_TxBufElement xFrame = {0}; - - xFrame.dlc = (uint8_t)retCode; - xFrame.xtd = (ulId > 0x7ff) ? 1U : 0U; - if(xFrame.xtd == 0) - { - xFrame.id = ulId << 18U; //txMsg.id = ((uint32_t)(0x9)) << 18U; - } - else - xFrame.id = ulId; //txMsg.id = ((uint32_t)(0x9)) << 18U; - - xFrame.rtr = 0U; - /* ESI bit in CAN FD format depends only on error passive flag. */ - xFrame.esi = 0U; - /* CAN FD frames transmitted with bit rate switching. */ - xFrame.brs = 0U; - /* Frame transmitted in CAN FD format. */ - xFrame.fdf = 0U; - /* Store Tx events. */ - xFrame.efc = 1U; - /* Message Marker. */ - xFrame.mm = 0xAAU; - - uint16_t TxData[DL_MCAN_MAX_PAYLOAD_BYTES]; // Define a buffer for the CAN payload data - for (int i = 0; i < retCode; i++) { - TxData[i] = pucBuf[PKT_HEADER + i]^0x0000; - } - - - int Bytes = retCode; - //MCAL_MCANTx(MCAN_Regs *MCAN, uint32_t u32ID ,uint16_t *TxData, uint32_t BufNum, uint32_t Bytes) - l_i32Ret = xMCAL_MCANTx(CANFD0, ulId, TxData, BufNum, Bytes); - if(l_i32Ret == IVEC_MCAL_STATUS_SUCCESS) - { - l_xFuncStatus = commonECU_SUCCESS; - } - - //} + uint16_t TxData[8] = {0}; // Define a buffer for the CAN payload data + for (int i = 0; i < retCode; i++) { + TxData[i] = (uint16_t)(pucBuf[i] ^ 0x0000); + } + int Bytes = retCode; + l_i32Ret = xMCAL_MCANTx(CANFD0, ulId, TxData, BufNum, Bytes); + if(l_i32Ret == IVEC_MCAL_STATUS_SUCCESS) + { + l_xFuncStatus = commonECU_SUCCESS; + } return l_xFuncStatus; - } IVEC_EcuCommonErr_e xECU_CANGetData(can_buff_t *pxBuff) @@ -128,3 +97,9 @@ IVEC_EcuCommonErr_e xECU_CANDeInit(MCAN_Regs* MCAN) return l_xFuncStatus; } +IVEC_EcuCommonErr_e xECU_GetCanStatus(MCAN_Regs* MCAN, uint16_t speed) +{ + char l_ucErrorString[32] = {0}; + if( xMCAL_getMCAN_ErrorStatus(&l_ucErrorString) == IVEC_MCAL_STATUS_ERROR ) + xECU_CanReInit(MCAN, speed); +} diff --git a/ivec_ECU/ivec_ecu_uart/src/ivec_ecu_uart.c b/ivec_ECU/ivec_ecu_uart/src/ivec_ecu_uart.c index db0d850..645e643 100644 --- a/ivec_ECU/ivec_ecu_uart/src/ivec_ecu_uart.c +++ b/ivec_ECU/ivec_ecu_uart/src/ivec_ecu_uart.c @@ -5,8 +5,8 @@ //#include "ivec_mcal_uart.h" #define LOG_STRING "ivec-ecu-UART" -#define CAN_UART_BUFFER_MAX_SIZE 2048 -#define DATA_PACKET_TIMEOUT 100 +#define CAN_UART_BUFFER_MAX_SIZE 4096 +#define DATA_PACKET_TIMEOUT 1 CmplxFifoQueueHandle_s __gprv_MyEcuUARTResponseQueue = { 0 }; @@ -157,16 +157,15 @@ IVEC_EcuCommonErr_e xECU_UARTGetData(McalUartHandle_s *prvUartHandle, uint8_t* p goto exit; } - int length = 2; uint8_t ijk = 0; - + int l_u32Len = 0; uint32_t u32CommTimestamp = i32MCAL_getTicks(); while(((i32MCAL_getTicks()-u32CommTimestamp) <= timeout+1) && (ijk < len)) { if(!u8CMPLX_FifoQueueEmpty(&__gprv_MyEcuUARTResponseQueue)){ - if( u8CMPLX_FifoDequeue(&__gprv_MyEcuUARTResponseQueue, &pucBuffer[ijk], &length, 0) == 1 ) + if( u8CMPLX_FifoDequeue(&__gprv_MyEcuUARTResponseQueue, &pucBuffer[ijk], &l_u32Len, 0) == 1 ) ijk++; } } diff --git a/ivec_RTE/src/ivec_rte.c b/ivec_RTE/src/ivec_rte.c index 6028e79..900bb74 100644 --- a/ivec_RTE/src/ivec_rte.c +++ b/ivec_RTE/src/ivec_rte.c @@ -17,6 +17,8 @@ McalUartHandle_s g_xUartHandle; uint32_t g_u32UartSpeed = 0; xCAN_baud_t g_u16CanSpeed = 0; +uint8_t g_pu8Buf[MAX_PACKET_LENGTH] = {0}; +volatile uint32_t g_u32CanId = 0x1fffffff; #define MAX_FILTERS 10 uint32_t maskValues[MAX_FILTERS]; @@ -30,6 +32,7 @@ uint16_t extendedFilter = 0; uint16_t standardFilter = 0; static uint8_t __gprv_u8Idx = 0; +static uint8_t __gprv_u8Buf = 0; extern ExtU_socTouchDisplay_T socTouchDisplay_U; extern ExtY_socTouchDisplay_T socTouchDisplay_Y; @@ -171,6 +174,7 @@ void vRTE_MatlabRun(void) socTouchDisplay_U.in_bTouchDetected = (u32MCAL_gpioRead(GPIOB, DL_GPIO_PIN_17) == DL_GPIO_PIN_17) ? 1 : 0; socTouchDisplay_U.ip_u32DisplayDuration_msec = 2000; socTouchDisplay_U.ip_u32TouchDuration_msec = 100; + socTouchDisplay_U.ip_u32canId = g_u32CanId; socTouchDisplay_step(); @@ -184,9 +188,23 @@ void vRTE_MatlabRun(void) tm1650_showDot(TM_1650_DIG_2,false); tm1650_showDot(TM_1650_DIG_3,false); - tm1650_showNum(TM_1650_DIG_3, socTouchDisplay_Y.op_u8OnesPlace); - tm1650_showNum(TM_1650_DIG_2, socTouchDisplay_Y.op_u8TensPlace); - tm1650_showNum(TM_1650_DIG_1, socTouchDisplay_Y.op_u8HundredsPlace); + if( socTouchDisplay_Y.op_u8HundredsPlace == 1 && \ + socTouchDisplay_Y.op_u8TensPlace == 0 && \ + socTouchDisplay_Y.op_u8OnesPlace == 0) + { + char l_cData = 'F'; + tm1650_showAlphabet(TM_1650_DIG_2, (char*)&l_cData); + l_cData = 'C'; + tm1650_showAlphabet(TM_1650_DIG_3, (char*)&l_cData); + + } + else + { + tm1650_showNum(TM_1650_DIG_3, socTouchDisplay_Y.op_u8OnesPlace); + tm1650_showNum(TM_1650_DIG_2, socTouchDisplay_Y.op_u8TensPlace); + } +// tm1650_showNum(TM_1650_DIG_1, socTouchDisplay_Y.op_u8HundredsPlace); + } if( socTouchDisplay_Y.op_bErrorStatus ) { @@ -205,7 +223,6 @@ void vRTE_MatlabRun(void) { tm1650_displaySwitch(TM_1650_Screen_OFF); } - } void vRTE_InitUARTCANEcho(void) @@ -354,18 +371,18 @@ void vCanConfigFilter() { void vRTE_UARTDataProcess(void) { PacketRetCode_t retCode = PACKET_FAIL; - uint8_t pucBuf[MAX_PACKET_LENGTH] = {0}; - uint32_t ulId = 0xffffffff; + uint32_t ulId = 0x1fffffff; - retCode= xECU_ReadCANDataOverUART(&g_xUartHandle,pucBuf,&ulId); + retCode= xECU_ReadCANDataOverUART(&g_xUartHandle,g_pu8Buf,&ulId); + ulId &= 0x1fffffff; if(retCode > -1) { if(retCode > 0 && ulId == 0x00) { uint32_t baudrate = 0; - uint8_t mode = pucBuf[PKT_HEADER]; - memcpy(&baudrate, &pucBuf[PKT_HEADER+1], (uint32_t)retCode); - vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x01, pucBuf, 0); + uint8_t mode = g_pu8Buf[PKT_HEADER]; + memcpy(&baudrate, &g_pu8Buf[PKT_HEADER+1], (uint32_t)retCode); + vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x01, g_pu8Buf, 0); if( mode == 0 ) { g_u32UartSpeed = baudrate; @@ -408,32 +425,46 @@ void vRTE_UARTDataProcess(void) isExtended = (maskId > 0x7FF); // Standard IDs are <= 0x7FF vCanFilterMaskSaveVal((pucBuf[PKT_HEADER+1] - 1), maskId, isExtended); } + else if (mode == 100) + { + g_u32CanId = baudrate; + return; + } + vMCAL_DelayTicks(100); - vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x01, pucBuf, 0); + vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x01, g_pu8Buf, 0); } if ( retCode == 0 && ulId == 0){ - vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x0, pucBuf, 0); + vECU_InitiateUartToCanTransmit(&g_xUartHandle, 0x0, g_pu8Buf, 0); } - if ( retCode >= 0 && ulId > 0x00 && ulId < 0xffffffff ) + if ( retCode >= 0 && (ulId > 0x00 && ulId < 0xffffffff) ) { - xECU_WriteDataOverCAN(pucBuf, ulId, retCode, 0); + __gprv_u8Buf = (__gprv_u8Buf + 1) % 3; + xECU_WriteDataOverCAN(&g_pu8Buf[PKT_HEADER], ulId, retCode, __gprv_u8Buf); } } - } + void vRTE_CANDataProcess(void) { - IVEC_EcuCommonErr_e retCode = commonECU_FAIL; can_buff_t xBuff = { 0x00 }; - - - retCode = xECU_CANGetData(&xBuff); - if(retCode == commonECU_SUCCESS) + volatile uint8_t l_u8TxBurstMessages = 0; + while( xECU_CANGetData(&xBuff) == commonECU_SUCCESS ) { + if( (xBuff.id == 0x16) && (xBuff.data[0] = 'V') && \ + (xBuff.data[1] == 'E') && (xBuff.data[2] == 'C')) + { + xMCAL_SoftReset(); + } vECU_InitiateUartToCanTransmit(&g_xUartHandle, (uint32_t)xBuff.id, (uint8_t*)&xBuff.data[0], (uint8_t)xBuff.length); socTouchDisplay_U.Input[__gprv_u8Idx].ID = xBuff.id; socTouchDisplay_U.Input[__gprv_u8Idx].Length = xBuff.length; memcpy(&socTouchDisplay_U.Input[__gprv_u8Idx].Data[0], &xBuff.data[0], 8); __gprv_u8Idx = (__gprv_u8Idx + 1) % MAX_CAN_MESSAGE_INSTANCE; + if(l_u8TxBurstMessages < 16) + l_u8TxBurstMessages++; + else + break; } + xECU_GetCanStatus(CANFD0, g_u16CanSpeed); } diff --git a/main.c b/main.c index f2ac549..d28f58f 100644 --- a/main.c +++ b/main.c @@ -5,7 +5,7 @@ * @ Remove (_N) from the end of definition to define * @ Content added by AS - MCAL function for ADC, ADC with DMA, Periodic Timer, PWM, SysTick and Input Capture */ - +#include "ti_msp_dl_config.h" #include "../utils/utils.h" #include "../Core/Include/gpio.h" #include "../Core/Include/ivec_mcal_adc_dma.h" @@ -14,12 +14,9 @@ #include "../Core/Include/ivec_mcal_spi.h" #include "../Core/Include/ivec_mcal_i2c.h" #include "../Core/Include/ivec_mcal_uart.h" -#include "ti_msp_dl_config.h" #include "string.h" #include "ivec_rte.h" - - void vMCAL_TimerCallback(void) { //vRTE_MatlabRun(); @@ -35,12 +32,12 @@ static void __prv_TimerConfig(void) NVIC_EnableIRQ(TIMA0_INT_IRQn); } - - int main(void) { + __enable_irq(); + volatile DL_SYSCTL_RESET_CAUSE l_xResetCause = DL_SYSCTL_getResetCause(); xMCAL_McuInit(); - xMCAL_SYSCTL_INIT(HFXT,SLEEP0); + xMCAL_SYSCTL_INIT(HFXT,STANDBY0); xMCAL_SYSTICK_INIT(Period_1ms); __prv_TimerConfig(); diff --git a/mspm0g3507.cmd b/mspm0g3507.cmd index 9bf7d7e..a30eea4 100644 --- a/mspm0g3507.cmd +++ b/mspm0g3507.cmd @@ -1,33 +1,33 @@ /***************************************************************************** - Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/ + Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/ - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright + Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. Neither the name of Texas Instruments Incorporated nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ diff --git a/mspm0g3507.lds b/mspm0g3507.lds new file mode 100644 index 0000000..ccb3787 --- /dev/null +++ b/mspm0g3507.lds @@ -0,0 +1,169 @@ +/*Entry Point +ENTRY(Reset_Handler) +/* Generate a link error if heap and stack don't fit into RAM */ +_Min_Heap_Size = 0; /* required amount of heap */ +_Min_Stack_Size = 0x000012E8; /* required amount of stack */ + +/* Specify the memory areas */ +MEMORY +{ + FLASH (RX) : ORIGIN = 0x00008000, LENGTH = 0x00018000 + SRAM (RWX) : ORIGIN = 0x20200000, LENGTH = 0x00008000 + BCR_CONFIG (R) : ORIGIN = 0x41C00000, LENGTH = 0x00000080 + BSL_CONFIG (R) : ORIGIN = 0x41C00100, LENGTH = 0x00000080 +} + +/* Note: SRAM length must match MPPC/MEMSS config! Please edit it manually. */ + +REGION_ALIAS("REGION_TEXT", FLASH); +REGION_ALIAS("REGION_PREINIT_ARRAY", FLASH); +REGION_ALIAS("REGION_INIT_ARRAY", FLASH); +REGION_ALIAS("REGION_FINI_ARRAY", FLASH); +REGION_ALIAS("REGION_BSS", SRAM); +REGION_ALIAS("REGION_NOINIT", SRAM); +REGION_ALIAS("REGION_DATA", SRAM); +REGION_ALIAS("REGION_STACK", SRAM); +REGION_ALIAS("REGION_HEAP", SRAM); +REGION_ALIAS("REGION_TEXT_RAM", SRAM); +REGION_ALIAS("REGION_ARM_EXIDX", FLASH); +REGION_ALIAS("REGION_ARM_EXTAB", FLASH); + +/* Define output sections */ +SECTIONS +{ + /* section for the interrupt vector area */ + PROVIDE (_intvecs_base_address = + DEFINED(_intvecs_base_address) ? _intvecs_base_address : 0x00008000); + + .intvecs (_intvecs_base_address) : AT (_intvecs_base_address) { + KEEP (*(.intvecs)) + } > REGION_TEXT + + PROVIDE (_vtable_base_address = + DEFINED(_vtable_base_address) ? _vtable_base_address : 0x20200000); + + .vtable (_vtable_base_address) (NOLOAD) : AT (_vtable_base_address) { + KEEP (*(.vtable)) + } > REGION_DATA + + .text : { + CREATE_OBJECT_SYMBOLS + KEEP (*(.text)) + . = ALIGN(0x8); + *(.text.*) + . = ALIGN(0x8); + KEEP (*(.ctors)) + . = ALIGN(0x8); + KEEP (*(.dtors)) + . = ALIGN(0x8); + KEEP (*(.init)) + . = ALIGN(0x8); + KEEP (*(.fini*)) + . = ALIGN(0x8); + } > REGION_TEXT AT> REGION_TEXT + + .ramfunc : { + __ramfunct_load__ = LOADADDR (.ramfunc); + __ramfunct_start__ = .; + *(.ramfunc) + . = ALIGN(0x8); + __ramfunct_end__ = .; + } > REGION_TEXT_RAM AT> REGION_TEXT + + .rodata : { + *(.rodata) + . = ALIGN(0x8); + *(.rodata.*) + . = ALIGN(0x8); + } > REGION_TEXT AT> REGION_TEXT + + .preinit_array : { + PROVIDE_HIDDEN (__preinit_array_start = .); + KEEP (*(.preinit_array*)); + PROVIDE_HIDDEN (__preinit_array_end = .); + } > REGION_PREINIT_ARRAY AT> REGION_TEXT + + .init_array : { + . = ALIGN(0x8); + PROVIDE_HIDDEN (__init_array_start = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array*)) + PROVIDE_HIDDEN (__init_array_end = .); + } > REGION_INIT_ARRAY AT> REGION_TEXT + + .fini_array : { + . = ALIGN(0x8); + PROVIDE_HIDDEN (__fini_array_start = .); + KEEP (*(SORT(.fini_array.*))) + KEEP (*(.fini_array*)) + PROVIDE_HIDDEN (__fini_array_end = .); + . = ALIGN(0x8); + } > REGION_FINI_ARRAY AT> REGION_TEXT + + .ARM.exidx : { + __exidx_start = .; + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + __exidx_end = .; + } > REGION_ARM_EXIDX AT> REGION_ARM_EXIDX + + .ARM.extab : { + . = ALIGN(0x8); + KEEP (*(.ARM.extab* .gnu.linkonce.armextab.*)) + . = ALIGN(0x8); + } > REGION_ARM_EXTAB AT> REGION_ARM_EXTAB + + __etext = .; + + .data : { + __data_load__ = LOADADDR (.data); + __data_start__ = .; + KEEP (*(.data)) + KEEP (*(.data*)) + . = ALIGN (8); + __data_end__ = .; + } > REGION_DATA AT> REGION_TEXT + + .bss : { + __bss_start__ = .; + *(.shbss) + KEEP (*(.bss)) + *(.bss.*) + *(COMMON) + . = ALIGN (8); + __bss_end__ = .; + } > REGION_BSS AT> REGION_BSS + + .noinit : { + /* place all symbols in input sections that start with .noinit */ + KEEP(*(*.noinit*)) + . = ALIGN (8); + } > REGION_NOINIT AT> REGION_NOINIT + + .heap : { + __heap_start__ = .; + end = __heap_start__; + _end = end; + __end = end; + KEEP (*(.heap)) + __heap_end__ = .; + __HeapLimit = __heap_end__; + } > REGION_HEAP AT> REGION_HEAP + + .stack (NOLOAD) : ALIGN(0x8) { + _stack = .; + KEEP(*(.stack)) + } > REGION_STACK AT> REGION_STACK + + .BCRConfig : + { + KEEP(*(.BCRConfig)) + } > BCR_CONFIG + + .BSLConfig : + { + KEEP(*(.BSLConfig)) + } > BSL_CONFIG + + __StackTop = ORIGIN(REGION_STACK) + LENGTH(REGION_STACK); + PROVIDE(__stack = __StackTop); +} diff --git a/mspm0g3507_mcal.syscfg b/mspm0g3507_mcal.syscfg index f880c3e..4157cd6 100644 --- a/mspm0g3507_mcal.syscfg +++ b/mspm0g3507_mcal.syscfg @@ -45,6 +45,7 @@ pinFunction4.HFCLKMonitor = true; pinFunction4.enable = true; CAPTURE1.$name = "CAPTURE_0"; +CAPTURE1.timerClkPrescale = 2; CAPTURE1.ccp0PinConfig.$name = "ti_driverlib_gpio_GPIOPinGeneric4"; const Board = scripting.addModule("/ti/driverlib/Board", {}, false); @@ -99,6 +100,7 @@ UART1.txPinConfig.$name = "ti_driverlib_gpio_GPIOPinGeneric2"; UART1.rxPinConfig.$name = "ti_driverlib_gpio_GPIOPinGeneric3"; ProjectConfig.deviceSpin = "MSPM0G3507"; +ProjectConfig.genLinker = false; /** * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future diff --git a/startup_mspm0g350x_gcc.c b/startup_mspm0g350x_gcc.c new file mode 100644 index 0000000..7046a6e --- /dev/null +++ b/startup_mspm0g350x_gcc.c @@ -0,0 +1,222 @@ +/***************************************************************************** + + Copyright (C) 2023 Texas Instruments Incorporated - http://www.ti.com/ + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the + distribution. + + Neither the name of Texas Instruments Incorporated nor the names of + its contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +*****************************************************************************/ + +#include + +/* Entry point for the application. */ +extern void SystemInit(void); +extern int main( void ); + +extern uint32_t __data_load__; +extern uint32_t __data_start__; +extern uint32_t __data_end__; +extern uint32_t __ramfunct_load__; +extern uint32_t __ramfunct_start__; +extern uint32_t __ramfunct_end__; +extern uint32_t __bss_start__; +extern uint32_t __bss_end__; +extern uint32_t __StackTop; + +typedef void( *pFunc )( void ); + +/* Forward declaration of the default fault handlers. */ +void Default_Handler(void); +extern void Reset_Handler (void) __attribute__((weak)); +extern void __libc_init_array(void); +extern void _init (void) __attribute__((weak, alias("initStub"))); +void initStub(void){;} + +/* Processor Exceptions */ +extern void NMI_Handler (void) __attribute__((weak, alias("Default_Handler"))); +extern void HardFault_Handler (void) __attribute__((weak, alias("Default_Handler"))); +extern void SVC_Handler (void) __attribute__((weak, alias("Default_Handler"))); +extern void PendSV_Handler (void) __attribute__((weak, alias("Default_Handler"))); +extern void SysTick_Handler (void) __attribute__((weak, alias("Default_Handler"))); + +/* Device Specific Interrupt Handlers */ +extern void GROUP0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void GROUP1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMG8_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void UART3_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void ADC0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void ADC1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void CANFD0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void DAC0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void SPI0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void SPI1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void UART1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void UART2_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void UART0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMG0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMG6_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMA0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMA1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMG7_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void TIMG12_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void I2C0_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void I2C1_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void AES_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void RTC_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); +extern void DMA_IRQHandler (void) __attribute__((weak, alias("Default_Handler"))); + + +/* Interrupt vector table. Note that the proper constructs must be placed on this to */ +/* ensure that it ends up at physical address 0x0000.0000 or at the start of */ +/* the program if located at a start address other than 0. */ +void (* const interruptVectors[])(void) __attribute__ ((used)) __attribute__ ((section (".intvecs"))) = +{ + (pFunc)&__StackTop, /* The initial stack pointer */ + Reset_Handler, /* The reset handler */ + NMI_Handler, /* The NMI handler */ + HardFault_Handler, /* The hard fault handler */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + 0, /* Reserved */ + SVC_Handler, /* SVCall handler */ + 0, /* Reserved */ + 0, /* Reserved */ + PendSV_Handler, /* The PendSV handler */ + SysTick_Handler, /* SysTick handler */ + GROUP0_IRQHandler, /* GROUP0 interrupt handler */ + GROUP1_IRQHandler, /* GROUP1 interrupt handler */ + TIMG8_IRQHandler, /* TIMG8 interrupt handler */ + UART3_IRQHandler, /* UART3 interrupt handler */ + ADC0_IRQHandler, /* ADC0 interrupt handler */ + ADC1_IRQHandler, /* ADC1 interrupt handler */ + CANFD0_IRQHandler, /* CANFD0 interrupt handler */ + DAC0_IRQHandler, /* DAC0 interrupt handler */ + 0, /* Reserved */ + SPI0_IRQHandler, /* SPI0 interrupt handler */ + SPI1_IRQHandler, /* SPI1 interrupt handler */ + 0, /* Reserved */ + 0, /* Reserved */ + UART1_IRQHandler, /* UART1 interrupt handler */ + UART2_IRQHandler, /* UART2 interrupt handler */ + UART0_IRQHandler, /* UART0 interrupt handler */ + TIMG0_IRQHandler, /* TIMG0 interrupt handler */ + TIMG6_IRQHandler, /* TIMG6 interrupt handler */ + TIMA0_IRQHandler, /* TIMA0 interrupt handler */ + TIMA1_IRQHandler, /* TIMA1 interrupt handler */ + TIMG7_IRQHandler, /* TIMG7 interrupt handler */ + TIMG12_IRQHandler, /* TIMG12 interrupt handler */ + 0, /* Reserved */ + 0, /* Reserved */ + I2C0_IRQHandler, /* I2C0 interrupt handler */ + I2C1_IRQHandler, /* I2C1 interrupt handler */ + 0, /* Reserved */ + 0, /* Reserved */ + AES_IRQHandler, /* AES interrupt handler */ + 0, /* Reserved */ + RTC_IRQHandler, /* RTC interrupt handler */ + DMA_IRQHandler, /* DMA interrupt handler */ + +}; + +/* Forward declaration of the default fault handlers. */ +/* This is the code that gets called when the processor first starts execution */ +/* following a reset event. Only the absolutely necessary set is performed, */ +/* after which the application supplied entry() routine is called. Any fancy */ +/* actions (such as making decisions based on the reset cause register, and */ +/* resetting the bits in that register) are left solely in the hands of the */ +/* application. */ +void Reset_Handler(void) +{ + uint32_t *pui32Src, *pui32Dest; + uint32_t *bs, *be; + + // + // Copy the data segment initializers from flash to SRAM. + // + pui32Src = &__data_load__; + for(pui32Dest = &__data_start__; pui32Dest < &__data_end__; ) + { + *pui32Dest++ = *pui32Src++; + } + + // + // Copy the ramfunct segment initializers from flash to SRAM. + // + pui32Src = &__ramfunct_load__; + for(pui32Dest = &__ramfunct_start__; pui32Dest < &__ramfunct_end__; ) + { + *pui32Dest++ = *pui32Src++; + } + + // Initialize .bss to zero + bs = &__bss_start__; + be = &__bss_end__; + while (bs < be) + { + *bs = 0; + bs++; + } + + /* + * System initialization routine can be called here, but it's not + * required for MSPM0. + */ + // SystemInit(); + + // + // Initialize virtual tables, along executing init, init_array, constructors + // and preinit_array functions + // + __libc_init_array(); + + // + // Call the application's entry point. + // + + main(); + + // + // If we ever return signal Error + // + HardFault_Handler(); +} + +/* This is the code that gets called when the processor receives an unexpected */ +/* interrupt. This simply enters an infinite loop, preserving the system state */ +/* for examination by a debugger. */ +void Default_Handler(void) +{ + /* Enter an infinite loop. */ + while(1) + { + } +} diff --git a/utils/utils.c b/utils/utils.c index 5080519..79a01b3 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -94,7 +94,7 @@ static const DL_SYSCTL_SYSPLLConfig gSYSPLLConfig = { .enableCLK0 = DL_SYSCTL_SYSPLL_CLK0_ENABLE, .sysPLLMCLK = DL_SYSCTL_SYSPLL_MCLK_CLK0, .sysPLLRef = DL_SYSCTL_SYSPLL_REF_HFCLK, - .qDiv = 1, + .qDiv = 3, .pDiv = DL_SYSCTL_SYSPLL_PDIV_1 }; @@ -145,7 +145,7 @@ xCoreStatus_t xMCAL_SYSCTL_INIT(uint8_t u8CLK_SRC,uint8_t u8LP_MODE) DL_SYSCTL_disableSYSPLL(); DL_SYSCTL_setHFCLKSourceHFXTParams(DL_SYSCTL_HFXT_RANGE_16_32_MHZ,10, true); DL_SYSCTL_configSYSPLL((DL_SYSCTL_SYSPLLConfig *) &gSYSPLLConfig); - DL_SYSCTL_setULPCLKDivider(DL_SYSCTL_ULPCLK_DIV_1); + DL_SYSCTL_setULPCLKDivider(DL_SYSCTL_ULPCLK_DIV_2); DL_SYSCTL_setMCLKSource(SYSOSC, HSCLK, DL_SYSCTL_HSCLK_SOURCE_SYSPLL); } else if(u8CLK_SRC==SYSOSC) diff --git a/utils/utils.h b/utils/utils.h index 624a4ae..d5a818d 100644 --- a/utils/utils.h +++ b/utils/utils.h @@ -75,7 +75,7 @@ typedef enum typedef enum { /*SysTick Period Options*/ - Period_1ms = 24000, /*!< sets period of SysTick to 1ms */ + Period_1ms = 48000, /*!< sets period of SysTick to 1ms @48Mhz*/ }xTicks_t; typedef enum