diff --git a/CH32V303-FreeRTOS/.cproject b/CH32V303-FreeRTOS/.cproject
index 3f7b7cc..e691e15 100644
--- a/CH32V303-FreeRTOS/.cproject
+++ b/CH32V303-FreeRTOS/.cproject
@@ -256,7 +256,7 @@
-
+
diff --git a/CH32V303-FreeRTOS/App/application/Inc/busIdleDetection.h b/CH32V303-FreeRTOS/App/application/Inc/busIdleDetection.h
new file mode 100644
index 0000000..d5bf8e1
--- /dev/null
+++ b/CH32V303-FreeRTOS/App/application/Inc/busIdleDetection.h
@@ -0,0 +1,29 @@
+#ifndef APP_BUS_IDLE_DETECTION_H_
+#define APP_BUS_IDLE_DETECTION_H_
+
+#include "uart_dev.h"
+
+#include "FreeRTOS.h"
+#include "event_groups.h"
+
+
+
+#ifdef RS485BUSIDLE1
+void J1_485_IN_IDLE(void);
+void J2_485_IN_IDLE(void);
+void J3_485_IN_IDLE(void);
+void J4_485_IN_IDLE(void);
+void J5_0_485_IN_IDLE(void);
+
+void J1_485_IN_RXNE(void);
+void J2_485_IN_RXNE(void);
+void J3_485_IN_RXNE(void);
+void J4_485_IN_RXNE(void);
+void J5_0_485_IN_RXNE(void);
+#endif
+
+uint8_t getRs485State(device_handle device);
+uint8_t getUartState(device_handle device);
+
+
+#endif
diff --git a/CH32V303-FreeRTOS/App/application/Inc/queueUart.h b/CH32V303-FreeRTOS/App/application/Inc/queueUart.h
new file mode 100644
index 0000000..3086443
--- /dev/null
+++ b/CH32V303-FreeRTOS/App/application/Inc/queueUart.h
@@ -0,0 +1,32 @@
+#ifndef APP_QUEUE_UART_H_
+#define APP_QUEUE_UART_H_
+
+#include "pDebug.h"
+#include "FreeRTOS.h"
+#include "queue.h"
+
+/* 存入队列中的数据格式 */
+typedef struct _queueUartSendInfo{
+ uint32_t length; //数据长度
+ uint8_t *data; //数据
+} queueUartSendInfo;
+
+/* 分时复用485存入队列中的数据格式 */
+typedef struct _queueTimeShareSendInfo{
+ uint8_t connectPort; //发送的端口
+ uint32_t length; //数据长度
+ uint8_t *data; //数据
+} queueTimeShareSendInfo;
+
+extern QueueHandle_t J1_485_Queue;
+extern QueueHandle_t J2_485_Queue;
+extern QueueHandle_t J3_485_Queue;
+extern QueueHandle_t J4_485_Queue;
+extern QueueHandle_t J5_0_485_Queue;
+extern QueueHandle_t upward_uart_Queue;
+extern QueueSetHandle_t uart_Queue;
+
+void uartQueueInit(void);
+void uartQueueSend(void);
+
+#endif
diff --git a/CH32V303-FreeRTOS/App/application/Src/busIdleDetection.c b/CH32V303-FreeRTOS/App/application/Src/busIdleDetection.c
new file mode 100644
index 0000000..47178d8
--- /dev/null
+++ b/CH32V303-FreeRTOS/App/application/Src/busIdleDetection.c
@@ -0,0 +1,220 @@
+#include "busIdleDetection.h"
+
+
+#ifdef RS485BUSIDLE1
+#include "uart_dev.h"
+
+/* 通过软件定时器的方式来完成 */
+static TimerHandle_t J1_485_Swtmr = NULL;
+static TimerHandle_t J2_485_Swtmr = NULL;
+static TimerHandle_t J3_485_Swtmr = NULL;
+static TimerHandle_t J4_485_Swtmr = NULL;
+static TimerHandle_t J5_0_485_Swtmr = NULL;
+
+static void J1_485_tmrCallback(void* parameter);
+static void J2_485_tmrCallback(void* parameter);
+static void J3_485_tmrCallback(void* parameter);
+static void J4_485_tmrCallback(void* parameter);
+static void J5_0_485_tmrCallback(void* parameter);
+
+#define softwareDelay (30 / (1000 / configTICK_RATE_HZ))
+
+/*
+ * @brief 初始化所有的软件定时器
+ * @param
+ * @retval
+ *
+ */
+void softwareTimeInit(void)
+{
+ J1_485_Swtmr = xTimerCreate((const char*)"J1Timer",
+ softwareDelay, //延时
+ (UBaseType_t )pdFALSE, //单次模式
+ (void *)1, //为每个计时器分配一个索引的唯一ID
+ (TimerCallbackFunction_t)J1_485_tmrCallback); //回调函数
+
+ J2_485_Swtmr = xTimerCreate((const char*)"J2Timer",
+ softwareDelay,
+ (UBaseType_t )pdFALSE,
+ (void *)2,
+ (TimerCallbackFunction_t)J2_485_tmrCallback);
+
+ J3_485_Swtmr = xTimerCreate((const char*)"J3Timer",
+ softwareDelay,
+ (UBaseType_t )pdFALSE,
+ (void *)3,
+ (TimerCallbackFunction_t)J3_485_tmrCallback);
+
+ J4_485_Swtmr = xTimerCreate((const char*)"J4Timer",
+ softwareDelay,
+ (UBaseType_t )pdFALSE,
+ (void *)4,
+ (TimerCallbackFunction_t)J4_485_tmrCallback);
+
+ J5_0_485_Swtmr = xTimerCreate((const char*)"J5_0Timer",
+ softwareDelay,
+ (UBaseType_t )pdFALSE,
+ (void *)5,
+ (TimerCallbackFunction_t)J5_0_485_tmrCallback);
+}
+
+void J1_485_tmrCallback(void* parameter)
+{
+ setBUSIDLEFlag(g_J1_uart6_handle, 0);
+}
+
+void J2_485_tmrCallback(void* parameter)
+{
+ setBUSIDLEFlag(g_J2_uart7_handle, 0);
+}
+
+void J3_485_tmrCallback(void* parameter)
+{
+ setBUSIDLEFlag(g_J3_usart2_handle, 0);
+}
+
+void J4_485_tmrCallback(void* parameter)
+{
+ setBUSIDLEFlag(g_J4_uart8_handle, 0);
+}
+
+void J5_0_485_tmrCallback(void* parameter)
+{
+ setBUSIDLEFlag(g_J5_0_usart3_handle, 0);
+}
+
+/*
+ * @brief J1_485空闲中断内容
+ * @param
+ * @retval
+ *
+ */
+void J1_485_IN_IDLE(void)
+{
+ xTimerStartFromISR(J1_485_Swtmr, 0);
+}
+
+/*
+ * @brief J2_485空闲中断内容
+ * @param
+ * @retval
+ *
+ */
+void J2_485_IN_IDLE(void)
+{
+ xTimerStartFromISR(J2_485_Swtmr, 0);
+}
+
+/*
+ * @brief J3_485空闲中断内容
+ * @param
+ * @retval
+ *
+ */
+void J3_485_IN_IDLE(void)
+{
+ xTimerStartFromISR(J3_485_Swtmr, 0);
+}
+
+/*
+ * @brief J4_485空闲中断内容
+ * @param
+ * @retval
+ *
+ */
+void J4_485_IN_IDLE(void)
+{
+ xTimerStartFromISR(J4_485_Swtmr, 0);
+}
+
+/*
+ * @brief J5_0_485空闲中断内容
+ * @param
+ * @retval
+ *
+ */
+void J5_0_485_IN_IDLE(void)
+{
+ xTimerStartFromISR(J5_0_485_Swtmr, 0);
+}
+
+/*
+ * @brief J1_485空闲中断后,第一次进入接收中断内容
+ * @param
+ * @retval
+ *
+ */
+void J1_485_IN_RXNE(void)
+{
+ xTimerStopFromISR(J1_485_Swtmr, 0);
+}
+
+/*
+ * @brief J2_485空闲中断后,第一次进入接收中断内容
+ * @param
+ * @retval
+ *
+ */
+void J2_485_IN_RXNE(void)
+{
+ xTimerStopFromISR(J2_485_Swtmr, 0);
+}
+
+/*
+ * @brief J3_485空闲中断后,第一次进入接收中断内容
+ * @param
+ * @retval
+ *
+ */
+void J3_485_IN_RXNE(void)
+{
+ xTimerStopFromISR(J3_485_Swtmr, 0);
+}
+
+/*
+ * @brief J4_485空闲中断后,第一次进入接收中断内容
+ * @param
+ * @retval
+ *
+ */
+void J4_485_IN_RXNE(void)
+{
+ xTimerStopFromISR(J4_485_Swtmr, 0);
+}
+
+/*
+ * @brief J5_0_485空闲中断后,第一次进入接收中断内容
+ * @param
+ * @retval
+ *
+ */
+void J5_0_485_IN_RXNE(void)
+{
+ xTimerStopFromISR(J5_0_485_Swtmr, 0);
+}
+#endif
+
+/*
+ * @brief 得到串口能否发送
+ * @param
+ * @retval 0 能发送
+ 1 不能发送
+ 0xFF 错误
+ */
+uint8_t getRs485State(device_handle device)
+{
+#ifdef RS485BUSIDLE1
+#ifdef UARTINTERRUPTSEND
+ return (getUartSendState(device) || getBUSIDLEFlag(device));
+#endif
+#endif
+}
+
+uint8_t getUartState(device_handle device)
+{
+#ifdef UARTINTERRUPTSEND
+ return getUartSendState(device);
+#endif
+}
+
+
diff --git a/CH32V303-FreeRTOS/App/application/Src/freerotsTask.c b/CH32V303-FreeRTOS/App/application/Src/freerotsTask.c
index f3220d8..4d067b7 100644
--- a/CH32V303-FreeRTOS/App/application/Src/freerotsTask.c
+++ b/CH32V303-FreeRTOS/App/application/Src/freerotsTask.c
@@ -1,31 +1,60 @@
#include "freerotsTask.h"
-
#include "uart_dev.h"
-#include "HD_UART.h"
#include "FM_GPIO.h"
#include "FM_ADC.h"
+#include "queueUart.h"
-#define TASK1_TASK_PRIO 5
-#define TASK1_STK_SIZE 256
+#include "stdio.h"
-TaskHandle_t Task1Task_Handler;
+#define Common_TASK_PRIO 5
+#define Common_STK_SIZE 256
+
+#define Transmit_TASK_PRIO 5
+#define Transmit_STK_SIZE 256
+
+TaskHandle_t CommonTask_Handler;
+TaskHandle_t TransmitTask_Handler;
uint8_t data[20] = "hello world\n";
-void task1_task(void *pvParameters)
+void common_Task(void *pvParameters)
{
- writePwrCtrlState(Android_PwrCtrl, PwrCtrlOpen);
- proportionalInt();
- while(1) {
- // printf("task1 entry\r\n");
- printf_adc_data();
- USART_ITConfig(UART5, USART_IT_TXE, ENABLE);
- uartInterruptSend(g_Upward_uart5_handle, data, 12);
+ // writePwrCtrlState(Android_PwrCtrl, PwrCtrlOpen);
+ // proportionalInt();
+ // while(1) {
+ // // printf("task1 entry\r\n");
+ // printf_adc_data();
+ // USART_ITConfig(UART5, USART_IT_TXE, ENABLE);
+ // uartInterruptSend(g_Upward_uart5_handle, data, 12);
+ // vTaskDelay(1000);
+ // }
+
+ while (1) {
+ uint8_t *Buff = (uint8_t *)pvPortMalloc(200);
+ if (Buff == NULL) {
+ log_error("Memory allocation failed\n");
+ return;
+ }
+
+ queueUartSendInfo *sendBuff = (queueUartSendInfo *)Buff;
+ sendBuff->length = sizeof("hello world\n");
+ sendBuff->data = Buff + sizeof(queueUartSendInfo);
+ strlcpy((char *)sendBuff->data, "hello world\n", sizeof("hello world\n"));
+
+ xQueueSend(upward_uart_Queue, &Buff, 10);
vTaskDelay(1000);
}
}
+void transmit_Task(void *pvParameters)
+{
+ while (1) {
+ uartQueueSend();
+ /* 延时三个系统节拍 */
+ vTaskDelay(3);
+ }
+}
/**
* @brief 启动
@@ -38,13 +67,24 @@ void startApp(void)
FM_GPIO_Init();
FM_ADC_Init();
+
+ uartQueueInit();
+
/* create task */
- xTaskCreate((TaskFunction_t )task1_task,
- (const char* )"task1",
- (uint16_t )TASK1_STK_SIZE,
+ xTaskCreate((TaskFunction_t )common_Task,
+ (const char* )"commonTask",
+ (uint16_t )Common_STK_SIZE,
(void* )NULL,
- (UBaseType_t )TASK1_TASK_PRIO,
- (TaskHandle_t* )&Task1Task_Handler);
+ (UBaseType_t )Common_TASK_PRIO,
+ (TaskHandle_t* )&CommonTask_Handler);
+
+ xTaskCreate((TaskFunction_t )transmit_Task,
+ (const char* )"transmitTask",
+ (uint16_t )Transmit_STK_SIZE,
+ (void* )NULL,
+ (UBaseType_t )Transmit_TASK_PRIO,
+ (TaskHandle_t* )&TransmitTask_Handler);
+
vTaskStartScheduler();
}
diff --git a/CH32V303-FreeRTOS/App/application/Src/queueUart.c b/CH32V303-FreeRTOS/App/application/Src/queueUart.c
new file mode 100644
index 0000000..06bba82
--- /dev/null
+++ b/CH32V303-FreeRTOS/App/application/Src/queueUart.c
@@ -0,0 +1,192 @@
+
+#include "queueUart.h"
+#include "uart_dev.h"
+#include "busIdleDetection.h"
+
+/* 队列中每个消息的大小 */
+#define QUEUE_SIZE 4
+
+/* 各个通讯口的队列 */
+QueueHandle_t J1_485_Queue = NULL;
+QueueHandle_t J2_485_Queue = NULL;
+QueueHandle_t J3_485_Queue = NULL;
+QueueHandle_t J4_485_Queue = NULL;
+QueueHandle_t J5_0_485_Queue = NULL;
+QueueHandle_t upward_uart_Queue = NULL;
+
+/* 队列集 */
+QueueSetHandle_t uart_Queue = NULL;
+
+/* 查看队列集中是否有数据 */
+QueueSetMemberHandle_t xActivatedMember;
+
+/* 通过该结构体接收对应的数据用来发送,结束后通过该结构体,释放数据的内存 */
+typedef struct _queueRecvDataInfo {
+ queueUartSendInfo *J1_485_data;
+ queueUartSendInfo *J2_485_data;
+ queueUartSendInfo *J3_485_data;
+ queueUartSendInfo *J4_485_data;
+ queueUartSendInfo *upward_uart_data;
+ queueTimeShareSendInfo *J5_0_485_data;
+} queueRecvDataInfo;
+static queueRecvDataInfo queueRecvData;
+
+/**
+ * @brief 初始化串口发送的队列
+ * @param
+ * @retval
+ */
+void uartQueueInit(void)
+{
+ /* 初始化队列 */
+ J1_485_Queue = xQueueCreate(5, QUEUE_SIZE);
+ // if (NULL == J1_485_Queue) {
+ // log_error("creat J1_485_Queue error\n");
+ // }
+
+ J2_485_Queue = xQueueCreate(5, QUEUE_SIZE);
+ // if (NULL == J2_485_Queue) {
+ // log_error("creat J2_485_Queue error\n");
+ // }
+
+ J3_485_Queue = xQueueCreate(5, QUEUE_SIZE);
+ // if (NULL == J3_485_Queue) {
+ // log_error("creat J3_485_Queue error\n");
+ // }
+
+ J4_485_Queue = xQueueCreate(5, QUEUE_SIZE);
+ // if (NULL == J4_485_Queue) {
+ // log_error("creat J4_485_Queue error\n");
+ // }
+
+ J5_0_485_Queue = xQueueCreate(5, QUEUE_SIZE);
+ // if (NULL == J5_0_485_Queue) {
+ // log_error("creat J5_0_485_Queue error\n");
+ // }
+
+ upward_uart_Queue = xQueueCreate(10, QUEUE_SIZE);
+ // if (NULL == upward_uart_Queue) {
+ // log_error("creat upward_uart_Queue error\n");
+ // }
+
+
+ /* 将队列都放入队列集中 */
+ uart_Queue = xQueueCreateSet(6);
+ xQueueAddToSet(J1_485_Queue, uart_Queue);
+ xQueueAddToSet(J2_485_Queue, uart_Queue);
+ xQueueAddToSet(J3_485_Queue, uart_Queue);
+ xQueueAddToSet(J4_485_Queue, uart_Queue);
+ xQueueAddToSet(J5_0_485_Queue, uart_Queue);
+ xQueueAddToSet(upward_uart_Queue, uart_Queue);
+}
+
+/**
+ * @brief 从队列中取出数据,发送函数
+ * @param
+ * @retval
+ */
+void uartQueueSend(void)
+{
+ /* 查看队列集中是否有数据 */
+ xActivatedMember = xQueueSelectFromSet(uart_Queue, portMAX_DELAY);
+
+ /* 查看Upward_uart5中有无数据 */
+ if (!getUartState(g_Upward_uart5_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(upward_uart_Queue, &queueRecvData.upward_uart_data, 0) == pdTRUE) {
+ uartInterruptSend(g_Upward_uart5_handle, queueRecvData.upward_uart_data->data
+ , queueRecvData.upward_uart_data->length);
+ }
+ }
+
+ /* 查看J1_485中有无数据 */
+ if (!getRs485State(g_J1_uart6_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(J1_485_Queue, &queueRecvData.J1_485_data, 0) == pdTRUE) {
+ uartInterruptSend(g_J1_uart6_handle, queueRecvData.J1_485_data->data
+ , queueRecvData.J1_485_data->length);
+ }
+ }
+
+ /* 查看J2_485中有无数据 */
+ if (!getRs485State(g_J2_uart7_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(J2_485_Queue, &queueRecvData.J2_485_data, 0) == pdTRUE) {
+ uartInterruptSend(g_J2_uart7_handle, queueRecvData.J2_485_data->data
+ , queueRecvData.J2_485_data->length);
+ }
+ }
+
+ /* 查看J3_485中有无数据 */
+ if (!getRs485State(g_J3_usart2_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(J3_485_Queue, &queueRecvData.J3_485_data, 0) == pdTRUE) {
+ uartInterruptSend(g_J3_usart2_handle, queueRecvData.J3_485_data->data
+ , queueRecvData.J3_485_data->length);
+ }
+ }
+
+ /* 查看J4_485中有无数据 */
+ if (!getRs485State(g_J4_uart8_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(J4_485_Queue, &queueRecvData.J4_485_data, 0) == pdTRUE) {
+ uartInterruptSend(g_J4_uart8_handle, queueRecvData.J3_485_data->data
+ , queueRecvData.J4_485_data->length);
+ }
+ }
+
+ /* 查看J5_0_485中有无数据 */
+ if (!getRs485State(g_J5_0_usart3_handle)) {
+ /* 处理接收到的数据 */
+ if (xQueueReceive(J5_0_485_Queue, &queueRecvData.J5_0_485_data, 0) == pdTRUE) {
+ setConnectPort(queueRecvData.J5_0_485_data->connectPort);
+ uartInterruptSend(g_J4_uart8_handle, queueRecvData.J5_0_485_data->data
+ , queueRecvData.J5_0_485_data->length);
+ }
+ }
+
+}
+
+
+#ifdef UARTINTERRUPTSEND
+/**
+ * @brief 数据发送完成后用于清除
+ * @param
+ * @retval
+ */
+void J1_485_IN_TXE(void)
+{
+ vPortFree(queueRecvData.J1_485_data);
+}
+
+
+void J2_485_IN_TXE(void)
+{
+ vPortFree(queueRecvData.J2_485_data);
+}
+
+
+void J3_485_IN_TXE(void)
+{
+ vPortFree(queueRecvData.J3_485_data);
+}
+
+
+void J4_485_IN_TXE(void)
+{
+ vPortFree(queueRecvData.J4_485_data);
+}
+
+
+void J5_0_485_IN_TXE(void)
+{
+ vPortFree(queueRecvData.J5_0_485_data);
+}
+
+
+void Upward_USART_IN_TXE(void)
+{
+ vPortFree(queueRecvData.upward_uart_data);
+}
+
+#endif
diff --git a/CH32V303-FreeRTOS/App/functionalModule/Inc/uart_dev.h b/CH32V303-FreeRTOS/App/functionalModule/Inc/uart_dev.h
index 8e810e1..1d03654 100644
--- a/CH32V303-FreeRTOS/App/functionalModule/Inc/uart_dev.h
+++ b/CH32V303-FreeRTOS/App/functionalModule/Inc/uart_dev.h
@@ -9,6 +9,9 @@
/* 鏄惁浣跨敤涓柇鍙戦侊紝鍚庢湡鍙兘鏀逛负DMA鍙戦 */
#define UARTINTERRUPTSEND
+/* 鏄惁浣跨敤绌洪棽涓柇锛屽悗鏈熷彲浠ユ敼涓哄叾浠栨柟寮忓垽鏂荤嚎绌洪棽涓柇 */
+#define RS485BUSIDLE1
+
#define ASCII_CHAR_BACKSPACE 0x08 /* '\b' */
#define ASCII_CHAR_CHARACTER_TABULATION 0x09 /* '\t' */
#define ASCII_CHAR_LINE_FEED 0x0A /* '\n' */
@@ -59,8 +62,48 @@ void Init_J4_485(uint32_t baud);
void Init_J5_0_485(uint32_t baud);
void Init_Upward_uart(uint32_t baud);
+uint8_t getUartSendState(device_handle device);
+
#ifdef UARTINTERRUPTSEND
+extern void J1_485_IN_TXE(void);
+extern void J2_485_IN_TXE(void);
+extern void J3_485_IN_TXE(void);
+extern void J4_485_IN_TXE(void);
+extern void J5_0_485_IN_TXE(void);
+extern void Upward_USART_IN_TXE(void);
uint8_t uartInterruptSend(device_handle device, uint8_t *data, uint16_t len);
#endif
+#ifdef RS485BUSIDLE1
+extern void J1_485_IN_IDLE(void);
+extern void J2_485_IN_IDLE(void);
+extern void J3_485_IN_IDLE(void);
+extern void J4_485_IN_IDLE(void);
+extern void J5_0_485_IN_IDLE(void);
+
+extern void J1_485_IN_RXNE(void);
+extern void J2_485_IN_RXNE(void);
+extern void J3_485_IN_RXNE(void);
+extern void J4_485_IN_RXNE(void);
+extern void J5_0_485_IN_RXNE(void);
+
+uint8_t getBUSIDLEFlag(device_handle device);
+// uint8_t getSoftwareIDLEFlag(device_handle device);
+void setBUSIDLEFlag(device_handle device, uint8_t state);
+// void setSoftwareIDLEFlag(device_handle device, uint8_t state);
+#endif
+
+/* J5_0杩炴帴鍒板摢涓鍙 */
+typedef enum _connectPortEnum {
+ connectJ0 = 1,
+ connectJ5,
+ connectJ6,
+ connectJ7,
+ connectJ8,
+ connectJ9,
+} connectPortEnum;
+void setConnectPort(uint8_t port);
+uint8_t getConnectPort(void);
+
+
#endif
diff --git a/CH32V303-FreeRTOS/App/functionalModule/Src/uart_dev.c b/CH32V303-FreeRTOS/App/functionalModule/Src/uart_dev.c
index 3e7124b..817b9e0 100644
--- a/CH32V303-FreeRTOS/App/functionalModule/Src/uart_dev.c
+++ b/CH32V303-FreeRTOS/App/functionalModule/Src/uart_dev.c
@@ -52,6 +52,22 @@ static void setJ5_0_485_SendState(uint8_t state);
static void setUpward_uart_SendState(uint8_t state);
+#ifdef RS485BUSIDLE1
+/* 鐢ㄤ簬鎬荤嚎绌洪棽鏍囧織浣 */
+//璇ヤ綅涓0鏃惰〃绀烘荤嚎绌洪棽
+#define BUS_IDLE 0x01
+// //璇ヤ綅涓0鏃惰〃绀鸿繘鍏ヤ簡绌洪棽涓柇
+// #define softwareTimeFlag 0x02
+static uint8_t J1_485_IDLE_Flag = 0;
+static uint8_t J2_485_IDLE_Flag = 0;
+static uint8_t J3_485_IDLE_Flag = 0;
+static uint8_t J4_485_IDLE_Flag = 0;
+static uint8_t J5_0_485_IDLE_Flag = 0;
+#endif
+
+/* J5_0_485褰撳墠杩炴帴鍒扮殑绔彛 */
+static uint8_t connectPort = connectJ0;
+
/**
* @brief 涓插彛淇℃伅鍒濆鍖栵紝涓插彛鍙峰強娉㈢壒鐜.
* @param uart_index 瀵瑰簲鐨勭‖浠朵覆鍙e彿
@@ -211,7 +227,7 @@ void Init_Upward_uart(uint32_t baud)
/**
* @brief 寰楀埌涓插彛鐨勫彂閫佺姸鎬
* @param device 璁惧
- * @retval 0锛氬彂鐢熷畬鎴 1锛氬彂閫佷腑 0xFF锛氶敊璇
+ * @retval 0锛氬彂閫佸畬鎴 1锛氬彂閫佷腑 0xFF锛氶敊璇
*/
uint8_t getUartSendState(device_handle device)
{
@@ -451,6 +467,12 @@ void J3_Interrupt()
{
/* 鏁版嵁鎺ユ敹涓柇 */
if (USART_GetITStatus(J3_USART, USART_IT_RXNE) != RESET) {
+ #ifdef RS485BUSIDLE1
+ if (J3_485_IDLE_Flag == 0) {
+ J3_485_IDLE_Flag = 1;
+ J3_485_IN_RXNE();
+ }
+ #endif
J3_Rbuffer[0] = USART_ReceiveData(J3_USART); //鎺ユ敹鏁版嵁
uart_device_info *dev = (uart_device_info *)g_J3_usart2_handle;
if(!RingQueueFull(&dev->uart_ring_queue))
@@ -464,17 +486,31 @@ void J3_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(J3_USART, USART_IT_TXE, DISABLE);
setJ3_485_SendState(0);
+ J3_485_IN_TXE();
return;
}
USART_SendData(J3_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
}
#endif
+
+#ifdef RS485BUSIDLE1
+ /* 绌洪棽涓柇 */
+ if (USART_GetITStatus(J3_USART, USART_IT_IDLE) != RESET) {
+ J3_485_IN_IDLE();
+ }
+#endif
}
void J5_0_Interrupt()
{
/* 鏁版嵁鎺ユ敹涓柇 */
- if (USART_GetITStatus(J5_0_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ if (USART_GetITStatus(J5_0_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ #ifdef RS485BUSIDLE1
+ if (J5_0_485_IDLE_Flag == 0) {
+ J5_0_485_IDLE_Flag = 1;
+ J5_0_485_IN_RXNE();
+ }
+ #endif
J5_0_Rbuffer[0] = USART_ReceiveData(J5_0_USART); //鎺ユ敹鏁版嵁
uart_device_info *dev = (uart_device_info *)g_J5_0_usart3_handle;
if(!RingQueueFull(&dev->uart_ring_queue))
@@ -488,11 +524,19 @@ void J5_0_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(J5_0_USART, USART_IT_TXE, DISABLE);
setJ5_0_485_SendState(0);
+ J5_0_485_IN_TXE();
return;
}
USART_SendData(J5_0_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
}
#endif
+
+#ifdef RS485BUSIDLE1
+ /* 绌洪棽涓柇 */
+ if (USART_GetITStatus(J5_0_USART, USART_IT_IDLE) != RESET) {
+ J5_0_485_IN_IDLE();
+ }
+#endif
}
void Upward_Interrupt()
@@ -513,6 +557,7 @@ void Upward_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(Upward_USART, USART_IT_TXE, DISABLE);
setUpward_uart_SendState(0);
+ Upward_USART_IN_TXE();
return;
}
USART_SendData(Upward_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
@@ -523,7 +568,13 @@ void Upward_Interrupt()
void J1_Interrupt()
{
/* 鏁版嵁鎺ユ敹涓柇 */
- if (USART_GetITStatus(J1_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ if (USART_GetITStatus(J1_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ #ifdef RS485BUSIDLE1
+ if (J1_485_IDLE_Flag == 0) {
+ J1_485_IDLE_Flag = 1;
+ J1_485_IN_RXNE();
+ }
+ #endif
J1_Rbuffer[0] = USART_ReceiveData(J1_USART); //鎺ユ敹鏁版嵁
uart_device_info *dev = (uart_device_info *)g_J1_uart6_handle;
if(!RingQueueFull(&dev->uart_ring_queue))
@@ -537,17 +588,31 @@ void J1_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(J1_USART, USART_IT_TXE, DISABLE);
setJ1_485_SendState(0);
+ J1_485_IN_TXE();
return;
}
USART_SendData(J1_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
}
#endif
+
+#ifdef RS485BUSIDLE1
+ /* 绌洪棽涓柇 */
+ if (USART_GetITStatus(J1_USART, USART_IT_IDLE) != RESET) {
+ J1_485_IN_IDLE();
+ }
+#endif
}
void J2_Interrupt()
{
/* 鏁版嵁鎺ユ敹涓柇 */
- if (USART_GetITStatus(J2_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ if (USART_GetITStatus(J2_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ #ifdef RS485BUSIDLE1
+ if (J2_485_IDLE_Flag == 0) {
+ J2_485_IDLE_Flag = 1;
+ J2_485_IN_RXNE();
+ }
+ #endif
J2_Rbuffer[0] = USART_ReceiveData(J2_USART); //鎺ユ敹鏁版嵁
uart_device_info *dev = (uart_device_info *)g_J2_uart7_handle;
if(!RingQueueFull(&dev->uart_ring_queue))
@@ -561,17 +626,31 @@ void J2_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(J2_USART, USART_IT_TXE, DISABLE);
setJ2_485_SendState(0);
+ J2_485_IN_TXE();
return;
}
USART_SendData(J2_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
}
#endif
+
+#ifdef RS485BUSIDLE1
+ /* 绌洪棽涓柇 */
+ if (USART_GetITStatus(J2_USART, USART_IT_IDLE) != RESET) {
+ J2_485_IN_IDLE();
+ }
+#endif
}
void J4_Interrupt()
{
/* 鏁版嵁鎺ユ敹涓柇 */
if (USART_GetITStatus(J4_USART, USART_IT_RXNE) != RESET) { //涓柇浜х敓
+ #ifdef RS485BUSIDLE1
+ if (J4_485_IDLE_Flag == 0) {
+ J4_485_IDLE_Flag = 1;
+ J4_485_IN_RXNE();
+ }
+ #endif
J4_Rbuffer[0] = USART_ReceiveData(J4_USART); //鎺ユ敹鏁版嵁
uart_device_info *dev = (uart_device_info *)g_J4_uart8_handle;
if(!RingQueueFull(&dev->uart_ring_queue))
@@ -585,11 +664,19 @@ void J4_Interrupt()
if (dev->uart_send_data.count >= dev->uart_send_data.len) {
USART_ITConfig(J4_USART, USART_IT_TXE, DISABLE);
setJ4_485_SendState(0);
+ J4_485_IN_TXE();
return;
}
USART_SendData(J4_USART, dev->uart_send_data.data[dev->uart_send_data.count++]);
}
#endif
+
+#ifdef RS485BUSIDLE1
+ /* 绌洪棽涓柇 */
+ if (USART_GetITStatus(J4_USART, USART_IT_IDLE) != RESET) {
+ J4_485_IN_IDLE();
+ }
+#endif
}
#ifdef UARTINTERRUPTSEND
@@ -603,7 +690,7 @@ void J4_Interrupt()
0xFF锛氶敊璇
*/
uint8_t uartInterruptSend(device_handle device,uint8_t *data, uint16_t len)
-{
+{
/* 涓婃鏈彂閫佸畬锛屾垨璁惧涓嶅瓨鍦 */
if (getUartSendState(device)) {
return getUartSendState(device);
@@ -644,3 +731,179 @@ uint8_t uartInterruptSend(device_handle device,uint8_t *data, uint16_t len)
return 0;
}
#endif
+
+#ifdef RS485BUSIDLE1
+/**
+ * @brief 寰楀埌鎬荤嚎鐨勭┖闂茬姸鎬
+ * @param device 璁惧
+ * @retval 0 绌洪棽
+ 1 涓嶇┖闂
+ 0xFF 寮傚父
+ */
+uint8_t getBUSIDLEFlag(device_handle device)
+{
+ if (device == g_J1_uart6_handle) {
+ return (J1_485_IDLE_Flag & BUS_IDLE);
+ } else if (device == g_J2_uart7_handle) {
+ return (J2_485_IDLE_Flag & BUS_IDLE);
+ } else if (device == g_J3_usart2_handle) {
+ return (J3_485_IDLE_Flag & BUS_IDLE);
+ } else if (device == g_J4_uart8_handle) {
+ return (J4_485_IDLE_Flag & BUS_IDLE);
+ } else if (device == g_J5_0_usart3_handle) {
+ return (J5_0_485_IDLE_Flag & BUS_IDLE);
+ }
+ return 0xFF;
+}
+
+// /**
+// * @brief 寰楀埌鎬荤嚎鐨勭┖闂茬姸鎬
+// * @param device 璁惧
+// * @retval 0 绌洪棽
+// 1 涓嶇┖闂
+// 0xFF 寮傚父
+// */
+// uint8_t getSoftwareIDLEFlag(device_handle device)
+// {
+// if (device == g_J1_uart6_handle) {
+// return (J1_485_IDLE_Flag & softwareTimeFlag);
+// } else if (device == g_J2_uart7_handle) {
+// return (J2_485_IDLE_Flag & softwareTimeFlag);
+// } else if (device == g_J3_usart2_handle) {
+// return (J3_485_IDLE_Flag & softwareTimeFlag);
+// } else if (device == g_J4_uart8_handle) {
+// return (J4_485_IDLE_Flag & softwareTimeFlag);
+// } else if (device == g_J5_0_usart3_handle) {
+// return (J5_0_485_IDLE_Flag & softwareTimeFlag);
+// }
+// return 0xFF;
+// }
+
+// /**
+// * @brief 璁剧疆鎬荤嚎瀵瑰簲鐨勪覆鍙h繘鍏ョ┖闂茬姸鎬侊紙绌洪棽涓柇鑾峰緱锛
+// * @param device 璁惧
+// state 鐘舵 0 绌洪棽
+// 1 涓嶇┖闂
+// * @retval
+// */
+// void setSoftwareIDLEFlag(device_handle device, uint8_t state)
+// {
+// if (state == 0) {
+// if (device == g_J1_uart6_handle) {
+// J1_485_IDLE_Flag &= (~softwareTimeFlag);
+// } else if (device == g_J2_uart7_handle) {
+// J2_485_IDLE_Flag &= (~softwareTimeFlag);
+// } else if (device == g_J3_usart2_handle) {
+// J3_485_IDLE_Flag &= (~softwareTimeFlag);
+// } else if (device == g_J4_uart8_handle) {
+// J4_485_IDLE_Flag &= (~softwareTimeFlag);
+// } else if (device == g_J5_0_usart3_handle) {
+// J5_0_485_IDLE_Flag &= (~softwareTimeFlag);
+// }
+// }
+// else if (state == 1) {
+// if (device == g_J1_uart6_handle) {
+// J1_485_IDLE_Flag &= (softwareTimeFlag);
+// } else if (device == g_J2_uart7_handle) {
+// J2_485_IDLE_Flag &= (softwareTimeFlag);
+// } else if (device == g_J3_usart2_handle) {
+// J3_485_IDLE_Flag &= (softwareTimeFlag);
+// } else if (device == g_J4_uart8_handle) {
+// J4_485_IDLE_Flag &= (softwareTimeFlag);
+// } else if (device == g_J5_0_usart3_handle) {
+// J5_0_485_IDLE_Flag &= (softwareTimeFlag);
+// }
+// }
+// }
+
+/**
+ * @brief 璁剧疆鎬荤嚎绌洪棽鐘舵
+ * @param device 璁惧
+ state 鐘舵 0 绌洪棽
+ 1 涓嶇┖闂
+ * @retval
+ */
+void setBUSIDLEFlag(device_handle device, uint8_t state)
+{
+ // if (state == 0) {
+ // if (device == g_J1_uart6_handle) {
+ // J1_485_IDLE_Flag &= (~BUS_IDLE);
+ // } else if (device == g_J2_uart7_handle) {
+ // J2_485_IDLE_Flag &= (~BUS_IDLE);
+ // } else if (device == g_J3_usart2_handle) {
+ // J3_485_IDLE_Flag &= (~BUS_IDLE);
+ // } else if (device == g_J4_uart8_handle) {
+ // J4_485_IDLE_Flag &= (~BUS_IDLE);
+ // } else if (device == g_J5_0_usart3_handle) {
+ // J5_0_485_IDLE_Flag &= (~BUS_IDLE);
+ // }
+ // }
+ // else if (state == 1) {
+ // if (device == g_J1_uart6_handle) {
+ // J1_485_IDLE_Flag &= (BUS_IDLE);
+ // } else if (device == g_J2_uart7_handle) {
+ // J2_485_IDLE_Flag &= (BUS_IDLE);
+ // } else if (device == g_J3_usart2_handle) {
+ // J3_485_IDLE_Flag &= (BUS_IDLE);
+ // } else if (device == g_J4_uart8_handle) {
+ // J4_485_IDLE_Flag &= (BUS_IDLE);
+ // } else if (device == g_J5_0_usart3_handle) {
+ // J5_0_485_IDLE_Flag &= (BUS_IDLE);
+ // }
+ // }
+
+ if (state != 0 || state != 1) {
+ return;
+ }
+
+ if (device == g_J1_uart6_handle) {
+ J1_485_IDLE_Flag = state;
+ } else if (device == g_J2_uart7_handle) {
+ J2_485_IDLE_Flag = state;
+ } else if (device == g_J3_usart2_handle) {
+ J3_485_IDLE_Flag = state;
+ } else if (device == g_J4_uart8_handle) {
+ J4_485_IDLE_Flag = state;
+ } else if (device == g_J5_0_usart3_handle) {
+ J5_0_485_IDLE_Flag = state;
+ }
+}
+#endif
+
+/**
+ * @brief 璁剧疆鎬荤嚎绌洪棽鐘舵
+ * @param port 瑕佽繛鎺ョ殑绔彛
+ * @retval
+ */
+void setConnectPort(uint8_t port)
+{
+ if (port == connectJ0) {
+ connectPort = connectJ0;
+ USART_CONNET_J0();
+ } else if (port == connectJ5) {
+ connectPort = connectJ5;
+ USART_CONNET_J5();
+ } else if (port == connectJ6) {
+ connectPort = connectJ6;
+ USART_CONNET_J6();
+ } else if (port == connectJ7) {
+ connectPort = connectJ7;
+ USART_CONNET_J7();
+ } else if (port == connectJ8) {
+ connectPort = connectJ8;
+ USART_CONNET_J8();
+ } else if (port == connectJ9) {
+ connectPort = connectJ9;
+ USART_CONNET_J9();
+ }
+}
+
+/**
+ * @brief 璁剧疆鎬荤嚎绌洪棽鐘舵
+ * @param
+ * @retval 杩炴帴鐨勭鍙
+ */
+uint8_t getConnectPort(void)
+{
+ return connectPort;
+}
diff --git a/CH32V303-FreeRTOS/App/hardwareDriver/Src/HD_UART.c b/CH32V303-FreeRTOS/App/hardwareDriver/Src/HD_UART.c
index 2f0ebfe..d90a41a 100644
--- a/CH32V303-FreeRTOS/App/hardwareDriver/Src/HD_UART.c
+++ b/CH32V303-FreeRTOS/App/hardwareDriver/Src/HD_UART.c
@@ -62,6 +62,7 @@ void J1_485_Init(uint32_t baud)
NVIC_Init(&NVIC_InitStructure); //中断优先级初始化
USART_ITConfig(UART6, USART_IT_RXNE, ENABLE);
+ USART_ITConfig(UART6, USART_IT_IDLE, ENABLE);
USART_Cmd(UART6,ENABLE);
}
@@ -115,6 +116,7 @@ void J2_485_Init(uint32_t baud)
NVIC_Init(&NVIC_InitStructure); //中断优先级初始化
USART_ITConfig(UART7, USART_IT_RXNE, ENABLE);
+ USART_ITConfig(UART7, USART_IT_IDLE, ENABLE);
USART_Cmd(UART7,ENABLE);
}
@@ -167,6 +169,7 @@ void J3_485_Init(uint32_t baud)
NVIC_Init(&NVIC_InitStructure); //中断优先级初始化
USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);
+ USART_ITConfig(USART2, USART_IT_IDLE, ENABLE);
USART_Cmd(USART2,ENABLE);
}
@@ -219,6 +222,7 @@ void J4_485_Init(uint32_t baud)
NVIC_Init(&NVIC_InitStructure); //中断优先级初始化
USART_ITConfig(UART8, USART_IT_RXNE, ENABLE);
+ USART_ITConfig(UART8, USART_IT_IDLE, ENABLE);
USART_Cmd(UART8,ENABLE);
}
@@ -278,6 +282,7 @@ void J5_0_485_Init(uint32_t baud)
NVIC_Init(&NVIC_InitStructure); //中断优先级初始化
USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
+ USART_ITConfig(USART3, USART_IT_IDLE, ENABLE);
// USART_ITConfig(USART3, USART_IT_IDLE, ENABLE);
USART_Cmd(USART3,ENABLE);
diff --git a/CH32V303-FreeRTOS/CH32V303-FreeRTOS.wvproj b/CH32V303-FreeRTOS/CH32V303-FreeRTOS.wvproj
index e20531d..77709f1 100644
--- a/CH32V303-FreeRTOS/CH32V303-FreeRTOS.wvproj
+++ b/CH32V303-FreeRTOS/CH32V303-FreeRTOS.wvproj
@@ -304,7 +304,7 @@
},
"createFlash": {
"enabled": true,
- "outputFileFormat": "ihex",
+ "outputFileFormat": "ihexAndbinary",
"copy_only_section_text": false,
"copy_only_section_data": false,
"copy_only_sections": [],
diff --git a/CH32V303-FreeRTOS/User/FreeRTOSConfig.h b/CH32V303-FreeRTOS/User/FreeRTOSConfig.h
index 3c74007..42ccd0d 100644
--- a/CH32V303-FreeRTOS/User/FreeRTOSConfig.h
+++ b/CH32V303-FreeRTOS/User/FreeRTOSConfig.h
@@ -72,6 +72,10 @@
#define FREERTOS_CONFIG_H
#include "debug.h"
+/* user */
+#define configUSE_QUEUE_SETS 1
+
+
/*-----------------------------------------------------------
* Application specific definitions.
*
@@ -97,7 +101,8 @@
#define configTICK_RATE_HZ ( ( TickType_t ) 500 )
#define configMAX_PRIORITIES ( 15 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 256 ) /* Can be as low as 60 but some of the demo tasks that use this constant require it to be higher. */
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 12 * 1024 ) )
+// #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 12 * 1024 ) )
+#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 24 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_TRACE_FACILITY 0
#define configUSE_16_BIT_TICKS 0
diff --git a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.elf b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.elf
index e2c204e..afdbf8c 100644
Binary files a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.elf and b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.elf differ
diff --git a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.hex b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.hex
index 8c07058..07f7cfe 100644
--- a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.hex
+++ b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.hex
@@ -12,16 +12,16 @@
:1000A4008C0800008C0800008C0800008C080000FC
:1000B4008C0800008C0800008C0800008C080000EC
:1000C4008C0800008C0800008C0800008C080000DC
-:1000D4008C0800008C080000083100005231000038
+:1000D4008C0800008C08000072380000BC38000056
:1000E4008C0800008C0800008C0800008C080000BC
:1000F4008C0800008C0800008C0800008C080000AC
:10010400000000008C0800008C0800008C0800002F
-:100114008C0800009C3100008C0800008C08000052
+:100114008C080000063900008C0800008C080000E0
:100124008C0800008C0800008C0800008C0800007B
:100134008C0800008C0800008C0800008C0800006B
:100144008C0800008C0800008C0800008C0800005B
-:100154008C0800008C0800008C080000E6310000C8
-:10016400303200007A3200008C0800008C08000055
+:100154008C0800008C0800008C0800005039000056
+:100164009A390000E43900008C0800008C08000073
:100174008C0800008C0800008C0800008C0800002B
:100184008C0800008C0800008C0800008C0800001B
:100194008C0800008C0800008C0800008C0800000B
@@ -31,9 +31,9 @@
:100210002ACE2ED032D236D43AD63ED842DA46DC76
:100220004ADECEC0D2C2D6C4DAC6DEC8E2CAE6CC46
:10023000EACEEED0F2D2F6D4FAD6FED8F3220030CF
-:1002400096DA9702002083A222F723A02200F3254A
-:1002500010342EC09305000273A0458003A1818154
-:10026000EF10707117030020032303F5032103002F
+:1002400096DA9702002083A222F623A02200F3254B
+:1002500010342EC09305000273A0458003A1C18114
+:10026000EF20A03E17030020032303F40321030023
:10027000824273901234D652739002309240A2425E
:100280003243C2435244E244724582551256A2564A
:100290003257C2575258E25872598649164AA64AEE
@@ -43,8 +43,8 @@
:1002D00013000000130000001300000013000000D2
:1002E00013000000130000001300000013000000C2
:1002F00013000000130000001300000013000000B2
-:1003000083A28181938202E073900234170100205E
-:10031000032181EA024182403243C2435244E24413
+:1003000083A2C181938202E073900234170100201E
+:10031000032181E9024182403243C2435244E24414
:10032000724582551256A2563257C2575258E25859
:1003300072598649164AA64A364BC64B564CE64C6D
:10034000764D865D165EA65E365FC65FD652A1020A
@@ -91,13 +91,13 @@
:1005D000939627009702000096968682E78086FA17
:1005E0009680C1171D8F3E96E374C3F8A5B701A08E
:1005F000B707EFBE37E700E0938707083CC701A0C5
-:10060000EFF27FF10945EF007009912AEF20401EBB
-:10061000716513050520EF20C020B707002083A5D2
-:1006200007173755000013058528EF30F022CD233A
-:10063000AA853755000013058529EF30F021B755FD
-:100640000000375500009385852A1305052BEF30F0
-:10065000B020EF30C04E375400001305042DEF30AA
-:10066000F030E5BFB71702409843B706FFF04111DD
+:10060000EFF27FF10945EF007009912AEF20C07FDA
+:10061000716513050520EF205002B707002083A560
+:10062000871537650000130505A5EF40E01CCD23B5
+:10063000AA8537650000130505A6EF40E01BB765E6
+:10064000000037650000938505A7130585A7EF40D7
+:10065000A01AEF30505E37640000130584A9EF4004
+:10066000E02AE5BFB71702409843B706FFF04111F3
:100670001367170098C3D84337060200758FD8C395
:100680009843B706F7FEFD16758F98C39843B706D3
:10069000FCFFFD16758F98C3D843B70601FFFD1602
@@ -113,7 +113,7 @@
:10073000984393166700E3DD06FED843B7160240E0
:10074000719BD8C3D84313672700D8C32147DC4225
:10075000B18BE39EE7FE4101828002C661BFB716FE
-:100760000240D842B70700201146318B9387071704
+:100760000240D842B70700201146318B9387871586
:100770006305C70021466308C70237177A001307CD
:10078000072098C337170240584311839376F70028
:100790003707002013070700369714239843335771
@@ -132,11 +132,11 @@
:10086000A600E546E9BF3D456396A600D14633871D
:10087000E602C9BF8906E5BF3D8B9306170037170F
:100880007A00130707203357D702F1B701A0970169
-:1008900000209381210E177100201301A1761755B6
-:1008A0000000130525D897F5FF1F9385A5751386BE
-:1008B000018263FAC5008322050023A055001105BB
-:1008C0009105E3EAC5FE170500201305A58C9735B1
-:1008D00000209385E5F86377B50023200500110516
+:1008900000209381A10C177100201301A176175538
+:1008A00000001305653F97F5FF1F9385A575138617
+:1008B000818263FAC5008322050023A0550011053B
+:1008C0009105E3EAC5FE170500201305A58B976582
+:1008D0000020938525FC6377B500232005001105D2
:1008E000E36DB5FEFD42739002BCFD427390428001
:1008F000B7820000938202807390023097F2FFFF6C
:100900009382827093E2320073905230EFF09FD561
@@ -229,7 +229,7 @@
:100E7000F701232A15010506E319C6FD54C1828036
:100E8000E39457FA10C94DB7E39757FE232815018D
:100E9000DDB719C20CC982804CC98280B707002017
-:100EA00023A8A7188280B707002003A7071989473E
+:100EA00023A0A7188280B707002003A70718894747
:100EB00010216311F70214318D4763EDD7003C21F7
:100EC0009A0637E700E09607D58F93F7F70F32972A
:100ED0002300F74054410547935756003317C70086
@@ -285,1117 +285,1220 @@
:1011F00085461583B397B6006311D7025A25F98F38
:101200001A2101454207418381CB0545A181B315D0
:10121000B5006D8F3335E000828089466314D700B6
-:101220001A29F1BF5A29E1BFB70700209387C71ACF
+:101220001A29F1BF5A29E1BFB70700209387C719D0
:101230009843636FA702D043B386C7006316D500F7
:1012400054413E85B296D4C35041B306C500631CD9
-:10125000D700B706002083A646196306D70054437B
+:10125000D700B706002083A646186306D70054437C
:101260001843B29654C118C16303F50088C3828045
-:10127000BA877DBFEFF28FA841112AC6EF00F03682
-:10128000B706002083A74619370600209386461923
-:10129000130686193245A1EF37070020930707266A
-:1012A00093F5F7001307072681C51387F700419BC5
-:1012B000B70500209385C51A23A2050098C18D6546
+:10127000BA877DBFEFF28FA841112AC6EF10800315
+:10128000B706002083A74618370600209386461825
+:10129000130686183245A1EF370700209307C727AA
+:1012A00093F5F7001307C72781C51387F700419B04
+:1012B000B70500209385C51923A2050098C199653B
:1012C000C115AE97C19B23A2070023A00700B385D9
-:1012D000E7409CC21CC3B707002023A0B71AB7077A
-:1012E000002023AEB718B70700804CC31CC2032AE6
+:1012D000E7409CC21CC3B707002023A8B718B70774
+:1012E000002023A6B718B70700804CC31CC2032AEE
:1012F0000600B377AA0085E39307F5FF3957636CBF
:10130000F7009307050113F7F70041C313F707FF31
:10131000410763EBE706814489A022872E8461A000
-:1013200058C15CC011375840B70600209386061A92
+:1013200058C15CC011375840B70600209386061993
:101330009042B307E94023A0F90063F3C7009CC2C1
-:10134000B70700203367EA009387471A58C09843CD
-:10135000C10423200400050798C3EF00504593F70C
-:10136000F400D1CBA167938707807390073037567D
-:101370000000375500001306862E93050011130553
-:101380000531EF20704D01A0BA87370700200329EF
-:10139000C7199309C719E360F9F837070020032438
-:1013A000C71A1307C71A50406374F6000C40B5F50E
+:10134000B70700203367EA009387471958C09843CE
+:10135000C10423200400050798C3EF10801293F7FF
+:10136000F400D1CBA167938707807390073037666D
+:10137000000037650000130606AB93050011130546
+:1013800085ADEF30604701A0BA87370700200329F9
+:10139000C7189309C718E360F9F83707002003243A
+:1013A000C7191307C71950406374F6000C40B5F510
:1013B0009442E38286F61440044314C33307F64094
:1013C00093060002E3F1E6F63305F4009376F500A8
-:1013D000A1DAA16793870780739007303756000022
-:1013E000375500001306862E9305F00C13050531C2
-:1013F000EF20904601A0268541016FF06F9355C103
-:10140000EFF26F91B7070020032745FF83A78719E5
+:1013D000A1DAA16793870780739007303766000012
+:1013E00037650000130606AB9305F00C130585ADB9
+:1013F000EF30804001A0268541016FF06F9355C109
+:10140000EFF26F91B7070020032745FF83A78718E6
:101410002A84B376F7009DE2A167938707807390D3
-:10142000073037560000375500001306862E930507
-:10143000401213050531EF20304201A0832605FF3D
-:101440009DC2A167938707807390073037560000CD
-:10145000375500001306862E9305501213050531EB
-:10146000EF20903F01A093C7F7FFF98F232AF5FEE5
-:10147000EF00B017B70700209387C71994430327DD
+:1014200007303766000037650000130606AB9305EA
+:101430004012130585ADEF30203C01A0832605FF47
+:101440009DC2A167938707807390073037660000BD
+:1014500037650000130606AB93055012130585ADE2
+:10146000EF30803901A093C7F7FFF98F232AF5FEEB
+:10147000EF005064B70700209387C71894430327F1
:1014800044FF130504FF369798C3793BB707002044
-:101490009387871A9843050798C3EF0050316FF080
+:10149000938787199843050798C3EF00907E6FF0F4
:1014A000CF898280B7E700E041572387E740238652
:1014B000E740B7F700E023A0070023A2070081461A
-:1014C00094C70147D8C7370700208325071713079C
+:1014C00094C70147D8C7370700208325871513071E
:1014D000401F814633D6E5023D4790CBD4CB98C31D
:1014E0008280EFF24F83411102C6F32750303EC68F
:1014F000B2470D478D8B6384E702A167938707800E
-:1015000073900730375600003755000013064633F6
-:101510009305600B13050531EF20103401A0B78748
+:101500007390073037660000376500001306C6AFDA
+:101510009305600B130585ADEF30002E01A0B78752
:10152000002093870700BD8B9DC3A1679387078029
-:1015300073900730375600003755000013064633C6
-:101540009305B00B13050531EF20103101A0993F31
+:101530007390073037660000376500001306C6AFAA
+:101540009305B00B130585ADEF30002B01A0993F3B
:10155000B7E700E0056723A0E710116723A0E710B5
:1015600023A40180EFE0DFD9014541016FE0FFFCDA
:1015700073110134A1679387078073900730B7F721
-:1015800000E023A20700EF00F00711C5B7E700E075
+:1015800000E023A20700EF00305511C5B7E700E0E7
:10159000116723A0E720A16793878788739007309E
:1015A0007311013473002030A16793870780739013
:1015B0000730938781809843050798C382801387FB
:1015C00081801C438DE7EFE21FF5A16793870780B9
-:1015D0007390073037560000375500001306463326
-:1015E0009305201013050531EF20102701A0FD17EA
+:1015D0007390073037660000376500001306C6AF0A
+:1015E00093052010130585ADEF30002101A0FD17F4
:1015F0001CC391E7A1679387878873900730828027
-:10160000930785007D575CC118C55CC51CC92320A4
-:10161000050082802328050082809841FD569307AB
-:101620008500631ED7001C49D843D8C10CC79CC590
-:10163000CCC31C4188C985071CC18280B687D443AE
-:101640009042E37DC7FECDB7544118451C4998C66A
-:1016500054C3D4436393A600D8C3984323280500FA
-:101660007D1798C388438280EFE2FFEA41112AC6C2
-:10167000253F3245005DA1371335140041016FE06D
-:10168000DFEB304115C2EFE21FE958451445AA8748
-:10169000329758C56364D700184158C52E85CC478A
-:1016A000EF2070106FE07FE98280EFE2DFE62A84AE
-:1016B000E53D8344540413094402E204E184634594
-:1016C0009002FD57A302F404DD3DF93D8344440438
-:1016D00013090401E204E18463449002FD572302EC
-:1016E000F404F13D6FE07FE55C50E1DF4A85EF00F7
-:1016F000103E19C1EF00505AFD14E204E184C1B755
-:101700001C48E9DF4A85EF00903C19C1EF00D05832
-:10171000FD14E204E184C9B7EFE2FFDF41111DE1EE
-:10172000A1679387078073900730375600003755BD
-:1017300000001306C6359305001113050531EF208F
-:10174000B01101A05C5D2EC62A84BDC33841B3B779
-:10175000E702B9EF913D3040585C1440232C04025D
-:10176000B307E602B24554C03387F600918FB697AF
-:101770005CC4FD572302F40418C4A302F40495E1E9
-:101780001C4899CB13050401EF00703411C5B7E76D
-:1017900000E0116723A0E7201D35054541016FE0FA
-:1017A000DFD913050401A93D13054402913DEDB7AE
-:1017B000A16793870780739007303756000037552D
-:1017C00000001306C6359305501413050531EF20AC
-:1017D000B00801A0EFE23FD4411121C1B3B7A50287
-:1017E000AA8485EF3305B502930770FB63E7A70270
-:1017F000130585042EC6BD3C2A8401CDB245AA87B7
-:1018000099C1930785042CC01CC044DC8545228502
-:101810002137228541016FE05FD2A167938707805E
-:101820007390073037560000375500001306C63551
-:101830009305601C13050531EF20100201A0EFE2B3
-:101840001FCB011132C61DE1A167938707807390FA
-:10185000073037560000375500001306C63593058C
-:10186000105513050531EF20207F01A02A84AE8991
-:101870008DE53C419DC3A167938707807390073036
-:1018800037560000375500001306C63593055055EE
-:1018900013050531EF20407C01A0EF00B04015E5B5
-:1018A000B247014985C7A1679387078073900730C6
-:1018B00037560000375500001306C6359305A0556E
-:1018C00013050531EF20407901A001497D5A930AA3
-:1018D000440237EB00E0916B95A0B24781E7C53138
-:1018E000014559A0631509002808EF00102DC139E2
-:1018F000ED295D3983474404E207E187639447019A
-:101900002302040483475404E207E18763944701F8
-:10191000A30204046D316C002808EF00702B21ED48
-:101920002285993329C5B2455685EF00700E228570
-:10193000AD3BB52D19E123207B210549B531045C70
-:10194000C9DCCE852285FD142D3B04DC1C4899CBD7
-:1019500013050401EF00B01711C5B7E700E01167E8
-:1019600023A0E720A939054505616FE0DFBB22858B
-:101970002D3B352DD9B722850D3B152D2285ED3117
-:101980004DDDB9BF15E5EFE21FB9A1679387078069
-:1019900073900730375600008565375500001306F1
-:1019A000C635938585AC13050531EF20E06A01A0AB
-:1019B0009DCD373600209306062681470147130642
-:1019C0000626214883A846006398A800931737008D
-:1019D000B2978CC3C8C321A891E783A8060063937C
-:1019E0000800B6870507A106E31E07FDFDF3828008
-:1019F000EFE27FB241112A842EC632C47536834786
-:101A000044047D572246E207E187B2456394E7002C
-:101A100023020404834754047D57E207E18763945B
-:101A2000E700A302040432C62EC4513E1C5CA2454A
-:101A3000324689E713054402EF0010022285B531D2
-:101A400041016FE09FAF370700201307871B1C433E
-:101A50009443B70700209387871D81E67D5798C37D
-:101A60008280184358471843DDBFEFE23FA937098A
-:101A70000020B70700209304491B83A9871E2A84EE
-:101A80009C4088404111A388070411052EC66D3E75
-:101A90007D579307491BB245631CE40295C9B737CC
-:101AA0000020938787409440D84398C610479440BD
-:101AB000D0C694401047910654C29440910614C772
-:101AC00098405CCB9843050798C341016FE05FA63F
-:101AD00098434E9440C3637A3401370700200325AE
-:101AE000C71B8C439105153ECDB737070020032552
-:101AF000871B8C4391051536B70700209387871DF8
-:101B00009843E374E4FC80C3C9B7EFE23F9F3734E6
-:101B10000020B70900201304C441370A0020938431
-:101B2000491C9C40EDDF49345C4403A9C700130500
-:101B30004900193E13070A1C1C43FD171CC39C4097
-:101B4000FD179CC0AD3C03250903EFF05F8B4A8570
-:101B5000EFF0FF8AE9B7EFE29F9913192600AA8AEE
-:101B60004A852E8A368BBA8BBE89EFF0AFF01DC145
-:101B7000AA8413054005EFF0EFEF2A8409C904D9C0
-:101B80008147C146631A0A00230A050225A026855B
-:101B9000EFF0FF867D5565A23307FA0003070700C3
-:101BA0003306F400230AE60201C78507E396D7FE51
-:101BB000A3010404B94763F47703A16793870780FF
-:101BC000739007303756000037550000130606376C
-:101BD0009305703913050531EF20004801A0130A61
-:101BE000440052852326740323227405232404040D
-:101BF000EFF05FA213058401EFF0DFA13D4713056D
-:101C0000C9FF33077741269500C818CC40D023067A
-:101C10000404A306040423070404A30704042308FC
-:101C20000404A30804045A86D6854199EFE04FFDC9
-:101C300008C06384090023A08900EFF0FF96B7076E
-:101C400000209387071C9843B7040020B739002071
-:101C5000050798C31387441B18439384441B1389B7
-:101C6000092A6310070E80C0984385476316F7065C
-:101C70009389092A930AC9124E85D109EFF05F981A
-:101C8000E39C3AFF37350020930AC53C1305C53C59
-:101C9000EFF01F97373500209309053E1305053EE9
-:101CA000EFF01F96373500201305453FEFF05F95A5
-:101CB000373500201305C541EFF09F9437350020DC
-:101CC00013058540EFF0DF93B707002023AC571BC7
-:101CD000B707002023AE371BB70700209387C71C28
-:101CE0009843050798C3370700201307071D5C5466
-:101CF000144363F3F6001CC35147B387E702CA9746
-:101D0000D843144718C454C4144723A246012324BB
-:101D1000470198435CC8050798C3EFF05F8AB7078F
-:101D2000002083A7471E054599CB9C40D8575C549B
-:101D30006377F700B7E700E0116723A0E7206FE0C3
-:101D40008FFEB707002083A7471ED9F79C40D857BE
-:101D50005C54E3E3E7F880C041B7EFE2CFFBB7079D
-:101D60000020B7550000372500009387471D014725
-:101D7000814613060010938545381305A5B0E13B55
-:101D80000544631E8502EF00D020631A8502A16717
-:101D90009387078073900730B70700207D5723ACE7
-:101DA000E71CB707002023A2A71EB707002023A423
-:101DB000071EEFF00FF383A7C1806FE00FF8FD5708
-:101DC000E31BF5FEA16793870780739007303756B2
-:101DD0000000856537550000130606379385058496
-:101DE00013050531EF20402701A0B7070020938796
-:101DF000871C9843050798C38280B707002003A576
-:101E0000871E8280B707002083A7871C6398071866
-:101E1000EFE26FF0B70700209387871E8043050429
-:101E200080C339E8B70700209387871B984318437E
-:101E300005C7A16793870780739007303756000066
-:101E400085653755000013060637938575AC130575
-:101E50000531EF20602001A0370700201307C71BC2
-:101E60009443104390C3B707002014C39387C71D42
-:101E70009843050798C3C13E370600209307861D87
-:101E80009C4337370020B70500201306861D130733
-:101E9000072A9385451B01456375F4029C41D14691
-:101EA000DC57B387D7023E971843854763F3E700B3
-:101EB0000545B707002083A7C71E91C305456FE0FE
-:101EC000CFE7370E0020B70E0020514F93078E1B2F
-:101ED0009443944281E6FD571CC2C9B79C43DC473A
-:101EE000DC47D4436374D40014C24DBF83A8870079
-:101EF00003A8C700D44B1383470023A4080123225F
-:101F0000180183A846006394680023A2060103A871
-:101F1000060023AA07007D1823A00601945795CA3E
-:101F200003A8C70183A8070283AF46002324180132
-:101F300083A8070223A208011388870163940F0175
-:101F400023A2160103A8060023A407027D1823A0DC
-:101F5000060193860E1D03A8C70283A8060063F43A
-:101F6000080123A00601B306E803BA9683A8460039
-:101F700083AF880023A4170123A6F70183AF88004D
-:101F800023A26F0023A46800D4CB9C4285079CC287
-:101F90009C41DC57E36CF8F205450DBFB707002004
-:101FA0009387071E98430145050798C38280EFE297
-:101FB000EFD4370400201304841C1C40411185E732
-:101FC000A1679387078073900730375600008565B7
-:101FD00037550000130606379385358B13050531F9
-:101FE000EF20800701A0EFF02FDC1C40FD171CC084
-:101FF0001C4089CB01452AC6EFF06FDC3245410118
-:102000006FE00FD3B707002083A7071CE5D7B736CB
-:1020100000203735002081479386463F370F002048
-:102020001305052AD14837030020370E0020854EBE
-:1020300059A8DC46DC47CC4F9053985790C503A86D
-:1020400007022322B8000328470093858701631302
-:10205000B80050C3104323A407027D1610C38C4759
-:10206000D047D84B1388470090C54CC24C4363936C
-:10207000050150C3104323AA07007D1610C31307A0
-:102080000F1DD0570C4363F3C50010C3330716036D
-:102090002A974C4383AF85008CC723A6F70183AFF3
-:1020A000850023A20F0123A405010C43D8CB85058D
-:1020B0000CC31307431B184358576366E600130706
-:1020C000CE1E2320D70198422DF799C3EFF0BF977A
-:1020D000B70700201387071E04431384071E91CC03
-:1020E000370900208549393B09C59307C91E23A03C
-:1020F0003701FD14EDF823200400B707002083A763
-:10210000C71EE38907EEB7E700E0116723A0E720C9
-:102110000545D5B519E5B7E700E0116723A0E7202D
-:102120008280EFE24FBFB707002083A7871C4111D1
-:102130009DC3A167938707807390073037560000CF
-:1021400037550000130606379305905413050531E3
-:10215000EF10907001A02AC6493932458145EFF051
-:10216000DF90B13511E5B7E700E0116723A0E72064
-:1021700041016FE08FBCB707002003A7871CB7079A
-:1021800000209387C71E01C7054798C3828023A0FC
-:102190000700B70700201387071D18431386071D84
-:1021A000B73700209387072A5148B3060703B38542
-:1021B000D700884115C5C841A106BE964841C8C18F
-:1021C0006314D5005441D4C1D146B306D702B697A3
-:1021D000DC43D447B707002023AAD71A18C282804D
-:1021E00015E7EFE24FB3A16793870780739007303D
-:1021F000375600008565375500001306063793856E
-:1022000025C013050531EF10306501A07D1771BFA2
-:10221000EFE26FB005E5A167938707807390073001
-:10222000375600008565375500001306063793853D
-:10223000C5C113050531EF10306201A0B7070020BA
-:102240002E8483A5471BE105EFF02FBD8545228530
-:10225000EFF0BF816FE06FAEEFE2EFAB2A8705E5ED
-:10226000A167938707807390073037560000856514
-:102270003755000013060637938525C5130505312C
-:10228000EF10905D01A0B70700209387471B5443D0
-:102290002E858C4303A88600D4CD8C4323A0050350
-:1022A00003A807008C46610823A2050103A80700C4
-:1022B0009C43610823A4060198D71C4385071CC3CF
-:1022C00011C27D55B285EFF04FFA6FE00FA75C4564
-:1022D000DC4795E7EFE22FA4A1679387078073900F
-:1022E000073037560000856537550000130606375E
-:1022F000938525C813050531EF10105601A0D04F66
-:10230000945398579385870114C6D0C250436313E2
-:10231000B60054C3144323A40702FD1614C33707A1
-:1023200000200327871CD45725EF8C47D047D84B74
-:1023300090C5D04748434CC2938547006313B5000E
-:1023400050C3104323AA07007D1610C3370700208F
-:102350001307071D10436373D60014C35147338618
-:10236000E602373700201307072A32975043084602
-:1023700090C7C8C708464CC10CC6D8CB1C43014502
-:1023800085071CC3B707002083A7471BDC5763F8EA
-:10239000D700B7070020054723A6E71E0545828022
-:1023A000373700201307473F50430846D0CF88D324
-:1023B00008464CC10CC698D7D1B7B707002083A7F1
-:1023C000C71D1CC1B707002083A7871E5CC1828080
-:1023D000EFE26F94411105E5A16793870780739041
-:1023E000073037560000856537550000130606375D
-:1023F0009385D5CF13050531EF10104601A085E573
-:10240000A167938707807390073037560000856572
-:1024100037550000130606379385E5CF13050531C0
-:10242000EF10904301A02EC62AC4EFF0EF973707B4
-:102430000020B70700201307471B83A6871E1C43F5
-:102440002245B24583C7170599CB1C43A3880704CF
-:102450000544EFF0CF96228541016FE00F8E9C413D
-:102460007D570144E387E7FE370600200326C61D9B
-:102470000328050058416307C80063E5E60023A070
-:102480000500F9B73386E640E37BF6FE958FBA97F1
-:102490009CC12537014475BFB7070020054723A617
-:1024A000E71E8280B707002083A7471E054581CB22
-:1024B000B707002003A5871C133515000605828089
-:1024C000EFE26F8537040020EFF00F8E1304C41F76
-:1024D0001C40B1E7373500201309054313050543B8
-:1024E000EFF00F923735002093044544130545441F
-:1024F000EFF00F91B707002023A8271F0146B70769
-:102500000020C145114523AA971EEFF0AFAC08C0CB
-:1025100019C5B75500009385053BEFF0AFC6EFF046
-:102520000F8A6FE08F81EFD21FFF4CC108C9AA87C5
-:102530006362B602184D158E0545637BE6009385F0
-:102540004700B707002003A5471FEFF00F8D014597
-:102550006FD0BFFE6375D6000545E3FBD5FE9385BE
-:102560004700B707002003A5071FC5B7EFD2BFFA82
-:102570002A84AE8432890C4CA6864A86A69522858A
-:102580005D3719E16FD07FFB1C4C2285BE941C5037
-:102590008297D5B7EFD23FF8B707002083A7071F70
-:1025A0004111AA84DC472EC6C04713054400EFF052
-:1025B000AF8983474402324613F7470011CBA68503
-:1025C00022856D371C502285829741016FD0FFF61E
-:1025D000F99B2302F402FDB7EFD2FFF3370400208A
-:1025E0009306041F98421C4391EBB7070020938782
-:1025F000471F904398C390C26FD03FF45C47FD558E
-:102600008843493FF1BFEFD29FEE15694111B70AE8
-:102610000020B7090020370B0020B70B002013095A
-:10262000C93883A70A1F984329CBDC47814C03ACE8
-:102630000700EFF08FFBEFF04FFC83A7891F2A8480
-:102640009384891F130ACB1F636CF50288C0638FC4
-:102650000C0283A74B1F90431336160003250A0074
-:10266000B3058C40EFF0CFB8EFF07F9411EDB7E7F2
-:1026700000E0116723A0E72001A8854C014C55BF5D
-:10268000A13F80C0EFF0BF92214C05A00146E36757
-:1026900085FDEFF0DF91A2856285ED3DF5B79247AC
-:1026A000B2458297824763DD070003250A00014691
-:1026B0008A85EFF0CF9835D582472245E3C107FEE2
-:1026C00022445C4895E3EFF04FF39C40AA8C63737F
-:1026D000F5001937824723A09401FD17E367FCFC3E
-:1026E0008A07CA979C43828713054400EFE0DFF511
-:1026F000D9BF834744020C4C924693E7170023024C
-:10270000F4026686B6952285393D45D18347440259
-:1027100013F7470019CB1C4C924566862285BE955F
-:10272000B1351C502285829749B7F99B2302F402E8
-:10273000CDBF83474402F99B2302F402BDB7834710
-:102740004402924593E717002302F4020CCC9DE16A
-:10275000A16793870780739007303756000037557D
-:1027600000001306863B9305903513050531EF10E5
-:10277000B00E01A0E6866686E69522856D3335B7F4
-:102780008347440213F727005DF72285EFE03FC738
-:1027900029BFEFD25FD82D33B707002083A7C71F0B
-:1027A0009DE3A16793870780739007303756000039
-:1027B000375500001306863B93059011130505312C
-:1027C000EF10900901A0B7070020B755000037258A
-:1027D0000000938707203947814613060010938530
-:1027E000053D13056560EFF00FB745DD6FD0FFD4F1
-:1027F000B707002083A7071737177A0013070720AA
-:10280000B3D7E7023707002093F7F70F2303F7202A
-:102810001307803EB387E702370700202312F72013
-:102820008280EFD25FCF2A841165011185451105A1
-:10283000EFE0FF86930700207C82371501408D472B
-:102840003EC44C00E147130505803EC6EFE06FD85B
-:1028500022C837440140B70708000C08130504805C
-:102860003ECC02CA231E0100EFE01F8985451305F7
-:102870000480EFE05F9105616FD03FCCEFD21FC8BD
-:10288000B7440140AE893289014493840480634592
-:1028900024014A856FD0DFC9930500042685EFE047
-:1028A0005F947DD9B3878900838507002685050459
-:1028B000C205C181EFE0FF91D9BF138701811C439D
-:1028C000B74600209386C6853E95636BD500B786D4
-:1028D00000209386068063E5A60008C33E858280BB
-:1028E000FD57EDBF232605000CC150C12324050070
-:1028F000054582805C45544118458507B3E7D702FA
-:10290000638EE70058451C41BA978CA35C4558413B
-:102910008507B3E7E7025CC505458280795582806B
-:10292000EFD27FBF79711306000281450808EFD00E
-:102930009FC18545114502C202C402C6EFE02FF6D1
-:10294000854513050020EFE08FF51165EFE0CFDA44
-:10295000371401408547130504804C007C8202C671
-:10296000EFE02FC7C147130504804C007C8202C6EC
-:10297000EFE02FC6930700024C00130504807C8211
-:102980003724014002C6EFE0CFC413050440EFD066
-:102990003FF985473ECA3ECCB7070E003ECE0C0835
-:1029A0008D47130504402302F10202C802D0EFD084
-:1029B0001FFB854513050440EFE0CF8085451305D7
-:1029C0000440EFD03FFF814513050440EFE0EF8F57
-:1029D00013050440EFE02F80930404402685EFE0C8
-:1029E0002F806DFD1305044037240140EFD0DFFF39
-:1029F000930404402685EFD0DFFF6DFD13050440EE
-:102A0000EFE02F8EB70700202394A72045616FD0F9
-:102A1000DFB2EFD25FB079711306C0028145480082
-:102A2000EFD07FB285450545EFE08FE537040240E2
-:102A300013058400EFE06F9EB72701409387C744DA
-:102A40003EC2B70700209387C7203EC48D473EC8CB
-:102A5000930700083ECC930700103ECE930700403A
-:102A60003ED0930700023ED24C008D6713058400D0
-:102A70003ED402C602CA02D6EFE0EFB045616FD085
-:102A8000DFABEFD25FA9370502408545210537242A
-:102A90000140EFE0CFB2130504409D460546814555
-:102AA000EFD03FF7130504409D4609469145EFD00E
-:102AB0005FF69D460D46130504409545EFD07FF522
-:102AC000130504408545EFD0FFEF8545130504400D
-:102AD000EFD0BFF26FD07FA6EFD2FFA341118545A3
-:102AE00013050004EFE0AFDBA147372401407C82EF
-:102AF00085473EC44C00C147130504803EC6EFE045
-:102B00004FAD014613050480A145EFE08FB8914712
-:102B10004C00130504807C82EFE0AFAB0146130547
-:102B200004809145EFE0EFB6930700084C001305D1
-:102B300004807C82EFE0EFA9014613050480930531
-:102B40000008EFE00FB5930700104C001305048058
-:102B50007C82EFE00FA80146130504809305001066
-:102B6000EFE02FB3930700204C00130504807C8214
-:102B7000EFE02FA601461305048093050020EFE047
-:102B80004FB1930700404C00130504807C82EFE0B6
-:102B90004FA401461305048093050040EFE06FAF9A
-:102BA0008567938707804C00130504807C828564C9
-:102BB000EFE02FA201469385048013050480EFE027
-:102BC0004FAD4C00130504806482EFE08FA00146F6
-:102BD000130504808565EFE0CFAB89644C001305D5
-:102BE00004806482EFE0EF9E01461305048089654E
-:102BF000EFE02FAA91674C00130504807C82EFE080
-:102C00004F9D0146130504809165EFE08FA8E177A1
-:102C10004C00130504807C82EFE0AF9B0146130556
-:102C20000480A165EFE0EFA64C00371501406482F7
-:102C3000EFE02F9A0546896537150140EFE06FA553
-:102C400041016FD09F8FEFD21F8DEFE08FA46FD027
-:102C5000DF8EEFD25F8C79712A89854513050004D8
-:102C6000EFE0EFC337240140930700028D44FC825C
-:102C70004C08C147130504803ECE26CCEFE06F958B
-:102C800001461305048093050002EFE08FA08545FF
-:102C90004145EFE0CFC0854513050004EFE00FC2CA
-:102CA0008547FC824C08E1473715014026CC3ECED3
-:102CB000EFE02F928947FC824C089147371501407D
-:102CC000372400403ECEEFE0CF900C10B7070C0049
-:102CD000130504804AD03ED402D223160102EFE04D
-:102CE000AFC1930770357C86680085473EC844872E
-:102CF000EFE06F9B05461305048093055052EFE00B
-:102D0000EFC9854513050480EFE0EFC745616FD03B
-:102D1000DF82EFD25F8079712A898545130500042F
-:102D2000EFE0EFB737240140930700048D44FC82A5
-:102D30004C08C147130504803ECE26CCEFE06F89D6
-:102D400001461305048093050004EFE08F94854548
-:102D50004145EFE0CFB4854513050008EFE00FB61D
-:102D60009147FC824C08E1473715014026CC3ECE06
-:102D7000EFE02F86A147FC824C08914737150140B0
-:102D8000372400403ECEEFE0CF840C10B7070C0094
-:102D9000130504C04AD03ED402D223160102EFE04C
-:102DA000AFB5930780357C86680085473EC8448769
-:102DB000EFE06F8F0546130504C093055052EFE016
-:102DC000EFBD8545130504C0EFE0EFBB45616FD053
-:102DD000CFF6EFD24FF479712A8985451145EFE09E
-:102DE0000FAC3714014089478D44FC824C08C14721
-:102DF000130504803ECE26CCEFD0BFFD014613055F
-:102E000004808945EFE0EF8885451145EFE02FA963
-:102E1000854537050200EFE06FAA9147FC824C0818
-:102E2000E1471305048026CC3ECEEFD09FFAA147A0
-:102E3000FC824C089147130504803ECE3744004085
-:102E4000EFD03FF90C10B7070C00130504404AD02F
-:102E50003ED402D223160102EFE00FAA930760339B
-:102E60007C86680085473EC84487EFE0CF830546EF
-:102E70001305044093055052EFE04FB2854513050A
-:102E80000440EFE04FB045616FD02FEBEFD20FE77A
-:102E90007971AA8985452145EFE06FA03719014076
-:102EA00085470D44C1444C08130509C0FC8226CE59
-:102EB00022CCEFD01FF20146130509C08545EFD0A3
-:102EC0005FFD85454145EFE08F9D85451305001069
-:102ED000EFE0CF9EE1474C0837150140E48222CC59
-:102EE0003ECEEFD01FEF93070002FC824C089147C3
-:102EF000371501403ECEEFD0DFED0C10B7070C00C8
-:102F0000372500404ED03ED402D223160102EFE016
-:102F1000AF9E930790357C86680085473EC8408702
-:102F2000EFD07FF805469305505237250040EFE07B
-:102F3000EFA6854537250040EFE0EFA445616FD04F
-:102F40002FDFEFD24FDD3714014013050440014657
-:102F500093050020EFD0FFF31305044001469305CD
-:102F60000040EFD01FF3856501469385058013056A
-:102F70000440EFD01FF26FD04FDCEFD22FD8797121
-:102F80002A8A854513050002EFE06F91371401404E
-:102F900093070010FC820D49C1474C0813050480BB
-:102FA0003ECE4ACCEFD0FFE2014613050440930524
-:102FB0000010EFD01FEE930700204C08130504808B
-:102FC000FC82EFD01FE1930900404C0813050480F8
-:102FD000231A31018564EFD0DFDF4C08130504802C
-:102FE00093840480E482EFD0DFDEA13F8545214554
-:102FF000EFE0EF8A854537050400EFE02F8CE147CD
-:103000004C08130504C0231A31014ACC3ECEEFD040
-:103010005FDC91474C08130504C0E482375400403C
-:103020003ECEEFD01FDB0C10B7070C001305048059
-:1030300052D03ED402D223160102EFE0EF8B930769
-:1030400070137C8685475C87680085473EC8EFD053
-:103050009FE505461305048093055052EFE00F9459
-:10306000854513050480EFE00F9245616FD04FCC8A
-:10307000EFD26FCA7971AA8485454145EFE02F826E
-:10308000854513050002EFE08F8185453705100067
-:10309000EFE0CF8285670D44FC824C08E14737158D
-:1030A000014022CC3ECEEFD0DFD291473715014010
-:1030B000FC824C089147130505403ECEEFD07FD1EE
-:1030C000B7070C000C10375500403ED426D002D272
-:1030D00023160102EFE04F82054693055052375503
-:1030E0000040EFE0AF8B930750147C866800854763
-:1030F0003EC84087EFD03FDB854537550040EFE0C5
-:103100008F8845616FD06FC3397106DE16DC1ADA1D
-:103110001ED82AD62ED432D236D03ACE3ECC42CA8F
-:1031200046C872C676C47AC27EC0F929F250E2520D
-:103130005253C2533255A255125682567247E24735
-:103140005248C248324EA24E124F824F2161730044
-:103150002030397106DE16DC1ADA1ED82AD62ED4B3
-:1031600032D236D03ACE3ECC42CA46C872C676C4B7
-:103170007AC27EC01D2BF250E2525253C2533255D6
-:10318000A255125682567247E2475248C248324E02
-:10319000A24E124F824F216173002030397106DE3A
-:1031A00016DC1ADA1ED82AD62ED432D236D03ACE2F
-:1031B0003ECC42CA46C872C676C47AC27EC0412B93
-:1031C000F250E2525253C2533255A2551256825611
-:1031D0007247E2475248C248324EA24E124F824FC7
-:1031E000216173002030397106DE16DC1ADA1ED830
-:1031F0002AD62ED432D236D03ACE3ECC42CA46C897
-:1032000072C676C47AC27EC0CD23F250E2525253C7
-:10321000C2533255A255125682567247E24752485F
-:10322000C248324EA24E124F824F216173002030AD
-:10323000397106DE16DC1ADA1ED82AD62ED432D21E
-:1032400036D03ACE3ECC42CA46C872C676C47AC29E
-:103250007EC02D2DF250E2525253C2533255A25528
-:10326000125682567247E2475248C248324EA24E28
-:10327000124F824F216173002030397106DE16DC57
-:103280001ADA1ED82AD62ED432D236D03ACE3ECC36
-:1032900042CA46C872C676C47AC27EC0EF002069B0
-:1032A000F250E2525253C2533255A2551256825630
-:1032B0007247E2475248C248324EA24E124F824FE6
-:1032C000216173002030B7070020039787208147D2
-:1032D0002A97634F070009CD05669306F6FFB68768
-:1032E0006358C700AA876305D50093170701C183F8
-:1032F0003E858280EFD22FA2EFF08FE2EFF06FF1E8
-:10330000EFF02FF86FD06FA3375700000327074364
-:10331000B707002023AEE7203757000003274743B5
-:10332000B707002023ACE720375700000327874367
-:10333000B707002023AAE7208280EFD2CF9DB707EE
-:1033400000200395C7204137EF00B032B7070020B7
-:1033500083A5C721EF00D0026FD02F9EEFD2AF9B85
-:10336000B70700200395E720B93FEF009030B7077B
-:10337000002083A54721EF00B0006FD00F9CEFD253
-:103380008F99B707002003950721353FEF00702E76
-:10339000B707002083A58721EF00807E6FD0EF99CB
-:1033A000EFD26F97B70700201387C72083D5C720B8
-:1033B00056233223375500001305C53DEF00D04991
-:1033C000375400009D3F8325843DEF00607BEF0074
-:1033D0003024AA85375500001305053FEF00D0477C
-:1033E000B53F8325843DEF00A079EF007022AA85C8
-:1033F0003755000013058540EF00104649378325F7
-:10340000843DEF00E077EF00B020AA85375500003B
-:103410001305C541EF0050446FD02F92EFD2AF8F0C
-:10342000EFF08FEB6FD06F91EFD2EF8E85472E8646
-:10343000930500086307F5028947930500106302AE
-:10344000F5028D4793050020630DF5009147930524
-:1034500000406308F5009547631DF5008565938579
-:1034600005803725014013050580EFF0CFFD6FD0B3
-:10347000CF8C99478565E306F5FE9D478965E30294
-:10348000F5FEA1479165E30EF5FCA547A165E30AAA
-:10349000F5FCA947E31DF5FCA145E1B7EFD20F8686
-:1034A000370400209307040201491304040219475A
-:1034B000D4436392A60893094002B3093903330A3F
-:1034C000340183470A0095E7AA841385C900229531
-:1034D000EFF04FC1994703258A006390F402EFF0A3
-:1034E0004FF7930740023309F902854722992300D9
-:1034F000F900330534016FD0AF839D476395F40025
-:10350000EFF03F81F9BF89476395F400EFF07F8CBE
-:10351000C9BFA1476395F400EFF05F97D9B78D4716
-:103520006395F400EFF07FA56DBF9547E39BF4FA38
-:10353000EFF01FB47DB7050993874702E31AE9F658
-:10354000014555BFEFC23FFDB7070020B73500204A
-:1035500023AEA70C13060040938585451545EFF073
-:10356000FFF3B707002023A6A7246FC01FFDB707EE
-:10357000002083A787236399A700B707002083C78C
-:103580000725858B3E858280B707002083A7C72348
-:103590006398A700B707002083C70725898BDDB78D
-:1035A000B707002083A707246398A700B707002068
-:1035B00083C70725918BF9B7B707002083A7472456
-:1035C0006398A700B707002083C70725A18B5DBFBD
-:1035D000B707002083A787246399A700B7070020B7
-:1035E00083C7072593F7070271BFB707002003A71A
-:1035F000C7249307F00FE317E5F8B707002083C748
-:10360000072593F70704BDBFEFC2FFF03744004022
-:103610009305505213050440EFD05FBD15C9130543
-:103620000440EFD09FBB9375F50FB70700202384AC
-:10363000B722B707002003A507241C4D10495449A1
-:103640008507B3E7C7026385D7003105EFF08FAA7E
-:10365000374400409305707213050440EFD01FB942
-:103660001DC5B707002083A707249633BA3363E24A
-:10367000E60201469305707213050440EFD01FB2B5
-:10368000B70700209387072598236D9B98A36FC0E9
-:10369000DFEAD84F1386160092B3B307D7008C2306
-:1036A00013050440EFD0FFB2DDB7EFC2DFE63754B9
-:1036B00000409305505213050480EFD03FB315C965
-:1036C00013050480EFD07FB19375F50FB707002085
-:1036D0002388B722B707002003A587241C4D104973
-:1036E00054498507B3E7C7026385D7003105EFF07A
-:1036F0006FA0375400409305707213050480EFD01B
-:10370000FFAE05C9B707002083A787249633BA33D5
-:1037100063E3E60201469305707213050480EFD05F
-:10372000FFA7B70700209387072598231377F7FD96
-:1037300098A36FC09FE0D84F1386160092B3B307CB
-:10374000D7008C2313050480EFD0BFA8DDB7EFC2EC
-:103750009FDC9305505237550040EFD03FA915C963
-:1037600037550040EFD07FA79375F50FB7070020BE
-:10377000238AB722B707002003A5C7241C4D104990
-:1037800054498507B3E7C7026385D7003105EFF0D9
-:103790006F969305707237550040EFD03FA505C96D
-:1037A000B707002083A7C7249633BA3363E3E60242
-:1037B00001469305707237550040EFD03F9EB70722
-:1037C00000209387072598231377F7FB98A36FC0F2
-:1037D000DFD6D84F1386160092B3B307D7008C23D9
-:1037E00037550040EFD0FF9EDDB7EFC2DFD2372460
-:1037F00000409305505213050480EFD03F9F15C938
-:1038000013050480EFD07F9D9375F50FB707002057
-:103810002380B722B707002003A587231C4D10493A
-:1038200054498507B3E7C7026385D7003105EFF038
-:103830006F8C372400409305707213050480EFD01D
-:10384000FF9A1DC5B707002083A787239633BA3395
-:1038500063E2E60201469305707213050480EFD01F
-:10386000FF93B7070020938707259823799B98A398
-:103870006FC0BFCCD84F1386160092B3B307D700E2
-:103880008C2313050480EFD0DF94DDB7EFC2BFC8EF
-:103890003724004093055052130504C0EFD01F9504
-:1038A00015C9130504C0EFD05F939375F50FB707E3
-:1038B00000202382B722B707002003A5C7231C4D91
-:1038C000104954498507B3E7C7026385D70031051E
-:1038D000EFF04F823724004093057072130504C047
-:1038E000EFD0DF901DC5B707002083A7C72396330D
-:1038F000BA3363E2E602014693057072130504C011
-:10390000EFD0DF89B7070020938707259823759BA1
-:1039100098A36FC09FC2D84F1386160092B3B30707
-:10392000D7008C23130504C0EFD0BF8ADDB7EFC2E8
-:103930009FBE9305505237250040EFD03F8B15C9ED
-:1039400037250040EFD07F899375F50FB70700202A
-:103950002386B722B707002003A547241C4D104932
-:1039600054498507B3E7C7026385D7003105EFE007
-:103970007FF89305707237250040EFD03F871DC553
-:10398000B707002083A747249633BA3363E2E602E1
-:1039900001469305707237250040EFD03F80B7078E
-:1039A00000209387072598235D9B98A36FC0FFB8DD
-:1039B000D84F1386160092B3B307D7008C23372550
-:1039C0000040EFD01F81DDB7EFC2FFB441112A8460
-:1039D0002EC632C4EFF0BFB92A8935E9B245224676
-:1039E000B707002083A487234CCC2310040232B0F5
-:1039F00063958402054693057072372400401305D1
-:103A00000480EFD0AFF99A30DC4C130504809306A4
-:103A1000170096B0BA978C230DA8B707002083A48F
-:103A2000C723639A840237240040930570721305FC
-:103A300004C00546EFD08FF69A30DC4C130504C065
-:103A40009306170096B0BA978C23EFD08FF84A856B
-:103A500041016FC09FAEB707002083A40724639580
-:103A600084023744004093057072130504400546F4
-:103A7000EFD0CFF29A30DC4C1305044093061700C8
-:103A800096B0BA978C23D1B7B707002083A44724F8
-:103A90006393840293057072372500400546EFD08A
-:103AA000EFEF9A30DC4C372500409306170096B0B4
-:103AB000BA978C2359BFB707002083A48724639843
-:103AC0008400054693057072375400400DBFB70758
-:103AD000002083A4C724E39C84F6930570723755B5
-:103AE00000400546EFD08FEB9A30DC4C3755004054
-:103AF0009306170096B0BA978C2381BFEFC2BFA17F
-:103B000085452945EFF05F92B7040020EFF0CFFF25
-:103B100037040020EFF0DF880546930570723755B3
-:103B20000040EFD0AFE70325C42431469385840FCE
-:103B3000EFF09FE91305803EEFE0CFDDE1BFEFC27C
-:103B40009F9D716513050520EFF0DF9FEFF01F8D3E
-:103B5000EFF04FFAB7070020B755000037450000D7
-:103B60009387472515478146130600109385C54363
-:103B70001305C5AFEFD03FFEEFE02F9E6FC0FF9B58
-:103B8000797122D4135475014ECE52CC93199500FD
-:103B900006D626D24AD056CA5AC81374F40F93D9FF
-:103BA0009900135AF50169C49307F00F6308F40EE6
-:103BB0009397390037070004B3E9E700130414F8BA
-:103BC0008144014B13D77501939A95001377F70F32
-:103BD00093DA9A0013D9F50145CF9307F00F630CE0
-:103BE000F7028E0A130717F8B7070004B3EAFA00C2
-:103BF0003A94014633452A01BD47AA86930514002D
-:103C000063E0971017270000130707848A04BA940B
-:103C10009C40BA9782871304F40F63960A0C93E4CE
-:103C200024000946C1BF01451307F00FB707400044
-:103C3000B2502254A6075E07A5837E05D98F925401
-:103C40000259F249624AD24A424B5D8D45618280F7
-:103C5000CA86D689328B8947630FFB088D47E304F8
-:103C6000FBFC854736856310FB1A01478147C9B7BE
-:103C7000639D090413D77501939A95001377F70F85
-:103C800091440144054B93DA9A0013D9F50131F7B9
-:103C9000639D0A0093E414000546A9BF63920902DC
-:103CA000A1441304F00F094B31BF568571249307CB
-:103CB000B5FF098CB39AFA001304A4F801461DBF9E
-:103CC000B1441304F00F0D4BF5BD4E852EC6AD2447
-:103CD0009307B5FF1304A0F8B399F900098C814448
-:103CE000014BB245C5B593E434000D4621B7894771
-:103CF000D286E315FBF636851307F00F81470DBF1B
-:103D000041639306F3FF13D6090193D80A01B3F771
-:103D1000D900B3FADA0033885703B389F80213578E
-:103D20000801B30A5603D6994E97330616036373F8
-:103D300057011A96C167FD17B376F7003378F8007C
-:103D4000C206C2969399660093570701B3393001B2
-:103D5000E982B2979A07B3E6D900B3E9D7009397FF
-:103D6000490063D9070013D7190093F71900B36905
-:103D7000F7002E841307F4076350E00493F77900EB
-:103D800099C793F7F90091466383D70091099397F8
-:103D9000490063D90700B70700F8FD17B3F9F90028
-:103DA000130704089307E00F63CBE70493976900B8
-:103DB000A5831377F70FADBD8547B386E74011C7DD
-:103DC0006D4601478147E345D6E61307E40933977B
-:103DD000E9003337E000B3D7D900D98F13F7770064
-:103DE00019C713F7F70091466303D700910713979C
-:103DF0005700634C07009A07A583014715BD1307B9
-:103E0000F00F814735B52E84B5B7054781470DB50D
-:103E100037068000135775019307F6FF1377F70FE6
-:103E20009305E007B3F6A7009357F50163FCE5009F
-:103E30009305D00963FAE500370500801345F5FFC7
-:103E40003E9582800145828093055009D18E63CDD5
-:103E5000E500130660093307E64033D7E600330573
-:103E6000E040F5F33A8582801307A7F63397E60022
-:103E7000FDB7411106C622C426C20DCD9357F541A8
-:103E800033C4A7001D8CAA8422857D209307E009F6
-:103E90003387A74093076009FD8063CCE702A14602
-:103EA0009377F70F63D5A60061153314A400260499
-:103EB000258021A0814481470144260413559400A4
-:103EC000B2402244DE07FE045D8D458D92444101DF
-:103ED00082809307900963DDE7009307B50195465B
-:103EE000B317F400898E3354D400B337F0005D8CDF
-:103EF000954763D6A7009307B5FF3314F400B706C0
-:103F000000FCFD16937774003376D40085C3937755
-:103F1000F4009145638CB70011069317560063D7E0
-:103F200007009307F009758E3387A74013146600C6
-:103F300025809377F70F51B7C167637CF50293072C
-:103F4000F00F1307000263EBA70097170000938799
-:103F5000A753AA9788233305A7408280218197170A
-:103F6000000093876752AA97882361473305A740CB
-:103F70008280B7070001636DF5006181971700002B
-:103F800093878750AA97882321473305A7408280CB
-:103F90004181971700009387274FAA9788234147AD
-:103FA0003305A7408280B3C7A5008D8B3307C500BA
-:103FB00081E78D4763EDC700AA87637EE5089421FA
-:103FC00085078505A38FD7FEE3EBE7FE8280937616
-:103FD0003500AA8789CA942185078505A38FD7FE56
-:103FE00093F63700C5BF9376C7FF138606FE63F0CE
-:103FF000C70683A3050083A2450083AF850003AFF6
-:10400000C50083AE050103AE450103A3850183A866
-:10401000C5019385450223A0770003A8C5FF23A20D
-:10402000570023A4F70123A6E70123A8D70123AA59
-:10403000C70123AC670023AE17019387470223AE65
-:1040400007FF75B790419107910523AEC7FEE3EBDB
-:10405000D7FEE3E6E7F6828039713EDA2ED232D41B
-:1040600036D63AD842DC46DE9387418122CC804363
-:1040700026CA06CEAA8409C41C4C99E32285FD29D0
-:104080000C4454102686228536C6EF001015F240E7
-:104090006244D24421618280011126CA4AC806CEF8
-:1040A00022CC4EC652C4AA842E8901C51C4D91E370
-:1040B000F1219C4C804499E32685C9219717000083
-:1040C0009387874E631BF402C0405E24A18BB1C767
-:1040D0001C48A1C7FD59294A1C4483450900FD1706
-:1040E000B1E91CC463DD07062286A945268569203F
-:1040F000FD576308F502294535A0971700009387FF
-:10410000A74C6314F4008044C9B797170000938745
-:10411000A747E31CF4FAC0444DBFA2852685192A9F
-:1041200055D97D55F2406244D2444249B249224AAF
-:10413000056182801CC4050963D70700184C63CA57
-:10414000E700638845011C401387170018C08CA343
-:1041500061B7228626850D20E31035F9D9B71C40BA
-:104160001387170018C0294798A371B79387418117
-:10417000AA8588436FF05FF2011122CC26CA4AC893
-:1041800006CE4EC6AA842E89328401C51C4D91E309
-:10419000F52697170000938727416317F406C04060
-:1041A0001C4C1CC45E24A18BC1C31C48B5CF1C4849
-:1041B00008409379F90F1379F90F1D8D5C48634618
-:1041C000F500A2852685692C25E51C440505FD170B
-:1041D0001CC41C401387170018C0238037015C489B
-:1041E0006388A7005E24858B81CBA9476316F900FD
-:1041F000A2852685B5240DEDF24062444A85D2445D
-:104200004249B24905618280971700009387C73BF6
-:104210006314F400804469B7971700009387C7368A
-:10422000E310F4F8C044ADBFA2852685212041D11A
-:104230007D59D9B741119387418126C2844322C455
-:104240004AC006C62A892E8489C49C4C99E32685D7
-:1042500035269717000093872735631BF402C0406B
-:104260000317C40093170701C18393F68700ADEAD3
-:1042700093F6070195EEA5472320F900136707047D
-:104280005AA47D55B24022449244024941018280A1
-:1042900097170000938747336314F4008044C9B72D
-:1042A000971700009387472EE31CF4FAC0444DBFD4
-:1042B000918B9DC34C5889C9930744046384F500CE
-:1042C0004A85292B232A04025E242322040093F723
-:1042D000B7FD5EA41C481CC05E2493E787005EA463
-:1042E0001C4899EB5E241307002093F70728638589
-:1042F000E700A2854A8591295E2413F717001DC3A4
-:104300005C4823240400B307F0401CCC1C48014542
-:10431000B5FB8317C40013F707082DD793E70704ED
-:104320005EA485B7898B014791E3584818C4F9BF4B
-:10433000DE25011122CC26CA06CE4AC84EC613F786
-:104340008700AA842E8479EBD841634DE000B84100
-:10435000634AE0000145F2406244D2444249B24916
-:104360000561828058547DD703A9040093963701D4
-:1043700023A0040063DB060670485E24918B99C776
-:104380005C401D8E5C5899C33C401D8E5C540C50A3
-:10439000814626858297FD575A24631DF500944077
-:1043A000F54763E8D706B70740208507B3D7D7009E
-:1043B000858BA5C31C48232204001CC0931737011A
-:1043C00063D80700FD576314F5009C4091E368C86B
-:1043D0004C5823A02401BDDD930744046384F500F9
-:1043E0002685ED2E232A0402B5B70C5001468546DA
-:1043F00026850297FD572A86E311F5F89C40B5DF24
-:1044000075476385E70059476393E70423A02401B8
-:1044100091B7136707045AA47D5535BF83A90501D9
-:10442000E38A09F203A905008D8B23A03501330926
-:104430003941014791E3D84918C4E35D20F11C5488
-:104440000C50CA864E86268582976347A0005E245C
-:1044500093E707045EA4C9B7AA993309A940F1BF3D
-:104460009C49A5C3011122CC06CE2A8411C51C4D3E
-:1044700081E72EC62122B245971700009387C71205
-:10448000639CF5004C408397C5009DC7228562441C
-:10449000F24005616FF0DFE9971700009387C712BC
-:1044A0006394F5000C44C5B7971700009387C70DB8
-:1044B000E39BF5FC4C44C1BFF240624401450561F9
-:1044C000828001458280411122C406C62A844EA5FD
-:1044D00072A52320050023220500232405002322A2
-:1044E000050623280500232A0500232C0500214664
-:1044F00081451305C505EFC00F8597170000938709
-:1045000087B45CD0971700009387A7B61CD4971781
-:104510000000938787BA5CD4971700009387E7BCA5
-:1045200000D01CD8B240224441018280970500008F
-:10453000938545F391AA411126C213068006938400
-:10454000F5FFB384C4024AC02E8922C406C69385EF
-:1045500044072D2E2A8401CD232005002322250186
-:10456000310508C4138684068145EFB0DFFD22853E
-:10457000B240224492440249410182801C4DA5E789
-:10458000411106C622C497070000938767FA1CD51D
-:104590009387C1819C4323240504232605042328F3
-:1045A00005046314F50085471CCD2A84352848C0CE
-:1045B00022851D2808C42285052848C44840014694
-:1045C0009145EFF05FF008440546A545EFF0BFEFD9
-:1045D00048440946C945EFF01FEF85471CCCB2405F
-:1045E000224441018280828041119387C18126C289
-:1045F00084434AC006C69C4C22C42A8981E726858A
-:10460000EFF0DFF7938484048044DC40FD1763D629
-:1046100007009C40B9CF8440C5BF0317C40039E7E9
-:10462000C1778507232204062320040023220400E7
-:10463000232404005CC423280400232A0400232C20
-:104640000400214681451305C405EFB0DFEF232A9E
-:104650000402232C040223240404232604042285B8
-:10466000B2402244924402494101828013048406EC
-:1046700071BF91454A85EFF01FEC88C049FDB147F5
-:104680002320F9000144E1BF797122D44AD052CCF1
-:1046900056CA5AC85EC606D626D24ECE2A8AAE8AD8
-:1046A000130485040149054BFD5B09ECB25022540B
-:1046B0004A8592540259F249624AD24A424BB24B5D
-:1046C00045618280044483294400FD1963D40900B4
-:1046D0000040E1BFDE24637BFB008397E400638737
-:1046E0007701A6855285829A3369A900938484064E
-:1046F000E9BF1971A6DAAE848395E500A2DC86DEF7
-:10470000328463DB0500DE2423A0060093F707084C
-:1047100085E7930700401DA0300836C6EF007023E0
-:10472000B246E34205FE7247BD67F98F7977BA97C3
-:1047300093B717009CC2F1BF930700041CC0F6504A
-:104740006654D654014509618280DE25011122CCD0
-:1047500006CE26CA4AC8898B2E8489CF9307740453
-:104760001CC01CC885475CC8F2406244D244424920
-:104770000561828074003000AA84EFF09FF7A245A3
-:104780002A892685212219E98317C40013F70720F7
-:1047900061FFF19B93E727005EA4C9B7970700006C
-:1047A000938707D99CD45E2408C008C893E70708FC
-:1047B0005EA4A2475CC8B24781CF8315E40026857A
-:1047C000EF00501C11C55E24F19B93E717005EA417
-:1047D0005E243369F9002316240179B7DDC583A768
-:1047E000C5FF411122C406C626C21384C5FF63D388
-:1047F00007003E94AA84EF00B02097C7FF1F93875D
-:10480000E7A59C4391EF2322040097C7FF1F23A72E
-:1048100087A42244B2402685924441016F00701E55
-:10482000637EF40014403307D4006396E700984396
-:10483000DC43369718C05CC0C9BFBA87D84319C3D8
-:10484000E37DE4FE94433386D700631F8600104067
-:10485000B29694C33386D700E31DC7FA104358437A
-:10486000B29694C3D8C375B76375C400B1479CC0F2
-:104870004DB71040B306C4006316D7001443584325
-:10488000B29614C058C0C0C369B78280011126CA4D
-:1048900093843500F19806CE22CC4AC84EC6A104B6
-:1048A000B14763F9F404B14463E8B4042A89EF0022
-:1048B000301597C7FF1F9387679A98433A8439E466
-:1048C00097C7FF1F9387C7999C4381EB81454A8512
-:1048D000812797C7FF1F23A5A798A6854A850D2F77
-:1048E000FD59631B3507B1472320F9004A85EF00C6
-:1048F000501129A0E3DA04FAB1471CC10145F24086
-:104900006244D2444249B249056182801C40858F8D
-:1049100063C10704AD4663F6F6001CC03E9404C0B4
-:1049200001A85C406315870217C7FF1F2328F79271
-:104930004A85EF00100D1305B400930744006199F8
-:104940003307F5404DDF3A94898F1CC04DBF5CC3DF
-:10495000C5B722874040A5B7130435007198E3001E
-:1049600085FCB305A4404A856525E31A35FBA5BF40
-:104970001C46FD171CC663DA0700184E63C5E70026
-:10498000A9476394F5006FF02FFF1C422E85138713
-:10499000170018C28CA38280011122CC26CA4AC8F3
-:1049A0004EC652C406CE2A89AE893284B304D600DC
-:1049B0007D5A63149400014509A80C204E864A854F
-:1049C000EFF01FFB0504E31645FFF2406244D244BA
-:1049D0004249B249224A05618280357122CD26CBF7
-:1049E0004AC94EC706CF52C556C35AC1DEDEE2DC05
-:1049F000E6DAAA89AE843289368409C51C4D99E36A
-:104A0000EFF0DFB797170000938707BA6398F40CAD
-:104A100083A44900DE24A18BE5C79C48F5C3930716
-:104A20000002A304F1029307000302D22305F1025E
-:104A300022C6930B5002971A0000938AEABA054CDB
-:104A4000294B4A841C2099C3639F770DB30C2441E2
-:104A5000638E0C00E6864A86A6854E85EFF0DFF36E
-:104A6000FD57630FF51C9256E69636D21C206389DB
-:104A7000071CFD571309140002C802CE3ECA02CC1F
-:104A8000A309010482D48345090015465685A92F40
-:104A900013041900C24751E913F7070109C71307A7
-:104AA0000002A309E10413F7870009C71307B00246
-:104AB000A309E104834609001307A002638FE606F9
-:104AC000F2474A84814625461820930514001307AF
-:104AD00007FD6377E60AB5CA3ECE85A897170000A2
-:104AE000938787AE6395F40083A4890025B7971751
-:104AF0000000938767A9E39FF4F083A4C90019BF5E
-:104B0000A6854E85EFF00FF319D97D55FA406A441A
-:104B1000DA444A49BA492A4A9A4A0A4BF65B665C21
-:104B2000D65C0D618280050431BF330555413315D4
-:104B3000AC00C98F3EC82289B9B7324793064700F7
-:104B4000184336C6634707023ACE18209307E0029F
-:104B5000631DF70418309307A002631BF702B247E6
-:104B60000904138747009C433AC663C107023ECA43
-:104B70002DA83307E04093E727003ACE3EC8F1B7AF
-:104B8000B387670385462E84BA973DBFFD57C5B7E7
-:104B9000050402CA81468147254618209305140062
-:104BA000130707FD6374E606F9F20C200D4617158E
-:104BB00000001305E5A30D2D11CD97170000938775
-:104BC00027A31D8D93070004B397A7004245050452
-:104BD0005D8D2AC80C20194617150000130585A104
-:104BE000130914002304B102012535C197B7FFFF53
-:104BF0009387474195E74247B2471377071009CF9C
-:104C000091073EC69257D2973ED225BDB387670320
-:104C100085462E84BA9751B79D07E19BA107D5B76A
-:104C2000780097060000938666D726860C084E8586
-:104C300097000000E7000000FD572A8AE314F5FC06
-:104C4000DE2493F70704E39207EC1255C1B5780010
-:104C500097060000938686D426860C084E85012A86
-:104C6000E1BF797156CA9C49BA8A984522D426D2A6
-:104C70004ECE52CC06D64AD05AC85EC6AA892E84D9
-:104C8000B284368A63D3E700BA879CC003473404F2
-:104C900019C385079CC01C4093F7070281C79C403D
-:104CA00089079CC00329040013796900631A09006D
-:104CB000130B9401FD5B5C449840998F634CF9049D
-:104CC0001C408346340493F70702B336D000A5EBAB
-:104CD00013063404D2854E85829AFD576303F5048A
-:104CE0001C4011469840998B544481446397C700F7
-:104CF000B384E64063D3040081441C4418486354E1
-:104D0000F700998FBE94014969047D5B639824057F
-:104D1000014509A885465A86D2854E85829A631E2A
-:104D200075017D55B250225492540259F249624A9B
-:104D3000D24A424BB24B456182800509ADBF330771
-:104D4000D40013060003A301C70403475404938748
-:104D50001600A2978906A381E7049DBF8546228697
-:104D6000D2854E85829AE30E65FB050945B77971B8
-:104D700022D426D24AD04ECE06D652CC56CA5AC8D3
-:104D8000B689942D930790063289AA842E841386BF
-:104D90003504638DF60263E2D706930780056386C8
-:104DA000F61863EDD700638E062093073004638EF8
-:104DB000F60A930A24042301D404C9A093073006F9
-:104DC0006385F60A93074006E395F6FE1C40084308
-:104DD00093F6070893054500C5C61C410CC363D86C
-:104DE00007001307D002B307F040A301E4049716AD
-:104DF00000009386A680294765A893070007638271
-:104E0000F61663E5D7029307E0066389F618930761
-:104E1000F006E390F6FA0C401C4313F805081385DE
-:104E200047006307080608C39C4385A893075007FB
-:104E3000E383F6FE930780076389F6129307300732
-:104E4000E399F6F61C43D04181459386470014C38D
-:104E500083AA07005685492E01C53305554148C030
-:104E60005C401CC8A301040461A81C43930A2404E9
-:104E7000938647009C4314C32301F4048547D5B7A8
-:104E800093F607041C410CC3B9DAC207C18781BF7E
-:104E900093F5050408C3C9D99E231307F006638759
-:104EA000E60E97060000938666752947A301040461
-:104EB0004C400CC463C5050008406D9908C099E3D7
-:104EC000B28A89CDB28AB3F5E702FD1AB6958C2174
-:104ED0002380BA00B3D5E70263F0E70CA147631E55
-:104EE000F7001C40858B91CB58401C4863C7E700F6
-:104EF00093070003A38FFAFEFD1A3306564110C82C
-:104F00004E87CA867000A2852685EFF09FD57D5A10
-:104F1000631D450B7D55B250225492540259F249FB
-:104F2000624AD24A424B45618280A382D5049706E9
-:104F300000009386A66C0C40084313F805081C413A
-:104F40001105630D080208C313F7150001C793E5A7
-:104F500005020CC04147B9FB0C4093F5F5FD0CC0B0
-:104F6000B1B79C4193E707029CC193078007A30256
-:104F7000F404970600009386A66975BF13F805042C
-:104F800008C3E30308FCC207C1837DBF9706000086
-:104F90009386C666214719BFAE8735B794411C4337
-:104FA000CC4913F80608138547006306080008C3B8
-:104FB0009C438CC339A008C393F606049C43F5DADE
-:104FC0008EA323280400B28A25BF14485686CA85BA
-:104FD00026858299E30045F51C40898B8DE7B24711
-:104FE0004844E35AF5F23E853DB785465686CA8564
-:104FF00026858299E30065F3050A5C443247998F60
-:10500000E345FAFEE9BF014A930A94017D5BF5B7D7
-:10501000411122C42A842E8597F7FF1F23A00784FD
-:1050200006C6EFD09F89FD576319F50097F7FF1F5C
-:105030009387C7829C4391C31CC0B2402244410164
-:105040008280411122C42E848395E50006C65D2A24
-:10505000634905007C48AA977CC8B24022444101BC
-:1050600082805E247D777D17F98F5EA4FDB7DE25F3
-:10507000011122CC26CA4AC84EC606CE93F70710A5
-:10508000AA842E843289B68991C78395E500894622
-:1050900001460D225E247D777D17F98F5EA483156E
-:1050A000E4006244F240CE864A86B24942492685EF
-:1050B000D244056125A8411122C42E848395E500C0
-:1050C00006C6CD28FD575A24631AF500FD77FD1753
-:1050D000F98F5EA4B2402244410182808567D98F56
-:1050E0005EA468C8C5BF8395E50025A8411122C408
-:1050F0002A842E85B285368697E7FF1F23A0077680
-:1051000006C6EFD0AFF7FD576319F50097E7FF1F0D
-:105110009387C7749C4391C31CC0B2402244410191
-:105120008280411122C42A842E8597E7FF1F23A77E
-:10513000077206C61122FD576319F50097E7FF1F96
-:105140009387C7719C4391C31CC0B2402244410164
-:105150008280411122C42A842E85B28597E7FF1FE1
-:1051600023AE076E06C6CD20FD576319F50097E7FD
-:10517000FF1F9387A76E9C4391C31CC0B24022447B
-:1051800041018280411122C42A842E8597E7FF1FA6
-:1051900023A6076C06C6C920FD576319F50097E7DB
-:1051A000FF1F9387A76B9C4391C31CC0B24022444E
-:1051B00041018280411122C42A842E85B28536861F
-:1051C00097E7FF1F23AC076806C67928FD576319C8
-:1051D000F50097E7FF1F938767689C4391C31CC046
-:1051E000B24022444101828093F5F50F2A96631460
-:1051F000C500014582801C21E38EB7FE0505C5BFB1
-:1052000082808280411122C42A842E85B28536860E
-:1052100097E7FF1F23A4076406C6B928FD57631943
-:10522000F50097E7FF1F938767639C4391C31CC0FA
-:10523000B2402244410182809307800517E7FF1F97
-:10524000232EF7607D5582809307800517E7FF1FA7
-:105250002326F7607D5582809307800517E7FF1F9F
-:10526000232EF75E014582809307800517E7FF1F15
-:105270002326F75E7D5582809307800517E7FF1F81
-:10528000232EF75C7D55828053797374656D436C72
-:105290006B3A25640D0A00004368697049443A2559
-:1052A0003038780D0A0000005631302E342E36008A
-:1052B0004672656552544F53204B65726E656C2083
-:1052C00056657273696F6E3A25730D0A000000000F
-:1052D00073686F756C646E27742072756E206174CC
-:1052E00020686572652121002E2E2F467265655259
-:1052F000544F532F706F727461626C652F4D656DE2
-:105300004D616E672F686561705F342E6300000029
-:10531000657272206174206C696E65202564206F4F
-:10532000662066696C6520222573222E200D0A20D6
-:10533000000000002E2E2F4672656552544F532FE9
-:10534000706F727461626C652F4743432F524953EB
-:10535000432D562F706F72742E6300002E2E2F4631
-:1053600072656552544F532F71756575652E6300D4
-:105370002E2E2F4672656552544F532F7461736BF6
-:10538000732E630049444C4500000000F2260000E3
-:10539000F2260000322700003E2700008027000090
-:1053A000F2260000F2260000322700003E2700000F
-:1053B000546D7251000000002E2E2F46726565520A
-:1053C000544F532F74696D6572732E630000000093
-:1053D000546D72205376630000007A446164632048
-:1053E0003A2025642C2025642C2025640A00000026
-:1053F000676574534F435077724F6E566F6C74618C
-:1054000067653A2025640A00676574496E437572C2
-:1054100072656E743A2025640A000000676574495D
-:105420006E566F6C746167653A2025640A0000004F
-:105430006740533A473C113C6740D33A7461736B01
-:1054400031000000BCE8FFFF0EE8FFFF0EE8FFFFA1
-:105450000CE8FFFF12E8FFFF12E8FFFFE2E7FFFFA3
-:105460000CE8FFFF12E8FFFFE2E7FFFF12E8FFFF93
-:105470000CE8FFFFAAE8FFFFAAE8FFFFAAE8FFFF8A
-:10548000E2E7FFFF00010202030303030404040434
-:1054900004040404050505050505050505050505C0
-:1054A00005050505060606060606060606060606A0
-:1054B000060606060606060606060606060606068C
-:1054C0000606060607070707070707070707070770
-:1054D000070707070707070707070707070707075C
-:1054E000070707070707070707070707070707074C
-:1054F000070707070707070707070707070707073C
-:10550000070707070808080808080808080808081F
-:10551000080808080808080808080808080808080B
-:1055200008080808080808080808080808080808FB
-:1055300008080808080808080808080808080808EB
-:1055400008080808080808080808080808080808DB
-:1055500008080808080808080808080808080808CB
-:1055600008080808080808080808080808080808BB
-:1055700008080808080808080808080808080808AB
-:1055800008080808000000000000000000000000FB
-:10559000000000000000000000000000000000000B
-:1055A00000000000000000000000000000000000FB
-:1055B00000000000000000000000000000000000EB
-:1055C00000000000000000000000000000000000DB
-:1055D00000000000000000000000000000000000CB
-:1055E00000000000232D302B20000000686C4C00D0
-:1055F000656667454647000030313233343536370B
-:1056000038394142434445460000000030313233CE
-:1056100034353637383961626364656600000000EE
-:105620000000000000000000010203040607080952
-:105630000000000001020304010203040607080938
-:1056400000000000060000008025000000000000AF
-:10565000000000000000000000000000000000004A
-:10566000000000000000000007000000802500008E
-:10567000000000000000000000000000000000002A
-:105680000000000000000000000000000200000018
-:105690008025000000000000000000000000000065
-:1056A00000000000000000000000000000000000FA
-:1056B000080000008025000000000000000000003D
-:1056C00000000000000000000000000000000000DA
-:1056D0000000000003000000802500000000000022
-:1056E00000000000000000000000000000000000BA
-:1056F00000000000000000000500000000C20100E2
-:105700000000000000000000000000000000000099
-:10571000000000000000000068656C6C6F20776F6F
-:10572000726C640A0000000000000000000000002D
-:10573000A4550000C455000084550000000000007E
-:105740000000000000000000000000000000000059
-:105750000000000000000000000000000000000049
-:105760000000000000000000000000000000000039
-:105770000000000000000000000000000000000029
-:105780000000000000000000000000000000000019
-:10579000006CDC0202040608AAAAAAAA0E000000F5
-:1057A0005C3800200C010020008000200C0100204B
+:101600002165130505807315053082807310053040
+:101610008280930785007D575CC118C55CC51CC9D5
+:101620002320050082802328050082809841FD56F2
+:1016300093078500631ED7001C49D843D8C10CC747
+:101640009CC5CCC31C4188C985071CC18280B68754
+:10165000D4439042E37DC7FECDB7544118451C49A1
+:1016600098C654C3D4436393A600D8C39843232891
+:1016700005007D1798C388438280EFE2DFE94111BE
+:101680002AC61D373245005D1D3F13351400410148
+:101690006FE0BFEAEFE23FE832893041045D2A841F
+:1016A00009EE1C41014591E70844EF10A02E2324C8
+:1016B0000400850404DC6FE05FE863100902484120
+:1016C000EF3060085C4038400145BA9718445CC070
+:1016D000E3E1E7FE1C405CC0E9BF4845EF30A006EF
+:1016E0003C4058441440B307F0403E9758C46375DB
+:1016F000D7001844BA975CC489470145E31BF9FA3F
+:10170000CDD8FD147DB7EFE27FDF204541112AC619
+:1017100005E4A16793870780739007303766000060
+:10172000856537650000130646B2938555BD1305E0
+:1017300085ADEF30600C01A0185C5C5C6365F7025E
+:10174000A16793870780739007303766000085652F
+:1017500037650000130646B2938565BD130585AD58
+:10176000EF30800901A0185C01496378F7028344D7
+:10177000540401466C002285313F9399840193D92A
+:101780008941FD572A89639EF9005C5099C713056A
+:101790004402EF10000111C105494A8541016FE083
+:1017A0003FD99307F0076395F902A16793870780F4
+:1017B00073900730376600008565376500001306B3
+:1017C00046B2938565BF130585ADEF30E00201A0F9
+:1017D0008504E204E184A3029404C1B7304115C238
+:1017E000EFE27FD358451445AA87329758C5636402
+:1017F000D700184158C52E85CC47EF20D0746FE034
+:10180000DFD38280EFE23FD12A84793B83445404C2
+:1018100013094402E204E18463459002FD57A302E8
+:10182000F404713B51338344440413090401E2047A
+:10183000E18463499002FD572302F40449336FE0C9
+:10184000DFCF3C4491CB22857D3D19C1EF100012C2
+:10185000FD14E204E184C9B75C50E9D34A85EF0086
+:101860005074E5B71C48E1DB4A85EF00907319C15D
+:10187000EF10C00FFD14E204E18465BFEFE2BFC9C1
+:1018800041111DE1A1679387078073900730376688
+:10189000000037650000130646B2930500111305DA
+:1018A00085ADEF20707501A05C5D2EC62A84BDC396
+:1018B0003841B3B7E702B9EFC5393040585C14403E
+:1018C000232C0402B307E602B24554C03387F60066
+:1018D000918FB6975CC4FD572302F40418C4A30289
+:1018E000F40495E11C4899CB13050401EF00706BDB
+:1018F00011C5B7E700E0116723A0E720C93105450E
+:1019000041016FE09FC31305040121331305440215
+:101910000933EDB7A1679387078073900730376667
+:10192000000037650000130646B2930550141305F6
+:1019300085ADEF20706C01A0EFE2FFBD411139C110
+:10194000B3B7A502AA849DEF3305B502930730FB18
+:1019500063EAA7021305C5042EC6EFF0BF912A84DF
+:1019600011CDB245AA8799C19307C5042CC01CC0EC
+:1019700044DC85452285193723240404228541014E
+:101980006FE0BFBBA167938707807390073037660E
+:10199000000037650000130646B29305601C13056E
+:1019A00085ADEF20706501A0EFE27FB4011132C672
+:1019B0001DE1A167938707807390073037660000A9
+:1019C00037650000130646B29305E032130585AD76
+:1019D000EF20906201A02A842E89B6848DE53C41D7
+:1019E0009DC3A16793870780739007303766000017
+:1019F00037650000130646B29305F032130585AD36
+:101A0000EF20905F01A089476398F402585C8547F6
+:101A10006304F702A16793870780739007303766E6
+:101A2000000037650000130646B293050033130526
+:101A300085ADEF20705C01A0EF00107415E5B24792
+:101A4000014C85C7A167938707807390073037667D
+:101A5000000037650000130646B2930530331305C6
+:101A600085ADEF20705901A0014C094BFD59930B36
+:101A7000040137EA00E0916AA5A85C50C5C31305CC
+:101A80004402EF00105259A8B24781E70D3E0145CC
+:101A900071A863150C002808EF00705F0D36EF0089
+:101AA0007001193683474404E207E18763943701E4
+:101AB0002302040483475404E207E1876394370157
+:101AC000A3020404ED3C6C002808EF00B05D3DE982
+:101AD000E13C185C5C5C631EF704D534B2455E855E
+:101AE000EF0050402285393BEF00B01929C9054C61
+:101AF000653C185C5C5C6364F700E39764F92686D8
+:101B0000CA8522858329840371363C44BDD7894721
+:101B10006394F400639A09002285F53611C5B7E78E
+:101B200000E0116723A0E720593C054505616FE0FF
+:101B30009F9F71342285F931EF00B0144DBF2320EF
+:101B40005A2175B722857D39EF00B01389B7EFE2CE
+:101B5000FF9A41111DE1A1679387078073900730B9
+:101B60003766000037650000130646B29305204033
+:101B7000130585ADEF20504801A02A84328A3689AA
+:101B80008DE53C419DC3A167938707807390073023
+:101B90003766000037650000130646B293053040F3
+:101BA000130585ADEF20504501A089476318F90260
+:101BB000585C85476304F702A16793870780739099
+:101BC00007303766000037650000130646B29305FC
+:101BD0004040130585ADEF20304201A02EC6EFF046
+:101BE0003FA2185C5C5CAA8AB2456366F70089472D
+:101BF00081446318F902834454044A8622859399E8
+:101C00008401032B8403793493D98941FD5763916F
+:101C1000F9043C449DC78947631CF900630A0B0023
+:101C200085445685EFF09F9E268541016FE05F90C9
+:101C30002285D13C75D5E3050AFE85472320FA00AD
+:101C4000C5B75C50F1DF13054402EF009035DDB7F6
+:101C50009307F0076394F902A16793870780739055
+:101C600007303766000037650000130646B293055B
+:101C7000D048130585ADEF20303801A08504E2047B
+:101C8000E184A302940469BFEFE27F86011132C6AA
+:101C90001DE1A167938707807390073037660000C6
+:101CA00037650000130646B293051055130585AD40
+:101CB000EF20903401A02A84AE898DE53C419DC37C
+:101CC000A1679387078073900730376600003765F8
+:101CD0000000130646B293055055130585ADEF205D
+:101CE000B03101A0EF00504915E5B247014985C761
+:101CF000A1679387078073900730376600003765C8
+:101D00000000130646B29305A055130585ADEF20DC
+:101D1000B02E01A001497D5A930A440237EB00E03E
+:101D2000916B85A8B24789E7EFF07F89014559A8F3
+:101D3000631509002808EF009035EFF05F889D2BB0
+:101D4000EFF09F8683474404E207E18763944701ED
+:101D50002302040483475404E207E18763944701A4
+:101D6000A3020404EFF0BF856C002808EF00903355
+:101D70003DE12285EFF07F9029C9B2455685EF00FD
+:101D8000701622854134EF00C06F19E123207B21BA
+:101D90000549EFF07F81045CD1D4CE852285FD1406
+:101DA000EFF0DFA304DC1C4899CB13050401EF001E
+:101DB000501F11C5B7E700E0116723A0E720EFF03F
+:101DC0001F80054505616FE00FF62285EFF09FA3A8
+:101DD000EF00206B75BF2285EFF0DFA25D25228525
+:101DE000EFF0BF8955D599B715E5EFE2CFF2A167BE
+:101DF00093870780739007303766000085653765E5
+:101E00000000130646B2938585AC130585ADEF201F
+:101E1000B01E01A09DCD376600209306C6278147DE
+:101E200001471306C627214883A846006398A800E7
+:101E300093173700B2978CC3C8C321A891E783A832
+:101E4000060063930800B6870507A106E31E07FD99
+:101E5000FDF38280EFE22FEC41112A842EC632C4BA
+:101E6000EFF08FF4834744047D572246E207E18771
+:101E7000B2456394E70023020404834754047D576A
+:101E8000E207E1876394E700A302040432C62EC48C
+:101E9000EFF0EFF21C5CA245324689E713054402DD
+:101EA000EF00D0082285EFF0FF9541016FE0EFE8E9
+:101EB000EFE26FE601469145EFF01FA86FE0EFE714
+:101EC000EFE26FE541112AC62EC4EFF0EFED324587
+:101ED000A24501443C4591E71C5D014499E32CC5B2
+:101EE0000544EFF0CFED228541016FE00FE5EFE211
+:101EF0008FE241112E866C0002C6793332454101D2
+:101F00006FE0AFE3370700201307871A1C439443A1
+:101F1000B70700209387871C81E67D5798C382808E
+:101F2000184358471843DDBFEFE24FDD3709002063
+:101F3000B70700209304491A83A9871D2A849C406F
+:101F400088404111A388070411052EC6EFF0EFF079
+:101F50007D579307491AB245631CE40295C9B767D8
+:101F60000020938747429440D84398C61047944036
+:101F7000D0C694401047910654C29440910614C7AD
+:101F800098405CCB9843050798C341016FE04FDA56
+:101F900098434E9440C3637B3401370700200325E8
+:101FA000C71A8C439105EFF06FE8C5B737070020DB
+:101FB0000325871A8C439105EFF04FE7B707002000
+:101FC0009387871C9843E372E4FC80C37DBFEFE2F4
+:101FD000EFD237640020B709002013048443370A86
+:101FE00000209384491B9C40EDDFEFF0EFDB5C4465
+:101FF00003A9C70013054900EFF02FE613070A1BDA
+:102000001C43FD171CC39C40FD179CC0EFF02FDB49
+:1020100003250903EFF0AFBE4A85EFF04FBED1B7FD
+:10202000EFE2EFCC13192600AA8A4A852E8A368B56
+:10203000BA8BBE89EFF00FA41DC1AA841305400519
+:10204000EFF04FA32A8409C904D98147C146631A16
+:102050000A00230A050225A02685EFF04FBA7D5518
+:1020600065A23307FA00030707003306F400230ACA
+:10207000E60201C78507E396D7FEA3010404B9472A
+:1020800063F47703A16793870780739007303766FF
+:10209000000037650000130686B3930570391305F9
+:1020A00085ADEF20607501A0130A440052852326F8
+:1020B00074032322740523240404EFF0CFD6130500
+:1020C0008401EFF04FD63D471305C9FF3307774131
+:1020D000269500C818CC40D023060404A3060404A7
+:1020E00023070404A307040423080404A308040426
+:1020F0005A86D6854199EFE0AFB008C063840900E5
+:1021000023A08900EFF04FCAB70700209387071B71
+:102110009843B7040020B7690020050798C31387C8
+:10212000441A18439384441A1389C92B6310070E69
+:1021300080C0984385476316F7069389C92B930A95
+:10214000C9124E85D109EFF0CFCCE39C3AFF376539
+:102150000020930A853E1305853EEFF08FCB37654F
+:1021600000209309C53F1305C53FEFF08FCA3765BF
+:10217000002013050541EFF0CFC937650020130596
+:102180008543EFF00FC93765002013054542EFF096
+:102190004FC8B707002023A4571BB707002023A66A
+:1021A000371BB70700209387C71B9843050798C3C1
+:1021B000370700201307071C5C54144363F3F60031
+:1021C0001CC35147B387E702CA97D843144718C4C2
+:1021D00054C4144723A246012324470198435CC8F2
+:1021E000050798C3EFF0AFBDB707002083A7471DD1
+:1021F000054599CB9C40D8575C546377F700B7E707
+:1022000000E0116723A0E7206FE0EFB1B7070020DF
+:1022100083A7471DD9F79C40D8575C54E3E3E7F800
+:1022200080C041B7EFE22FAFB7070020B7650000CD
+:10223000372500009387471C01478146130600108D
+:102240009385C5B41305E5FCE13B0544631E850297
+:10225000EF00102E631A8502A167938707807390A1
+:102260000730B70700207D5723A4E71CB7070020DD
+:1022700023AAA71CB707002023AC071CEFF06FA60A
+:1022800083A7C1806FE06FABFD57E31BF5FEA1672D
+:102290009387078073900730376600008565376540
+:1022A0000000130686B393850584130585ADEF20E2
+:1022B000A05401A0B70700209387871B9843050708
+:1022C00098C38280B707002003A5871D8280B707C7
+:1022D000002003A5871D8280B707002083A7871BE6
+:1022E00063980718EFE22FA3B70700209387871D95
+:1022F0008043050480C339E8B70700209387871A15
+:102300009843184305C7A1679387078073900730E8
+:1023100037660000856537650000130686B3938530
+:1023200075AC130585ADEF20204D01A037070020C7
+:102330001307C71A9443104390C3B707002014C370
+:102340009387C71C9843050798C36D3E3706002046
+:102350009307861C9C4337670020B70500201306AF
+:10236000861C1307C72B9385451A01456375F40234
+:102370009C41D146DC57B387D7023E971843854727
+:1023800063F3E7000545B707002083A7C71D91C386
+:1023900005456FE08F9A370E0020B70E0020514F91
+:1023A00093078E1A9443944281E6FD571CC2C9B725
+:1023B0009C43DC47DC47D4436374D40014C24DBF54
+:1023C00083A8870003A8C700D44B1383470023A426
+:1023D00008012322180183A846006394680023A201
+:1023E000060103A8060023AA07007D1823A0060102
+:1023F000945795CA03A8C70183A8070283AF460074
+:102400002324180183A8070223A208011388870147
+:1024100063940F0123A2160103A8060023A4070258
+:102420007D1823A0060193860E1C03A8C70283A86B
+:10243000060063F4080123A00601B306E803BA9678
+:1024400083A8460083AF880023A4170123A6F701C1
+:1024500083AF880023A26F0023A46800D4CB9C42E2
+:1024600085079CC29C41DC57E36CF8F205450DBF23
+:10247000B70700209387071D98430145050798C3B8
+:102480008280EFE2AF87370400201304841B1C40D6
+:10249000411185E7A16793870780739007303766FE
+:1024A0000000856537650000130686B39385358B7C
+:1024B000130585ADEF20403401A0EFF0EF8E1C40F6
+:1024C000FD171CC01C4089CB01452AC6EFF02F8F99
+:1024D000324541016FE0CF85B707002083A7071B76
+:1024E000E5D7B7660020376500208147938606410F
+:1024F000370F00201305C52BD14837030020370EB6
+:102500000020854E59A8DC46DC47CC4F90539857A5
+:1025100090C503A807022322B8000328470093852B
+:1025200087016313B80050C3104323A407027D162C
+:1025300010C38C47D047D84B1388470090C54CC276
+:102540004C436393050150C3104323AA07007D1633
+:1025500010C313070F1CD0570C4363F3C50010C3FF
+:10256000330716032A974C4383AF85008CC723A6F5
+:10257000F70183AF850023A20F0123A405010C43BB
+:10258000D8CB85050CC31307431A18435857636605
+:10259000E6001307CE1D2320D70198422DF799C3DB
+:1025A000EFF05F96B70700201387071D04431384DD
+:1025B000071D91CC370900208549393B09C5930790
+:1025C000C91D23A03701FD14EDF823200400B7072F
+:1025D000002083A7C71DE38907EEB7E700E0116776
+:1025E00023A0E7200545D5B519E5B7E700E0116759
+:1025F00023A0E7208280EFD21FF2B707002083A735
+:10260000871B41119DC3A167938707807390073093
+:102610003766000037650000130686B393059054B3
+:10262000130585ADEF20401D01A02AC6613132455A
+:102630008145EFF07F8FB13511E5B7E700E0116715
+:1026400023A0E72041016FD05FEFB707002003A769
+:10265000871BB70700209387C71D01C7054798C38D
+:10266000828023A00700B70700201387071C1843A8
+:102670001386071CB76700209387C72B5148B30602
+:102680000703B385D700884115C5C841A106BE968A
+:102690004841C8C16314D5005441D4C1D146B306E2
+:1026A000D702B697DC43D447B707002023A2D71A36
+:1026B00018C2828015E7EFD21FE6A16793870780D3
+:1026C0007390073037660000856537650000130694
+:1026D00086B3938525C0130585ADEF20E01101A0D9
+:1026E0007D1771BFEFD23FE305E5A16793870780B0
+:1026F0007390073037660000856537650000130664
+:1027000086B39385C5C1130585ADEF20E00E01A00A
+:10271000B70700202E8483A5471AE105EFE01FF1DB
+:1027200085452285EFF05F806FD03FE1EFD2BFDEBD
+:102730002A8705E5A167938707807390073037667E
+:102740000000856537650000130686B3938525C5AF
+:10275000130585ADEF20400A01A0B707002093873D
+:10276000471A54432E858C4303A88600D4CD8C434E
+:1027700023A0050303A807008C46610823A20501D6
+:1027800003A807009C43610823A4060198D71C43B3
+:1027900085071CC311C27D55B285EFF0EFF86FD0ED
+:1027A000DFD95C45DC4795E7EFD2FFD6A167938779
+:1027B0000780739007303766000085653765000035
+:1027C000130686B3938525C8130585ADEF20C00297
+:1027D00001A0D04F945398579385870114C6D0C257
+:1027E00050436313B60054C3144323A40702FD16D9
+:1027F00014C3370700200327871BD45725EF8C47C6
+:10280000D047D84B90C5D04748434CC2938547002A
+:102810006313B50050C3104323AA07007D1610C3ED
+:10282000370700201307071C10436373D60014C337
+:1028300051473386E602376700201307C72B3297CC
+:102840005043084690C7C8C708464CC10CC6D8CBF1
+:102850001C43014585071CC3B707002083A7471AFF
+:10286000DC5763F8D700B7070020054723AEE71C05
+:10287000054582803767002013070741504308460B
+:10288000D0CF88D308464CC10CC698D7D1B7B7076C
+:10289000002083A7C71C1CC1B707002083A7871D82
+:1028A0005CC18280EFD23FC7411105E5A1679387E4
+:1028B0000780739007303766000085653765000034
+:1028C000130686B39385D5CF130585ADEF10D0726F
+:1028D00001A085E5A167938707807390073037666D
+:1028E0000000856537650000130686B39385E5CF44
+:1028F000130585ADEF10507001A02EC62AC4EFE07D
+:10290000BFCA37070020B70700201307471A83A65E
+:10291000871D1C432245B24583C7170599CB1C432D
+:10292000A38807040544EFE09FC9228541016FD0C9
+:10293000DFC09C417D570144E387E7FE3706002056
+:102940000326C61C0328050058416307C80063E539
+:10295000E60023A00500F9B73386E640E37BF6FEE8
+:10296000958FBA979CC12537014475BFB7070020E2
+:10297000054723AEE71C8280B707002083A7471DC9
+:10298000054581CBB707002003A5871B133515002C
+:102990000605828011E50145828001456FD0FFB9AF
+:1029A000EFD27FB7B707002083A7471A2A84638531
+:1029B000A702A167938707807390073037660000EE
+:1029C000856537650000130686B39385F504130506
+:1029D00085ADEF10706201A0BC4785E7A1679387C2
+:1029E0000780739007303766000085653765000003
+:1029F000130686B393850505130585ADEF10D05FEB
+:102A000001A054557841FD173CC5E388E6F8D1F79D
+:102A1000930445002685EFE05FC47C403D471D8F51
+:102A200018CC370700201307071C14435CD463F34A
+:102A3000F6001CC351473387E702B767002093872E
+:102A4000C72B0545BA97D843144718C454C4144734
+:102A5000C4C204C798435CC8050798C381B7EFD2C6
+:102A60009FAB37040020EFE03FB41304C41E1C40AA
+:102A7000B1E7376500201309C5441305C544EFE0ED
+:102A80005FB9376500209304054613050546EFE05E
+:102A90005FB8B707002023A0271F0146B707002013
+:102AA000C145114523A2971EEFE01FE908C019C5D3
+:102AB000B7650000938585B7EFF00FB3EFE03FB047
+:102AC0006FD0BFA7EFD23FA54CC108C9AA876362E8
+:102AD000B602184D158E0545637BE60093854700C9
+:102AE000B707002003A5471EEFE05FB401456FD094
+:102AF000DFA46375D6000545E3FBD5FE938547004B
+:102B0000B707002003A5071EC5B7EFD2DFA02A84B0
+:102B1000AE8432890C4CA6864A86A69522855D37FE
+:102B200019E16FD09FA11C4C2285BE941C50829746
+:102B3000D5B7EFD25F9EB707002083A7071E4111CC
+:102B4000AA84DC472EC6C04713054400EFE0FFB05F
+:102B500083474402324613F7470011CBA6852285EE
+:102B60006D371C502285829741016FD01F9DF99BC4
+:102B70002302F402FDB7EFD21F9A37040020930618
+:102B8000041E98421C4391EBB70700209387471E11
+:102B9000904398C390C26FD05F9A5C47FD558843BD
+:102BA000493FF1BFEFD2BF9419694111B70A002024
+:102BB000B7090020370B0020B70B0020130949B5D7
+:102BC00083A70A1E984329CBDC47814C03AC07003E
+:102BD000EFF04FEEEFF00FEF83A7891E2A84938466
+:102BE000891E130ACB1E636CF50288C0638F0C022A
+:102BF00083A74B1E90431336160003250A00B30526
+:102C00008C40EFF02FA5EFF0DF8711EDB7E700E084
+:102C1000116723A0E72001A8854C014C55BFA13FB7
+:102C200080C0EFF01F86214C05A00146E36785FDBB
+:102C3000EFF03F85A2856285ED3DF5B79247B2453D
+:102C40008297824763DD070003250A0001468A85D3
+:102C5000EFF08F8335D582472245E3C107FE22443A
+:102C60005C4895E3EFF00FE69C40AA8C6373F50097
+:102C70001937824723A09401FD17E367FCFC8A07FC
+:102C8000CA979C43828713054400EFE01F9DD9BF7C
+:102C9000834744020C4C924693E717002302F40248
+:102CA0006686B6952285393D45D18347440213F7A0
+:102CB000470019CB1C4C924566862285BE95B135DE
+:102CC0001C502285829749B7F99B2302F402CDBF9D
+:102CD00083474402F99B2302F402BDB783474402B1
+:102CE000924593E717002302F4020CCC9DE1A16703
+:102CF00093870780739007303766000037650000C0
+:102D0000130606B893059035130585ADEF10D02E48
+:102D100001A0E6866686E69522856D3335B7834742
+:102D2000440213F727005DF72285EFE04FED29BF3E
+:102D3000EFD26FFE2D33B707002083A7C71E9DE398
+:102D4000A167938707807390073037660000376567
+:102D50000000130606B893059011130585ADEF101A
+:102D6000B02901A0B7070020B76500003735000083
+:102D70009387071F3947814613060010938585B94D
+:102D8000130545BAEFF0CFA945DD6FD00FFBEFD2A9
+:102D90008FF801111DE1A1679387078073900730B9
+:102DA0003766000037650000130606B89305B018B3
+:102DB000130585ADEF10502401A037040020130443
+:102DC000C41E1C403AC62A8801458DC7B6882EC845
+:102DD00032CA42CC954663C2B602EFF0FFB9324721
+:102DE000894781463A866303F500014608400C088E
+:102DF000EFE09FBB05616FD04FF4814646860C081B
+:102E00003E85EFE0DFD4FDB7B707002083A7871525
+:102E100037177A0013070720B3D7E70237070020D8
+:102E200093F7F70F230BF71E1307803EB387E702D4
+:102E300037070020231AF71E8280EFD2CFED2A84B5
+:102E40001165011185451105EFE06FA5930700207D
+:102E50007C82371501408D473EC44C00E147130585
+:102E600005803EC6EFD0FFF622C837440140B707C1
+:102E700008000C08130504803ECC02CA231E010082
+:102E8000EFE08FA7854513050480EFE0CFAF056124
+:102E90006FD0AFEAEFD28FE6B7440140AE893289F6
+:102EA000014493840480634524014A856FD04FE830
+:102EB000930500042685EFE0CFB27DD9B387890062
+:102EC0008385070026850504C205C181EFE06FB048
+:102ED000D9BF138701811C43B776002093860689EA
+:102EE0003E95636BD500B78600209386068063E528
+:102EF000A60008C33E858280FD57EDBF232605004E
+:102F00000CC150C123240500054582805C45544115
+:102F100018458507B3E7D702638EE70058451C4183
+:102F2000BA978CA35C4558418507B3E7E7025CC5B7
+:102F30000545828079558280EFD2EFDD79711306E5
+:102F4000000281450808EFD00FE08545114502C217
+:102F500002C402C6EFE0AF94854513050020EFE000
+:102F60000F941165EFD05FF93714014085471305C1
+:102F700004804C007C8202C6EFD0BFE5C147130538
+:102F800004804C007C8202C6EFD0BFE493070002AD
+:102F90004C00130504807C823724014002C6EFD028
+:102FA0005FE313050440EFD0BF9785473ECA3ECC90
+:102FB000B7070E003ECE0C088D47130504402302D0
+:102FC000F10202C802D0EFD09F9985451305044055
+:102FD000EFD05F9F854513050440EFD0BF9D81452D
+:102FE00013050440EFD07FAE13050440EFD0BF9E21
+:102FF000930404402685EFD0BF9E6DFD1305044069
+:1030000037240140EFD05F9E930404402685EFD023
+:103010005F9E6DFD13050440EFD0BFACB7070020E5
+:10302000239CA71E45616FD04FD1EFD2CFCE7971CF
+:103030001306C00281454800EFD0EFD08545054515
+:10304000EFE00F843704024013058400EFD0FFBC8B
+:10305000B72701409387C7443EC2B7070020938734
+:10306000C71F3EC48D473EC8930700083ECC930758
+:1030700000103ECE930700403ED0930700023ED2A0
+:103080004C008D67130584003ED402C602CA02D6E6
+:10309000EFD07FCF45616FD04FCAEFD2CFC7370592
+:1030A00002408545210537240140EFD05FD113054B
+:1030B00004409D4605468145EFD0BF951305044069
+:1030C0009D4609469145EFD0DF949D460D46130578
+:1030D00004409545EFD0FF93130504408545EFD09C
+:1030E0007F8E854513050440EFD03F916FD0EFC42C
+:1030F000EFD26FC24111854513050004EFD03FFAAE
+:10310000A147372401407C8285473EC44C00C1471B
+:10311000130504803EC6EFD0DFCB014613050480C3
+:10312000A145EFD01FD791474C00130504807C8246
+:10313000EFD03FCA0146130504809145EFD07FD5FB
+:10314000930700084C00130504807C82EFD07FC8F1
+:1031500001461305048093050008EFD09FD3930721
+:1031600000104C00130504807C82EFD09FC60146FE
+:103170001305048093050010EFD0BFD19307002002
+:103180004C00130504807C82EFD0BFC401461305B8
+:10319000048093050020EFD0DFCF930700404C0060
+:1031A000130504807C82EFD0DFC201461305048042
+:1031B00093050040EFD0FFCD8567938707804C00D3
+:1031C000130504807C828564EFD0BFC001469385DF
+:1031D000048013050480EFD0DFCB4C00130504807E
+:1031E0006482EFD01FBF0146130504808565EFD0D0
+:1031F0005FCA89644C00130504806482EFD07FBDF0
+:103200000146130504808965EFD0BFC891674C0063
+:10321000130504807C82EFD0DFBB014613050480D8
+:103220009165EFD01FC7E1774C00130504807C82C5
+:10323000EFD03FBA014613050480A165EFD07FC5EA
+:103240004C00371501406482EFD0BFB80546896550
+:1032500037150140EFD0FFC341016FD00FAEEFD261
+:103260008FAB79712A89854513050004EFD03FE3C0
+:1032700037240140930700028D44FC824C08C1476B
+:10328000130504803ECE26CCEFD0BFB40146130513
+:10329000048093050002EFD0DFBF85454145EFD0A4
+:1032A0001FE0854513050004EFD05FE18547FC82F0
+:1032B0004C08E1473715014026CC3ECEEFD07FB118
+:1032C0008947FC824C08914737150140372400405C
+:1032D0003ECEEFD01FB00C10B7070C0013050480D2
+:1032E0004AD03ED402D223160102EFD0FFE093076A
+:1032F00070357C86680085473EC84487EFD0BFBAEA
+:1033000013050480054693055052EFD03FE905466A
+:103310001305048093054042EFD05FE8854513050F
+:103320000480EFD05FE645616FD02FA1EFD2AF9E52
+:1033300079712A89854513050004EFD05FD63724BB
+:103340000140930700048D44FC824C08C1471305DB
+:1033500004803ECE26CCEFD0DFA7014613050480C3
+:1033600093050004EFD0FFB285454145EFD03FD330
+:10337000854513050008EFD07FD49147FC824C08A7
+:10338000E1473715014026CC3ECEEFD09FA4A147A0
+:10339000FC824C08914737150140372400403ECE4F
+:1033A000EFD03FA30C10B7070C00130504C04AD0A0
+:1033B0003ED402D223160102EFD01FD493078035EA
+:1033C0007C86680085473EC84487EFD0DFAD130593
+:1033D00004C0054693055052EFD05FDC0546130547
+:1033E00004C093054042EFD07FDB8545130504C040
+:1033F000EFD07FD945616FD04F94EFD2CF917971E3
+:103400002A8985451145EFD09FC937140140894766
+:103410008D44FC824C08C147130504803ECE26CC67
+:10342000EFD03F9B0146130504808945EFD07FA66E
+:1034300085451145EFD0BFC6854537050200EFD061
+:10344000FFC79147FC824C08E1471305048026CC56
+:103450003ECEEFD01F98A147FC824C089147130540
+:1034600004803ECE37440040EFD0BF960C10B70723
+:103470000C00130504404AD03ED402D223160102A8
+:10348000EFD09FC7930760337C86680085473EC8AE
+:103490004487EFD05FA113050440054693055052C1
+:1034A000EFD0DFCF05461305044093054042EFD02F
+:1034B000FFCE854513050440EFD0FFCC45616FD0AA
+:1034C000CF87EFD2AF837971AA8985452145EFD0A7
+:1034D0001FBD3719014085470D44C1444C081305F1
+:1034E00009C0FC8226CE22CCEFD0BF8E0146130548
+:1034F00009C08545EFD0FF9985454145EFD03FBADA
+:10350000854513050010EFD07FBBE1474C08371508
+:103510000140E48222CC3ECEEFD0BF8B9307000265
+:10352000FC824C089147371501403ECEEFD07F8A90
+:103530000C10B7070C00372500404ED03ED402D205
+:1035400023160102EFD05FBB930790357C8668009D
+:1035500085473EC84087EFD01F95054693055052DA
+:1035600037250040EFD09FC30546930540423725DD
+:103570000040EFD0BFC2854537250040EFD0BFC027
+:1035800045616FC0FFFAEFC21FF937140140130500
+:103590000440014693050020EFD0BF8F130504407F
+:1035A000014693050040EFD0DF8E85650146938587
+:1035B000058013050440EFD0DF8D6FC01FF8EFC208
+:1035C000FFF379712A8A854513050002EFD03FADDC
+:1035D0003714014093070010FC820D49C1474C0885
+:1035E000130504803ECE4ACCEFD0AFFE0146130552
+:1035F000044093050010EFD0DF89930700204C08AA
+:1036000013050480FC82EFD0CFFC930900404C08E6
+:1036100013050480231A31018564EFD08FFB4C0819
+:103620001305048093840480E482EFD08FFAA13FD5
+:1036300085452145EFD0BFA6854537050400EFD06D
+:10364000FFA7E1474C08130504C0231A31014ACCF7
+:103650003ECEEFD00FF891474C08130504C0E4822A
+:10366000375400403ECEEFD0CFF60C10B7070C0019
+:103670001305048052D03ED402D223160102EFD0AB
+:10368000BFA7930770137C8685475C8768008547D2
+:103690003EC8EFD05F811305048005469305505264
+:1036A000EFD0DFAF05461305048093054042EFD00D
+:1036B000FFAE854513050480EFD0FFAC45616FC0B8
+:1036C0003FE7EFC25FE537140140130504400146B0
+:1036D00093050020EFD0EFFB13050440014693054E
+:1036E0000040EFD00FFB85650546938505801305E7
+:1036F0000440EFD00FFA6FC05FE4EFC2DFE1371490
+:10370000014013050440014693050020EFD06FF8F7
+:1037100013050440054693050040EFD08FF78565FB
+:1037200001469385058013050440EFD08FF66FC0E6
+:10373000DFE0EFC25FDE37140140130504400146AD
+:1037400093050020EFD0EFF41305044005469305E0
+:103750000040EFD00FF4856505469385058013057D
+:103760000440EFD00FF36FC05FDDEFC2DFDA371434
+:10377000014013050440054693050020EFD06FF18A
+:1037800013050440014693050040EFD08FF0856596
+:1037900001469385058013050440EFD08FEF6FC07D
+:1037A000DFD9EFC25FD73714014013050440054647
+:1037B00093050020EFD0EFED13050440014693057B
+:1037C0000040EFD00FED8565054693850580130514
+:1037D0000440EFD00FEC6FC05FD6EFC2DFD379713A
+:1037E000AA8485454145EFD09F8B8545130500028E
+:1037F000EFD0FF8A854537051000EFD03F8C8567F5
+:103800000D44FC824C08E1473715014022CC3ECEE6
+:10381000EFD02FDC914737150140FC824C089147CF
+:10382000130505403ECEEFD0CFDAB7070C000C10E1
+:10383000375500403ED426D002D223160102EFD0E5
+:10384000BF8B05469305505237550040EFD01F956A
+:10385000930750147C86680085473EC84087EFD0A8
+:103860008FE4854537550040EFD0FF9145616FC02B
+:10387000DFCC397106DE16DC1ADA1ED82AD62ED431
+:1038800032D236D03ACE3ECC42CA46C872C676C490
+:103890007AC27EC01D26F250E2525253C2533255B4
+:1038A000A255125682567247E2475248C248324EDB
+:1038B000A24E124F824F216173002030397106DE13
+:1038C00016DC1ADA1ED82AD62ED432D236D03ACE08
+:1038D0003ECC42CA46C872C676C47AC27EC07D2635
+:1038E000F250E2525253C2533255A25512568256EA
+:1038F0007247E2475248C248324EA24E124F824FA0
+:10390000216173002030397106DE16DC1ADA1ED808
+:103910002AD62ED432D236D03ACE3ECC42CA46C86F
+:1039200072C676C47AC27EC02529F250E252525342
+:10393000C2533255A255125682567247E247524838
+:10394000C248324EA24E124F824F21617300203086
+:10395000397106DE16DC1ADA1ED82AD62ED432D2F7
+:1039600036D03ACE3ECC42CA46C872C676C47AC277
+:103970007EC07921F250E2525253C2533255A255C1
+:10398000125682567247E2475248C248324EA24E01
+:10399000124F824F216173002030397106DE16DC30
+:1039A0001ADA1ED82AD62ED432D236D03ACE3ECC0F
+:1039B00042CA46C872C676C47AC27EC0112BF25083
+:1039C000E2525253C2533255A25512568256724792
+:1039D000E2475248C248324EA24E124F824F2161F6
+:1039E00073002030397106DE16DC1ADA1ED82AD6AA
+:1039F0002ED432D236D03ACE3ECC42CA46C872C657
+:103A000076C47AC27EC0692BF250E2525253C2533E
+:103A10003255A255125682567247E2475248C24862
+:103A2000324EA24E124F824F216173002030EFC2FE
+:103A30009FAEEFF06FD0EFF04FDFEFF00FE66FC00B
+:103A4000DFAFEFC25FADEFF0AFEA6FC01FAFEFC205
+:103A5000FFAA37040020930704020149130404025B
+:103A60001947D4436392A60893094002B309390366
+:103A7000330A340183470A0095E7AA841385C900F5
+:103A80002295EFF0AFC7994703258A006390F402AF
+:103A9000EFF0EFFC930740023309F90285472299C2
+:103AA0002300F900330534016FC09FA89D4763953B
+:103AB000F400EFF0BF87F9BF89476395F400EFF09A
+:103AC000DF93C9BFA1476395F400EFF09F9FD9B77B
+:103AD0008D476395F400EFF09FAE6DBF9547E39B74
+:103AE000F4FAEFF09FCF7DB7050993874702E31AF9
+:103AF000E9F6014555BFEFC21FA2B7070020B76521
+:103B0000002023AEA70C13060040938545471545BA
+:103B1000EFF0FFF3B707002023A8A7226FC0FFA193
+:103B2000B707002083A7C7216399A700B707002024
+:103B300083C74723858B3E858280B707002083A7F4
+:103B400007226398A700B707002083C74723898B04
+:103B5000DDB7B707002083A747226398A700B70700
+:103B6000002083C74723918BF9B7B707002083A7AD
+:103B700087226398A700B707002083C74723A18B3C
+:103B80005DBFB707002083A7C7226399A700B707C7
+:103B9000002083C7472393F7070271BFB7070020B0
+:103BA00003A707239307F00FE317E5F8B7070020F3
+:103BB00083C7472393F70704BDBFEFC2DF9537459F
+:103BC00000409305505213050540EFD02FE231C558
+:103BD000B707002093879720982309E7054798A304
+:103BE000EF0020773745004013050540EFD0EFDEAA
+:103BF0009375F50FB70700202386B720B70700207D
+:103C000003A547221C4D104954498507B3E7C70255
+:103C10006385D7003105EFF06FAF3744004093055F
+:103C2000707213050440EFD06FDC31C5B707002078
+:103C300083A747229633BA3363E4E602014693052D
+:103C4000707213050440EFD06FD5B707002093873B
+:103C5000472398236D9B98A3EF00F0296FC0FF8D39
+:103C6000D84F1386160092B3B307D7008C231305E1
+:103C70000440EFD00FD6374500409305404213056E
+:103C80000540EFD0AFD679D93525C9BFEFC2BF887F
+:103C9000375500409305505213050580EFD00FD5DE
+:103CA00031C5B707002093871721982309E70547F7
+:103CB00098A3EF00806D3755004013050580EFD0C5
+:103CC000CFD19375F50FB7070020238AB720B70728
+:103CD000002003A5C7221C4D104954498507B3E7AE
+:103CE000C7026385D7003105EFF04FA2375400407B
+:103CF0009305707213050480EFD04FCF39C5B70715
+:103D0000002083A7C7229633BA3363E5E602014653
+:103D10009305707213050480EFD04FC8B7070020D9
+:103D20009387472398231377F7FD98A3EF00301F5D
+:103D30006FC0BF80D84F1386160092B3B307D70069
+:103D40008C2313050480EFD0CFC83755004093056E
+:103D5000404213050580EFD06FC979D9712BC9BFD7
+:103D6000EFC26FFB9305505237550040EFD00FC89C
+:103D700015C937550040EFD04FC69375F50FB707FB
+:103D80000020238CB720B707002003A507231C4D74
+:103D9000104954498507B3E7C7026385D700310549
+:103DA000EFF0CF969305707237550040EFD00FC4F7
+:103DB00015C9B707002083A707239633BA3363E5F5
+:103DC000E60201469305707237550040EFD00FBDF3
+:103DD000B70700209387472398231377F7FB98A30F
+:103DE000EF0030156FC06FF5D84F1386160092B3F1
+:103DF000B307D7008C2337550040EFD08FBDDDB718
+:103E0000EFC26FF13725004093055052130505802E
+:103E1000EFD0CFBD29C5B70700209387272098236F
+:103E200001E7054798A3D5293725004013050580EC
+:103E3000EFD0AFBA9375F50FB70700202382B720F4
+:103E4000B707002003A5C7211C4D10495449850719
+:103E5000B3E7C7026385D7003105EFF02F8B372416
+:103E600000409305707213050480EFD02FB831C560
+:103E7000B707002083A7C7219633BA3363E4E6026D
+:103E800001469305707213050480EFD02FB1B70778
+:103E90000020938747239823799B98A3EF00300352
+:103EA0006FC0AFE9D84F1386160092B3B307D7009F
+:103EB0008C2313050480EFD0CFB137250040930544
+:103EC000404213050580EFD06FB279D95526C9BF9E
+:103ED000EFC26FE43725004093055052130505C02B
+:103EE000EFD0CFB029C5B70700209387572098237C
+:103EF00001E7054798A3812137250040130505C038
+:103F0000EFD0AFAD9375F50FB70700202384B7202E
+:103F1000B707002003A507221C4D10495449850707
+:103F2000B3E7C7026385D7003105EFE03FFE3724D2
+:103F3000004093057072130504C0EFD02FAB31C55C
+:103F4000B707002083A707229633BA3363E4E6025B
+:103F5000014693057072130504C0EFD02FA4B70774
+:103F60000020938747239823759B98A3EF006077E1
+:103F70006FC0AFDCD84F1386160092B3B307D700DB
+:103F80008C23130504C0EFD0CFA437250040930540
+:103F90004042130505C0EFD06FA579D9DD2CC9BF0C
+:103FA000EFC26FD79305505237250040EFD00FA4D2
+:103FB00039C1B70700209387D720982301E7054729
+:103FC00098A3752637250040EFD02FA19375F50FE4
+:103FD000B70700202388B720B707002003A5872252
+:103FE0001C4D104954498507B3E7C7026385D700C4
+:103FF0003105EFE0BFF19305707237250040EFD037
+:10400000EF9E31C5B707002083A787229633BA33C6
+:1040100063E4E60201469305707237250040EFD055
+:10402000EF97B70700209387472398235D9B98A3BA
+:10403000EF00A06D6FC06FD0D84F1386160092B3FB
+:10404000B307D7008C2337250040EFD08F98930516
+:10405000404237250040EFD06F9969DDAD2CD9BFC4
+:10406000EFC26FCB41112A842EC632C4EFF05FAB92
+:104070002A8935E9B2452246B707002083A4C72123
+:104080004CCC2310040232B063958402054693059C
+:1040900070723724004013050480EFD02F909A30BF
+:1040A000DC4C130504809306170096B0BA978C2356
+:1040B0000DA8B707002083A40722639A840237243F
+:1040C000004093057072130504C00546EFD00F8DB4
+:1040D0009A30DC4C130504C09306170096B0BA97CB
+:1040E0008C23EFD00F8F4A8541016FC00FC5B707F2
+:1040F000002083A44722639584023744004093053F
+:104100007072130504400546EFD04F899A30DC4C9D
+:10411000130504409306170096B0BA978C23D1B7C5
+:10412000B707002083A487226393840293057072EB
+:10413000372500400546EFD06F869A30DC4C372596
+:1041400000409306170096B0BA978C2359BFB70763
+:10415000002083A4C72263988400054693057072EB
+:10416000375400400DBFB707002083A40723E39C0A
+:1041700084F693057072375500400546EFD00F82E4
+:104180009A30DC4C375500409306170096B0BA972A
+:104190008C2381BFB707002083A7C7216399A7009D
+:1041A000B707002083C72720858B3E858280B7070D
+:1041B000002083A707226397A700B707002083C7C3
+:1041C0005720DDB7B707002083A747226397A700D2
+:1041D000B707002083C79720C1BFB707002083A778
+:1041E00087226397A700B707002083C7D7206DBF3A
+:1041F000B707002003A7C7229307F00FE317A7FA1A
+:10420000B707002083C7172145B7EFC2CFB0854756
+:104210006318F500238AA180EFF0EFB66FC0EFB10D
+:1042200089476317F500238AA180EFF08FC9FDB796
+:104230008D476317F500238AA180EFF00FCCF9BFFB
+:1042400091476317F500238AA180EFF08FCEF9B76D
+:1042500095476317F500238AA180EFF00FD17DBF4A
+:104260009947E31DF5FA238AA180EFF08FD37DB73C
+:10427000EFC26FAAB707002003A48723EFE02F85C2
+:104280002A860147814699452285EFE05FB06FC0DD
+:10429000CFAAEFC24FA8B707002003A4C723EFE0BF
+:1042A0000F832A860147814699452285EFE03FAE7C
+:1042B0006FC0AFA8EFC22FA6B707002003A4072442
+:1042C000EFE0EF802A860147814699452285EFE09D
+:1042D0001FAC6FC08FA6EFC20FA4B707002003A4C6
+:1042E0004724EFD0DFFE2A86014781469945228583
+:1042F000EFE0FFA96FC06FA4EFC2EFA1B7070020E6
+:1043000003A48724EFD0BFFC2A8601478146994544
+:104310002285EFE0DFA76FC04FA2EFC2CF9FB707A4
+:10432000002003A58723014781460146A145EFE010
+:104330001FA66FC08FA0EFC20F9EB707002003A576
+:10434000C723014781460146A145EFE05FA46FC046
+:10435000CF9EEFC24F9CB707002003A5072401475B
+:1043600081460146A145EFE09FA26FC00F9DEFC2BD
+:104370008F9AB707002003A54724014781460146CD
+:10438000A145EFE0DFA06FC04F9BEFC2CF98B7070A
+:10439000002003A58724014781460146A145EFE09F
+:1043A0001F9F6FC08F99EFC20F972A84EFF04FF7CE
+:1043B00001E92285EFF01FDE3335A0006FC0EF97D3
+:1043C0000545EDBFEFC22F95EFF08FF56FC0EF966B
+:1043D000EFC26F9441113549B76400001305800C9A
+:1043E000EFC05FE92AC6AA8701ED37650000130612
+:1043F00040028545130505BA012141016FC0EF93C5
+:10440000232025012105C8C39385C4BC3546292333
+:1044100003A54191814629466C00EFD0EFD81305E2
+:10442000803EEFE06F9C5DBFEFC2EF8E3D220D45F9
+:10443000EFE08F9BE5BFEFC20F8E7165130505207E
+:10444000EFF06FEBEFF0EFDFEFF06FDE8928B707EB
+:104450000020B7650000374500009387C724154743
+:104460008146130600109385C5BD1305053DEFD0A9
+:104470003FBBB7070020B7650000374500009387B2
+:1044800007251547814613060010938585BE130541
+:104490008542EFD0FFB8EFD0FFD86FC00F8AEFC2D0
+:1044A000EF85014691451545370B0020EFD0CFC869
+:1044B000130B4B252320AB00014691451545EFD04A
+:1044C000AFC7938A019023A0AA00014691451545E4
+:1044D000EFD08FC6138A41902320AA000146914550
+:1044E0001545EFD06FC59389819023A0A90001469F
+:1044F00091451545EFD04FC41389C1900146232043
+:10450000A90091452945EFD02FC39384419188C0DC
+:10451000194513840191EFD0BF99AA8508C00325DE
+:104520000B00EFD0FF990C4003A50A00EFD05F9974
+:104530000C4003250A00EFD0BF980C4003A50900EA
+:10454000EFD01F980C4003250900EFD07F970C4057
+:104550008840EFD0FF966FB0BFFDEFB2DFFB03A541
+:104560000191FD55B7040020EFD07F9823ACA190B6
+:1045700003A50423EFF01FE515E503A5419137746A
+:10458000002013044487014693050401EFD0CFEFC8
+:1045900085476319F5001C4803A504239223CC43E7
+:1045A000EFF01FAC370400200325C421EFF0BFDF7C
+:1045B00005E9B707002003A54725B77500209384B8
+:1045C0004587014693854587EFD00FEC85476319F2
+:1045D000F5009C400325C4219223CC43EFF05FA853
+:1045E000B704002003A50422EFF0FFDB15E503A5C7
+:1045F000019037740020130444870146930544005A
+:10460000EFD08FE885476319F5005C4003A50422CD
+:104610009223CC43EFF0DFA4B704002003A544228B
+:10462000EFF07FD815E503A54190377400201304FF
+:104630004487014693058400EFD00FE58547631951
+:10464000F5001C4403A544229223CC43EFF05FA164
+:104650003704002003258422EFF0FFD41DE503A5D5
+:104660008190B77400209384448701469385C400E9
+:10467000EFD08FE18547631AF500D8449C440325A9
+:1046800084221223CC43EFF0BF9DB707002003A57F
+:10469000C722EFF05FD115E903A5C190B7740020E0
+:1046A00093844487014693854401EFD0EFDD85472D
+:1046B000631DF500DC488823EFF03FB5DC48032597
+:1046C0008422D2238C47EFF0BF996FB01FE7EFB27F
+:1046D0009FE4B777002003A54787EFC05FD26FB094
+:1046E000DFE5EFB25FE3B777002003A58787EFC070
+:1046F0001FD16FB09FE4EFB21FE2B777002003A590
+:10470000C787EFC0DFCF6FB05FE3EFB2DFE0B7770F
+:10471000002003A50788EFC09FCE6FB01FE2EFB265
+:104720009FDFB777002003A58788EFC05FCD6FB00C
+:10473000DFE0EFB25FDEB777002003A54788EFC068
+:104740001FCC6FB09FDFB3C7A5008D8B3307C500AB
+:1047500081E78D4763EDC700AA87637EE508942152
+:1047600085078505A38FD7FEE3EBE7FE828093766E
+:104770003500AA8789CA942185078505A38FD7FEAE
+:1047800093F63700C5BF9376C7FF138606FE63F026
+:10479000C70683A3050083A2450083AF850003AF4E
+:1047A000C50083AE050103AE450103A3850183A8BF
+:1047B000C5019385450223A0770003A8C5FF23A266
+:1047C000570023A4F70123A6E70123A8D70123AAB2
+:1047D000C70123AC670023AE17019387470223AEBE
+:1047E00007FF75B790419107910523AEC7FEE3EB34
+:1047F000D7FEE3E6E7F6828039713EDA2ED232D474
+:1048000036D63AD842DC46DE9387818122CC80437B
+:1048100026CA06CEAA8409C41C4C99E32285352BEE
+:104820000C4454102686228536C6EF007017F240DD
+:104830006244D24421618280011126CA4AC806CE50
+:1048400022CC4EC652C4AA842E8901C51C4D91E3C8
+:1048500029239C4C804499E3268501239717000067
+:104860009387C73B631BF402C0405E24A18BB1C792
+:104870001C48A1C7FD59294A1C4483450900FD175E
+:10488000B1E91CC463DD07062286A9452685E1201F
+:10489000FD576308F502294535A097170000938757
+:1048A000E7396314F4008044C9B797170000938771
+:1048B000E734E31CF4FAC0444DBFA2852685912A53
+:1048C00055D97D55F2406244D2444249B249224A08
+:1048D000056182801CC4050963D70700184C63CAB0
+:1048E000E700638845011C401387170018C08CA39C
+:1048F00061B7228626858520E31035F9D9B71C409B
+:104900001387170018C0294798A371B7938781812F
+:10491000AA8588436FF05FF205C68547630BF602F0
+:10492000138715002E968346F7FF0505BA87A30F58
+:10493000D5FE81CE0507E318E6FE2300050011A091
+:10494000AE87850703C7F7FF6DFF3385B7407D1539
+:104950008280AE87DDB7011122CC26CA4AC806CEB6
+:104960004EC6AA842E89328401C51C4D91E3F526DA
+:10497000971700009387872A6317F406C0401C4CE2
+:104980001CC45E24A18BC1C31C48B5CF1C48084081
+:104990009379F90F1379F90F1D8D5C486346F50083
+:1049A000A2852685692C25E51C440505FD171CC438
+:1049B0001C401387170018C0238037015C486388A8
+:1049C000A7005E24858B81CBA9476316F900A285D9
+:1049D0002685B5240DEDF24062444A85D244424911
+:1049E000B2490561828097170000938727256314D9
+:1049F000F400804469B79717000093872720E310DD
+:104A0000F4F8C044ADBFA2852685212041D17D594F
+:104A1000D9B741119387818126C2844322C44AC0F9
+:104A200006C62A892E8489C49C4C99E3268535269E
+:104A3000971700009387871E631BF402C04003177B
+:104A4000C40093170701C18393F68700ADEA93F67C
+:104A5000070195EEA5472320F900136707045AA420
+:104A60007D55B24022449244024941018280971709
+:104A700000009387A71C6314F4008044C9B79717FC
+:104A800000009387A717E31CF4FAC0444DBF918B35
+:104A90009DC34C5889C9930744046384F5004A8533
+:104AA000292B232A04025E242322040093F7B7FD56
+:104AB0005EA41C481CC05E2493E787005EA41C48CB
+:104AC00099EB5E241307002093F707286385E7001E
+:104AD000A2854A8591295E2413F717001DC35C48FF
+:104AE00023240400B307F0401CCC1C480145B5FB4F
+:104AF0008317C40013F707082DD793E707045EA4B4
+:104B000085B7898B014791E3584818C4F9BFDE2562
+:104B1000011122CC26CA06CE4AC84EC613F787001A
+:104B2000AA842E8479EBD841634DE000B841634AF2
+:104B3000E0000145F2406244D2444249B249056175
+:104B4000828058547DD703A904009396370123A08F
+:104B5000040063DB060670485E24918B99C75C40B5
+:104B60001D8E5C5899C33C401D8E5C540C50814690
+:104B700026858297FD575A24631DF5009440F5471A
+:104B800063E8D706B70740208507B3D7D700858BE2
+:104B9000A5C31C48232204001CC09317370163D807
+:104BA0000700FD576314F5009C4091E368C84C581A
+:104BB00023A02401BDDD930744046384F50026850A
+:104BC000ED2E232A0402B5B70C50014685462685F2
+:104BD0000297FD572A86E311F5F89C40B5DF75472B
+:104BE0006385E70059476393E70423A0240191B745
+:104BF000136707045AA47D5535BF83A90501E38ACD
+:104C000009F203A905008D8B23A035013309394131
+:104C1000014791E3D84918C4E35D20F11C540C50BE
+:104C2000CA864E86268582976347A0005E2493E756
+:104C300007045EA4C9B7AA993309A940F1BF9C49EA
+:104C4000A5C3011122CC06CE2A8411C51C4D81E7D3
+:104C50002EC62122B24597170000938727FC639C3C
+:104C6000F5004C408397C5009DC722856244F24001
+:104C700005616FF0DFE997170000938727FC6394C5
+:104C8000F5000C44C5B797170000938727F7E39BFF
+:104C9000F5FC4C44C1BFF24062440145056182808D
+:104CA00001458280411122C406C62A844EA572A500
+:104CB00023200500232205002324050023220506C6
+:104CC00023280500232A0500232C050021468145C1
+:104CD0001305C505EFB03F8797170000938707B30B
+:104CE0005CD097170000938727B51CD49717000056
+:104CF000938707B95CD497170000938767BB00D0F0
+:104D00001CD8B2402244410182809705000093855F
+:104D100045F391AA411126C2130680069384F5FF3C
+:104D2000B384C4024AC02E8922C406C693854407B0
+:104D30000D2E2A8401CD23200500232225013105D3
+:104D400008C4138684068145EFB0EFFF2285B24088
+:104D5000224492440249410182801C4DA5E7411141
+:104D600006C622C497070000938767FA1CD593876D
+:104D700001829C43232405042326050423280504DB
+:104D80006314F50085471CCD2A84352848C0228548
+:104D90001D2808C42285052848C44840014691457D
+:104DA000EFF05FF008440546A545EFF0BFEF48443B
+:104DB0000946C945EFF01FEF85471CCCB24022449D
+:104DC00041018280828041119387018226C28443FF
+:104DD0004AC006C69C4C22C42A8981E72685EFF08A
+:104DE000DFF7938484048044DC40FD1763D607001A
+:104DF0009C40B9CF8440C5BF0317C40039E7C177D1
+:104E000085072322040623200400232204002324F0
+:104E100004005CC423280400232A0400232C04007B
+:104E2000214681451305C405EFB0EFF1232A0402A2
+:104E3000232C040223240404232604042285B240E4
+:104E4000224492440249410182801304840671BFC6
+:104E500091454A85EFF01FEC88C049FDB1472320FA
+:104E6000F9000144E1BF797122D44AD052CC56CA2C
+:104E70005AC85EC606D626D24ECE2A8AAE8A1304F9
+:104E800085040149054BFD5B09ECB25022544A856B
+:104E900092540259F249624AD24A424BB24B45619E
+:104EA0008280044483294400FD1963D40900004032
+:104EB000E1BFDE24637BFB008397E4006387770117
+:104EC000A6855285829A3369A90093848406E9BF36
+:104ED0001971A6DAAE848395E500A2DC86DE328401
+:104EE00063DB0500DE2423A0060093F7070885E7AF
+:104EF000930700401DA0300836C6EF00F021B246EF
+:104F0000E34205FE7247BD67F98F7977BA9793B789
+:104F100017009CC2F1BF930700041CC0F6506654F2
+:104F2000D654014509618280DE25011122CC06CECE
+:104F300026CA4AC8898B2E8489CF930774041CC063
+:104F40001CC885475CC8F2406244D24442490561AE
+:104F5000828074003000AA84EFF09FF7A2452A896E
+:104F60002685012219E98317C40013F7072061FF82
+:104F7000F19B93E727005EA4C9B7970700009387CA
+:104F800007D99CD45E2408C008C893E707085EA42C
+:104F9000A2475CC8B24781CF8315E4002685EF00A5
+:104FA000D01A11C55E24F19B93E717005EA45E241E
+:104FB0003369F9002316240179B7DDC183A7C5FF42
+:104FC000411122C406C626C21384C5FF63D307005D
+:104FD0003E94AA84EF00301F9387C1919C4381EFD8
+:104FE0002322040023AE81902244B24026859244BD
+:104FF00041016F00701D637EF40014403307D4003C
+:105000006396E7009843DC43369718C05CC0D9BF6D
+:10501000BA87D84319C3E37DE4FE94433386D700AF
+:10502000631F86001040B29694C33386D700E31DF9
+:10503000C7FA10435843B29694C3D8C375B7637583
+:10504000C400B1479CC04DB71040B306C4006316FE
+:10505000D70014435843B29614C058C0C0C369B7B0
+:105060008280011126CA93843500F19806CE22CCA5
+:105070004AC84EC6A104B14763F3F404B14463E2E5
+:10508000B4042A89EF0030149387C19198433A847D
+:1050900039E0938701929C4391E781454A85252F0A
+:1050A00023A0A192A6854A853D27FD59631935079E
+:1050B000B1472320F9004A85EF00101129A0E3D061
+:1050C00004FCB1471CC10145F2406244D24442494C
+:1050D000B249056182801C40858F63CF0702AD46CF
+:1050E00063F6F6001CC03E9404C031A05C4063131C
+:1050F000870223AEF1904A85EF00100D1305B4002E
+:105100009307440061993307F5405DDF3A94898F36
+:105110001CC05DBF5CC3C5B72287404095BF130468
+:1051200035007198E30285FCB305A4404A856525E6
+:10513000E31C35FBB5BF1C46FD171CC663DA070030
+:10514000184E63C5E700A9476394F5006FF0BF8070
+:105150001C422E851387170018C28CA38280011170
+:1051600022CC26CA4AC84EC652C406CE2A89AE8967
+:105170003284B304D6007D5A63149400014509A813
+:105180000C204E864A85EFF01FFB0504E31645FF11
+:10519000F2406244D2444249B249224A05618280C7
+:1051A000357122CD26CB4AC94EC706CF52C556C34C
+:1051B0005AC1DEDEE2DCE6DAAA89AE8432893684C0
+:1051C00009C51C4D99E3EFF05FB99717000093876D
+:1051D000E7A46398F40C83A44900DE24A18BE5C7FF
+:1051E0009C48F5C393070002A304F1029307000350
+:1051F00002D22305F10222C6930B5002971A000037
+:10520000938ACAA5054C294B4A841C2099C3639FE5
+:10521000770DB30C2441638E0C00E6864A86A68582
+:105220004E85EFF0DFF3FD57630FF51C9256E696BF
+:1052300036D21C206389071CFD571309140002C8CD
+:1052400002CE3ECA02CCA309010482D483450900E0
+:1052500015465685A92F13041900C24751E913F7C3
+:10526000070109C713070002A309E10413F7870028
+:1052700009C71307B002A309E10483460900130715
+:10528000A002638FE606F2474A848146254618202D
+:1052900093051400130707FD6377E60AB5CA3ECEEF
+:1052A00085A897170000938767996395F40083A4F6
+:1052B000890025B79717000093874794E39FF4F080
+:1052C00083A4C90019BFA6854E85EFF08FF419D9C4
+:1052D0007D55FA406A44DA444A49BA492A4A9A4A08
+:1052E0000A4BF65B665CD65C0D618280050431BFBB
+:1052F000330555413315AC00C98F3EC82289B9B773
+:10530000324793064700184336C6634707023ACE32
+:1053100018209307E002631DF70418309307A002DA
+:10532000631BF702B2470904138747009C433AC640
+:1053300063C107023ECA2DA83307E04093E7270068
+:105340003ACE3EC8F1B7B387670385462E84BA9735
+:105350003DBFFD57C5B7050402CA814681472546B2
+:10536000182093051400130707FD6374E606F9F28D
+:105370000C200D46171500001305C58E0D2D11CDFF
+:10538000971700009387078E1D8D93070004B3972E
+:10539000A700424505045D8D2AC80C201946171543
+:1053A00000001305658C130914002304B1020125C4
+:1053B00035C197B7FFFF9387E7C495E74247B247E8
+:1053C0001377071009CF91073EC69257D2973ED266
+:1053D00025BDB387670385462E84BA9751B79D07CD
+:1053E000E19BA107D5B7780097060000938666D7A2
+:1053F00026860C084E8597000000E7000000FD5748
+:105400002A8AE314F5FCDE2493F70704E39207EC01
+:105410001255C1B5780097060000938686D426867B
+:105420000C084E85012AE1BF797156CA9C49BA8A97
+:10543000984522D426D24ECE52CC06D64AD05AC84F
+:105440005EC6AA892E84B284368A63D3E700BA87FF
+:105450009CC00347340419C385079CC01C4093F7C4
+:10546000070281C79C4089079CC003290400137967
+:105470006900631A0900130B9401FD5B5C449840BA
+:10548000998F634CF9041C408346340493F7070258
+:10549000B336D000A5EB13063404D2854E85829A2C
+:1054A000FD576303F5041C4011469840998B544402
+:1054B00081446397C700B384E64063D3040081440A
+:1054C0001C4418486354F700998FBE94014969043D
+:1054D0007D5B63982405014509A885465A86D285D7
+:1054E0004E85829A631E75017D55B25022549254A6
+:1054F0000259F249624AD24A424BB24B456182801C
+:105500000509ADBF3307D40013060003A301C70488
+:105510000347540493871600A2978906A381E704E2
+:105520009DBF85462286D2854E85829AE30E65FB15
+:10553000050945B7797122D426D24AD04ECE06D677
+:1055400052CC56CA5AC8B689942D93079006328910
+:10555000AA842E8413863504638DF60263E2D7068F
+:10556000930780056386F61863EDD700638E0620E7
+:1055700093073004638EF60A930A24042301D404AB
+:10558000C9A0930730066385F60A93074006E395A2
+:10559000F6FE1C40084393F6070893054500C5C670
+:1055A0001C410CC363D807001307D002B307F040B7
+:1055B000A301E404970600009386866B294765A83B
+:1055C000930700076382F61663E5D7029307E006A8
+:1055D0006389F6189307F006E390F6FA0C401C4333
+:1055E00013F80508138547006307080608C39C43A2
+:1055F00085A893075007E383F6FE93078007638926
+:10560000F61293073007E399F6F61C43D041814523
+:105610009386470014C383AA07005685492E01C507
+:105620003305554148C05C401CC8A301040461A86F
+:105630001C43930A2404938647009C4314C323010C
+:10564000F4048547D5B793F607041C410CC3B9DAB7
+:10565000C207C18781BF93F5050408C3C9D99E233A
+:105660001307F0066387E60E9706000093864660F0
+:105670002947A30104044C400CC463C5050008403D
+:105680006D9908C099E3B28A89CDB28AB3F5E70271
+:10569000FD1AB6958C212380BA00B3D5E70263F0DA
+:1056A000E70CA147631EF7001C40858B91CB584047
+:1056B0001C4863C7E70093070003A38FFAFEFD1A97
+:1056C0003306564110C84E87CA867000A2852685CB
+:1056D000EFF09FD57D5A631D450B7D55B250225486
+:1056E00092540259F249624AD24A424B4561828041
+:1056F000A382D50497060000938686570C40084382
+:1057000013F805081C411105630D080208C313F7BF
+:10571000150001C793E505020CC04147B9FB0C40D9
+:1057200093F5F5FD0CC0B1B79C4193E707029CC10E
+:1057300093078007A302F40497060000938686541B
+:1057400075BF13F8050408C3E30308FCC207C1834F
+:105750007DBF970600009386A651214719BFAE87EB
+:1057600035B794411C43CC4913F80608138547000C
+:105770006306080008C39C438CC339A008C393F692
+:1057800006049C43F5DA8EA323280400B28A25BFC1
+:1057900014485686CA8526858299E30045F51C4043
+:1057A000898B8DE7B2474844E35AF5F23E853DB711
+:1057B00085465686CA8526858299E30065F3050AE3
+:1057C0005C443247998FE345FAFEE9BF014A930AE8
+:1057D00094017D5BF5B7411122C42A842E85971769
+:1057E000002023A7070A06C6EFD0AFEEFD576319C6
+:1057F000F500971700209387A7099C4391C31CC00D
+:10580000B240224441018280411122C42E848395FA
+:10581000E50006C65D2A634905007C48AA977CC856
+:10582000B2402244410182805E247D777D17F98F4A
+:105830005EA4FDB7DE25011122CC26CA4AC84EC699
+:1058400006CE93F70710AA842E843289B68991C7B1
+:105850008395E500894601460D225E247D777D17FC
+:10586000F98F5EA48315E4006244F240CE864A8636
+:10587000B24942492685D244056125A8411122C476
+:105880002E848395E50006C6CD28FD575A24631A59
+:10589000F500FD77FD17F98F5EA4B2402244410167
+:1058A00082808567D98F5EA468C8C5BF8395E500EF
+:1058B00025A8411122C42A842E85B28536869717E1
+:1058C000002023A707FC06C6EFD0CFDCFD576319E5
+:1058D000F500971700209387A7FB9C4391C31CC03A
+:1058E000B240224441018280411122C42A842E8583
+:1058F0009717002023AE07F806C61122FD5763193B
+:10590000F500971700209387A7F89C4391C31CC00C
+:10591000B240224441018280411122C42A842E8552
+:10592000B2859717002023A507F606C6CD20FD57A0
+:105930006319F50097170020938787F59C4391C35F
+:105940001CC0B240224441018280411122C42A84F9
+:105950002E859717002023AD07F206C6C920FD57F4
+:105960006319F50097170020938787F29C4391C332
+:105970001CC0B240224441018280411122C42A84C9
+:105980002E85B28536869717002023A307F006C61A
+:105990007928FD576319F50097170020938747EF83
+:1059A0009C4391C31CC0B24022444101828093F5C4
+:1059B000F50F2A966314C500014582801C21E38EF1
+:1059C000B7FE0505C5BF82808280411122C42A84AA
+:1059D0002E85B28536869717002023AB07EA06C6C8
+:1059E000B928FD576319F50097170020938747EAF8
+:1059F0009C4391C31CC0B240224441018280930762
+:105A00008005171700202325F7E87D55828093072E
+:105A1000800517170020232DF7E67D558280930718
+:105A20008005171700202325F7E60145828093079C
+:105A3000800517170020232DF7E47D5582809307FA
+:105A40008005171700202325F7E47D55828000008C
+:105A500053797374656D436C6B3A25640D0A0000CD
+:105A60004368697049443A253038780D0A000000CF
+:105A70005631302E342E36004672656552544F53DF
+:105A8000204B65726E656C2056657273696F6E3A55
+:105A900025730D0A0000000073686F756C646E2733
+:105AA000742072756E206174206865726521210012
+:105AB0002E2E2F4672656552544F532F706F72749D
+:105AC00061626C652F4D656D4D616E672F68656114
+:105AD000705F342E63000000657272206174206C68
+:105AE000696E65202564206F662066696C652022DA
+:105AF0002573222E200D0A20000000002E2E2F4696
+:105B000072656552544F532F706F727461626C6589
+:105B10002F4743432F524953432D562F706F7274B2
+:105B20002E6300002E2E2F4672656552544F532F60
+:105B300071756575652E63002E2E2F467265655250
+:105B4000544F532F7461736B732E630049444C455B
+:105B500000000000902C0000902C0000D02C0000D1
+:105B6000DC2C00001E2D0000902C0000902C00006A
+:105B7000D02C0000DC2C0000546D7251000000009D
+:105B80002E2E2F4672656552544F532F74696D65E2
+:105B900072732E6300000000546D72205376630010
+:105BA0005B4552524F525D205B25733A25645D2060
+:105BB0004D656D6F727920616C6C6F636174696F94
+:105BC0006E206661696C65640A0D0A0068656C6C1C
+:105BD0006F20776F726C640A00000000636F6D6D58
+:105BE0006F6E5461736B00007472616E736D6974D3
+:105BF0005461736B00000000000000000000000012
+:105C00000000000000000000000000000000000094
+:105C10000000000000000000000000000000000084
+:105C20000000000000000000000000000000000074
+:105C30000000000000000000000000000000000064
+:105C40000000000000000000000000000000000054
+:105C50000000000000000000232D302B2000000079
+:105C6000686C4C006566674546470000303132334A
+:105C70003435363738394142434445460000000048
+:105C800030313233343536373839616263646566B2
+:045C90000000000010
+:105C940000000000000000000102030406070809D8
+:105CA40000000000010203040102030406070809BE
+:105CB4000000000006000000802500000000000035
+:105CC40000000000000000000000000000000000D0
+:105CD4000000000000000000070000008025000014
+:105CE40000000000000000000000000000000000B0
+:105CF400000000000000000000000000020000009E
+:105D040080250000000000000000000000000000EA
+:105D1400000000000000000000000000000000007F
+:105D240008000000802500000000000000000000C2
+:105D3400000000000000000000000000000000005F
+:105D440000000000030000008025000000000000A7
+:105D5400000000000000000000000000000000003F
+:105D640000000000000000000500000000C2010067
+:105D7400000000000000000000000000000000001F
+:105D8400000000000000000000000000185C00009B
+:105D9400385C0000F85B0000000000000000000018
+:105DA40000000000000000000000000000000000EF
+:105DB40000000000000000000000000000000000DF
+:105DC40000000000000000000000000000000000CF
+:105DD40000000000000000000000000000000000BF
+:105DE4000000000000000000006CDC020204060851
+:105DF400AAAAAAAA0E0000009068002001000000D0
+:105E0400F800002000800020F800002000000000BE
:00000001FF
diff --git a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.lst b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.lst
index 09953a5..a4203e1 100644
--- a/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.lst
+++ b/CH32V303-FreeRTOS/obj/CH32V303-FreeRTOS.lst
@@ -7,9 +7,9 @@ start address 0x00000000
Program Header:
LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12
- filesz 0x00005620 memsz 0x00005620 flags r-x
- LOAD off 0x00007000 vaddr 0x20000000 paddr 0x00005620 align 2**12
- filesz 0x00000190 memsz 0x0000385c flags rw-
+ filesz 0x00005c94 memsz 0x00005c94 flags r-x
+ LOAD off 0x00007000 vaddr 0x20000000 paddr 0x00005c94 align 2**12
+ filesz 0x00000180 memsz 0x00006890 flags rw-
LOAD off 0x00007800 vaddr 0x20007800 paddr 0x20007800 align 2**12
filesz 0x00000000 memsz 0x00000800 flags rw-
@@ -19,51 +19,51 @@ Idx Name Size VMA LMA File off Algn
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .vector 000001bc 00000004 00000004 00001004 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .text 00005420 00000200 00000200 00001200 2**8
+ 2 .text 00005a94 00000200 00000200 00001200 2**8
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 3 .fini 00000000 00005620 00005620 00007190 2**0
+ 3 .fini 00000000 00005c94 00005c94 00007180 2**0
CONTENTS, ALLOC, LOAD, CODE
- 4 .dalign 00000000 20000000 20000000 00007190 2**0
+ 4 .dalign 00000000 20000000 20000000 00007180 2**0
CONTENTS
- 5 .dlalign 00000000 00005620 00005620 00007190 2**0
+ 5 .dlalign 00000000 00005c94 00005c94 00007180 2**0
CONTENTS
- 6 .data 00000190 20000000 00005620 00007000 2**2
+ 6 .data 00000180 20000000 00005c94 00007000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .bss 000036cc 20000190 000057b0 00007190 2**2
+ 7 .bss 00006710 20000180 00005e14 00007180 2**2
ALLOC
8 .stack 00000800 20007800 20007800 00007800 2**0
ALLOC
- 9 .debug_info 0001edb5 00000000 00000000 00007190 2**0
+ 9 .debug_info 00021556 00000000 00000000 00007180 2**0
CONTENTS, READONLY, DEBUGGING
- 10 .debug_abbrev 00004dea 00000000 00000000 00025f45 2**0
+ 10 .debug_abbrev 00005304 00000000 00000000 000286d6 2**0
CONTENTS, READONLY, DEBUGGING
- 11 .debug_aranges 00000dc0 00000000 00000000 0002ad30 2**3
+ 11 .debug_aranges 00000f18 00000000 00000000 0002d9e0 2**3
CONTENTS, READONLY, DEBUGGING
- 12 .debug_ranges 00001238 00000000 00000000 0002baf0 2**3
+ 12 .debug_ranges 000013d8 00000000 00000000 0002e8f8 2**3
CONTENTS, READONLY, DEBUGGING
- 13 .debug_line 0001889b 00000000 00000000 0002cd28 2**0
+ 13 .debug_line 0001a28f 00000000 00000000 0002fcd0 2**0
CONTENTS, READONLY, DEBUGGING
- 14 .debug_str 00004b19 00000000 00000000 000455c3 2**0
+ 14 .debug_str 00005043 00000000 00000000 00049f5f 2**0
CONTENTS, READONLY, DEBUGGING
- 15 .comment 00000033 00000000 00000000 0004a0dc 2**0
+ 15 .comment 00000033 00000000 00000000 0004efa2 2**0
CONTENTS, READONLY
- 16 .debug_frame 00002f54 00000000 00000000 0004a110 2**2
+ 16 .debug_frame 00003308 00000000 00000000 0004efd8 2**2
CONTENTS, READONLY, DEBUGGING
- 17 .debug_loc 00008692 00000000 00000000 0004d064 2**0
+ 17 .debug_loc 00008bb1 00000000 00000000 000522e0 2**0
CONTENTS, READONLY, DEBUGGING
- 18 .stab 00000084 00000000 00000000 000556f8 2**2
+ 18 .stab 00000084 00000000 00000000 0005ae94 2**2
CONTENTS, READONLY, DEBUGGING
- 19 .stabstr 00000117 00000000 00000000 0005577c 2**0
+ 19 .stabstr 00000117 00000000 00000000 0005af18 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .init 00000000 .init
00000004 l d .vector 00000000 .vector
00000200 l d .text 00000000 .text
-00005620 l d .fini 00000000 .fini
+00005c94 l d .fini 00000000 .fini
20000000 l d .dalign 00000000 .dalign
-00005620 l d .dlalign 00000000 .dlalign
+00005c94 l d .dlalign 00000000 .dlalign
20000000 l d .data 00000000 .data
-20000190 l d .bss 00000000 .bss
+20000180 l d .bss 00000000 .bss
20007800 l d .stack 00000000 .stack
00000000 l d .debug_info 00000000 .debug_info
00000000 l d .debug_abbrev 00000000 .debug_abbrev
@@ -91,99 +91,108 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 ch32v30x_misc.c
00000000 l df *ABS* 00000000 ch32v30x_rcc.c
20000010 l O .data 00000010 APBAHBPrescTable
-20000174 l O .data 00000004 ADCPrescTable
+2000015c l O .data 00000004 ADCPrescTable
00000000 l df *ABS* 00000000 ch32v30x_usart.c
00000000 l df *ABS* 00000000 heap_4.c
00001228 l F .text 0000004c prvInsertBlockIntoFreeList
-20000260 l O .bss 00003000 ucHeap
-20000194 l O .bss 00000004 pxEnd
-20000198 l O .bss 00000004 xBlockAllocatedBit
-2000019c l O .bss 00000004 xFreeBytesRemaining
-200001a0 l O .bss 00000004 xMinimumEverFreeBytesRemaining
-200001a4 l O .bss 00000004 xNumberOfSuccessfulAllocations
-200001a8 l O .bss 00000004 xNumberOfSuccessfulFrees
-200001ac l O .bss 00000008 xStart
+2000027c l O .bss 00006000 ucHeap
+20000184 l O .bss 00000004 pxEnd
+20000188 l O .bss 00000004 xBlockAllocatedBit
+2000018c l O .bss 00000004 xFreeBytesRemaining
+20000190 l O .bss 00000004 xMinimumEverFreeBytesRemaining
+20000194 l O .bss 00000004 xNumberOfSuccessfulAllocations
+20000198 l O .bss 00000004 xNumberOfSuccessfulFrees
+2000019c l O .bss 00000008 xStart
00000000 l df *ABS* 00000000 port.c
-20000178 l O .data 00000004 uxCriticalNesting
+20000160 l O .data 00000004 uxCriticalNesting
00000000 l df *ABS* 00000000 list.c
00000000 l df *ABS* 00000000 queue.c
-00001668 l F .text 0000001a prvIsQueueEmpty
-00001682 l F .text 00000028 prvCopyDataFromQueue
-000016aa l F .text 0000006e prvUnlockQueue
+0000167a l F .text 0000001a prvIsQueueEmpty
+00001694 l F .text 00000072 prvCopyDataToQueue
+00001706 l F .text 000000d6 prvNotifyQueueSetContainer
+000017dc l F .text 00000028 prvCopyDataFromQueue
+00001804 l F .text 00000078 prvUnlockQueue
00000000 l df *ABS* 00000000 tasks.c
-00001a46 l F .text 00000024 prvResetNextTaskUnblockTime
-00001a6a l F .text 000000a0 prvAddCurrentTaskToDelayedList
-00001b0a l F .text 0000004c prvIdleTask
-200032a0 l O .bss 0000012c pxReadyTasksLists
-200033cc l O .bss 00000014 xDelayedTaskList1
-200033e0 l O .bss 00000014 xDelayedTaskList2
-200033f4 l O .bss 00000014 xPendingReadyList
-20003408 l O .bss 00000014 xSuspendedTaskList
-2000341c l O .bss 00000014 xTasksWaitingTermination
-200001b8 l O .bss 00000004 pxDelayedTaskList
-200001bc l O .bss 00000004 pxOverflowDelayedTaskList
-200001c0 l O .bss 00000004 uxCurrentNumberOfTasks
-200001c4 l O .bss 00000004 uxDeletedTasksWaitingCleanUp
-200001c8 l O .bss 00000004 uxSchedulerSuspended
-200001cc l O .bss 00000004 uxTaskNumber
-200001d0 l O .bss 00000004 uxTopReadyPriority
-200001d4 l O .bss 00000004 xIdleTaskHandle
-200001d8 l O .bss 00000004 xNextTaskUnblockTime
-200001dc l O .bss 00000004 xNumOfOverflows
-200001e0 l O .bss 00000004 xPendedTicks
-200001e4 l O .bss 00000004 xSchedulerRunning
-200001e8 l O .bss 00000004 xTickCount
-200001ec l O .bss 00000004 xYieldPending
+00001f04 l F .text 00000024 prvResetNextTaskUnblockTime
+00001f28 l F .text 000000a6 prvAddCurrentTaskToDelayedList
+00001fce l F .text 00000052 prvIdleTask
+200062bc l O .bss 0000012c pxReadyTasksLists
+200063e8 l O .bss 00000014 xDelayedTaskList1
+200063fc l O .bss 00000014 xDelayedTaskList2
+20006410 l O .bss 00000014 xPendingReadyList
+20006424 l O .bss 00000014 xSuspendedTaskList
+20006438 l O .bss 00000014 xTasksWaitingTermination
+200001a8 l O .bss 00000004 pxDelayedTaskList
+200001ac l O .bss 00000004 pxOverflowDelayedTaskList
+200001b0 l O .bss 00000004 uxCurrentNumberOfTasks
+200001b4 l O .bss 00000004 uxDeletedTasksWaitingCleanUp
+200001b8 l O .bss 00000004 uxSchedulerSuspended
+200001bc l O .bss 00000004 uxTaskNumber
+200001c0 l O .bss 00000004 uxTopReadyPriority
+200001c4 l O .bss 00000004 xIdleTaskHandle
+200001c8 l O .bss 00000004 xNextTaskUnblockTime
+200001cc l O .bss 00000004 xNumOfOverflows
+200001d0 l O .bss 00000004 xPendedTicks
+200001d4 l O .bss 00000004 xSchedulerRunning
+200001d8 l O .bss 00000004 xTickCount
+200001dc l O .bss 00000004 xYieldPending
00000000 l df *ABS* 00000000 timers.c
-000024c0 l F .text 00000066 prvCheckForValidListAndQueue
-00002526 l F .text 00000046 prvInsertTimerInActiveList
-0000256c l F .text 00000028 prvReloadTimer
-00002594 l F .text 00000044 prvProcessExpiredTimer
-000025d8 l F .text 0000002e prvSwitchTimerLists
-00002606 l F .text 0000018c prvTimerTask
-20003430 l O .bss 00000014 xActiveTimerList1
-20003444 l O .bss 00000014 xActiveTimerList2
-200001f0 l O .bss 00000004 pxCurrentTimerList
-200001f4 l O .bss 00000004 pxOverflowTimerList
-200001f8 l O .bss 00000004 xLastTime.6323
-200001fc l O .bss 00000004 xTimerQueue
-20000200 l O .bss 00000004 xTimerTaskHandle
+00002a5e l F .text 00000066 prvCheckForValidListAndQueue
+00002ac4 l F .text 00000046 prvInsertTimerInActiveList
+00002b0a l F .text 00000028 prvReloadTimer
+00002b32 l F .text 00000044 prvProcessExpiredTimer
+00002b76 l F .text 0000002e prvSwitchTimerLists
+00002ba4 l F .text 0000018c prvTimerTask
+2000644c l O .bss 00000014 xActiveTimerList1
+20006460 l O .bss 00000014 xActiveTimerList2
+200001e0 l O .bss 00000004 pxCurrentTimerList
+200001e4 l O .bss 00000004 pxOverflowTimerList
+200001e8 l O .bss 00000004 xLastTime.6324
+200001ec l O .bss 00000004 xTimerQueue
+200001f0 l O .bss 00000004 xTimerTaskHandle
00000000 l df *ABS* 00000000 debug.c
-20000204 l O .bss 00000002 p_ms
-20000206 l O .bss 00000001 p_us
-20000180 l O .data 00000004 curbrk.5274
+200001f4 l O .bss 00000002 p_ms
+200001f6 l O .bss 00000001 p_us
+20000168 l O .data 00000004 curbrk.5274
00000000 l df *ABS* 00000000 ring_queue.c
00000000 l df *ABS* 00000000 HD_ADC.c
00000000 l df *ABS* 00000000 HD_GPIO.c
00000000 l df *ABS* 00000000 HD_UART.c
00000000 l df *ABS* 00000000 FM_ADC.c
-000032c6 l F .text 0000002e Get_ConversionVal
-20000214 l O .bss 00000004 P_In_Current
-20000218 l O .bss 00000004 P_In_Voltage
-2000021c l O .bss 00000004 P_PwrOn_Voltage
00000000 l df *ABS* 00000000 FM_GPIO.c
00000000 l df *ABS* 00000000 uart_dev.c
-0000349c l F .text 000000a8 uart_dev_init
-20000250 l O .bss 00000001 uartInterruptSendFlag
+00003a4e l F .text 000000a8 uart_dev_init
+20000202 l O .bss 00000001 J1_485_IDLE_Flag
+20000205 l O .bss 00000001 J2_485_IDLE_Flag
+20000209 l O .bss 00000001 J3_485_IDLE_Flag
+2000020d l O .bss 00000001 J4_485_IDLE_Flag
+20000211 l O .bss 00000001 J5_0_485_IDLE_Flag
+20000234 l O .bss 00000001 uartInterruptSendFlag
+2000016c l O .data 00000001 connectPort
+00000000 l df *ABS* 00000000 busIdleDetection.c
+20000238 l O .bss 00000004 J1_485_Swtmr
+2000023c l O .bss 00000004 J2_485_Swtmr
+20000240 l O .bss 00000004 J3_485_Swtmr
+20000244 l O .bss 00000004 J4_485_Swtmr
+20000248 l O .bss 00000004 J5_0_485_Swtmr
00000000 l df *ABS* 00000000 freerotsTask.c
-00000000 l df *ABS* 00000000 mulsf3.c
-00000000 l df *ABS* 00000000 fixsfsi.c
-00000000 l df *ABS* 00000000 floatsisf.c
-00000000 l df *ABS* 00000000 libgcc2.c
+00000000 l df *ABS* 00000000 queueUart.c
+20006874 l O .bss 00000018 queueRecvData
00000000 l df *ABS* 00000000 memcpy.c
00000000 l df *ABS* 00000000 printf.c
00000000 l df *ABS* 00000000 puts.c
+00000000 l df *ABS* 00000000 strlcpy.c
00000000 l df *ABS* 00000000 wbuf.c
00000000 l df *ABS* 00000000 wsetup.c
00000000 l df *ABS* 00000000 fflush.c
00000000 l df *ABS* 00000000 findfp.c
-000044c6 l F .text 00000066 std
+00004ca4 l F .text 00000066 std
00000000 l df *ABS* 00000000 fwalk.c
00000000 l df *ABS* 00000000 makebuf.c
00000000 l df *ABS* 00000000 nano-mallocr.c
00000000 l df *ABS* 00000000 nano-mallocr.c
00000000 l df *ABS* 00000000 nano-vfprintf.c
-00004970 l F .text 00000028 __sfputc_r
+00005136 l F .text 00000028 __sfputc_r
00000000 l df *ABS* 00000000 nano-vfprintf_i.c
00000000 l df *ABS* 00000000 sbrkr.c
00000000 l df *ABS* 00000000 stdio.c
@@ -200,332 +209,366 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 isatty.c
00000000 l df *ABS* 00000000 lseek.c
00000000 l df *ABS* 00000000 read.c
-00000000 l df *ABS* 00000000 libgcc2.c
00000000 l df *ABS* 00000000 impure.c
-2000010c l O .data 00000060 impure_data
+200000f8 l O .data 00000060 impure_data
00000000 l df *ABS* 00000000 reent.c
0000088c w .text 00000000 EXTI2_IRQHandler
+00004336 g F .text 0000001c J2_485_IN_RXNE
0000088c w .text 00000000 TIM8_TRG_COM_IRQHandler
0000088c w .text 00000000 TIM8_CC_IRQHandler
-00005184 g F .text 00000030 _isatty_r
-00004098 g F .text 000000d4 _puts_r
-00003428 g F .text 00000074 writePwrCtrlState
-000051b4 g F .text 00000034 _lseek_r
+00004270 g F .text 00000022 J1_485_IN_IDLE
+0000594a g F .text 00000030 _isatty_r
+00004838 g F .text 000000d4 _puts_r
+0000597a g F .text 00000034 _lseek_r
00000dbe g F .text 00000014 DMA_Cmd
-0000327a g F .text 0000004c UART8_IRQHandler
+000039e4 g F .text 0000004a UART8_IRQHandler
000015be g F .text 00000042 vPortExitCritical
-00004058 g F .text 00000040 printf
-20000970 g .data 00000000 __global_pointer$
+000047f8 g F .text 00000040 printf
+20000958 g .data 00000000 __global_pointer$
000004ee g F .text 00000028 .hidden __riscv_save_8
+0000471e g F .text 00000014 J5_0_485_IN_TXE
0000088c w .text 00000000 TIM1_CC_IRQHandler
-000050b6 g F .text 00000030 __sseek
-0000457c g F .text 0000006c __sinit
-00004178 g F .text 000000bc __swbuf_r
-20000244 g O .bss 00000004 g_J4_uart8_handle
+0000587c g F .text 00000030 __sseek
+00004d5a g F .text 0000006c __sinit
+00004956 g F .text 000000bc __swbuf_r
+20000228 g O .bss 00000004 g_J4_uart8_handle
000005f0 g F .text 00000010 HardFault_Handler
-000019f0 g F .text 00000056 vQueueWaitForMessageRestricted
-00004536 g F .text 00000046 __sfmoreglue
-20000224 g O .bss 00000001 J2_Rbuffer
-00005202 g F .text 00000002 __malloc_unlock
+00001e54 g F .text 0000005c vQueueWaitForMessageRestricted
+00004d14 g F .text 00000046 __sfmoreglue
+20000208 g O .bss 00000001 J2_Rbuffer
+000059c8 g F .text 00000002 __malloc_unlock
000009c4 g F .text 00000012 ADC_DMACmd
-000028f4 g F .text 0000002c InRingQueue
+00002f0c g F .text 0000002c InRingQueue
0000053a g F .text 0000000c .hidden __riscv_restore_3
0000088c w .text 00000000 TIM6_IRQHandler
00001570 g F .text 00000038 SysTick_Handler
000009e8 g F .text 0000000a ADC_StartCalibration
-00003b3e g F .text 00000042 startApp
+00004436 g F .text 00000068 startApp
00000ea6 g F .text 00000052 NVIC_Init
0000088c w .text 00000000 PVD_IRQHandler
0000088c w .text 00000000 SDIO_IRQHandler
0000088c w .text 00000000 TIM9_BRK_IRQHandler
00000526 g F .text 00000020 .hidden __riscv_restore_10
+00004428 g F .text 0000000e transmit_Task
+00001b4e g F .text 0000013a xQueueGenericSendFromISR
0000088c w .text 00000000 DMA2_Channel8_IRQHandler
000005ee g F .text 00000002 NMI_Handler
-00003e10 g F .text 00000062 .hidden __fixsfsi
0000088c w .text 00000000 CAN2_RX1_IRQHandler
0000088c w .text 00000000 EXTI3_IRQHandler
000004ee g F .text 00000028 .hidden __riscv_save_11
00000c10 g F .text 0000000a DBGMCU_GetCHIPID
-200001b4 g O .bss 00000004 pxCurrentTCB
+00001eee g F .text 00000016 xQueueSelectFromSet
+200001a4 g O .bss 00000004 pxCurrentTCB
0000088c w .text 00000000 USBHS_IRQHandler
000011e2 g F .text 0000000a USART_GetFlagStatus
0000088c w .text 00000000 DMA2_Channel9_IRQHandler
-00005152 g F .text 00000032 _fstat_r
+00005918 g F .text 00000032 _fstat_r
0000088c w .text 00000000 TIM10_CC_IRQHandler
-20003858 g O .bss 00000004 errno
-20000190 g .bss 00000000 _sbss
+2000688c g O .bss 00000004 errno
+20000258 g O .bss 00000004 J2_485_Queue
+20000180 g .bss 00000000 _sbss
00000800 g *ABS* 00000000 __stack_size
-0000337e g F .text 00000022 getInVoltage
-00002822 g F .text 0000005a USART_Printf_Init
+20000254 g O .bss 00000004 J1_485_Queue
+00002e3a g F .text 0000005a USART_Printf_Init
00000d86 g F .text 00000038 DMA_Init
0000088c w .text 00000000 USBFS_IRQHandler
-20000234 g O .bss 00000001 Upward_Rbuffer
-000023ba g F .text 00000016 vTaskInternalSetTimeOutState
+20000218 g O .bss 00000001 Upward_Rbuffer
+0000288e g F .text 00000016 vTaskInternalSetTimeOutState
0000053a g F .text 0000000c .hidden __riscv_restore_2
000014e2 g F .text 0000008e xPortStartScheduler
-00003fa6 g F .text 000000b2 memcpy
-00002210 g F .text 00000048 vTaskPlaceOnEventList
+00004746 g F .text 000000b2 memcpy
+000026e4 g F .text 00000048 vTaskPlaceOnEventList
000009b4 g F .text 00000010 ADC_Cmd
-0000452c g F .text 0000000a _cleanup_r
+00004d0a g F .text 0000000a _cleanup_r
000014a4 w F .text 0000003e vPortSetupTimerInterrupt
0000088c w .text 00000000 EXTI0_IRQHandler
0000088c w .text 00000000 I2C2_EV_IRQHandler
0000088c w .text 00000000 TIM10_TRG_COM_IRQHandler
-20000208 g O .bss 00000002 Calibrattion_Val
-20000248 g O .bss 00000004 g_J5_0_usart3_handle
-0000416c g F .text 0000000c puts
+200001f8 g O .bss 00000002 Calibrattion_Val
+2000022c g O .bss 00000004 g_J5_0_usart3_handle
+0000490c g F .text 0000000c puts
000013fe g F .text 000000a6 vPortFree
-20000170 g O .data 00000004 SystemCoreClock
+00003732 g F .text 00000038 USART_CONNET_J7
+20000158 g O .data 00000004 SystemCoreClock
20008000 g .stack 00000000 __freertos_irq_stack_top
+000036fa g F .text 00000038 USART_CONNET_J6
000011da g F .text 00000008 USART_ReceiveData
-00005248 g F .text 00000010 _fstat
+00005a0e g F .text 00000010 _fstat
00000004 g .init 00000000 _einit
0000109e g F .text 0000001e RCC_APB2PeriphClockCmd
-2000024c g O .bss 00000004 g_Upward_uart5_handle
+20000230 g O .bss 00000004 g_Upward_uart5_handle
000004e6 g F .text 00000030 .hidden __riscv_save_12
-000039c8 g F .text 00000134 uartInterruptSend
+00004060 g F .text 00000134 uartInterruptSend
0000088c w .text 00000000 CAN2_SCE_IRQHandler
0000088c w .text 00000000 ADC1_2_IRQHandler
00000dd2 g F .text 000000c0 GPIO_Init
00000ef8 g F .text 00000012 RCC_ADCCLKConfig
0000088c w .text 00000000 Break_Point_Handler
-00002d12 g F .text 000000c0 J2_485_Init
+0000332c g F .text 000000ce J2_485_Init
00000526 g F .text 00000020 .hidden __riscv_restore_11
-000033a0 g F .text 0000007c printf_adc_data
-20000190 g O .bss 00000004 NVIC_Priority_Group
+20000180 g O .bss 00000004 NVIC_Priority_Group
0000088c w .text 00000000 SPI1_IRQHandler
000009d6 g F .text 0000000a ADC_ResetCalibration
00001186 g F .text 00000016 USART_Cmd
-00005010 g F .text 00000032 _sbrk_r
+000057d6 g F .text 00000032 _sbrk_r
0000088c w .text 00000000 TAMPER_IRQHandler
00000516 g F .text 0000000c .hidden __riscv_save_1
0000053a g F .text 0000000c .hidden __riscv_restore_0
-00005204 g F .text 00000034 _read_r
-00001614 g F .text 00000006 vListInitialiseItem
+000059ca g F .text 00000034 _read_r
+00001626 g F .text 00000006 vListInitialiseItem
000004fc g F .text 0000001a .hidden __riscv_save_7
-0000183e g F .text 00000146 xQueueReceive
+00001c88 g F .text 00000160 xQueueReceive
0000088c w .text 00000000 CAN2_RX0_IRQHandler
-20003260 g O .bss 00000040 xQueueRegistry
+2000627c g O .bss 00000040 xQueueRegistry
+0000160c g F .text 00000006 vPortClearInterruptMask
0000088c w .text 00000000 TIM8_UP_IRQHandler
000010bc g F .text 0000001e RCC_APB1PeriphClockCmd
-0000356e g F .text 0000009a getUartSendState
+00003b20 g F .text 0000009a getUartSendState
0000088c w .text 00000000 Ecall_M_Mode_Handler
20007800 g .stack 00000000 _heap_end
-00005258 g F .text 00000010 _isatty
-2000018c g O .data 00000004 _global_impure_ptr
-0000335c g F .text 00000022 getInCurrent
+00005a1e g F .text 00000010 _isatty
+20000178 g O .data 00000004 _global_impure_ptr
00000530 g F .text 00000016 .hidden __riscv_restore_5
+00001eb0 g F .text 00000010 xQueueCreateSet
0000088c w .text 00000000 DMA2_Channel2_IRQHandler
00001080 g F .text 0000001e RCC_AHBPeriphClockCmd
0000088c w .text 00000000 DMA1_Channel4_IRQHandler
00000a12 g F .text 000000b8 ADC_RegularChannelConfig
-000028ba g F .text 0000002a _sbrk
+00002ed2 g F .text 0000002a _sbrk
00001274 g F .text 0000018a pvPortMalloc
-000028e4 g F .text 00000010 InitRingQueue
-00001600 g F .text 00000014 vListInitialise
+00002efc g F .text 00000010 InitRingQueue
+00001612 g F .text 00000014 vListInitialise
+00004194 g F .text 00000076 getBUSIDLEFlag
0000088c w .text 00000000 TIM9_UP_IRQHandler
+00004352 g F .text 0000001c J3_485_IN_RXNE
00000530 g F .text 00000016 .hidden __riscv_restore_6
-00003152 g F .text 0000004a USART3_IRQHandler
-00001dfa g F .text 0000000a xTaskGetTickCount
+000038bc g F .text 0000004a USART3_IRQHandler
+000022c4 g F .text 0000000a xTaskGetTickCount
+000019a8 g F .text 000001a6 xQueueGenericSend
0000088c w .text 00000000 RTC_IRQHandler
000009f2 g F .text 00000008 ADC_GetCalibrationStatus
-2000385c g .bss 00000000 _ebss
+20006890 g .bss 00000000 _ebss
000011ec g F .text 0000003c USART_GetITStatus
0000088c w .text 00000000 DMA1_Channel7_IRQHandler
000009fa g F .text 00000018 ADC_SoftwareStartConvCmd
000009e0 g F .text 00000008 ADC_GetResetCalibrationStatus
0000088c w .text 00000000 CAN1_RX1_IRQHandler
-000027f0 g F .text 00000032 Delay_Init
+0000436e g F .text 0000001c J4_485_IN_RXNE
+00002e08 g F .text 00000032 Delay_Init
+00002994 g F .text 000000ca xTaskPriorityDisinherit
0000088c w .text 00000000 DVP_IRQHandler
-0000319c g F .text 0000004a UART5_IRQHandler
-00002f42 g F .text 00000038 USART_CONNET_J0
-00002c52 g F .text 000000c0 J1_485_Init
-000022ce g F .text 000000ec xTaskRemoveFromEventList
+00003906 g F .text 0000004a UART5_IRQHandler
+00003586 g F .text 00000038 USART_CONNET_J0
+0000325e g F .text 000000ce J1_485_Init
+000042b4 g F .text 00000022 J3_485_IN_IDLE
+000027a2 g F .text 000000ec xTaskRemoveFromEventList
0000088c w .text 00000000 TIM4_IRQHandler
-0000341c g F .text 0000000c FM_GPIO_Init
+00003a42 g F .text 0000000c FM_GPIO_Init
000004ee g F .text 00000028 .hidden __riscv_save_9
+20000268 g O .bss 00000004 uart_Queue
00000e92 g F .text 0000000a GPIO_WriteBit
0000088c w .text 00000000 DMA2_Channel1_IRQHandler
-00005584 g O .text 00000020 __sf_fake_stderr
+00005bf8 g O .text 00000020 __sf_fake_stderr
000004fc g F .text 0000001a .hidden __riscv_save_4
+0000449e g F .text 000000bc uartQueueInit
+000036c2 g F .text 00000038 USART_CONNET_J5
0000088c w .text 00000000 I2C1_EV_IRQHandler
-20000188 g O .data 00000004 xISRStackTop
+20000174 g O .data 00000004 xISRStackTop
00000f0a g F .text 00000176 RCC_GetClocksFreq
+20000270 g O .bss 00000004 xActivatedMember
0000088c w .text 00000000 DMA1_Channel6_IRQHandler
-00003f38 g F .text 0000006e .hidden __clzsi2
-00004998 g F .text 00000042 __sfputs_r
+0000515e g F .text 00000042 __sfputs_r
0000088c w .text 00000000 UART4_IRQHandler
0000088c w .text 00000000 DMA2_Channel4_IRQHandler
-000051e8 g F .text 00000018 memchr
+000059ae g F .text 00000018 memchr
000010f8 g F .text 0000008e USART_Init
-000023d0 g F .text 000000c8 xTaskCheckForTimeOut
-000047dc g F .text 000000b0 _free_r
+000028a4 g F .text 000000c8 xTaskCheckForTimeOut
+00004fba g F .text 000000a8 _free_r
0000088c w .text 00000000 TIM3_IRQHandler
0000088c w .text 00000000 RCC_IRQHandler
00000516 g F .text 0000000c .hidden __riscv_save_3
+2000024c g O .bss 00000004 CommonTask_Handler
0000088c w .text 00000000 TIM1_TRG_COM_IRQHandler
0000088c w .text 00000000 DMA1_Channel1_IRQHandler
00000000 g .init 00000000 _start
0000088c w .text 00000000 DMA2_Channel7_IRQHandler
-00001dea g F .text 00000010 vTaskSuspendAll
+000022b4 g F .text 00000010 vTaskSuspendAll
20000000 g O .data 00000010 AHBPrescTable
-00005268 g F .text 00000010 _lseek
-00003e72 g F .text 000000c6 .hidden __floatsisf
-0000374e g F .text 0000009c Upward_Interrupt
-00001648 g F .text 00000020 uxListRemove
+000022ce g F .text 0000000a xTaskGetTickCountFromISR
+00005a2e g F .text 00000010 _lseek
+00004732 g F .text 00000014 Upward_USART_IN_TXE
+00003d60 g F .text 000000a0 Upward_Interrupt
+0000165a g F .text 00000020 uxListRemove
0000088c w .text 00000000 EXTI15_10_IRQHandler
+00004918 g F .text 0000003e strlcpy
0000119c g F .text 00000036 USART_ITConfig
-20000254 g O .bss 00000004 Task1Task_Handler
-2000023c g O .bss 00000004 g_J2_uart7_handle
-00002176 g F .text 0000009a vTaskSwitchContext
-00003070 g F .text 00000098 Upward_UART5_Init
-00002258 g F .text 00000076 vTaskPlaceOnEventListRestricted
+20000220 g O .bss 00000004 g_J2_uart7_handle
+0000264a g F .text 0000009a vTaskSwitchContext
+000037da g F .text 00000098 Upward_UART5_Init
+000042d6 g F .text 00000022 J4_485_IN_IDLE
+0000272c g F .text 00000076 vTaskPlaceOnEventListRestricted
0000088c w .text 00000000 TIM7_IRQHandler
-00005122 g F .text 00000030 _close_r
-000032f4 g F .text 00000014 FM_ADC_Init
+000058e8 g F .text 00000030 _close_r
+00003a2e g F .text 00000014 FM_ADC_Init
0000088c w .text 00000000 CAN2_TX_IRQHandler
20000000 g .dalign 00000000 _data_vma
0000088c w .text 00000000 TIM5_IRQHandler
-20003458 g O .bss 00000400 Upward_inBuff
-00004234 g F .text 000000fc __swsetup_r
-00003544 g F .text 0000002a Init_Upward_uart
+20006474 g O .bss 00000400 Upward_inBuff
+00002d8e g F .text 0000007a xTimerGenericCommand
+00004a12 g F .text 000000fc __swsetup_r
+00003af6 g F .text 0000002a Init_Upward_uart
0000088c w .text 00000000 EXTI9_5_IRQHandler
-000045e8 g F .text 000000a0 __sfp
+00004dc6 g F .text 000000a0 __sfp
000004ee g F .text 00000028 .hidden __riscv_save_10
-00005042 g F .text 0000002c __sread
+00005808 g F .text 0000002c __sread
0000088c w .text 00000000 ETH_WKUP_IRQHandler
20000020 g O .data 000000d8 uart_devices
-00005200 g F .text 00000002 __malloc_lock
+000059c6 g F .text 00000002 __malloc_lock
00000530 g F .text 00000016 .hidden __riscv_restore_4
00000526 g F .text 00000020 .hidden __riscv_restore_8
-00004460 g F .text 00000066 _fflush_r
+00004c3e g F .text 00000066 _fflush_r
000004fc g F .text 0000001a .hidden __riscv_save_6
0000088c w .text 00000000 SPI2_IRQHandler
-000055a4 g O .text 00000020 __sf_fake_stdin
-200000f8 g O .data 00000014 data
+00005c18 g O .text 00000020 __sf_fake_stdin
00000546 g F .text 000000a8 memset
00000526 g F .text 00000020 .hidden __riscv_restore_9
-00002f7a g F .text 000000f6 J5_0_485_Init
+000035be g F .text 00000104 J5_0_485_Init
00000530 g F .text 00000016 .hidden __riscv_restore_7
00000600 g F .text 00000064 main
0000088c w .text 00000000 TIM10_BRK_IRQHandler
-20000220 g O .bss 00000001 J1_Rbuffer
+20000264 g O .bss 00000004 J5_0_485_Queue
+000042f8 g F .text 00000022 J5_0_485_IN_IDLE
+20000204 g O .bss 00000001 J1_Rbuffer
0000088c w .text 00000000 TIM9_CC_IRQHandler
-0000161a g F .text 0000002e vListInsert
-000050e6 g F .text 00000006 __sclose
+0000162c g F .text 0000002e vListInsert
+000058ac g F .text 00000006 __sclose
0000088c w .text 00000000 DMA2_Channel5_IRQHandler
-00002792 g F .text 0000005e xTimerCreateTimerTask
-0000488c g F .text 000000e4 _malloc_r
+00002d30 g F .text 0000005e xTimerCreateTimerTask
+0000455a g F .text 00000174 uartQueueSend
+00005062 g F .text 000000d4 _malloc_r
00000ae2 g F .text 0000012e Get_CalibrationValue
0000088c w .text 00000000 DMA1_Channel5_IRQHandler
-0000388c g F .text 000000a2 J2_Interrupt
+00003ed0 g F .text 000000d0 J2_Interrupt
0000088c w .text 00000000 EXTI4_IRQHandler
-000017d4 g F .text 0000006a xQueueGenericCreate
+00001938 g F .text 00000070 xQueueGenericCreate
+0000376a g F .text 00000038 USART_CONNET_J8
0000088c w .text 00000000 USB_LP_CAN1_RX0_IRQHandler
-00003b80 g F .text 00000290 .hidden __mulsf3
00000aca g F .text 00000018 ADC_BufferCmd
00000664 g F .text 000000fa SystemInit
0000088c w .text 00000000 RNG_IRQHandler
-00004058 g F .text 00000040 iprintf
-00001fae g F .text 00000166 xTaskResumeAll
-2000017c g O .data 00000004 uxTopUsedPriority
+0000431a g F .text 0000001c J1_485_IN_RXNE
+000047f8 g F .text 00000040 iprintf
+20000260 g O .bss 00000004 J4_485_Queue
+00002482 g F .text 00000166 xTaskResumeAll
+20000164 g O .data 00000004 uxTopUsedPriority
0000088c w .text 00000000 USB_HP_CAN1_TX_IRQHandler
-00005484 g O .text 00000100 .hidden __clz_tab
-00001d5a g F .text 00000090 vTaskStartScheduler
+00001600 g F .text 0000000c xPortSetInterruptMask
+00002224 g F .text 00000090 vTaskStartScheduler
00000000 g .init 00000000 _sinit
-000050ec g F .text 00000036 _write_r
+000046ce g F .text 00000014 J1_485_IN_TXE
+000058b2 g F .text 00000036 _write_r
00000300 g .text 00000000 xPortStartFirstTask
0000088c w .text 00000000 DMA1_Channel3_IRQHandler
0000088c w .text 00000000 ETH_IRQHandler
-00004c62 g F .text 0000010c _printf_common
-20000184 g O .data 00000004 _impure_ptr
+00005428 g F .text 0000010c _printf_common
+20000170 g O .data 00000004 _impure_ptr
0000088c w .text 00000000 TIM1_UP_IRQHandler
-00004330 g F .text 00000130 __sflush_r
+000043d0 g F .text 00000058 common_Task
+00004b0e g F .text 00000130 __sflush_r
+000046e2 g F .text 00000014 J2_485_IN_TXE
+00004292 g F .text 00000022 J2_485_IN_IDLE
0000088c w .text 00000000 WWDG_IRQHandler
-00002a12 g F .text 00000070 ADC_DMA_Init
+0000302a g F .text 00000070 ADC_DMA_Init
0000088c w .text 00000000 USBHSWakeup_IRQHandler
0000088c w .text 00000000 DMA2_Channel11_IRQHandler
0000088c w .text 00000000 Ecall_U_Mode_Handler
-00002498 g F .text 0000000c vTaskMissedYield
+0000296c g F .text 0000000c vTaskMissedYield
+000043a6 g F .text 0000001e getRs485State
0000088c w .text 00000000 DMA2_Channel6_IRQHandler
-20000238 g O .bss 00000004 g_J1_uart6_handle
+2000021c g O .bss 00000004 g_J1_uart6_handle
0000088c w .text 00000000 TIM2_IRQHandler
20008000 g .stack 00000000 _eusrstack
-20000240 g O .bss 00000004 g_J3_usart2_handle
-00002920 g F .text 000000f2 HD_ADC_InIt
+20000224 g O .bss 00000004 g_J3_usart2_handle
+00002f38 g F .text 000000f2 HD_ADC_InIt
00000516 g F .text 0000000c .hidden __riscv_save_2
00000200 g .text 00000000 SW_Handler
-00001984 g F .text 0000006c vQueueAddToRegistry
-00001e04 g F .text 000001aa xTaskIncrementTick
+00001de8 g F .text 0000006c vQueueAddToRegistry
+000022d8 g F .text 000001aa xTaskIncrementTick
00000920 g F .text 0000003e ADC_DeInit
0000088c w .text 00000000 TIM1_BRK_IRQHandler
-000046f2 g F .text 00000058 __swhatbuf_r
+00004ed0 g F .text 00000058 __swhatbuf_r
0000095e g F .text 00000056 ADC_Init
000011d2 g F .text 00000008 USART_SendData
0000088c w .text 00000000 DMA2_Channel10_IRQHandler
0000088c w .text 00000000 EXTI1_IRQHandler
000004fc g F .text 0000001a .hidden __riscv_save_5
-00001718 g F .text 000000bc xQueueGenericReset
-0000287c g F .text 0000003e _write
-20000190 g .data 00000000 _edata
-2000385c g .bss 00000000 _end
-20000230 g O .bss 00000001 J5_0_Rbuffer
-00002a82 g F .text 00000056 startAdcCapture
-00002dd2 g F .text 000000ba J3_485_Init
+0000187c g F .text 000000bc xQueueGenericReset
+00002e94 g F .text 0000003e _write
+20000180 g .data 00000000 _edata
+0000420a g F .text 00000066 setConnectPort
+20006890 g .bss 00000000 _end
+20000214 g O .bss 00000001 J5_0_Rbuffer
+0000309a g F .text 00000056 startAdcCapture
+000033fa g F .text 000000c8 J3_485_Init
0000088c w .text 00000000 RTCAlarm_IRQHandler
-00001b56 g F .text 00000204 xTaskCreate
-000037ea g F .text 000000a2 J1_Interrupt
-00005620 g .dlalign 00000000 _data_lma
+00002020 g F .text 00000204 xTaskCreate
+00003e00 g F .text 000000d0 J1_Interrupt
+00005c94 g .dlalign 00000000 _data_lma
0000088c w .text 00000000 TIM10_UP_IRQHandler
0000088c w .text 00000000 TIM9_TRG_COM_IRQHandler
-00003230 g F .text 0000004a UART7_IRQHandler
-00003108 g F .text 0000004a USART2_IRQHandler
-000031e6 g F .text 0000004a UART6_IRQHandler
-0000506e g F .text 00000048 __swrite
-00003afc g F .text 00000042 task1_task
-000049da g F .text 00000288 _vfiprintf_r
-00004688 g F .text 0000006a _fwalk_reent
+0000399a g F .text 0000004a UART7_IRQHandler
+00003872 g F .text 0000004a USART2_IRQHandler
+00003950 g F .text 0000004a UART6_IRQHandler
+00005834 g F .text 00000048 __swrite
+000043c4 g F .text 0000000c getUartState
+000051a0 g F .text 00000288 _vfiprintf_r
+00004e66 g F .text 0000006a _fwalk_reent
0000075e g F .text 0000012e SystemCoreClockUpdate
-00002c46 g F .text 0000000c HD_GPIO_Write
-00002ad8 g F .text 0000016e HD_GPIO_Init
+000030f0 g F .text 0000016e HD_GPIO_Init
0000088c w .text 00000000 I2C2_ER_IRQHandler
-00002114 g F .text 00000062 vTaskDelay
+000025e8 g F .text 00000062 vTaskDelay
0000088c w .text 00000000 DMA1_Channel2_IRQHandler
-000055c4 g O .text 00000020 __sf_fake_stdout
+00005c38 g O .text 00000020 __sf_fake_stdout
00000522 g F .text 00000024 .hidden __riscv_restore_12
0000088c w .text 00000000 TIM8_BRK_IRQHandler
-000024a4 g F .text 0000001c xTaskGetSchedulerState
-00005278 g F .text 00000010 _read
+000037a2 g F .text 00000038 USART_CONNET_J9
+00002978 g F .text 0000001c xTaskGetSchedulerState
+00005a3e g F .text 00000010 _read
0000088e w .text 00000000 handle_reset
0000088c w .text 00000000 CAN1_SCE_IRQHandler
-0000392e g F .text 0000009a J4_Interrupt
-20000228 g O .bss 00000001 J3_Rbuffer
+00003fa0 g F .text 000000c0 J4_Interrupt
+2000020c g O .bss 00000001 J3_Rbuffer
00000516 g F .text 0000000c .hidden __riscv_save_0
0000088c w .text 00000000 FLASH_IRQHandler
+0000470a g F .text 00000014 J4_485_IN_TXE
0000088c w .text 00000000 USART1_IRQHandler
-0000474a g F .text 00000092 __smakebuf_r
+00004f28 g F .text 00000092 __smakebuf_r
00000400 g .text 00000000 pxPortInitialiseStack
-00004d6e g F .text 000002a2 _printf_i
+00005534 g F .text 000002a2 _printf_i
0000088c w .text 00000000 SPI3_IRQHandler
-2000025c g O .bss 00000004 __malloc_sbrk_start
+00001ec0 g F .text 0000002e xQueueAddToSet
+20000278 g O .bss 00000004 __malloc_sbrk_start
000010da g F .text 0000001e RCC_APB2PeriphResetCmd
-00003608 g F .text 000000a2 J3_Interrupt
+00003bba g F .text 000000d2 J3_Interrupt
0000088c w .text 00000000 I2C1_ER_IRQHandler
00000e9c g F .text 0000000a NVIC_PriorityGroupConfig
000015a8 g F .text 00000016 vPortEnterCritical
+0000438a g F .text 0000001c J5_0_485_IN_RXNE
00000c1a g F .text 0000016c DMA_DeInit
-20000258 g O .bss 00000004 __malloc_free_list
+2000026c g O .bss 00000004 upward_uart_Queue
+20000274 g O .bss 00000004 __malloc_free_list
0000053a g F .text 0000000c .hidden __riscv_restore_1
-000036aa g F .text 000000a4 J5_0_Interrupt
-000049da g F .text 00000288 _vfprintf_r
-00003308 g F .text 00000032 proportionalInt
-00002e8c g F .text 000000b6 J4_485_Init
-2000020c g O .bss 00000006 adcData
+00003c8c g F .text 000000d4 J5_0_Interrupt
+20000250 g O .bss 00000004 TransmitTask_Handler
+000051a0 g F .text 00000288 _vfprintf_r
+000034c2 g F .text 000000c4 J4_485_Init
+000046f6 g F .text 00000014 J3_485_IN_TXE
+200001fc g O .bss 00000006 adcData
0000088c w .text 00000000 USBWakeUp_IRQHandler
-0000333a g F .text 00000022 getSOCPwrOnVoltage
-00005238 g F .text 00000010 _close
+2000025c g O .bss 00000004 J3_485_Queue
+000059fe g F .text 00000010 _close
0000088c w .text 00000000 DMA2_Channel3_IRQHandler
-2000022c g O .bss 00000001 J4_Rbuffer
+20000210 g O .bss 00000001 J4_Rbuffer
@@ -636,9 +679,9 @@ Disassembly of section .vector:
d6: 0000 unimp
d8: 088c addi a1,sp,80
da: 0000 unimp
- dc: 3108 lbu a0,1(a0)
+ dc: 3872 lhu a2,54(s0)
de: 0000 unimp
- e0: 3152 lhu a2,36(a0)
+ e0: 38bc lbu a5,19(s1)
e2: 0000 unimp
e4: 088c addi a1,sp,80
e6: 0000 unimp
@@ -666,7 +709,7 @@ Disassembly of section .vector:
112: 0000 unimp
114: 088c addi a1,sp,80
116: 0000 unimp
- 118: 319c lbu a5,1(a1)
+ 118: 3906 lhu s1,48(a0)
11a: 0000 unimp
11c: 088c addi a1,sp,80
11e: 0000 unimp
@@ -702,11 +745,11 @@ Disassembly of section .vector:
15a: 0000 unimp
15c: 088c addi a1,sp,80
15e: 0000 unimp
- 160: 31e6 lhu s1,38(a1)
+ 160: 3950 lbu a2,21(a0)
162: 0000 unimp
- 164: 3230 lbu a2,3(a2)
+ 164: 399a lhu a4,48(a1)
166: 0000 unimp
- 168: 327a lhu a4,38(a2)
+ 168: 39e4 lbu s1,23(a1)
16a: 0000 unimp
16c: 088c addi a1,sp,80
16e: 0000 unimp
@@ -772,18 +815,18 @@ Disassembly of section .text:
23c: 300022f3 csrr t0,mstatus
240: da96 sw t0,116(sp)
242: 20000297 auipc t0,0x20000
- 246: f722a283 lw t0,-142(t0) # 200001b4
+ 246: f622a283 lw t0,-158(t0) # 200001a4
24a: 0022a023 sw sp,0(t0)
24e: 341025f3 csrr a1,mepc
252: c02e sw a1,0(sp)
254: 02000593 li a1,32
258: 8045a073 csrs 0x804,a1
- 25c: 8181a103 lw sp,-2024(gp) # 20000188
- 260: 717010ef jal ra,2176
+ 25c: 81c1a103 lw sp,-2020(gp) # 20000174
+ 260: 3ea020ef jal ra,264a
00000264 :
264: 20000317 auipc t1,0x20000
- 268: f5032303 lw t1,-176(t1) # 200001b4
+ 268: f4032303 lw t1,-192(t1) # 200001a4
26c: 00032103 lw sp,0(t1)
270: 4282 lw t0,0(sp)
272: 34129073 csrw mepc,t0
@@ -838,11 +881,11 @@ Disassembly of section .text:
2fc: 00000013 nop
00000300 :
- 300: 8181a283 lw t0,-2024(gp) # 20000188
+ 300: 81c1a283 lw t0,-2020(gp) # 20000174
304: e0028293 addi t0,t0,-512
308: 34029073 csrw mscratch,t0
30c: 20000117 auipc sp,0x20000
- 310: ea812103 lw sp,-344(sp) # 200001b4
+ 310: e9812103 lw sp,-360(sp) # 200001a4
314: 4102 lw sp,0(sp)
316: 4082 lw ra,0(sp)
318: 4332 lw t1,12(sp)
@@ -1079,29 +1122,29 @@ Disassembly of section .text:
604: 4509 li a0,2
606: 097000ef jal ra,e9c
60a: 2a91 jal 75e
- 60c: 1e4020ef jal ra,27f0
+ 60c: 7fc020ef jal ra,2e08
610: 6571 lui a0,0x1c
- 612: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0x16be0>
- 616: 20c020ef jal ra,2822
+ 612: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0x1656c>
+ 616: 025020ef jal ra,2e3a
61a: 200007b7 lui a5,0x20000
- 61e: 1707a583 lw a1,368(a5) # 20000170
- 622: 00005537 lui a0,0x5
- 626: 28850513 addi a0,a0,648 # 5288 <_read+0x10>
- 62a: 22f030ef jal ra,4058
+ 61e: 1587a583 lw a1,344(a5) # 20000158
+ 622: 00006537 lui a0,0x6
+ 626: a5050513 addi a0,a0,-1456 # 5a50 <_read+0x12>
+ 62a: 1ce040ef jal ra,47f8
62e: 23cd jal c10
630: 85aa mv a1,a0
- 632: 00005537 lui a0,0x5
- 636: 29850513 addi a0,a0,664 # 5298 <_read+0x20>
- 63a: 21f030ef jal ra,4058
- 63e: 000055b7 lui a1,0x5
- 642: 00005537 lui a0,0x5
- 646: 2a858593 addi a1,a1,680 # 52a8 <_read+0x30>
- 64a: 2b050513 addi a0,a0,688 # 52b0 <_read+0x38>
- 64e: 20b030ef jal ra,4058
- 652: 4ec030ef jal ra,3b3e
- 656: 00005437 lui s0,0x5
- 65a: 2d040513 addi a0,s0,720 # 52d0 <_read+0x58>
- 65e: 30f030ef jal ra,416c
+ 632: 00006537 lui a0,0x6
+ 636: a6050513 addi a0,a0,-1440 # 5a60 <_read+0x22>
+ 63a: 1be040ef jal ra,47f8
+ 63e: 000065b7 lui a1,0x6
+ 642: 00006537 lui a0,0x6
+ 646: a7058593 addi a1,a1,-1424 # 5a70 <_read+0x32>
+ 64a: a7850513 addi a0,a0,-1416 # 5a78 <_read+0x3a>
+ 64e: 1aa040ef jal ra,47f8
+ 652: 5e5030ef jal ra,4436
+ 656: 00006437 lui s0,0x6
+ 65a: a9840513 addi a0,s0,-1384 # 5a98 <_read+0x5a>
+ 65e: 2ae040ef jal ra,490c
662: bfe5 j 65a
00000664 :
@@ -1211,12 +1254,12 @@ Disassembly of section .text:
764: 200007b7 lui a5,0x20000
768: 4611 li a2,4
76a: 8b31 andi a4,a4,12
- 76c: 17078793 addi a5,a5,368 # 20000170
+ 76c: 15878793 addi a5,a5,344 # 20000158
770: 00c70563 beq a4,a2,77a
774: 4621 li a2,8
776: 02c70863 beq a4,a2,7a6
77a: 007a1737 lui a4,0x7a1
- 77e: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 77e: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
782: c398 sw a4,0(a5)
784: 40021737 lui a4,0x40021
788: 4358 lw a4,4(a4)
@@ -1252,7 +1295,7 @@ Disassembly of section .text:
7d8: 8b41 andi a4,a4,16
7da: c70d beqz a4,804 <__stack_size+0x4>
7dc: 007a1737 lui a4,0x7a1
- 7e0: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 7e0: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
7e4: 02c70633 mul a2,a4,a2
7e8: c390 sw a2,0(a5)
7ea: ddc9 beqz a1,784
@@ -1269,7 +1312,7 @@ Disassembly of section .text:
800: 463d li a2,15
802: b7f1 j 7ce
804: 003d1737 lui a4,0x3d1
- 808: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cb2e0>
+ 808: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cac6c>
80c: bfe1 j 7e4
80e: 40021537 lui a0,0x40021
812: 5558 lw a4,44(a0)
@@ -1280,7 +1323,7 @@ Disassembly of section .text:
820: 8b3d andi a4,a4,15
822: 00170693 addi a3,a4,1
826: 007a1737 lui a4,0x7a1
- 82a: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 82a: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
82e: 02d75733 divu a4,a4,a3
832: c398 sw a4,0(a5)
834: 5554 lw a3,44(a0)
@@ -1314,7 +1357,7 @@ Disassembly of section .text:
878: 8b3d andi a4,a4,15
87a: 00170693 addi a3,a4,1 # 40021001 <__freertos_irq_stack_top+0x20019001>
87e: 007a1737 lui a4,0x7a1
- 882: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 882: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
886: 02d75733 divu a4,a4,a3
88a: b7f1 j 856 <__stack_size+0x56>
@@ -1323,14 +1366,14 @@ Disassembly of section .text:
0000088e :
88e: 20000197 auipc gp,0x20000
- 892: 0e218193 addi gp,gp,226 # 20000970 <__global_pointer$>
+ 892: 0ca18193 addi gp,gp,202 # 20000958 <__global_pointer$>
896: 20007117 auipc sp,0x20007
89a: 76a10113 addi sp,sp,1898 # 20008000 <__freertos_irq_stack_top>
89e: 00005517 auipc a0,0x5
- 8a2: d8250513 addi a0,a0,-638 # 5620 <_data_lma>
+ 8a2: 3f650513 addi a0,a0,1014 # 5c94 <_data_lma>
8a6: 1ffff597 auipc a1,0x1ffff
8aa: 75a58593 addi a1,a1,1882 # 20000000 <_data_vma>
- 8ae: 82018613 addi a2,gp,-2016 # 20000190 <_edata>
+ 8ae: 82818613 addi a2,gp,-2008 # 20000180 <_edata>
8b2: 00c5fa63 bgeu a1,a2,8c6
8b6: 00052283 lw t0,0(a0)
8ba: 0055a023 sw t0,0(a1)
@@ -1338,9 +1381,9 @@ Disassembly of section .text:
8c0: 0591 addi a1,a1,4
8c2: fec5eae3 bltu a1,a2,8b6
8c6: 20000517 auipc a0,0x20000
- 8ca: 8ca50513 addi a0,a0,-1846 # 20000190 <_edata>
- 8ce: 20003597 auipc a1,0x20003
- 8d2: f8e58593 addi a1,a1,-114 # 2000385c <_ebss>
+ 8ca: 8ba50513 addi a0,a0,-1862 # 20000180 <_edata>
+ 8ce: 20006597 auipc a1,0x20006
+ 8d2: fc258593 addi a1,a1,-62 # 20006890 <_ebss>
8d6: 00b57763 bgeu a0,a1,8e4
8da: 00052023 sw zero,0(a0)
8de: 0511 addi a0,a0,4
@@ -1350,7 +1393,7 @@ Disassembly of section .text:
8ea: 42fd li t0,31
8ec: 80429073 csrw 0x804,t0
8f0: 000082b7 lui t0,0x8
- 8f4: 80028293 addi t0,t0,-2048 # 7800 <_data_lma+0x21e0>
+ 8f4: 80028293 addi t0,t0,-2048 # 7800 <_data_lma+0x1b6c>
8f8: 30029073 csrw mstatus,t0
8fc: fffff297 auipc t0,0xfffff
900: 70828293 addi t0,t0,1800 # 4 <_einit>
@@ -1680,7 +1723,7 @@ Disassembly of section .text:
00000c10 :
c10: 1ffff7b7 lui a5,0x1ffff
- c14: 7047a503 lw a0,1796(a5) # 1ffff704 <_data_lma+0x1fffa0e4>
+ c14: 7047a503 lw a0,1796(a5) # 1ffff704 <_data_lma+0x1fff9a70>
c18: 8082 ret
00000c1a :
@@ -1909,12 +1952,12 @@ Disassembly of section .text:
00000e9c :
e9c: 200007b7 lui a5,0x20000
- ea0: 18a7a823 sw a0,400(a5) # 20000190 <_edata>
+ ea0: 18a7a023 sw a0,384(a5) # 20000180 <_edata>
ea4: 8082 ret
00000ea6 :
ea6: 200007b7 lui a5,0x20000
- eaa: 1907a703 lw a4,400(a5) # 20000190 <_edata>
+ eaa: 1807a703 lw a4,384(a5) # 20000180 <_edata>
eae: 4789 li a5,2
eb0: 2110 lbu a2,0(a0)
eb2: 02f71163 bne a4,a5,ed4
@@ -1962,7 +2005,7 @@ Disassembly of section .text:
f18: 46a1 li a3,8
f1a: 06d78263 beq a5,a3,f7e
f1e: 007a17b7 lui a5,0x7a1
- f22: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79bbe0>
+ f22: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79b56c>
f26: c11c sw a5,0(a0)
f28: 40021637 lui a2,0x40021
f2c: 425c lw a5,4(a2)
@@ -1992,7 +2035,7 @@ Disassembly of section .text:
f66: 4258 lw a4,4(a2)
f68: 8339 srli a4,a4,0xe
f6a: 00377693 andi a3,a4,3
- f6e: 80418713 addi a4,gp,-2044 # 20000174
+ f6e: 80418713 addi a4,gp,-2044 # 2000015c
f72: 9736 add a4,a4,a3
f74: 2318 lbu a4,0(a4)
f76: 02e7d7b3 divu a5,a5,a4
@@ -2004,7 +2047,7 @@ Disassembly of section .text:
f84: 83c9 srli a5,a5,0x12
f86: 8f75 and a4,a4,a3
f88: 1ffff6b7 lui a3,0x1ffff
- f8c: 70c6a683 lw a3,1804(a3) # 1ffff70c <_data_lma+0x1fffa0ec>
+ f8c: 70c6a683 lw a3,1804(a3) # 1ffff70c <_data_lma+0x1fff9a78>
f90: 8bbd andi a5,a5,15
f92: 0789 addi a5,a5,2
f94: 01169613 slli a2,a3,0x11
@@ -2030,7 +2073,7 @@ Disassembly of section .text:
fce: 8b41 andi a4,a4,16
fd0: c705 beqz a4,ff8
fd2: 007a1737 lui a4,0x7a1
- fd6: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ fd6: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
fda: 02f707b3 mul a5,a4,a5
fde: c11c sw a5,0(a0)
fe0: d621 beqz a2,f28
@@ -2046,7 +2089,7 @@ Disassembly of section .text:
ff4: 47bd li a5,15
ff6: b7f9 j fc4
ff8: 003d1737 lui a4,0x3d1
- ffc: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cb2e0>
+ ffc: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cac6c>
1000: bfe9 j fda
1002: 400215b7 lui a1,0x40021
1006: 55d8 lw a4,44(a1)
@@ -2057,7 +2100,7 @@ Disassembly of section .text:
1014: 8b3d andi a4,a4,15
1016: 00170693 addi a3,a4,1
101a: 007a1737 lui a4,0x7a1
- 101e: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 101e: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
1022: 02d75733 divu a4,a4,a3
1026: c118 sw a4,0(a0)
1028: 55d4 lw a3,44(a1)
@@ -2091,7 +2134,7 @@ Disassembly of section .text:
106c: 8b3d andi a4,a4,15
106e: 00170693 addi a3,a4,1 # 40021001 <__freertos_irq_stack_top+0x20019001>
1072: 007a1737 lui a4,0x7a1
- 1076: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79bbe0>
+ 1076: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b56c>
107a: 02d75733 divu a4,a4,a3
107e: b7f1 j 104a
@@ -2288,7 +2331,7 @@ Disassembly of section .text:
00001228 :
1228: 200007b7 lui a5,0x20000
- 122c: 1ac78793 addi a5,a5,428 # 200001ac
+ 122c: 19c78793 addi a5,a5,412 # 2000019c
1230: 4398 lw a4,0(a5)
1232: 02a76f63 bltu a4,a0,1270
1236: 43d0 lw a2,4(a5)
@@ -2302,7 +2345,7 @@ Disassembly of section .text:
124a: 00c506b3 add a3,a0,a2
124e: 00d71c63 bne a4,a3,1266
1252: 200006b7 lui a3,0x20000
- 1256: 1946a683 lw a3,404(a3) # 20000194
+ 1256: 1846a683 lw a3,388(a3) # 20000184
125a: 00d70663 beq a4,a3,1266
125e: 4354 lw a3,4(a4)
1260: 4318 lw a4,0(a4)
@@ -2319,26 +2362,26 @@ Disassembly of section .text:
1274: a88ff2ef jal t0,4fc <__riscv_save_4>
1278: 1141 addi sp,sp,-16
127a: c62a sw a0,12(sp)
- 127c: 36f000ef jal ra,1dea
+ 127c: 038010ef jal ra,22b4
1280: 200006b7 lui a3,0x20000
- 1284: 1946a783 lw a5,404(a3) # 20000194
+ 1284: 1846a783 lw a5,388(a3) # 20000184
1288: 20000637 lui a2,0x20000
- 128c: 19468693 addi a3,a3,404
- 1290: 19860613 addi a2,a2,408 # 20000198
+ 128c: 18468693 addi a3,a3,388
+ 1290: 18860613 addi a2,a2,392 # 20000188
1294: 4532 lw a0,12(sp)
1296: efa1 bnez a5,12ee
1298: 20000737 lui a4,0x20000
- 129c: 26070793 addi a5,a4,608 # 20000260
+ 129c: 27c70793 addi a5,a4,636 # 2000027c
12a0: 00f7f593 andi a1,a5,15
- 12a4: 26070713 addi a4,a4,608
+ 12a4: 27c70713 addi a4,a4,636
12a8: c581 beqz a1,12b0
12aa: 00f78713 addi a4,a5,15
12ae: 9b41 andi a4,a4,-16
12b0: 200005b7 lui a1,0x20000
- 12b4: 1ac58593 addi a1,a1,428 # 200001ac
+ 12b4: 19c58593 addi a1,a1,412 # 2000019c
12b8: 0005a223 sw zero,4(a1)
12bc: c198 sw a4,0(a1)
- 12be: 658d lui a1,0x3
+ 12be: 6599 lui a1,0x6
12c0: 15c1 addi a1,a1,-16
12c2: 97ae add a5,a5,a1
12c4: 9bc1 andi a5,a5,-16
@@ -2348,9 +2391,9 @@ Disassembly of section .text:
12d2: c29c sw a5,0(a3)
12d4: c31c sw a5,0(a4)
12d6: 200007b7 lui a5,0x20000
- 12da: 1ab7a023 sw a1,416(a5) # 200001a0
+ 12da: 18b7a823 sw a1,400(a5) # 20000190
12de: 200007b7 lui a5,0x20000
- 12e2: 18b7ae23 sw a1,412(a5) # 2000019c
+ 12e2: 18b7a623 sw a1,396(a5) # 2000018c
12e6: 800007b7 lui a5,0x80000
12ea: c34c sw a1,4(a4)
12ec: c21c sw a5,0(a2)
@@ -2376,7 +2419,7 @@ Disassembly of section .text:
1324: 3711 jal 1228
1326: 4058 lw a4,4(s0)
1328: 200006b7 lui a3,0x20000
- 132c: 1a068693 addi a3,a3,416 # 200001a0
+ 132c: 19068693 addi a3,a3,400 # 20000190
1330: 4290 lw a2,0(a3)
1332: 40e907b3 sub a5,s2,a4
1336: 00f9a023 sw a5,0(s3)
@@ -2384,34 +2427,34 @@ Disassembly of section .text:
133e: c29c sw a5,0(a3)
1340: 200007b7 lui a5,0x20000
1344: 00ea6733 or a4,s4,a4
- 1348: 1a478793 addi a5,a5,420 # 200001a4
+ 1348: 19478793 addi a5,a5,404 # 20000194
134c: c058 sw a4,4(s0)
134e: 4398 lw a4,0(a5)
1350: 04c1 addi s1,s1,16
1352: 00042023 sw zero,0(s0)
1356: 0705 addi a4,a4,1
1358: c398 sw a4,0(a5)
- 135a: 455000ef jal ra,1fae
+ 135a: 128010ef jal ra,2482
135e: 00f4f793 andi a5,s1,15
1362: cbd1 beqz a5,13f6
1364: 67a1 lui a5,0x8
- 1366: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 1366: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
136a: 30079073 csrw mstatus,a5
- 136e: 00005637 lui a2,0x5
- 1372: 00005537 lui a0,0x5
- 1376: 2e860613 addi a2,a2,744 # 52e8 <_read+0x70>
+ 136e: 00006637 lui a2,0x6
+ 1372: 00006537 lui a0,0x6
+ 1376: ab060613 addi a2,a2,-1360 # 5ab0 <_read+0x72>
137a: 11000593 li a1,272
- 137e: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 1382: 4d7020ef jal ra,4058
+ 137e: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1382: 476030ef jal ra,47f8
1386: a001 j 1386
1388: 87ba mv a5,a4
138a: 20000737 lui a4,0x20000
- 138e: 19c72903 lw s2,412(a4) # 2000019c
- 1392: 19c70993 addi s3,a4,412
+ 138e: 18c72903 lw s2,396(a4) # 2000018c
+ 1392: 18c70993 addi s3,a4,396
1396: f8f960e3 bltu s2,a5,1316
139a: 20000737 lui a4,0x20000
- 139e: 1ac72403 lw s0,428(a4) # 200001ac
- 13a2: 1ac70713 addi a4,a4,428
+ 139e: 19c72403 lw s0,412(a4) # 2000019c
+ 13a2: 19c70713 addi a4,a4,412
13a6: 4050 lw a2,4(s0)
13a8: 00f67463 bgeu a2,a5,13b0
13ac: 400c lw a1,0(s0)
@@ -2428,14 +2471,14 @@ Disassembly of section .text:
13cc: 00f57693 andi a3,a0,15
13d0: daa1 beqz a3,1320
13d2: 67a1 lui a5,0x8
- 13d4: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 13d4: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
13d8: 30079073 csrw mstatus,a5
- 13dc: 00005637 lui a2,0x5
- 13e0: 00005537 lui a0,0x5
- 13e4: 2e860613 addi a2,a2,744 # 52e8 <_read+0x70>
+ 13dc: 00006637 lui a2,0x6
+ 13e0: 00006537 lui a0,0x6
+ 13e4: ab060613 addi a2,a2,-1360 # 5ab0 <_read+0x72>
13e8: 0cf00593 li a1,207
- 13ec: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 13f0: 469020ef jal ra,4058
+ 13ec: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 13f0: 408030ef jal ra,47f8
13f4: a001 j 13f4
13f6: 8526 mv a0,s1
13f8: 0141 addi sp,sp,16
@@ -2446,38 +2489,38 @@ Disassembly of section .text:
1400: 916ff2ef jal t0,516 <__riscv_save_0>
1404: 200007b7 lui a5,0x20000
1408: ff452703 lw a4,-12(a0)
- 140c: 1987a783 lw a5,408(a5) # 20000198
+ 140c: 1887a783 lw a5,392(a5) # 20000188
1410: 842a mv s0,a0
1412: 00f776b3 and a3,a4,a5
1416: e29d bnez a3,143c
1418: 67a1 lui a5,0x8
- 141a: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 141a: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
141e: 30079073 csrw mstatus,a5
- 1422: 00005637 lui a2,0x5
- 1426: 00005537 lui a0,0x5
- 142a: 2e860613 addi a2,a2,744 # 52e8 <_read+0x70>
+ 1422: 00006637 lui a2,0x6
+ 1426: 00006537 lui a0,0x6
+ 142a: ab060613 addi a2,a2,-1360 # 5ab0 <_read+0x72>
142e: 12400593 li a1,292
- 1432: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 1436: 423020ef jal ra,4058
+ 1432: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1436: 3c2030ef jal ra,47f8
143a: a001 j 143a
143c: ff052683 lw a3,-16(a0)
1440: c29d beqz a3,1466
1442: 67a1 lui a5,0x8
- 1444: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 1444: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
1448: 30079073 csrw mstatus,a5
- 144c: 00005637 lui a2,0x5
- 1450: 00005537 lui a0,0x5
- 1454: 2e860613 addi a2,a2,744 # 52e8 <_read+0x70>
+ 144c: 00006637 lui a2,0x6
+ 1450: 00006537 lui a0,0x6
+ 1454: ab060613 addi a2,a2,-1360 # 5ab0 <_read+0x72>
1458: 12500593 li a1,293
- 145c: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 1460: 3f9020ef jal ra,4058
+ 145c: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1460: 398030ef jal ra,47f8
1464: a001 j 1464
1466: fff7c793 not a5,a5
146a: 8ff9 and a5,a5,a4
146c: fef52a23 sw a5,-12(a0)
- 1470: 17b000ef jal ra,1dea
+ 1470: 645000ef jal ra,22b4
1474: 200007b7 lui a5,0x20000
- 1478: 19c78793 addi a5,a5,412 # 2000019c
+ 1478: 18c78793 addi a5,a5,396 # 2000018c
147c: 4394 lw a3,0(a5)
147e: ff442703 lw a4,-12(s0)
1482: ff040513 addi a0,s0,-16
@@ -2485,11 +2528,11 @@ Disassembly of section .text:
1488: c398 sw a4,0(a5)
148a: 3b79 jal 1228
148c: 200007b7 lui a5,0x20000
- 1490: 1a878793 addi a5,a5,424 # 200001a8
+ 1490: 19878793 addi a5,a5,408 # 20000198
1494: 4398 lw a4,0(a5)
1496: 0705 addi a4,a4,1
1498: c398 sw a4,0(a5)
- 149a: 315000ef jal ra,1fae
+ 149a: 7e9000ef jal ra,2482
149e: 89cff06f j 53a <__riscv_restore_0>
14a2: 8082 ret
@@ -2506,7 +2549,7 @@ Disassembly of section .text:
14c2: 4701 li a4,0
14c4: c7d8 sw a4,12(a5)
14c6: 20000737 lui a4,0x20000
- 14ca: 17072583 lw a1,368(a4) # 20000170
+ 14ca: 15872583 lw a1,344(a4) # 20000158
14ce: 1f400713 li a4,500
14d2: 4681 li a3,0
14d4: 02e5d633 divu a2,a1,a4
@@ -2527,28 +2570,28 @@ Disassembly of section .text:
14f4: 8b8d andi a5,a5,3
14f6: 02e78463 beq a5,a4,151e
14fa: 67a1 lui a5,0x8
- 14fc: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 14fc: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
1500: 30079073 csrw mstatus,a5
- 1504: 00005637 lui a2,0x5
- 1508: 00005537 lui a0,0x5
- 150c: 33460613 addi a2,a2,820 # 5334 <_read+0xbc>
+ 1504: 00006637 lui a2,0x6
+ 1508: 00006537 lui a0,0x6
+ 150c: afc60613 addi a2,a2,-1284 # 5afc <_read+0xbe>
1510: 0b600593 li a1,182
- 1514: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 1518: 341020ef jal ra,4058
+ 1514: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1518: 2e0030ef jal ra,47f8
151c: a001 j 151c
151e: 200087b7 lui a5,0x20008
1522: 00078793 mv a5,a5
1526: 8bbd andi a5,a5,15
1528: c39d beqz a5,154e
152a: 67a1 lui a5,0x8
- 152c: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 152c: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
1530: 30079073 csrw mstatus,a5
- 1534: 00005637 lui a2,0x5
- 1538: 00005537 lui a0,0x5
- 153c: 33460613 addi a2,a2,820 # 5334 <_read+0xbc>
+ 1534: 00006637 lui a2,0x6
+ 1538: 00006537 lui a0,0x6
+ 153c: afc60613 addi a2,a2,-1284 # 5afc <_read+0xbe>
1540: 0bb00593 li a1,187
- 1544: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 1548: 311020ef jal ra,4058
+ 1544: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1548: 2b0030ef jal ra,47f8
154c: a001 j 154c
154e: 3f99 jal 14a4
1550: e000e7b7 lui a5,0xe000e
@@ -2556,7 +2599,7 @@ Disassembly of section .text:
1556: 10e7a023 sw a4,256(a5) # e000e100 <__freertos_irq_stack_top+0xc0006100>
155a: 6711 lui a4,0x4
155c: 10e7a023 sw a4,256(a5)
- 1560: 8001a423 sw zero,-2040(gp) # 20000178
+ 1560: 8001a423 sw zero,-2040(gp) # 20000160
1564: d9dfe0ef jal ra,300
1568: 4501 li a0,0
156a: 0141 addi sp,sp,16
@@ -2565,6018 +2608,6656 @@ Disassembly of section .text:
00001570 :
1570: 34011173 csrrw sp,mscratch,sp
1574: 67a1 lui a5,0x8
- 1576: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 1576: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
157a: 30079073 csrw mstatus,a5
157e: e000f7b7 lui a5,0xe000f
1582: 0007a223 sw zero,4(a5) # e000f004 <__freertos_irq_stack_top+0xc0007004>
- 1586: 07f000ef jal ra,1e04
+ 1586: 553000ef jal ra,22d8
158a: c511 beqz a0,1596
158c: e000e7b7 lui a5,0xe000e
1590: 6711 lui a4,0x4
1592: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xc0006200>
1596: 67a1 lui a5,0x8
- 1598: 88878793 addi a5,a5,-1912 # 7888 <_data_lma+0x2268>
+ 1598: 88878793 addi a5,a5,-1912 # 7888 <_data_lma+0x1bf4>
159c: 30079073 csrw mstatus,a5
15a0: 34011173 csrrw sp,mscratch,sp
15a4: 30200073 mret
000015a8 :
15a8: 67a1 lui a5,0x8
- 15aa: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 15aa: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
15ae: 30079073 csrw mstatus,a5
- 15b2: 80818793 addi a5,gp,-2040 # 20000178
+ 15b2: 80818793 addi a5,gp,-2040 # 20000160
15b6: 4398 lw a4,0(a5)
15b8: 0705 addi a4,a4,1
15ba: c398 sw a4,0(a5)
15bc: 8082 ret
000015be :
- 15be: 80818713 addi a4,gp,-2040 # 20000178
+ 15be: 80818713 addi a4,gp,-2040 # 20000160
15c2: 431c lw a5,0(a4)
15c4: e78d bnez a5,15ee
15c6: f51fe2ef jal t0,516 <__riscv_save_0>
15ca: 67a1 lui a5,0x8
- 15cc: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
+ 15cc: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
15d0: 30079073 csrw mstatus,a5
- 15d4: 00005637 lui a2,0x5
- 15d8: 00005537 lui a0,0x5
- 15dc: 33460613 addi a2,a2,820 # 5334 <_read+0xbc>
+ 15d4: 00006637 lui a2,0x6
+ 15d8: 00006537 lui a0,0x6
+ 15dc: afc60613 addi a2,a2,-1284 # 5afc <_read+0xbe>
15e0: 10200593 li a1,258
- 15e4: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 15e8: 271020ef jal ra,4058
+ 15e4: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 15e8: 210030ef jal ra,47f8
15ec: a001 j 15ec
15ee: 17fd addi a5,a5,-1
15f0: c31c sw a5,0(a4)
15f2: e791 bnez a5,15fe
15f4: 67a1 lui a5,0x8
- 15f6: 88878793 addi a5,a5,-1912 # 7888 <_data_lma+0x2268>
+ 15f6: 88878793 addi a5,a5,-1912 # 7888 <_data_lma+0x1bf4>
15fa: 30079073 csrw mstatus,a5
15fe: 8082 ret
-00001600 :
- 1600: 00850793 addi a5,a0,8
- 1604: 577d li a4,-1
- 1606: c15c sw a5,4(a0)
- 1608: c518 sw a4,8(a0)
- 160a: c55c sw a5,12(a0)
- 160c: c91c sw a5,16(a0)
- 160e: 00052023 sw zero,0(a0)
- 1612: 8082 ret
+00001600 :
+ 1600: 6521 lui a0,0x8
+ 1602: 80050513 addi a0,a0,-2048 # 7800 <_data_lma+0x1b6c>
+ 1606: 30051573 csrrw a0,mstatus,a0
+ 160a: 8082 ret
-00001614 :
- 1614: 00052823 sw zero,16(a0)
- 1618: 8082 ret
+0000160c :
+ 160c: 30051073 csrw mstatus,a0
+ 1610: 8082 ret
-0000161a :
- 161a: 4198 lw a4,0(a1)
- 161c: 56fd li a3,-1
- 161e: 00850793 addi a5,a0,8
- 1622: 00d71e63 bne a4,a3,163e
- 1626: 491c lw a5,16(a0)
- 1628: 43d8 lw a4,4(a5)
- 162a: c1d8 sw a4,4(a1)
- 162c: c70c sw a1,8(a4)
- 162e: c59c sw a5,8(a1)
- 1630: c3cc sw a1,4(a5)
- 1632: 411c lw a5,0(a0)
- 1634: c988 sw a0,16(a1)
- 1636: 0785 addi a5,a5,1
- 1638: c11c sw a5,0(a0)
- 163a: 8082 ret
- 163c: 87b6 mv a5,a3
- 163e: 43d4 lw a3,4(a5)
- 1640: 4290 lw a2,0(a3)
- 1642: fec77de3 bgeu a4,a2,163c
- 1646: b7cd j 1628
+00001612 :
+ 1612: 00850793 addi a5,a0,8
+ 1616: 577d li a4,-1
+ 1618: c15c sw a5,4(a0)
+ 161a: c518 sw a4,8(a0)
+ 161c: c55c sw a5,12(a0)
+ 161e: c91c sw a5,16(a0)
+ 1620: 00052023 sw zero,0(a0)
+ 1624: 8082 ret
-00001648 :
- 1648: 4154 lw a3,4(a0)
- 164a: 4518 lw a4,8(a0)
- 164c: 491c lw a5,16(a0)
- 164e: c698 sw a4,8(a3)
- 1650: c354 sw a3,4(a4)
- 1652: 43d4 lw a3,4(a5)
- 1654: 00a69363 bne a3,a0,165a
- 1658: c3d8 sw a4,4(a5)
- 165a: 4398 lw a4,0(a5)
- 165c: 00052823 sw zero,16(a0)
- 1660: 177d addi a4,a4,-1
- 1662: c398 sw a4,0(a5)
- 1664: 4388 lw a0,0(a5)
- 1666: 8082 ret
+00001626 :
+ 1626: 00052823 sw zero,16(a0)
+ 162a: 8082 ret
-00001668 :
- 1668: eaffe2ef jal t0,516 <__riscv_save_0>
- 166c: 1141 addi sp,sp,-16
- 166e: c62a sw a0,12(sp)
- 1670: 3f25 jal 15a8
- 1672: 4532 lw a0,12(sp)
- 1674: 5d00 lw s0,56(a0)
- 1676: 37a1 jal 15be
- 1678: 00143513 seqz a0,s0
- 167c: 0141 addi sp,sp,16
- 167e: ebdfe06f j 53a <__riscv_restore_0>
+0000162c :
+ 162c: 4198 lw a4,0(a1)
+ 162e: 56fd li a3,-1
+ 1630: 00850793 addi a5,a0,8
+ 1634: 00d71e63 bne a4,a3,1650
+ 1638: 491c lw a5,16(a0)
+ 163a: 43d8 lw a4,4(a5)
+ 163c: c1d8 sw a4,4(a1)
+ 163e: c70c sw a1,8(a4)
+ 1640: c59c sw a5,8(a1)
+ 1642: c3cc sw a1,4(a5)
+ 1644: 411c lw a5,0(a0)
+ 1646: c988 sw a0,16(a1)
+ 1648: 0785 addi a5,a5,1
+ 164a: c11c sw a5,0(a0)
+ 164c: 8082 ret
+ 164e: 87b6 mv a5,a3
+ 1650: 43d4 lw a3,4(a5)
+ 1652: 4290 lw a2,0(a3)
+ 1654: fec77de3 bgeu a4,a2,164e
+ 1658: b7cd j 163a
-00001682 :
- 1682: 4130 lw a2,64(a0)
- 1684: c215 beqz a2,16a8
- 1686: e91fe2ef jal t0,516 <__riscv_save_0>
- 168a: 4558 lw a4,12(a0)
- 168c: 4514 lw a3,8(a0)
- 168e: 87aa mv a5,a0
- 1690: 9732 add a4,a4,a2
- 1692: c558 sw a4,12(a0)
- 1694: 00d76463 bltu a4,a3,169c
- 1698: 4118 lw a4,0(a0)
- 169a: c558 sw a4,12(a0)
- 169c: 852e mv a0,a1
- 169e: 47cc lw a1,12(a5)
- 16a0: 107020ef jal ra,3fa6
- 16a4: e97fe06f j 53a <__riscv_restore_0>
- 16a8: 8082 ret
+0000165a :
+ 165a: 4154 lw a3,4(a0)
+ 165c: 4518 lw a4,8(a0)
+ 165e: 491c lw a5,16(a0)
+ 1660: c698 sw a4,8(a3)
+ 1662: c354 sw a3,4(a4)
+ 1664: 43d4 lw a3,4(a5)
+ 1666: 00a69363 bne a3,a0,166c
+ 166a: c3d8 sw a4,4(a5)
+ 166c: 4398 lw a4,0(a5)
+ 166e: 00052823 sw zero,16(a0)
+ 1672: 177d addi a4,a4,-1
+ 1674: c398 sw a4,0(a5)
+ 1676: 4388 lw a0,0(a5)
+ 1678: 8082 ret
-000016aa :
- 16aa: e6dfe2ef jal t0,516 <__riscv_save_0>
- 16ae: 842a mv s0,a0
- 16b0: 3de5 jal 15a8
- 16b2: 04544483 lbu s1,69(s0)
- 16b6: 02440913 addi s2,s0,36
- 16ba: 04e2 slli s1,s1,0x18
- 16bc: 84e1 srai s1,s1,0x18
- 16be: 02904563 bgtz s1,16e8
- 16c2: 57fd li a5,-1
- 16c4: 04f402a3 sb a5,69(s0)
- 16c8: 3ddd jal 15be
- 16ca: 3df9 jal 15a8
- 16cc: 04444483 lbu s1,68(s0)
- 16d0: 01040913 addi s2,s0,16
- 16d4: 04e2 slli s1,s1,0x18
- 16d6: 84e1 srai s1,s1,0x18
- 16d8: 02904463 bgtz s1,1700
- 16dc: 57fd li a5,-1
- 16de: 04f40223 sb a5,68(s0)
- 16e2: 3df1 jal 15be
- 16e4: e57fe06f j 53a <__riscv_restore_0>
- 16e8: 505c lw a5,36(s0)
- 16ea: dfe1 beqz a5,16c2
- 16ec: 854a mv a0,s2
- 16ee: 3e1000ef jal ra,22ce
- 16f2: c119 beqz a0,16f8
- 16f4: 5a5000ef jal ra,2498
- 16f8: 14fd addi s1,s1,-1
- 16fa: 04e2 slli s1,s1,0x18
- 16fc: 84e1 srai s1,s1,0x18
- 16fe: b7c1 j 16be
- 1700: 481c lw a5,16(s0)
- 1702: dfe9 beqz a5,16dc
- 1704: 854a mv a0,s2
- 1706: 3c9000ef jal ra,22ce
- 170a: c119 beqz a0,1710
- 170c: 58d000ef jal ra,2498
- 1710: 14fd addi s1,s1,-1
- 1712: 04e2 slli s1,s1,0x18
- 1714: 84e1 srai s1,s1,0x18
- 1716: b7c9 j 16d8
+0000167a :
+ 167a: e9dfe2ef jal t0,516 <__riscv_save_0>
+ 167e: 1141 addi sp,sp,-16
+ 1680: c62a sw a0,12(sp)
+ 1682: 371d jal 15a8
+ 1684: 4532 lw a0,12(sp)
+ 1686: 5d00 lw s0,56(a0)
+ 1688: 3f1d jal 15be
+ 168a: 00143513 seqz a0,s0
+ 168e: 0141 addi sp,sp,16
+ 1690: eabfe06f j 53a <__riscv_restore_0>
-00001718 :
- 1718: dfffe2ef jal t0,516 <__riscv_save_0>
- 171c: 1141 addi sp,sp,-16
- 171e: e11d bnez a0,1744
- 1720: 67a1 lui a5,0x8
- 1722: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
- 1726: 30079073 csrw mstatus,a5
- 172a: 00005637 lui a2,0x5
- 172e: 00005537 lui a0,0x5
- 1732: 35c60613 addi a2,a2,860 # 535c <_read+0xe4>
- 1736: 11000593 li a1,272
- 173a: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 173e: 11b020ef jal ra,4058
- 1742: a001 j 1742
- 1744: 5d5c lw a5,60(a0)
- 1746: c62e sw a1,12(sp)
- 1748: 842a mv s0,a0
- 174a: c3bd beqz a5,17b0
- 174c: 4138 lw a4,64(a0)
- 174e: 02e7b7b3 mulhu a5,a5,a4
- 1752: efb9 bnez a5,17b0
- 1754: 3d91 jal 15a8
- 1756: 4030 lw a2,64(s0)
- 1758: 5c58 lw a4,60(s0)
- 175a: 4014 lw a3,0(s0)
- 175c: 02042c23 sw zero,56(s0)
- 1760: 02e607b3 mul a5,a2,a4
- 1764: 45b2 lw a1,12(sp)
- 1766: c054 sw a3,4(s0)
- 1768: 00f68733 add a4,a3,a5
- 176c: 8f91 sub a5,a5,a2
- 176e: 97b6 add a5,a5,a3
- 1770: c45c sw a5,12(s0)
- 1772: 57fd li a5,-1
- 1774: 04f40223 sb a5,68(s0)
- 1778: c418 sw a4,8(s0)
- 177a: 04f402a3 sb a5,69(s0)
- 177e: e195 bnez a1,17a2
- 1780: 481c lw a5,16(s0)
- 1782: cb99 beqz a5,1798
- 1784: 01040513 addi a0,s0,16
- 1788: 347000ef jal ra,22ce
- 178c: c511 beqz a0,1798
- 178e: e000e7b7 lui a5,0xe000e
- 1792: 6711 lui a4,0x4
- 1794: 20e7a023 sw a4,512(a5) # e000e200 <__freertos_irq_stack_top+0xc0006200>
- 1798: 351d jal 15be
- 179a: 4505 li a0,1
+00001694 :
+ 1694: e83fe2ef jal t0,516 <__riscv_save_0>
+ 1698: 8932 mv s2,a2
+ 169a: 4130 lw a2,64(a0)
+ 169c: 5d04 lw s1,56(a0)
+ 169e: 842a mv s0,a0
+ 16a0: ee09 bnez a2,16ba
+ 16a2: 411c lw a5,0(a0)
+ 16a4: 4501 li a0,0
+ 16a6: e791 bnez a5,16b2
+ 16a8: 4408 lw a0,8(s0)
+ 16aa: 2ea010ef jal ra,2994
+ 16ae: 00042423 sw zero,8(s0)
+ 16b2: 0485 addi s1,s1,1
+ 16b4: dc04 sw s1,56(s0)
+ 16b6: e85fe06f j 53a <__riscv_restore_0>
+ 16ba: 02091063 bnez s2,16da
+ 16be: 4148 lw a0,4(a0)
+ 16c0: 086030ef jal ra,4746
+ 16c4: 405c lw a5,4(s0)
+ 16c6: 4038 lw a4,64(s0)
+ 16c8: 4501 li a0,0
+ 16ca: 97ba add a5,a5,a4
+ 16cc: 4418 lw a4,8(s0)
+ 16ce: c05c sw a5,4(s0)
+ 16d0: fee7e1e3 bltu a5,a4,16b2
+ 16d4: 401c lw a5,0(s0)
+ 16d6: c05c sw a5,4(s0)
+ 16d8: bfe9 j 16b2
+ 16da: 4548 lw a0,12(a0)
+ 16dc: 06a030ef jal ra,4746
+ 16e0: 403c lw a5,64(s0)
+ 16e2: 4458 lw a4,12(s0)
+ 16e4: 4014 lw a3,0(s0)
+ 16e6: 40f007b3 neg a5,a5
+ 16ea: 973e add a4,a4,a5
+ 16ec: c458 sw a4,12(s0)
+ 16ee: 00d77563 bgeu a4,a3,16f8
+ 16f2: 4418 lw a4,8(s0)
+ 16f4: 97ba add a5,a5,a4
+ 16f6: c45c sw a5,12(s0)
+ 16f8: 4789 li a5,2
+ 16fa: 4501 li a0,0
+ 16fc: faf91be3 bne s2,a5,16b2
+ 1700: d8cd beqz s1,16b2
+ 1702: 14fd addi s1,s1,-1
+ 1704: b77d j 16b2
+
+00001706 :
+ 1706: df7fe2ef jal t0,4fc <__riscv_save_4>
+ 170a: 4520 lw s0,72(a0)
+ 170c: 1141 addi sp,sp,-16
+ 170e: c62a sw a0,12(sp)
+ 1710: e405 bnez s0,1738
+ 1712: 67a1 lui a5,0x8
+ 1714: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
+ 1718: 30079073 csrw mstatus,a5
+ 171c: 00006637 lui a2,0x6
+ 1720: 6585 lui a1,0x1
+ 1722: 00006537 lui a0,0x6
+ 1726: b2460613 addi a2,a2,-1244 # 5b24 <_read+0xe6>
+ 172a: bd558593 addi a1,a1,-1067 # bd5
+ 172e: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1732: 0c6030ef jal ra,47f8
+ 1736: a001 j 1736
+ 1738: 5c18 lw a4,56(s0)
+ 173a: 5c5c lw a5,60(s0)
+ 173c: 02f76563 bltu a4,a5,1766
+ 1740: 67a1 lui a5,0x8
+ 1742: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
+ 1746: 30079073 csrw mstatus,a5
+ 174a: 00006637 lui a2,0x6
+ 174e: 6585 lui a1,0x1
+ 1750: 00006537 lui a0,0x6
+ 1754: b2460613 addi a2,a2,-1244 # 5b24 <_read+0xe6>
+ 1758: bd658593 addi a1,a1,-1066 # bd6
+ 175c: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 1760: 098030ef jal ra,47f8
+ 1764: a001 j 1764
+ 1766: 5c18 lw a4,56(s0)
+ 1768: 4901 li s2,0
+ 176a: 02f77863 bgeu a4,a5,179a
+ 176e: 04544483 lbu s1,69(s0)
+ 1772: 4601 li a2,0
+ 1774: 006c addi a1,sp,12
+ 1776: 8522 mv a0,s0
+ 1778: 3f31 jal 1694
+ 177a: 01849993 slli s3,s1,0x18
+ 177e: 4189d993 srai s3,s3,0x18
+ 1782: 57fd li a5,-1
+ 1784: 892a mv s2,a0
+ 1786: 00f99e63 bne s3,a5,17a2
+ 178a: 505c lw a5,36(s0)
+ 178c: c799 beqz a5,179a
+ 178e: 02440513 addi a0,s0,36
+ 1792: 010010ef jal ra,27a2
+ 1796: c111 beqz a0,179a
+ 1798: 4905 li s2,1
+ 179a: 854a mv a0,s2
179c: 0141 addi sp,sp,16
- 179e: d9dfe06f j 53a <__riscv_restore_0>
- 17a2: 01040513 addi a0,s0,16
- 17a6: 3da9 jal 1600
- 17a8: 02440513 addi a0,s0,36
- 17ac: 3d91 jal 1600
- 17ae: b7ed j 1798
- 17b0: 67a1 lui a5,0x8
- 17b2: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x21e0>
- 17b6: 30079073 csrw mstatus,a5
- 17ba: 00005637 lui a2,0x5
- 17be: 00005537 lui a0,0x5
- 17c2: 35c60613 addi a2,a2,860 # 535c <_read+0xe4>
- 17c6: 14500593 li a1,325
- 17ca: 31050513 addi a0,a0,784 # 5310 <_read+0x98>
- 17ce: 08b020ef jal ra,4058
- 17d2: a001 j 17d2
+ 179e: d93fe06f j 530 <__riscv_restore_4>
+ 17a2: 07f00793 li a5,127
+ 17a6: 02f99563 bne s3,a5,17d0
+ 17aa: 67a1 lui a5,0x8
+ 17ac: 80078793 addi a5,a5,-2048 # 7800 <_data_lma+0x1b6c>
+ 17b0: 30079073 csrw mstatus,a5
+ 17b4: 00006637 lui a2,0x6
+ 17b8: 6585 lui a1,0x1
+ 17ba: 00006537 lui a0,0x6
+ 17be: b2460613 addi a2,a2,-1244 # 5b24 <_read+0xe6>
+ 17c2: bf658593 addi a1,a1,-1034 # bf6
+ 17c6: ad850513 addi a0,a0,-1320 # 5ad8 <_read+0x9a>
+ 17ca: 02e030ef jal ra,47f8
+ 17ce: a001 j 17ce
+ 17d0: 0485 addi s1,s1,1
+ 17d2: 04e2 slli s1,s1,0x18
+ 17d4: 84e1 srai s1,s1,0x18
+ 17d6: 049402a3 sb s1,69(s0)
+ 17da: b7c1 j 179a
-000017d4 :
- 17d4: d43fe2ef jal t0,516 <__riscv_save_0>
- 17d8: 1141 addi sp,sp,-16
- 17da: c121 beqz a0,181a
- 17dc: 02a5b7b3 mulhu a5,a1,a0
- 17e0: 84aa mv s1,a0
- 17e2: ef85 bnez a5,181a
- 17e4: 02b50533 mul a0,a0,a1
- 17e8: fb700793 li a5,-73
- 17ec: 02a7e763 bltu a5,a0,181a
- 17f0: 04850513 addi a0,a0,72
- 17f4: c62e sw a1,12(sp)
- 17f6: 3cbd jal 1274
- 17f8: 842a mv s0,a0
- 17fa: cd01 beqz a0,1812
- 17fc: 45b2 lw a1,12(sp)
- 17fe: 87aa mv a5,a0
- 1800: c199 beqz a1,1806
- 1802: 04850793 addi a5,a0,72
- 1806: c02c sw a1,64(s0)
- 1808: c01c sw a5,0(s0)
- 180a: dc44 sw s1,60(s0)
- 180c: 4585 li a1,1
- 180e: 8522 mv a0,s0
- 1810: 3721 jal 1718