diff --git a/.cproject b/.cproject
index f5042a1..9f226e3 100644
--- a/.cproject
+++ b/.cproject
@@ -69,8 +69,9 @@
-
+
+
@@ -123,9 +124,10 @@
-
+
+
@@ -150,4 +152,5 @@
+
diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index b8e2615..fca74d6 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/App/inc/collect_Conversion.h b/App/inc/collect_Conversion.h
index 1f6f133..2ae8165 100644
--- a/App/inc/collect_Conversion.h
+++ b/App/inc/collect_Conversion.h
@@ -17,6 +17,6 @@ float get_DSG_CURR(void);
float get_PV_VOLT_IN(void);
float get_SYS_VOLT_IN(void);
float get_MOSFET_Temper(void);
-float get_PV2_VOLT_IN(void);
+//float get_PV2_VOLT_IN(void);
#endif /* APP_INC_COLLECT_CONVERSION_H_ */
diff --git a/App/src/collect_Conversion.c b/App/src/collect_Conversion.c
index 4995108..8631418 100644
--- a/App/src/collect_Conversion.c
+++ b/App/src/collect_Conversion.c
@@ -141,6 +141,7 @@ static uint16_t get_adc(uint8_t ADC_Channel);
static uint16_t get_aftercalculationAdc(uint8_t ADC_Channel);
static uint16_t middleAverageFilter(uint8_t ADC_Channel);
static uint16_t get_adcDmaTim_middleAverageFilter(uint8_t ADC_Channel);
+static uint16_t Get_ConversionVal(int16_t val);
/**
* @brief 获取计算后的adc的值
@@ -169,58 +170,68 @@ uint16_t get_aftercalculationAdc1(uint8_t ADC_Channel)
*/
uint16_t get_adcDmaTim_middleAverageFilter(uint8_t ADC_Channel)
{
- uint16_t i,j,k;
- uint16_t temp,sum = 0;
- uint16_t value_buf[g_adcData.num];
-
if (ADC_Channel == CHG_CURR) {
- for(i = 0; i < g_adcData.num; ++i) {
- value_buf[i] = g_adcData.CHG_CURR_array[i];
- }
-// } else if (ADC_Channel == PV_VOLT_OUT) {
-// for(i = 0; i < g_adcData.num; ++i) {
-// value_buf[i] = g_adcData.PV_VOLT_OUT_array[i];
-// }
- } else if (ADC_Channel == DSG_CURR) {
- for(i = 0; i < g_adcData.num; ++i) {
- value_buf[i] = g_adcData.DSG_CURR_array[i];
- }
-// } else if (ADC_Channel == PV_VOLT_IN) {
-// for(i = 0; i < g_adcData.num; ++i) {
-// value_buf[i] = g_adcData.PV_VOLT_IN_array[i];
-// }
-// } else if (ADC_Channel == SYS_VOLT_IN) {
-// for(i = 0; i < g_adcData.num; ++i) {
-// value_buf[i] = g_adcData.SYS_VOLT_IN_array[i];
-// }
-// } else if (ADC_Channel == MOSFET_Temper) {
-// for(i = 0; i < g_adcData.num; ++i) {
-// value_buf[i] = g_adcData.MOSFET_Temper_array[i];
-// }
- } else {
- return 0;
+ return Get_ConversionVal(g_adcData.total_CHG_CURR / adcBuffSize);
}
- /*从小到大冒泡排序*/
- for(j = 0; j < g_adcData.num-1; ++j)
- {
- for(k = 0; k < g_adcData.num-j-1; ++k)
- {
- if(value_buf[k] > value_buf[k+1])
- {
- temp = value_buf[k];
- value_buf[k] = value_buf[k+1];
- value_buf[k+1] = temp;
- }
- }
+ if (ADC_Channel == DSG_CURR) {
+ return Get_ConversionVal(g_adcData.total_DSG_CURR / adcBuffSize);
}
- for(i = 2; i < g_adcData.num - 2; ++i)
- {
- sum += value_buf[i];
- }
+ return 0;
- return sum / (g_adcData.num - 4);
+// uint16_t i,j,k;
+// uint16_t temp,sum = 0;
+// uint16_t value_buf[g_adcData.num];
+//
+// if (ADC_Channel == CHG_CURR) {
+// for(i = 0; i < g_adcData.num; ++i) {
+// value_buf[i] = g_adcData.CHG_CURR_array[i];
+// }
+//// } else if (ADC_Channel == PV_VOLT_OUT) {
+//// for(i = 0; i < g_adcData.num; ++i) {
+//// value_buf[i] = g_adcData.PV_VOLT_OUT_array[i];
+//// }
+// } else if (ADC_Channel == DSG_CURR) {
+// for(i = 0; i < g_adcData.num; ++i) {
+// value_buf[i] = g_adcData.DSG_CURR_array[i];
+// }
+//// } else if (ADC_Channel == PV_VOLT_IN) {
+//// for(i = 0; i < g_adcData.num; ++i) {
+//// value_buf[i] = g_adcData.PV_VOLT_IN_array[i];
+//// }
+//// } else if (ADC_Channel == SYS_VOLT_IN) {
+//// for(i = 0; i < g_adcData.num; ++i) {
+//// value_buf[i] = g_adcData.SYS_VOLT_IN_array[i];
+//// }
+//// } else if (ADC_Channel == MOSFET_Temper) {
+//// for(i = 0; i < g_adcData.num; ++i) {
+//// value_buf[i] = g_adcData.MOSFET_Temper_array[i];
+//// }
+// } else {
+// return 0;
+// }
+//
+// /*从小到大冒泡排序*/
+// for(j = 0; j < g_adcData.num-1; ++j)
+// {
+// for(k = 0; k < g_adcData.num-j-1; ++k)
+// {
+// if(value_buf[k] > value_buf[k+1])
+// {
+// temp = value_buf[k];
+// value_buf[k] = value_buf[k+1];
+// value_buf[k+1] = temp;
+// }
+// }
+// }
+//
+// for(i = 2; i < g_adcData.num - 2; ++i)
+// {
+// sum += value_buf[i];
+// }
+//
+// return sum / (g_adcData.num - 4);
}
@@ -302,6 +313,7 @@ float get_CHG_CURR(void)
// I_ADC = Get_ConversionVal(get_adc(CHG_CURR));
I_ADC = get_aftercalculationAdc(CHG_CURR);
+
// I_ADC = g_adcData.total_CHG_CURR / g_adcData.num;
// I_ADC = get_adc(CHG_CURR);
@@ -328,8 +340,8 @@ float get_PV_VOLT_OUT(void)
uint16_t V_ADC;
// V_ADC = Get_ConversionVal(get_adc(PV_VOLT_OUT));
-// V_ADC = get_aftercalculationAdc1(PV_VOLT_OUT);
- V_ADC = get_aftercalculationAdc(PV_VOLT_OUT);
+ V_ADC = get_aftercalculationAdc1(PV_VOLT_OUT);
+// V_ADC = get_aftercalculationAdc(PV_VOLT_OUT);
// V_ADC = g_adcData.total_PV_VOLT_OUT / g_adcData.num;
// V_ADC = get_adc(PV_VOLT_OUT);
@@ -477,31 +489,31 @@ float get_MOSFET_Temper(void)
return T;
}
-/**
- * @brief 得到光伏2开路电压
- * @param
- * @retval V 电压值
- */
-float get_PV2_VOLT_IN(void)
-{
- float V;
- uint16_t V_ADC;
-
-// GPIO_WriteBit(G_FFMOS_CON2_GPIO, G_FFMOS_CON2_PIN, SET);
-// V_ADC = Get_ConversionVal(get_adc(PV2_VOLT_IN));
- V_ADC = get_aftercalculationAdc(PV2_VOLT_IN);
-// V_ADC = get_adc(PV2_VOLT_IN);
-// GPIO_WriteBit(G_FFMOS_CON2_GPIO, G_FFMOS_CON2_PIN, RESET);
-
- V = (float)(V_ADC) * P_PV2_VOLT_IN;
-
-#ifdef enable_Printf_VI
- printf("\n PV2_VOLT_IN ADC : %d \n", V_ADC);
- printf(" PV2_VOLT_IN V : %d /100 \n", (int)(V * 100));
-#endif
-
- return V;
-}
+///**
+// * @brief 得到光伏2开路电压
+// * @param
+// * @retval V 电压值
+// */
+//float get_PV2_VOLT_IN(void)
+//{
+// float V;
+// uint16_t V_ADC;
+//
+//// GPIO_WriteBit(G_FFMOS_CON2_GPIO, G_FFMOS_CON2_PIN, SET);
+//// V_ADC = Get_ConversionVal(get_adc(PV2_VOLT_IN));
+//// V_ADC = get_aftercalculationAdc(PV2_VOLT_IN);
+//// V_ADC = get_adc(PV2_VOLT_IN);
+//// GPIO_WriteBit(G_FFMOS_CON2_GPIO, G_FFMOS_CON2_PIN, RESET);
+//
+// V = (float)(V_ADC) * P_PV2_VOLT_IN;
+//
+//#ifdef enable_Printf_VI
+// printf("\n PV2_VOLT_IN ADC : %d \n", V_ADC);
+// printf(" PV2_VOLT_IN V : %d /100 \n", (int)(V * 100));
+//#endif
+//
+// return V;
+//}
diff --git a/App/src/mppt_control.c b/App/src/mppt_control.c
index a57966d..e851490 100644
--- a/App/src/mppt_control.c
+++ b/App/src/mppt_control.c
@@ -822,7 +822,7 @@ void test(void)
// printf("Discharg_Current = %d/1000 \n", (int)(g_Mppt_Para.Discharg_Current * 1000));
// printf("\n\n\n");
- printf("%d\n", g_adcData.num);
+// printf("%d\n", g_adcData.num);
printf("%d\n", (int)(g_Mppt_Para.Charg_Current * 1000));
printf("%d\n", (int)(g_Mppt_Para.Output_Voltage * 1000));
printf("%d\r\n", (int)(g_Mppt_Para.Discharg_Current * 1000));
@@ -831,7 +831,7 @@ void test(void)
// printf("get_PV_VOLT_IN1 = %d/1000 \n", (int)(get_PV_VOLT_IN1() * 1000));
// printf("HighSideMos_Temperature = %d/1000 \n", (int)(g_Mppt_Para.HighSideMos_Temperature * 1000));
- g_adcData.num = 0;
+// g_adcData.num = 0;
//// mppt_readjust();
//// Get_OutputPower();
diff --git a/App/src/task.c b/App/src/task.c
index fd8a963..7d90a24 100644
--- a/App/src/task.c
+++ b/App/src/task.c
@@ -816,9 +816,6 @@ void task_Init(void)
// TimeSliceOffset_Register(&m_startMpptControl, Task_startMpptControl
// , startMpptControl_reloadVal, startMpptControl_offset);
-
- ADC_TIM_DMA_Init();
-
TimeSliceOffset_Start(); /* 启动时间片轮询 */
}
@@ -841,14 +838,15 @@ void hardware_Init(void)
POW_OUT_CON_Init();
DSG_PROT_Init();
WORK_VOLT_INT_Init();
+ ADC_TIM_DMA_Init();
// EnPowerSupply_Init();
// Set_duty_ratio(&g_duty_ratio);
// uart_dev_write(g_bat485_uart3_handle, " hello world \n", sizeof(" hello world \n"));
-// TIM3_Init(10000);
-// TIM_Cmd(TIM3, ENABLE); //TIM3使能
+ TIM3_Init(300);
+ TIM_Cmd(TIM3, ENABLE); //TIM3使能
g_duty_ratio = 0.8;
Set_duty_ratio(&g_duty_ratio);
diff --git a/Drivers/RingQueue/ring_queue.c b/Drivers/RingQueue/ring_queue.c
index dfbbff6..6c3c57c 100644
--- a/Drivers/RingQueue/ring_queue.c
+++ b/Drivers/RingQueue/ring_queue.c
@@ -19,6 +19,10 @@
//void rq_debug(const char *fmt, ...){};
//#endif
+#define RQ_OK 1
+#define RQ_ERROR 0
+#define RQ_OVERFLOW -2
+
//初始化队列
int InitRingQueue(RingQueue *q, RQ_ElementType *buff, int size)
{
diff --git a/Drivers/RingQueue/ring_queue.h b/Drivers/RingQueue/ring_queue.h
index 2c30210..7f275b0 100644
--- a/Drivers/RingQueue/ring_queue.h
+++ b/Drivers/RingQueue/ring_queue.h
@@ -11,9 +11,6 @@
//#define RING_QUEUE_DEBUG //定义本宏会打印RingQueue的调试信息
-#define RQ_OK 1
-#define RQ_ERROR 0
-#define RQ_OVERFLOW -2
typedef unsigned char RQ_ElementType;//元素类型
typedef struct _ring_queue
diff --git a/Drivers/RingQueue2/ring_queue2.c b/Drivers/RingQueue2/ring_queue2.c
new file mode 100644
index 0000000..e0df57c
--- /dev/null
+++ b/Drivers/RingQueue2/ring_queue2.c
@@ -0,0 +1,91 @@
+/*
+ * ring_queue.c
+ *
+ * Created on: 2024年6月21日
+ * Author: psx
+ */
+
+
+//循环队列
+#include
+#include
+#include "ring_queue2.h"
+
+
+#define RQ_OK 1
+#define RQ_ERROR 0
+#define RQ_OVERFLOW -2
+//#define RING_QUEUE_DEBUG
+
+//#ifdef RING_QUEUE_DEBUG
+//#define //rq_debug term_printf
+//#else
+//void rq_debug(const char *fmt, ...){};
+//#endif
+
+//初始化队列
+int InitRingQueue2(RingQueue2 *q, RQ_ElementType2 *buff, int size)
+{
+ q->elems = buff;
+ q->size = size;
+ q->front=q->rear=0;
+ return RQ_OK;
+}
+
+//遍历队列,
+//消费者使用,故对生产者可能修改的rear先读取缓存
+int ShowRingQueue2(RingQueue2 *q)
+{
+ //int i;
+ int rear = q->rear;
+
+ if(q->front == rear)
+ {
+ //rq_debug("队列为空\n");
+ return RQ_ERROR;
+ }
+ //rq_debug("队列中的元素为:\n");
+ //for(i=((q->front)%q->size); i != rear; i=((i+1)%q->size))
+ //rq_debug(" %c\n",q->elems[i]);
+
+ //rq_debug("\n");
+ //rq_debug("队首元素为%c\n",q->elems[q->front]);
+ //rq_debug("队尾元素为%c\n",q->elems[rear - 1]);
+ return RQ_OK;
+}
+
+//向队尾插入元素e
+int InRingQueue2(RingQueue2 *q,RQ_ElementType2 e)
+{
+ if(RingQueueFull2(q))
+ {
+ //rq_debug("空间不足\n");
+ return(RQ_OVERFLOW);
+ }
+ q->elems[q->rear] = e;
+ q->rear = (q->rear+1) % q->size;
+ //rq_debug("rear = %d\n",q->rear);
+ return RQ_OK;
+}
+
+//从队首取回并删除元素
+int OutRingQueue2(RingQueue2 *q, RQ_ElementType2 *e)
+{
+ if(RingQueueEmpty2(q))
+ {
+ //rq_debug("队列为空\n");
+ return RQ_ERROR;
+ }
+ *e = q->elems[q->front];
+ //rq_debug("被删除的队首元素为%c\n",q->elems[q->front]);
+ q->front = (q->front+1) % q->size;
+ return RQ_OK;
+}
+
+//队列中的元素个数
+int RingQueueLength2(RingQueue2 *q)
+{
+ return ((q->rear - q->front) + q->size) % q->size;
+}
+
+
diff --git a/Drivers/RingQueue2/ring_queue2.h b/Drivers/RingQueue2/ring_queue2.h
new file mode 100644
index 0000000..c5af685
--- /dev/null
+++ b/Drivers/RingQueue2/ring_queue2.h
@@ -0,0 +1,43 @@
+/*
+ * ring_queue.h
+ *
+ * Created on: 2024年6月21日
+ * Author: psx
+ */
+
+#ifndef DRIVERS_RINGQUEUE_RING_QUEUE2_H_
+#define DRIVERS_RINGQUEUE_RING_QUEUE2_H_
+
+
+//#define RING_QUEUE_DEBUG //定义本宏会打印RingQueue的调试信息
+
+typedef uint16_t RQ_ElementType2;//元素类型
+
+typedef struct _ring_queue2
+{
+ RQ_ElementType2 *elems;
+ int size;
+ volatile int front, rear;
+}RingQueue2;
+
+//初始化队列,需传入保存队列状态的结构q,队列使用的buffer和buffer大小
+int InitRingQueue2(RingQueue2 *q, RQ_ElementType2 *buff, int size);
+
+#define RingQueueFull2(q) (((q)->rear+1) % (q)->size == (q)->front)
+#define RingQueueEmpty2(q) ((q)->front == (q)->rear)
+
+//遍历队列,
+//消费者使用,故对生产者可能修改的rear先读取缓存
+int ShowRingQueue2(RingQueue2 *q);
+
+//向队尾插入元素e
+int InRingQueue2(RingQueue2 *q,RQ_ElementType2 e);
+
+//从队首删除元素
+int OutRingQueue2(RingQueue2 *q, RQ_ElementType2 *e);
+
+//队列中的元素个数
+int RingQueueLength2(RingQueue2 *q);
+
+
+#endif /* DRIVERS_RINGQUEUE_RING_QUEUE_H_ */
diff --git a/Hardware/inc/adc.h b/Hardware/inc/adc.h
index 52b2f80..d6c3d6b 100644
--- a/Hardware/inc/adc.h
+++ b/Hardware/inc/adc.h
@@ -2,6 +2,7 @@
#define __ADC_H
#include "ch32l103.h"
+#include "ring_queue2.h"
//typedef struct _ADC_DATA {
// uint16_t total_CHG_CURR; /* 一个控制周期中,adc采集的值之和 充电电流 */
@@ -18,23 +19,26 @@
// uint16_t num_MOSFET_Temper;
//}ADC_DATA;
-#define data_len 50
-
-typedef struct _ADC_DATA {
- uint16_t num; /* 一个控制周期中,adc采集次数 */
- uint16_t CHG_CURR_array[data_len]; /* 充电电流 */
- uint16_t PV_VOLT_OUT_array[data_len]; /* 输出电压 */
- uint16_t DSG_CURR_array[data_len]; /* 放电电流 */
- uint16_t PV_VOLT_IN_array[data_len]; /* 太阳能板输出电压 */
- uint16_t SYS_VOLT_IN_array[data_len]; /* 系统输入电压 */
- uint16_t MOSFET_Temper_array[data_len]; /* mos管温度 */
-}ADC_DATA;
+//#define data_len 50
//typedef struct _ADC_DATA {
// uint16_t num; /* 一个控制周期中,adc采集次数 */
// uint16_t CHG_CURR_array[data_len]; /* 充电电流 */
+// uint16_t PV_VOLT_OUT_array[data_len]; /* 输出电压 */
// uint16_t DSG_CURR_array[data_len]; /* 放电电流 */
+// uint16_t PV_VOLT_IN_array[data_len]; /* 太阳能板输出电压 */
+// uint16_t SYS_VOLT_IN_array[data_len]; /* 系统输入电压 */
+// uint16_t MOSFET_Temper_array[data_len]; /* mos管温度 */
//}ADC_DATA;
+#define adcBuffSize 100
+
+typedef struct _ADC_DATA {
+ RingQueue2 RQCHG_CURR;
+ uint32_t total_CHG_CURR; /* 充电电流一段时间中adc值的和 */
+ RingQueue2 RQDSG_CURR;
+ uint32_t total_DSG_CURR; /* 放电电流一段时间中adc值的和 */
+}ADC_DATA;
+
extern ADC_DATA g_adcData;
extern int16_t Calibrattion_Val;
diff --git a/Hardware/src/adc.c b/Hardware/src/adc.c
index 1141ab0..2336fb9 100644
--- a/Hardware/src/adc.c
+++ b/Hardware/src/adc.c
@@ -136,15 +136,35 @@ void TIM1_Init1(u16 arr,u16 psc)
#define MOSFET_Temper ADC_Channel_6
#define PV2_VOLT_IN ADC_Channel_7
+static uint16_t CHG_CURR_buff[adcBuffSize];
+static uint16_t DSG_CURR_buff[adcBuffSize];
+
/*
* 通过定时器和DMA完成adc的采集
* 定时器采用定时器1的cc1完成ADC的外部触发 PA8 --> TIM1_CH1
* ADC通过DMA的通道1完成数据的传输
*
* */
-volatile uint16_t ADC_ConvertedValue[3]; //ADC采样的数据
+volatile uint16_t ADC_ConvertedValue[2]; //ADC采样的数据
void ADC_TIM_DMA_Init(void)
{
+ InitRingQueue2(&g_adcData.RQCHG_CURR, CHG_CURR_buff, adcBuffSize);
+ InitRingQueue2(&g_adcData.RQDSG_CURR, DSG_CURR_buff, adcBuffSize);
+ for (int var = 0; var < adcBuffSize; ++var) {
+ InRingQueue2(&g_adcData.RQCHG_CURR, 0);
+ InRingQueue2(&g_adcData.RQDSG_CURR, 0);
+ }
+// while (RingQueueLength2(&g_adcData.RQCHG_CURR) != adcBuffSize) {
+// InRingQueue2(&g_adcData.RQCHG_CURR, 0);
+// };
+ g_adcData.total_CHG_CURR = 0;
+
+// while (RingQueueLength2(&g_adcData.RQDSG_CURR) != adcBuffSize) {
+// InRingQueue2(&g_adcData.RQDSG_CURR, 0);
+// };
+ g_adcData.total_DSG_CURR = 0;
+
+
ADC_InitTypeDef ADC_InitStructure = {0};
GPIO_InitTypeDef GPIO_InitStructure = {0};
@@ -155,7 +175,7 @@ void ADC_TIM_DMA_Init(void)
// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6; //PA1~7对应ADC通道1~7
// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
// GPIO_Init(GPIOA, &GPIO_InitStructure);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3; //PA1~7对应ADC通道1~7
+ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_3; //PA1~7对应ADC通道1~7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOA, &GPIO_InitStructure);
@@ -168,7 +188,7 @@ void ADC_TIM_DMA_Init(void)
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
// ADC_InitStructure.ADC_NbrOfChannel = 1;
- ADC_InitStructure.ADC_NbrOfChannel = 3;
+ ADC_InitStructure.ADC_NbrOfChannel = 2;
ADC_Init(ADC1, &ADC_InitStructure);
//使能ADC、DMA
@@ -193,17 +213,16 @@ void ADC_TIM_DMA_Init(void)
// ADC_RegularChannelConfig(ADC1, SYS_VOLT_IN, 5, ADC_SampleTime_CyclesMode5);
// ADC_RegularChannelConfig(ADC1, MOSFET_Temper, 6, ADC_SampleTime_CyclesMode5);
- ADC_RegularChannelConfig(ADC1, CHG_CURR, 1, ADC_SampleTime_CyclesMode5);
- ADC_RegularChannelConfig(ADC1, PV_VOLT_OUT, 2, ADC_SampleTime_CyclesMode5);
- ADC_RegularChannelConfig(ADC1, DSG_CURR, 3, ADC_SampleTime_CyclesMode5);
+ ADC_RegularChannelConfig(ADC1, CHG_CURR, 1, ADC_SampleTime_CyclesMode5);
+ ADC_RegularChannelConfig(ADC1, DSG_CURR, 2, ADC_SampleTime_CyclesMode5);
// /* 设置定时器输出的周期为1S */
// TIM1_Init1(1000, 48000);
/* 设置定时器输出的周期为30mS */
- TIM1_Init1(30, 48000);
+// TIM1_Init1(30, 48000);
/* 设置定时器输出的周期为100uS */
-// TIM1_Init1(300, 48);
- DMA_Tx_Init((u32)&ADC_ConvertedValue, 3);
+ TIM1_Init1(10, 48000);
+ DMA_Tx_Init((u32)&ADC_ConvertedValue, 2);
@@ -253,8 +272,20 @@ void DMA1_Channel1_IRQHandler(void)
// printf("\r\nEnter DMA interrupt\r\n");
if(DMA_GetITStatus(DMA1_IT_TC1)!=RESET)
{
- DMA_ClearITPendingBit(DMA1_IT_TC1);
//中断处理代码
+ static uint16_t temp;
+
+ OutRingQueue2(&g_adcData.RQCHG_CURR, &temp);
+ g_adcData.total_CHG_CURR -= temp;
+ OutRingQueue2(&g_adcData.RQDSG_CURR, &temp);
+ g_adcData.total_DSG_CURR -= temp;
+
+ g_adcData.total_CHG_CURR += ADC_ConvertedValue[0];
+ g_adcData.total_DSG_CURR += ADC_ConvertedValue[1];
+ InRingQueue2(&g_adcData.RQCHG_CURR, ADC_ConvertedValue[0]);
+ InRingQueue2(&g_adcData.RQDSG_CURR, ADC_ConvertedValue[1]);
+
+ DMA_ClearITPendingBit(DMA1_IT_TC1);
// g_adcData.CHG_CURR_array[g_adcData.num] = Get_ConversionVal1(ADC_ConvertedValue[0]);
// g_adcData.PV_VOLT_OUT_array[g_adcData.num] = Get_ConversionVal1(ADC_ConvertedValue[1]);
// g_adcData.DSG_CURR_array[g_adcData.num] = Get_ConversionVal1(ADC_ConvertedValue[2]);
@@ -273,9 +304,9 @@ void DMA1_Channel1_IRQHandler(void)
// g_adcData.total_CHG_CURR += Get_ConversionVal1(ADC_ConvertedValue[0]);
- printf("%d\n", ADC_ConvertedValue[0]);
- printf("%d\n", ADC_ConvertedValue[1]);
- printf("%d\r\n", ADC_ConvertedValue[2]);
+// printf("%d\n", ADC_ConvertedValue[0]);
+// printf("%d\n", ADC_ConvertedValue[1]);
+
// printf("%d\n", ADC_ConvertedValue[3]);
// printf("%d\n", ADC_ConvertedValue[4]);
// printf("%d\r\n", ADC_ConvertedValue[5]);
diff --git a/obj/App/src/collect_Conversion.d b/obj/App/src/collect_Conversion.d
index a5984d7..131ffc8 100644
--- a/obj/App/src/collect_Conversion.d
+++ b/obj/App/src/collect_Conversion.d
@@ -26,8 +26,9 @@ App/src/collect_Conversion.o: ../App/src/collect_Conversion.c \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_misc.h \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_lptim.h \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h \
- D:\psx\MPPT\git\Hardware\inc/adc.h D:\psx\MPPT\git\Hardware\inc/gpio.h \
- D:\psx\MPPT\git\App\inc/uart_dev.h \
+ D:\psx\MPPT\git\Hardware\inc/adc.h \
+ D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h \
+ D:\psx\MPPT\git\Hardware\inc/gpio.h D:\psx\MPPT\git\App\inc/uart_dev.h \
D:\psx\MPPT\git\Drivers\RingQueue/ring_queue.h \
D:\psx\MPPT\git\Hardware\inc/rs485.h
@@ -91,6 +92,8 @@ D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h:
D:\psx\MPPT\git\Hardware\inc/adc.h:
+D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h:
+
D:\psx\MPPT\git\Hardware\inc/gpio.h:
D:\psx\MPPT\git\App\inc/uart_dev.h:
diff --git a/obj/App/src/collect_Conversion.o b/obj/App/src/collect_Conversion.o
index 418e4e7..ca71be6 100644
Binary files a/obj/App/src/collect_Conversion.o and b/obj/App/src/collect_Conversion.o differ
diff --git a/obj/App/src/mppt_control.d b/obj/App/src/mppt_control.d
index b8a64c0..c94ff2f 100644
--- a/obj/App/src/mppt_control.d
+++ b/obj/App/src/mppt_control.d
@@ -27,8 +27,10 @@ App/src/mppt_control.o: ../App/src/mppt_control.c \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_lptim.h \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h \
D:\psx\MPPT\git\App\inc/collect_Conversion.h \
- D:\psx\MPPT\git\Hardware\inc/adc.h D:\psx\MPPT\git\Hardware\inc/pwm.h \
- D:\psx\MPPT\git\App\inc/inflash.h D:\psx\MPPT\git\Hardware\inc/gpio.h \
+ D:\psx\MPPT\git\Hardware\inc/adc.h \
+ D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h \
+ D:\psx\MPPT\git\Hardware\inc/pwm.h D:\psx\MPPT\git\App\inc/inflash.h \
+ D:\psx\MPPT\git\Hardware\inc/gpio.h \
D:\psx\MPPT\git\App\inc/sl_protocol.h D:\psx\MPPT\git\App\inc/uart_dev.h \
D:\psx\MPPT\git\Drivers\RingQueue/ring_queue.h \
D:\psx\MPPT\git\Hardware\inc/rs485.h D:\psx\MPPT\git\App\inc/task.h \
@@ -97,6 +99,8 @@ D:\psx\MPPT\git\App\inc/collect_Conversion.h:
D:\psx\MPPT\git\Hardware\inc/adc.h:
+D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h:
+
D:\psx\MPPT\git\Hardware\inc/pwm.h:
D:\psx\MPPT\git\App\inc/inflash.h:
diff --git a/obj/App/src/mppt_control.o b/obj/App/src/mppt_control.o
index 2432320..dd194bd 100644
Binary files a/obj/App/src/mppt_control.o and b/obj/App/src/mppt_control.o differ
diff --git a/obj/App/src/subdir.mk b/obj/App/src/subdir.mk
index 6e5af88..646d6b7 100644
--- a/obj/App/src/subdir.mk
+++ b/obj/App/src/subdir.mk
@@ -31,6 +31,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
App/src/%.o: ../App/src/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/App/src/task.d b/obj/App/src/task.d
index 24a8172..7ed18c6 100644
--- a/obj/App/src/task.d
+++ b/obj/App/src/task.d
@@ -30,8 +30,9 @@ App/src/task.o: ../App/src/task.c D:\psx\MPPT\git\App\inc/task.h \
D:\psx\MPPT\git\Drivers\RingQueue/ring_queue.h \
D:\psx\MPPT\git\Hardware\inc/rs485.h D:\psx\MPPT\git\App\inc/uart_dev.h \
D:\psx\MPPT\git\Hardware\inc/tim.h D:\psx\MPPT\git\Hardware\inc/pwm.h \
- D:\psx\MPPT\git\Hardware\inc/adc.h D:\psx\MPPT\git\Hardware\inc/gpio.h \
- D:\psx\MPPT\git\Hardware\inc/flash.h \
+ D:\psx\MPPT\git\Hardware\inc/adc.h \
+ D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h \
+ D:\psx\MPPT\git\Hardware\inc/gpio.h D:\psx\MPPT\git\Hardware\inc/flash.h \
D:\psx\MPPT\git\App\inc/sl_protocol.h \
D:\psx\MPPT\git\App\inc/mppt_control.h D:\psx\MPPT\git\App\inc/inflash.h \
D:\psx\MPPT\git\App\inc/collect_Conversion.h
@@ -110,6 +111,8 @@ D:\psx\MPPT\git\Hardware\inc/pwm.h:
D:\psx\MPPT\git\Hardware\inc/adc.h:
+D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h:
+
D:\psx\MPPT\git\Hardware\inc/gpio.h:
D:\psx\MPPT\git\Hardware\inc/flash.h:
diff --git a/obj/App/src/task.o b/obj/App/src/task.o
index fbdd82f..5adbc35 100644
Binary files a/obj/App/src/task.o and b/obj/App/src/task.o differ
diff --git a/obj/App/src/uart_dev.o b/obj/App/src/uart_dev.o
index af1791d..a714911 100644
Binary files a/obj/App/src/uart_dev.o and b/obj/App/src/uart_dev.o differ
diff --git a/obj/Core/subdir.mk b/obj/Core/subdir.mk
index bbabe24..b2fd676 100644
--- a/obj/Core/subdir.mk
+++ b/obj/Core/subdir.mk
@@ -16,6 +16,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Core/%.o: ../Core/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/Debug/subdir.mk b/obj/Debug/subdir.mk
index 5d5dc03..c875bc5 100644
--- a/obj/Debug/subdir.mk
+++ b/obj/Debug/subdir.mk
@@ -16,6 +16,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Debug/%.o: ../Debug/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/Drivers/RingQueue/ring_queue.o b/obj/Drivers/RingQueue/ring_queue.o
index 76dcc69..924a319 100644
Binary files a/obj/Drivers/RingQueue/ring_queue.o and b/obj/Drivers/RingQueue/ring_queue.o differ
diff --git a/obj/Drivers/RingQueue/subdir.mk b/obj/Drivers/RingQueue/subdir.mk
index eea85f5..1bf595e 100644
--- a/obj/Drivers/RingQueue/subdir.mk
+++ b/obj/Drivers/RingQueue/subdir.mk
@@ -16,6 +16,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Drivers/RingQueue/%.o: ../Drivers/RingQueue/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/Drivers/RingQueue2/ring_queue2.d b/obj/Drivers/RingQueue2/ring_queue2.d
new file mode 100644
index 0000000..1544f95
--- /dev/null
+++ b/obj/Drivers/RingQueue2/ring_queue2.d
@@ -0,0 +1,4 @@
+Drivers/RingQueue2/ring_queue2.o: ../Drivers/RingQueue2/ring_queue2.c \
+ ../Drivers/RingQueue2/ring_queue2.h
+
+../Drivers/RingQueue2/ring_queue2.h:
diff --git a/obj/Drivers/RingQueue2/ring_queue2.o b/obj/Drivers/RingQueue2/ring_queue2.o
new file mode 100644
index 0000000..4a67837
Binary files /dev/null and b/obj/Drivers/RingQueue2/ring_queue2.o differ
diff --git a/obj/Drivers/RingQueue2/subdir.mk b/obj/Drivers/RingQueue2/subdir.mk
new file mode 100644
index 0000000..1b24068
--- /dev/null
+++ b/obj/Drivers/RingQueue2/subdir.mk
@@ -0,0 +1,21 @@
+################################################################################
+# MRS Version: 1.9.0
+# 自动生成的文件。不要编辑!
+################################################################################
+
+# Add inputs and outputs from these tool invocations to the build variables
+C_SRCS += \
+../Drivers/RingQueue2/ring_queue2.c
+
+OBJS += \
+./Drivers/RingQueue2/ring_queue2.o
+
+C_DEPS += \
+./Drivers/RingQueue2/ring_queue2.d
+
+
+# Each subdirectory must supply rules for building sources it contributes
+Drivers/RingQueue2/%.o: ../Drivers/RingQueue2/%.c
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @
+
diff --git a/obj/Drivers/TimeSliceOffset/subdir.mk b/obj/Drivers/TimeSliceOffset/subdir.mk
index 1e01a9c..4b203f6 100644
--- a/obj/Drivers/TimeSliceOffset/subdir.mk
+++ b/obj/Drivers/TimeSliceOffset/subdir.mk
@@ -16,6 +16,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Drivers/TimeSliceOffset/%.o: ../Drivers/TimeSliceOffset/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/Hardware/src/adc.d b/obj/Hardware/src/adc.d
index ec2cc5f..8412357 100644
--- a/obj/Hardware/src/adc.d
+++ b/obj/Hardware/src/adc.d
@@ -25,7 +25,8 @@ Hardware/src/adc.o: ../Hardware/src/adc.c \
D:\psx\MPPT\git\User/ch32l103_it.h D:\psx\MPPT\git\Debug/debug.h \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_misc.h \
D:\psx\MPPT\git\Peripheral\inc/ch32l103_lptim.h \
- D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h
+ D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h \
+ D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h
D:\psx\MPPT\git\Hardware\inc/adc.h:
@@ -84,3 +85,5 @@ D:\psx\MPPT\git\Peripheral\inc/ch32l103_misc.h:
D:\psx\MPPT\git\Peripheral\inc/ch32l103_lptim.h:
D:\psx\MPPT\git\Peripheral\inc/ch32l103_opa.h:
+
+D:\psx\MPPT\git\Drivers\RingQueue2/ring_queue2.h:
diff --git a/obj/Hardware/src/adc.o b/obj/Hardware/src/adc.o
index 8c0e05d..9cb0a7a 100644
Binary files a/obj/Hardware/src/adc.o and b/obj/Hardware/src/adc.o differ
diff --git a/obj/Hardware/src/rs485.o b/obj/Hardware/src/rs485.o
index d9253d6..3d744e4 100644
Binary files a/obj/Hardware/src/rs485.o and b/obj/Hardware/src/rs485.o differ
diff --git a/obj/Hardware/src/subdir.mk b/obj/Hardware/src/subdir.mk
index 47250fb..f496f16 100644
--- a/obj/Hardware/src/subdir.mk
+++ b/obj/Hardware/src/subdir.mk
@@ -31,6 +31,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Hardware/src/%.o: ../Hardware/src/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/Peripheral/src/subdir.mk b/obj/Peripheral/src/subdir.mk
index 44aa787..e24de46 100644
--- a/obj/Peripheral/src/subdir.mk
+++ b/obj/Peripheral/src/subdir.mk
@@ -76,6 +76,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
Peripheral/src/%.o: ../Peripheral/src/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/User/subdir.mk b/obj/User/subdir.mk
index b212e0c..474a812 100644
--- a/obj/User/subdir.mk
+++ b/obj/User/subdir.mk
@@ -22,6 +22,6 @@ C_DEPS += \
# Each subdirectory must supply rules for building sources it contributes
User/%.o: ../User/%.c
- @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
+ @ @ riscv-none-embed-gcc -march=rv32imacxw -mabi=ilp32 -msmall-data-limit=8 -msave-restore -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -fno-common -Wunused -Wuninitialized -g -I"D:\psx\MPPT\git\Debug" -I"D:\psx\MPPT\git\Core" -I"D:\psx\MPPT\git\User" -I"D:\psx\MPPT\git\Peripheral\inc" -I"D:\psx\MPPT\git\App\inc" -I"D:\psx\MPPT\git\Hardware\inc" -I"D:\psx\MPPT\git\Drivers\TimeSliceOffset" -I"D:\psx\MPPT\git\Drivers\RingQueue" -I"D:\psx\MPPT\git\Drivers\RingQueue2" -std=gnu99 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "$@" "$<"
@ @
diff --git a/obj/makefile b/obj/makefile
index 1994308..c3cdef1 100644
--- a/obj/makefile
+++ b/obj/makefile
@@ -14,6 +14,7 @@ RM := rm -rf
-include Peripheral/src/subdir.mk
-include Hardware/src/subdir.mk
-include Drivers/TimeSliceOffset/subdir.mk
+-include Drivers/RingQueue2/subdir.mk
-include Drivers/RingQueue/subdir.mk
-include Debug/subdir.mk
-include Core/subdir.mk
diff --git a/obj/mppt_Nos_V0.4.bin b/obj/mppt_Nos_V0.4.bin
index df9e156..208a03f 100644
Binary files a/obj/mppt_Nos_V0.4.bin and b/obj/mppt_Nos_V0.4.bin differ
diff --git a/obj/mppt_Nos_V0.4.elf b/obj/mppt_Nos_V0.4.elf
index 842d62a..c4dcb2f 100644
Binary files a/obj/mppt_Nos_V0.4.elf and b/obj/mppt_Nos_V0.4.elf differ
diff --git a/obj/mppt_Nos_V0.4.hex b/obj/mppt_Nos_V0.4.hex
index 8c008b6..a15bc18 100644
--- a/obj/mppt_Nos_V0.4.hex
+++ b/obj/mppt_Nos_V0.4.hex
@@ -2,19 +2,19 @@
:100004000000000000000000480200004A02000056
:100014000000000040040000000000000000000098
:100024004004000040040000000000000000000044
-:10003400481E000000000000400400000000000012
+:100034004C1F00000000000040040000000000000D
:10004400400400004004000040040000400400009C
:10005400400400004004000040040000400400008C
-:100064007C1900004004000040040000BC1600009D
+:10006400F61900004004000040040000FC160000E3
:10007400400400004004000040040000400400006C
:10008400400400004004000040040000400400005C
:10009400400400004004000040040000400400004C
-:1000A40040040000561E000040040000400400000C
-:1000B4002C1E00007E1D00004004000040040000CF
+:1000A400400400005A1F0000400400004004000007
+:1000B400301F0000821E00004004000040040000C5
:1000C400400400004004000040040000400400001C
-:1000D400400400004004000040040000F21C000042
-:1000E400141A000040040000400400004004000012
-:1000F40040040000381D00004004000040040000DB
+:1000D4004004000040040000400400006C1D0000C7
+:1000E4008E1A000040040000400400004004000098
+:1000F40040040000B21D0000400400004004000061
:1001040040040000400400004004000040040000DB
:100114004004000000000000000000000000000097
:1001240000000000000000000000000000000000CB
@@ -36,11 +36,11 @@
:10022000D58D93960501D58D61B7939627009702DA
:10023000000096968682E78086FA9680C1171D8F09
:100240003E96E374C3F8A5B701A001A0EFF25FF2F8
-:100250000545EF00F03B9922EF1030527165130510
-:100260000520EF109053B707002083A507103755DE
-:1002700000001305456CEF402028112DAA85375545
-:1002800000001305456DEF402027EF200057EF20B9
-:100290008052014501B7EFF2BFED371402401C4018
+:100250000545EF00F03B9922EF10B068716513057A
+:100260000520EF10106AB707002083A50710375547
+:1002700000001305C577EF408033112DAA8537554F
+:1002800000001305C578EF408032EF20C060EF20FA
+:10029000805C014501B7EFF2BFED371402401C400E
:1002A0003707FF08411193E717001CC05C40F98F26
:1002B0005CC01C403707F7FE6D17F98F1CC01C404F
:1002C0003707FCFF7D17F98F1CC05C40370701FF23
@@ -68,10 +68,10 @@
:10042000062021A8B7160240D4421396E600E356F0
:1004300006FEB7163D0093860690B387D70269B7CC
:1004400001A0970100209381E14B17510020130177
-:1004500061BB175500001305A5799705002093850A
+:1004500061BB176500001305E584970500209385AF
:1004600065BA1386818163FAC5008322050023A043
:10047000550011059105E3EAC5FE13858181938539
-:10048000C1D26377B500232005001105E36DB5FEE9
+:1004800081C86377B500232005001105E36DB5FE33
:10049000FD42739002BC8D427390428093028008AB
:1004A0007390023097020000938202B693E232000A
:1004B00073905230EFF03FDE97020000938242D9F2
@@ -319,8 +319,8 @@
:1013D0004D360145593C371501409307400F4C00ED
:1013E00013050580372401407C8202C6EFF0AFE58B
:1013F00013050440EFF04F8D13050440EFF0EFAB01
-:10140000AA852399A182375500001305456EEF3058
-:10141000A00EB7070E003ECE0C088547130504400A
+:10140000AA852398A182375500001305C579EF30CE
+:10141000001AB7070E003ECE0C088547130504409E
:101420002302F10202C802CA02CC02D0EFF04F8CB4
:10143000854513050440EFF00F91854513050440E1
:10144000EFF08FA5814513050440EFF04FA213057F
@@ -346,1146 +346,1157 @@
:10158000130504C0FC83293E130504C085450D31B5
:10159000130504C08145B139130504C085452D39B3
:1015A0008545130504C0CD3E05616FE0BFBEEFE287
-:1015B0003FBC79711306000281450808EFE05FBE69
-:1015C0008545114502C202C402C6EFF09F9A8545C7
-:1015D00013050020EFF0FF990145EFF01F89371543
-:1015E0000140B9474C0013050580372401407C8237
-:1015F00002C6EFF04FC513050440EFE0FFEC130502
-:101600000440EFF08F8B2399A18285473ECA0C08D6
-:101610008D47130504402302F10202C802CC02CE1A
-:1016200002D0EFE0FFEC854513050440EFE0BFF288
-:10163000854513050440EFE01FF18545130504407F
-:10164000EFF08F85814513050440EFF04F821305BD
-:101650000440EFE07FF1930404402685EFE07FF142
-:101660006DFD1305044037240140EFE01FF19304A2
-:1016700004402685EFE01FF16DFD130504409546FB
-:1016800005468545EFE01FF21305044095460946DF
-:101690008945EFE03FF195460D46130504408D4521
-:1016A000EFE05FF0B165938505B8794551358D451B
-:1016B0001385C182E53345616FE0DFAD4111094516
-:1016C00022C626C4EFF0EFAD0DC90945EFF00FAE0D
-:1016D0001384C1820E20B75400001385C46FEF201D
-:1016E000B0612E201385C46FEF2010614E20375556
-:1016F000000013050570EF2030603244A244410120
-:1017000073002030EFE2DFA6011185452145EFF09F
-:101710005F8685451165EFF0BF8737140140856707
-:101720008D447C808A85C147130504C03EC426C20F
-:10173000EFF06FB1130504C08565EFF00FBE896748
-:1017400061498A85130504C07C804AC426C2EFF033
-:101750008FAF91677C808A859147130504C03EC492
-:10176000EFF06FAEE1778A85130504C07C804AC430
-:1017700026C2EFF04FADB70704013EC6B70702001F
-:101780003EC8B70700028507374400403ECAA1475C
-:101790003ECC6C009D4713050480FC86EFF01F8350
-:1017A000854513050480EFF09F8505616FE09F9EDE
-:1017B000EFE27F9AB74400402A891304900C938982
-:1017C000048089454E85EFF0BF8505C9CA8513851C
-:1017D0000480B7440040EFF03F841304900C138959
-:1017E000048085454A85EFF0BF8319CD13850480B9
-:1017F000EFF0DF821375F50F31A07D141374F40F31
-:1018000069F001456FE07F987D141374F40F71F84F
-:10181000CDBFEFE2FF952A89371501402E841305CD
-:1018200005C08565B2840146EFF06FAF0D454937BD
-:10183000135504011375F50FA53F13558400137557
-:10184000F50FBD371375F40FA53701449317040145
-:10185000C18363EC97003715014005468565130584
-:1018600005C0EFF0CFAB6FE0FF921305F00F8937A3
-:10187000B307890088A30504D1BFEFE27F8F411130
-:1018800085451145EFF0EFEE85452145EFF06FEE10
-:10189000930700107C8237150140C1473EC64C00BB
-:1018A0008D47130505803EC4EFF0EF9941016FE0CD
-:1018B0007F8EEFE2FF8B411185454145EFF06FEBE5
-:1018C0008567938707807C8237150140C1473EC6F4
-:1018D0004C008D47130505803EC4EFF0CF964101C3
-:1018E0006FE05F8BEFE2DF88411185452145EFF026
-:1018F0004FE893070010371401407C82C1473EC671
-:101900004C008D47130504C03EC4EFF0CF93014651
-:1019100093050010130504C0EFF06FA041016FE0C4
-:101920007F87EFE2FF84797185452545EFF06FE40D
-:10193000914737150140FC824C089307800413053A
-:1019400005C03ECEEFF02F9089450545EFF08FB0F2
-:10195000914705443ED00810B1473ED422D602D26A
-:10196000EFF04F85930780117C86680089475C877C
-:1019700022C8EFF04FCA45616FE0DF814111114588
-:1019800022C6EFF0CF8985476315F5022A841145F9
-:10199000EFF0CF8A03C7218509EFB7250000814604
-:1019A0001306803E9385E54A138541B023898184DF
-:1019B000E1293244410173002030EFE26FFB79717D
-:1019C00085451545EFF0EFDA856737150140FC8254
-:1019D0004C0893078002130505803ECEEFF0AF86DA
-:1019E000B1450145EFF00FA7856705443ED00810CB
-:1019F000A1473ED422D602D2EFE0DFFB930780134B
-:101A00007C8668008D475C8722C8EFF0CFC04561B7
-:101A10006FE04FF80565EFF08F8085476314F5029E
-:101A20000565EFF0AF8183C74184B72500008507C6
-:101A300081461306803E93854551138541AF23822D
-:101A4000F184992173002030EFE28FF24111854536
-:101A50002145EFF00FD285451145EFF06FD3930785
-:101A60000020371401407C82E1473EC64C008D4780
-:101A7000130504C03EC4EFE01FFD930700084C00AF
-:101A8000130504C07C82EFE01FFC41016FE08FF082
-:101A9000EFE20FEE01114D3F371400409307F01DA8
-:101AA0008A85130504803EC002C223140100230569
-:101AB0000100EFF08FD7130504808545EFF0CFF1DB
-:101AC000C167938707066C00130504803EC8231B7B
-:101AD000010002C6EFF08FE413050480A145EFF08A
-:101AE0002FF2130504808545EFF00FEB85451305B4
-:101AF0000480EFF0EFEB05616FE0CFE9411122C404
-:101B00002A8408414AC24EC006C6EF20806BB757F0
-:101B1000000003A6877183A6C7712A89AE89EF00EA
-:101B20001062635F0502B757000083A787701CC06F
-:101B3000B757000083A507710840EF10706EEF20C3
-:101B400000569315050137150040C1811305058026
-:101B5000EFF06FECB2402244124982494101828089
-:101B6000B757000003A6077283A647724A85CE8541
-:101B7000EF001052E35EA0FAB757000083A7C770CA
-:101B80007DB7EFE2EFDE797137140140C1472A8952
-:101B9000FC828D44C1474C08130504C03ECE26CCC0
-:101BA000EFE07FEA0146130504C0C145EFE03FF7CF
-:101BB00085452145EFF0EFBB854537050800EFF07F
-:101BC0002FBD8547FC824C08E147130504C026CC95
-:101BD0003ECEEFE05FE7894491474C08130504C00F
-:101BE000E482375400403ECEEFE0FFE50C10B7072B
-:101BF0000C00130504C04AD03ED402D223160102C1
-:101C0000EFF00FE59307D0137C86680085473EC848
-:101C10004487EFF04FA00546130504C093055052CA
-:101C2000EFF00FF08545130504C0EFF00FEE4561AE
-:101C30006FE04FD6EFE2CFD37971371401409307AD
-:101C400000022A89FC828D44C1474C08130504C058
-:101C50003ECE26CCEFE03FDF0146130504C09305DE
-:101C60000002EFE0DFEB85452145EFF08FB08545C1
-:101C700037050400EFF0CFB193070040FC824C0819
-:101C8000E147130504C026CC3ECEEFE0DFDB8567DD
-:101C900093870780FC824C089147130504C03ECE11
-:101CA00037540040EFE03FDA0C10B7070C00130583
-:101CB00004804AD03ED402D223160102EFF04FD95D
-:101CC000930770137C8685475C87680085473EC80C
-:101CD000EFF06F9405461305048093055052EFF022
-:101CE0002FE4854513050480EFF02FE245616FE096
-:101CF0006FCA411122C63754004093055052130554
-:101D00000480EFF0EFE60DC513050480EFF02FE53A
-:101D10009375F50F238AB18203A581851C4D104967
-:101D200054498507B3E7C7026384D700310505240A
-:101D30003244410173002030411122C63754004023
-:101D400093055052130504C0EFF08FE20DC5130543
-:101D500004C0EFF0CFE09375F50F238CB18203A59B
-:101D6000C1851C4D104954498507B3E7C7026384F8
-:101D7000D7003105E92A3244410173002030411176
-:101D800022C637040040854513050440EFF00FCA12
-:101D900019C5854513050440EFF0CFCA512B3244D5
-:101DA000410173002030EFE2AFBC01112E84AA8400
-:101DB00085450545EFF0CF9D4C083705004026CA04
-:101DC000E084231E0100231D0100EFF00FA605464D
-:101DD000854537050040EFF00FBF9307C0027C86B2
-:101DE00089475C87680085473EC8EFF0CF8285450C
-:101DF00037050040EFF04FBA05616FE0AFB9EFE291
-:101E00002FB7B707002083A507108967938707714D
-:101E1000B3D5F502A9473305F502FD15C205C18109
-:101E20007D154205418141376FE0CFB685453705C5
-:101E30000040EFF0AFBF19C5854537050040EFF012
-:101E40006FC0D12873002030B7F700E023A207004D
-:101E5000D92073002030411122C637340140854516
-:101E6000130504C0EFF08FBC01CD130504C08545F8
-:101E7000EFF04FBD3755000013058572EF20007954
-:101E800032444101730020301DC9B296C206C1829E
-:101E900052A136A10CC509EE85471CA183A6C183BA
-:101EA0009387C183368701EB54C588C3014582807F
-:101EB00023000500E5B76306A7005847EDB77D5539
-:101EC0008280054582800DC583A7C1831387C183A6
-:101ED00099E305458280D4476396A6005845D8C744
-:101EE000014582806394A70014C3DDBFB687CDB7D8
-:101EF0007D558280EFE2CFA703A4C18375DC1C204F
-:101F000093F7F70F99C75E2099C3230004001C4480
-:101F100082974044E5B783A7C183054691E3828059
-:101F2000D62381CEBA237D1742074183BAA3BA23B1
-:101F30004207418319E390A3B6A3DC47C5B7232624
-:101F400005000CC150C123240500054582805C4575
-:101F5000544118458507B3E7D702638EE70058451B
-:101F60001C41BA978CA35C4558418507B3E7E7024B
-:101F70005CC50545828079558280B707002083A71C
-:101F800007100967130707F4B3D7E702C207C18335
-:101F90002391F1842390F1848280EFE26F9D2A8463
-:101FA0001165011185451105EFE0BFFC9307002085
-:101FB0007C82371501408D473EC44C00E147130534
-:101FC00005803EC6EFE03FA822C837440140B7076E
-:101FD00008000C08130504803ECC02CA231E010031
-:101FE000EFF00FA7854513050480EFF00FB20561F0
-:101FF0006FE04F9AEFE22F96B7440140AE893289E5
-:10200000014493840480634524014A856FE0EF977F
-:10201000930500042685EFF00FB57DD9B3878900BD
-:102020008385070026850504C205C181EFF0AFB2A4
-:10203000D9BF138781801C439386C1D23E95636BC1
-:10204000D500B75600209386068063E5A60008C336
-:102050003E858280FD57EDBF411122C60008B707BB
-:10206000002003D7871693161700BD0691829206AB
-:102070003301D14085468A856317D5049387871637
-:10208000814613960601418289076367E6021303BE
-:10209000F7FF814763C56708014589471306E7FFD6
-:1020A00063C4C70871173345E50242054181130136
-:1020B00004FF3244410182808A23139616002E9633
-:1020C0000AA285067DBF2A868D460145E311D6FE0C
-:1020D0009387871681461396060141828907E37824
-:1020E000E6FA03D5870C139616002E960AA28506EB
-:1020F000DDB7139616002E96035806008358260067
-:1021000063F6080123101601231106018506C20695
-:10211000C182E3C0A6FE8507C207C183A5BF330500
-:10212000F74081467D15F5B793961700AE96962237
-:102130008507C207369542054181C18395B703974C
-:10214000218381472A97634F070009CD05669306CF
-:10215000F6FFB6876358C700AA876305D5009317B3
-:102160000701C1833E858280EFD2FFFE41113724F3
-:102170000140AA8944001309010113040440CE85DB
-:10218000228595460546EFE0EFC185452285EFE0C3
-:10219000EFBF89452285EFE0EFCC65DD2285EFE0DA
-:1021A000EFCB42054185613F8AA08904E31999FC80
-:1021B0001547814735A013961700140885073696F2
-:1021C000080893961700AA96835546FF03D546FF45
-:1021D0006376B500231AA6FE239AB6FEC207C18312
-:1021E000E3CBE7FC7D1771F728843C8541013E95E0
-:1021F0004205418105816FD05FF9EFD27FF7054538
-:10220000A13DEF10306FB757000083A58773EF1023
-:1022100030016FD03FF8130500008280EFD25FF5E8
-:102220000D451D3DEF10106DB757000083A5877356
-:10223000EF10007F6FD01FF6EFD29FF311452D37BF
-:10224000EF10506BB757000083A50775EF10407D66
-:102250006FD05FF4EFD2DFF1194539379567938777
-:10226000477501479306100F92236369C5023A85AB
-:10227000EF10A037B757000003A6077483A6477472
-:10228000EF004077B757000003A6877483A6C77492
-:10229000EF00D041EF10B07D6FD0DFEF0507890769
-:1022A000E314D7FC13050000C5BFEFD27FEC3971F2
-:1022B0006800130620038145EFF0AFD51886930719
-:1022C0003005370500206317F70298869307C0048E
-:1022D0006312F7020347D103D947631DF7001306C2
-:1022E00020036C0013050502EF20E0150545216170
-:1022F0006FD05FEAB707002003C747051305050243
-:102300009387470518A1983318B1B82338A1B8337B
-:1023100038B1D82358A1D83358B1F82378A1F8336D
-:1023200078B19827DC3718A5A308F5020145C1B795
-:10233000EFD27FE2D935138441AC9357850048B87A
-:102340007CA89357050161817CB808ACC13D9357C7
-:10235000850008BC3CAC9357050161813CBCB709C2
-:10236000002048AC4D3D9357850083D589163759D9
-:10237000000048B47CA493570501618108A81305A7
-:10238000C96F7CB4EF20401768285C38B764000040
-:1023900022055D8D7C3883A58493C207C98F082CE4
-:1023A00062055D8DEF10C067EF105049AA851305D7
-:1023B000C96FEF20601468245C3483A584932205E0
-:1023C0005D8D7C34C207C98F082862055D8DEF10D2
-:1023D0002065EF10B046AA851305C96FEF20C01124
-:1023E000282C1C3C83A5849322055D8D3C3CC207B0
-:1023F000C98F482C62055D8DEF108062EF1010448C
-:10240000AA853755000013050570EF20E00E2394D0
-:1024100009166FD09FD7EFD2BFD5938741859843D8
-:10242000D566938606186307D702050798C3371445
-:102430000140856493850480130504800546EFE020
-:102440000FEE01469385048013050480EFE02FED25
-:102450006FD05FD423A00700B707EFBE37E700E0D7
-:10246000938707083CC7E1B7EFD29FD09387518489
-:1024700090233714014093050010133616001305FE
-:10248000048090A3EFE0AFE91387D1841C23850774
-:1024900093F7F70F1CA329476399E70005469305B7
-:1024A0000010130504C0EFE08FE76FD0BFCE138795
-:1024B000E1841C233706002013060602850793F7E4
-:1024C000F70F1CA38346C6028345B602A206CD8E33
-:1024D0006391D704EFD2DFC9138441B0138541B0B3
-:1024E0002300070023890184EFF0FF9D23000400EF
-:1024F000371401409145130504C0EFE0CFE001E936
-:10250000014693050010130504C0EFE04FE16FD0C2
-:102510007FC88280EFD2DFC503C72185854713843A
-:10252000F184938441846310F702138941AF1385CA
-:1025300041AF230004002398018423800400EFF0BE
-:102540009F9823000900982085476315F7001C20F9
-:1025500085071CA0370900209306090283C7E602FD
-:1025600003C6D6021420A207D18F13090902639073
-:10257000F60223000400138441AF138541AF23808A
-:102580000400EFF05F94230004006FD0BFC08547C4
-:1025900063FDE70037150140014693050010130560
-:1025A00005C0EFE0CFD723000400371501409305A5
-:1025B0000010130505C0EFE0AFD59387018501E555
-:1025C0009A2305079AA3034709030346F9029623B2
-:1025D0002207518FE39BE6FA371501400546930524
-:1025E0000010130505C023900700EFE04FD361B73B
-:1025F000EFD27FB6B70400209384040283C724027D
-:1026000003C51402A2075D8DEF10D02EB76700003E
-:1026100083A58793138441ACEF104004BC209389B9
-:102620008184370700203CA0BC3013074705238274
-:1026300001AC3CB0DC20A38201AC23A0A9005CA0CB
-:10264000DC30138941AC5CB0FC207CA0FC307CB059
-:102650009C241CA43C271437A207D58F1CB4A1834B
-:102660003CA45C273437A207D58F3CB4A1835CA47B
-:10267000EFF07FBA9357850048B47CA493570501C7
-:1026800061817CB408A8EFF05FB79357850048B824
-:102690007CA89357050161817CB808ACEFF01FB8A6
-:1026A000935785015CAC7C24443413578500A20702
-:1026B000C58F643438AC13570501C204C58F042894
-:1026C00038BC5838E204DD8C7C28AA8508BCA207F7
-:1026D0005D8F7C38C207D98F182C62073365F700ED
-:1026E000EF10405D83A50900EF108033AA85268591
-:1026F000EF10405C9357850008B83CA8935705013C
-:1027000061813CB848A8EFF03FB393578500A30020
-:10271000A4022301F402935705016181A301F4028D
-:102720002302A402EFF01FB3935785002303F402A2
-:1027300093570501A303F4023C280438A302A40222
-:10274000A207C58F243861812304A402C204C58F67
-:102750004428E204DD8CB767000083A587942685B2
-:10276000EF104023634B0500B757000083A50775A2
-:102770002685EF10C0196355A00005472386E18424
-:10278000B714014093050010138504C0EFE04FB863
-:10279000814701C99145138504C0EFE0CFB6B33737
-:1027A000A000A304F90223050902A30509022306D8
-:1027B00009026FD09F9DEFD2BF9BEFF01FAFEFF0EC
-:1027C0003FE3B725000081461306803E938585468A
-:1027D000138541B1EFF04FEBB7250000F946130622
-:1027E000803E93856541138541B2EFF0EFE9EFE05C
-:1027F0001FDCEFF02FF06FD0FF99EFD27F970545E8
-:10280000EFF0EFDF2D28EFF0AFA8EFE03FBAEFF0E9
-:10281000CF86EFF00F8AEFE0FFEEEFF0AF8CEFF036
-:102820004F90EFF08F99B767000083A7C79423A656
-:10283000F1801385C180EFF06FAC6FD0BF95EFD200
-:102840003F9337040020130444061306800C93853D
-:1028500041B31305C400EFF08FEE71651305052039
-:10286000EFF04FBD854404A01306C0129385C1BF8D
-:102870001305840223AC8184EFF06FEC485071049F
-:10288000EFF02FB004A0014523AE81846FD09F905C
-:1028900013D74501B7071000FD1713D8460113776A
-:1028A000F77F9308F07F33F3B7002A8EF58FFD8111
-:1028B000B28E1378F87FFD82630817036300180354
-:1028C0000DEBB368A300631408005D8E29CA63850D
-:1028D00008046388D502054595ED8280B3E8C700FA
-:1028E000E38008FE795582803365A30065FD630CA3
-:1028F000E802631408005D8E79DEE39ED5FCE34CAC
-:10290000E8FC63480701E3E867FC6303F302637FC5
-:10291000F30081E57D558280F5DE05458280014525
-:10292000E39B08FA82805D8E69DA6DBF0145828083
-:10293000E3E3CEFB0145E372DEFBE5F1E1BF13D734
-:102940004501B7071000FD1713D846011377F77F2D
-:102950009308F07F33FEB700AA8EF58FFD81328F8A
-:102960001378F87FFD82630E1703630D180129E3C6
-:10297000B368AE00631F08005D8E01EE0143638CF7
-:10298000080421A8B3E8C7000943639608046DD37F
-:1029900005A0638408046385D50205438DCD7D536E
-:1029A0001DA8B368AE00094363970802630AE802F2
-:1029B000631408005D8E75D2E391D5FEE34FE8FC09
-:1029C00063490701E3EBC7FD630FFE000143637436
-:1029D000FE00F1D505431A858280EDFE7D53E5BFEB
-:1029E0005D8E79DACDBFE36ADFFB0143E3F5EEFFED
-:1029F000F5F175B739714AD813D945014ED652D47D
-:102A000056D29399C50006DE22DC26DA5AD05ECE75
-:102A10001379F97F2A8A93D9C90093DAF501630DF6
-:102A2000090E9307F07F6306F9181354D5018E0938
-:102A3000B36934013704800033E48900931435000E
-:102A4000130919C08149814B13D74601139AC60057
-:102A50001377F77FB285135ACA0013DBF601630BB5
-:102A600007109307F07F6303F7049357D6010E0A0C
-:102A700033EA4701130717C0B7078000B367FA00AE
-:102A8000931536003A99814833C76A01BD463A85A5
-:102A90001308190063E8361717360000130686EB93
-:102AA0008A09B29983A60900B2968286B367CA00E2
-:102AB0001309F97F6399071293E929008145894831
-:102AC000E1B701479307F07F3704080081443204DF
-:102AD000D20731807E075D8C598CA285F2506254FA
-:102AE00026854259D254B259225A925A025BF24B6D
-:102AF000216182805A853E84AE84C68B8947638D6E
-:102B0000FB0E8D47E38FFBFA85472A87639EFB38D0
-:102B100081470144814465BF33E4A90061C036C6E2
-:102B200032C4638C092A4E85EF10100B2246B24640
-:102B3000AA87130755FF7544938487FF198CB399AF
-:102B4000990033548A0033643401B3149A0013D7C4
-:102B500046011309D0C0139AC6001377F77F3309D3
-:102B6000F9408149814BB285135ACA0013DBF60143
-:102B7000E31907EEB367CA00B1C7630F0A22528593
-:102B800032C4EF10700522462A87930655FFF54799
-:102B9000930587FF958F331ABA00B357F600B3E752
-:102BA0004701B315B6003309E9401309D9C081487C
-:102BB000E1BD33E4A90001ECA14981441309F07F90
-:102BC000894B59B593E919008145854875BD4E84F7
-:102BD000AA84B1491309F07F8D4BBDB59149814459
-:102BE0000149854B95B593E93900D2878D4869BD78
-:102BF00089475685E397FBF02A879307F07F0144C6
-:102C00008144F1B5C16E1386FEFF93D6040113DE35
-:102C10000501F18CF18D338695023383B60293580A
-:102C2000060133059E021A95AA98B382C60363F380
-:102C30006800F692C16F1383FFFF33F5670093D3EB
-:102C40000701B3F76800C207337366003E9333068B
-:102C5000950293D80801B387A602135F0601B384D7
-:102C60009302BE94FA94B38E760263F3F400FE9E50
-:102C7000416A9307FAFF935F0401B376F400B3F956
-:102C8000F4007D8EC1803384D502C209338FD40114
-:102C9000B299CE98B307DE02935E0401B385BF02FA
-:102CA000AE97BE9E330EFE0363F3BE00529EC16715
-:102CB0009385F7FF33F6BE006D8C4206229693DEB5
-:102CC0000E01B305D502769E3385AF0213D40501FC
-:102CD000B386D302AA96A296B38FF30363F3A6003A
-:102CE000BE9F41657D15B3F7A600C2076D8DAA97FB
-:102CF000B3855800B3B93501FA97B29533843701DB
-:102D000033B6C500B30EC4013385CE00333434016D
-:102D1000B3B7E701C18F33BECE0113D406013336FA
-:102D2000C5003E943366CE009394950032947E9411
-:102D3000B3E46400260493567501B3349000DD813A
-:102D400093179500CD8C558CDD8C9317740063DB45
-:102D5000070093D7140085889316F401DD8CD58C79
-:102D6000058042899307F93F6359F00893F6740090
-:102D700081CE93F6F40011466388C6009386440022
-:102D8000B3B496002694B6849316740063D80600F4
-:102D9000B70700FFFD177D8C930709409306E07F7E
-:102DA00063CFF60E93D634009314D4012604D58C49
-:102DB000318093F7F77F21BB328532C4EF10C061B9
-:102DC00093065501F147130705022246E3D1D7DCEC
-:102DD0006115B317A6008145F9B3EF10E05F130743
-:102DE0005501F145930705022246B246E3D5E5D4E5
-:102DF00061153314AA00814499BB85469D8EB1E7C5
-:102E00001309E941B3972401B3D4D4003319240141
-:102E1000B337F000B3649900DD8C93F77400B356B8
-:102E2000D40081CF93F7F40011466388C7009387DD
-:102E30004400B3B49700A696BE849397860063D8E7
-:102E4000070485470144814459B113068003E341D7
-:102E5000D6CC7D46E356D6FA0556B307F640930521
-:102E600000023356F4006387B6001309E943B31731
-:102E70002401DD8CB3349000D18C93F674000144AE
-:102E800099CA93F7F40011468146E392C7FA139466
-:102E900096003180F6068D80D58C81470DB9930759
-:102EA000F07F0144814425B142896DBD3707100090
-:102EB0007D1701113373B70093D84601758F935E68
-:102EC000D60122CC26CA0E0393D445019357D501CF
-:102ED0000E0706CE4AC84EC693F8F87F130EF07F51
-:102EE00033E7EE0093F4F47F13D4F50133E3670086
-:102EF000131F3500FD82931E36006380C81993C6E8
-:102F00001600B38514416305D4126351B018638B66
-:102F1000081AB70780005D8F6381C4599307800347
-:102F200063C4B734FD4763C5B748930700028D8F6C
-:102F3000B3D9BE003318F700B39EFE0033683801E2
-:102F40003357B700B339D001336838013303E34056
-:102F5000B3090F41B3373F013306F340931786009F
-:102F600063D30724370980007D1933792601630F65
-:102F7000092C4A85EF104046130785FF930700028E
-:102F8000998FB3D7F9003316E900D18FB399E900CF
-:102F90006344972A058F13061700FD4663C5C63A9A
-:102FA00013070002118FB3D6C9003398E900339795
-:102FB000E700558F33380001B369070133D6C700E6
-:102FC000814493F7790081CF93F6F90091476388A4
-:102FD000F6009386490033B836014296B6899317B6
-:102FE000860063D6071C138714009307F07F0588BB
-:102FF0006306F720B70780FFFD17F18F1398D701FD
-:1030000093D93900A60733683801B1831377F77F66
-:103010009396C7005207B1827E04D98EC18EF240CA
-:103020006244D2444249B2494285B68505618280F4
-:103030006356B00A638A0812B70780005D8F638702
-:10304000C42D9307800363C7B718FD4763D2B73C0D
-:10305000138805FE93070002B3590701638AF50040
-:1030600093070004B385B7403317B700B3EEEE0003
-:103070003338D0013368380195A2B367D7019385FF
-:10308000148099E393C61600630AD404D1E19387B0
-:10309000140093F7E77F6399071EB367E301336872
-:1030A000D701639204166382073C63160842131823
-:1030B00035009316D3011358380033E806019357AF
-:1030C000330019A2B367D7016385071A9387F5FF09
-:1030D000638B073A638CC523BE8589B56399051C4C
-:1030E0009386140093F7E67FC1EFB367E301639023
-:1030F0000436638D0744B367D701639407460E0512
-:103100001318D3010D813368A800935733006DA8BD
-:10311000B385984063970420B367E301638D07305C
-:103120009387F5FF638907401305F07F6383A5202C
-:10313000BE859307800363C2B72AFD4763C8B73CC7
-:10314000930700028D8F3318F3003356BF00B31777
-:10315000FF003368C800B339F0003353B30033685D
-:10316000380133076740B5ACB367D70163830710F5
-:103170009387F5FF638F071E6380C52FBE85D1B58A
-:103180009307F07F638BF606FA9E33B6EE01B30722
-:10319000E300B2971398F70193DE1E00B369D801DC
-:1031A00013D61700B68493F77900E39F07E09317CF
-:1031B000D60113D839003368F800A6859357360036
-:1031C0001307F07F6380E506B207B18313F7F57F3D
-:1031D00005883DBD3367D7013338E000B309E80106
-:1031E000B3B7E9013386670093178600E3DD07FA7A
-:1031F00085049307F07F639CF41805881307F07F1C
-:103200008147014831B5639107106301083C1318E9
-:1032100036009317D701135838003368F800368406
-:1032200093573700B367F800E9DB01441307F07FD9
-:10323000B70708000148E9BB370680FF7D167D8E81
-:1032400093F77900998CE39107D895B74E85EF10E5
-:10325000A01813078501FD47E3D2E7D2130685FFC7
-:10326000B397C90081492DB33368D70133380001C2
-:10327000C5B1131835009317D301135838003368BC
-:10328000F800935733002DBFB309DF413309E34002
-:1032900033363F013309C9409317890063CA0720B9
-:1032A00033E82901E31508CC8147014431BFB385D8
-:1032B000984063810414B70680009307F07F33635E
-:1032C000D3006381F8209307800363CCB722FD47C6
-:1032D00063C9B72C930700028D8F3318F300B356E0
-:1032E000BF00B317FF003368D800B339F000335381
-:1032F000B300336838011A97B309D801B3B7D901BD
-:103300003386E700C684CDB5E31108F21318350003
-:103310009317D301135838003368F80093573300DC
-:1033200011B7370580009307F07F3363A300E39262
-:10333000F8E00E061318D7010D823368C8009357C2
-:1033400037003684C5B505179306000233D7E7006A
-:10335000630AD600930600043386C6403396C7003E
-:10336000B3E9C90033383001B369E800014681444C
-:103370001DBDB309DF01B307E30033BFE9013386A5
-:10338000E701931786008544E3DF07E08944B70728
-:1033900080FFFD17F18F13D7190013F81900336858
-:1033A00007019399F701B3E9090113D6170011B981
-:1033B000138805FE93070002B3590701638AF500DD
-:1033C00093070004B385B7403317B700B3EEEE00A0
-:1033D0003338D00133683801A5BE3363E301333895
-:1033E0006000B3890E41B3B73E013306F740C6848F
-:1033F0003684ADB6B367E301638707189387F5FF9B
-:10340000638C071C9306F07F638ED50ABE8565BD6D
-:10341000930700028D8FB3D9BE003318F700B39E17
-:10342000FE00336838013357B700B339D001336831
-:1034300038013A9365B3131836009317D701135820
-:10344000380033E8070136849357370095BBBDCB6E
-:103450003367D701E31B07DC0E051318D3010D8179
-:103460003368A8009357330075BBE30F08E21318C5
-:1034700036009317D701135838003368F8003684A4
-:103480009357370091B3B309DF41B307E340333FAC
-:103490003F013386E7418544D1B4131835009316B4
-:1034A000D3011358380033E80601935733009DBB0E
-:1034B000B389EE413306674033B93E0133092641F3
-:1034C000368475B40E061318D7010D823368C80010
-:1034D0009357370081BBB309DF41B307E34033366D
-:1034E0003F013386C7409317860063D7070AB38925
-:1034F000EE41B3076740B3BE3E013386D741368401
-:10350000C9B43363E30133386000FDB3138805FEAB
-:1035100093070002B3590301638AF500930700047F
-:10352000B385B7403313B300336F6F003338E00116
-:10353000336838017DB5B389EE41B3076740B3BE48
-:103540003E013386D7413684854409BC13183600C2
-:103550009317D701135838003368F8009357370092
-:10356000A5B1B309DF01B307E30033BFE901338637
-:10357000E70193178600E3D807C2B70780FFFD175E
-:103580007D8E85440DB10E061318D7010D82336868
-:10359000C800935737002DB133E8C900E30608D0BF
-:1035A00019B1138805FE93070002B3590301638A1A
-:1035B000F50093070004B385B7403313B300336FAE
-:1035C0006F003338E001336838013DB3014413071D
-:1035D000F07FB70708002DBCB309DF01B307E30094
-:1035E000B3BED9013386D70169BB411106C622C4D7
-:1035F00026C20DCD9357F541B3C4A7009D8C2A84F4
-:103600002685EF00705D9306E041898EA9477D8095
-:1036100093F6F67F63CDA7022D47098FB3D7E40059
-:103620005505B207B394A400B18329A00144814693
-:1036300081478144B207D206B1837E04D58FC18F02
-:10364000B24022442685BE859244410182805515B0
-:10365000B397A400B207B1838144E9BF397193578E
-:1036600075014AD856D25ECE931A95001359F501CA
-:1036700006DE22DC26DA4ED652D45AD093F7F70F64
-:1036800093DA9A00CA8B638207121307F00F6384E0
-:10369000E7128E0A37070004B3EAEA00138A17F824
-:1036A0000144014B93D775019394950093F7F70F5D
-:1036B000A58093D9F501FDC71307F00F6387E702D3
-:1036C0008E04938717F837070004D98C330AFA4021
-:1036D0008146558C172700001307C72B0A043A941C
-:1036E0001C4033493901BA978287130A1AF0F9E866
-:1036F0008946558C172700001307C72D0A043A94F2
-:103700001C4033493901BA97828701491307F00FEA
-:10371000B707400013959700F25062549317770152
-:1037200025817E095D8D33652501D2544259B259F8
-:10373000225A925A025BF24B216182801307F00FEA
-:103740008147C9BFA68ACE8B368B8947630BFB1A8C
-:103750008D47E30CFBFA8547630AFB0A1307FA0758
-:1037600013F91B006357E01293F77A0099C793F798
-:10377000FA0091466383D700910A93974A0063D970
-:103780000700B70700F8FD17B3FAFA0013070A0895
-:103790009307E00FE3C4E7FA93976A00A5831377D2
-:1037A000F70F8DBFB9E48546A9B763940A021144A7
-:1037B000014A054BC5BD63990A002144130AF00F65
-:1037C000094BCDB58D4631B73144130AF00F0D4B7F
-:1037D000D1BD56852EC6EF0030409307B5FFB39A92
-:1037E000FA009307A0F8338AA7400144014BB24581
-:1037F00055BD2685EF00503E1307B5FFB307AA005D
-:10380000B394E400138A67078146E1B513F91B00FE
-:103810000147814701B74166139554007D169357C0
-:103820000501698E63FA9A0AB3D5FA027D1AD68623
-:1038300001473388C502B3F6F602C206558F637B93
-:1038400007012A979386F5FF6368A70A6376070B3B
-:10385000F9152A9733070741B356F7023377F70272
-:10386000B38AC6029317070163FB5701AA97138710
-:10387000F6FF63E1A70863FF5707F916AA97C20589
-:10388000B38A5741D58DB33A5001B3EA5501CA8B7B
-:10389000F1B58546998E11C76D4601478147E34BC7
-:1038A000D6E6130AEA09339A4A01B3D7DA00B33AE3
-:1038B0004001B3E7570113F7770019C713F7F70073
-:1038C00091466303D7009107139757006348070297
-:1038D0009A07A58301473DBD93D61A00B3D5F602DA
-:1038E0001397FA0141833388C502B1B7CE8B368B6B
-:1038F000814AA1BDBA8661B7B685A9BF0547814790
-:1039000011BD13F91B001307F00F814721B5935622
-:103910007501B7078000FD1713D6750193F6F60FF2
-:103920001308F00FB3F8A7001357F501ED8F1376C6
-:10393000F60FFD8163810603630C06018DE211E23F
-:10394000B1C3638E08026305B70405451DE7828095
-:10395000F5D779558280E39E08FE6309D60211E20D
-:10396000EDD7E314B7FEE342D6FE63C7C600E3EE2D
-:1039700017FD0145E3FDF8FC01E77D558280F5DD8B
-:10398000054582800145E39208FC8280F9DBD1B7CE
-:103990008146E1BF93567501B7078000FD1713D626
-:1039A000750193F6F60F1308F00FB3F8A70013573D
-:1039B000F501ED8F1376F60FFD816387060363092A
-:1039C000060185EA11EA89EB0145639B08008280C4
-:1039D0000945F5FFE5DA31A8638C08026300B704F6
-:1039E000054575D77D5582800945639808026304B3
-:1039F000D60211E2F5D7E315B7FEE343D6FE63C75F
-:103A0000C600E3EF17FD0145E3F3F8FC19E3D9BF66
-:103A1000F1D905458280E5D3828082808146C5B791
-:103A2000797122D4135475014ECE52CC931995005E
-:103A300006D626D24AD056CA5AC81374F40F93D960
-:103A40009900135AF50169C49307F00F6308F40E47
-:103A50009397390037070004B3E9E700130414F81B
-:103A60008144014B13D77501939A95001377F70F93
-:103A700093DA9A0013D9F50145CF9307F00F630C41
-:103A8000F7028E0A130717F8B7070004B3EAFA0023
-:103A90003A94014633452A01BD47AA86930514008E
-:103AA00063E29710172700001307C7F68A04BA9439
-:103AB0009C40BA9782871304F40F63980A0C93E42E
-:103AC00024000946C1BF01451307F00FB7074000A6
-:103AD000B2502254A6075E07A5837E05D98F925463
-:103AE0000259F249624AD24A424B5D8D4561828059
-:103AF000CA86D689328B89476301FB0A8D47E30466
-:103B0000FBFC854736856312FB1A01478147C9B71D
-:103B1000639E090413D77501939A95001377F70FE5
-:103B200091440144054B93DA9A0013D9F50131F71A
-:103B3000639D0A0093E414000546A9BF639309023C
-:103B4000A1441304F00F094B31BF5685EF00D00894
-:103B50009307B5FF098CB39AFA001304A4F8014641
-:103B600015BFB1441304F00F0D4BEDBD4E852EC6AD
-:103B7000EF0090069307B5FF1304A0F8B399F9007E
-:103B8000098C8144014BB245F1BD93E434000D46EC
-:103B900011B78947D286E313FBF636851307F00F7A
-:103BA00081473DB741639306F3FF13D6090193D8CC
-:103BB0000A01B3F7D900B3FADA0033885703B3899F
-:103BC000F80213570801B30A5603D6994E973306E5
-:103BD0001603637357011A96C167FD17B376F70092
-:103BE0003378F800C206C29693996600935707018E
-:103BF000B3393001E982B2979A07B3E6D900B3E945
-:103C0000D7009397490063D9070013D7190093F79A
-:103C10001900B369F7002E841307F4076350E0041A
-:103C200093F7790099C793F7F90091466383D7001A
-:103C300091099397490063D90700B70700F8FD176A
-:103C4000B3F9F900130704089307E00F63CBE70407
-:103C500093976900A5831377F70F9DBD8547B386BA
-:103C6000E74011C76D4601478147E343D6E6130796
-:103C7000E4093397E9003337E000B3D7D900D98F8F
-:103C800013F7770019C713F7F70091466303D700BE
-:103C9000910713975700634C07009A07A5830147C4
-:103CA00005BD1307F00F814725B52E84B5B705472D
-:103CB000814739BD3707800041117D179356750143
-:103CC00013D87501B377A70093F6F60F935EF5014D
-:103CD0003376B70026C24AC01378F80F06C622C44E
-:103CE0001303F00F3E8E3689F684139F3700FD8153
-:103CF00013153600B38806416302681093C515009A
-:103D0000638CBE106354100D631008106304051E0D
-:103D1000FD18B307AF40638608029307F00F63886E
-:103D2000F616ED4763C7172913070002330717413B
-:103D30003317E500B35715013337E000D98FB307C8
-:103D4000FF40139757006351071A370400047D148E
-:103D50007D8C228551256D15B317A400634E251B5C
-:103D6000330525411304150013070002018F339713
-:103D7000E7003337E000B3D78700D98F014913F745
-:103D8000770019C713F7F70091466303D70091072F
-:103D900013975700635E0714930619001307F00F7B
-:103DA00093FE14006386E6169A07A58393F6F60F32
-:103DB000A607B240224413D59700DE069397FE0172
-:103DC000558D924402495D8D410182806392080ABB
-:103DD000138716001377E70F631B071463940622FB
-:103DE00063020F2071D5B307AF4013975700635597
-:103DF0000722B307E5410149AE8451B7E30005F05E
-:103E0000638ABE0AE35410FD9307F00F6381F6083E
-:103E1000B70700045D8D31B7635E100963010808C0
-:103E20009307F00F6385F606B70700045D8DED4735
-:103E300063C0171F13070002330717413317E5004C
-:103E4000B35715013337E000D98FFA97139757000E
-:103E5000635C070805091307F00F630BE90AB7064F
-:103E6000007E13D71700FD16858B758FD98F01BF84
-:103E70003307D84063950610630D0F147D17630355
-:103E8000071A9307F00F6314F810AE84328E630F95
-:103E90000E06814E9306F00FB707400011BF39C9D7
-:103EA000FD18B307AF00E38308FA9307F00FE39020
-:103EB000F6F8F1BF63990808138916001377E90F24
-:103EC00063160712639B061063030F16E30205EEE9
-:103ED000B307AF001397570001496357070037072F
-:103EE00000FC7D17F98F054913F77700E31C07E8FD
-:103EF00013DE37009307F00FE30BF9F893179E00DA
-:103F0000A5839376F90F93FE14005DB593FE14001C
-:103F10009306F00F814769BD370700FC7D17F98FC5
-:103F200013F777003309A940E31E07E4D1B7330440
-:103F3000AF409317540063C3070CE31C04E0814EA9
-:103F400081468147B5B53307D840B5C69307F00F12
-:103F5000E30EF8F2B7070004336FFF00ED4763CDBF
-:103F6000E70C93070002998FB317FF003357EF0058
-:103F7000B337F0005D8FB307A7004289C1BD930737
-:103F8000F00FE304F8F0B7070004336FFF00ED47CC
-:103F900063C2E70893070002998FB317FF003357F6
-:103FA000EF00B337F000D98FB307F5404289AE84F4
-:103FB00049BB854769B3630E0F067D17B307AF0092
-:103FC0004289E30507E89307F00FE319F8F8328E0A
-:103FD0007DBD328E4289AE8431BFE3090FEAE3082A
-:103FE00005EA45BD0DCDAE8EB287D9B39307F00F6C
-:103FF000E300F9F2B307AF008583FDB53304E54173
-:10400000AE8481BBE31D0FFCE30505E8AE84BDBDB6
-:10401000854725BD854749BF0149E39707EC814E98
-:10402000814779B3B307E5414289AE8419BBB287B2
-:1040300041B3328E42897DBD054735BF37068000CA
-:10404000135775019307F6FF1377F70F9305E007F2
-:10405000B3F6A7009357F50163FCE5009305D0097B
-:1040600063FAE500370500801345F5FF3E95828031
-:104070000145828093055009D18E63CDE50013067A
-:1040800060093307E64033D7E6003305E040F5F337
-:104090003A8582801307A7F63397E600FDB71357DA
-:1040A0007501370680009307F6FF1377F70F930526
-:1040B000E007B3F6A7009357F501014563F4E50067
-:1040C00099C3828082809307E0097D55E3EBE7FE88
-:1040D00093055009B3E7C60063D7E5001307A7F6B9
-:1040E0003395E7008280130560093307E54033D537
-:1040F000E7008280411106C622C415CD2A84E92C2E
-:104100009307E0093387A7409307600963C0E7047A
-:10411000A1469377F70F63D5A60061153314A40069
-:1041200026042580260413559400B2402244DE075D
-:104130005D8D410182800144260413559400B240F4
-:1041400022448147DE075D8D4101828093079009FB
-:1041500063DDE7009307B5019546B317F400898E38
-:10416000B337F0003354D4005D8C954763D6A70075
-:104170009307B5FF3314F400B70600FCFD169377E0
-:1041800074003376D40085C39377F4009145638C33
-:10419000B70011069317560063D707009307F0097D
-:1041A000758E3387A74013146600258026041355A7
-:1041B0009400B24022449377F70FDE075D8D4101F2
-:1041C0008280135775011377F70F4111930717007A
-:1041D00022C426C21314950006C693F7E70F258064
-:1041E0009354F50185C793573400130707387604B5
-:1041F000B2075207B1831395F401D98FC98FB2402A
-:10420000228522449244BE854101828005EB39C457
-:104210002285D922A94763C6A7042D47098F930792
-:1042200055013357E4003314F4009317C700130704
-:104230009038098FB1831377F77F5DBF01CC135797
-:104240003400B7070800D98FB2077604B18313078B
-:10425000F07F79BF1307F07F814759BF014781473E
-:1042600041BF130755FF3317E40001447DBF93D6C8
-:1042700045019397C50093F6F67FB1831386160028
-:104280008E071357D5011376E67FFD815D8F931856
-:10429000350035CE138806C89307E00F63DD0701AC
-:1042A0008147139597009306F00FDE062581FE05E2
-:1042B000558D4D8D82806355000B931765000E0759
-:1042C000B337F000D98F93D8D801B3E7170113F7AC
-:1042D00077006301071013F7F70091466303D700D7
-:1042E0009107370700047D8F75C713071800130661
-:1042F000F00F9376F70FE305C7FA9A07A583139596
-:104300009700DE062581FE05558D4D8D8280B367B1
-:10431000170199EE85CF95479A07A58313959700C6
-:1043200093F6F60FDE062581FE05558D4D8D8280B4
-:10433000A5DBB7074000139597009306F00FDE0644
-:1043400081452581FE05558D4D8D828081471395D0
-:1043500097008146DE062581FE05558D4D8D8280B4
-:10436000A5576348F804F94737068000B38707412B
-:104370007D45598E6351F50479573307074113057D
-:1043800000023357E6006388A700938626CAB31657
-:10439000D600B3E8D800B3371001D98F13F77700F0
-:1043A000014815FB139757008546E34807F48146FB
-:1043B000A5B781468DB7938626C83397D800333783
-:1043C000E000B316D600B3D8F800B367D700B3E760
-:1043D000F800E9B7C28689B7C167637CF502930725
-:1043E000F00F1307000263EBA700971700009387F5
-:1043F0006766AA9788233305A74082802181971793
-:10440000000093872765AA97882361473305A74053
-:104410008280B7070001636DF50061819717000086
-:1044200093874763AA97882321473305A740828053
-:104430004181971700009387E761AA978823414736
-:104440003305A7408280B3C7A5008D8B3307C50015
-:1044500081E78D4763EDC700AA87637EE508942155
-:1044600085078505A38FD7FEE3EBE7FE8280937671
-:104470003500AA8789CA942185078505A38FD7FEB1
-:1044800093F63700C5BF9376C7FF138606FE63F029
-:10449000C70683A3050083A2450083AF850003AF51
-:1044A000C50083AE050103AE450103A3850183A8C2
-:1044B000C5019385450223A0770003A8C5FF23A269
-:1044C000570023A4F70123A6E70123A8D70123AAB5
-:1044D000C70123AC670023AE17019387470223AEC1
-:1044E00007FF75B790419107910523AEC7FEE3EB37
-:1044F000D7FEE3E6E7F6828039713EDA2ED232D477
-:1045000036D63AD842DC46DE9387018122CC8043FE
-:1045100026CA06CEAA8409C41C4C99E32285FD292B
-:104520000C4454102686228536C6EF009013F240C4
-:104530006244D24421618280011126CA4AC806CE53
-:1045400022CC4EC652C4AA842E8901C51C4D91E3CB
-:10455000F1219C4C804499E32685C92197170000DE
-:1045600093874761631BF402C0405E24A18BB1C7EF
-:104570001C48A1C7FD59294A1C4483450900FD1761
-:10458000B1E91CC463DD07062286A945268569209A
-:10459000FD576308F502294535A09717000093875A
-:1045A000675F6314F4008044C9B7971700009387CE
-:1045B000675AE31CF4FAC0444DBFA2852685192A28
-:1045C00055D97D55F2406244D2444249B249224A0B
-:1045D000056182801CC4050963D70700184C63CAB3
-:1045E000E700638845011C401387170018C08CA39F
-:1045F00061B7228626850D20E31035F9D9B71C4016
-:104600001387170018C0294798A371B793870181B2
-:10461000AA8588436FF05FF2011122CC26CA4AC8EE
-:1046200006CE4EC6AA842E89328401C51C4D91E364
-:10463000F526971700009387E7536317F406C040E9
-:104640001C4C1CC45E24A18BC1C31C48B5CF1C48A4
-:1046500008409379F90F1379F90F1D8D5C48634673
-:10466000F500A2852685692C25E51C440505FD1766
-:104670001CC41C401387170018C0238037015C48F6
-:104680006388A7005E24858B81CBA9476316F90058
-:10469000A2852685B5240DEDF24062444A85D244B8
-:1046A0004249B24905618280971700009387874E7F
-:1046B0006314F400804469B7971700009387874913
-:1046C000E310F4F8C044ADBFA2852685212041D176
-:1046D0007D59D9B741119387018126C2844322C4F1
-:1046E0004AC006C62A892E8489C49C4C99E3268533
-:1046F0003526971700009387E747631BF402C040F5
-:104700000317C40093170701C18393F68700ADEA2E
-:1047100093F6070195EEA5472320F90013670704D8
-:104720005AA47D55B24022449244024941018280FC
-:1047300097170000938707466314F4008044C9B7B5
-:104740009717000093870741E31CF4FAC0444DBF5C
-:10475000918B9DC34C5889C9930744046384F50029
-:104760004A85292B232A04025E242322040093F77E
-:10477000B7FD5EA41C481CC05E2493E787005EA4BE
-:104780001C4899EB5E241307002093F707286385E4
-:10479000E700A2854A8591295E2413F717001DC3FF
-:1047A0005C4823240400B307F0401CCC1C4801459E
-:1047B000B5FB8317C40013F707082DD793E7070449
-:1047C0005EA485B7898B014791E3584818C4F9BFA7
-:1047D000DE25011122CC26CA06CE4AC84EC613F7E2
-:1047E0008700AA842E8479EBD841634DE000B8415C
-:1047F000634AE0000145F2406244D2444249B24972
-:104800000561828058547DD703A90400939637012F
-:1048100023A0040063DB060670485E24918B99C7D1
-:104820005C401D8E5C5899C33C401D8E5C540C50FE
-:10483000814626858297FD575A24631DF5009440D2
-:10484000F54763E8D706B70740208507B3D7D700F9
-:10485000858BA5C31C48232204001CC09317370175
-:1048600063D80700FD576314F5009C4091E368C8C6
-:104870004C5823A02401BDDD930744046384F50054
-:104880002685ED2E232A0402B5B70C500146854635
-:1048900026850297FD572A86E311F5F89C40B5DF7F
-:1048A00075476385E70059476393E70423A0240114
-:1048B00091B7136707045AA47D5535BF83A9050135
-:1048C000E38A09F203A905008D8B23A03501330982
-:1048D0003941014791E3D84918C4E35D20F11C54E4
-:1048E0000C50CA864E86268582976347A0005E24B8
-:1048F00093E707045EA4C9B7AA993309A940F1BF99
-:104900009C49A5C3011122CC06CE2A8411C51C4D99
-:1049100081E72EC62122B24597170000938787258D
-:10492000639CF5004C408397C5009DC72285624477
-:10493000F24005616FF0DFE9971700009387872544
-:104940006394F5000C44C5B7971700009387872040
-:10495000E39BF5FC4C44C1BFF24062440145056154
-:10496000828001458280411122C406C62A844EA558
-:1049700072A52320050023220500232405002322FD
-:10498000050623280500232A0500232C05002146BF
-:1049900081451305C505EFB0BF80971700009387C9
-:1049A00087B25CD0971700009387A7B41CD49717E1
-:1049B0000000938787B85CD4971700009387E7BA05
-:1049C00000D01CD8B24022444101828097050000EB
-:1049D000938545F391AA411126C21306800693845C
-:1049E000F5FFB384C4024AC02E8922C406C693854B
-:1049F00044070D2E2A8401CD232005002322250102
-:104A0000310508C4138684068145EFB06FF922850D
-:104A1000B240224492440249410182801C4DA5E7E4
-:104A2000411106C622C497070000938767FA1CD578
-:104A3000938741819C4323240504232605042328CE
-:104A400005046314F50085471CCD2A84352848C029
-:104A500022851D2808C42285052848C448400146EF
-:104A60009145EFF05FF008440546A545EFF0BFEF34
-:104A700048440946C945EFF01FEF85471CCCB240BA
-:104A8000224441018280828041119387418126C264
-:104A900084434AC006C69C4C22C42A8981E72685E5
-:104AA000EFF0DFF7938484048044DC40FD1763D685
-:104AB00007009C40B9CF8440C5BF0317C40039E745
-:104AC000C177850723220406232004002322040043
-:104AD000232404005CC423280400232A0400232C7C
-:104AE0000400214681451305C405EFB06FEB232A6E
-:104AF0000402232C04022324040423260404228514
-:104B0000B240224492440249410182801304840647
-:104B100071BF91454A85EFF01FEC88C049FDB14750
-:104B20002320F9000144E1BF797122D44AD052CC4C
-:104B300056CA5AC85EC606D626D24ECE2A8AAE8A33
-:104B4000130485040149054BFD5B09ECB250225466
-:104B50004A8592540259F249624AD24A424BB24BB8
-:104B600045618280044483294400FD1963D409000F
-:104B70000040E1BFDE24637BFB008397E400638792
-:104B80007701A6855285829A3369A90093848406A9
-:104B9000E9BF1971A6DAAE848395E500A2DC86DE52
-:104BA000328463DB0500DE2423A0060093F70708A8
-:104BB00085E7930700401DA0300836C6EF0070203F
-:104BC000B246E34205FE7247BD67F98F7977BA971F
-:104BD00093B717009CC2F1BF930700041CC0F650A6
-:104BE0006654D654014509618280DE25011122CC2C
-:104BF00006CE26CA4AC8898B2E8489CF93077404AF
-:104C00001CC01CC885475CC8F2406244D24442497B
-:104C10000561828074003000AA84EFF09FF7A245FE
-:104C20002A892685012219E98317C40013F7072072
-:104C300061FFF19B93E727005EA4C9B797070000C7
-:104C4000938707D99CD45E2408C008C893E7070857
-:104C50005EA4A2475CC8B24781CF8315E4002685D5
-:104C6000EF00D01811C55E24F19B93E717005EA4F6
-:104C70005E243369F9002316240179B7DDC183A7C7
-:104C8000C5FF411122C406C626C21384C5FF63D3E3
-:104C900007003E94AA84EF00301C938701869C4352
-:104CA00081EF2322040023A081862244B24026857E
-:104CB000924441016F00701A637EF4001440330780
-:104CC000D4006396E7009843DC43369718C05CC075
-:104CD000D9BFBA87D84319C3E37DE4FE9443338632
-:104CE000D700631F86001040B29694C33386D70066
-:104CF000E31DC7FA10435843B29694C3D8C375B79F
-:104D00006375C400B1479CC04DB71040B306C400E2
-:104D10006316D70014435843B29614C058C0C0C39A
-:104D200069B78280011126CA93843500F19806CEB6
-:104D300022CC4AC84EC6A104B14763F3F404B1447F
-:104D400063E2B4042A89EF00301193870186984307
-:104D50003A8439E0938741869C4391E781454A85AF
-:104D6000252F23A2A186A6854A853D27FD596319D3
-:104D70003507B1472320F9004A85EF00100E29A01E
-:104D8000E3D004FCB1471CC10145F2406244D24467
-:104D90004249B249056182801C40858F63CF07027A
-:104DA000AD4663F6F6001CC03E9404C031A05C40E2
-:104DB0006313870223A0F1864A85EF00100A1305CA
-:104DC000B4009307440061993307F5405DDF3A94DE
-:104DD000898F1CC05DBF5CC3C5B72287404095BFAB
-:104DE000130435007198E30285FCB305A4404A859D
-:104DF0006525E31C35FBB5BF1C46FD171CC663DAF1
-:104E00000700184E63C5E700A9476394F5006FF0EB
-:104E1000BF801C422E851387170018C28CA3828086
-:104E2000011122CC26CA4AC84EC652C406CE2A89CF
-:104E3000AE893284B304D6007D5A631494000145D0
-:104E400009A80C204E864A85EFF01FFB0504E316E7
-:104E500045FFF2406244D2444249B249224A0561C8
-:104E60008280357122CD26CB4AC94EC706CF52C5A6
-:104E700056C35AC1DEDEE2DCE6DAAA89AE843289A4
-:104E8000368409C51C4D99E3EFF05FB99717000010
-:104E9000938747CE6398F40C83A44900DE24A18B4A
-:104EA000E5C79C48F5C393070002A304F1029307EA
-:104EB000000302D22305F10222C6930B5002971A77
-:104EC0000000938A2ACF054C294B4A841C2099C3A1
-:104ED000639F770DB30C2441638E0C00E6864A86EF
-:104EE000A6854E85EFF0DFF3FD57630FF51C925654
-:104EF000E69636D21C206389071CFD57130914005F
-:104F000002C802CE3ECA02CCA309010482D4834562
-:104F10000900154656852D2713041900C24751E98B
-:104F200013F7070109C713070002A309E10413F7E8
-:104F3000870009C71307B002A309E10483460900EB
-:104F40001307A002638FE606F2474A84814625468E
-:104F5000182093051400130707FD6377E60AB5CA06
-:104F60003ECE85A8971700009387C7C26395F400CB
-:104F700083A4890025B7971700009387A7BDE39FF7
-:104F8000F4F083A4C90019BFA6854E85EFF08FF415
-:104F900019D97D55FA406A44DA444A49BA492A4A3D
-:104FA0009A4A0A4BF65B665CD65C0D61828005040A
-:104FB00031BF330555413315AC00C98F3EC8228936
-:104FC000B9B7324793064700184336C6634707020E
-:104FD0003ACE18209307E002631DF70418309307B8
-:104FE000A002631BF702B2470904138747009C43E2
-:104FF0003AC663C107023ECA2DA83307E04093E7D3
-:1050000027003ACE3EC8F1B7B387670385462E84A2
-:10501000BA973DBFFD57C5B7050402CA814681470F
-:105020002546182093051400130707FD6374E60650
-:10503000F9F20C200D4617150000130525B80925B7
-:1050400011CD97170000938767B71D8D9307000454
-:10505000B397A700424505045D8D2AC80C20194668
-:10506000171500001305C5B5130914002304B10278
-:10507000C12B35C197B7FFFF9387C7F895E7424724
-:10508000B2471377071009CF91073EC69257D297C0
-:105090003ED225BDB387670385462E84BA9751B7A4
-:1050A0009D07E19BA107D5B778009706000093867E
-:1050B00066D726860C084E8597000000E7000000A2
-:1050C000FD572A8AE314F5FCDE2493F70704E392E4
-:1050D00007EC1255C1B5780097060000938686D478
-:1050E00026860C084E85012AE1BF797156CA9C4973
-:1050F000BA8A984522D426D24ECE52CC06D64AD071
-:105100005AC85EC6AA892E84B284368A63D3E70061
-:10511000BA879CC00347340419C385079CC01C4050
-:1051200093F7070281C79C4089079CC003290400AC
-:1051300013796900631A0900130B9401FD5B5C4449
-:105140009840998F634CF9041C408346340493F7CC
-:105150000702B336D000A5EB13063404D2854E8582
-:10516000829AFD576303F5041C4011469840998BC1
-:10517000544481446397C700B384E64063D304007A
-:1051800081441C4418486354F700998FBE94014928
-:1051900069047D5B63982405014509A885465A8604
-:1051A000D2854E85829A631E75017D55B250225478
-:1051B00092540259F249624AD24A424BB24B45617B
-:1051C00082800509ADBF3307D40013060003A30195
-:1051D000C7040347540493871600A2978906A38146
-:1051E000E7049DBF85462286D2854E85829AE30ECE
-:1051F00065FB050945B7797122D426D24AD04ECE37
-:1052000006D652CC56CA5AC8B689942D9307900632
-:105210003289AA842E8413863504638DF60263E2F4
-:10522000D706930780056386F61863EDD700638E73
-:10523000062093073004638EF60A930A24042301A0
-:10524000D404C9A0930730066385F60A9307400685
-:10525000E395F6FE1C40084393F6070893054500C6
-:10526000C5C61C410CC363D807001307D002B3079F
-:10527000F040A301E404971600009386E6942947C2
-:1052800065A8930700076382F61663E5D7029307C4
-:10529000E0066389F6189307F006E390F6FA0C40EF
-:1052A0001C4313F80508138547006307080608C365
-:1052B0009C4385A893075007E383F6FE9307800776
-:1052C0006389F61293073007E399F6F61C43D04141
-:1052D00081459386470014C383AA070056858D260F
-:1052E00001C53305554148C05C401CC8A3010404F6
-:1052F00061A81C43930A2404938647009C4314C36B
-:105300002301F4048547D5B793F607041C410CC369
-:10531000B9DAC207C18781BF93F5050408C3C9D9AB
-:105320009E231307F0066387E60E97160000938608
-:10533000A6892947A30104044C400CC463C5050099
-:1053400008406D9908C099E3B28A89CDB28AB3F555
-:10535000E702FD1AB6958C212380BA00B3D5E70287
-:1053600063F0E70CA147631EF7001C40858B91CBCF
-:1053700058401C4863C7E70093070003A38FFAFE59
-:10538000FD1A3306564110C84E87CA867000A285A2
-:105390002685EFF09FD57D5A631D450B7D55B25094
-:1053A000225492540259F249624AD24A424B456110
-:1053B0008280A382D504971600009386E6800C4075
-:1053C000084313F805081C411105630D080208C3C2
-:1053D00013F7150001C793E505020CC04147B9FB5F
-:1053E0000C4093F5F5FD0CC0B1B79C4193E7070263
-:1053F0009CC193078007A302F404970600009386DC
-:10540000E67D75BF13F8050408C3E30308FCC20773
-:10541000C1837DBF970600009386067B214719BF95
-:10542000AE8735B794411C43CC4913F80608138561
-:1054300047006306080008C39C438CC339A008C317
-:1054400093F606049C43F5DA8EA323280400B28A5F
-:1054500025BF14485686CA8526858299E30045F5FE
-:105460001C40898B8DE7B2474844E35AF5F23E85EC
-:105470003DB785465686CA8526858299E30065F341
-:10548000050A5C443247998FE345FAFEE9BF014AB9
-:10549000930A94017D5BF5B7411122C42A842E85BD
-:1054A00023A401D206C6EFC0DFB8FD576317F5008D
-:1054B000938781D29C4391C31CC0B24022444101D6
-:1054C0008280411122C42E848395E50006C679228C
-:1054D000634905007C48AA977CC8B2402244410138
-:1054E00082805E247D777D17F98F5EA4FDB7DE256F
-:1054F000011122CC26CA4AC84EC606CE93F7071021
-:10550000AA842E843289B68991C78395E50089469D
-:10551000014609225E247D777D17F98F5EA48315ED
-:10552000E4006244F240CE864A86B249424926856A
-:10553000D244056125A8411122C42E848395E5003B
-:1055400006C6C928FD575A24631AF500FD77FD17D2
-:10555000F98F5EA4B2402244410182808567D98FD1
-:105560005EA468C8C5BF8395E50005A8411122C4A3
-:105570002A842E85B285368623A401D206C6EFC0C2
-:105580007FA7FD576317F500938781D29C4391C392
-:105590001CC0B240224441018280411122C42A84AD
-:1055A0002E8523A401D206C6C520FD576317F5003A
-:1055B000938781D29C4391C31CC0B24022444101D5
-:1055C0008280411122C42A842E85B28523A401D26F
-:1055D00006C6C920FD576317F500938781D29C4307
-:1055E00091C31CC0B240224441018280411122C4B7
-:1055F0002A842E8523A401D206C65D20FD57631799
-:10560000F500938781D29C4391C31CC0B2402244D1
-:1056100041018280411122C42A842E85B2853686BA
-:1056200023A401D206C65920FD576317F5009387BE
-:1056300081D29C4391C31CC0B2402244410182806C
-:1056400093F5F50F2A966314C500014582801C214D
-:10565000E38EB7FE0505C5BF82808280411122C45A
-:105660002A842E85B285368623A401D206C6A920B7
-:10567000FD576317F500938781D29C4391C31CC0EB
-:10568000B2402244410182809307800523A4F1D2D5
-:105690007D5582809307800523A4F1D27D558280B9
-:1056A0009307800523A4F1D20145828093078005EA
-:1056B00023A4F1D27D5582809307800523A4F1D2E3
-:1056C0007D55828053797374656D436C6B3A2564A4
-:1056D0000D0A00004368697049443A253038780D56
-:1056E0000A00000043616C696272617474696F6ED4
-:1056F0005F56616C203A2025640A000025640A0088
-:1057000025640D0A00000000CDCC4C3D6666663F66
-:105710000000F043000000009A9999999999A93FD7
-:10572000CDCCCCCCCCCCEC3F696E2074696D3120F3
-:10573000697271200000000000008040000000003D
-:10574000000000000000E03F0000000000003440C6
-:10575000000030411D130F130213F412E612D7128A
-:10576000C812B912AA129A128A127A126A1259121D
-:1057700048123712251213120112EE11DB11C81153
-:10578000B511A1118D11791164114F113A11251123
-:105790000F11F910E310CC10B5109E1087106F1088
-:1057A00057103F1026100D10F40FDB0FC20FA80F7B
-:1057B0008E0F740F590F3F0F240F090FED0ED20EED
-:1057C000B60E9A0E7E0E620E460E290E0C0EF00DCF
-:1057D000D30DB60D980D7B0D5E0D400D220D050D00
-:1057E000E70CC90CAB0C8D0C6F0C510C330C150C69
-:1057F000F70BD90BBB0B9C0B7E0B600B420B240BE6
-:10580000060BE80ACA0AAD0A8F0A710A540A360A58
-:10581000190AFC09DF09C209A50988096C094F09A1
-:1058200033091709FB08DF08C308A8088D087208A8
-:1058300057083C0821080708ED07D307B907A00758
-:1058400086076D0754073C0723070B07F306DB06A3
-:10585000C406AD0696067F06680652063C06260676
-:105860001006FB05E605D105BC05A70593057F05D8
-:105870006B055805450532051F050C05FA04E804BB
-:10588000D604C404B304A10490047F046F045F042D
-:105890004E043E042F041F0410040104F203E3032A
-:1058A000D503C703B903AB039D03900382037503BC
-:1058B00068035C034F03430336032A031F031303E8
-:1058C0000703FC02F102E602DB02D102C602BC02BF
-:1058D000B202A7029E0294028A02810277026E023D
-:1058E00065025C0254024B0242023A0232022A0270
-:1058F00022021A0212020B020302FC01F401ED0162
-:10590000E601DF01D801D201CB01C401BE01B8011B
-:10591000B101AB01A5019F01990194018E0188019C
-:1059200083017D01780173016E01690163015E01EC
-:105930005A0155015001000000007A440AD7A33BE8
-:105940000000803F0000C84200007041CDCC4C3FB9
-:10595000B4D2FFFFA6D1FFFFA6D1FFFFA4D1FFFF66
-:10596000ACD1FFFFACD1FFFF72D1FFFFA4D1FFFF8D
-:10597000ACD1FFFF72D1FFFFACD1FFFFA4D1FFFF7D
-:10598000A0D2FFFFA0D2FFFFA0D2FFFF72D1FFFF86
-:1059900086DEFFFFACDDFFFF80DEFFFFB4DDFFFF33
-:1059A00080DEFFFF7ADDFFFF80DEFFFFB4DDFFFF5B
-:1059B000ACDDFFFFACDDFFFF7ADDFFFFB4DDFFFFF5
-:1059C000BADDFFFFBADDFFFFBADDFFFF7ADDFFFFC3
-:1059D0006CDDFFFF6CDDFFFF40DEFFFF1CDFFFFF24
-:1059E00040DEFFFF3ADDFFFF40DEFFFF1CDFFFFF71
-:1059F0006CDDFFFF6CDDFFFF3ADDFFFF1CDFFFFF0B
-:105A00007ADDFFFF7ADDFFFF7ADDFFFF3ADDFFFF82
-:105A100094E1FFFFE2E0FFFFE2E0FFFFE0E0FFFFD5
-:105A2000E6E0FFFFE6E0FFFFB6E0FFFFE0E0FFFF9C
-:105A3000E6E0FFFFB6E0FFFFE6E0FFFFE0E0FFFF8C
-:105A400082E1FFFF82E1FFFF82E1FFFFB6E0FFFF9F
-:105A50000001020203030303040404040404040415
-:105A600005050505050505050505050505050505E6
-:105A700006060606060606060606060606060606C6
-:105A800006060606060606060606060606060606B6
-:105A90000707070707070707070707070707070796
-:105AA0000707070707070707070707070707070786
-:105AB0000707070707070707070707070707070776
-:105AC0000707070707070707070707070707070766
-:105AD0000808080808080808080808080808080846
-:105AE0000808080808080808080808080808080836
-:105AF0000808080808080808080808080808080826
-:105B00000808080808080808080808080808080815
-:105B10000808080808080808080808080808080805
-:105B200008080808080808080808080808080808F5
-:105B300008080808080808080808080808080808E5
-:105B400008080808080808080808080808080808D5
-:105B50000000000000000000000000000000000045
-:105B60000000000000000000000000000000000035
-:105B70000000000000000000000000000000000025
-:105B80000000000000000000000000000000000015
-:105B90000000000000000000000000000000000005
-:105BA00000000000000000000000000000000000F5
-:105BB000232D302B20000000686C4C006566674583
-:105BC00046470000303132333435363738394142B8
-:105BD0004344454600000000303132333435363717
-:0C5BE000383961626364656600000000F3
-:105BEC000000000000000000010203040607080981
-:105BFC000000000001020304010203040607080967
-:105C0C0000000000000000000000000000E8038C11
-:105C1C00051400A406DC05A00564008C050A00012F
-:105C2C0000140014004600320028000A003C00104A
-:105C3C000E000000534C1111111111111101000132
-:105C4C00001600000000000003000000802500008A
-:105C5C000000000000000000000000000000000038
-:105C6C00000000000400000080250000000000007F
-:105C7C000000000000000000000000000000000018
-:105C8C00705B0000905B0000505B000000000000A7
-:105C9C0000000000000000000000000000000000F8
-:105CAC0000000000000000000000000000000000E8
-:105CBC0000000000000000000000000000000000D8
-:105CCC0000000000000000000000000000000000C8
-:105CDC0000000000000000000000000000000000B8
-:105CEC00006CDC02020406082C0600200000403F79
-:085CFC009C0000209C00002028
+:1015B0009FBA797113064006938581861385819FB2
+:1015C000EF0030289384819F138544011306400661
+:1015D00093850193EF00F026930440069389819F41
+:1015E0001389C1A081451385819FEF009026814515
+:1015F0004A85FD14EF00F025F5F41306000281453D
+:10160000080823A8090023A20902EFE07FB9854555
+:10161000114502C202C402C6EFF0BF95854513050D
+:101620000020EFF01F950145EFF03F843715014092
+:10163000A9474C0013050580372401407C8202C66F
+:10164000EFF06FC013050440EFE01FE813050440FE
+:10165000EFF0AF862398A18285473ECA0C088947E0
+:10166000130504402302F10202C802CC02CE02D0CC
+:10167000EFE01FE8854513050440EFE0DFED854509
+:1016800013050440EFE03FEC854513050440EFF0FF
+:10169000AF80814513050440EFE07FFD1305044052
+:1016A000EFE09FEC930404402685EFE09FEC6DFD96
+:1016B0001305044037240140EFE03FEC930404405D
+:1016C0002685EFE03FEC6DFD130504409546054689
+:1016D0008545EFE03FED95460946130504408D45ED
+:1016E000EFE05FECB165938505B8294591358945F3
+:1016F0001385C182653345616FE03FA9011109453A
+:1017000022CE26CC4ACA4EC852C6EFF08FA925C1B8
+:10171000938521831385819FEF0070161384819F29
+:10172000138A218303570A001C48930944019385B7
+:101730002183998F4E859384C1821CC8EF00301499
+:10174000922018485C5083560A00329718C8BA2075
+:101750008E201385819FBA97958F5CD0EF00700F14
+:10176000AE204E85EF00F00E0945EFF02FA4724435
+:10177000E2445249C249324A056173002030EFE227
+:101780003F9F011185452145EFF0AFFE854511656D
+:10179000EFF01F803714014085678D447C808A8577
+:1017A000C147130504C03EC426C2EFF0CFA91305FC
+:1017B00004C08565EFF06FB6896761498A851305B6
+:1017C00004C07C804AC426C2EFF0EFA791677C80FA
+:1017D0008A859147130504C03EC4EFF0CFA6E17798
+:1017E0008A85130504C07C804AC426C2EFF0AFA5E9
+:1017F000B70704013EC6B70702003EC8B70700029C
+:101800008507374400403ECAA1473ECC6C009D4747
+:1018100013050480FC86EFF06FFB854513050480FB
+:10182000EFF0EFFD05616FE0FF96EFE2DF92B74466
+:1018300000402A891304900C9389048089454E85C1
+:10184000EFF00FFE05C9CA8513850480B744004038
+:10185000EFF08FFC1304900C1389048085454A85B2
+:10186000EFF00FFC19CD13850480EFF02FFB1375FB
+:10187000F50F31A07D141374F40F69F001456FE08A
+:10188000DF907D141374F40F71F8CDBFEFE25F8E1B
+:101890002A89371501402E84130505C08565B28459
+:1018A0000146EFF0CFA70D454937135504011375D5
+:1018B000F50FA53F135584001375F50FBD3713754C
+:1018C000F40FA537014493170401C18363EC97001B
+:1018D0003715014005468565130505C0EFF02FA4B7
+:1018E0006FE05F8B1305F00F8937B307890088A37A
+:1018F0000504D1BFEFE2DF87411185451145EFF0C7
+:101900004FE785452145EFF0CFE6930700107C8235
+:1019100037150140C1473EC64C008D471305058071
+:101920003EC4EFF04F9241016FE0DF86EFE25F844B
+:10193000411185454145EFF0CFE3856793870780E7
+:101940007C8237150140C1473EC64C008D471305C8
+:1019500005803EC4EFF02F8F41016FE0BF83EFE2BF
+:101960003F81411185452145EFF0AFE0930700101D
+:10197000371401407C82C1473EC64C008D47130599
+:1019800004C03EC4EFF02F8C0146930500101305F0
+:1019900004C0EFF0CF9841016FE0CFFFEFE24FFDC1
+:1019A000797185452545EFF0CFDC9147371501402A
+:1019B000FC824C0893078004130505C03ECEEFF06F
+:1019C0008F8889450545EFF0EFA8914705443ED043
+:1019D0000810B1473ED422D602D2EFE0BFFD9307F4
+:1019E00080117C86680089475C8722C8EFF0AFC20F
+:1019F00045616FE02FFA4111114522C6EFF02F82A9
+:101A000085476315F5022A841145EFF02F8303C73C
+:101A1000218509EFB725000081461306803E938596
+:101A2000E554138501A6238981848D233244410125
+:101A300073002030EFE2CFF3797185451545EFF063
+:101A40004FD3856737150140FC824C08930780020D
+:101A5000130505803ECEEFE01FFFB1450145EFF0D5
+:101A60006F9F856705443ED00810A1473ED422D61B
+:101A700002D2EFE03FF4930780137C8668008D4725
+:101A80005C8722C8EFF02FB945616FE0AFF00565C4
+:101A9000EFE0FFF885476314F5020565EFE01FFAF4
+:101AA00083C74184B7250000850781461306803E21
+:101AB0009385455B138501A52382F184C1297300B9
+:101AC0002030EFE2EFEA411185452145EFF06FCA82
+:101AD00085451145EFF0CFCB930700203714014027
+:101AE0007C82E1473EC64C008D47130504C03EC4CE
+:101AF000EFE07FF5930700084C00130504C07C82DB
+:101B0000EFE07FF441016FE0EFE8EFE26FE60111F3
+:101B10004D3F371400409307F01D8A85130504805C
+:101B20003EC002C22314010023050100EFF0EFCFF5
+:101B3000130504808545EFF02FEAC16793870706F8
+:101B40006C00130504803EC8231B010002C6EFF0A1
+:101B5000EFDC13050480A145EFF08FEA1305048044
+:101B60008545EFF06FE3854513050480EFF04FE402
+:101B700005616FE02FE2411122C42A8408414AC264
+:101B80004EC006C6EF20406FB757000003A6077C83
+:101B900083A6477C2A89AE89EF00D065635F050282
+:101BA000B757000083A7477B1CC0B757000083A529
+:101BB000C77B0840EF103072EF20C0599315050124
+:101BC00037150040C18113050580EFF0CFE4B24026
+:101BD00022441249824941018280B757000003A67E
+:101BE000877C83A6C77C4A85CE85EF00D055E35E0F
+:101BF000A0FAB757000083A7877B7DB7EFE24FD7E6
+:101C0000797137140140C1472A89FC828D44C1474C
+:101C10004C08130504C03ECE26CCEFE0DFE20146BF
+:101C2000130504C0C145EFE09FEF85452145EFF066
+:101C30004FB4854537050800EFF08FB58547FC8226
+:101C40004C08E147130504C026CC3ECEEFE0BFDFD1
+:101C5000894491474C08130504C0E482375400407E
+:101C60003ECEEFE05FDE0C10B7070C00130504C09A
+:101C70004AD03ED402D223160102EFF06FDD930763
+:101C8000D0137C86680085473EC84487EFF0AF9844
+:101C90000546130504C093055052EFF06FE88545E3
+:101CA000130504C0EFF06FE645616FE0AFCEEFE2E1
+:101CB0002FCC797137140140930700022A89FC82E6
+:101CC0008D44C1474C08130504C03ECE26CCEFE03E
+:101CD0009FD70146130504C093050002EFE03FE4DF
+:101CE00085452145EFF0EFA8854537050400EFF065
+:101CF0002FAA93070040FC824C08E147130504C05B
+:101D000026CC3ECEEFE03FD4856793870780FC82E8
+:101D10004C089147130504C03ECE37540040EFE015
+:101D20009FD20C10B7070C00130504804AD03ED494
+:101D300002D223160102EFF0AFD1930770137C8615
+:101D400085475C87680085473EC8EFF0CF8C054625
+:101D50001305048093055052EFF08FDC8545130581
+:101D60000480EFF08FDA45616FE0CFC2411122C6E7
+:101D7000375400409305505213050480EFF04FDFB5
+:101D80000DC513050480EFF08FDD9375F50F238AE1
+:101D9000B18203A581851C4D104954498507B3E7DD
+:101DA000C7026384D70031053926324441017300EC
+:101DB0002030411122C6375400409305505213057C
+:101DC00004C0EFF0EFDA0DC5130504C0EFF02FD912
+:101DD0009375F50F238CB18203A5C1851C4D104965
+:101DE00054498507B3E7C7026384D7003105E1246E
+:101DF0003244410173002030EFE28FB70111AA8411
+:101E00002E8409458545EFF0AF98E0843704004003
+:101E10004C081305044026CA231E0100231D01009F
+:101E2000EFF0AFA0130504408545EFF0AFC10546C4
+:101E3000854513050440EFF00FB99307D0027C8667
+:101E40008D475C87680085473EC8EFE0DFFC056191
+:101E50006FE04FB4EFE2CFB1B707002083A50710C2
+:101E6000896793870771B3D5F502A9473305F50252
+:101E7000FD15C205C1817D1542054181B53F6FE069
+:101E80006FB1411122C63704004085451305044057
+:101E9000EFF0CFB919C5854513050440EFF08FBAAF
+:101EA00091233244410173002030EFE26FAC011105
+:101EB0002E84AA8485450545EFF08F8D4C083705A3
+:101EC000004026CAE084231E0100231D0100EFF01C
+:101ED000CF950546854537050040EFF0CFAE930717
+:101EE000C0027C8689475C87680085473EC8EFE072
+:101EF0009FF2854537050040EFF00FAA05616FE0BE
+:101F00006FA9EFE2EFA6B707002083A50710896746
+:101F100093870771B3D5F502A9473305F502FD157F
+:101F2000C205C1817D154205418141376FE08FA611
+:101F3000854537050040EFF06FAF19C5854537057A
+:101F40000040EFF02FB0D12873002030B7F700E049
+:101F500023A20700D92073002030411122C6373454
+:101F600001408545130504C0EFF04FAC01CD1305CA
+:101F700004C08545EFF00FAD375500001305057D12
+:101F8000EF20207432444101730020301DC9B29605
+:101F9000C206C18252A136A10CC509EE85471CA11B
+:101FA00083A6C1839387C183368701EB54C588C359
+:101FB0000145828023000500E5B76306A700584766
+:101FC000EDB77D558280054582800DC583A7C1830D
+:101FD0001387C18399E305458280D4476396A600A1
+:101FE0005845D8C7014582806394A70014C3DDBF5C
+:101FF000B687CDB77D558280EFE28F9703A4C1836A
+:1020000075DC1C2093F7F70F99C75E2099C3230056
+:1020100004001C4482974044E5B783A7C18305466A
+:1020200091E38280D62381CEBA237D174207418374
+:10203000BAA3BA234207418319E390A3B6A3DC47AE
+:10204000C5B7232605000CC150C123240500054552
+:102050008280584550411C4505073367C702630E0F
+:10206000F70054455C45184186068507B3E7C7026B
+:1020700036970EA35CC50545828079558280184548
+:102080005C456300F70218451C410607BA979E237A
+:1020900058419EA11C458507B3E7E7021CC50545CD
+:1020A000828001458280232605000CC150C1232473
+:1020B0000500054582805C45544118458507B3E716
+:1020C000D702638EE70058451C41BA978CA35C4544
+:1020D00058418507B3E7E7025CC50545828079551D
+:1020E0008280B707002083A707100967130707F44A
+:1020F000B3D7E702C207C1832391F1842390F1840F
+:102100008280EFE2EF862A84116501118545110571
+:10211000EFE03FE6930700207C82371501408D47B2
+:102120003EC44C00E147130505803EC6EFE0BF9179
+:1021300022C837440140B70708000C081305048083
+:102140003ECC02CA231E0100EFF08F908545130597
+:102150000480EFF08F9B05616FE0CF83EFD2BFFF6C
+:10216000B7440140AE8932890144938404806345B9
+:1021700024014A856FE06F81930500042685EFF006
+:102180008F9E7DD9B3878900838507002685050446
+:10219000C205C181EFF02F9CD9BF138781801C43FA
+:1021A000938681C83E95636BD500B7560020938611
+:1021B000068063E5A60008C33E858280FD57EDBF1B
+:1021C0000397018381472A97634F070009CD05666E
+:1021D0009306F6FFB6876358C700AA876305D50044
+:1021E00093170701C1833E858280EFD2DFF641114C
+:1021F00037240140AA894400130901011304044053
+:10220000CE85228595460546EFE0CFB985452285E6
+:10221000EFE0CFB789452285EFE0CFC465DD2285A9
+:10222000EFE0CFC342054185613F8AA08904E319ED
+:1022300099FC1547814735A01396170014088507A8
+:102240003696080893961700AA96835546FF03D53D
+:1022500046FF6376B500231AA6FE239AB6FEC20790
+:10226000C183E3CBE7FC7D1771F728843C854101EE
+:102270003E954205418105816FD03FF1EFD25FEF7E
+:1022800003A581A0930740063355F5024205418519
+:10229000053FEF109071B757000083A5077EEF1040
+:1022A00090036FD03FEFEFD2BFEC09453D3FEF10F9
+:1022B000D06FB757000083A5877FEF10D0016FD094
+:1022C0007FEDEFD2FFEA03A5C1A193074006335586
+:1022D000F50242054185ED35EF10306DB75700002E
+:1022E00083A5077EEF10207F6FD0DFEAEFD25FE893
+:1022F0001145E53DEF10706BB757000083A5877F50
+:10230000EF10607D6FD01FE9EFD29FE61945F13DD8
+:1023100095679387C77F01479306100F92236369E0
+:10232000C5023A85EF10C037B757000003A6877E75
+:1023300083A6C77EEF006077B757000003A6077F2C
+:1023400083A6477FEF00F041EF10D07D6FD09FE470
+:1023500005078907E314D7FC13050000C5BFEFD2BA
+:102360003FE139716800130620038145EFF00FD279
+:10237000188693073005370500206317F702988603
+:102380009307C0046312F7020347D103D947631DC3
+:10239000F700130620036C0013050502EF2000165A
+:1023A000054521616FD01FDFB707002003C7470530
+:1023B000130505029387470518A1983318B1B82370
+:1023C00038A1B83338B1D82358A1D83358B1F8233D
+:1023D00078A1F83378B19827DC3718A5A308F5025F
+:1023E0000145C1B7EFD2DFD8513D138401A2935705
+:1023F000850048B87CA89357050161817CB808AC7A
+:10240000C9359357850008BC3CAC935705016181E1
+:102410003CBC48AC493D9357850048B47CA49357D5
+:102420000501618108A868287CB45C382205B7647E
+:1024300000005D8D7C3883A5049E37690000C207CB
+:10244000C98F082C62055D8DEF10E068EF10704AAF
+:10245000AA851305899EEF20801568245C3483A526
+:10246000049E22055D8D7C34C207C98F0828620551
+:102470005D8DEF104066EF10D047AA851305899E49
+:10248000EF20E012282C1C3C83A5049E22055D8DC4
+:102490003C3CC207C98F482C62055D8DEF10A063DC
+:1024A000EF103045AA85376500001305C59EEF2063
+:1024B00000106FD03FCEEFD2BFCB938741859843BA
+:1024C000D566938606186307D702050798C33714A5
+:1024D0000140856493850480130504800546EFE080
+:1024E0000FE401469385048013050480EFE02FE399
+:1024F0006FD05FCA23A00700B707EFBE37E700E041
+:10250000938707083CC7E1B7EFD29FC693875184F2
+:10251000902337140140930500101336160013055D
+:10252000048090A3EFE0AFDF1387D1841C238507DD
+:1025300093F7F70F1CA329476399E7000546930516
+:102540000010130504C0EFE08FDD6FD0BFC4138708
+:10255000E1841C233706002013060602850793F743
+:10256000F70F1CA38346C6028345B602A206CD8E92
+:102570006391D704EFD2DFBF138401A6138501A6B0
+:102580002300070023890184EFF03FA42300040007
+:10259000371401409145130504C0EFE0CFD601E99F
+:1025A000014693050010130504C0EFE04FD76FD02C
+:1025B0007FBE8280EFD2DFBB03C7218585471384AE
+:1025C000F184938441846310F702138901A5138574
+:1025D00001A5230004002398018423800400EFF068
+:1025E000DF9E23000900982085476315F7001C2013
+:1025F00085071CA0370900209306090283C7E6025D
+:1026000003C6D6021420A207D18F130909026390D2
+:10261000F60223000400138401A5138501A523807D
+:102620000400EFF09F9A230004006FD0BFB68547E7
+:1026300063FDE700371501400146930500101305BF
+:1026400005C0EFE0CFCD230004003715014093050E
+:102650000010130505C0EFE0AFCB9387018501E5BE
+:102660009A2305079AA3034709030346F902962311
+:102670002207518FE39BE6FA371501400546930583
+:102680000010130505C023900700EFE04FC961B7A4
+:10269000EFD27FACB70400209384040283C72402E6
+:1026A00003C51402A2075D8DEF103030B76700003C
+:1026B00083A5079E138401A2EF10A005BC20938977
+:1026C0008184370700203CA0BC30130747052380D6
+:1026D00001A23CB0DC20A38001A223A0A9005CA041
+:1026E000DC30138901A25CB0FC207CA0FC307CB003
+:1026F0009C241CA43C271437A207D58F1CB4A183AB
+:102700003CA45C273437A207D58F3CB4A1835CA4DA
+:10271000EFF07FB99357850048B47CA49357050127
+:1027200061817CB408A8EFF07FB59357850048B865
+:102730007CA89357050161817CB808ACEFF07FB8A5
+:10274000935785015CAC7C24443413578500A20761
+:10275000C58F643438AC13570501C204C58F0428F3
+:1027600038BC5838E204DD8C7C28AA8508BCA20756
+:102770005D8F7C38C207D98F182C62073365F7004C
+:10278000EF10A05E83A50900EF10E034AA8526852E
+:10279000EF10A05D9357850008B83CA8935705013A
+:1027A00061813CB848A8EFF07FB493578500A3003F
+:1027B000A4022301F402935705016181A301F402ED
+:1027C0002302A402EFF05FB4935785002303F402C1
+:1027D00093570501A303F4023C280438A302A40282
+:1027E000A207C58F243861812304A402C204C58FC7
+:1027F0004428E204DD8CB767000083A5C79F2685C7
+:10280000EF10A024634B0500B757000083A5877F16
+:102810002685EF10201B6355A00005472386E18421
+:10282000B714014093050010138504C0EFE04FAECC
+:10283000814701C99145138504C0EFE0CFACB337A0
+:10284000A000A304F90223050902A3050902230637
+:1028500009026FD09F93EFD2BF91EFF05FB0EFF01E
+:102860003FE3B725000081461306803E93858550DF
+:10287000138501A7EFF08FF1B7250000F946130685
+:10288000803E9385654B138501A8EFF02FF0EFF0A4
+:10289000AFF66FD03F90EFD2BF8D0545EFF06FE6FA
+:1028A0009128EFF08FA6EFE07FB0EFF0AF84EFF06C
+:1028B000EF87EFE0DFECEFF08F8AEFF02F8EEFF095
+:1028C0006F97EFE0DFCE1305C012EFF0AFD83705FA
+:1028D0000040854513050540EFE01F8CB7670000F9
+:1028E00083A707A023A6F1801385C180EFF0AFA8CE
+:1028F0006FD05F8AEFD2DF873704002013044406CD
+:102900001306800C938501A91305C400EFF0AFF9FD
+:10291000716513050520EFF08FB9854404A01306F7
+:10292000C012938581B51305840223AC8184EFF036
+:102930008FF748507104EFF06FAC04A0014523AE4F
+:1029400081846FD03F8513D74501B7071000FD176D
+:1029500013D846011377F77F9308F07F33F3B7005E
+:102960002A8EF58FFD81B28E1378F87FFD82630881
+:102970001703630018030DEBB368A300631408008A
+:102980005D8E29CA638508046388D502054595EDE7
+:102990008280B3E8C700E38008FE79558280336502
+:1029A000A30065FD630CE802631408005D8E79DE08
+:1029B000E39ED5FCE34CE8FC63480701E3E867FCD1
+:1029C0006303F302637FF30081E57D558280F5DECA
+:1029D000054582800145E39B08FA82805D8E69DAB5
+:1029E0006DBF01458280E3E3CEFB0145E372DEFB70
+:1029F000E5F1E1BF13D74501B7071000FD1713D864
+:102A000046011377F77F9308F07F33FEB700AA8E55
+:102A1000F58FFD81328F1378F87FFD82630E1703E7
+:102A2000630D180129E3B368AE00631F08005D8ED3
+:102A300001EE0143638C080421A8B3E8C7000943F1
+:102A4000639608046DD305A0638408046385D502EA
+:102A500005438DCD7D531DA8B368AE000943639730
+:102A60000802630AE802631408005D8E75D2E391E0
+:102A7000D5FEE34FE8FC63490701E3EBC7FD630FB5
+:102A8000FE0001436374FE00F1D505431A85828080
+:102A9000EDFE7D53E5BF5D8E79DACDBFE36ADFFBE6
+:102AA0000143E3F5EEFFF5F175B739714AD813D953
+:102AB00045014ED652D456D29399C50006DE22DC8B
+:102AC00026DA5AD05ECE1379F97F2A8A93D9C900C3
+:102AD00093DAF501630D090E9307F07F6306F91889
+:102AE0001354D5018E09B36934013704800033E4EF
+:102AF000890093143500130919C08149814B13D7FC
+:102B00004601139AC6001377F77FB285135ACA009D
+:102B100013DBF601630B07109307F07F6303F704E1
+:102B20009357D6010E0A33EA4701130717C0B707B8
+:102B30008000B367FA00931536003A99814833C78D
+:102B40006A01BD463A851308190063E8361717363F
+:102B50000000130666EB8A09B29983A60900B296B3
+:102B60008286B367CA001309F97F6399071293E954
+:102B7000290081458948E1B701479307F07F370471
+:102B8000080081443204D20731807E075D8C598C65
+:102B9000A285F250625426854259D254B259225A23
+:102BA000925A025BF24B216182805A853E84AE8448
+:102BB000C68B8947638DFB0E8D47E38FFBFA8547F4
+:102BC0002A87639EFB3881470144814465BF33E413
+:102BD000A90061C036C632C4638C092A4E85EF1045
+:102BE000100B2246B246AA87130755FF75449384FB
+:102BF00087FF198CB399990033548A0033643401E8
+:102C0000B3149A0013D746011309D0C0139AC60013
+:102C10001377F77F3309F9408149814BB285135A05
+:102C2000CA0013DBF601E31907EEB367CA00B1C7A8
+:102C3000630F0A22528532C4EF10700522462A879C
+:102C4000930655FFF547930587FF958F331ABA0012
+:102C5000B357F600B3E74701B315B6003309E940AF
+:102C60001309D9C08148E1BD33E4A90001ECA149B1
+:102C700081441309F07F894B59B593E919008145C7
+:102C8000854875BD4E84AA84B1491309F07F8D4BE8
+:102C9000BDB5914981440149854B95B593E939000A
+:102CA000D2878D4869BD89475685E397FBF02A870F
+:102CB0009307F07F01448144F1B5C16E1386FEFF96
+:102CC00093D6040113DE0501F18CF18D3386950254
+:102CD0003383B6029358060133059E021A95AA98CB
+:102CE000B382C60363F36800F692C16F1383FFFFDC
+:102CF00033F5670093D30701B3F76800C207337356
+:102D000066003E933306950293D80801B387A60266
+:102D1000135F0601B3849302BE94FA94B38E7602D5
+:102D200063F3F400FE9E416A9307FAFF935F040188
+:102D3000B376F400B3F9F4007D8EC1803384D502FC
+:102D4000C209338FD401B299CE98B307DE02935EE5
+:102D50000401B385BF02AE97BE9E330EFE0363F33C
+:102D6000BE00529EC1679385F7FF33F6BE006D8C9F
+:102D70004206229693DE0E01B305D502769E338578
+:102D8000AF0213D40501B386D302AA96A296B38FDD
+:102D9000F30363F3A600BE9F41657D15B3F7A6005C
+:102DA000C2076D8DAA97B3855800B3B93501FA975C
+:102DB000B2953384370133B6C500B30EC4013385F1
+:102DC000CE0033343401B3B7E701C18F33BECE0137
+:102DD00013D406013336C5003E943366CE00939477
+:102DE000950032947E94B3E46400260493567501F2
+:102DF000B3349000DD8193179500CD8C558CDD8C1C
+:102E00009317740063DB070093D71400858893162B
+:102E1000F401DD8CD58C058042899307F93F635915
+:102E2000F00893F6740081CE93F6F400114663889F
+:102E3000C60093864400B3B496002694B6849316D5
+:102E4000740063D80600B70700FFFD177D8C930759
+:102E500009409306E07F63CFF60E93D634009314B7
+:102E6000D4012604D58C318093F7F77F21BB3285BE
+:102E700032C4EF10C06193065501F14713070502F4
+:102E80002246E3D1D7DC6115B317A6008145F9B31B
+:102E9000EF10E05F13075501F14593070502224645
+:102EA000B246E3D5E5D461153314AA00814499BB39
+:102EB00085469D8EB1E71309E941B3972401B3D448
+:102EC000D40033192401B337F000B3649900DD8CCA
+:102ED00093F77400B356D40081CF93F7F4001146F2
+:102EE0006388C70093874400B3B49700A696BE8456
+:102EF0009397860063D8070485470144814459B1FC
+:102F000013068003E341D6CC7D46E356D6FA055638
+:102F1000B307F640930500023356F4006387B6000A
+:102F20001309E943B3172401DD8CB3349000D18C2D
+:102F300093F67400014499CA93F7F4001146814650
+:102F4000E392C7FA139496003180F6068D80D58CF3
+:102F500081470DB99307F07F0144814425B142892F
+:102F60006DBD370710007D1701113373B70093D87B
+:102F70004601758F935ED60122CC26CA0E0393D4E8
+:102F800045019357D5010E0706CE4AC84EC693F8A1
+:102F9000F87F130EF07F33E7EE0093F4F47F13D441
+:102FA000F50133E36700131F3500FD82931E3600E1
+:102FB0006380C81993C61600B38514416305D41203
+:102FC0006351B018638B081AB70780005D8F638167
+:102FD000C4599307800363C4B734FD4763C5B7483A
+:102FE000930700028D8FB3D9BE003318F700B39E4C
+:102FF000FE00336838013357B700B339D001336866
+:1030000038013303E340B3090F41B3373F013306BF
+:10301000F3409317860063D30724370980007D1996
+:1030200033792601630F092C4A85EF1040461307B8
+:1030300085FF93070002998FB3D7F9003316E90093
+:10304000D18FB399E9006344972A058F13061700BF
+:10305000FD4663C5C63A13070002118FB3D6C900F7
+:103060003398E9003397E700558F33380001B3698F
+:10307000070133D6C700814493F7790081CF93F6D7
+:10308000F90091476388F6009386490033B836010A
+:103090004296B6899317860063D6071C13871400DF
+:1030A0009307F07F05886306F720B70780FFFD17B9
+:1030B000F18F1398D70193D93900A60733683801E7
+:1030C000B1831377F77F9396C7005207B1827E04CE
+:1030D000D98EC18EF2406244D2444249B2494285FF
+:1030E000B685056182806356B00A638A0812B70705
+:1030F00080005D8F6387C42D9307800363C7B71873
+:10310000FD4763D2B73C138805FE93070002B3590D
+:103110000701638AF50093070004B385B7403317AE
+:10312000B700B3EEEE003338D0013368380195A212
+:10313000B367D7019385148099E393C61600630A99
+:10314000D404D1E19387140093F7E77F6399071EB6
+:10315000B367E3013368D701639204166382073CC7
+:1031600063160842131835009316D301135838001C
+:1031700033E806019357330019A2B367D70163857B
+:10318000071A9387F5FF638B073A638CC523BE85C7
+:1031900089B56399051C9386140093F7E67FC1EF08
+:1031A000B367E30163900436638D0744B367D701C7
+:1031B000639407460E051318D3010D813368A800E8
+:1031C000935733006DA8B385984063970420B36785
+:1031D000E301638D07309387F5FF6389074013058B
+:1031E000F07F6383A520BE859307800363C2B72A5F
+:1031F000FD4763C8B73C930700028D8F3318F30077
+:103200003356BF00B317FF003368C800B339F0006E
+:103210003353B3003368380133076740B5ACB36745
+:10322000D701638307109387F5FF638F071E6380C1
+:10323000C52FBE85D1B59307F07F638BF606FA9E46
+:1032400033B6EE01B307E300B2971398F70193DEAC
+:103250001E00B369D80113D61700B68493F779001E
+:10326000E39F07E09317D60113D839003368F800BD
+:10327000A685935736001307F07F6380E506B207F3
+:10328000B18313F7F57F05883DBD3367D701333828
+:10329000E000B309E801B3B7E9013386670093178B
+:1032A0008600E3DD07FA85049307F07F639CF4183A
+:1032B00005881307F07F8147014831B563910710F6
+:1032C0006301083C131836009317D70113583800D0
+:1032D0003368F800368493573700B367F800E9DBAA
+:1032E00001441307F07FB70708000148E9BB370620
+:1032F00080FF7D167D8E93F77900998CE39107D836
+:1033000095B74E85EF10A01813078501FD47E3D24E
+:10331000E7D2130685FFB397C90081492DB33368FF
+:10332000D70133380001C5B1131835009317D30105
+:10333000135838003368F800935733002DBFB30992
+:10334000DF413309E34033363F013309C940931766
+:10335000890063CA072033E82901E31508CC8147B7
+:10336000014431BFB385984063810414B7068000DF
+:103370009307F07F3363D3006381F82093078003C2
+:1033800063CCB722FD4763C9B72C930700028D8F2A
+:103390003318F300B356BF00B317FF003368D800EB
+:1033A000B339F0003353B300336838011A97B309C7
+:1033B000D801B3B7D9013386E700C684CDB5E31190
+:1033C00008F2131835009317D301135838003368E7
+:1033D000F8009357330011B7370580009307F07F4B
+:1033E0003363A300E392F8E00E061318D7010D82B1
+:1033F0003368C800935737003684C5B50517930660
+:10340000000233D7E700630AD60093060004338630
+:10341000C6403396C700B3E9C90033383001B369F9
+:10342000E800014681441DBDB309DF01B307E30095
+:1034300033BFE9013386E701931786008544E3DF54
+:1034400007E08944B70780FFFD17F18F13D71900F4
+:1034500013F81900336807019399F701B3E90901DB
+:1034600013D6170011B9138805FE93070002B3594C
+:103470000701638AF50093070004B385B74033174B
+:10348000B700B3EEEE003338D00133683801A5BE83
+:103490003363E30133386000B3890E41B3B73E01B3
+:1034A0003306F740C6843684ADB6B367E30163875D
+:1034B00007189387F5FF638C071C9306F07F638ED4
+:1034C000D50ABE8565BD930700028D8FB3D9BE00B6
+:1034D0003318F700B39EFE00336838013357B70046
+:1034E000B339D001336838013A9365B31318360005
+:1034F0009317D7011358380033E8070136849357E0
+:10350000370095BBBDCB3367D701E31B07DC0E0546
+:103510001318D3010D813368A8009357330075BB8E
+:10352000E30F08E2131836009317D7011358380039
+:103530003368F80036849357370091B3B309DF41FD
+:10354000B307E340333F3F013386E7418544D1B4BD
+:10355000131835009316D3011358380033E80601C9
+:10356000935733009DBBB389EE413306674033B9AF
+:103570003E0133092641368475B40E061318D7016F
+:103580000D823368C8009357370081BBB309DF4110
+:10359000B307E34033363F013386C74093178600B5
+:1035A00063D7070AB389EE41B3076740B3BE3E0154
+:1035B0003386D7413684C9B43363E30133386000BE
+:1035C000FDB3138805FE93070002B3590301638A14
+:1035D000F50093070004B385B7403313B300336F8E
+:1035E0006F003338E001336838017DB5B389EE41AF
+:1035F000B3076740B3BE3E013386D7413684854466
+:1036000009BC131836009317D701135838003368D4
+:10361000F80093573700A5B1B309DF01B307E30002
+:1036200033BFE9013386E70193178600E3D807C269
+:10363000B70780FFFD177D8E85440DB10E06131868
+:10364000D7010D823368C800935737002DB133E896
+:10365000C900E30608D019B1138805FE93070002DC
+:10366000B3590301638AF50093070004B385B7409B
+:103670003313B300336F6F003338E0013368380120
+:103680003DB301441307F07FB70708002DBCB30911
+:10369000DF01B307E300B3BED9013386D70169BBAD
+:1036A000411106C622C426C20DCD9357F541B3C4BD
+:1036B000A7009D8C2A842685EF00705D9306E0416B
+:1036C000898EA9477D8093F6F67F63CDA7022D47AB
+:1036D000098FB3D7E4005505B207B394A400B183B2
+:1036E00029A00144814681478144B207D206B183B3
+:1036F0007E04D58FC18FB24022442685BE85924478
+:10370000410182805515B397A400B207B18381446B
+:10371000E9BF3971935775014AD856D25ECE931AD4
+:1037200095001359F50106DE22DC26DA4ED652D476
+:103730005AD093F7F70F93DA9A00CA8B6382071275
+:103740001307F00F6384E7128E0A37070004B3EA09
+:10375000EA00138A17F80144014B93D7750193943B
+:10376000950093F7F70FA58093D9F501FDC71307CF
+:10377000F00F6387E7028E04938717F8370700047A
+:10378000D98C330AFA408146558C1727000013075D
+:10379000A72B0A043A941C4033493901BA9782870F
+:1037A000130A1AF0F9E88946558C17270000130709
+:1037B000A72D0A043A941C4033493901BA978287ED
+:1037C00001491307F00FB707400013959700F25017
+:1037D00062549317770125817E095D8D336525013C
+:1037E000D2544259B259225A925A025BF24B216189
+:1037F00082801307F00F8147C9BFA68ACE8B368B14
+:103800008947630BFB1A8D47E30CFBFA8547630A74
+:10381000FB0A1307FA0713F91B006357E01293F72B
+:103820007A0099C793F7FA0091466383D700910A0B
+:1038300093974A0063D90700B70700F8FD17B3FA5A
+:10384000FA0013070A089307E00FE3C4E7FA939717
+:103850006A00A5831377F70F8DBFB9E48546A9B732
+:1038600063940A021144014A054BC5BD63990A00DD
+:103870002144130AF00F094BCDB58D4631B73144C1
+:10388000130AF00F0D4BD1BD56852EC6EF00304008
+:103890009307B5FFB39AFA009307A0F8338AA740BD
+:1038A0000144014BB24555BD2685EF00503E13073C
+:1038B000B5FFB307AA00B394E400138A67078146F3
+:1038C000E1B513F91B000147814701B74166139524
+:1038D00054007D1693570501698E63FA9A0AB3D591
+:1038E000FA027D1AD68601473388C502B3F6F6027E
+:1038F000C206558F637B07012A979386F5FF63689D
+:10390000A70A6376070BF9152A9733070741B356C1
+:10391000F7023377F702B38AC6029317070163FBF6
+:103920005701AA971387F6FF63E1A70863FF5707BC
+:10393000F916AA97C205B38A5741D58DB33A5001FB
+:10394000B3EA5501CA8BF1B58546998E11C76D460C
+:1039500001478147E34BD6E6130AEA09339A4A0145
+:10396000B3D7DA00B33A4001B3E7570113F7770052
+:1039700019C713F7F70091466303D7009107139710
+:103980005700634807029A07A58301473DBD93D6B8
+:103990001A00B3D5F6021397FA0141833388C502A2
+:1039A000B1B7CE8B368B814AA1BDBA8661B7B685D9
+:1039B000A9BF0547814711BD13F91B001307F00F7D
+:1039C000814721B593567501B7078000FD1713D6BF
+:1039D000750193F6F60F1308F00FB3F8A70013570D
+:1039E000F501ED8F1376F60FFD8163810603630CFD
+:1039F00006018DE211E2B1C3638E08026305B704CC
+:103A000005451DE78280F5D779558280E39E08FE43
+:103A10006309D60211E2EDD7E314B7FEE342D6FE06
+:103A200063C7C600E3EE17FD0145E3FDF8FC01E7BF
+:103A30007D558280F5DD054582800145E39208FCD5
+:103A40008280F9DBD1B78146E1BF93567501B70794
+:103A50008000FD1713D6750193F6F60F1308F00FCB
+:103A6000B3F8A7001357F501ED8F1376F60FFD811C
+:103A7000638706036309060185EA11EA89EB0145BC
+:103A8000639B080082800945F5FFE5DA31A8638C65
+:103A900008026300B704054575D77D558280094546
+:103AA000639808026304D60211E2F5D7E315B7FE66
+:103AB000E343D6FE63C7C600E3EF17FD0145E3F31A
+:103AC000F8FC19E3D9BFF1D905458280E5D382809E
+:103AD00082808146C5B7797122D4135475014ECEC8
+:103AE00052CC9319950006D626D24AD056CA5AC847
+:103AF0001374F40F93D99900135AF50169C493070D
+:103B0000F00F6308F40E9397390037070004B3E908
+:103B1000E700130414F88144014B13D77501939AFD
+:103B200095001377F70F93DA9A0013D9F50145CF73
+:103B30009307F00F630CF7028E0A130717F8B70705
+:103B40000004B3EAFA003A94014633452A01BD471E
+:103B5000AA869305140063E2971017270000130745
+:103B6000A7F68A04BA949C40BA9782871304F40F8C
+:103B700063980A0C93E424000946C1BF014513076A
+:103B8000F00FB7074000B2502254A6075E07A58386
+:103B90007E05D98F92540259F249624AD24A424B69
+:103BA0005D8D45618280CA86D689328B89476301E3
+:103BB000FB0A8D47E304FBFC854736856312FB1A3D
+:103BC00001478147C9B7639E090413D77501939ACA
+:103BD00095001377F70F91440144054B93DA9A004F
+:103BE00013D9F50131F7639D0A0093E414000546EB
+:103BF000A9BF63930902A1441304F00F094B31BF1D
+:103C00005685EF00D0089307B5FF098CB39AFA00E8
+:103C10001304A4F8014615BFB1441304F00F0D4B73
+:103C2000EDBD4E852EC6EF0090069307B5FF130439
+:103C3000A0F8B399F900098C8144014BB245F1BD5C
+:103C400093E434000D4611B78947D286E313FBF69F
+:103C500036851307F00F81473DB741639306F3FFA5
+:103C600013D6090193D80A01B3F7D900B3FADA00E1
+:103C700033885703B389F80213570801B30A560370
+:103C8000D6994E9733061603637357011A96C16788
+:103C9000FD17B376F7003378F800C206C296939901
+:103CA000660093570701B3393001E982B2979A074A
+:103CB000B3E6D900B3E9D7009397490063D9070069
+:103CC00013D7190093F71900B369F7002E8413076F
+:103CD000F4076350E00493F7790099C793F7F9006C
+:103CE00091466383D70091099397490063D90700F0
+:103CF000B70700F8FD17B3F9F90013070408930795
+:103D0000E00F63CBE70493976900A5831377F70F60
+:103D10009DBD8547B386E74011C76D460147814782
+:103D2000E343D6E61307E4093397E9003337E000AD
+:103D3000B3D7D900D98F13F7770019C713F7F70056
+:103D400091466303D700910713975700634C070010
+:103D50009A07A583014705BD1307F00F814725B5D5
+:103D60002E84B5B70547814739BD3707800041111B
+:103D70007D179356750113D87501B377A70093F695
+:103D8000F60F935EF5013376B70026C24AC013786A
+:103D9000F80F06C622C41303F00F3E8E3689F68450
+:103DA000139F3700FD8113153600B3880641630267
+:103DB000681093C51500638CBE106354100D63101A
+:103DC00008106304051EFD18B307AF4063860802A0
+:103DD0009307F00F6388F616ED4763C7172913079B
+:103DE0000002330717413317E500B3571501333786
+:103DF000E000D98FB307FF40139757006351071AAC
+:103E0000370400047D147D8C228551256D15B31770
+:103E1000A400634E251B3305254113041500130729
+:103E20000002018F3397E7003337E000B3D78700F4
+:103E3000D98F014913F7770019C713F7F700914697
+:103E40006303D700910713975700635E0714930627
+:103E500019001307F00F93FE14006386E6169A0705
+:103E6000A58393F6F60FA607B240224413D5970018
+:103E7000DE069397FE01558D924402495D8D410106
+:103E800082806392080A138716001377E70F631B7B
+:103E900007146394062263020F2071D5B307AF4065
+:103EA0001397570063550722B307E5410149AE84D4
+:103EB00051B7E30005F0638ABE0AE35410FD93078F
+:103EC000F00F6381F608B70700045D8D31B7635EBC
+:103ED0001009630108089307F00F6385F606B7071A
+:103EE00000045D8DED4763C0171F13070002330701
+:103EF00017413317E500B35715013337E000D98F69
+:103F0000FA9713975700635C070805091307F00F2A
+:103F1000630BE90AB706007E13D71700FD16858BE1
+:103F2000758FD98F01BF3307D84063950610630D95
+:103F30000F147D176303071A9307F00F6314F8102B
+:103F4000AE84328E630F0E06814E9306F00FB707D4
+:103F5000400011BF39C9FD18B307AF00E38308FA69
+:103F60009307F00FE390F6F8F1BF639908081389FF
+:103F700016001377E90F63160712639B061063039D
+:103F80000F16E30205EEB307AF0013975700014980
+:103F900063570700370700FC7D17F98F054913F7B2
+:103FA0007700E31C07E813DE37009307F00FE30BFD
+:103FB000F9F893179E00A5839376F90F93FE1400EA
+:103FC0005DB593FE14009306F00F814769BD370776
+:103FD00000FC7D17F98F13F777003309A940E31E22
+:103FE00007E4D1B73304AF409317540063C3070C01
+:103FF000E31C04E0814E81468147B5B53307D840C4
+:10400000B5C69307F00FE30EF8F2B7070004336F5D
+:10401000FF00ED4763CDE70C93070002998FB317BC
+:10402000FF003357EF00B337F0005D8FB307A700F1
+:104030004289C1BD9307F00FE304F8F0B70700040D
+:10404000336FFF00ED4763C2E70893070002998FC3
+:10405000B317FF003357EF00B337F000D98FB30722
+:10406000F5404289AE8449BB854769B3630E0F06AC
+:104070007D17B307AF004289E30507E89307F00F08
+:10408000E319F8F8328E7DBD328E4289AE8431BF9D
+:10409000E3090FEAE30805EA45BD0DCDAE8EB28710
+:1040A000D9B39307F00FE300F9F2B307AF008583AC
+:1040B000FDB53304E541AE8481BBE31D0FFCE30590
+:1040C00005E8AE84BDBD854725BD854749BF01498B
+:1040D000E39707EC814E814779B3B307E541428905
+:1040E000AE8419BBB28741B3328E42897DBD05478C
+:1040F00035BF37068000135775019307F6FF137716
+:10410000F70F9305E007B3F6A7009357F50163FC9B
+:10411000E5009305D00963FAE500370500801345F3
+:10412000F5FF3E9582800145828093055009D18E2E
+:1041300063CDE500130660093307E64033D7E60098
+:104140003305E040F5F33A8582801307A7F63397ED
+:10415000E600FDB713577501370680009307F6FF99
+:104160001377F70F9305E007B3F6A7009357F50110
+:10417000014563F4E50099C3828082809307E009DA
+:104180007D55E3EBE7FE93055009B3E7C60063D71F
+:10419000E5001307A7F63395E70082801305600951
+:1041A0003307E54033D5E7008280411106C622C4BB
+:1041B00015CD2A84E92C9307E0093387A74093079C
+:1041C000600963C0E704A1469377F70F63D5A600A3
+:1041D00061153314A4002604258026041355940089
+:1041E000B2402244DE075D8D4101828001442604F5
+:1041F00013559400B24022448147DE075D8D410192
+:1042000082809307900963DDE7009307B501954627
+:10421000B317F400898EB337F0003354D4005D8CAB
+:10422000954763D6A7009307B5FF3314F400B7068C
+:1042300000FCFD16937774003376D40085C3937722
+:10424000F4009145638CB70011069317560063D7AD
+:1042500007009307F009758E3387A7401314660093
+:104260002580260413559400B24022449377F70F1B
+:10427000DE075D8D41018280135775011377F70FBB
+:1042800041119307170022C426C21314950006C6D5
+:1042900093F7E70F25809354F50185C793573400B2
+:1042A000130707387604B2075207B1831395F40158
+:1042B000D98FC98FB240228522449244BE854101E4
+:1042C000828005EB39C42285D922A94763C6A70499
+:1042D0002D47098F930755013357E4003314F40039
+:1042E0009317C70013079038098FB1831377F77FAF
+:1042F0005DBF01CC13573400B7070800D98FB20750
+:104300007604B1831307F07F79BF1307F07F8147ED
+:1043100059BF0147814741BF130755FF3317E400D9
+:1043200001447DBF93D645019397C50093F6F67F70
+:10433000B183138616008E071357D5011376E67FD7
+:10434000FD815D8F9318350035CE138806C893071D
+:10435000E00F63DD07018147139597009306F00F87
+:10436000DE062581FE05558D4D8D82806355000B3F
+:10437000931765000E07B337F000D98F93D8D80193
+:10438000B3E7170113F777006301071013F7F7007E
+:1043900091466303D7009107370700047D8F75C7E7
+:1043A000130718001306F00F9376F70FE305C7FA0B
+:1043B0009A07A58313959700DE062581FE05558D86
+:1043C0004D8D8280B367170199EE85CF95479A0787
+:1043D000A5831395970093F6F60FDE062581FE055B
+:1043E000558D4D8D8280A5DBB70740001395970052
+:1043F0009306F00FDE0681452581FE05558D4D8D16
+:1044000082808147139597008146DE062581FE054F
+:10441000558D4D8D8280A5576348F804F9473706BE
+:104420008000B38707417D45598E6351F504795764
+:1044300033070741130500023357E6006388A700DE
+:10444000938626CAB316D600B3E8D800B337100156
+:10445000D98F13F77700014815FB1397570085464E
+:10446000E34807F48146A5B781468DB7938626C8F1
+:104470003397D8003337E000B316D600B3D8F8002E
+:10448000B367D700B3E7F800E9B7C28689B7C16759
+:10449000637CF5029307F00F1307000263EBA7009C
+:1044A0009717000093874766AA9788233305A7408C
+:1044B000828021819717000093870765AA97882338
+:1044C00061473305A7408280B7070001636DF5009F
+:1044D00061819717000093872763AA978823214754
+:1044E0003305A74082804181971700009387C761F9
+:1044F000AA97882341473305A7408280B3C7A50008
+:104500008D8B3307C50081E78D4763EDC700AA8710
+:10451000637EE508942185078505A38FD7FEE3EB2D
+:10452000E7FE828093763500AA8789CA94218507A1
+:104530008505A38FD7FE93F63700C5BF9376C7FFD7
+:10454000138606FE63F0C70683A3050083A2450019
+:1045500083AF850003AFC50083AE050103AE4501FF
+:1045600003A3850183A8C5019385450223A0770095
+:1045700003A8C5FF23A2570023A4F70123A6E70140
+:1045800023A8D70123AAC70123AC670023AE1701D4
+:104590009387470223AE07FF75B7904191079105B6
+:1045A00023AEC7FEE3EBD7FEE3E6E7F68280397180
+:1045B0003EDA2ED232D436D63AD842DC46DE938763
+:1045C000018122CC804326CA06CEAA8409C41C4C91
+:1045D00099E32285FD290C4454102686228536C68F
+:1045E000EF009013F2406244D244216182800111B5
+:1045F00026CA4AC806CE22CC4EC652C4AA842E89E8
+:1046000001C51C4D91E3F1219C4C804499E3268522
+:10461000C9219717000093872761631BF402C040EC
+:104620005E24A18BB1C71C48A1C7FD59294A1C446F
+:1046300083450900FD17B1E91CC463DD0706228626
+:10464000A94526856920FD576308F502294535A04F
+:10465000971700009387475F6314F4008044C9B73D
+:10466000971700009387475AE31CF4FAC0444DBFE4
+:10467000A2852685192A55D97D55F2406244D24437
+:104680004249B249224A056182801CC4050963D7A8
+:104690000700184C63CAE700638845011C40138774
+:1046A000170018C08CA361B7228626850D20E31061
+:1046B00035F9D9B71C401387170018C0294798A3AC
+:1046C00071B793870181AA8588436FF05FF201116A
+:1046D00022CC26CA4AC806CE4EC6AA842E89328467
+:1046E00001C51C4D91E3F526971700009387C7532A
+:1046F0006317F406C0401C4C1CC45E24A18BC1C3CC
+:104700001C48B5CF1C4808409379F90F1379F90F6D
+:104710001D8D5C486346F500A2852685692C25E53C
+:104720001C440505FD171CC41C401387170018C046
+:10473000238037015C486388A7005E24858B81CB8A
+:10474000A9476316F900A2852685B5240DEDF24030
+:1047500062444A85D2444249B24905618280971732
+:1047600000009387674E6314F400804469B797177D
+:10477000000093876749E310F4F8C044ADBFA285F9
+:104780002685212041D17D59D9B7411193870181D7
+:1047900026C2844322C44AC006C62A892E8489C4FC
+:1047A0009C4C99E326853526971700009387C747C9
+:1047B000631BF402C0400317C40093170701C183B1
+:1047C00093F68700ADEA93F6070195EEA5472320FF
+:1047D000F900136707045AA47D55B240224492445D
+:1047E000024941018280971700009387E7456314CF
+:1047F000F4008044C9B7971700009387E740E31C93
+:10480000F4FAC0444DBF918B9DC34C5889C993079E
+:1048100044046384F5004A85292B232A04025E247C
+:104820002322040093F7B7FD5EA41C481CC05E243D
+:1048300093E787005EA41C4899EB5E2413070020D1
+:1048400093F707286385E700A2854A8591295E24AE
+:1048500013F717001DC35C4823240400B307F0407E
+:104860001CCC1C480145B5FB8317C40013F707088F
+:104870002DD793E707045EA485B7898B014791E3A1
+:10488000584818C4F9BFDE25011122CC26CA06CE2D
+:104890004AC84EC613F78700AA842E8479EBD84104
+:1048A000634DE000B841634AE0000145F2406244D4
+:1048B000D2444249B2490561828058547DD703A948
+:1048C00004009396370123A0040063DB06067048BA
+:1048D0005E24918B99C75C401D8E5C5899C33C4007
+:1048E0001D8E5C540C50814626858297FD575A24B4
+:1048F000631DF5009440F54763E8D706B7074020ED
+:104900008507B3D7D700858BA5C31C482322040095
+:104910001CC09317370163D80700FD576314F500D7
+:104920009C4091E368C84C5823A02401BDDD930747
+:1049300044046384F5002685ED2E232A0402B5B7CE
+:104940000C500146854626850297FD572A86E311BD
+:10495000F5F89C40B5DF75476385E70059476393D9
+:10496000E70423A0240191B7136707045AA47D55D7
+:1049700035BF83A90501E38A09F203A905008D8BE0
+:1049800023A0350133093941014791E3D84918C4BF
+:10499000E35D20F11C540C50CA864E862685829712
+:1049A0006347A0005E2493E707045EA4C9B7AA99F1
+:1049B0003309A940F1BF9C49A5C3011122CC06CE01
+:1049C0002A8411C51C4D81E72EC62122B2459717B6
+:1049D000000093876725639CF5004C408397C500D2
+:1049E0009DC722856244F24005616FF0DFE99717A9
+:1049F0000000938767256394F5000C44C5B79717AB
+:104A0000000093876720E39BF5FC4C44C1BFF24054
+:104A1000624401450561828001458280411122C4C2
+:104A200006C62A844EA572A5232005002322050070
+:104A3000232405002322050623280500232A050038
+:104A4000232C0500214681451305C505EFB04FF520
+:104A500097170000938787B25CD097170000938761
+:104A6000A7B41CD497170000938787B85CD4971716
+:104A700000009387E7BA00D01CD8B240224441011D
+:104A8000828097050000938545F391AA411126C2C3
+:104A9000130680069384F5FFB384C4024AC02E89AE
+:104AA00022C406C6938544070D2E2A8401CD2320F7
+:104AB000050023222501310508C41386840681459B
+:104AC000EFB00FEE2285B2402244924402494101E8
+:104AD00082801C4DA5E7411106C622C4970700003D
+:104AE000938767FA1CD5938741819C43232405044F
+:104AF00023260504232805046314F50085471CCDEF
+:104B00002A84352848C022851D2808C42285052806
+:104B100048C4484001469145EFF05FF0084405461F
+:104B2000A545EFF0BFEF48440946C945EFF01FEF38
+:104B300085471CCCB24022444101828082804111D1
+:104B40009387418126C284434AC006C69C4C22C436
+:104B50002A8981E72685EFF0DFF793848404804477
+:104B6000DC40FD1763D607009C40B9CF8440C5BF29
+:104B70000317C40039E7C1778507232204062320E1
+:104B8000040023220400232404005CC4232804001E
+:104B9000232A0400232C0400214681451305C40563
+:104BA000EFB00FE0232A0402232C04022324040480
+:104BB000232604042285B240224492440249410142
+:104BC00082801304840671BF91454A85EFF01FEC83
+:104BD00088C049FDB1472320F9000144E1BF797144
+:104BE00022D44AD052CC56CA5AC85EC606D626D25D
+:104BF0004ECE2A8AAE8A130485040149054BFD5B1B
+:104C000009ECB25022544A8592540259F249624A40
+:104C1000D24A424BB24B456182800444832944000E
+:104C2000FD1963D409000040E1BFDE24637BFB0073
+:104C30008397E40063877701A6855285829A33695A
+:104C4000A90093848406E9BF1971A6DAAE8483951E
+:104C5000E500A2DC86DE328463DB0500DE2423A0CF
+:104C6000060093F7070885E7930700401DA030086A
+:104C700036C6EF007020B246E34205FE7247BD67BC
+:104C8000F98F7977BA9793B717009CC2F1BF930752
+:104C900000041CC0F6506654D65401450961828058
+:104CA000DE25011122CC06CE26CA4AC8898B2E8465
+:104CB00089CF930774041CC01CC885475CC8F240A8
+:104CC0006244D24442490561828074003000AA8463
+:104CD000EFF09FF7A2452A892685012219E983175B
+:104CE000C40013F7072061FFF19B93E727005EA440
+:104CF000C9B797070000938707D99CD45E2408C0E2
+:104D000008C893E707085EA4A2475CC8B24781CFF2
+:104D10008315E4002685EF00D01811C55E24F19BB1
+:104D200093E717005EA45E243369F900231624017B
+:104D300079B7DDC183A7C5FF411122C406C626C2CB
+:104D40001384C5FF63D307003E94AA84EF00301C90
+:104D5000938701869C4381EF2322040023A0818650
+:104D60002244B2402685924441016F00701A637E4E
+:104D7000F40014403307D4006396E7009843DC4303
+:104D8000369718C05CC0D9BFBA87D84319C3E37D32
+:104D9000E4FE94433386D700631F86001040B2962A
+:104DA00094C33386D700E31DC7FA10435843B29625
+:104DB00094C3D8C375B76375C400B1479CC04DB7E1
+:104DC0001040B306C4006316D70014435843B2968C
+:104DD00014C058C0C0C369B78280011126CA938429
+:104DE0003500F19806CE22CC4AC84EC6A104B14780
+:104DF00063F3F404B14463E2B4042A89EF00301190
+:104E00009387018698433A8439E0938741869C438F
+:104E100091E781454A85252F23A2A186A6854A854B
+:104E20003D27FD5963193507B1472320F9004A850D
+:104E3000EF00100E29A0E3D004FCB1471CC10145CE
+:104E4000F2406244D2444249B249056182801C402A
+:104E5000858F63CF0702AD4663F6F6001CC03E9413
+:104E600004C031A05C406313870223A0F1864A8509
+:104E7000EF00100A1305B40093074400619933074B
+:104E8000F5405DDF3A94898F1CC05DBF5CC3C5B738
+:104E90002287404095BF130435007198E30285FCDA
+:104EA000B305A4404A856525E31C35FBB5BF1C4608
+:104EB000FD171CC663DA0700184E63C5E700A94753
+:104EC0006394F5006FF0BF801C422E851387170096
+:104ED00018C28CA38280011122CC26CA4AC84EC6B1
+:104EE00052C406CE2A89AE893284B304D6007D5AD4
+:104EF00063149400014509A80C204E864A85EFF002
+:104F00001FFB0504E31645FFF2406244D2444249C8
+:104F1000B249224A05618280357122CD26CB4AC929
+:104F20004EC706CF52C556C35AC1DEDEE2DCE6DA12
+:104F3000AA89AE843289368409C51C4D99E3EFF005
+:104F40005FB997170000938727CE6398F40C83A46A
+:104F50004900DE24A18BE5C79C48F5C393070002F6
+:104F6000A304F1029307000302D22305F10222C633
+:104F7000930B5002971A0000938A0ACF054C294BD5
+:104F80004A841C2099C3639F770DB30C2441638E20
+:104F90000C00E6864A86A6854E85EFF0DFF3FD57C6
+:104FA000630FF51C9256E69636D21C206389071CC7
+:104FB000FD571309140002C802CE3ECA02CCA30951
+:104FC000010482D483450900154656852D27130414
+:104FD0001900C24751E913F7070109C71307000277
+:104FE000A309E10413F7870009C71307B002A30957
+:104FF000E104834609001307A002638FE606F24727
+:105000004A8481462546182093051400130707FD9E
+:105010006377E60AB5CA3ECE85A897170000938746
+:10502000A7C26395F40083A4890025B797170000F1
+:10503000938787BDE39FF4F083A4C90019BFA685B9
+:105040004E85EFF08FF419D97D55FA406A44DA4461
+:105050004A49BA492A4A9A4A0A4BF65B665CD65CC8
+:105060000D618280050431BF330555413315AC0015
+:10507000C98F3EC82289B9B7324793064700184303
+:1050800036C6634707023ACE18209307E002631D35
+:10509000F70418309307A002631BF702B247090414
+:1050A000138747009C433AC663C107023ECA2DA836
+:1050B0003307E04093E727003ACE3EC8F1B7B38705
+:1050C000670385462E84BA973DBFFD57C5B70504D3
+:1050D00002CA81468147254618209305140013070C
+:1050E00007FD6374E606F9F20C200D461715000063
+:1050F000130505B8092511CD97170000938747B709
+:105100001D8D93070004B397A700424505045D8DEC
+:105110002AC80C201946171500001305A5B5130958
+:1051200014002304B102C12B35C197B7FFFF938749
+:1051300067ED95E74247B2471377071009CF91070C
+:105140003EC69257D2973ED225BDB38767038546A8
+:105150002E84BA9751B79D07E19BA107D5B7780078
+:1051600097060000938666D726860C084E85970022
+:105170000000E7000000FD572A8AE314F5FCDE2456
+:1051800093F70704E39207EC1255C1B57800970630
+:105190000000938686D426860C084E85012AE1BF3E
+:1051A000797156CA9C49BA8A984522D426D24ECEE5
+:1051B00052CC06D64AD05AC85EC6AA892E84B2847A
+:1051C000368A63D3E700BA879CC00347340419C307
+:1051D00085079CC01C4093F7070281C79C40890744
+:1051E0009CC00329040013796900631A0900130B9A
+:1051F0009401FD5B5C449840998F634CF9041C401A
+:105200008346340493F70702B336D000A5EB1306A8
+:105210003404D2854E85829AFD576303F5041C4001
+:1052200011469840998B544481446397C700B384D6
+:10523000E64063D3040081441C4418486354F700DB
+:10524000998FBE94014969047D5B639824050145EB
+:1052500009A885465A86D2854E85829A631E7501B5
+:105260007D55B250225492540259F249624AD24AB0
+:10527000424BB24B456182800509ADBF3307D40074
+:1052800013060003A301C7040347540493871600C1
+:10529000A2978906A381E7049DBF85462286D28511
+:1052A0004E85829AE30E65FB050945B7797122D4D4
+:1052B00026D24AD04ECE06D652CC56CA5AC8B68945
+:1052C000942D930790063289AA842E841386350480
+:1052D000638DF60263E2D706930780056386F618AE
+:1052E00063EDD700638E062093073004638EF60AC1
+:1052F000930A24042301D404C9A0930730066385CC
+:10530000F60A93074006E395F6FE1C40084393F621
+:10531000070893054500C5C61C410CC363D80700A8
+:105320001307D002B307F040A301E404971600006E
+:105330009386C694294765A8930700076382F616EB
+:1053400063E5D7029307E0066389F6189307F00632
+:10535000E390F6FA0C401C4313F805081385470048
+:105360006307080608C39C4385A893075007E38397
+:10537000F6FE930780076389F61293073007E399D7
+:10538000F6F61C43D04181459386470014C383AA97
+:10539000070056858D2601C53305554148C05C4040
+:1053A0001CC8A301040461A81C43930A2404938627
+:1053B00047009C4314C32301F4048547D5B793F6F3
+:1053C00007041C410CC3B9DAC207C18781BF93F53A
+:1053D000050408C3C9D99E231307F0066387E60EA8
+:1053E00097160000938686892947A30104044C4040
+:1053F0000CC463C5050008406D9908C099E3B28AE2
+:1054000089CDB28AB3F5E702FD1AB6958C212380C7
+:10541000BA00B3D5E70263F0E70CA147631EF700BB
+:105420001C40858B91CB58401C4863C7E70093070D
+:105430000003A38FFAFEFD1A3306564110C84E87AB
+:10544000CA867000A2852685EFF09FD57D5A631D20
+:10545000450B7D55B250225492540259F249624A8A
+:10546000D24A424B45618280A382D5049716000040
+:105470009386C6800C40084313F805081C411105AB
+:10548000630D080208C313F7150001C793E5050271
+:105490000CC04147B9FB0C4093F5F5FD0CC0B1B70A
+:1054A0009C4193E707029CC193078007A302F40481
+:1054B000970600009386C67D75BF13F8050408C3E0
+:1054C000E30308FCC207C1837DBF970600009386F3
+:1054D000E67A214719BFAE8735B794411C43CC49C2
+:1054E00013F80608138547006306080008C39C43A9
+:1054F0008CC339A008C393F606049C43F5DA8EA347
+:1055000023280400B28A25BF14485686CA852685FA
+:105510008299E30045F51C40898B8DE7B2474844EA
+:10552000E35AF5F23E853DB785465686CA852685FF
+:105530008299E30065F3050A5C443247998FE3459D
+:10554000FAFEE9BF014A930A94017D5BF5B7411168
+:1055500022C42A842E8523A201C806C6EFC0FFC339
+:10556000FD576317F500938741C89C4391C31CC046
+:10557000B240224441018280411122C42E8483958D
+:10558000E50006C67922634905007C48AA977CC8D5
+:10559000B2402244410182805E247D777D17F98FDD
+:1055A0005EA4FDB7DE25011122CC26CA4AC84EC62C
+:1055B00006CE93F70710AA842E843289B68991C744
+:1055C0008395E5008946014609225E247D777D1793
+:1055D000F98F5EA48315E4006244F240CE864A86C9
+:1055E000B24942492685D244056125A8411122C409
+:1055F0002E848395E50006C6C928FD575A24631AF0
+:10560000F500FD77FD17F98F5EA4B24022444101F9
+:1056100082808567D98F5EA468C8C5BF8395E50081
+:1056200005A8411122C42A842E85B285368623A27C
+:1056300001C806C6EFC09FB2FD576317F5009387F8
+:1056400041C89C4391C31CC0B240224441018280A6
+:10565000411122C42A842E8523A201C806C6C52072
+:10566000FD576317F500938741C89C4391C31CC045
+:10567000B240224441018280411122C42A842E85F5
+:10568000B28523A201C806C6C920FD576317F500DD
+:10569000938741C89C4391C31CC0B240224441013E
+:1056A0008280411122C42A842E8523A201C806C605
+:1056B0005D20FD576317F500938741C89C4391C354
+:1056C0001CC0B240224441018280411122C42A847C
+:1056D0002E85B285368623A201C806C65920FD57FD
+:1056E0006317F500938741C89C4391C31CC0B24027
+:1056F00022444101828093F5F50F2A966314C50078
+:10570000014582801C21E38EB7FE0505C5BF82805E
+:105710008280411122C42A842E85B285368623A236
+:1057200001C806C6A920FD576317F500938741C835
+:105730009C4391C31CC0B240224441018280930724
+:10574000800523A2F1C87D5582809307800523A29E
+:10575000F1C87D5582809307800523A2F1C80145D9
+:1057600082809307800523A2F1C87D55828093072C
+:10577000800523A2F1C87D5582800000537973749F
+:10578000656D436C6B3A25640D0A000043686970CF
+:1057900049443A253038780D0A00000043616C69AD
+:1057A0006272617474696F6E5F56616C203A202575
+:1057B000640A0000CDCC4C3D6666663F0000F043B5
+:1057C0009A9999999999A93FCDCCCCCCCCCCEC3F66
+:1057D000696E2074696D31206972712000000000CB
+:1057E0000000804000000000000000000000E03FDA
+:1057F0000000000000003440000030411D130F1372
+:105800000213F412E612D712C812B912AA129A128F
+:105810008A127A126A12591248123712251213127A
+:105820000112EE11DB11C811B511A1118D11791101
+:1058300064114F113A1125110F11F910E310CC101A
+:10584000B5109E1087106F1057103F1026100D10C6
+:10585000F40FDB0FC20FA80F8E0F740F590F3F0FFD
+:10586000240F090FED0ED20EB60E9A0E7E0E620EAA
+:10587000460E290E0C0EF00DD30DB60D980D7B0DB6
+:105880005E0D400D220D050DE70CC90CAB0C8D0C07
+:105890006F0C510C330C150CF70BD90BBB0B9C0B7D
+:1058A0007E0B600B420B240B060BE80ACA0AAD0AFA
+:1058B0008F0A710A540A360A190AFC09DF09C2095B
+:1058C000A50988096C094F0933091709FB08DF0886
+:1058D000C308A8088D08720857083C082108070863
+:1058E000ED07D307B907A00786076D0754073C07E4
+:1058F00023070B07F306DB06C406AD0696067F06F4
+:10590000680652063C0626061006FB05E605D1058C
+:10591000BC05A70593057F056B05580545053205B0
+:105920001F050C05FA04E804D604C404B304A1045A
+:1059300090047F046F045F044E043E042F041F0490
+:1059400010040104F203E303D503C703B903AB0357
+:105950009D0390038203750368035C034F034303B5
+:1059600036032A031F0313030703FC02F102E602B6
+:10597000DB02D102C602BC02B202A7029E0294025E
+:105980008A02810277026E0265025C0254024B02B7
+:1059900042023A0232022A0222021A0212020B02C6
+:1059A0000302FC01F401ED01E601DF01D801D2019F
+:1059B000CB01C401BE01B801B101AB01A5019F013A
+:1059C000990194018E01880183017D0178017301A1
+:1059D0006E01690163015E015A0155015001000029
+:1059E00000007A440AD7A33B25640A0025640D0A07
+:1059F000000000000000803F0000C842000070412D
+:105A0000CDCC4C3FB6D2FFFFA8D1FFFFA8D1FFFFFE
+:105A1000A6D1FFFFAED1FFFFAED1FFFF74D1FFFFD4
+:105A2000A6D1FFFFAED1FFFF74D1FFFFAED1FFFFC4
+:105A3000A6D1FFFFA2D2FFFFA2D2FFFFA2D2FFFF9B
+:105A400074D1FFFF88DEFFFFAEDDFFFF82DEFFFFC8
+:105A5000B6DDFFFF82DEFFFF7CDDFFFF82DEFFFFA2
+:105A6000B6DDFFFFAEDDFFFFAEDDFFFF7CDDFFFF3C
+:105A7000B6DDFFFFBCDDFFFFBCDDFFFFBCDDFFFFD0
+:105A80007CDDFFFF6EDDFFFF6EDDFFFF42DEFFFF0F
+:105A90001EDFFFFF42DEFFFF3CDDFFFF42DEFFFFB8
+:105AA0001EDFFFFF6EDDFFFF6EDDFFFF3CDDFFFF52
+:105AB0001EDFFFFF7CDDFFFF7CDDFFFF7CDDFFFFE6
+:105AC0003CDDFFFF96E1FFFFE4E0FFFFE4E0FFFFC6
+:105AD000E2E0FFFFE8E0FFFFE8E0FFFFB8E0FFFFE4
+:105AE000E2E0FFFFE8E0FFFFB8E0FFFFE8E0FFFFD4
+:105AF000E2E0FFFF84E1FFFF84E1FFFF84E1FFFFBD
+:105B0000B8E0FFFF000102020303030304040404DE
+:105B10000404040405050505050505050505050539
+:105B20000505050506060606060606060606060619
+:105B30000606060606060606060606060606060605
+:105B400006060606070707070707070707070707E9
+:105B500007070707070707070707070707070707D5
+:105B600007070707070707070707070707070707C5
+:105B700007070707070707070707070707070707B5
+:105B80000707070708080808080808080808080899
+:105B90000808080808080808080808080808080885
+:105BA0000808080808080808080808080808080875
+:105BB0000808080808080808080808080808080865
+:105BC0000808080808080808080808080808080855
+:105BD0000808080808080808080808080808080845
+:105BE0000808080808080808080808080808080835
+:105BF0000808080808080808080808080808080825
+:105C00000808080800000000000000000000000074
+:105C10000000000000000000000000000000000084
+:105C20000000000000000000000000000000000074
+:105C30000000000000000000000000000000000064
+:105C40000000000000000000000000000000000054
+:105C50000000000000000000000000000000000044
+:105C600000000000232D302B20000000686C4C0049
+:105C70006566674546470000303132333435363784
+:105C80003839414243444546000000003031323348
+:105C90003435363738396162636465660000000068
+:105CA00000000000000000000102030406070809CC
+:105CB00000000000010203040102030406070809B2
+:105CC00000000000000000000000000000E8038C5D
+:105CD000051400A406DC05A00564008C050A00017B
+:105CE00000140014004600320028000A003C001096
+:105CF0000E000000534C111111111111110100017E
+:105D000000160000000000000300000080250000D5
+:105D10000000000000000000000000000000000083
+:105D200000000000040000008025000000000000CA
+:105D30000000000000000000000000000000000063
+:105D4000245C0000445C0000045C000000000000D3
+:105D50000000000000000000000000000000000043
+:105D60000000000000000000000000000000000033
+:105D70000000000000000000000000000000000023
+:105D80000000000000000000000000000000000013
+:105D90000000000000000000000000000000000003
+:105DA000006CDC0202040608880500200000403F69
+:085DB0009C0000209C00002073
:00000001FF
diff --git a/obj/mppt_Nos_V0.4.lst b/obj/mppt_Nos_V0.4.lst
index 30e999e..26bfaa0 100644
--- a/obj/mppt_Nos_V0.4.lst
+++ b/obj/mppt_Nos_V0.4.lst
@@ -7,9 +7,9 @@ start address 0x00000000
Program Header:
LOAD off 0x00001000 vaddr 0x00000000 paddr 0x00000000 align 2**12
- filesz 0x00005bec memsz 0x00005bec flags r-x
- LOAD off 0x00007000 vaddr 0x20000000 paddr 0x00005bec align 2**12
- filesz 0x00000118 memsz 0x0000062c flags rw-
+ filesz 0x00005ca0 memsz 0x00005ca0 flags r-x
+ LOAD off 0x00007000 vaddr 0x20000000 paddr 0x00005ca0 align 2**12
+ filesz 0x00000118 memsz 0x00000588 flags rw-
LOAD off 0x00007800 vaddr 0x20004800 paddr 0x20004800 align 2**12
filesz 0x00000000 memsz 0x00000800 flags rw-
@@ -19,49 +19,49 @@ Idx Name Size VMA LMA File off Algn
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .vector 0000013c 00000004 00000004 00001004 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .text 00005aac 00000140 00000140 00001140 2**3
+ 2 .text 00005b60 00000140 00000140 00001140 2**3
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 3 .fini 00000000 00005bec 00005bec 00007118 2**0
+ 3 .fini 00000000 00005ca0 00005ca0 00007118 2**0
CONTENTS, ALLOC, LOAD, CODE
4 .dalign 00000000 20000000 20000000 00007118 2**0
CONTENTS
- 5 .dlalign 00000000 00005bec 00005bec 00007118 2**0
+ 5 .dlalign 00000000 00005ca0 00005ca0 00007118 2**0
CONTENTS
- 6 .data 00000118 20000000 00005bec 00007000 2**2
+ 6 .data 00000118 20000000 00005ca0 00007000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 7 .bss 00000514 20000118 00005d04 00007118 2**2
+ 7 .bss 00000470 20000118 00005db8 00007118 2**2
ALLOC
8 .stack 00000800 20004800 20004800 00007800 2**0
ALLOC
- 9 .debug_info 00023059 00000000 00000000 00007118 2**0
+ 9 .debug_info 00023b76 00000000 00000000 00007118 2**0
CONTENTS, READONLY, DEBUGGING
- 10 .debug_abbrev 00005ae3 00000000 00000000 0002a171 2**0
+ 10 .debug_abbrev 00005cf8 00000000 00000000 0002ac8e 2**0
CONTENTS, READONLY, DEBUGGING
- 11 .debug_aranges 00000f98 00000000 00000000 0002fc58 2**3
+ 11 .debug_aranges 00000fc8 00000000 00000000 00030988 2**3
CONTENTS, READONLY, DEBUGGING
- 12 .debug_ranges 000011b0 00000000 00000000 00030bf0 2**3
+ 12 .debug_ranges 000011e8 00000000 00000000 00031950 2**3
CONTENTS, READONLY, DEBUGGING
- 13 .debug_line 000152fa 00000000 00000000 00031da0 2**0
+ 13 .debug_line 000156a0 00000000 00000000 00032b38 2**0
CONTENTS, READONLY, DEBUGGING
- 14 .debug_str 00004e18 00000000 00000000 0004709a 2**0
+ 14 .debug_str 00004e7c 00000000 00000000 000481d8 2**0
CONTENTS, READONLY, DEBUGGING
- 15 .comment 00000033 00000000 00000000 0004beb2 2**0
+ 15 .comment 00000033 00000000 00000000 0004d054 2**0
CONTENTS, READONLY
- 16 .debug_frame 00003230 00000000 00000000 0004bee8 2**2
+ 16 .debug_frame 00003274 00000000 00000000 0004d088 2**2
CONTENTS, READONLY, DEBUGGING
- 17 .debug_loc 00006aba 00000000 00000000 0004f118 2**0
+ 17 .debug_loc 00006a67 00000000 00000000 000502fc 2**0
CONTENTS, READONLY, DEBUGGING
- 18 .stab 00000084 00000000 00000000 00055bd4 2**2
+ 18 .stab 00000084 00000000 00000000 00056d64 2**2
CONTENTS, READONLY, DEBUGGING
- 19 .stabstr 00000117 00000000 00000000 00055c58 2**0
+ 19 .stabstr 00000117 00000000 00000000 00056de8 2**0
CONTENTS, READONLY, DEBUGGING
SYMBOL TABLE:
00000000 l d .init 00000000 .init
00000004 l d .vector 00000000 .vector
00000140 l d .text 00000000 .text
-00005bec l d .fini 00000000 .fini
+00005ca0 l d .fini 00000000 .fini
20000000 l d .dalign 00000000 .dalign
-00005bec l d .dlalign 00000000 .dlalign
+00005ca0 l d .dlalign 00000000 .dlalign
20000000 l d .data 00000000 .data
20000118 l d .bss 00000000 .bss
20004800 l d .stack 00000000 .stack
@@ -94,6 +94,9 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 ch32l103_tim.c
00000000 l df *ABS* 00000000 ch32l103_usart.c
00000000 l df *ABS* 00000000 adc.c
+20000168 l O .bss 000000c8 CHG_CURR_buff
+20000230 l O .bss 000000c8 DSG_CURR_buff
+20000132 l O .bss 00000002 temp.5257
00000000 l df *ABS* 00000000 flash.c
00000000 l df *ABS* 00000000 gpio.c
00000000 l df *ABS* 00000000 pwm.c
@@ -101,26 +104,27 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 tim.c
00000000 l df *ABS* 00000000 timeSliceOffset.c
2000013c l O .bss 00000004 pTimeSliceList
+00000000 l df *ABS* 00000000 ring_queue2.c
00000000 l df *ABS* 00000000 ring_queue.c
00000000 l df *ABS* 00000000 debug.c
20000140 l O .bss 00000002 p_ms
20000142 l O .bss 00000002 p_us
20000108 l O .data 00000004 curbrk.5007
00000000 l df *ABS* 00000000 collect_Conversion.c
-00002058 l F .text 000000e6 get_adcDmaTim_middleAverageFilter
-00002168 l F .text 00000092 middleAverageFilter
+000021c0 l F .text 0000002a Get_ConversionVal
+000021ea l F .text 00000092 middleAverageFilter
00000000 l df *ABS* 00000000 inflash.c
00000000 l df *ABS* 00000000 mppt_control.c
00000000 l df *ABS* 00000000 task.c
-20000145 l O .bss 00000001 flag.6438
-2000014d l O .bss 00000001 num.6439
-2000014e l O .bss 00000001 num.6502
-2000014f l O .bss 00000001 num.6508
-20000150 l O .bss 00000002 numLong.6509
-20000154 l O .bss 00000004 temp.6461
+20000145 l O .bss 00000001 flag.6454
+2000014d l O .bss 00000001 num.6455
+2000014e l O .bss 00000001 num.6518
+2000014f l O .bss 00000001 num.6524
+20000150 l O .bss 00000002 numLong.6525
+20000154 l O .bss 00000004 temp.6477
00000000 l df *ABS* 00000000 uart_dev.c
-20000434 l O .bss 000000c8 bat485_in_buff
-200004fc l O .bss 0000012c gw485_in_buff
+20000390 l O .bss 000000c8 bat485_in_buff
+20000458 l O .bss 0000012c gw485_in_buff
00000000 l df *ABS* 00000000 gedf2.c
00000000 l df *ABS* 00000000 ledf2.c
00000000 l df *ABS* 00000000 muldf3.c
@@ -144,13 +148,13 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 wsetup.c
00000000 l df *ABS* 00000000 fflush.c
00000000 l df *ABS* 00000000 findfp.c
-00004966 l F .text 00000066 std
+00004a1c 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
-00004df8 l F .text 00000028 __sfputc_r
+00004eae 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
@@ -172,37 +176,38 @@ SYMBOL TABLE:
00000000 l df *ABS* 00000000 impure.c
2000009c l O .data 00000060 impure_data
00000000 l df *ABS* 00000000 reent.c
-0000197c g F .text 0000003e EXTI2_IRQHandler
+000019f6 g F .text 0000003e EXTI2_IRQHandler
20000144 g O .bss 00000001 excessiveLoadFlag
-000055ec g F .text 00000028 _isatty_r
-00001ef4 g F .text 00000022 TimeSliceOffset_Start
-000019ba g F .text 0000005a WORK_VOLT_INT_Init
-00004538 g F .text 000000d4 _puts_r
-00005614 g F .text 0000002c _lseek_r
+000056a2 g F .text 00000028 _isatty_r
+00001ff8 g F .text 00000022 TimeSliceOffset_Start
+00001a34 g F .text 0000005a WORK_VOLT_INT_Init
+000045ee g F .text 000000d4 _puts_r
+000056ca g F .text 0000002c _lseek_r
+00001df8 g F .text 0000005c TIM3_Int_Init
0000096e g F .text 00000014 DMA_Cmd
20000020 g O .data 00000032 g_slConfigInfo
-0000283e g F .text 00000052 uart_dev_init
+000028f4 g F .text 00000052 uart_dev_init
00000b10 g F .text 0000000a GPIO_ReadOutputDataBit
-000044f8 g F .text 00000040 printf
+000045ae g F .text 00000040 printf
20000900 g .data 00000000 __global_pointer$
00000148 g F .text 00000028 .hidden __riscv_save_8
000009a2 g F .text 0000000a DMA_GetITStatus
00000440 w .text 00000000 TIM1_CC_IRQHandler
-00005536 g F .text 00000030 __sseek
-00004a1c g F .text 0000006c __sinit
+000055ec g F .text 00000030 __sseek
+00004ad2 g F .text 0000006c __sinit
00001018 g F .text 00000004 SPI_I2S_SendData
-00004618 g F .text 000000bc __swbuf_r
+000046ce g F .text 000000bc __swbuf_r
0000024a g F .text 00000002 HardFault_Handler
-000049d6 g F .text 00000046 __sfmoreglue
-0000565a g F .text 00000002 __malloc_unlock
+00004a8c g F .text 00000046 __sfmoreglue
+00005710 g F .text 00000002 __malloc_unlock
00000556 g F .text 00000012 ADC_DMACmd
-00001f4e g F .text 0000002c InRingQueue
+000020b6 g F .text 0000002c InRingQueue
00000440 w .text 00000000 USBPD_IRQHandler
00000194 g F .text 0000000c .hidden __riscv_restore_3
-0000365c g F .text 000002b2 .hidden __divsf3
-00001da6 g F .text 00000058 TIM2_Int_Init
+00003712 g F .text 000002b2 .hidden __divsf3
+00001eaa g F .text 00000058 TIM2_Int_Init
000011f2 g F .text 0000000e TIM_OC1PreloadConfig
-00001e48 g F .text 0000000e SysTick_Handler
+00001f4c g F .text 0000000e SysTick_Handler
0000057a g F .text 0000000a ADC_StartCalibration
00000e16 g F .text 00000054 NVIC_Init
20000152 g O .bss 00000001 outputAgainFlag
@@ -210,49 +215,49 @@ SYMBOL TABLE:
00000180 g F .text 00000020 .hidden __riscv_restore_10
0000101c g F .text 00000004 SPI_I2S_ReceiveData
00000248 g F .text 00000002 NMI_Handler
-0000403c g F .text 00000062 .hidden __fixsfsi
+000040f2 g F .text 00000062 .hidden __fixsfsi
00000440 w .text 00000000 EXTI3_IRQHandler
00000148 g F .text 00000028 .hidden __riscv_save_11
0000088e g F .text 00000006 DBGMCU_GetCHIPID
-00002890 g F .text 000000ae .hidden __gtdf2
-00002468 g F .text 00000046 Task_RunLED
+00002946 g F .text 000000ae .hidden __gtdf2
+00002508 g F .text 00000046 Task_RunLED
00001366 g F .text 0000000a USART_GetFlagStatus
-000055c2 g F .text 0000002a _fstat_r
-20000628 g O .bss 00000004 errno
+00005678 g F .text 0000002a _fstat_r
+20000584 g O .bss 00000004 errno
20000118 g .bss 00000000 _sbss
00000800 g *ABS* 00000000 __stack_size
00000664 g F .text 0000000a ADC_GetFlagStatus
-00001f9a g F .text 0000005a USART_Printf_Init
+00002102 g F .text 0000005a USART_Printf_Init
00000936 g F .text 00000038 DMA_Init
-00005754 g O .text 000001e2 mosTemperADC
-00003cb4 g F .text 00000388 .hidden __subsf3
+000057fc g O .text 000001e2 mosTemperADC
+00003d6a g F .text 00000388 .hidden __subsf3
00000440 w .text 00000000 USBFS_IRQHandler
00000194 g F .text 0000000c .hidden __riscv_restore_2
000011b0 g F .text 00000016 TIM_CtrlPWMOutputs
-00004446 g F .text 000000b2 memcpy
+000044fc g F .text 000000b2 memcpy
00000546 g F .text 00000010 ADC_Cmd
-000049cc g F .text 0000000a _cleanup_r
+00004a82 g F .text 0000000a _cleanup_r
00000b28 g F .text 0000012c GPIO_PinRemapConfig
-000035ea g F .text 00000072 .hidden __floatsidf
-0000293e g F .text 000000b6 .hidden __ltdf2
+000036a0 g F .text 00000072 .hidden __floatsidf
+000029f4 g F .text 000000b6 .hidden __ltdf2
00000440 w .text 00000000 EXTI0_IRQHandler
00000440 w .text 00000000 I2C2_EV_IRQHandler
00000fae g F .text 0000001e RCC_PB2PeriphResetCmd
00000440 w .text 00000000 LPTIM_IRQHandler
-20000132 g O .bss 00000002 Calibrattion_Val
+20000130 g O .bss 00000002 Calibrattion_Val
00001198 g F .text 00000018 TIM_Cmd
-0000460c g F .text 0000000c puts
+000046c2 g F .text 0000000c puts
00001200 g F .text 00000016 TIM_OC4PreloadConfig
20000100 g O .data 00000004 SystemCoreClock
0000135e g F .text 00000008 USART_ReceiveData
-00005694 g F .text 0000000c _fstat
+0000574a g F .text 0000000c _fstat
00000004 g .init 00000000 _einit
00001244 g F .text 0000000c TIM_ClearITPendingBit
-00003994 g F .text 0000008c .hidden __lesf2
+00003a4a g F .text 0000008c .hidden __lesf2
00000140 g F .text 00000030 .hidden __riscv_save_12
00000a46 g F .text 000000c0 GPIO_Init
00000e6a g F .text 00000014 RCC_ADCCLKConfig
-00001e88 g F .text 0000003e TimeSliceOffset_Register
+00001f8c g F .text 0000003e TimeSliceOffset_Register
00000440 w .text 00000000 Break_Point_Handler
00000180 g F .text 00000020 .hidden __riscv_restore_11
20000158 g O .bss 00000004 g_bat485_uart3_handle
@@ -260,93 +265,94 @@ SYMBOL TABLE:
00000440 w .text 00000000 SPI1_IRQHandler
00000568 g F .text 0000000a ADC_ResetCalibration
0000130a g F .text 00000016 USART_Cmd
-00005498 g F .text 0000002a _sbrk_r
+0000554e g F .text 0000002a _sbrk_r
2000011c g O .bss 00000004 CHIPID
00000440 w .text 00000000 TAMPER_IRQHandler
00000170 g F .text 0000000c .hidden __riscv_save_1
-000022aa g F .text 00000086 read_config_info
-000021fa g F .text 0000001c get_CHG_CURR
+0000235e g F .text 00000086 read_config_info
+0000227c g F .text 0000002a get_CHG_CURR
00000194 g F .text 0000000c .hidden __riscv_restore_0
-0000565c g F .text 0000002c _read_r
+00005712 g F .text 0000002c _read_r
00000156 g F .text 0000001a .hidden __riscv_save_7
2000014c g O .bss 00000001 g_impedanceStart
000009ac g F .text 00000008 DMA_ClearITPendingBit
-000041c2 g F .text 000000ac .hidden __extendsfdf2
-00002238 g F .text 0000001c get_PV_VOLT_IN
+00004278 g F .text 000000ac .hidden __extendsfdf2
+000022ec g F .text 0000001c get_PV_VOLT_IN
00000440 w .text 00000000 Ecall_M_Mode_Handler
20004800 g .stack 00000000 _heap_end
-000056a0 g F .text 0000000c _isatty
+00005756 g F .text 0000000c _isatty
+00002052 g F .text 0000002c InRingQueue2
20000114 g O .data 00000004 _global_impure_ptr
0000018a g F .text 00000016 .hidden __riscv_restore_5
20000118 g O .bss 00000002 ADC_Trim
00001020 g F .text 0000000a SPI_I2S_GetFlagStatus
00000440 w .text 00000000 DMA1_Channel4_IRQHandler
000005a4 g F .text 000000b8 ADC_RegularChannelConfig
-00002032 g F .text 00000026 _sbrk
+0000219a g F .text 00000026 _sbrk
00000698 g F .text 00000012 ADC_FIFO_Cmd
0000065c g F .text 00000008 ADC_GetConversionValue
20000054 g O .data 0000000e defaultValue
-00001f3e g F .text 00000010 InitRingQueue
-00001922 g F .text 0000005a DSG_PROT_Init
+000020a6 g F .text 00000010 InitRingQueue
+0000199c g F .text 0000005a DSG_PROT_Init
00000994 g F .text 0000000e DMA_GetFlagStatus
-000017b0 g F .text 00000062 SPI_ReadWriteByte
+0000182a g F .text 00000062 SPI_ReadWriteByte
0000018a g F .text 00000016 .hidden __riscv_restore_6
-00001cf2 g F .text 00000046 USART3_IRQHandler
+00001d6c g F .text 00000046 USART3_IRQHandler
00000a3c g F .text 0000000a EXTI_ClearITPendingBit
-0000221c g F .text 0000001c get_DSG_CURR
+000022c2 g F .text 0000002a get_DSG_CURR
00000440 w .text 00000000 RTC_IRQHandler
00000584 g F .text 00000008 ADC_GetCalibrationStatus
-2000062c g .bss 00000000 _ebss
+20000588 g .bss 00000000 _ebss
00001370 g F .text 0000003c USART_GetITStatus
-000025f0 g F .text 000001c6 g_Mppt_Para_Init
+00002690 g F .text 000001c6 g_Mppt_Para_Init
00000440 w .text 00000000 DMA1_Channel7_IRQHandler
20000134 g O .bss 00000001 USART3_Rbuffer
000010a0 g F .text 0000007c TIM_OC1Init
0000058c g F .text 00000018 ADC_SoftwareStartConvCmd
00000572 g F .text 00000008 ADC_GetResetCalibrationStatus
00000440 w .text 00000000 CAN1_RX1_IRQHandler
-00001f7a g F .text 00000020 Delay_Init
-00001812 g F .text 00000068 SPI_Flash_Read
+000020e2 g F .text 00000020 Delay_Init
+0000188c g F .text 00000068 SPI_Flash_Read
00000f72 g F .text 0000001e RCC_PB2PeriphClockCmd
00000c80 g F .text 00000190 GPIO_IPD_Unused
-0000390e g F .text 00000086 .hidden __gtsf2
+000039c4 g F .text 00000086 .hidden __gtsf2
00000440 w .text 00000000 USBPDWakeUp_IRQHandler
00000b1a g F .text 00000004 GPIO_SetBits
00000440 w .text 00000000 TIM4_IRQHandler
-0000293e g F .text 000000b6 .hidden __ledf2
+000029f4 g F .text 000000b6 .hidden __ledf2
000011d8 g F .text 0000001a TIM_ARRPreloadConfig
00000148 g F .text 00000028 .hidden __riscv_save_9
00000b1e g F .text 0000000a GPIO_WriteBit
-200003f4 g O .bss 00000010 m_excessiveLoad
-00005b50 g O .text 00000020 __sf_fake_stderr
-00001a48 g F .text 00000048 PWM_GPIO_Configuration
+20000350 g O .bss 00000010 m_excessiveLoad
+00005c04 g O .text 00000020 __sf_fake_stderr
+00001ac2 g F .text 00000048 PWM_GPIO_Configuration
00000156 g F .text 0000001a .hidden __riscv_save_4
00000440 w .text 00000000 I2C1_EV_IRQHandler
-00001d38 g F .text 00000046 USART4_IRQHandler
-00001b82 g F .text 000000b2 GW_485_Init
+00001db2 g F .text 00000046 USART4_IRQHandler
+00001bfc g F .text 000000b2 GW_485_Init
0000122c g F .text 00000018 TIM_GetITStatus
00000e7e g F .text 000000d6 RCC_GetClocksFreq
00000440 w .text 00000000 DMA1_Channel6_IRQHandler
-000043d8 g F .text 0000006e .hidden __clzsi2
-00001f16 g F .text 00000028 TimeSliceOffset_Produce
-00004e20 g F .text 00000042 __sfputs_r
+0000448e g F .text 0000006e .hidden __clzsi2
+0000201a g F .text 00000028 TimeSliceOffset_Produce
+00004ed6 g F .text 00000042 __sfputs_r
20000124 g O .bss 00000004 TS_Val
-00005640 g F .text 00000018 memchr
-000024ae g F .text 00000066 Task_outputAgain
+000056f6 g F .text 00000018 memchr
+0000254e g F .text 00000066 Task_outputAgain
00001250 g F .text 000000ba USART_Init
-00004c7c g F .text 000000a8 _free_r
-00001d7e g F .text 00000028 TIM3_IRQHandler
+00004d32 g F .text 000000a8 _free_r
+00001e82 g F .text 00000028 TIM3_IRQHandler
00000440 w .text 00000000 RCC_IRQHandler
00000170 g F .text 0000000c .hidden __riscv_save_3
00000440 w .text 00000000 TIM1_TRG_COM_IRQHandler
-00002330 g F .text 000000e6 test
-000016bc g F .text 00000048 DMA1_Channel1_IRQHandler
-0000187a g F .text 00000038 RUN_LED_Init
+000023e4 g F .text 000000d2 test
+000016fc g F .text 00000082 DMA1_Channel1_IRQHandler
+000018f4 g F .text 00000038 RUN_LED_Init
00000000 g .init 00000000 _start
00000f54 g F .text 0000001e RCC_HBPeriphClockCmd
-000056ac g F .text 0000000c _lseek
+00005762 g F .text 0000000c _lseek
00000f90 g F .text 0000001e RCC_PB1PeriphClockCmd
-00001a14 g F .text 00000034 EXTI15_10_IRQHandler
+00001a8e g F .text 00000034 EXTI15_10_IRQHandler
000011c6 g F .text 00000012 TIM_ITConfig
00000440 w .text 00000000 ADC_IRQHandler
00001320 g F .text 00000036 USART_ITConfig
@@ -354,140 +360,142 @@ SYMBOL TABLE:
20000120 g O .bss 00000004 OPA_Trim
00000440 w .text 00000000 DMA1_Channel8_IRQHandler
2000010c g O .data 00000004 g_duty_ratio
-0000559a g F .text 00000028 _close_r
+00005650 g F .text 00000028 _close_r
20000000 g .dalign 00000000 _data_vma
-00002514 g F .text 000000dc Task_excessiveLoad
-000018e4 g F .text 0000003e POW_OUT_CON_Init
-000027fa g F .text 00000044 hardware_Init
+000025b4 g F .text 000000dc Task_excessiveLoad
+0000195e g F .text 0000003e POW_OUT_CON_Init
+00002896 g F .text 0000005e hardware_Init
0000111c g F .text 0000007c TIM_OC4Init
-000046d4 g F .text 000000fc __swsetup_r
+0000478a g F .text 000000fc __swsetup_r
00000440 w .text 00000000 EXTI9_5_IRQHandler
-00004a88 g F .text 000000a0 __sfp
-20000414 g O .bss 00000010 m_runled
+00004b3e g F .text 000000a0 __sfp
+20000370 g O .bss 00000010 m_runled
00000c54 g F .text 0000002c GPIO_EXTILineConfig
-000029f4 g F .text 000004b8 .hidden __muldf3
+00002aaa g F .text 000004b8 .hidden __muldf3
00000148 g F .text 00000028 .hidden __riscv_save_10
-000054c2 g F .text 0000002c __sread
+00005578 g F .text 0000002c __sread
20000064 g O .data 00000038 uart_devices
-00005658 g F .text 00000002 __malloc_lock
+0000570e g F .text 00000002 __malloc_lock
0000018a g F .text 00000016 .hidden __riscv_restore_4
-00002216 g F .text 00000006 get_PV_VOLT_OUT
+000022a6 g F .text 0000001c get_PV_VOLT_OUT
00000180 g F .text 00000020 .hidden __riscv_restore_8
-0000213e g F .text 0000002a Get_ConversionVal
-00004900 g F .text 00000066 _fflush_r
+000049b6 g F .text 00000066 _fflush_r
00000156 g F .text 0000001a .hidden __riscv_save_6
00000a1e g F .text 0000001e EXTI_GetITStatus
00000440 w .text 00000000 SPI2_IRQHandler
-00005b70 g O .text 00000020 __sf_fake_stdin
+00005c24 g O .text 00000020 __sf_fake_stdin
000001a0 g F .text 000000a8 memset
0000149c g F .text 00000094 DMA_Tx_Init
00000180 g F .text 00000020 .hidden __riscv_restore_9
0000018a g F .text 00000016 .hidden __riscv_restore_7
0000024c g F .text 0000004a main
-00003994 g F .text 0000008c .hidden __ltsf2
-00005566 g F .text 00000006 __sclose
-0000426e g F .text 0000016a .hidden __truncdfsf2
-20000404 g O .bss 00000010 m_outputAgain
-00004d24 g F .text 000000d4 _malloc_r
-20000168 g O .bss 0000025a g_adcData
+00001e54 g F .text 0000002e TIM3_Init
+00003a4a g F .text 0000008c .hidden __ltsf2
+0000561c g F .text 00000006 __sclose
+00004324 g F .text 0000016a .hidden __truncdfsf2
+20000360 g O .bss 00000010 m_outputAgain
+00004dda g F .text 000000d4 _malloc_r
+200002f8 g O .bss 00000028 g_adcData
000006ba g F .text 000001d4 Get_CalibrationValue
00000440 w .text 00000000 DMA1_Channel5_IRQHandler
00000440 w .text 00000000 EXTI4_IRQHandler
00000440 w .text 00000000 USB_LP_CAN1_RX0_IRQHandler
-00003a20 g F .text 00000294 .hidden __mulsf3
+00003ad6 g F .text 00000294 .hidden __mulsf3
00001216 g F .text 00000016 TIM_SetCompare4
0000066e g F .text 00000018 ADC_BufferCmd
-2000012c g O .bss 00000006 ADC_ConvertedValue
+2000012c g O .bss 00000004 ADC_ConvertedValue
00000ffe g F .text 0000001a SPI_Cmd
00001530 g F .text 0000007e TIM1_Init1
00000296 g F .text 00000106 SystemInit
00000686 g F .text 00000012 ADC_DutyDelayCmd
-000044f8 g F .text 00000040 iprintf
+000045ae g F .text 00000040 iprintf
20000138 g O .bss 00000001 USART4_Rbuffer
00000440 w .text 00000000 USB_HP_CAN1_TX_IRQHandler
-00005a50 g O .text 00000100 .hidden __clz_tab
+00005b04 g O .text 00000100 .hidden __clz_tab
00000000 g .init 00000000 _sinit
00000440 w .text 00000000 CMPWakeUp_IRQHandler
-0000390e g F .text 00000086 .hidden __gesf2
-0000556c g F .text 0000002e _write_r
+000039c4 g F .text 00000086 .hidden __gesf2
+00005622 g F .text 0000002e _write_r
00000440 w .text 00000000 DMA1_Channel3_IRQHandler
-000050ea g F .text 0000010c _printf_common
+000051a0 g F .text 0000010c _printf_common
20000110 g O .data 00000004 _impure_ptr
-00001e56 g F .text 00000032 TIM1_UP_IRQHandler
-000047d0 g F .text 00000130 __sflush_r
+00001f5a g F .text 00000032 TIM1_UP_IRQHandler
+00004886 g F .text 00000130 __sflush_r
00000440 w .text 00000000 LPTIMWakeUp_IRQHandler
00000440 w .text 00000000 WWDG_IRQHandler
-00001ec6 g F .text 0000002e TimeSliceOffset_Unregister
+00001fca g F .text 0000002e TimeSliceOffset_Unregister
00000440 w .text 00000000 Ecall_U_Mode_Handler
-000027b6 g F .text 00000044 task_Init
+00002856 g F .text 00000040 task_Init
00000982 g F .text 00000012 DMA_ITConfig
000006aa g F .text 00000010 ADC_Sample_ModeConfig
-00001e2c g F .text 0000001c TIM2_IRQHandler
+00001f30 g F .text 0000001c TIM2_IRQHandler
20005000 g .stack 00000000 _eusrstack
-00002416 g F .text 00000052 Task_wdi
+000024b6 g F .text 00000052 Task_wdi
00000170 g F .text 0000000c .hidden __riscv_save_2
00000440 w .text 00000000 SW_Handler
20000148 g O .bss 00000004 g_impedance
000004c8 g F .text 00000028 ADC_DeInit
00000440 w .text 00000000 TIM1_BRK_IRQHandler
-00004b92 g F .text 00000058 __swhatbuf_r
+00004c48 g F .text 00000058 __swhatbuf_r
000004f0 g F .text 00000056 ADC_Init
00001356 g F .text 00000008 USART_SendData
00000440 w .text 00000000 OPA_IRQHandler
00000440 w .text 00000000 EXTI1_IRQHandler
00000156 g F .text 0000001a .hidden __riscv_save_5
-00001ff4 g F .text 0000003e _write
+0000215c g F .text 0000003e _write
20000118 g .data 00000000 _edata
-2000062c g .bss 00000000 _end
+20000588 g .bss 00000000 _end
0000102a g F .text 00000076 TIM_TimeBaseInit
00000440 w .text 00000000 RTCAlarm_IRQHandler
-00005bec g .dlalign 00000000 _data_lma
+00005ca0 g .dlalign 00000000 _data_lma
00000440 w .text 00000000 USART2_IRQHandler
-000054ee g F .text 00000048 __swrite
-00001c34 g F .text 000000be BAT_485_Init
-00004e62 g F .text 00000288 _vfiprintf_r
-00004b28 g F .text 0000006a _fwalk_reent
+000055a4 g F .text 00000048 __swrite
+00001cae g F .text 000000be BAT_485_Init
+00004f18 g F .text 00000288 _vfiprintf_r
+00004bde g F .text 0000006a _fwalk_reent
0000039c g F .text 000000a4 SystemCoreClockUpdate
-000040f4 g F .text 000000ce .hidden __floatunsisf
-000018b2 g F .text 00000032 WDI_INPUT_Init
+000041aa g F .text 000000ce .hidden __floatunsisf
+0000192c g F .text 00000032 WDI_INPUT_Init
00000440 w .text 00000000 I2C2_ER_IRQHandler
00000440 w .text 00000000 DMA1_Channel2_IRQHandler
-00001a90 g F .text 0000006c PWM_TIM_Configuration
-00005b90 g O .text 00000020 __sf_fake_stdout
+00001b0a g F .text 0000006c PWM_TIM_Configuration
+00005c44 g O .text 00000020 __sf_fake_stdout
20000000 g O .data 00000010 HBPrescTable
0000017c g F .text 00000024 .hidden __riscv_restore_12
-000056b8 g F .text 0000000c _read
+0000576e g F .text 0000000c _read
00000442 w .text 00000000 handle_reset
00000440 w .text 00000000 CAN1_SCE_IRQHandler
-0000409e g F .text 00000056 .hidden __fixunssfsi
+00002042 g F .text 00000010 InitRingQueue2
+00004154 g F .text 00000056 .hidden __fixunssfsi
00000440 w .text 00000000 FLASH_IRQHandler
00000170 g F .text 0000000c .hidden __riscv_save_0
-20000424 g O .bss 00000010 m_wdi
+20000380 g O .bss 00000010 m_wdi
00000440 w .text 00000000 USBFSWakeUp_IRQHandler
-00001dfe g F .text 0000002e TIM2_Init
-000015ae g F .text 0000010e ADC_TIM_DMA_Init
+00001f02 g F .text 0000002e TIM2_Init
+000015ae g F .text 0000014e ADC_TIM_DMA_Init
00000440 w .text 00000000 USART1_IRQHandler
-00004bea g F .text 00000092 __smakebuf_r
-000051f6 g F .text 000002a2 _printf_i
-200003c4 g O .bss 0000002d g_Mppt_Para
-00002890 g F .text 000000ae .hidden __gedf2
+00004ca0 g F .text 00000092 __smakebuf_r
+000052ac g F .text 000002a2 _printf_i
+20000320 g O .bss 0000002d g_Mppt_Para
+00002946 g F .text 000000ae .hidden __gedf2
20000164 g O .bss 00000004 __malloc_sbrk_start
00000440 w .text 00000000 I2C1_ER_IRQHandler
-00001704 g F .text 000000ac SPI_Flash_Init
+0000177e g F .text 000000ac SPI_Flash_Init
00000fcc g F .text 00000032 SPI_Init
00000e10 g F .text 00000006 NVIC_PriorityGroupConfig
000013ac g F .text 000000f0 ADC_all_Init
-00001afc g F .text 00000086 Set_duty_ratio
+00001b76 g F .text 00000086 Set_duty_ratio
00000440 w .text 00000000 TKeyWakeUp_IRQHandler
00000894 g F .text 000000a2 DMA_DeInit
20000160 g O .bss 00000004 __malloc_free_list
00000194 g F .text 0000000c .hidden __riscv_restore_1
2000015c g O .bss 00000004 g_gw485_uart4_handle
-00002eac g F .text 0000073e .hidden __subdf3
-00004e62 g F .text 00000288 _vfprintf_r
+00002f62 g F .text 0000073e .hidden __subdf3
+00004f18 g F .text 00000288 _vfprintf_r
00000b06 g F .text 0000000a GPIO_ReadInputDataBit
-00002254 g F .text 00000056 get_MOSFET_Temper
-00005688 g F .text 0000000c _close
+0000207e g F .text 00000028 OutRingQueue2
+00002308 g F .text 00000056 get_MOSFET_Temper
+0000573e g F .text 0000000c _close
@@ -514,7 +522,7 @@ Disassembly of section .vector:
28: 0440 addi s0,sp,516
...
32: 0000 unimp
- 34: 1e48 addi a0,sp,820
+ 34: 1f4c addi a1,sp,948
36: 0000 unimp
38: 0000 unimp
3a: 0000 unimp
@@ -538,13 +546,13 @@ Disassembly of section .vector:
5e: 0000 unimp
60: 0440 addi s0,sp,516
62: 0000 unimp
- 64: 197c addi a5,sp,188
+ 64: 19f6 slli s3,s3,0x3d
66: 0000 unimp
68: 0440 addi s0,sp,516
6a: 0000 unimp
6c: 0440 addi s0,sp,516
6e: 0000 unimp
- 70: 16bc addi a5,sp,872
+ 70: 16fc addi a5,sp,876
72: 0000 unimp
74: 0440 addi s0,sp,516
76: 0000 unimp
@@ -572,15 +580,15 @@ Disassembly of section .vector:
a2: 0000 unimp
a4: 0440 addi s0,sp,516
a6: 0000 unimp
- a8: 1e56 slli t3,t3,0x35
+ a8: 1f5a slli t5,t5,0x36
aa: 0000 unimp
ac: 0440 addi s0,sp,516
ae: 0000 unimp
b0: 0440 addi s0,sp,516
b2: 0000 unimp
- b4: 1e2c addi a1,sp,824
+ b4: 1f30 addi a2,sp,952
b6: 0000 unimp
- b8: 1d7e slli s10,s10,0x3f
+ b8: 1e82 slli t4,t4,0x20
ba: 0000 unimp
bc: 0440 addi s0,sp,516
be: 0000 unimp
@@ -600,9 +608,9 @@ Disassembly of section .vector:
da: 0000 unimp
dc: 0440 addi s0,sp,516
de: 0000 unimp
- e0: 1cf2 slli s9,s9,0x3c
+ e0: 1d6c addi a1,sp,700
e2: 0000 unimp
- e4: 1a14 addi a3,sp,304
+ e4: 1a8e slli s5,s5,0x23
e6: 0000 unimp
e8: 0440 addi s0,sp,516
ea: 0000 unimp
@@ -612,7 +620,7 @@ Disassembly of section .vector:
f2: 0000 unimp
f4: 0440 addi s0,sp,516
f6: 0000 unimp
- f8: 1d38 addi a4,sp,696
+ f8: 1db2 slli s11,s11,0x2c
fa: 0000 unimp
fc: 0440 addi s0,sp,516
fe: 0000 unimp
@@ -762,22 +770,22 @@ Disassembly of section .text:
250: 4505 li a0,1
252: 3bf000ef jal ra,e10
256: 2299 jal 39c
- 258: 523010ef jal ra,1f7a
+ 258: 68b010ef jal ra,20e2
25c: 6571 lui a0,0x1c
- 25e: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0x16614>
- 262: 539010ef jal ra,1f9a
+ 25e: 20050513 addi a0,a0,512 # 1c200 <_data_lma+0x16560>
+ 262: 6a1010ef jal ra,2102
266: 200007b7 lui a5,0x20000
26a: 1007a583 lw a1,256(a5) # 20000100
26e: 00005537 lui a0,0x5
- 272: 6c450513 addi a0,a0,1732 # 56c4 <_read+0xc>
- 276: 282040ef jal ra,44f8
+ 272: 77c50513 addi a0,a0,1916 # 577c <_read+0xe>
+ 276: 338040ef jal ra,45ae
27a: 2d11 jal 88e
27c: 85aa mv a1,a0
27e: 00005537 lui a0,0x5
- 282: 6d450513 addi a0,a0,1748 # 56d4 <_read+0x1c>
- 286: 272040ef jal ra,44f8
- 28a: 570020ef jal ra,27fa
- 28e: 528020ef jal ra,27b6
+ 282: 78c50513 addi a0,a0,1932 # 578c <_read+0x1e>
+ 286: 328040ef jal ra,45ae
+ 28a: 60c020ef jal ra,2896
+ 28e: 5c8020ef jal ra,2856
292: 4501 li a0,0
294: b701 j 194 <__riscv_restore_0>
@@ -901,7 +909,7 @@ Disassembly of section .text:
3bc: 8b91 andi a5,a5,4
3be: c79d beqz a5,3ec
3c0: 000f47b7 lui a5,0xf4
- 3c4: 24078793 addi a5,a5,576 # f4240 <_data_lma+0xee654>
+ 3c4: 24078793 addi a5,a5,576 # f4240 <_data_lma+0xee5a0>
3c8: c31c sw a5,0(a4)
3ca: 400217b7 lui a5,0x40021
3ce: 43dc lw a5,4(a5)
@@ -916,7 +924,7 @@ Disassembly of section .text:
3e8: c31c sw a5,0(a4)
3ea: 8082 ret
3ec: 007a17b7 lui a5,0x7a1
- 3f0: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79b614>
+ 3f0: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79b560>
3f4: bfd1 j 3c8
3f6: 42dc lw a5,4(a3)
3f8: 42d4 lw a3,4(a3)
@@ -934,14 +942,14 @@ Disassembly of section .text:
416: 8ac1 andi a3,a3,16
418: ce89 beqz a3,432
41a: 007a16b7 lui a3,0x7a1
- 41e: 20068693 addi a3,a3,512 # 7a1200 <_data_lma+0x79b614>
+ 41e: 20068693 addi a3,a3,512 # 7a1200 <_data_lma+0x79b560>
422: a821 j 43a
424: 400216b7 lui a3,0x40021
428: 42d4 lw a3,4(a3)
42a: 00e69613 slli a2,a3,0xe
42e: fe0656e3 bgez a2,41a
432: 003d16b7 lui a3,0x3d1
- 436: 90068693 addi a3,a3,-1792 # 3d0900 <_data_lma+0x3cad14>
+ 436: 90068693 addi a3,a3,-1792 # 3d0900 <_data_lma+0x3cac60>
43a: 02d787b3 mul a5,a5,a3
43e: b769 j 3c8
@@ -953,8 +961,8 @@ Disassembly of section .text:
446: 4be18193 addi gp,gp,1214 # 20000900 <__global_pointer$>
44a: 20005117 auipc sp,0x20005
44e: bb610113 addi sp,sp,-1098 # 20005000 <_eusrstack>
- 452: 00005517 auipc a0,0x5
- 456: 79a50513 addi a0,a0,1946 # 5bec <_data_lma>
+ 452: 00006517 auipc a0,0x6
+ 456: 84e50513 addi a0,a0,-1970 # 5ca0 <_data_lma>
45a: 20000597 auipc a1,0x20000
45e: ba658593 addi a1,a1,-1114 # 20000000 <_data_vma>
462: 81818613 addi a2,gp,-2024 # 20000118 <_edata>
@@ -965,7 +973,7 @@ Disassembly of section .text:
474: 0591 addi a1,a1,4
476: fec5eae3 bltu a1,a2,46a
47a: 81818513 addi a0,gp,-2024 # 20000118 <_edata>
- 47e: d2c18593 addi a1,gp,-724 # 2000062c <_ebss>
+ 47e: c8818593 addi a1,gp,-888 # 20000588 <_ebss>
482: 00b57763 bgeu a0,a1,490
486: 00052023 sw zero,0(a0)
48a: 0511 addi a0,a0,4
@@ -1787,7 +1795,7 @@ Disassembly of section .text:
00000c80 :
c80: cf0ff2ef jal t0,170 <__riscv_save_0>
c84: 1ffff437 lui s0,0x1ffff
- c88: 72442703 lw a4,1828(s0) # 1ffff724 <_data_lma+0x1fff9b38>
+ c88: 72442703 lw a4,1828(s0) # 1ffff724 <_data_lma+0x1fff9a84>
c8c: 3e000637 lui a2,0x3e000
c90: 1141 addi sp,sp,-16
c92: 01971793 slli a5,a4,0x19
@@ -1820,23 +1828,23 @@ Disassembly of section .text:
ce2: 2c41 jal f72
ce4: 70442783 lw a5,1796(s0)
ce8: 103a0737 lui a4,0x103a0
- cec: 70070713 addi a4,a4,1792 # 103a0700 <_data_lma+0x1039ab14>
+ cec: 70070713 addi a4,a4,1792 # 103a0700 <_data_lma+0x1039aa60>
cf0: f0f7f793 andi a5,a5,-241
cf4: 10e78063 beq a5,a4,df4
cf8: 02f76163 bltu a4,a5,d1a
cfc: 10320737 lui a4,0x10320
- d00: 70070713 addi a4,a4,1792 # 10320700 <_data_lma+0x1031ab14>
+ d00: 70070713 addi a4,a4,1792 # 10320700 <_data_lma+0x1031aa60>
d04: 06e78063 beq a5,a4,d64
d08: 10370737 lui a4,0x10370
- d0c: 70070713 addi a4,a4,1792 # 10370700 <_data_lma+0x1036ab14>
+ d0c: 70070713 addi a4,a4,1792 # 10370700 <_data_lma+0x1036aa60>
d10: 08e78763 beq a5,a4,d9e
d14: 0141 addi sp,sp,16
d16: c7eff06f j 194 <__riscv_restore_0>
d1a: 103b0737 lui a4,0x103b0
- d1e: 70070713 addi a4,a4,1792 # 103b0700 <_data_lma+0x103aab14>
+ d1e: 70070713 addi a4,a4,1792 # 103b0700 <_data_lma+0x103aaa60>
d22: 0ae78b63 beq a5,a4,dd8
d26: 103d0737 lui a4,0x103d0
- d2a: 70070713 addi a4,a4,1792 # 103d0700 <_data_lma+0x103cab14>
+ d2a: 70070713 addi a4,a4,1792 # 103d0700 <_data_lma+0x103caa60>
d2e: fee793e3 bne a5,a4,d14
d32: 4585 li a1,1
d34: 6521 lui a0,0x8
@@ -1948,7 +1956,7 @@ Disassembly of section .text:
e44: 00d71733 sll a4,a4,a3
e48: 4154 lw a3,4(a0)
e4a: ce89 beqz a3,e64
- e4c: 04078793 addi a5,a5,64 # 2040 <_sbrk+0xe>
+ e4c: 04078793 addi a5,a5,64 # 2040
e50: 078a slli a5,a5,0x2
e52: e000e6b7 lui a3,0xe000e
e56: 97b6 add a5,a5,a3
@@ -1984,7 +1992,7 @@ Disassembly of section .text:
e96: 8b91 andi a5,a5,4
e98: c7a5 beqz a5,f00
e9a: 000f47b7 lui a5,0xf4
- e9e: 24078793 addi a5,a5,576 # f4240 <_data_lma+0xee654>
+ e9e: 24078793 addi a5,a5,576 # f4240 <_data_lma+0xee5a0>
ea2: c11c sw a5,0(a0)
ea4: 40021637 lui a2,0x40021
ea8: 425c lw a5,4(a2)
@@ -2023,7 +2031,7 @@ Disassembly of section .text:
efc: c91c sw a5,16(a0)
efe: 8082 ret
f00: 007a17b7 lui a5,0x7a1
- f04: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79b614>
+ f04: 20078793 addi a5,a5,512 # 7a1200 <_data_lma+0x79b560>
f08: bf69 j ea2
f0a: 435c lw a5,4(a4)
f0c: 4358 lw a4,4(a4)
@@ -2041,14 +2049,14 @@ Disassembly of section .text:
f2a: 8b41 andi a4,a4,16
f2c: cf09 beqz a4,f46
f2e: 007a1737 lui a4,0x7a1
- f32: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b614>
+ f32: 20070713 addi a4,a4,512 # 7a1200 <_data_lma+0x79b560>
f36: a821 j f4e
f38: 40021737 lui a4,0x40021
f3c: 4358 lw a4,4(a4)
f3e: 00e71693 slli a3,a4,0xe
f42: fe06d6e3 bgez a3,f2e
f46: 003d1737 lui a4,0x3d1
- f4a: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cad14>
+ f4a: 90070713 addi a4,a4,-1792 # 3d0900 <_data_lma+0x3cac60>
f4e: 02e787b3 mul a5,a5,a4
f52: bf81 j ea2
@@ -2111,7 +2119,7 @@ Disassembly of section .text:
00000fcc :
fcc: 211a lhu a4,0(a0)
fce: 678d lui a5,0x3
- fd0: 04078793 addi a5,a5,64 # 3040 <__subdf3+0x194>
+ fd0: 04078793 addi a5,a5,64 # 3040 <__subdf3+0xde>
fd4: 21b6 lhu a3,2(a1)
fd6: 8f7d and a4,a4,a5
fd8: 219e lhu a5,0(a1)
@@ -2589,10 +2597,10 @@ Disassembly of section .text:
13f8: 40040513 addi a0,s0,1024
13fc: abeff0ef jal ra,6ba
1400: 85aa mv a1,a0
- 1402: 82a19923 sh a0,-1998(gp) # 20000132
+ 1402: 82a19823 sh a0,-2000(gp) # 20000130
1406: 00005537 lui a0,0x5
- 140a: 6e450513 addi a0,a0,1764 # 56e4 <_read+0x2c>
- 140e: 0ea030ef jal ra,44f8
+ 140a: 79c50513 addi a0,a0,1948 # 579c <_read+0x2e>
+ 140e: 1a0030ef jal ra,45ae
1412: 000e07b7 lui a5,0xe0
1416: ce3e sw a5,28(sp)
1418: 080c addi a1,sp,16
@@ -2723,7 +2731,7 @@ Disassembly of section .text:
1570: 47a9 li a5,10
1572: c63e sw a5,12(sp)
1574: 67c1 lui a5,0x10
- 1576: 06078793 addi a5,a5,96 # 10060 <_data_lma+0xa474>
+ 1576: 06078793 addi a5,a5,96 # 10060 <_data_lma+0xa3c0>
157a: c83e sw a5,16(sp)
157c: 006c addi a1,sp,12
157e: 4789 li a5,2
@@ -2746,6179 +2754,6243 @@ Disassembly of section .text:
15aa: bebfe06f j 194 <__riscv_restore_0>
000015ae :
- 15ae: bc3fe2ef jal t0,170 <__riscv_save_0>
+ 15ae: ba9fe2ef jal t0,156 <__riscv_save_4>
15b2: 7179 addi sp,sp,-48
- 15b4: 02000613 li a2,32
- 15b8: 4581 li a1,0
- 15ba: 0808 addi a0,sp,16
- 15bc: be5fe0ef jal ra,1a0
- 15c0: 4585 li a1,1
- 15c2: 4511 li a0,4
- 15c4: c202 sw zero,4(sp)
- 15c6: c402 sw zero,8(sp)
- 15c8: c602 sw zero,12(sp)
- 15ca: 9a9ff0ef jal ra,f72
- 15ce: 4585 li a1,1
- 15d0: 20000513 li a0,512
- 15d4: 99fff0ef jal ra,f72
- 15d8: 4501 li a0,0
- 15da: 891ff0ef jal ra,e6a
- 15de: 40011537 lui a0,0x40011
- 15e2: 47b9 li a5,14
- 15e4: 004c addi a1,sp,4
- 15e6: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
- 15ea: 40012437 lui s0,0x40012
- 15ee: 827c sh a5,4(sp)
- 15f0: c602 sw zero,12(sp)
- 15f2: c54ff0ef jal ra,a46
- 15f6: 40040513 addi a0,s0,1024 # 40012400 <_eusrstack+0x2000d400>
- 15fa: ecffe0ef jal ra,4c8
- 15fe: 40040513 addi a0,s0,1024
- 1602: 8b8ff0ef jal ra,6ba
- 1606: 82a19923 sh a0,-1998(gp) # 20000132
- 160a: 4785 li a5,1
- 160c: ca3e sw a5,20(sp)
- 160e: 080c addi a1,sp,16
- 1610: 478d li a5,3
- 1612: 40040513 addi a0,s0,1024
- 1616: 02f10223 sb a5,36(sp)
- 161a: c802 sw zero,16(sp)
- 161c: cc02 sw zero,24(sp)
- 161e: ce02 sw zero,28(sp)
- 1620: d002 sw zero,32(sp)
- 1622: ecffe0ef jal ra,4f0
- 1626: 4585 li a1,1
- 1628: 40040513 addi a0,s0,1024
- 162c: f2bfe0ef jal ra,556
- 1630: 4585 li a1,1
- 1632: 40040513 addi a0,s0,1024
- 1636: f11fe0ef jal ra,546
- 163a: 4585 li a1,1
- 163c: 40040513 addi a0,s0,1024
- 1640: 858ff0ef jal ra,698
- 1644: 4581 li a1,0
- 1646: 40040513 addi a0,s0,1024
- 164a: 824ff0ef jal ra,66e
- 164e: 40040513 addi a0,s0,1024
- 1652: f17fe0ef jal ra,568
- 1656: 40040493 addi s1,s0,1024
- 165a: 8526 mv a0,s1
- 165c: f17fe0ef jal ra,572
- 1660: fd6d bnez a0,165a
- 1662: 40040513 addi a0,s0,1024
- 1666: 40012437 lui s0,0x40012
- 166a: f11fe0ef jal ra,57a
- 166e: 40040493 addi s1,s0,1024 # 40012400 <_eusrstack+0x2000d400>
- 1672: 8526 mv a0,s1
- 1674: f11fe0ef jal ra,584
- 1678: fd6d bnez a0,1672
- 167a: 40040513 addi a0,s0,1024
- 167e: 4695 li a3,5
- 1680: 4605 li a2,1
- 1682: 4585 li a1,1
- 1684: f21fe0ef jal ra,5a4
- 1688: 40040513 addi a0,s0,1024
- 168c: 4695 li a3,5
- 168e: 4609 li a2,2
- 1690: 4589 li a1,2
- 1692: f13fe0ef jal ra,5a4
- 1696: 4695 li a3,5
- 1698: 460d li a2,3
- 169a: 40040513 addi a0,s0,1024
- 169e: 458d li a1,3
- 16a0: f05fe0ef jal ra,5a4
- 16a4: 65b1 lui a1,0xc
- 16a6: b8058593 addi a1,a1,-1152 # bb80 <_data_lma+0x5f94>
- 16aa: 4579 li a0,30
- 16ac: 3551 jal 1530
- 16ae: 458d li a1,3
- 16b0: 82c18513 addi a0,gp,-2004 # 2000012c
- 16b4: 33e5 jal 149c
- 16b6: 6145 addi sp,sp,48
- 16b8: addfe06f j 194 <__riscv_restore_0>
+ 15b4: 06400613 li a2,100
+ 15b8: 86818593 addi a1,gp,-1944 # 20000168
+ 15bc: 9f818513 addi a0,gp,-1544 # 200002f8
+ 15c0: 283000ef jal ra,2042
+ 15c4: 9f818493 addi s1,gp,-1544 # 200002f8
+ 15c8: 01448513 addi a0,s1,20
+ 15cc: 06400613 li a2,100
+ 15d0: 93018593 addi a1,gp,-1744 # 20000230
+ 15d4: 26f000ef jal ra,2042
+ 15d8: 06400493 li s1,100
+ 15dc: 9f818993 addi s3,gp,-1544 # 200002f8
+ 15e0: a0c18913 addi s2,gp,-1524 # 2000030c
+ 15e4: 4581 li a1,0
+ 15e6: 9f818513 addi a0,gp,-1544 # 200002f8
+ 15ea: 269000ef jal ra,2052
+ 15ee: 4581 li a1,0
+ 15f0: 854a mv a0,s2
+ 15f2: 14fd addi s1,s1,-1
+ 15f4: 25f000ef jal ra,2052
+ 15f8: f4f5 bnez s1,15e4
+ 15fa: 02000613 li a2,32
+ 15fe: 4581 li a1,0
+ 1600: 0808 addi a0,sp,16
+ 1602: 0009a823 sw zero,16(s3)
+ 1606: 0209a223 sw zero,36(s3)
+ 160a: b97fe0ef jal ra,1a0
+ 160e: 4585 li a1,1
+ 1610: 4511 li a0,4
+ 1612: c202 sw zero,4(sp)
+ 1614: c402 sw zero,8(sp)
+ 1616: c602 sw zero,12(sp)
+ 1618: 95bff0ef jal ra,f72
+ 161c: 4585 li a1,1
+ 161e: 20000513 li a0,512
+ 1622: 951ff0ef jal ra,f72
+ 1626: 4501 li a0,0
+ 1628: 843ff0ef jal ra,e6a
+ 162c: 40011537 lui a0,0x40011
+ 1630: 47a9 li a5,10
+ 1632: 004c addi a1,sp,4
+ 1634: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
+ 1638: 40012437 lui s0,0x40012
+ 163c: 827c sh a5,4(sp)
+ 163e: c602 sw zero,12(sp)
+ 1640: c06ff0ef jal ra,a46
+ 1644: 40040513 addi a0,s0,1024 # 40012400 <_eusrstack+0x2000d400>
+ 1648: e81fe0ef jal ra,4c8
+ 164c: 40040513 addi a0,s0,1024
+ 1650: 86aff0ef jal ra,6ba
+ 1654: 82a19823 sh a0,-2000(gp) # 20000130
+ 1658: 4785 li a5,1
+ 165a: ca3e sw a5,20(sp)
+ 165c: 080c addi a1,sp,16
+ 165e: 4789 li a5,2
+ 1660: 40040513 addi a0,s0,1024
+ 1664: 02f10223 sb a5,36(sp)
+ 1668: c802 sw zero,16(sp)
+ 166a: cc02 sw zero,24(sp)
+ 166c: ce02 sw zero,28(sp)
+ 166e: d002 sw zero,32(sp)
+ 1670: e81fe0ef jal ra,4f0
+ 1674: 4585 li a1,1
+ 1676: 40040513 addi a0,s0,1024
+ 167a: eddfe0ef jal ra,556
+ 167e: 4585 li a1,1
+ 1680: 40040513 addi a0,s0,1024
+ 1684: ec3fe0ef jal ra,546
+ 1688: 4585 li a1,1
+ 168a: 40040513 addi a0,s0,1024
+ 168e: 80aff0ef jal ra,698
+ 1692: 4581 li a1,0
+ 1694: 40040513 addi a0,s0,1024
+ 1698: fd7fe0ef jal ra,66e
+ 169c: 40040513 addi a0,s0,1024
+ 16a0: ec9fe0ef jal ra,568
+ 16a4: 40040493 addi s1,s0,1024
+ 16a8: 8526 mv a0,s1
+ 16aa: ec9fe0ef jal ra,572
+ 16ae: fd6d bnez a0,16a8
+ 16b0: 40040513 addi a0,s0,1024
+ 16b4: 40012437 lui s0,0x40012
+ 16b8: ec3fe0ef jal ra,57a
+ 16bc: 40040493 addi s1,s0,1024 # 40012400 <_eusrstack+0x2000d400>
+ 16c0: 8526 mv a0,s1
+ 16c2: ec3fe0ef jal ra,584
+ 16c6: fd6d bnez a0,16c0
+ 16c8: 40040513 addi a0,s0,1024
+ 16cc: 4695 li a3,5
+ 16ce: 4605 li a2,1
+ 16d0: 4585 li a1,1
+ 16d2: ed3fe0ef jal ra,5a4
+ 16d6: 4695 li a3,5
+ 16d8: 4609 li a2,2
+ 16da: 40040513 addi a0,s0,1024
+ 16de: 458d li a1,3
+ 16e0: ec5fe0ef jal ra,5a4
+ 16e4: 65b1 lui a1,0xc
+ 16e6: b8058593 addi a1,a1,-1152 # bb80 <_data_lma+0x5ee0>
+ 16ea: 4529 li a0,10
+ 16ec: 3591 jal 1530
+ 16ee: 4589 li a1,2
+ 16f0: 82c18513 addi a0,gp,-2004 # 2000012c
+ 16f4: 3365 jal 149c
+ 16f6: 6145 addi sp,sp,48
+ 16f8: a93fe06f j 18a <__riscv_restore_4>
-000016bc :
- 16bc: 1141 addi sp,sp,-16
- 16be: 4509 li a0,2
- 16c0: c622 sw s0,12(sp)
- 16c2: c426 sw s1,8(sp)
- 16c4: adeff0ef jal ra,9a2
- 16c8: c90d beqz a0,16fa
- 16ca: 4509 li a0,2
- 16cc: ae0ff0ef jal ra,9ac
- 16d0: 82c18413 addi s0,gp,-2004 # 2000012c
- 16d4: 200e lhu a1,0(s0)
- 16d6: 000054b7 lui s1,0x5
- 16da: 6fc48513 addi a0,s1,1788 # 56fc <_read+0x44>
- 16de: 61b020ef jal ra,44f8
- 16e2: 202e lhu a1,2(s0)
- 16e4: 6fc48513 addi a0,s1,1788
- 16e8: 611020ef jal ra,44f8
- 16ec: 204e lhu a1,4(s0)
- 16ee: 00005537 lui a0,0x5
- 16f2: 70050513 addi a0,a0,1792 # 5700 <_read+0x48>
- 16f6: 603020ef jal ra,44f8
- 16fa: 4432 lw s0,12(sp)
- 16fc: 44a2 lw s1,8(sp)
- 16fe: 0141 addi sp,sp,16
- 1700: 30200073 mret
+000016fc :
+ 16fc: 1101 addi sp,sp,-32
+ 16fe: 4509 li a0,2
+ 1700: ce22 sw s0,28(sp)
+ 1702: cc26 sw s1,24(sp)
+ 1704: ca4a sw s2,20(sp)
+ 1706: c84e sw s3,16(sp)
+ 1708: c652 sw s4,12(sp)
+ 170a: a98ff0ef jal ra,9a2
+ 170e: c125 beqz a0,176e
+ 1710: 83218593 addi a1,gp,-1998 # 20000132
+ 1714: 9f818513 addi a0,gp,-1544 # 200002f8
+ 1718: 167000ef jal ra,207e
+ 171c: 9f818413 addi s0,gp,-1544 # 200002f8
+ 1720: 83218a13 addi s4,gp,-1998 # 20000132
+ 1724: 000a5703 lhu a4,0(s4)
+ 1728: 481c lw a5,16(s0)
+ 172a: 01440993 addi s3,s0,20
+ 172e: 83218593 addi a1,gp,-1998 # 20000132
+ 1732: 8f99 sub a5,a5,a4
+ 1734: 854e mv a0,s3
+ 1736: 82c18493 addi s1,gp,-2004 # 2000012c
+ 173a: c81c sw a5,16(s0)
+ 173c: 143000ef jal ra,207e
+ 1740: 2092 lhu a2,0(s1)
+ 1742: 4818 lw a4,16(s0)
+ 1744: 505c lw a5,36(s0)
+ 1746: 000a5683 lhu a3,0(s4)
+ 174a: 9732 add a4,a4,a2
+ 174c: c818 sw a4,16(s0)
+ 174e: 20ba lhu a4,2(s1)
+ 1750: 208e lhu a1,0(s1)
+ 1752: 9f818513 addi a0,gp,-1544 # 200002f8
+ 1756: 97ba add a5,a5,a4
+ 1758: 8f95 sub a5,a5,a3
+ 175a: d05c sw a5,36(s0)
+ 175c: 0f7000ef jal ra,2052
+ 1760: 20ae lhu a1,2(s1)
+ 1762: 854e mv a0,s3
+ 1764: 0ef000ef jal ra,2052
+ 1768: 4509 li a0,2
+ 176a: a42ff0ef jal ra,9ac
+ 176e: 4472 lw s0,28(sp)
+ 1770: 44e2 lw s1,24(sp)
+ 1772: 4952 lw s2,20(sp)
+ 1774: 49c2 lw s3,16(sp)
+ 1776: 4a32 lw s4,12(sp)
+ 1778: 6105 addi sp,sp,32
+ 177a: 30200073 mret
-00001704 :
- 1704: a6dfe2ef jal t0,170 <__riscv_save_0>
- 1708: 1101 addi sp,sp,-32
- 170a: 4585 li a1,1
- 170c: 4521 li a0,8
- 170e: 865ff0ef jal ra,f72
- 1712: 4585 li a1,1
- 1714: 6511 lui a0,0x4
- 1716: 87bff0ef jal ra,f90
- 171a: 40011437 lui s0,0x40011
- 171e: 6785 lui a5,0x1
- 1720: 448d li s1,3
- 1722: 807c sh a5,0(sp)
- 1724: 858a mv a1,sp
- 1726: 47c1 li a5,16
- 1728: c0040513 addi a0,s0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
- 172c: c43e sw a5,8(sp)
- 172e: c226 sw s1,4(sp)
- 1730: b16ff0ef jal ra,a46
- 1734: c0040513 addi a0,s0,-1024
- 1738: 6585 lui a1,0x1
- 173a: be0ff0ef jal ra,b1a
- 173e: 6789 lui a5,0x2
- 1740: 4961 li s2,24
- 1742: 858a mv a1,sp
- 1744: c0040513 addi a0,s0,-1024
- 1748: 807c sh a5,0(sp)
- 174a: c44a sw s2,8(sp)
- 174c: c226 sw s1,4(sp)
- 174e: af8ff0ef jal ra,a46
- 1752: 6791 lui a5,0x4
- 1754: 807c sh a5,0(sp)
- 1756: 858a mv a1,sp
- 1758: 4791 li a5,4
- 175a: c0040513 addi a0,s0,-1024
- 175e: c43e sw a5,8(sp)
- 1760: ae6ff0ef jal ra,a46
- 1764: 77e1 lui a5,0xffff8
- 1766: 858a mv a1,sp
- 1768: c0040513 addi a0,s0,-1024
- 176c: 807c sh a5,0(sp)
- 176e: c44a sw s2,8(sp)
- 1770: c226 sw s1,4(sp)
- 1772: ad4ff0ef jal ra,a46
- 1776: 010407b7 lui a5,0x1040
- 177a: c63e sw a5,12(sp)
- 177c: 000207b7 lui a5,0x20
- 1780: c83e sw a5,16(sp)
- 1782: 020007b7 lui a5,0x2000
- 1786: 0785 addi a5,a5,1
- 1788: 40004437 lui s0,0x40004
- 178c: ca3e sw a5,20(sp)
- 178e: 47a1 li a5,8
- 1790: cc3e sw a5,24(sp)
- 1792: 006c addi a1,sp,12
- 1794: 479d li a5,7
- 1796: 80040513 addi a0,s0,-2048 # 40003800 <_eusrstack+0x1fffe800>
- 179a: 86fc sh a5,28(sp)
- 179c: 831ff0ef jal ra,fcc
- 17a0: 4585 li a1,1
- 17a2: 80040513 addi a0,s0,-2048
- 17a6: 859ff0ef jal ra,ffe
- 17aa: 6105 addi sp,sp,32
- 17ac: 9e9fe06f j 194 <__riscv_restore_0>
+0000177e :
+ 177e: 9f3fe2ef jal t0,170 <__riscv_save_0>
+ 1782: 1101 addi sp,sp,-32
+ 1784: 4585 li a1,1
+ 1786: 4521 li a0,8
+ 1788: feaff0ef jal ra,f72
+ 178c: 4585 li a1,1
+ 178e: 6511 lui a0,0x4
+ 1790: 801ff0ef jal ra,f90
+ 1794: 40011437 lui s0,0x40011
+ 1798: 6785 lui a5,0x1
+ 179a: 448d li s1,3
+ 179c: 807c sh a5,0(sp)
+ 179e: 858a mv a1,sp
+ 17a0: 47c1 li a5,16
+ 17a2: c0040513 addi a0,s0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
+ 17a6: c43e sw a5,8(sp)
+ 17a8: c226 sw s1,4(sp)
+ 17aa: a9cff0ef jal ra,a46
+ 17ae: c0040513 addi a0,s0,-1024
+ 17b2: 6585 lui a1,0x1
+ 17b4: b66ff0ef jal ra,b1a
+ 17b8: 6789 lui a5,0x2
+ 17ba: 4961 li s2,24
+ 17bc: 858a mv a1,sp
+ 17be: c0040513 addi a0,s0,-1024
+ 17c2: 807c sh a5,0(sp)
+ 17c4: c44a sw s2,8(sp)
+ 17c6: c226 sw s1,4(sp)
+ 17c8: a7eff0ef jal ra,a46
+ 17cc: 6791 lui a5,0x4
+ 17ce: 807c sh a5,0(sp)
+ 17d0: 858a mv a1,sp
+ 17d2: 4791 li a5,4
+ 17d4: c0040513 addi a0,s0,-1024
+ 17d8: c43e sw a5,8(sp)
+ 17da: a6cff0ef jal ra,a46
+ 17de: 77e1 lui a5,0xffff8
+ 17e0: 858a mv a1,sp
+ 17e2: c0040513 addi a0,s0,-1024
+ 17e6: 807c sh a5,0(sp)
+ 17e8: c44a sw s2,8(sp)
+ 17ea: c226 sw s1,4(sp)
+ 17ec: a5aff0ef jal ra,a46
+ 17f0: 010407b7 lui a5,0x1040
+ 17f4: c63e sw a5,12(sp)
+ 17f6: 000207b7 lui a5,0x20
+ 17fa: c83e sw a5,16(sp)
+ 17fc: 020007b7 lui a5,0x2000
+ 1800: 0785 addi a5,a5,1
+ 1802: 40004437 lui s0,0x40004
+ 1806: ca3e sw a5,20(sp)
+ 1808: 47a1 li a5,8
+ 180a: cc3e sw a5,24(sp)
+ 180c: 006c addi a1,sp,12
+ 180e: 479d li a5,7
+ 1810: 80040513 addi a0,s0,-2048 # 40003800 <_eusrstack+0x1fffe800>
+ 1814: 86fc sh a5,28(sp)
+ 1816: fb6ff0ef jal ra,fcc
+ 181a: 4585 li a1,1
+ 181c: 80040513 addi a0,s0,-2048
+ 1820: fdeff0ef jal ra,ffe
+ 1824: 6105 addi sp,sp,32
+ 1826: 96ffe06f j 194 <__riscv_restore_0>
-000017b0 :
- 17b0: 9a7fe2ef jal t0,156 <__riscv_save_4>
- 17b4: 400044b7 lui s1,0x40004
- 17b8: 892a mv s2,a0
- 17ba: 0c900413 li s0,201
- 17be: 80048993 addi s3,s1,-2048 # 40003800 <_eusrstack+0x1fffe800>
- 17c2: 4589 li a1,2
- 17c4: 854e mv a0,s3
- 17c6: 85bff0ef jal ra,1020
- 17ca: c905 beqz a0,17fa
- 17cc: 85ca mv a1,s2
- 17ce: 80048513 addi a0,s1,-2048
- 17d2: 400044b7 lui s1,0x40004
- 17d6: 843ff0ef jal ra,1018
- 17da: 0c900413 li s0,201
- 17de: 80048913 addi s2,s1,-2048 # 40003800 <_eusrstack+0x1fffe800>
- 17e2: 4585 li a1,1
- 17e4: 854a mv a0,s2
- 17e6: 83bff0ef jal ra,1020
- 17ea: cd19 beqz a0,1808
- 17ec: 80048513 addi a0,s1,-2048
- 17f0: 82dff0ef jal ra,101c
- 17f4: 0ff57513 andi a0,a0,255
- 17f8: a031 j 1804
- 17fa: 147d addi s0,s0,-1
- 17fc: 0ff47413 andi s0,s0,255
- 1800: f069 bnez s0,17c2
- 1802: 4501 li a0,0
- 1804: 987fe06f j 18a <__riscv_restore_4>
- 1808: 147d addi s0,s0,-1
- 180a: 0ff47413 andi s0,s0,255
- 180e: f871 bnez s0,17e2
- 1810: bfcd j 1802
+0000182a :
+ 182a: 92dfe2ef jal t0,156 <__riscv_save_4>
+ 182e: 400044b7 lui s1,0x40004
+ 1832: 892a mv s2,a0
+ 1834: 0c900413 li s0,201
+ 1838: 80048993 addi s3,s1,-2048 # 40003800 <_eusrstack+0x1fffe800>
+ 183c: 4589 li a1,2
+ 183e: 854e mv a0,s3
+ 1840: fe0ff0ef jal ra,1020
+ 1844: c905 beqz a0,1874
+ 1846: 85ca mv a1,s2
+ 1848: 80048513 addi a0,s1,-2048
+ 184c: 400044b7 lui s1,0x40004
+ 1850: fc8ff0ef jal ra,1018
+ 1854: 0c900413 li s0,201
+ 1858: 80048913 addi s2,s1,-2048 # 40003800 <_eusrstack+0x1fffe800>
+ 185c: 4585 li a1,1
+ 185e: 854a mv a0,s2
+ 1860: fc0ff0ef jal ra,1020
+ 1864: cd19 beqz a0,1882
+ 1866: 80048513 addi a0,s1,-2048
+ 186a: fb2ff0ef jal ra,101c
+ 186e: 0ff57513 andi a0,a0,255
+ 1872: a031 j 187e
+ 1874: 147d addi s0,s0,-1
+ 1876: 0ff47413 andi s0,s0,255
+ 187a: f069 bnez s0,183c
+ 187c: 4501 li a0,0
+ 187e: 90dfe06f j 18a <__riscv_restore_4>
+ 1882: 147d addi s0,s0,-1
+ 1884: 0ff47413 andi s0,s0,255
+ 1888: f871 bnez s0,185c
+ 188a: bfcd j 187c
-00001812 :
- 1812: 95ffe2ef jal t0,170 <__riscv_save_0>
- 1816: 892a mv s2,a0
- 1818: 40011537 lui a0,0x40011
- 181c: 842e mv s0,a1
- 181e: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
- 1822: 6585 lui a1,0x1
- 1824: 84b2 mv s1,a2
- 1826: 4601 li a2,0
- 1828: af6ff0ef jal ra,b1e
- 182c: 450d li a0,3
- 182e: 3749 jal 17b0
- 1830: 01045513 srli a0,s0,0x10
- 1834: 0ff57513 andi a0,a0,255
- 1838: 3fa5 jal 17b0
- 183a: 00845513 srli a0,s0,0x8
- 183e: 0ff57513 andi a0,a0,255
- 1842: 37bd jal 17b0
- 1844: 0ff47513 andi a0,s0,255
- 1848: 37a5 jal 17b0
- 184a: 4401 li s0,0
- 184c: 01041793 slli a5,s0,0x10
- 1850: 83c1 srli a5,a5,0x10
- 1852: 0097ec63 bltu a5,s1,186a
- 1856: 40011537 lui a0,0x40011
- 185a: 4605 li a2,1
- 185c: 6585 lui a1,0x1
- 185e: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
- 1862: abcff0ef jal ra,b1e
- 1866: 92ffe06f j 194 <__riscv_restore_0>
- 186a: 0ff00513 li a0,255
- 186e: 3789 jal 17b0
- 1870: 008907b3 add a5,s2,s0
- 1874: a388 sb a0,0(a5)
- 1876: 0405 addi s0,s0,1
- 1878: bfd1 j 184c
-
-0000187a :
- 187a: 8f7fe2ef jal t0,170 <__riscv_save_0>
- 187e: 1141 addi sp,sp,-16
- 1880: 4585 li a1,1
- 1882: 4511 li a0,4
- 1884: eeeff0ef jal ra,f72
- 1888: 4585 li a1,1
- 188a: 4521 li a0,8
- 188c: ee6ff0ef jal ra,f72
- 1890: 10000793 li a5,256
- 1894: 827c sh a5,4(sp)
- 1896: 40011537 lui a0,0x40011
- 189a: 47c1 li a5,16
- 189c: c63e sw a5,12(sp)
- 189e: 004c addi a1,sp,4
- 18a0: 478d li a5,3
- 18a2: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
- 18a6: c43e sw a5,8(sp)
- 18a8: 99eff0ef jal ra,a46
- 18ac: 0141 addi sp,sp,16
- 18ae: 8e7fe06f j 194 <__riscv_restore_0>
-
-000018b2 :
- 18b2: 8bffe2ef jal t0,170 <__riscv_save_0>
- 18b6: 1141 addi sp,sp,-16
- 18b8: 4585 li a1,1
- 18ba: 4541 li a0,16
- 18bc: eb6ff0ef jal ra,f72
- 18c0: 6785 lui a5,0x1
- 18c2: 80078793 addi a5,a5,-2048 # 800 <__stack_size>
- 18c6: 827c sh a5,4(sp)
- 18c8: 40011537 lui a0,0x40011
- 18cc: 47c1 li a5,16
- 18ce: c63e sw a5,12(sp)
- 18d0: 004c addi a1,sp,4
- 18d2: 478d li a5,3
- 18d4: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
- 18d8: c43e sw a5,8(sp)
- 18da: 96cff0ef jal ra,a46
- 18de: 0141 addi sp,sp,16
+0000188c :
+ 188c: 8e5fe2ef jal t0,170 <__riscv_save_0>
+ 1890: 892a mv s2,a0
+ 1892: 40011537 lui a0,0x40011
+ 1896: 842e mv s0,a1
+ 1898: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
+ 189c: 6585 lui a1,0x1
+ 189e: 84b2 mv s1,a2
+ 18a0: 4601 li a2,0
+ 18a2: a7cff0ef jal ra,b1e
+ 18a6: 450d li a0,3
+ 18a8: 3749 jal 182a
+ 18aa: 01045513 srli a0,s0,0x10
+ 18ae: 0ff57513 andi a0,a0,255
+ 18b2: 3fa5 jal 182a
+ 18b4: 00845513 srli a0,s0,0x8
+ 18b8: 0ff57513 andi a0,a0,255
+ 18bc: 37bd jal 182a
+ 18be: 0ff47513 andi a0,s0,255
+ 18c2: 37a5 jal 182a
+ 18c4: 4401 li s0,0
+ 18c6: 01041793 slli a5,s0,0x10
+ 18ca: 83c1 srli a5,a5,0x10
+ 18cc: 0097ec63 bltu a5,s1,18e4
+ 18d0: 40011537 lui a0,0x40011
+ 18d4: 4605 li a2,1
+ 18d6: 6585 lui a1,0x1
+ 18d8: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
+ 18dc: a42ff0ef jal ra,b1e
18e0: 8b5fe06f j 194 <__riscv_restore_0>
+ 18e4: 0ff00513 li a0,255
+ 18e8: 3789 jal 182a
+ 18ea: 008907b3 add a5,s2,s0
+ 18ee: a388 sb a0,0(a5)
+ 18f0: 0405 addi s0,s0,1
+ 18f2: bfd1 j 18c6
-000018e4 :
- 18e4: 88dfe2ef jal t0,170 <__riscv_save_0>
- 18e8: 1141 addi sp,sp,-16
- 18ea: 4585 li a1,1
- 18ec: 4521 li a0,8
- 18ee: e84ff0ef jal ra,f72
- 18f2: 10000793 li a5,256
- 18f6: 40011437 lui s0,0x40011
- 18fa: 827c sh a5,4(sp)
- 18fc: 47c1 li a5,16
- 18fe: c63e sw a5,12(sp)
- 1900: 004c addi a1,sp,4
- 1902: 478d li a5,3
- 1904: c0040513 addi a0,s0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
- 1908: c43e sw a5,8(sp)
- 190a: 93cff0ef jal ra,a46
- 190e: 4601 li a2,0
- 1910: 10000593 li a1,256
- 1914: c0040513 addi a0,s0,-1024
- 1918: a06ff0ef jal ra,b1e
- 191c: 0141 addi sp,sp,16
- 191e: 877fe06f j 194 <__riscv_restore_0>
+000018f4 :
+ 18f4: 87dfe2ef jal t0,170 <__riscv_save_0>
+ 18f8: 1141 addi sp,sp,-16
+ 18fa: 4585 li a1,1
+ 18fc: 4511 li a0,4
+ 18fe: e74ff0ef jal ra,f72
+ 1902: 4585 li a1,1
+ 1904: 4521 li a0,8
+ 1906: e6cff0ef jal ra,f72
+ 190a: 10000793 li a5,256
+ 190e: 827c sh a5,4(sp)
+ 1910: 40011537 lui a0,0x40011
+ 1914: 47c1 li a5,16
+ 1916: c63e sw a5,12(sp)
+ 1918: 004c addi a1,sp,4
+ 191a: 478d li a5,3
+ 191c: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
+ 1920: c43e sw a5,8(sp)
+ 1922: 924ff0ef jal ra,a46
+ 1926: 0141 addi sp,sp,16
+ 1928: 86dfe06f j 194 <__riscv_restore_0>
-00001922 :
- 1922: 84ffe2ef jal t0,170 <__riscv_save_0>
- 1926: 7179 addi sp,sp,-48
- 1928: 4585 li a1,1
- 192a: 4525 li a0,9
- 192c: e46ff0ef jal ra,f72
- 1930: 4791 li a5,4
- 1932: 40011537 lui a0,0x40011
- 1936: 82fc sh a5,20(sp)
- 1938: 084c addi a1,sp,20
- 193a: 04800793 li a5,72
- 193e: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
- 1942: ce3e sw a5,28(sp)
- 1944: 902ff0ef jal ra,a46
- 1948: 4589 li a1,2
- 194a: 4505 li a0,1
- 194c: b08ff0ef jal ra,c54
- 1950: 4791 li a5,4
- 1952: 4405 li s0,1
- 1954: d03e sw a5,32(sp)
- 1956: 1008 addi a0,sp,32
- 1958: 47b1 li a5,12
- 195a: d43e sw a5,40(sp)
- 195c: d622 sw s0,44(sp)
- 195e: d202 sw zero,36(sp)
- 1960: 854ff0ef jal ra,9b4
- 1964: 11800793 li a5,280
- 1968: 867c sh a5,12(sp)
- 196a: 0068 addi a0,sp,12
- 196c: 4789 li a5,2
- 196e: 875c sb a5,14(sp)
- 1970: c822 sw s0,16(sp)
- 1972: ca4ff0ef jal ra,e16
- 1976: 6145 addi sp,sp,48
- 1978: 81dfe06f j 194 <__riscv_restore_0>
+0000192c :
+ 192c: 845fe2ef jal t0,170 <__riscv_save_0>
+ 1930: 1141 addi sp,sp,-16
+ 1932: 4585 li a1,1
+ 1934: 4541 li a0,16
+ 1936: e3cff0ef jal ra,f72
+ 193a: 6785 lui a5,0x1
+ 193c: 80078793 addi a5,a5,-2048 # 800 <__stack_size>
+ 1940: 827c sh a5,4(sp)
+ 1942: 40011537 lui a0,0x40011
+ 1946: 47c1 li a5,16
+ 1948: c63e sw a5,12(sp)
+ 194a: 004c addi a1,sp,4
+ 194c: 478d li a5,3
+ 194e: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
+ 1952: c43e sw a5,8(sp)
+ 1954: 8f2ff0ef jal ra,a46
+ 1958: 0141 addi sp,sp,16
+ 195a: 83bfe06f j 194 <__riscv_restore_0>
-0000197c :
- 197c: 1141 addi sp,sp,-16
- 197e: 4511 li a0,4
- 1980: c622 sw s0,12(sp)
- 1982: 89cff0ef jal ra,a1e
- 1986: 4785 li a5,1
- 1988: 02f51563 bne a0,a5,19b2
- 198c: 842a mv s0,a0
- 198e: 4511 li a0,4
- 1990: 8acff0ef jal ra,a3c
- 1994: 8521c703 lbu a4,-1966(gp) # 20000152
- 1998: ef09 bnez a4,19b2
- 199a: 000025b7 lui a1,0x2
- 199e: 4681 li a3,0
- 19a0: 3e800613 li a2,1000
- 19a4: 4ae58593 addi a1,a1,1198 # 24ae
- 19a8: b0418513 addi a0,gp,-1276 # 20000404
- 19ac: 84818923 sb s0,-1966(gp) # 20000152
- 19b0: 29e1 jal 1e88
- 19b2: 4432 lw s0,12(sp)
- 19b4: 0141 addi sp,sp,16
- 19b6: 30200073 mret
+0000195e :
+ 195e: 813fe2ef jal t0,170 <__riscv_save_0>
+ 1962: 1141 addi sp,sp,-16
+ 1964: 4585 li a1,1
+ 1966: 4521 li a0,8
+ 1968: e0aff0ef jal ra,f72
+ 196c: 10000793 li a5,256
+ 1970: 40011437 lui s0,0x40011
+ 1974: 827c sh a5,4(sp)
+ 1976: 47c1 li a5,16
+ 1978: c63e sw a5,12(sp)
+ 197a: 004c addi a1,sp,4
+ 197c: 478d li a5,3
+ 197e: c0040513 addi a0,s0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
+ 1982: c43e sw a5,8(sp)
+ 1984: 8c2ff0ef jal ra,a46
+ 1988: 4601 li a2,0
+ 198a: 10000593 li a1,256
+ 198e: c0040513 addi a0,s0,-1024
+ 1992: 98cff0ef jal ra,b1e
+ 1996: 0141 addi sp,sp,16
+ 1998: ffcfe06f j 194 <__riscv_restore_0>
-000019ba :
- 19ba: fb6fe2ef jal t0,170 <__riscv_save_0>
- 19be: 7179 addi sp,sp,-48
- 19c0: 4585 li a1,1
- 19c2: 4515 li a0,5
- 19c4: daeff0ef jal ra,f72
- 19c8: 6785 lui a5,0x1
- 19ca: 40011537 lui a0,0x40011
- 19ce: 82fc sh a5,20(sp)
- 19d0: 084c addi a1,sp,20
- 19d2: 02800793 li a5,40
- 19d6: 80050513 addi a0,a0,-2048 # 40010800 <_eusrstack+0x2000b800>
- 19da: ce3e sw a5,28(sp)
- 19dc: 86aff0ef jal ra,a46
- 19e0: 45b1 li a1,12
- 19e2: 4501 li a0,0
- 19e4: a70ff0ef jal ra,c54
- 19e8: 6785 lui a5,0x1
- 19ea: 4405 li s0,1
- 19ec: d03e sw a5,32(sp)
- 19ee: 1008 addi a0,sp,32
- 19f0: 47a1 li a5,8
- 19f2: d43e sw a5,40(sp)
- 19f4: d622 sw s0,44(sp)
- 19f6: d202 sw zero,36(sp)
- 19f8: fbdfe0ef jal ra,9b4
- 19fc: 13800793 li a5,312
- 1a00: 867c sh a5,12(sp)
- 1a02: 0068 addi a0,sp,12
- 1a04: 478d li a5,3
- 1a06: 875c sb a5,14(sp)
- 1a08: c822 sw s0,16(sp)
- 1a0a: c0cff0ef jal ra,e16
- 1a0e: 6145 addi sp,sp,48
- 1a10: f84fe06f j 194 <__riscv_restore_0>
+0000199c :
+ 199c: fd4fe2ef jal t0,170 <__riscv_save_0>
+ 19a0: 7179 addi sp,sp,-48
+ 19a2: 4585 li a1,1
+ 19a4: 4525 li a0,9
+ 19a6: dccff0ef jal ra,f72
+ 19aa: 4791 li a5,4
+ 19ac: 40011537 lui a0,0x40011
+ 19b0: 82fc sh a5,20(sp)
+ 19b2: 084c addi a1,sp,20
+ 19b4: 04800793 li a5,72
+ 19b8: c0050513 addi a0,a0,-1024 # 40010c00 <_eusrstack+0x2000bc00>
+ 19bc: ce3e sw a5,28(sp)
+ 19be: 888ff0ef jal ra,a46
+ 19c2: 4589 li a1,2
+ 19c4: 4505 li a0,1
+ 19c6: a8eff0ef jal ra,c54
+ 19ca: 4791 li a5,4
+ 19cc: 4405 li s0,1
+ 19ce: d03e sw a5,32(sp)
+ 19d0: 1008 addi a0,sp,32
+ 19d2: 47b1 li a5,12
+ 19d4: d43e sw a5,40(sp)
+ 19d6: d622 sw s0,44(sp)
+ 19d8: d202 sw zero,36(sp)
+ 19da: fdbfe0ef jal ra,9b4
+ 19de: 11800793 li a5,280
+ 19e2: 867c sh a5,12(sp)
+ 19e4: 0068 addi a0,sp,12
+ 19e6: 4789 li a5,2
+ 19e8: 875c sb a5,14(sp)
+ 19ea: c822 sw s0,16(sp)
+ 19ec: c2aff0ef jal ra,e16
+ 19f0: 6145 addi sp,sp,48
+ 19f2: fa2fe06f j 194 <__riscv_restore_0>
-00001a14 :
- 1a14: 6505 lui a0,0x1
- 1a16: 808ff0ef jal ra,a1e
- 1a1a: 4785 li a5,1
- 1a1c: 02f51463 bne a0,a5,1a44
- 1a20: 6505 lui a0,0x1
- 1a22: 81aff0ef jal ra,a3c
- 1a26: 8441c783 lbu a5,-1980(gp) # 20000144
- 1a2a: 000025b7 lui a1,0x2
- 1a2e: 0785 addi a5,a5,1
- 1a30: 4681 li a3,0
- 1a32: 3e800613 li a2,1000
- 1a36: 51458593 addi a1,a1,1300 # 2514
- 1a3a: af418513 addi a0,gp,-1292 # 200003f4
- 1a3e: 84f18223 sb a5,-1980(gp) # 20000144