Refs #477. Added extra check for the received XCP packet length on the UART and USB transport layers.

git-svn-id: https://svn.code.sf.net/p/openblt/code/trunk@423 5dc33758-31d5-4daf-9ae8-b24bf3d40d73
This commit is contained in:
Frank Voorburg 2018-02-09 10:12:04 +00:00
parent 59a909fca2
commit 817212b60f
66 changed files with 604 additions and 539 deletions

View File

@ -185,7 +185,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -166,7 +166,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -166,7 +166,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -166,7 +166,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -166,7 +166,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -154,7 +154,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -154,7 +154,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -154,7 +154,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -138,7 +138,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -138,7 +138,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -138,7 +138,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -148,7 +148,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -148,7 +148,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -148,7 +148,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -165,7 +165,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -165,7 +165,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -165,7 +165,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -165,7 +165,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -171,7 +171,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -171,7 +171,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -156,7 +156,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -159,7 +159,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -159,7 +159,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -159,7 +159,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -137,7 +137,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -174,7 +174,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -174,7 +174,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -1,6 +1,6 @@
S0720000433A5C576F726B5C736F6674776172655C4F70656E424C545C5461726765745C44656D6F5C48435331325F457662706C75735F447261676F6E3132705F436F646557617272696F725C426F6F745C62696E5C6F70656E626C745F657662706C75735F647261676F6E3132702E61627366
S2240FE800FEE830FDE82E270E35ED31EC3169700434FB310326F2FEE832EC31270BED311821
S2240FE8200A30700434F920F13D07D506EA0B0001E834FC02390004FB4F70656E424C5400FD
S2240FE8200A30700434F920F13D07D506EA0B0001E834FC66390004FB4F70656E424C540099
S2240FE840000C000000004000000C400000004000000C800000004000000CC00000004000F4
S2240FE860000D000000004000000D400000004000000D800000004000000DC00000004000D0
S2240FE880000E000000004000000E400000004000000E800000004000000EC00000004000AC
@ -16,31 +16,31 @@ S2240FE9A0682E6300433A5C576F726B5C736F6674776172655C4F70656E424C545C546172B4
S2240FE9C06765745C536F757263655C48435331325C756172742E6300433A5C576F726B5CF8
S2240FE9E0736F6674776172655C4F70656E424C545C5461726765745C536F757263655C4894
S2240FEA00435331325C63616E2E630016EA1616EAC916EADB20FB1B9969824D3980698169FD
S2240FEA2080E68087CD1F40C3000118133BE68387C3000116FBE23B34EC84B76516FBD46C0C
S2240FEA2080E68087CD1F40C3000118133BE68387C3000116FC463B34EC84B76516FC386C42
S2240FEA40876E858C5DC01B8226030445286280E680C13F23CCE6820401086281E681C10F82
S2240FEA6023BDE68204010ECCE91A3BC66B87B70516F7621B82E6805B34E6815B354F370823
S2240FEA80FC4C39801B873DC6017B390216F63C7C39057E390306EA9816EB7804012AF639EA
S2240FEAA00204212416F63C3BFC3905C301F4B746FC3903C9008900353BEC8416FAF01B827E
S2240FEAC0250679390216EF7D3D16EF7A16EB7C16F5E416F5A616EAE706EA8716EB7D16F600
S2240FEAE01D16EAFC06EA9816EB7E16F767C601877C390016F645C7877C39003DCC390716B8
S2240FEB00F854042104C601070DCC390716F6BC042103C707013D877C3900CC390706EBA0B0
S2240FEB203D3BFC390004240AEC843BE68316F8031B82FC3900260AEC843BE68316F65E1B22
S2240FEB408216EB9C3A3D3BFC390016FBEE040909040707C60821C78FC640876C80303D3B0E
S2240FEB60FC390016FBEE040909040707C60821C78FC640876C80303D16EB933D3D3DC78761
S2240FEA6023BDE68204010ECCE91A3BC66B87B70516F7C61B82E6805B34E6815B354F3708BF
S2240FEA80FC4C39801B873DC6017B390216F69C7C39057E390306EA9816EB7804012AF6398A
S2240FEAA00204212416F69C3BFC3905C301F4B746FC3903C9008900353BEC8416FB541B82B9
S2240FEAC0250679390216EF7D3D16EF7A16EB7C16F64416F60616EAE706EA8716EB7D16F63E
S2240FEAE07D16EAFC06EA9816EB7E16F7CBC601877C390016F6A5C7877C39003DCC39071694
S2240FEB00F8B8042104C601070DCC390716F71C042103C707013D877C3900CC390706EBA0EB
S2240FEB203D3BFC390004240AEC843BE68316F8671B82FC3900260AEC843BE68316F6BE1B5E
S2240FEB408216EB9C3A3D3BFC390016FC52040909040707C60821C78FC640876C80303D3BA9
S2240FEB60FC390016FC52040909040707C60821C78FC640876C80303D16EB933D3D3DC787FC
S2240FEB807C398F7C398D7B398A7C398B7B39497C39473DF6394726013DC6013D79398A3DD0
S2240FEBA03B36B745E600C1FF2607B75416ECEC2055B639470420CFC1FE2244C1F3250EC19D
S2240FEBC0F62221C0F38716FBE94D3F3846C1CC6B802526C1D22222C0CC8716FBE97F868678
S2240FEBE07863716AC1FA6B80250FC1FE220BC0FA8716FBE9296F30373EE680C1C9273A209C
S2240FEBC0F62221C0F38716FC4D4D3F3846C1CC6B802526C1D22222C0CC8716FC4D7F8686AE
S2240FEBE07863716AC1FA6B80250FC1FE220BC0FA8716FC4D296F30373EE680C1C9273A2037
S2240FEC0062EC8116ED8E2060EC8116EDE32059EC8116ED742052EC8116EE41204BEC81163E
S2240FEC20ED522044EC8116ED4E203DEC8116ED342036EC8116ED24202FB75416EE8A202844
S2240FEC40EC8116EED62021EC8116EE6D201AEC8116EF3D2013EC8116EF67200CEC8116EFA7
S2240FEC60752005C62016ECDCF6398A042105C61016ECDCFC398B2F0E180B01398ACE394A56
S2240FEC803416EC891B821B833D3BEC843BEC8216EB211B843D6CAD69822013EE8BE600EB56
S2240FECA0826B82EE89EC8B16FB096C8B6E89EC87EE85343B16FB0E6C8B6E89C7873B3BECC9
S2240FECC084EE8616FAF01B8426D1E68287EE806C02C76C00521B833D7939483D37C6FE7BBA
S2240FECA0826B82EE89EC8B16FB6D6C8B6E89EC87EE85343B16FB726C8B6E89C7873B3BEC01
S2240FECC084EE8616FB541B8426D1E68287EE806C02C76C00521B833D7939483D37C6FE7B55
S2240FECE0394A327A394B50877C398B3D07EACCFF017B3947C77C394A1C394B107B394C1CAF
S2240FED00394C0116EB467B394D16EB5F7A394E16EB5F7B394FCC01017C3950CE00087E39ED
S2240FED208B06F5A679394707AFC6FF7B394A50877C398B3D86FFC77C394AF639487B394C0B
S2240FED208B06F60679394707AFC6FF7B394A50877C398B3D86FFC77C394AF639487B394CAA
S2240FED40C7877C394D7B394FC6067C398B3DC706ECDC1803E838398FC7877C398D437C39E3
S2240FED604A877C394CC6077C3950C77C394EC6087C398B3D3BC6FF7B394AEE80EC047C39B5
S2240FED808DEC067C398FC601877C398B3A3D3BB745E601873B16EB468300013BEE82AEB3E0
@ -52,116 +52,119 @@ S2240FEE20394AEEA7E60187B745F3398F7C398FCC0000F9398EB9398D7C398D087E398B3A6C
S2240FEE403D3BC6FF7B394AFC398F3BFC398D3BEE84EC063BEC043BCC394E16EC957B394BB4
S2240FEE60C7877C394CC6087C398B1B8A3D86FFC77C394A7B394C16EB467B394DC7877C39A9
S2240FEE804E7B3950C6077C398B3D3BFC398F3BFC398D3B16EB468300013BC7873BEC88C3C5
S2240FEEA0000116F5A91B88046107C63116ECDC2023C6FF7B394A16EB46830001F3398F7C9D
S2240FEEA0000116F6091B88046107C63116ECDC2023C6FF7B394A16EB46830001F3398F7C3C
S2240FEEC0398FCC0000F9398EB9398D7C398DC601877C398B3A3D3BB745E601873B16EB46DD
S2240FEEE08300023BEE82AEB32304C6222031C6FF7B394A50877C398BEE80E601260816F5A5
S2240FEF00D90461372017FD398F35FD398D353BC73B1902B7C616F5A91B88046107C631169A
S2240FEEE08300023BEE82AEB32304C6222031C6FF7B394A50877C398BEE80E601260816F6A4
S2240FEF00390461372017FD398F35FD398D353BC73B1902B7C616F6091B88046107C63116D9
S2240FEF20ECDC2017EE80E60187F3398F7C398FCC0000F9398EB9398D7C398D3A3D3BFC39AF
S2240FEF408F3BFC398D3BEE84EC06EE0416F5BF1B84046107C63116ECDC200AC6FF7B394AE9
S2240FEF6050877C398B3A3D16EF7DC6FF7B394A50877C398B3DC63106ECDC06F9443B16F508
S2240FEF80D104411616EB2016F60116F5D5830002B745EC006C8015F300003A3D6CACEC8CBB
S2240FEF408F3BFC398D3BEE84EC06EE0416F61F1B84046107C63116ECDC200AC6FF7B394A88
S2240FEF6050877C398B3A3D16EF7DC6FF7B394A50877C398B3DC63106ECDC06F9A83B16F6A3
S2240FEF803104411616EB2016F66116F635830002B745EC006C8015F300003A3D6CACEC8C9A
S2240FEFA06C82EE88200DED82E6306B706D823416EB7D30ED80341A5F6E828D00003026E6A8
S2240FEFC01B843D1B9D6982CCFF016B81507C39937C39917C3B977C3B951C010303F6010351
S2240FEFE0C403527B3DAF1D0103E36980E68087B745E68108B75613B745CC1F4018151AE1C9
S2240FF000698E00302212E681C1082605A6808A408FA6807A0100201C6280E680C13F23CC93
S2240FF020E68204010FCCE96F3BCC018CCE000016F7621B821B833D1B983BFCE840ACF01015
S2240FF04022442608FCE842ACF012223AECF012E38E3BEC8EE9F013A9F012B7453A16FB0ED8
S2240FF0603BFCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DCB7D43BEC8216FB0E3B34EC88EE8416DA
S2240FF080FAF01B862303C72061FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC828302006C20
S2240FF0A0883AC20082006C84EDF014EEF012C60916FADFB746C60916FACE6C8A6E88EE869D
S2240FF0C034ACB3260BEC86AC822605CC3B952003CC39913BEEF01434EEF01434EE8634EC1D
S2240FF0E0F016EEF01416F3CF1B881B8A3D1B943B34EDF014EEF012C60916FADFB746C6091E
S2240FF10016FACE6C8E6E8CBEE84018250099FCE840AC8C2607FCE842AC8E2238ECF014E337
S2240FF120823BEC82E9F015A9F014B7453A16FB0E3BFCE8DAF3E8DE3BFCE8D8F9E8DDB9E898
S2240FF140DCB7D43BEC8216FB0E3B34EC88EE8416FAF01B862251ECF014A38E3BECF014E2D5
S2240FF1608FA28E3BEC82E3866C8C3AE983A9826C88C609EE88ED8A16FADF6C86EC8A840155
S2240FF1808C00001B822705EE84086E846D8A202E16EB7DC64037EC8F3BEC8F3BCC55AA164D
S2240FF1A0F5521B85046103C7201CEC8EC302006C8EEC8CC90089006C8CEE8A086E8AEC8A00
S2240FF1C0AC8425CCC6011BF0103DC7876CACFE3B9704A509FE3B9504A503522051CE018067
S2240FF1E06E828737E383B745E6E23B9987E3816C813352C18025EB61816180EE80086E807A
S2240FF200FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC82830082B7453AC2008200343BC6D4
S2240FF22002873BC73B1A8AB75416F0371B8A1B843D1B96C7876C88FCE8DAF3E8DE3BFCE8FE
S2240FF240D8F9E8DDB9E8DC3BEC828300826C863AC20082006C82FCE8DAF3E8DE6C80FCE834
S2240FF260D8F9E8DDB9E8DC3BEC828300806C8A3AC20082006C86C71B828737E3873BCC00C2
S2240FF28000E988A987B7453A16F50487E3896C893352C18025E3EC82EE8016F504B710C745
S2240FF2A03BEC84EE8216FB0916F50487E380E38A1B822603C60121C71B8A3DFC3B9704A4D2
S2240FF2C006FC3B95048409CC3B9516F48C044115FC399304A406FC399104840BCC399116B0
S2240FF2E0F48C046102C73DC787B7456AE23D9952C11625F4C6013DFCE8DAF3E8DE3BFCE8C7
S2240FF300D8F9E8DDB9E8DCB7453A16F52DC340003BCC0000C9008900B7453A3D6CAD3484B8
S2240FF32001044403C72043EE87EC02AC822606EC00AC802733EC806C00EC826C02D6306BEF
S2240FF34084EC82EE8016F5215B30EE871A0434C7873BEC86EE8416F52D3BC7873B860216B4
S2240FF360EF9C1B88E6845B30C6011B853D6CAA34FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DCBF
S2240FF3803BEC828302006C8A3AC20082006C86EC8C8C3B951B822607CC39916C8A2019EC76
S2240FF3A082AC86260BAE842607CC3B956C8A2008EC8A16F48C04410FEC8A3BEC84EE821634
S2240FF3C0F31C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FADFB74618
S2240FF3E0C60916FACE6C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F31C1B824F
S2240FF400044160EEF014EC02AC862606EC00AC84270F34EC88EE8616F36D1B826CF01427DD
S2240FF42042EEF014ECF012A3021A041AE66E88EC8E6C8A16EB7DEEF0141904EC8835A3B1E3
S2240FF4408C0200252634EC88C30200B745EC86C9008900B746B754B76516F36D1B826CF0FF
S2240FF460142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FB0E6C82C2
S2240FF4806E800474AE26ACC6011B8C3D1B973BC6016B8AEE80EC0204A408EC0004A403C7B4
S2240FF4A0205FC7876C88EC8859B746EE80E3026C84CC0000E901A9006C82B75419EEEC44DB
S2240FF4C06C8616EB7DC62037EC853BEE8534EC8B16F5521B85044119EC84EE8216F504E196
S2240FF4E086260EEC84EE8216FB0916F504E1872704698A200AEE88086E888E010025A7E6D0
S2240FF5008A1B8B3D3B34D63037EC8316F5215B30EC83EE8116F52DB745E600325A301B8445
S2240FF5203D3B34C60EED8216FADF1B843D843FC380003D3BC787B74537E6E2E8E06BE23DE4
S2240FF540993352C11625EECC3D996C8015F300003A3D6CAC6982D6306B83EC88EE8607C1DB
S2240FF5605B301D010303545451C403FA01037B0103C6307B0105B6010584808180261EEC23
S2240FF58088EE8607A8EE80B7466E40E68A7B010607A11F010530022004C6016B82E6835B06
S2240FF5A030E6821B843D06EFC33BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F0371B88303D3B10
S2240FF5C034EC883BEC883BEC8616F0ED1B841B843D16F2313D16F2F73D16F1CA0461013D7F
S2240FF5E016F2BB3D16F6014C4001C6015B4EDC44C35DC05C504C4680C7877C3DB27C3DB00D
S2240FF6003D79004C79004679004D79004079004779004879004979004A79004B3D4F4E01F1
S2240FF6201AC6015B4EDC50C35DC05C50FC3DB2FE3DB016FB097C3DB27E3DB03D07DFFC3D52
S2240FF640B2FE3DB03D7900CB7900CA7900C87900C9C61A873B5AC85BC94CCB0C3A3D6BAD18
S2240FF660C140230ECCE9A43BC68887B70516F7621B82E68016F74E04010ECCE9A43BC68C59
S2240FF68087B70516F7621B82C7876C81202416EB7DEC85E381B745E60016F74E04010ECC19
S2240FF6A0E9A43BC69587B70516F7621B82EE81086E81E68087AC8122D51B833D3BF63DB450
S2240FF6C02621CC3DB916F73D04216FF63DB9276A16F63C7C3DB77E3DB5793DFAC6017B3D5B
S2240FF6E0B42057F63DFA87C3000187C33DB916F73D042125723DFAF63DFAF13DB9263BEE73
S2240FF7008034C7873BCE3DBA343BF63DFA16EF9C1B88793DB4C601202216F63C3BFC3DB70D
S2240FF720C30064B746FC3DB5C9008900353BEC8416FAF01B822303793DB4C7303D3B4FCCBA
S2240FF7402009D6CFEE806B00C60121C7303D4ECC8002C73D5BCF200316EB7D4FCC80F9C60D
S2240FF760013D16EB7D20FB1B96C6017B01401F014101FBC6807B0141CC01F43B1A82341A24
S2240FF78085B75416F8DB1B8404010ECCE9D83BC6F187B70516F7621B82E6807B0142E681D1
S2240FF7A07B01431D014B30CC06676C88C7876C866C846C827B0150C6087B0151C60C7B01DD
S2240FF7C052C6CE7B01537A0154C6107B01557A01567A0157C6CC7B0158C6E07B01597A01EB
S2240FF7E05A7A015B7A015CC6077B015D7A015E7A015F1D0140011E014101FBC6017B014A4D
S2240FF8001B8A3D371E0146010FCCE9D83BCC0133CE000016F7621B82CC20FC7B01707A0155
S2240FF82071790172790173E6807B017CC720108737B746E384B745E6006BEA01743352E1E1
S2240FF8408025ECC6017B0146200316EB7D1F014601F8323D6CA869861F014401791E0161AA
S2240FF8600810FC016049494949496C84C7876C822033FE0162FC0160C4078749B7C54656A2
S2240FF880CD00003BFC0160C4E03BC60334EE8216FADFEA85AA846C8AB754EA81AA806C888D
S2240FF8A00C88801B86EC848C06672626EC822622C6016B86B6016C840F6A87C72010873700
S2240FF8C0B745E381B746E6E201646B403352E18725EC1D0144FEE6861B883D6CAC3B6984F5
S2240FF8E0E6848759B745E6E2E8F687B746E6E2E8F719EE02B764ED8A136C80CC1F40B7560B
S2240FF900EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B00E6EAE87A
S2240FF920F753861012A6EAE8F64337AAB0EE826A00C601200C16EB7D6284E684C11225A04C
S2240FF940C71B863D14103D790011CC09395B105A12CF390016E82906EA0BFEE78005003D4D
S2240FF960FEE78205003DFEE78405003DFEE78605003DFEE78805003DFEE78A05003DFEE72D
S2240FF9808C05003DFEE78E05003DFEE79005003DFEE79205003DFEE79405003DFEE7960525
S2240FF9A0003DFEE79805003DFEE79A05003DFEE79C05003DFEE79E05003DFEE7A005003D27
S2240FF9C0FEE7A205003DFEE7A405003DFEE7A605003DFEE7A805003DFEE7AA05003DFEE72D
S2240FF9E0AC05003DFEE7AE05003DFEE7B005003DFEE7B205003DFEE7B405003DFEE7B60505
S2240FFA00003DFEE7B805003DFEE7BA05003DFEE7BC05003DFEE7BE05003DFEE7C005003D26
S2240FFA20FEE7C205003DFEE7C405003DFEE7C605003DFEE7C805003DFEE7CA05003DFEE72C
S2240FFA40CC05003DFEE7CE05003DFEE7D005003DFEE7D205003DFEE7D405003DFEE7D605E4
S2240FFA60003DFEE7D805003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE7E005003D26
S2240FFA80FEE7E205003DFEE7E405003DFEE7E605003DFEE7E805003DFEE7EA05003DFEE72C
S2240FFAA0EC05003DFEE7EE05003DFEE7F005003DFEE7F205003DFEE7F405003DFEE7F605C4
S2240FFAC0003DFEE7F805003DFEE7FC05003D87D7B7C6270A59B7C55545B7C50436F63D87A8
S2240FFAE0D7B7C6270AB7C549B7C546560436F63DAC84270E34B7C5E285A284B7C510FB30CA
S2240FFB002002AE82311B84054004A401083D046401098300013D87C76C82EC8C261FEE8ED4
S2240FFB20ED86EC8811280DEC86CD0000116D82B746EC88116D846C8887C76C863D9727099A
S2240FFB40EE86B7C5CD00002008EE8DE686ED87B7C61135ECF010133B35ECF012ED8413E3CA
S2240FFB60B130B7C5CD0000356581A38CB7C5E28BA28A310446113669AF3137323433EEF02F
S2240FFB801011B76532201F252A046403044539E78E2706EE8E87C7200BB7C5363469AFEEE4
S2240FFBA0F013313A1810083A34A3B1B74620A33102209F4151B7C5415104A40108AE8E2270
S2240FFBC0EE2505ACF01024E7316D84698369826C886E863D3B341B9C16FB1630ECB5EDB564
S2240FFBE005403BB704B7053A3D30E6E605E53037E1310460022504E61F2002E6E51AE53371
S20D0FFC00050000013901040000A3
S2240FFF80F95AF960F966F96CF972F978F97EF984F98AF990F996F99CF9A2F9A8F9AEF9B44D
S2240FFFA0F9BAF9C0F9C6F9CCF9D2F9D8F9DEF9E4F9EAF9F0F9F6F9FCFA02FA08FA0EFA1429
S2240FFFC0FA1AFA20FA26FA2CFA32FA38FA3EFA44FA4AFA50FA56FA5CFA62FA68FA6EFA74FD
S2240FFFE0FA7AFA80FA86FA8CFA92FA98FA9EFAA4FAAAFAB0FAB6FABCFAC2F947FAC8F947F3
S2240FF020E68204010FCCE96F3BCC019FCE000016F7C61B821B833D1B983BEC8EEE8C16FB69
S2240FF040723B16F1163B16F10A3BEC8216FB72A3F018B7C5E2F017A2F016343BEC88EE844D
S2240FF06016FB541B862240FCE840ACF01022382608FCE842ACF012222EECF012E38E3BEC12
S2240FF0808EE9F013A9F012B7453A16FB723B16F1163B07763BEC8216FB723B34EC88EE84ED
S2240FF0A016FB541B862303C7205D076A3BFCE8D8F9E8DDB9E8DC3BEC828302006C883AC20B
S2240FF0C00082006C84EDF014EEF012C60916FB43B746C60916FB326C8A6E88EE8634ACB3A4
S2240FF0E0260BEC86AC822605CC3B952003CC39913BEEF01434EEF01434EE8634ECF016EE9C
S2240FF100F01416F42F1B881B8A3DFCE8D8F9E8DDB9E8DCB7D43DFCE8DAF3E8DE3D1B943BBC
S2240FF1203416FB723BFCE8DAF3E8DE3B16F21E3BEC8216FB72A3F01AB7C5E2F019A2F01807
S2240FF140343BEC88EE8416FB541B862229EDF014EEF012C60916FB43B746C60916FB326C76
S2240FF1608E6E8CBEE84018250091FCE840AC8C2607FCE842AC8E2230ECF014E3823BEC8206
S2240FF180E9F015A9F014B7453A16FB723BFCE8DAF3E8DE3B16F21E3BEC8216FB723B34EC6D
S2240FF1A088EE8416FB541B862251ECF014A38E3BECF014E28FA28E3BEC82E3866C8C3AE9AE
S2240FF1C083A9826C88C609EE88ED8A16FB436C86EC8A84018C00001B822705EE84086E84BB
S2240FF1E06D8A202E16EB7DC64037EC8F3BEC8F3BCC55AA16F5B21B85046103C7201CEC8E82
S2240FF200C302006C8EEC8CC90089006C8CEE8A086E8AEC8AAC8425CCC6011BF0103DFCE847
S2240FF220D8F9E8DDB9E8DCB7D43DC7876CACFE3B9704A509FE3B9504A503522051CE01806B
S2240FF2406E828737E383B745E6E23B9987E3816C813352C18025EB61816180EE80086E8019
S2240FF260FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC82830082B7453AC2008200343BC674
S2240FF28002873BC73B1A8AB75416F0371B8A1B843D1B96C7876C88FCE8DAF3E8DE3BFCE89E
S2240FF2A0D8F9E8DDB9E8DC3BEC828300826C863AC20082006C82FCE8DAF3E8DE6C80FCE8D4
S2240FF2C0D8F9E8DDB9E8DC3BEC828300806C8A3AC20082006C86C71B828737E3873BCC0062
S2240FF2E000E988A987B7453A16F56487E3896C893352C18025E3EC82EE8016F564B710C725
S2240FF3003BEC84EE8216FB6D16F56487E380E38A1B822603C60121C71B8A3DFC3B9704A4AD
S2240FF32006FC3B95048409CC3B9516F4EC044115FC399304A406FC399104840BCC399116EF
S2240FF340F4EC046102C73DC787B7456AE23D9952C11625F4C6013DFCE8DAF3E8DE3BFCE806
S2240FF360D8F9E8DDB9E8DCB7453A16F58DC340003BCC0000C9008900B7453A3D6CAD3484F8
S2240FF38001044403C72043EE87EC02AC822606EC00AC802733EC806C00EC826C02D6306B8F
S2240FF3A084EC82EE8016F5815B30EE871A0434C7873BEC86EE8416F58D3BC7873B86021694
S2240FF3C0EF9C1B88E6845B30C6011B853D6CAA34FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC5F
S2240FF3E03BEC828302006C8A3AC20082006C86EC8C8C3B951B822607CC39916C8A2019EC16
S2240FF40082AC86260BAE842607CC3B956C8A2008EC8A16F4EC04410FEC8A3BEC84EE821673
S2240FF420F37C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FB43B746F2
S2240FF440C60916FB326C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F37C1B8229
S2240FF460044160EEF014EC02AC862606EC00AC84270F34EC88EE8616F3CD1B826CF014271D
S2240FF48042EEF014ECF012A3021A041AE66E88EC8E6C8A16EB7DEEF0141904EC8835A3B183
S2240FF4A08C0200252634EC88C30200B745EC86C9008900B746B754B76516F3CD1B826CF03F
S2240FF4C0142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FB726C82FE
S2240FF4E06E800474AE26ACC6011B8C3D1B973BC6016B8AEE80EC0204A408EC0004A403C754
S2240FF500205FC7876C88EC8859B746EE80E3026C84CC0000E901A9006C82B75419EEEC447A
S2240FF5206C8616EB7DC62037EC853BEE8534EC8B16F5B21B85044119EC84EE8216F564E175
S2240FF54086260EEC84EE8216FB6D16F564E1872704698A200AEE88086E888E010025A7E6AB
S2240FF5608A1B8B3D3B34D63037EC8316F5815B30EC83EE8116F58DB745E600325A301B8425
S2240FF5803D3B34C60EED8216FB431B843D843FC380003D3BC787B74537E6E2E8E06BE23D1F
S2240FF5A0993352C11625EECC3D996C8015F300003A3D6CAC6982D6306B83EC88EE8607C17B
S2240FF5C05B301D010303545451C403FA01037B0103C6307B0105B6010584808180261EECC3
S2240FF5E088EE8607A8EE80B7466E40E68A7B010607A11F010530022004C6016B82E6835BA6
S2240FF60030E6821B843D06EFC33BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F0371B88303D3BAF
S2240FF62034EC883BEC883BEC8616F11D1B841B843D16F2913D16F3573D16F22A0461013DCB
S2240FF64016F31B3D16F6614C4001C6015B4EDC44C35DC05C504C4680C7877C3DB27C3DB0EB
S2240FF6603D79004C79004679004D79004079004779004879004979004A79004B3D4F4E0191
S2240FF6801AC6015B4EDC50C35DC05C50FC3DB2FE3DB016FB6D7C3DB27E3DB03D07DFFC3D8E
S2240FF6A0B2FE3DB03D7900CB7900CA7900C87900C9C61A873B5AC85BC94CCB0C3A3D6BADB8
S2240FF6C0C140230ECCE9A43BC68887B70516F7C61B82E68016F7B204010ECCE9A43BC68C31
S2240FF6E087B70516F7C61B82C7876C81202416EB7DEC85E381B745E60016F7B204010ECCF1
S2240FF700E9A43BC69587B70516F7C61B82EE81086E81E68087AC8122D51B833D3BF63DB48B
S2240FF7202625CC3DB916F7A1042173F63DB9276EC140226A16F69C7C3DB77E3DB5793DFA1C
S2240FF740C6017B3DB42057F63DFA87C3000187C33DB916F7A1042125723DFAF63DFAF13D37
S2240FF760B9263BEE8034C7873BCE3DBA343BF63DFA16EF9C1B88793DB4C601202216F69C70
S2240FF7803BFC3DB7C30064B746FC3DB5C9008900353BEC8416FB541B822303793DB4C7305D
S2240FF7A03D3B4FCC2009D6CFEE806B00C60121C7303D4ECC8002C73D5BCF200316EB7D4F25
S2240FF7C0CC80F9C6013D16EB7D20FB1B96C6017B01401F014101FBC6807B0141CC01F43BA3
S2240FF7E01A82341A85B75416F93F1B8404010ECCE9D83BC6F187B70516F7C61B82E6807B68
S2240FF8000142E6817B01431D014B30CC06676C88C7876C866C846C827B0150C6087B015120
S2240FF820C60C7B0152C6CE7B01537A0154C6107B01557A01567A0157C6CC7B0158C6E07B11
S2240FF84001597A015A7A015B7A015CC6077B015D7A015E7A015F1D0140011E014101FBC6DE
S2240FF860017B014A1B8A3D371E0146010FCCE9D83BCC0133CE000016F7C61B82CC20FC7BB6
S2240FF88001707A0171790172790173E6807B017CC720108737B746E384B745E6006BEA016F
S2240FF8A0743352E18025ECC6017B0146200316EB7D1F014601F8323D6CA869861F01440169
S2240FF8C0791E01610810FC016049494949496C84C7876C822033FE0162FC0160C407874961
S2240FF8E0B7C54656CD00003BFC0160C4E03BC60334EE8216FB43EA85AA846C8AB754EA81CE
S2240FF900AA806C880C88801B86EC848C06672626EC822622C6016B86B6016C840F6A87C76F
S2240FF92020108737B745E381B746E6E201646B403352E18725EC1D0144FEE6861B883D6C7A
S2240FF940AC3B6984E6848759B745E6E2E8F687B746E6E2E8F719EE02B764ED8A136C80CC42
S2240FF9601F40B756EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B66
S2240FF98000E6EAE8F753861012A6EAE8F64337AAB0EE826A00C601200C16EB7D6284E684CC
S2240FF9A0C11225A0C71B863D14103D790011CC09395B105A12CF390016E82906EA0BFEE717
S2240FF9C08005003DFEE78205003DFEE78405003DFEE78605003DFEE78805003DFEE78A052D
S2240FF9E0003DFEE78C05003DFEE78E05003DFEE79005003DFEE79205003DFEE79405003D23
S2240FFA00FEE79605003DFEE79805003DFEE79A05003DFEE79C05003DFEE79E05003DFEE728
S2240FFA20A005003DFEE7A205003DFEE7A405003DFEE7A605003DFEE7A805003DFEE7AA050C
S2240FFA40003DFEE7AC05003DFEE7AE05003DFEE7B005003DFEE7B205003DFEE7B405003D22
S2240FFA60FEE7B605003DFEE7B805003DFEE7BA05003DFEE7BC05003DFEE7BE05003DFEE728
S2240FFA80C005003DFEE7C205003DFEE7C405003DFEE7C605003DFEE7C805003DFEE7CA05EC
S2240FFAA0003DFEE7CC05003DFEE7CE05003DFEE7D005003DFEE7D205003DFEE7D405003D22
S2240FFAC0FEE7D605003DFEE7D805003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE728
S2240FFAE0E005003DFEE7E205003DFEE7E405003DFEE7E605003DFEE7E805003DFEE7EA05CC
S2240FFB00003DFEE7EC05003DFEE7EE05003DFEE7F005003DFEE7F205003DFEE7F405003D21
S2240FFB20FEE7F605003DFEE7F805003DFEE7FC05003D87D7B7C6270A59B7C55545B7C50457
S2240FFB4036F63D87D7B7C6270AB7C549B7C546560436F63DAC84270E34B7C5E285A284B779
S2240FFB60C510FB302002AE82311B84054004A401083D046401098300013D87C76C82EC8C35
S2240FFB80261FEE8EED86EC8811280DEC86CD0000116D82B746EC88116D846C8887C76C867D
S2240FFBA03D972709EE86B7C5CD00002008EE8DE686ED87B7C61135ECF010133B35ECF012CD
S2240FFBC0ED8413E3B130B7C5CD0000356581A38CB7C5E28BA28A310446113669AF313732AD
S2240FFBE03433EEF01011B76532201F252A046403044539E78E2706EE8E87C7200BB7C53679
S2240FFC003469AFEEF013313A1810083A34A3B1B74620A33102209F4151B7C5415104A4013B
S2240FFC2008AE8E22EE2505ACF01024E7316D84698369826C886E863D3B341B9C16FB7A307C
S2240FFC40ECB5EDB505403BB704B7053A3D30E6E605E53037E1310460022504E61F2002E6E4
S2110FFC60E51AE53305000001390104000028
S2240FFF80F9BEF9C4F9CAF9D0F9D6F9DCF9E2F9E8F9EEF9F4F9FAFA00FA06FA0CFA12FA1808
S2240FFFA0FA1EFA24FA2AFA30FA36FA3CFA42FA48FA4EFA54FA5AFA60FA66FA6CFA72FA78DD
S2240FFFC0FA7EFA84FA8AFA90FA96FA9CFAA2FAA8FAAEFAB4FABAFAC0FAC6FACCFAD2FAD8BD
S2240FFFE0FADEFAE4FAEAFAF0FAF6FAFCFB02FB08FB0EFB14FB1AFB20FB26F9ABFB2CF9ABAB
S9030000FC

View File

@ -1,6 +1,6 @@
S0720000433A5C576F726B5C736F6674776172655C4F70656E424C545C5461726765745C44656D6F5C48435331325F457662706C75735F447261676F6E3132705F436F646557617272696F725C426F6F745C62696E5C6F70656E626C745F657662706C75735F647261676F6E3132702E61627366
S123E800FEE830FDE82E270E35ED31EC3169700434FB310326F2FEE832EC31270BED311831
S123E8200A30700434F920F13D07D506EA0B0001E834FC02390004FB4F70656E424C54000D
S123E8200A30700434F920F13D07D506EA0B0001E834FC66390004FB4F70656E424C5400A9
S123E840000C000000004000000C400000004000000C800000004000000CC0000000400004
S123E860000D000000004000000D400000004000000D800000004000000DC00000004000E0
S123E880000E000000004000000E400000004000000E800000004000000EC00000004000BC
@ -16,31 +16,31 @@ S123E9A0682E6300433A5C576F726B5C736F6674776172655C4F70656E424C545C546172C4
S123E9C06765745C536F757263655C48435331325C756172742E6300433A5C576F726B5C08
S123E9E0736F6674776172655C4F70656E424C545C5461726765745C536F757263655C48A4
S123EA00435331325C63616E2E630016EA1616EAC916EADB20FB1B9969824D39806981690D
S123EA2080E68087CD1F40C3000118133BE68387C3000116FBE23B34EC84B76516FBD46C1C
S123EA2080E68087CD1F40C3000118133BE68387C3000116FC463B34EC84B76516FC386C52
S123EA40876E858C5DC01B8226030445286280E680C13F23CCE6820401086281E681C10F92
S123EA6023BDE68204010ECCE91A3BC66B87B70516F7621B82E6805B34E6815B354F370833
S123EA80FC4C39801B873DC6017B390216F63C7C39057E390306EA9816EB7804012AF639FA
S123EAA00204212416F63C3BFC3905C301F4B746FC3903C9008900353BEC8416FAF01B828E
S123EAC0250679390216EF7D3D16EF7A16EB7C16F5E416F5A616EAE706EA8716EB7D16F610
S123EAE01D16EAFC06EA9816EB7E16F767C601877C390016F645C7877C39003DCC390716C8
S123EB00F854042104C601070DCC390716F6BC042103C707013D877C3900CC390706EBA0C0
S123EB203D3BFC390004240AEC843BE68316F8031B82FC3900260AEC843BE68316F65E1B32
S123EB408216EB9C3A3D3BFC390016FBEE040909040707C60821C78FC640876C80303D3B1E
S123EB60FC390016FBEE040909040707C60821C78FC640876C80303D16EB933D3D3DC78771
S123EA6023BDE68204010ECCE91A3BC66B87B70516F7C61B82E6805B34E6815B354F3708CF
S123EA80FC4C39801B873DC6017B390216F69C7C39057E390306EA9816EB7804012AF6399A
S123EAA00204212416F69C3BFC3905C301F4B746FC3903C9008900353BEC8416FB541B82C9
S123EAC0250679390216EF7D3D16EF7A16EB7C16F64416F60616EAE706EA8716EB7D16F64E
S123EAE07D16EAFC06EA9816EB7E16F7CBC601877C390016F6A5C7877C39003DCC390716A4
S123EB00F8B8042104C601070DCC390716F71C042103C707013D877C3900CC390706EBA0FB
S123EB203D3BFC390004240AEC843BE68316F8671B82FC3900260AEC843BE68316F6BE1B6E
S123EB408216EB9C3A3D3BFC390016FC52040909040707C60821C78FC640876C80303D3BB9
S123EB60FC390016FC52040909040707C60821C78FC640876C80303D16EB933D3D3DC7870C
S123EB807C398F7C398D7B398A7C398B7B39497C39473DF6394726013DC6013D79398A3DE0
S123EBA03B36B745E600C1FF2607B75416ECEC2055B639470420CFC1FE2244C1F3250EC1AD
S123EBC0F62221C0F38716FBE94D3F3846C1CC6B802526C1D22222C0CC8716FBE97F868688
S123EBE07863716AC1FA6B80250FC1FE220BC0FA8716FBE9296F30373EE680C1C9273A20AC
S123EBC0F62221C0F38716FC4D4D3F3846C1CC6B802526C1D22222C0CC8716FC4D7F8686BE
S123EBE07863716AC1FA6B80250FC1FE220BC0FA8716FC4D296F30373EE680C1C9273A2047
S123EC0062EC8116ED8E2060EC8116EDE32059EC8116ED742052EC8116EE41204BEC81164E
S123EC20ED522044EC8116ED4E203DEC8116ED342036EC8116ED24202FB75416EE8A202854
S123EC40EC8116EED62021EC8116EE6D201AEC8116EF3D2013EC8116EF67200CEC8116EFB7
S123EC60752005C62016ECDCF6398A042105C61016ECDCFC398B2F0E180B01398ACE394A66
S123EC803416EC891B821B833D3BEC843BEC8216EB211B843D6CAD69822013EE8BE600EB66
S123ECA0826B82EE89EC8B16FB096C8B6E89EC87EE85343B16FB0E6C8B6E89C7873B3BECD9
S123ECC084EE8616FAF01B8426D1E68287EE806C02C76C00521B833D7939483D37C6FE7BCA
S123ECA0826B82EE89EC8B16FB6D6C8B6E89EC87EE85343B16FB726C8B6E89C7873B3BEC11
S123ECC084EE8616FB541B8426D1E68287EE806C02C76C00521B833D7939483D37C6FE7B65
S123ECE0394A327A394B50877C398B3D07EACCFF017B3947C77C394A1C394B107B394C1CBF
S123ED00394C0116EB467B394D16EB5F7A394E16EB5F7B394FCC01017C3950CE00087E39FD
S123ED208B06F5A679394707AFC6FF7B394A50877C398B3D86FFC77C394AF639487B394C1B
S123ED208B06F60679394707AFC6FF7B394A50877C398B3D86FFC77C394AF639487B394CBA
S123ED40C7877C394D7B394FC6067C398B3DC706ECDC1803E838398FC7877C398D437C39F3
S123ED604A877C394CC6077C3950C77C394EC6087C398B3D3BC6FF7B394AEE80EC047C39C5
S123ED808DEC067C398FC601877C398B3A3D3BB745E601873B16EB468300013BEE82AEB3F0
@ -52,116 +52,119 @@ S123EE20394AEEA7E60187B745F3398F7C398FCC0000F9398EB9398D7C398D087E398B3A7C
S123EE403D3BC6FF7B394AFC398F3BFC398D3BEE84EC063BEC043BCC394E16EC957B394BC4
S123EE60C7877C394CC6087C398B1B8A3D86FFC77C394A7B394C16EB467B394DC7877C39B9
S123EE804E7B3950C6077C398B3D3BFC398F3BFC398D3B16EB468300013BC7873BEC88C3D5
S123EEA0000116F5A91B88046107C63116ECDC2023C6FF7B394A16EB46830001F3398F7CAD
S123EEA0000116F6091B88046107C63116ECDC2023C6FF7B394A16EB46830001F3398F7C4C
S123EEC0398FCC0000F9398EB9398D7C398DC601877C398B3A3D3BB745E601873B16EB46ED
S123EEE08300023BEE82AEB32304C6222031C6FF7B394A50877C398BEE80E601260816F5B5
S123EF00D90461372017FD398F35FD398D353BC73B1902B7C616F5A91B88046107C63116AA
S123EEE08300023BEE82AEB32304C6222031C6FF7B394A50877C398BEE80E601260816F6B4
S123EF00390461372017FD398F35FD398D353BC73B1902B7C616F6091B88046107C63116E9
S123EF20ECDC2017EE80E60187F3398F7C398FCC0000F9398EB9398D7C398D3A3D3BFC39BF
S123EF408F3BFC398D3BEE84EC06EE0416F5BF1B84046107C63116ECDC200AC6FF7B394AF9
S123EF6050877C398B3A3D16EF7DC6FF7B394A50877C398B3DC63106ECDC06F9443B16F518
S123EF80D104411616EB2016F60116F5D5830002B745EC006C8015F300003A3D6CACEC8CCB
S123EF408F3BFC398D3BEE84EC06EE0416F61F1B84046107C63116ECDC200AC6FF7B394A98
S123EF6050877C398B3A3D16EF7DC6FF7B394A50877C398B3DC63106ECDC06F9A83B16F6B3
S123EF803104411616EB2016F66116F635830002B745EC006C8015F300003A3D6CACEC8CAA
S123EFA06C82EE88200DED82E6306B706D823416EB7D30ED80341A5F6E828D00003026E6B8
S123EFC01B843D1B9D6982CCFF016B81507C39937C39917C3B977C3B951C010303F6010361
S123EFE0C403527B3DAF1D0103E36980E68087B745E68108B75613B745CC1F4018151AE1D9
S123F000698E00302212E681C1082605A6808A408FA6807A0100201C6280E680C13F23CCA3
S123F020E68204010FCCE96F3BCC018CCE000016F7621B821B833D1B983BFCE840ACF01025
S123F04022442608FCE842ACF012223AECF012E38E3BEC8EE9F013A9F012B7453A16FB0EE8
S123F0603BFCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DCB7D43BEC8216FB0E3B34EC88EE8416EA
S123F080FAF01B862303C72061FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC828302006C30
S123F0A0883AC20082006C84EDF014EEF012C60916FADFB746C60916FACE6C8A6E88EE86AD
S123F0C034ACB3260BEC86AC822605CC3B952003CC39913BEEF01434EEF01434EE8634EC2D
S123F0E0F016EEF01416F3CF1B881B8A3D1B943B34EDF014EEF012C60916FADFB746C6092E
S123F10016FACE6C8E6E8CBEE84018250099FCE840AC8C2607FCE842AC8E2238ECF014E347
S123F120823BEC82E9F015A9F014B7453A16FB0E3BFCE8DAF3E8DE3BFCE8D8F9E8DDB9E8A8
S123F140DCB7D43BEC8216FB0E3B34EC88EE8416FAF01B862251ECF014A38E3BECF014E2E5
S123F1608FA28E3BEC82E3866C8C3AE983A9826C88C609EE88ED8A16FADF6C86EC8A840165
S123F1808C00001B822705EE84086E846D8A202E16EB7DC64037EC8F3BEC8F3BCC55AA165D
S123F1A0F5521B85046103C7201CEC8EC302006C8EEC8CC90089006C8CEE8A086E8AEC8A10
S123F1C0AC8425CCC6011BF0103DC7876CACFE3B9704A509FE3B9504A503522051CE018077
S123F1E06E828737E383B745E6E23B9987E3816C813352C18025EB61816180EE80086E808A
S123F200FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC82830082B7453AC2008200343BC6E4
S123F22002873BC73B1A8AB75416F0371B8A1B843D1B96C7876C88FCE8DAF3E8DE3BFCE80E
S123F240D8F9E8DDB9E8DC3BEC828300826C863AC20082006C82FCE8DAF3E8DE6C80FCE844
S123F260D8F9E8DDB9E8DC3BEC828300806C8A3AC20082006C86C71B828737E3873BCC00D2
S123F28000E988A987B7453A16F50487E3896C893352C18025E3EC82EE8016F504B710C755
S123F2A03BEC84EE8216FB0916F50487E380E38A1B822603C60121C71B8A3DFC3B9704A4E2
S123F2C006FC3B95048409CC3B9516F48C044115FC399304A406FC399104840BCC399116C0
S123F2E0F48C046102C73DC787B7456AE23D9952C11625F4C6013DFCE8DAF3E8DE3BFCE8D7
S123F300D8F9E8DDB9E8DCB7453A16F52DC340003BCC0000C9008900B7453A3D6CAD3484C8
S123F32001044403C72043EE87EC02AC822606EC00AC802733EC806C00EC826C02D6306BFF
S123F34084EC82EE8016F5215B30EE871A0434C7873BEC86EE8416F52D3BC7873B860216C4
S123F360EF9C1B88E6845B30C6011B853D6CAA34FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DCCF
S123F3803BEC828302006C8A3AC20082006C86EC8C8C3B951B822607CC39916C8A2019EC86
S123F3A082AC86260BAE842607CC3B956C8A2008EC8A16F48C04410FEC8A3BEC84EE821644
S123F3C0F31C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FADFB74628
S123F3E0C60916FACE6C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F31C1B825F
S123F400044160EEF014EC02AC862606EC00AC84270F34EC88EE8616F36D1B826CF01427ED
S123F42042EEF014ECF012A3021A041AE66E88EC8E6C8A16EB7DEEF0141904EC8835A3B1F3
S123F4408C0200252634EC88C30200B745EC86C9008900B746B754B76516F36D1B826CF00F
S123F460142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FB0E6C82D2
S123F4806E800474AE26ACC6011B8C3D1B973BC6016B8AEE80EC0204A408EC0004A403C7C4
S123F4A0205FC7876C88EC8859B746EE80E3026C84CC0000E901A9006C82B75419EEEC44EB
S123F4C06C8616EB7DC62037EC853BEE8534EC8B16F5521B85044119EC84EE8216F504E1A6
S123F4E086260EEC84EE8216FB0916F504E1872704698A200AEE88086E888E010025A7E6E0
S123F5008A1B8B3D3B34D63037EC8316F5215B30EC83EE8116F52DB745E600325A301B8455
S123F5203D3B34C60EED8216FADF1B843D843FC380003D3BC787B74537E6E2E8E06BE23DF4
S123F540993352C11625EECC3D996C8015F300003A3D6CAC6982D6306B83EC88EE8607C1EB
S123F5605B301D010303545451C403FA01037B0103C6307B0105B6010584808180261EEC33
S123F58088EE8607A8EE80B7466E40E68A7B010607A11F010530022004C6016B82E6835B16
S123F5A030E6821B843D06EFC33BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F0371B88303D3B20
S123F5C034EC883BEC883BEC8616F0ED1B841B843D16F2313D16F2F73D16F1CA0461013D8F
S123F5E016F2BB3D16F6014C4001C6015B4EDC44C35DC05C504C4680C7877C3DB27C3DB01D
S123F6003D79004C79004679004D79004079004779004879004979004A79004B3D4F4E0101
S123F6201AC6015B4EDC50C35DC05C50FC3DB2FE3DB016FB097C3DB27E3DB03D07DFFC3D62
S123F640B2FE3DB03D7900CB7900CA7900C87900C9C61A873B5AC85BC94CCB0C3A3D6BAD28
S123F660C140230ECCE9A43BC68887B70516F7621B82E68016F74E04010ECCE9A43BC68C69
S123F68087B70516F7621B82C7876C81202416EB7DEC85E381B745E60016F74E04010ECC29
S123F6A0E9A43BC69587B70516F7621B82EE81086E81E68087AC8122D51B833D3BF63DB460
S123F6C02621CC3DB916F73D04216FF63DB9276A16F63C7C3DB77E3DB5793DFAC6017B3D6B
S123F6E0B42057F63DFA87C3000187C33DB916F73D042125723DFAF63DFAF13DB9263BEE83
S123F7008034C7873BCE3DBA343BF63DFA16EF9C1B88793DB4C601202216F63C3BFC3DB71D
S123F720C30064B746FC3DB5C9008900353BEC8416FAF01B822303793DB4C7303D3B4FCCCA
S123F7402009D6CFEE806B00C60121C7303D4ECC8002C73D5BCF200316EB7D4FCC80F9C61D
S123F760013D16EB7D20FB1B96C6017B01401F014101FBC6807B0141CC01F43B1A82341A34
S123F78085B75416F8DB1B8404010ECCE9D83BC6F187B70516F7621B82E6807B0142E681E1
S123F7A07B01431D014B30CC06676C88C7876C866C846C827B0150C6087B0151C60C7B01ED
S123F7C052C6CE7B01537A0154C6107B01557A01567A0157C6CC7B0158C6E07B01597A01FB
S123F7E05A7A015B7A015CC6077B015D7A015E7A015F1D0140011E014101FBC6017B014A5D
S123F8001B8A3D371E0146010FCCE9D83BCC0133CE000016F7621B82CC20FC7B01707A0165
S123F82071790172790173E6807B017CC720108737B746E384B745E6006BEA01743352E1F1
S123F8408025ECC6017B0146200316EB7D1F014601F8323D6CA869861F014401791E0161BA
S123F8600810FC016049494949496C84C7876C822033FE0162FC0160C4078749B7C54656B2
S123F880CD00003BFC0160C4E03BC60334EE8216FADFEA85AA846C8AB754EA81AA806C889D
S123F8A00C88801B86EC848C06672626EC822622C6016B86B6016C840F6A87C72010873710
S123F8C0B745E381B746E6E201646B403352E18725EC1D0144FEE6861B883D6CAC3B698405
S123F8E0E6848759B745E6E2E8F687B746E6E2E8F719EE02B764ED8A136C80CC1F40B7561B
S123F900EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B00E6EAE88A
S123F920F753861012A6EAE8F64337AAB0EE826A00C601200C16EB7D6284E684C11225A05C
S123F940C71B863D14103D790011CC09395B105A12CF390016E82906EA0BFEE78005003D5D
S123F960FEE78205003DFEE78405003DFEE78605003DFEE78805003DFEE78A05003DFEE73D
S123F9808C05003DFEE78E05003DFEE79005003DFEE79205003DFEE79405003DFEE7960535
S123F9A0003DFEE79805003DFEE79A05003DFEE79C05003DFEE79E05003DFEE7A005003D37
S123F9C0FEE7A205003DFEE7A405003DFEE7A605003DFEE7A805003DFEE7AA05003DFEE73D
S123F9E0AC05003DFEE7AE05003DFEE7B005003DFEE7B205003DFEE7B405003DFEE7B60515
S123FA00003DFEE7B805003DFEE7BA05003DFEE7BC05003DFEE7BE05003DFEE7C005003D36
S123FA20FEE7C205003DFEE7C405003DFEE7C605003DFEE7C805003DFEE7CA05003DFEE73C
S123FA40CC05003DFEE7CE05003DFEE7D005003DFEE7D205003DFEE7D405003DFEE7D605F4
S123FA60003DFEE7D805003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE7E005003D36
S123FA80FEE7E205003DFEE7E405003DFEE7E605003DFEE7E805003DFEE7EA05003DFEE73C
S123FAA0EC05003DFEE7EE05003DFEE7F005003DFEE7F205003DFEE7F405003DFEE7F605D4
S123FAC0003DFEE7F805003DFEE7FC05003D87D7B7C6270A59B7C55545B7C50436F63D87B8
S123FAE0D7B7C6270AB7C549B7C546560436F63DAC84270E34B7C5E285A284B7C510FB30DA
S123FB002002AE82311B84054004A401083D046401098300013D87C76C82EC8C261FEE8EE4
S123FB20ED86EC8811280DEC86CD0000116D82B746EC88116D846C8887C76C863D972709AA
S123FB40EE86B7C5CD00002008EE8DE686ED87B7C61135ECF010133B35ECF012ED8413E3DA
S123FB60B130B7C5CD0000356581A38CB7C5E28BA28A310446113669AF3137323433EEF03F
S123FB801011B76532201F252A046403044539E78E2706EE8E87C7200BB7C5363469AFEEF4
S123FBA0F013313A1810083A34A3B1B74620A33102209F4151B7C5415104A40108AE8E2280
S123FBC0EE2505ACF01024E7316D84698369826C886E863D3B341B9C16FB1630ECB5EDB574
S123FBE005403BB704B7053A3D30E6E605E53037E1310460022504E61F2002E6E51AE53381
S10CFC00050000013901040000B3
S123FF80F95AF960F966F96CF972F978F97EF984F98AF990F996F99CF9A2F9A8F9AEF9B45D
S123FFA0F9BAF9C0F9C6F9CCF9D2F9D8F9DEF9E4F9EAF9F0F9F6F9FCFA02FA08FA0EFA1439
S123FFC0FA1AFA20FA26FA2CFA32FA38FA3EFA44FA4AFA50FA56FA5CFA62FA68FA6EFA740D
S123FFE0FA7AFA80FA86FA8CFA92FA98FA9EFAA4FAAAFAB0FAB6FABCFAC2F947FAC8F94703
S123F020E68204010FCCE96F3BCC019FCE000016F7C61B821B833D1B983BEC8EEE8C16FB79
S123F040723B16F1163B16F10A3BEC8216FB72A3F018B7C5E2F017A2F016343BEC88EE845D
S123F06016FB541B862240FCE840ACF01022382608FCE842ACF012222EECF012E38E3BEC22
S123F0808EE9F013A9F012B7453A16FB723B16F1163B07763BEC8216FB723B34EC88EE84FD
S123F0A016FB541B862303C7205D076A3BFCE8D8F9E8DDB9E8DC3BEC828302006C883AC21B
S123F0C00082006C84EDF014EEF012C60916FB43B746C60916FB326C8A6E88EE8634ACB3B4
S123F0E0260BEC86AC822605CC3B952003CC39913BEEF01434EEF01434EE8634ECF016EEAC
S123F100F01416F42F1B881B8A3DFCE8D8F9E8DDB9E8DCB7D43DFCE8DAF3E8DE3D1B943BCC
S123F1203416FB723BFCE8DAF3E8DE3B16F21E3BEC8216FB72A3F01AB7C5E2F019A2F01817
S123F140343BEC88EE8416FB541B862229EDF014EEF012C60916FB43B746C60916FB326C86
S123F1608E6E8CBEE84018250091FCE840AC8C2607FCE842AC8E2230ECF014E3823BEC8216
S123F180E9F015A9F014B7453A16FB723BFCE8DAF3E8DE3B16F21E3BEC8216FB723B34EC7D
S123F1A088EE8416FB541B862251ECF014A38E3BECF014E28FA28E3BEC82E3866C8C3AE9BE
S123F1C083A9826C88C609EE88ED8A16FB436C86EC8A84018C00001B822705EE84086E84CB
S123F1E06D8A202E16EB7DC64037EC8F3BEC8F3BCC55AA16F5B21B85046103C7201CEC8E92
S123F200C302006C8EEC8CC90089006C8CEE8A086E8AEC8AAC8425CCC6011BF0103DFCE857
S123F220D8F9E8DDB9E8DCB7D43DC7876CACFE3B9704A509FE3B9504A503522051CE01807B
S123F2406E828737E383B745E6E23B9987E3816C813352C18025EB61816180EE80086E8029
S123F260FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC3BEC82830082B7453AC2008200343BC684
S123F28002873BC73B1A8AB75416F0371B8A1B843D1B96C7876C88FCE8DAF3E8DE3BFCE8AE
S123F2A0D8F9E8DDB9E8DC3BEC828300826C863AC20082006C82FCE8DAF3E8DE6C80FCE8E4
S123F2C0D8F9E8DDB9E8DC3BEC828300806C8A3AC20082006C86C71B828737E3873BCC0072
S123F2E000E988A987B7453A16F56487E3896C893352C18025E3EC82EE8016F564B710C735
S123F3003BEC84EE8216FB6D16F56487E380E38A1B822603C60121C71B8A3DFC3B9704A4BD
S123F32006FC3B95048409CC3B9516F4EC044115FC399304A406FC399104840BCC399116FF
S123F340F4EC046102C73DC787B7456AE23D9952C11625F4C6013DFCE8DAF3E8DE3BFCE816
S123F360D8F9E8DDB9E8DCB7453A16F58DC340003BCC0000C9008900B7453A3D6CAD348408
S123F38001044403C72043EE87EC02AC822606EC00AC802733EC806C00EC826C02D6306B9F
S123F3A084EC82EE8016F5815B30EE871A0434C7873BEC86EE8416F58D3BC7873B860216A4
S123F3C0EF9C1B88E6845B30C6011B853D6CAA34FCE8DAF3E8DE3BFCE8D8F9E8DDB9E8DC6F
S123F3E03BEC828302006C8A3AC20082006C86EC8C8C3B951B822607CC39916C8A2019EC26
S123F40082AC86260BAE842607CC3B956C8A2008EC8A16F4EC04410FEC8A3BEC84EE821683
S123F420F37C1B82046103C7878FEC8A1B883D1B983B34EDF012EEF010C60916FB43B74602
S123F440C60916FB326C866E84EEF014EC0204A412EC0004A40D34EC88EE8616F37C1B8239
S123F460044160EEF014EC02AC862606EC00AC84270F34EC88EE8616F3CD1B826CF014272D
S123F48042EEF014ECF012A3021A041AE66E88EC8E6C8A16EB7DEEF0141904EC8835A3B193
S123F4A08C0200252634EC88C30200B745EC86C9008900B746B754B76516F3CD1B826CF04F
S123F4C0142603C72023C300046C88EE8AE630ED886B706D886E8AEC82EE8016FB726C820E
S123F4E06E800474AE26ACC6011B8C3D1B973BC6016B8AEE80EC0204A408EC0004A403C764
S123F500205FC7876C88EC8859B746EE80E3026C84CC0000E901A9006C82B75419EEEC448A
S123F5206C8616EB7DC62037EC853BEE8534EC8B16F5B21B85044119EC84EE8216F564E185
S123F54086260EEC84EE8216FB6D16F564E1872704698A200AEE88086E888E010025A7E6BB
S123F5608A1B8B3D3B34D63037EC8316F5815B30EC83EE8116F58DB745E600325A301B8435
S123F5803D3B34C60EED8216FB431B843D843FC380003D3BC787B74537E6E2E8E06BE23D2F
S123F5A0993352C11625EECC3D996C8015F300003A3D6CAC6982D6306B83EC88EE8607C18B
S123F5C05B301D010303545451C403FA01037B0103C6307B0105B6010584808180261EECD3
S123F5E088EE8607A8EE80B7466E40E68A7B010607A11F010530022004C6016B82E6835BB6
S123F60030E6821B843D06EFC33BEC8A3BEC8A3BEC8A3BEC8A3BEC8816F0371B88303D3BBF
S123F62034EC883BEC883BEC8616F11D1B841B843D16F2913D16F3573D16F22A0461013DDB
S123F64016F31B3D16F6614C4001C6015B4EDC44C35DC05C504C4680C7877C3DB27C3DB0FB
S123F6603D79004C79004679004D79004079004779004879004979004A79004B3D4F4E01A1
S123F6801AC6015B4EDC50C35DC05C50FC3DB2FE3DB016FB6D7C3DB27E3DB03D07DFFC3D9E
S123F6A0B2FE3DB03D7900CB7900CA7900C87900C9C61A873B5AC85BC94CCB0C3A3D6BADC8
S123F6C0C140230ECCE9A43BC68887B70516F7C61B82E68016F7B204010ECCE9A43BC68C41
S123F6E087B70516F7C61B82C7876C81202416EB7DEC85E381B745E60016F7B204010ECC01
S123F700E9A43BC69587B70516F7C61B82EE81086E81E68087AC8122D51B833D3BF63DB49B
S123F7202625CC3DB916F7A1042173F63DB9276EC140226A16F69C7C3DB77E3DB5793DFA2C
S123F740C6017B3DB42057F63DFA87C3000187C33DB916F7A1042125723DFAF63DFAF13D47
S123F760B9263BEE8034C7873BCE3DBA343BF63DFA16EF9C1B88793DB4C601202216F69C80
S123F7803BFC3DB7C30064B746FC3DB5C9008900353BEC8416FB541B822303793DB4C7306D
S123F7A03D3B4FCC2009D6CFEE806B00C60121C7303D4ECC8002C73D5BCF200316EB7D4F35
S123F7C0CC80F9C6013D16EB7D20FB1B96C6017B01401F014101FBC6807B0141CC01F43BB3
S123F7E01A82341A85B75416F93F1B8404010ECCE9D83BC6F187B70516F7C61B82E6807B78
S123F8000142E6817B01431D014B30CC06676C88C7876C866C846C827B0150C6087B015130
S123F820C60C7B0152C6CE7B01537A0154C6107B01557A01567A0157C6CC7B0158C6E07B21
S123F84001597A015A7A015B7A015CC6077B015D7A015E7A015F1D0140011E014101FBC6EE
S123F860017B014A1B8A3D371E0146010FCCE9D83BCC0133CE000016F7C61B82CC20FC7BC6
S123F88001707A0171790172790173E6807B017CC720108737B746E384B745E6006BEA017F
S123F8A0743352E18025ECC6017B0146200316EB7D1F014601F8323D6CA869861F01440179
S123F8C0791E01610810FC016049494949496C84C7876C822033FE0162FC0160C407874971
S123F8E0B7C54656CD00003BFC0160C4E03BC60334EE8216FB43EA85AA846C8AB754EA81DE
S123F900AA806C880C88801B86EC848C06672626EC822622C6016B86B6016C840F6A87C77F
S123F92020108737B745E381B746E6E201646B403352E18725EC1D0144FEE6861B883D6C8A
S123F940AC3B6984E6848759B745E6E2E8F687B746E6E2E8F719EE02B764ED8A136C80CC52
S123F9601F40B756EE80181004642ECC1F40EE801810B7516B852721C140221D53EE886B76
S123F98000E6EAE8F753861012A6EAE8F64337AAB0EE826A00C601200C16EB7D6284E684DC
S123F9A0C11225A0C71B863D14103D790011CC09395B105A12CF390016E82906EA0BFEE727
S123F9C08005003DFEE78205003DFEE78405003DFEE78605003DFEE78805003DFEE78A053D
S123F9E0003DFEE78C05003DFEE78E05003DFEE79005003DFEE79205003DFEE79405003D33
S123FA00FEE79605003DFEE79805003DFEE79A05003DFEE79C05003DFEE79E05003DFEE738
S123FA20A005003DFEE7A205003DFEE7A405003DFEE7A605003DFEE7A805003DFEE7AA051C
S123FA40003DFEE7AC05003DFEE7AE05003DFEE7B005003DFEE7B205003DFEE7B405003D32
S123FA60FEE7B605003DFEE7B805003DFEE7BA05003DFEE7BC05003DFEE7BE05003DFEE738
S123FA80C005003DFEE7C205003DFEE7C405003DFEE7C605003DFEE7C805003DFEE7CA05FC
S123FAA0003DFEE7CC05003DFEE7CE05003DFEE7D005003DFEE7D205003DFEE7D405003D32
S123FAC0FEE7D605003DFEE7D805003DFEE7DA05003DFEE7DC05003DFEE7DE05003DFEE738
S123FAE0E005003DFEE7E205003DFEE7E405003DFEE7E605003DFEE7E805003DFEE7EA05DC
S123FB00003DFEE7EC05003DFEE7EE05003DFEE7F005003DFEE7F205003DFEE7F405003D31
S123FB20FEE7F605003DFEE7F805003DFEE7FC05003D87D7B7C6270A59B7C55545B7C50467
S123FB4036F63D87D7B7C6270AB7C549B7C546560436F63DAC84270E34B7C5E285A284B789
S123FB60C510FB302002AE82311B84054004A401083D046401098300013D87C76C82EC8C45
S123FB80261FEE8EED86EC8811280DEC86CD0000116D82B746EC88116D846C8887C76C868D
S123FBA03D972709EE86B7C5CD00002008EE8DE686ED87B7C61135ECF010133B35ECF012DD
S123FBC0ED8413E3B130B7C5CD0000356581A38CB7C5E28BA28A310446113669AF313732BD
S123FBE03433EEF01011B76532201F252A046403044539E78E2706EE8E87C7200BB7C53689
S123FC003469AFEEF013313A1810083A34A3B1B74620A33102209F4151B7C5415104A4014B
S123FC2008AE8E22EE2505ACF01024E7316D84698369826C886E863D3B341B9C16FB7A308C
S123FC40ECB5EDB505403BB704B7053A3D30E6E605E53037E1310460022504E61F2002E6F4
S110FC60E51AE53305000001390104000038
S123FF80F9BEF9C4F9CAF9D0F9D6F9DCF9E2F9E8F9EEF9F4F9FAFA00FA06FA0CFA12FA1818
S123FFA0FA1EFA24FA2AFA30FA36FA3CFA42FA48FA4EFA54FA5AFA60FA66FA6CFA72FA78ED
S123FFC0FA7EFA84FA8AFA90FA96FA9CFAA2FAA8FAAEFAB4FABAFAC0FAC6FACCFAD2FAD8CD
S123FFE0FADEFAE4FAEAFAF0FAF6FAFCFB02FB08FB0EFB14FB1AFB20FB26F9ABFB2CF9ABBB
S9030000FC

View File

@ -39,7 +39,7 @@ _startupData is allocated at 0xE82E and uses 6 Bytes
extern struct _tagStartup {
unsigned nofZeroOut 1
_Range pZeroOut 0x3900 1275
_Copy *toCopyDownBeg 0xFC02
_Copy *toCopyDownBeg 0xFC66
} _startupData;
*********************************************************************************************
@ -50,8 +50,8 @@ Section Name Size Type From To Segment
.startData 10 R 0xE82E 0xE837 ROM_C000
.rodata 226 R 0xE838 0xE919 ROM_C000
.rodata1 241 R 0xE91A 0xEA0A ROM_C000
.text 4291 R 0xEA0B 0xFACD ROM_C000
.copy 7 R 0xFC02 0xFC08 ROM_C000
.text 4391 R 0xEA0B 0xFB31 ROM_C000
.copy 7 R 0xFC66 0xFC6C ROM_C000
.stack 256 R/W 0x3800 0x38FF RAM
.data 2 R/W 0x3900 0x3901 RAM
.abs_section_8 1 N/I 0x8 0x8 .absSeg0
@ -397,10 +397,10 @@ Section Name Size Type From To Segment
.abs_section_2be 2 N/I 0x2BE 0x2BF .absSeg340
.abs_section_ff80 128 R 0xFF80 0xFFFF .absSeg341
.bss 1273 R/W 0x3902 0x3DFA RAM
RUNTIME 308 R 0xFACE 0xFC01 ROM_C000
RUNTIME 308 R 0xFB32 0xFC65 ROM_C000
Summary of section sizes per section type:
READ_ONLY (R): 1489 (dec: 5257)
READ_ONLY (R): 14ED (dec: 5357)
READ_WRITE (R/W): 5FB (dec: 1531)
NO_INIT (N/I): 190 (dec: 400)
@ -415,16 +415,16 @@ OBJECT-ALLOCATION SECTION
---------------------------------------------------------------------------------------------
MODULE: -- rtshc12.c.o (ansisi.lib) --
- PROCEDURES:
_LSHL FACE 11 17 3 RUNTIME
_LSHRU FADF 11 17 6 RUNTIME
_LCMP FAF0 19 25 5 RUNTIME
_LINC FB09 5 5 4 RUNTIME
_LDEC FB0E 8 8 6 RUNTIME
_lDivMod FB16 BE 190 1 RUNTIME
_LDIVU FBD4 E 14 1 RUNTIME
_ILSEXT FBE2 7 7 1 RUNTIME
_CASE_DIRECT_BYTE FBE9 5 5 3 RUNTIME
_CASE_CHECKED_BYTE FBEE 14 20 2 RUNTIME
_LSHL FB32 11 17 3 RUNTIME
_LSHRU FB43 11 17 6 RUNTIME
_LCMP FB54 19 25 7 RUNTIME
_LINC FB6D 5 5 4 RUNTIME
_LDEC FB72 8 8 10 RUNTIME
_lDivMod FB7A BE 190 1 RUNTIME
_LDIVU FC38 E 14 1 RUNTIME
_ILSEXT FC46 7 7 1 RUNTIME
_CASE_DIRECT_BYTE FC4D 5 5 3 RUNTIME
_CASE_CHECKED_BYTE FC52 14 20 2 RUNTIME
- VARIABLES:
MODULE: -- mc9s12dg256.c.o --
- PROCEDURES:
@ -842,21 +842,21 @@ MODULE: -- cpu.c.o --
MODULE: -- flash.c.o --
- PROCEDURES:
FlashInit EFC3 74 116 1 .text
FlashWrite F037 B6 182 2 .text
FlashErase F0ED DD 221 1 .text
FlashWriteChecksum F1CA 67 103 1 .text
FlashVerifyChecksum F231 8A 138 1 .text
FlashDone F2BB 3C 60 1 .text
FlashGetUserProgBaseAddress F2F7 25 37 1 .text
FlashInitBlock F31C 51 81 2 .text
FlashSwitchBlock F36D 62 98 2 .text
FlashAddToBlock F3CF BD 189 1 .text
FlashWriteBlock F48C 78 120 3 .text
FlashGetLinearAddrByte F504 1D 29 5 .text
FlashGetPhysPage F521 C 12 3 .text
FlashGetPhysAddr F52D 6 6 4 .text
FlashExecuteCommand F533 1F 31 1 .text
FlashOperate F552 54 84 2 .text
FlashWrite F037 E6 230 5 .text
FlashErase F11D 10D 269 3 .text
FlashWriteChecksum F22A 67 103 1 .text
FlashVerifyChecksum F291 8A 138 1 .text
FlashDone F31B 3C 60 1 .text
FlashGetUserProgBaseAddress F357 25 37 1 .text
FlashInitBlock F37C 51 81 2 .text
FlashSwitchBlock F3CD 62 98 2 .text
FlashAddToBlock F42F BD 189 1 .text
FlashWriteBlock F4EC 78 120 3 .text
FlashGetLinearAddrByte F564 1D 29 5 .text
FlashGetPhysPage F581 C 12 3 .text
FlashGetPhysAddr F58D 6 6 4 .text
FlashExecuteCommand F593 1F 31 1 .text
FlashOperate F5B2 54 84 2 .text
- VARIABLES:
flashLayout E840 A0 160 45 .rodata
flashExecCmd E8E0 16 22 1 .rodata
@ -867,28 +867,28 @@ MODULE: -- flash.c.o --
flashMaxNrBlocks 3DAF 1 1 1 .bss
MODULE: -- nvm.c.o --
- PROCEDURES:
NvmInit F5A6 3 3 2 .text
NvmWrite F5A9 16 22 2 .text
NvmErase F5BF 12 18 1 .text
NvmVerifyChecksum F5D1 4 4 1 .text
NvmGetUserProgBaseAddress F5D5 4 4 1 .text
NvmDone F5D9 B 11 1 .text
NvmInit F606 3 3 2 .text
NvmWrite F609 16 22 2 .text
NvmErase F61F 12 18 1 .text
NvmVerifyChecksum F631 4 4 1 .text
NvmGetUserProgBaseAddress F635 4 4 1 .text
NvmDone F639 B 11 1 .text
- VARIABLES:
MODULE: -- timer.c.o --
- PROCEDURES:
TimerInit F5E4 1D 29 1 .text
TimerReset F601 1C 28 2 .text
TimerUpdate F61D 1F 31 2 .text
TimerGet F63C 9 9 4 .text
TimerInit F644 1D 29 1 .text
TimerReset F661 1C 28 2 .text
TimerUpdate F67D 1F 31 2 .text
TimerGet F69C 9 9 4 .text
- VARIABLES:
millisecond_counter 3DB0 4 4 8 .bss
MODULE: -- uart.c.o --
- PROCEDURES:
UartInit F645 19 25 1 .text
UartTransmitPacket F65E 5E 94 1 .text
UartReceivePacket F6BC 81 129 1 .text
UartReceiveByte F73D 11 17 2 .text
UartTransmitByte F74E 14 20 2 .text
UartInit F6A5 19 25 1 .text
UartTransmitPacket F6BE 5E 94 1 .text
UartReceivePacket F71C 85 133 1 .text
UartReceiveByte F7A1 11 17 2 .text
UartTransmitByte F7B2 14 20 2 .text
- VARIABLES:
STRING.C..Work.software.Ope.1 E9A4 34 52 3 .rodata1
xcpCtoRxInProgress.4 3DB4 1 1 4 .bss
@ -897,20 +897,20 @@ MODULE: -- uart.c.o --
xcpCtoRxLength.3 3DFA 1 1 5 .bss
MODULE: -- assert.c.o --
- PROCEDURES:
AssertFailure F762 5 5 7 .text
AssertFailure F7C6 5 5 7 .text
- VARIABLES:
MODULE: -- can.c.o --
- PROCEDURES:
CanInit F767 9C 156 1 .text
CanTransmitPacket F803 51 81 1 .text
CanReceivePacket F854 87 135 1 .text
CanGetSpeedConfig F8DB 69 105 1 .text
CanInit F7CB 9C 156 1 .text
CanTransmitPacket F867 51 81 1 .text
CanReceivePacket F8B8 87 135 1 .text
CanGetSpeedConfig F93F 69 105 1 .text
- VARIABLES:
canTiming E8F6 24 36 4 .rodata
STRING.C..Work.software.Ope.1 E9D8 33 51 2 .rodata1
MODULE: -- cpu_comp.c.o --
- PROCEDURES:
CpuIrqDisable F944 3 3 1 .text
CpuIrqDisable F9A8 3 3 1 .text
- VARIABLES:
MODULE: -- cstartup.c.o --
- PROCEDURES:
@ -920,69 +920,69 @@ MODULE: -- cstartup.c.o --
_startupData E82E 6 6 3 .startData
MODULE: -- vectors.c.o --
- PROCEDURES:
reset_handler F947 13 19 2 .text
Vector0_handler F95A 6 6 1 .text
Vector1_handler F960 6 6 1 .text
Vector2_handler F966 6 6 1 .text
Vector3_handler F96C 6 6 1 .text
Vector4_handler F972 6 6 1 .text
Vector5_handler F978 6 6 1 .text
Vector6_handler F97E 6 6 1 .text
Vector7_handler F984 6 6 1 .text
Vector8_handler F98A 6 6 1 .text
Vector9_handler F990 6 6 1 .text
Vector10_handler F996 6 6 1 .text
Vector11_handler F99C 6 6 1 .text
Vector12_handler F9A2 6 6 1 .text
Vector13_handler F9A8 6 6 1 .text
Vector14_handler F9AE 6 6 1 .text
Vector15_handler F9B4 6 6 1 .text
Vector16_handler F9BA 6 6 1 .text
Vector17_handler F9C0 6 6 1 .text
Vector18_handler F9C6 6 6 1 .text
Vector19_handler F9CC 6 6 1 .text
Vector20_handler F9D2 6 6 1 .text
Vector21_handler F9D8 6 6 1 .text
Vector22_handler F9DE 6 6 1 .text
Vector23_handler F9E4 6 6 1 .text
Vector24_handler F9EA 6 6 1 .text
Vector25_handler F9F0 6 6 1 .text
Vector26_handler F9F6 6 6 1 .text
Vector27_handler F9FC 6 6 1 .text
Vector28_handler FA02 6 6 1 .text
Vector29_handler FA08 6 6 1 .text
Vector30_handler FA0E 6 6 1 .text
Vector31_handler FA14 6 6 1 .text
Vector32_handler FA1A 6 6 1 .text
Vector33_handler FA20 6 6 1 .text
Vector34_handler FA26 6 6 1 .text
Vector35_handler FA2C 6 6 1 .text
Vector36_handler FA32 6 6 1 .text
Vector37_handler FA38 6 6 1 .text
Vector38_handler FA3E 6 6 1 .text
Vector39_handler FA44 6 6 1 .text
Vector40_handler FA4A 6 6 1 .text
Vector41_handler FA50 6 6 1 .text
Vector42_handler FA56 6 6 1 .text
Vector43_handler FA5C 6 6 1 .text
Vector44_handler FA62 6 6 1 .text
Vector45_handler FA68 6 6 1 .text
Vector46_handler FA6E 6 6 1 .text
Vector47_handler FA74 6 6 1 .text
Vector48_handler FA7A 6 6 1 .text
Vector49_handler FA80 6 6 1 .text
Vector50_handler FA86 6 6 1 .text
Vector51_handler FA8C 6 6 1 .text
Vector52_handler FA92 6 6 1 .text
Vector53_handler FA98 6 6 1 .text
Vector54_handler FA9E 6 6 1 .text
Vector55_handler FAA4 6 6 1 .text
Vector56_handler FAAA 6 6 1 .text
Vector57_handler FAB0 6 6 1 .text
Vector58_handler FAB6 6 6 1 .text
Vector59_handler FABC 6 6 1 .text
Vector60_handler FAC2 6 6 1 .text
Vector62_handler FAC8 6 6 1 .text
reset_handler F9AB 13 19 2 .text
Vector0_handler F9BE 6 6 1 .text
Vector1_handler F9C4 6 6 1 .text
Vector2_handler F9CA 6 6 1 .text
Vector3_handler F9D0 6 6 1 .text
Vector4_handler F9D6 6 6 1 .text
Vector5_handler F9DC 6 6 1 .text
Vector6_handler F9E2 6 6 1 .text
Vector7_handler F9E8 6 6 1 .text
Vector8_handler F9EE 6 6 1 .text
Vector9_handler F9F4 6 6 1 .text
Vector10_handler F9FA 6 6 1 .text
Vector11_handler FA00 6 6 1 .text
Vector12_handler FA06 6 6 1 .text
Vector13_handler FA0C 6 6 1 .text
Vector14_handler FA12 6 6 1 .text
Vector15_handler FA18 6 6 1 .text
Vector16_handler FA1E 6 6 1 .text
Vector17_handler FA24 6 6 1 .text
Vector18_handler FA2A 6 6 1 .text
Vector19_handler FA30 6 6 1 .text
Vector20_handler FA36 6 6 1 .text
Vector21_handler FA3C 6 6 1 .text
Vector22_handler FA42 6 6 1 .text
Vector23_handler FA48 6 6 1 .text
Vector24_handler FA4E 6 6 1 .text
Vector25_handler FA54 6 6 1 .text
Vector26_handler FA5A 6 6 1 .text
Vector27_handler FA60 6 6 1 .text
Vector28_handler FA66 6 6 1 .text
Vector29_handler FA6C 6 6 1 .text
Vector30_handler FA72 6 6 1 .text
Vector31_handler FA78 6 6 1 .text
Vector32_handler FA7E 6 6 1 .text
Vector33_handler FA84 6 6 1 .text
Vector34_handler FA8A 6 6 1 .text
Vector35_handler FA90 6 6 1 .text
Vector36_handler FA96 6 6 1 .text
Vector37_handler FA9C 6 6 1 .text
Vector38_handler FAA2 6 6 1 .text
Vector39_handler FAA8 6 6 1 .text
Vector40_handler FAAE 6 6 1 .text
Vector41_handler FAB4 6 6 1 .text
Vector42_handler FABA 6 6 1 .text
Vector43_handler FAC0 6 6 1 .text
Vector44_handler FAC6 6 6 1 .text
Vector45_handler FACC 6 6 1 .text
Vector46_handler FAD2 6 6 1 .text
Vector47_handler FAD8 6 6 1 .text
Vector48_handler FADE 6 6 1 .text
Vector49_handler FAE4 6 6 1 .text
Vector50_handler FAEA 6 6 1 .text
Vector51_handler FAF0 6 6 1 .text
Vector52_handler FAF6 6 6 1 .text
Vector53_handler FAFC 6 6 1 .text
Vector54_handler FB02 6 6 1 .text
Vector55_handler FB08 6 6 1 .text
Vector56_handler FB0E 6 6 1 .text
Vector57_handler FB14 6 6 1 .text
Vector58_handler FB1A 6 6 1 .text
Vector59_handler FB20 6 6 1 .text
Vector60_handler FB26 6 6 1 .text
Vector62_handler FB2C 6 6 1 .text
- VARIABLES:
_vectab FF80 80 128 0 .abs_section_ff80
- LABELS:
@ -1001,10 +1001,10 @@ MODULE STATISTIC
cop.c.o 0 2 0
xcp.c.o 74 1020 8
cpu.c.o 0 73 0
flash.c.o 1055 1507 235
flash.c.o 1055 1603 235
nvm.c.o 0 62 0
timer.c.o 4 97 0
uart.c.o 71 285 52
uart.c.o 71 289 52
assert.c.o 0 5 0
can.c.o 0 477 87
cpu_comp.c.o 0 3 0
@ -2160,115 +2160,115 @@ OBJECT LIST SORTED BY ADDRESS
CpuStartUserProgram EF7D 1F 31 2 .text
CpuMemCopy EF9C 27 39 4 .text
FlashInit EFC3 74 116 1 .text
FlashWrite F037 B6 182 2 .text
FlashErase F0ED DD 221 1 .text
FlashWriteChecksum F1CA 67 103 1 .text
FlashVerifyChecksum F231 8A 138 1 .text
FlashDone F2BB 3C 60 1 .text
FlashGetUserProgBaseAddress F2F7 25 37 1 .text
FlashInitBlock F31C 51 81 2 .text
FlashSwitchBlock F36D 62 98 2 .text
FlashAddToBlock F3CF BD 189 1 .text
FlashWriteBlock F48C 78 120 3 .text
FlashGetLinearAddrByte F504 1D 29 5 .text
FlashGetPhysPage F521 C 12 3 .text
FlashGetPhysAddr F52D 6 6 4 .text
FlashExecuteCommand F533 1F 31 1 .text
FlashOperate F552 54 84 2 .text
NvmInit F5A6 3 3 2 .text
NvmWrite F5A9 16 22 2 .text
NvmErase F5BF 12 18 1 .text
NvmVerifyChecksum F5D1 4 4 1 .text
NvmGetUserProgBaseAddress F5D5 4 4 1 .text
NvmDone F5D9 B 11 1 .text
TimerInit F5E4 1D 29 1 .text
TimerReset F601 1C 28 2 .text
TimerUpdate F61D 1F 31 2 .text
TimerGet F63C 9 9 4 .text
UartInit F645 19 25 1 .text
UartTransmitPacket F65E 5E 94 1 .text
UartReceivePacket F6BC 81 129 1 .text
UartReceiveByte F73D 11 17 2 .text
UartTransmitByte F74E 14 20 2 .text
AssertFailure F762 5 5 7 .text
CanInit F767 9C 156 1 .text
CanTransmitPacket F803 51 81 1 .text
CanReceivePacket F854 87 135 1 .text
CanGetSpeedConfig F8DB 69 105 1 .text
CpuIrqDisable F944 3 3 1 .text
reset_handler F947 13 19 2 .text
Vector0_handler F95A 6 6 1 .text
Vector1_handler F960 6 6 1 .text
Vector2_handler F966 6 6 1 .text
Vector3_handler F96C 6 6 1 .text
Vector4_handler F972 6 6 1 .text
Vector5_handler F978 6 6 1 .text
Vector6_handler F97E 6 6 1 .text
Vector7_handler F984 6 6 1 .text
Vector8_handler F98A 6 6 1 .text
Vector9_handler F990 6 6 1 .text
Vector10_handler F996 6 6 1 .text
Vector11_handler F99C 6 6 1 .text
Vector12_handler F9A2 6 6 1 .text
Vector13_handler F9A8 6 6 1 .text
Vector14_handler F9AE 6 6 1 .text
Vector15_handler F9B4 6 6 1 .text
Vector16_handler F9BA 6 6 1 .text
Vector17_handler F9C0 6 6 1 .text
Vector18_handler F9C6 6 6 1 .text
Vector19_handler F9CC 6 6 1 .text
Vector20_handler F9D2 6 6 1 .text
Vector21_handler F9D8 6 6 1 .text
Vector22_handler F9DE 6 6 1 .text
Vector23_handler F9E4 6 6 1 .text
Vector24_handler F9EA 6 6 1 .text
Vector25_handler F9F0 6 6 1 .text
Vector26_handler F9F6 6 6 1 .text
Vector27_handler F9FC 6 6 1 .text
Vector28_handler FA02 6 6 1 .text
Vector29_handler FA08 6 6 1 .text
Vector30_handler FA0E 6 6 1 .text
Vector31_handler FA14 6 6 1 .text
Vector32_handler FA1A 6 6 1 .text
Vector33_handler FA20 6 6 1 .text
Vector34_handler FA26 6 6 1 .text
Vector35_handler FA2C 6 6 1 .text
Vector36_handler FA32 6 6 1 .text
Vector37_handler FA38 6 6 1 .text
Vector38_handler FA3E 6 6 1 .text
Vector39_handler FA44 6 6 1 .text
Vector40_handler FA4A 6 6 1 .text
Vector41_handler FA50 6 6 1 .text
Vector42_handler FA56 6 6 1 .text
Vector43_handler FA5C 6 6 1 .text
Vector44_handler FA62 6 6 1 .text
Vector45_handler FA68 6 6 1 .text
Vector46_handler FA6E 6 6 1 .text
Vector47_handler FA74 6 6 1 .text
Vector48_handler FA7A 6 6 1 .text
Vector49_handler FA80 6 6 1 .text
Vector50_handler FA86 6 6 1 .text
Vector51_handler FA8C 6 6 1 .text
Vector52_handler FA92 6 6 1 .text
Vector53_handler FA98 6 6 1 .text
Vector54_handler FA9E 6 6 1 .text
Vector55_handler FAA4 6 6 1 .text
Vector56_handler FAAA 6 6 1 .text
Vector57_handler FAB0 6 6 1 .text
Vector58_handler FAB6 6 6 1 .text
Vector59_handler FABC 6 6 1 .text
Vector60_handler FAC2 6 6 1 .text
Vector62_handler FAC8 6 6 1 .text
_LSHL FACE 11 17 3 RUNTIME
_LSHRU FADF 11 17 6 RUNTIME
_LCMP FAF0 19 25 5 RUNTIME
_LINC FB09 5 5 4 RUNTIME
_LDEC FB0E 8 8 6 RUNTIME
_lDivMod FB16 BE 190 1 RUNTIME
_LDIVU FBD4 E 14 1 RUNTIME
_ILSEXT FBE2 7 7 1 RUNTIME
_CASE_DIRECT_BYTE FBE9 5 5 3 RUNTIME
_CASE_CHECKED_BYTE FBEE 14 20 2 RUNTIME
FlashWrite F037 E6 230 5 .text
FlashErase F11D 10D 269 3 .text
FlashWriteChecksum F22A 67 103 1 .text
FlashVerifyChecksum F291 8A 138 1 .text
FlashDone F31B 3C 60 1 .text
FlashGetUserProgBaseAddress F357 25 37 1 .text
FlashInitBlock F37C 51 81 2 .text
FlashSwitchBlock F3CD 62 98 2 .text
FlashAddToBlock F42F BD 189 1 .text
FlashWriteBlock F4EC 78 120 3 .text
FlashGetLinearAddrByte F564 1D 29 5 .text
FlashGetPhysPage F581 C 12 3 .text
FlashGetPhysAddr F58D 6 6 4 .text
FlashExecuteCommand F593 1F 31 1 .text
FlashOperate F5B2 54 84 2 .text
NvmInit F606 3 3 2 .text
NvmWrite F609 16 22 2 .text
NvmErase F61F 12 18 1 .text
NvmVerifyChecksum F631 4 4 1 .text
NvmGetUserProgBaseAddress F635 4 4 1 .text
NvmDone F639 B 11 1 .text
TimerInit F644 1D 29 1 .text
TimerReset F661 1C 28 2 .text
TimerUpdate F67D 1F 31 2 .text
TimerGet F69C 9 9 4 .text
UartInit F6A5 19 25 1 .text
UartTransmitPacket F6BE 5E 94 1 .text
UartReceivePacket F71C 85 133 1 .text
UartReceiveByte F7A1 11 17 2 .text
UartTransmitByte F7B2 14 20 2 .text
AssertFailure F7C6 5 5 7 .text
CanInit F7CB 9C 156 1 .text
CanTransmitPacket F867 51 81 1 .text
CanReceivePacket F8B8 87 135 1 .text
CanGetSpeedConfig F93F 69 105 1 .text
CpuIrqDisable F9A8 3 3 1 .text
reset_handler F9AB 13 19 2 .text
Vector0_handler F9BE 6 6 1 .text
Vector1_handler F9C4 6 6 1 .text
Vector2_handler F9CA 6 6 1 .text
Vector3_handler F9D0 6 6 1 .text
Vector4_handler F9D6 6 6 1 .text
Vector5_handler F9DC 6 6 1 .text
Vector6_handler F9E2 6 6 1 .text
Vector7_handler F9E8 6 6 1 .text
Vector8_handler F9EE 6 6 1 .text
Vector9_handler F9F4 6 6 1 .text
Vector10_handler F9FA 6 6 1 .text
Vector11_handler FA00 6 6 1 .text
Vector12_handler FA06 6 6 1 .text
Vector13_handler FA0C 6 6 1 .text
Vector14_handler FA12 6 6 1 .text
Vector15_handler FA18 6 6 1 .text
Vector16_handler FA1E 6 6 1 .text
Vector17_handler FA24 6 6 1 .text
Vector18_handler FA2A 6 6 1 .text
Vector19_handler FA30 6 6 1 .text
Vector20_handler FA36 6 6 1 .text
Vector21_handler FA3C 6 6 1 .text
Vector22_handler FA42 6 6 1 .text
Vector23_handler FA48 6 6 1 .text
Vector24_handler FA4E 6 6 1 .text
Vector25_handler FA54 6 6 1 .text
Vector26_handler FA5A 6 6 1 .text
Vector27_handler FA60 6 6 1 .text
Vector28_handler FA66 6 6 1 .text
Vector29_handler FA6C 6 6 1 .text
Vector30_handler FA72 6 6 1 .text
Vector31_handler FA78 6 6 1 .text
Vector32_handler FA7E 6 6 1 .text
Vector33_handler FA84 6 6 1 .text
Vector34_handler FA8A 6 6 1 .text
Vector35_handler FA90 6 6 1 .text
Vector36_handler FA96 6 6 1 .text
Vector37_handler FA9C 6 6 1 .text
Vector38_handler FAA2 6 6 1 .text
Vector39_handler FAA8 6 6 1 .text
Vector40_handler FAAE 6 6 1 .text
Vector41_handler FAB4 6 6 1 .text
Vector42_handler FABA 6 6 1 .text
Vector43_handler FAC0 6 6 1 .text
Vector44_handler FAC6 6 6 1 .text
Vector45_handler FACC 6 6 1 .text
Vector46_handler FAD2 6 6 1 .text
Vector47_handler FAD8 6 6 1 .text
Vector48_handler FADE 6 6 1 .text
Vector49_handler FAE4 6 6 1 .text
Vector50_handler FAEA 6 6 1 .text
Vector51_handler FAF0 6 6 1 .text
Vector52_handler FAF6 6 6 1 .text
Vector53_handler FAFC 6 6 1 .text
Vector54_handler FB02 6 6 1 .text
Vector55_handler FB08 6 6 1 .text
Vector56_handler FB0E 6 6 1 .text
Vector57_handler FB14 6 6 1 .text
Vector58_handler FB1A 6 6 1 .text
Vector59_handler FB20 6 6 1 .text
Vector60_handler FB26 6 6 1 .text
Vector62_handler FB2C 6 6 1 .text
_LSHL FB32 11 17 3 RUNTIME
_LSHRU FB43 11 17 6 RUNTIME
_LCMP FB54 19 25 7 RUNTIME
_LINC FB6D 5 5 4 RUNTIME
_LDEC FB72 8 8 10 RUNTIME
_lDivMod FB7A BE 190 1 RUNTIME
_LDIVU FC38 E 14 1 RUNTIME
_ILSEXT FC46 7 7 1 RUNTIME
_CASE_DIRECT_BYTE FC4D 5 5 3 RUNTIME
_CASE_CHECKED_BYTE FC52 14 20 2 RUNTIME
_vectab FF80 80 128 0 .abs_section_ff80
*********************************************************************************************
@ -2296,13 +2296,13 @@ rtshc12.c.o (ansisi.lib):
*********************************************************************************************
COPYDOWN SECTION
---------------------------------------------------------------------------------------------
------- ROM-ADDRESS: 0xFC02 ---- SIZE 4 ---
------- ROM-ADDRESS: 0xFC66 ---- SIZE 4 ---
Filling bytes inserted
00013901
------- ROM-ADDRESS: 0xFC06 ---- RAM-ADDRESS: 0x3901 ---- SIZE 1 ---
------- ROM-ADDRESS: 0xFC6A ---- RAM-ADDRESS: 0x3901 ---- SIZE 1 ---
Name of initialized Object : comActiveInterface:1
04
------- ROM-ADDRESS: 0xFC07 ---- SIZE 2 ---
------- ROM-ADDRESS: 0xFC6B ---- SIZE 2 ---
Filling bytes inserted
0000
@ -2368,10 +2368,10 @@ CpuStartUserProgram USES NvmVerifyChecksum ComFree TimerReset
CpuMemCopy USES CopService
FlashInit USES blockInfo bootBlockInfo flashMaxNrBlocks
STRING.C..Work.software.Ope.1 AssertFailure
FlashWrite USES flashLayout _LDEC _LCMP _LSHRU _LSHL
FlashWrite USES _LDEC FlashWrite _LCMP flashLayout _LSHRU _LSHL
bootBlockInfo blockInfo FlashAddToBlock
FlashErase USES _LSHRU _LSHL flashLayout _LDEC _LCMP CopService
FlashOperate
FlashErase USES _LDEC flashLayout FlashErase _LCMP _LSHRU _LSHL
CopService FlashOperate
FlashWriteChecksum USES bootBlockInfo flashLayout FlashWrite
FlashVerifyChecksum USES flashLayout FlashGetLinearAddrByte _LINC
FlashDone USES bootBlockInfo FlashWriteBlock blockInfo
@ -2696,14 +2696,14 @@ DEPENDENCY TREE
| | | | |
| | | | +- FlashErase
| | | | |
| | | | +- _LSHRU (see above)
| | | | |
| | | | +- _LSHL (see above)
| | | | |
| | | | +- _LDEC (see above)
| | | | |
| | | | +- _LCMP (see above)
| | | | |
| | | | +- _LSHRU (see above)
| | | | |
| | | | +- _LSHL (see above)
| | | | |
| | | | +- CopService (see above)
| | | | |
| | | | +- FlashOperate (see above)
@ -2889,5 +2889,5 @@ STATISTIC SECTION
ExeFile:
--------
Number of blocks to be downloaded: 7
Total size of all blocks to be downloaded: 5257
Total size of all blocks to be downloaded: 5357

View File

@ -165,7 +165,8 @@ static void BootComUartCheckActivationRequest(void)
if (UartReceiveByte(&xcpCtoReqPacket[0]) == 1)
{
/* check that the length has a valid value. it should not be 0 */
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -181,7 +181,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -161,7 +161,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -151,7 +151,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -142,7 +142,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -125,7 +125,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -175,7 +175,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -189,7 +189,8 @@ blt_bool UsbReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UsbReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_USB_RX_MAX_DATA) )
{
/* indicate that a cto packet is being received */
xcpCtoRxInProgress = BLT_TRUE;

View File

@ -151,7 +151,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -141,7 +141,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -152,7 +152,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -190,7 +190,8 @@ blt_bool UsbReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UsbReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_USB_RX_MAX_DATA) )
{
/* indicate that a cto packet is being received */
xcpCtoRxInProgress = BLT_TRUE;

View File

@ -149,7 +149,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -127,7 +127,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -204,7 +204,8 @@ blt_bool UsbReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UsbReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_USB_RX_MAX_DATA) )
{
/* indicate that a cto packet is being received */
xcpCtoRxInProgress = BLT_TRUE;

View File

@ -153,7 +153,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -170,7 +170,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();

View File

@ -179,7 +179,8 @@ blt_bool UartReceivePacket(blt_int8u *data)
/* store the message length when received */
if (UartReceiveByte(&xcpCtoReqPacket[0]) == BLT_TRUE)
{
if (xcpCtoReqPacket[0] > 0)
if ( (xcpCtoReqPacket[0] > 0) &&
(xcpCtoReqPacket[0] <= BOOT_COM_UART_RX_MAX_DATA) )
{
/* store the start time */
xcpCtoRxStartTime = TimerGet();