From a065fd5c605cf37400d642490826186df578b1d8 Mon Sep 17 00:00:00 2001
From: sfaguet <sfaguet@centumadetel.com>
Date: Sun, 6 Dec 2020 21:12:21 -0500
Subject: [PATCH] Adaptation pour le robot DJI

---
 .mxproject                            |    6 +-
 Inc/main.h                            |    2 +
 Inc/motors.h                          |   13 +-
 Inc/stm32f4xx_hal_conf.h              |    2 +-
 Inc/tim.h                             |   60 +
 MDK-ARM/RobotMaster_allRobots.uvoptx  |  102 +-
 MDK-ARM/RobotMaster_allRobots.uvprojx |   17 +-
 MDK-ARM/bin/RobotMaster_allRobots.hex | 2317 +++++++++++++------------
 MDK-ARM/bin/startup_stm32f427xx._ia   |    6 +
 RobotMaster_allRobots.ioc             |   66 +-
 Src/BoardA_handle.c                   |   27 +-
 Src/main.c                            |    7 +-
 Src/motors.c                          |   52 +-
 Src/robot_configuration.c             |   30 +-
 Src/tim.c                             |  147 ++
 Src/traitement.c                      |   35 +-
 16 files changed, 1705 insertions(+), 1184 deletions(-)
 create mode 100644 Inc/tim.h
 create mode 100644 MDK-ARM/bin/startup_stm32f427xx._ia
 create mode 100644 Src/tim.c

diff --git a/.mxproject b/.mxproject
index 8a5436a..4c07ff9 100644
--- a/.mxproject
+++ b/.mxproject
@@ -2,13 +2,13 @@
 LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_adc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_can.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f427xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h;
 
 [PreviousUsedKeilFiles]
-SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\adc.c;..\Src\can.c;..\Src\dma.c;..\Src\spi.c;..\Src\usart.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;;
+SourceFiles=..\Src\main.c;..\Src\gpio.c;..\Src\adc.c;..\Src\can.c;..\Src\dma.c;..\Src\spi.c;..\Src\tim.c;..\Src\usart.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_adc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;;
 HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc;
 CDefines=USE_HAL_DRIVER;STM32F427xx;USE_HAL_DRIVER;USE_HAL_DRIVER;
 
 [PreviousGenFiles]
 HeaderPath=C:/Users/sfaguet/Documents/RobotMaster_allRobots/Inc
-HeaderFiles=gpio.h;adc.h;can.h;dma.h;spi.h;usart.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;
+HeaderFiles=gpio.h;adc.h;can.h;dma.h;spi.h;tim.h;usart.h;stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h;
 SourcePath=C:/Users/sfaguet/Documents/RobotMaster_allRobots/Src
-SourceFiles=gpio.c;adc.c;can.c;dma.c;spi.c;usart.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c;
+SourceFiles=gpio.c;adc.c;can.c;dma.c;spi.c;tim.c;usart.c;stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c;
 
diff --git a/Inc/main.h b/Inc/main.h
index fb8260b..9ba91db 100644
--- a/Inc/main.h
+++ b/Inc/main.h
@@ -33,6 +33,8 @@ extern "C" {
 /* Private includes ----------------------------------------------------------*/
 /* USER CODE BEGIN Includes */
 #include "BoardA_handle.h"
+#include "traitement.h"
+#include "robot_configuration.h"
 
 /* USER CODE END Includes */
 
diff --git a/Inc/motors.h b/Inc/motors.h
index fa3d690..d9e3a64 100644
--- a/Inc/motors.h
+++ b/Inc/motors.h
@@ -10,6 +10,7 @@
 #include "PID.h"
 #include "can.h"
 #include "leds.h"
+#include "tim.h"
 #include "robot_configuration.h"
 #include <stdlib.h>
 #include <stdio.h>
@@ -43,7 +44,6 @@ typedef struct
 	uint16_t    can_tx_id;
 	motor_info_t info;				// Specific info about the motor
 	int type; 								// Type du moteur, ex:GM6020
-	//pid_struct_t pid_pos;			// Controler
 	struct pid_controller pid;		// Controler
 	float consigne;
 	float command;
@@ -62,9 +62,18 @@ void can_send_command(void);
 void can_motors_callback_handler(int16_t rx_id, uint8_t* rx_buff);
 
 /* Modifie la consigne tout en vérifiant les limites de postion */
-void add_consigne_position(motor_t* motor, float value);
+void add_consigne_position(motor_t* motor, float value, float coeff);
 
 /* Initialise le CAN 1 */
 void can1_init(void);
 
+/* Initialise le TIMER 1 pour les PWM */
+void PWM_init(void);
+
+/* Set le duty cycle de tous les channels PWM */ 
+void PWM_SetAllDuty(TIM_HandleTypeDef *tim, float duty_ch1, float duty_ch2);
+
+/* scales all PWM duty cycles between 0 and 1 */
+void PWM_ScaleAll(TIM_HandleTypeDef *tim);
+
 #endif
diff --git a/Inc/stm32f4xx_hal_conf.h b/Inc/stm32f4xx_hal_conf.h
index 73c9af6..f384e69 100644
--- a/Inc/stm32f4xx_hal_conf.h
+++ b/Inc/stm32f4xx_hal_conf.h
@@ -62,7 +62,7 @@
 /* #define HAL_SD_MODULE_ENABLED   */
 /* #define HAL_MMC_MODULE_ENABLED   */
 #define HAL_SPI_MODULE_ENABLED
-/* #define HAL_TIM_MODULE_ENABLED   */
+#define HAL_TIM_MODULE_ENABLED
 #define HAL_UART_MODULE_ENABLED
 /* #define HAL_USART_MODULE_ENABLED   */
 /* #define HAL_IRDA_MODULE_ENABLED   */
diff --git a/Inc/tim.h b/Inc/tim.h
new file mode 100644
index 0000000..d9b335e
--- /dev/null
+++ b/Inc/tim.h
@@ -0,0 +1,60 @@
+/**
+  ******************************************************************************
+  * File Name          : TIM.h
+  * Description        : This file provides code for the configuration
+  *                      of the TIM instances.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under BSD 3-Clause license,
+  * the "License"; You may not use this file except in compliance with the
+  * License. You may obtain a copy of the License at:
+  *                        opensource.org/licenses/BSD-3-Clause
+  *
+  ******************************************************************************
+  */
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __tim_H
+#define __tim_H
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+extern TIM_HandleTypeDef htim1;
+
+/* USER CODE BEGIN Private defines */
+
+/* USER CODE END Private defines */
+
+void MX_TIM1_Init(void);
+
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
+
+/* USER CODE BEGIN Prototypes */
+
+/* USER CODE END Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*__ tim_H */
+
+/**
+  * @}
+  */
+
+/**
+  * @}
+  */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/MDK-ARM/RobotMaster_allRobots.uvoptx b/MDK-ARM/RobotMaster_allRobots.uvoptx
index 75a57c3..bf268d5 100644
--- a/MDK-ARM/RobotMaster_allRobots.uvoptx
+++ b/MDK-ARM/RobotMaster_allRobots.uvoptx
@@ -160,6 +160,16 @@
           <WinNumber>1</WinNumber>
           <ItemText>motors[TOURELLE_YAW].info.angle</ItemText>
         </Ww>
+        <Ww>
+          <count>2</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>motors</ItemText>
+        </Ww>
+        <Ww>
+          <count>3</count>
+          <WinNumber>1</WinNumber>
+          <ItemText>\\RobotMaster_allRobots\../Src/robot_configuration.c\motors[5].MAX_POSITION</ItemText>
+        </Ww>
       </WatchWindow1>
       <WatchWindow2>
         <Ww>
@@ -310,8 +320,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\stm32f4xx_hal_msp.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
+      <PathWithFileName>..\Src\tim.c</PathWithFileName>
+      <FilenameWithoutPath>tim.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -322,8 +332,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\stm32f4xx_it.c</PathWithFileName>
-      <FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
+      <PathWithFileName>..\Src\usart.c</PathWithFileName>
+      <FilenameWithoutPath>usart.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -334,8 +344,8 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\system_stm32f4xx.c</PathWithFileName>
-      <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
+      <PathWithFileName>..\Src\stm32f4xx_hal_msp.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -346,8 +356,20 @@
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
       <bDave2>0</bDave2>
-      <PathWithFileName>..\Src\usart.c</PathWithFileName>
-      <FilenameWithoutPath>usart.c</FilenameWithoutPath>
+      <PathWithFileName>..\Src\stm32f4xx_it.c</PathWithFileName>
+      <FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
+      <RteFlg>0</RteFlg>
+      <bShared>0</bShared>
+    </File>
+    <File>
+      <GroupNumber>1</GroupNumber>
+      <FileNumber>11</FileNumber>
+      <FileType>1</FileType>
+      <tvExp>0</tvExp>
+      <tvExpOptDlg>0</tvExpOptDlg>
+      <bDave2>0</bDave2>
+      <PathWithFileName>..\Src\system_stm32f4xx.c</PathWithFileName>
+      <FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
       <RteFlg>0</RteFlg>
       <bShared>0</bShared>
     </File>
@@ -355,13 +377,13 @@
 
   <Group>
     <GroupName>Startup</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>2</GroupNumber>
-      <FileNumber>11</FileNumber>
+      <FileNumber>12</FileNumber>
       <FileType>2</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -381,7 +403,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>12</FileNumber>
+      <FileNumber>13</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -393,7 +415,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>13</FileNumber>
+      <FileNumber>14</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -405,7 +427,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>14</FileNumber>
+      <FileNumber>15</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -417,7 +439,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>15</FileNumber>
+      <FileNumber>16</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -429,7 +451,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>16</FileNumber>
+      <FileNumber>17</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -441,7 +463,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>17</FileNumber>
+      <FileNumber>18</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -453,7 +475,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>18</FileNumber>
+      <FileNumber>19</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -465,7 +487,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>19</FileNumber>
+      <FileNumber>20</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -477,7 +499,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>20</FileNumber>
+      <FileNumber>21</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -489,7 +511,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>21</FileNumber>
+      <FileNumber>22</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -501,7 +523,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>22</FileNumber>
+      <FileNumber>23</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -513,7 +535,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>23</FileNumber>
+      <FileNumber>24</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -525,7 +547,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>24</FileNumber>
+      <FileNumber>25</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -537,7 +559,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>25</FileNumber>
+      <FileNumber>26</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -549,7 +571,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>26</FileNumber>
+      <FileNumber>27</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -561,7 +583,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>27</FileNumber>
+      <FileNumber>28</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -573,7 +595,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>28</FileNumber>
+      <FileNumber>29</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -585,7 +607,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>29</FileNumber>
+      <FileNumber>30</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -597,7 +619,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>30</FileNumber>
+      <FileNumber>31</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -609,7 +631,7 @@
     </File>
     <File>
       <GroupNumber>3</GroupNumber>
-      <FileNumber>31</FileNumber>
+      <FileNumber>32</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -629,7 +651,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>4</GroupNumber>
-      <FileNumber>32</FileNumber>
+      <FileNumber>33</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -643,13 +665,13 @@
 
   <Group>
     <GroupName>BoardA</GroupName>
-    <tvExp>0</tvExp>
+    <tvExp>1</tvExp>
     <tvExpOptDlg>0</tvExpOptDlg>
     <cbSel>0</cbSel>
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>5</GroupNumber>
-      <FileNumber>33</FileNumber>
+      <FileNumber>34</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -669,7 +691,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>34</FileNumber>
+      <FileNumber>35</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -681,7 +703,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>35</FileNumber>
+      <FileNumber>36</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -693,7 +715,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>36</FileNumber>
+      <FileNumber>37</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -705,7 +727,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>37</FileNumber>
+      <FileNumber>38</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -717,7 +739,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>38</FileNumber>
+      <FileNumber>39</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -729,7 +751,7 @@
     </File>
     <File>
       <GroupNumber>6</GroupNumber>
-      <FileNumber>39</FileNumber>
+      <FileNumber>40</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -749,7 +771,7 @@
     <RteFlg>0</RteFlg>
     <File>
       <GroupNumber>7</GroupNumber>
-      <FileNumber>40</FileNumber>
+      <FileNumber>41</FileNumber>
       <FileType>1</FileType>
       <tvExp>0</tvExp>
       <tvExpOptDlg>0</tvExpOptDlg>
diff --git a/MDK-ARM/RobotMaster_allRobots.uvprojx b/MDK-ARM/RobotMaster_allRobots.uvprojx
index 894e7e4..415dbc7 100644
--- a/MDK-ARM/RobotMaster_allRobots.uvprojx
+++ b/MDK-ARM/RobotMaster_allRobots.uvprojx
@@ -339,7 +339,7 @@
               <MiscControls></MiscControls>
               <Define>USE_HAL_DRIVER,STM32F427xx,USE_HAL_DRIVER,STM32F427xx</Define>
               <Undefine></Undefine>
-              <IncludePath>../Inc;             ../Drivers/STM32F4xx_HAL_Driver/Inc;             ../Drivers/CMSIS/Device/ST/STM32F4xx/Include;             ../Drivers/CMSIS/Include</IncludePath>
+              <IncludePath>../Inc;              ../Drivers/STM32F4xx_HAL_Driver/Inc;              ../Drivers/CMSIS/Device/ST/STM32F4xx/Include;              ../Drivers/CMSIS/Include</IncludePath>
             </VariousControls>
           </Cads>
           <Aads>
@@ -482,6 +482,16 @@
               <FileType>1</FileType>
               <FilePath>..\Src\spi.c</FilePath>
             </File>
+            <File>
+              <FileName>tim.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Src\tim.c</FilePath>
+            </File>
+            <File>
+              <FileName>usart.c</FileName>
+              <FileType>1</FileType>
+              <FilePath>..\Src\usart.c</FilePath>
+            </File>
             <File>
               <FileName>stm32f4xx_hal_msp.c</FileName>
               <FileType>1</FileType>
@@ -497,11 +507,6 @@
               <FileType>1</FileType>
               <FilePath>..\Src\system_stm32f4xx.c</FilePath>
             </File>
-            <File>
-              <FileName>usart.c</FileName>
-              <FileType>1</FileType>
-              <FilePath>..\Src\usart.c</FilePath>
-            </File>
           </Files>
         </Group>
         <Group>
diff --git a/MDK-ARM/bin/RobotMaster_allRobots.hex b/MDK-ARM/bin/RobotMaster_allRobots.hex
index bea800c..bee464b 100644
--- a/MDK-ARM/bin/RobotMaster_allRobots.hex
+++ b/MDK-ARM/bin/RobotMaster_allRobots.hex
@@ -1,1109 +1,1264 @@
 :020000040800F2
-:1000000080180020C5010008F72600089D2300087D
-:10001000F526000869070008B52B0008000000005D
-:10002000000000000000000000000000E9270008B8
-:100030005908000800000000F9260008EB27000816
+:10000000C0180020C5010008D72B0008B927000838
+:10001000D52B0008DD080008693300080000000047
+:10002000000000000000000000000000352D000866
+:10003000CD09000800000000452C0008372D0008FD
 :10004000DF010008DF010008DF010008DF01000810
 :10005000DF010008DF010008DF010008DF01000800
 :10006000DF010008DF010008DF010008DF010008F0
 :10007000DF010008DF010008DF010008DF010008E0
-:10008000DF010008DF010008DF0100087907000830
-:100090006D070008DF010008DF010008DF0100082C
+:10008000DF010008DF010008DF010008ED080008BB
+:10009000E1080008DF010008DF010008DF010008B7
 :1000A000DF010008DF010008DF010008DF010008B0
 :1000B000DF010008DF010008DF010008DF010008A0
 :1000C000DF010008DF010008DF010008DF01000890
-:1000D000DF010008F52A0008DF010008DF01000841
+:1000D000DF010008A9320008DF010008DF01000885
 :1000E000DF010008DF010008DF010008DF01000870
 :1000F000DF010008DF010008DF010008DF01000860
 :10010000DF010008DF010008DF010008DF0100084F
 :10011000DF010008DF010008DF010008DF0100083F
-:10012000DF0100088507000891070008DF010008CB
+:10012000DF010008F908000805090008DF010008E0
 :10013000DF010008DF010008DF010008DF0100081F
 :10014000DF010008DF010008DF010008DF0100080F
-:10015000DF0100089D070008A9070008592B0008C7
+:10015000DF010008110900081D0900080D3300081F
 :10016000DF010008DF010008DF010008DF010008EF
 :10017000DF010008DF010008DF01000800000000C7
 :10018000DF010008DF010008DF010008DF010008CF
 :10019000DF010008DF010008DF010008DF010008BF
 :1001A0000000000000000000DF010008DFF810D0B0
-:1001B00000F034FA00480047552E0008AFF30080E5
-:1001C000801800200648804706480047FEE7FEE703
+:1001B00000F0EEFA0048004711360008AFF3008067
+:1001C000C01800200648804706480047FEE7FEE7C3
 :1001D000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7F7
-:1001E00089280008AD0100082DE9F05F05460020D0
+:1001E000D52D0008AD0100082DE9F05F054600207F
 :1001F00092469B4688460646814640241BE0284698
-:1002000041464746224600F065F953465A46C01A11
-:10021000914110D311461846224600F04CF92D1A90
-:1002200067EB01084F4622460120002100F043F908
+:1002000041464746224600F00CFA53465A46C01A69
+:10021000914110D311461846224600F0F3F92D1AE9
+:1002200067EB01084F4622460120002100F0EAF961
 :1002300017EB00094E41201EA4F10104DFDC484603
 :1002400031462A464346BDE8F09F40EA01039B073A
 :1002500003D009E008C9121F08C0042AFAD203E03B
 :1002600011F8013B00F8013B521EF9D270470346DA
 :1002700011F8012B00F8012B002AF9D1184670471C
-:100280002DE9FE4F81EA030404F0004421F000410F
-:1002900000944FF0000B23F0004350EA01045ED0BD
-:1002A00052EA03045BD0C3F30A54C1F30A552C4449
-:1002B000A4F2F3340194A0FB0254C1F3130141F4FE
-:1002C0008011C3F3130343F4801301FB024400FBCA
-:1002D000034E840A970A44EA815447EA8357A4FBF1
-:1002E000076802958D0A05FB07854FEA932C04FBEE
-:1002F0000C542705029D4FEA065847EA1637B5EB1E
-:1003000008056EEB070C870E920E47EA811742EA4A
-:100310008312A7FB0201B6EB0B0164EB00042B0D6B
-:1003200043EA0C335E1844EB1C50DA465146E7FBB7
-:100330000201C5F313044FEA0B3343EA14534FEAA7
-:100340000432019C43EA0603A4F10C040294009CCD
-:10035000CDE900B400F014F903B0BDE8F08F00203F
-:100360000146F9E72DE9F04D81EA030404F0004B62
-:1003700021F0004514464FF0000A23F0004150EAF6
-:10038000050220D054EA01021DD0C5F30A570246E7
-:10039000C5F31303C1F31300C1F30A5640F48015EB
-:1003A00043F48013A7EB0608101BD64608F2FD386D
-:1003B00073EB050002D308F1010801E092185B41DC
-:1003C000B8F1000F03DA00200146BDE8F08D0020EF
-:1003D0004FF48011064684460EE0171B73EB0507A9
-:1003E00005D3121B63EB050306434CEA010C4908D5
-:1003F0004FEA300092185B4150EA0107EDD152EA12
-:10040000030012D082EA040083EA0501084305D004
-:10041000101BAB4106D20122002306E000224FF060
-:10042000004302E06FF0010253101AEB06004CEBA0
-:10043000085110EB0A0041EB0B01BDE8F04D00F054
-:1004400090B80EB5C10F80EAE0700844CA070021D9
-:1004500040F233438DE80E000A460B4600F090F858
-:1004600003B000BD0EB540F2334102910021CDE949
-:1004700000110A460B4600F083F803B000BD01F0FE
-:10048000004330B421F0004150EA010206D00A0DC9
-:10049000A2F56072C1F31301002A02DC30BC002017
-:1004A0007047440F44EAC104C100E01830BC00EBBF
-:1004B000C25000F01FB8202A04DB203A00FA02F1F3
-:1004C000002070479140C2F1200320FA03F3194342
-:1004D00090407047202A04DB203A21FA02F00021E4
-:1004E000704721FA02F3D040C2F120029140084344
-:1004F000194670470029A8BF7047401C490008BF33
-:1005000020F00100704710B4B0FA80FC00FA0CF043
-:1005100050EA010404BF10BC704749B1CCF120047B
-:1005200021FA04F411FA0CF118BF01212143084308
-:10053000A3EB0C01CB1D4FEA00614FEA102042BF34
-:10054000002010BC704700EBC35010440029A4BF2A
-:1005500010BC7047401C490008BF20F0010010BCCF
-:10056000704710B5141E73F1000408DA401C41F105
-:10057000000192185B411A4301D120F0010010BD27
-:100580002DE9F04D92469B4611B1B1FA81F202E09D
-:10059000B0FA80F220329046FFF78DFF04460F46F6
-:1005A00040EA0A0041EA0B0153465A46084313D079
-:1005B000114653EA010019D0C8F140025046FFF736
-:1005C00089FF05460E46504659464246FFF773FFDF
-:1005D000084305D0012004E020463946BDE8F08DEF
-:1005E0000020054346EAE0762C4337430A9863052A
-:1005F000E40AA0EB08000022FD0A44EA47540A304E
-:1006000002D500200146E9E7010510196941DDE93D
-:10061000084500196941BDE8F04DA2E7064C074DB9
-:1006200006E0E06840F0010394E8070098471034C2
-:10063000AC42F6D3FFF7BEFDD8440008F8440008EA
-:10064000464910B54A6822F440324A604A68436815
-:100650001A434A6001684A6822F480724A6001685D
-:100660004A68036942EA03224A6001684A6822F044
-:1006700040724A6001684A6883681A434A600168A8
-:100680008A6822F400628A6001688A68C3681A4333
-:100690008A60816A6FF07062D14201688A6822F0D4
-:1006A00070628A6001688A680CD0836A1A438A6023
-:1006B00001688A6822F040528A6001688A68C36AC9
-:1006C0001A4301E022F040528A6001688A6822F0F1
-:1006D00002028A6001688A68037E42EA43028A60F5
-:1006E00090F82010002901684A680FD042F4006297
-:1006F0004A6001684A6822F460424A6001684A68B8
-:10070000174C436A04EB43331A4301E022F40062BE
-:100710004A600168CA6A22F47002CA620168CA6A41
-:10072000838B104C04EB03531A43CA6201688A6836
-:1007300022F400728A6001688A6890F8303042EAD8
-:1007400043228A6001688A6822F480628A600168B4
-:100750008A68406942EA8020886010BD0023014019
-:1007600000E0FFFF0000F0FFFEE70000014800F09E
-:10077000FCBA000070000020014800F0F6BA00004A
-:1007800070000020014800F031BD00007002002020
-:10079000014800F02BBD0000B0010020014800F02E
-:1007A00025BD0000D0020020014800F01FBD000060
-:1007B0001002002001681823CAB2103AB2FBF3F20B
-:1007C000054B6FF30901032A9B5CC36500D9091D22
-:1007D00081650846704700004E3C000810B5014690
-:1007E00000208B698A6A4FF0C07453B1B3F5005F83
-:1007F00015D072B1012A0CD0022A0AD0032A09D1DD
-:1008000004E01AB1012A06D0022A03D1C96AC9013B
-:1008100000D5012010BDC96AA142FAD010BD002A3E
-:10082000F7D0012AF2D0022AF3D0032AF3D010BD68
-:1008300030B50468256825F4802525600468636068
-:100840008368402B036803D099600068C26030BDA4
-:100850009A600068C16030BD7047704778B5002469
-:10086000009490F83C20012A19D0012280F83C2005
-:100870000A6807230568092A13D9EE680A3A02EBC9
-:10088000420293409E43EE600B788A680A3B03EB7A
-:1008900043039A400368DD682A43DA6010E00220CF
-:1008A00078BD2E6902EB420293409E432E610B7885
-:1008B0008A6803EB43039A4003681D692A431A615F
-:1008C0004A681F23072A13D205686E6B521E02EB7B
-:1008D000820293409E436E630A8893B20A79521E45
-:1008E00002EB820293400268556B2B43536327E06F
-:1008F00005680D2A12D22E6BD21F02EB82029340A2
-:100900009E432E630B790A88DB1F92B203EB8303AD
-:100910009A4003681D6B2A431A6311E0EE6A0D3A90
-:1009200002EB820293409E43EE620B790A880D3BF4
-:1009300092B203EB83039A400368DD6A2A43DA62CA
-:100940001B4B0568194A9D420AD10D68122D07D12B
-:10095000556825F400055560556845F480055560D7
-:1009600005689D421DD1134D0B68AB4201D0112B80
-:1009700017D1536823F480035360536843F4000392
-:1009800053600968A9420CD10B490C4A0968B1FBB4
-:10099000F2F101EB8101490000E0491E00910029BC
-:1009A000FBD180F83C40002078BD000000230140CE
-:1009B00000200140120000100000002040420F0003
-:1009C00070B504004FF0000503D0206C002610B174
-:1009D00007E0012070BD204600F01CF8666484F832
-:1009E0003C60206CC00610D4206C20F4885040F08D
-:1009F000020020642046FFF723FE6664206C20F08E
-:100A0000020040F00100206400E0012584F83C6011
-:100A1000284670BD00B587B0002102910391049172
-:100A2000059106910068A0F18041B1F5903119D18E
-:100A30000D48016841F480710160006800F4807025
-:100A400001900A48016841F001010160006800F06E
-:100A500001000190402002900320039002A9044865
-:100A600000F034FD07B000BD443802403038024089
-:100A70000000024090F82020012A07D0022A05D069
-:100A8000416A41F480214162012070470068426957
-:100A90000A43426100207047F0B590F82050046886
-:100AA000A468012D05D0022D03D0416A41F48021B4
-:100AB0005DE014F0406F01D1E50055D5C4F3016449
-:100AC000022C03D9416A41F4000150E00125A54000
-:100AD0001D608D684FF4C0739DB1CE6835434E687C
-:100AE00045EAC605066803EB0417F5514FF4C275D5
-:100AF000076805EB04150E697E51097D012905D0B3
-:100B000009E00E88CD6845EA4655EBE701684E5985
-:100B100046F480764E511179D579567941EA0561CE
-:100B200095792D0445EA062529434FF4C6760568D4
-:100B300006EB0416A9511178D57841EA056195783C
-:100B400052782D0445EA022211434FF4C47502681D
-:100B500005EB04155151006803EB0411425842F0B3
-:100B6000010242500020F0BD416A41F4001141628F
-:100B70000120F0BD10B590F82020012A07D0022AEC
-:100B800005D0416A41F480214162012010BD3B48FB
-:100B9000D0F8002242F00102C0F80022D0F8002272
-:100BA00022F47C52C0F80022D0F800224B6A42EABC
-:100BB0000322C0F800220A7D02F01F0301229A409E
-:100BC000D0F81C329343C0F81C32CB69B3B9D0F8CB
-:100BD0000C329343C0F80C328C894B6864F31F438A
-:100BE0004C6900EBC404C4F840320C890B6864F310
-:100BF0001F434C6900EBC404C4F84432CB69012B99
-:100C000016D1D0F80C321343C0F80C320C884B6864
-:100C100064F31F434C6900EBC404C4F840320C89F0
-:100C2000CB6864F31F434C6900EBC404C4F844323E
-:100C30008B69002BD0F804320ED01343C0F8043275
-:100C40000B69002BD0F8143208D01343C0F81432CB
-:100C5000096A012904D008E09343EFE79343F5E7DD
-:100C6000D0F81C121143C0F81C12D0F8001221F069
-:100C70000101C0F80012002010BD00000064004017
-:100C8000704730B590F82040012C05D0022C03D0DD
-:100C9000416A41F480215DE00468002955D024694F
-:100CA000A40754D04FF4D874056804EB01142D59EF
-:100CB00015F00405956005682D594ED0ED08556076
-:100CC00005682C5904F00204D4604FF4DA74056806
-:100CD00004EB01142D5905F00F05156105682D5918
-:100CE000C5F30725956105682C59240C54614FF410
-:100CF000DC72046802EB0112A4581C700468A4584A
-:100D0000240A5C700468A458240C9C700468A258DF
-:100D1000120EDA704FF4DE72046802EB0112A4586E
-:100D20001C710468A458240A5C710468A458240C3B
-:100D30009C710468A258120EDA71006881B10169D1
-:100D400041F020010161002030BDE468A8E7416A5C
-:100D500041F400114162012030BD6D0D1560AFE717
-:100D6000C16841F02001C160EDE72DE9F05F054663
-:100D7000006800244669D0F804908768D0F80CB069
-:100D8000D0F810A0D0F81880F10748D0F90714D097
-:100D900001218160B80703D5284600F00EFA0CE067
-:100DA000780702D54FF4006407E0380702D54FF406
-:100DB000805402E0284600F0FFF9F80516D52968AE
-:100DC0004FF480708860B80503D5284600F0F7F925
-:100DD0000CE0780502D544F4005407E0380502D54C
-:100DE00044F4804402E0284600F0E8F9F80316D500
-:100DF00029684FF480308860B80303D5284600F096
-:100E0000E0F90CE0780302D544F4004407E038032D
-:100E100002D544F4803402E0284600F0D1F93007CE
-:100E200007D55FEACB6004D52968102044F400742C
-:100E3000C86070074FF0080707D55FEA0B7004D54C
-:100E40002868C760284600F05FF9B00706D5286813
-:100E5000C068800702D0284600F058F9700607D510
-:100E60005FEACA6004D52968102044F480640861F0
-:100E7000B00607D55FEA0A7004D5286807612846DE
-:100E800000F06AF9F00606D528680069800702D0EC
-:100E9000284600F062F9B00308D55FEAC96005D5BD
-:100EA000296810204860284600F058F9F00307D55B
-:100EB0005FEA097004D528684760284600F082F987
-:100EC000300446D55FEA497040D5F00504D55FEAA5
-:100ED000C87001D044F00104B00504D55FEA887001
-:100EE00001D544F00204700504D55FEA487001D5CD
-:100EF00044F00404300529D518F0700F26D008F00E
-:100F00007000402815D006DC102809D020280AD00F
-:100F1000302816D10AE050280ED0602811D10EE0FA
-:100F200044F008040DE044F010040AE044F020040A
-:100F300007E044F0400404E044F0800401E044F49D
-:100F400080742868816921F070018161296804201A
-:100F50004860002C05D0686A204368622846FFF785
-:100F60008FFEBDE8F09F70B5040003D094F8200018
-:100F700010B104E0012070BD204600F081F8206827
-:100F8000016821F00201016000F090FB0546052692
-:100F900004E000F08BFB401B0A2811D82068406851
-:100FA0008007F6D42068016841F00101016000F07B
-:100FB0007DFB05460BE000F079FB401B0A2806D9B3
-:100FC000606A40F40030606284F82060D2E72068F4
-:100FD0004068C007EFD0207E0128206801683DD01E
-:100FE00021F080010160607E01282068016838D00E
-:100FF00021F040010160A07E01282068016833D003
-:1010000021F020010160E07E0128206801682ED0D7
-:1010100041F010010160207F01282068016829D07B
-:1010200021F008010160607F01282068016824D058
-:1010300021F004010160D4E902010843D4E904125B
-:10104000114308436168491E08432168C8610020B4
-:101050006062012084F82000002070BD41F0800112
-:10106000C0E741F04001C5E741F02001CAE721F0A7
-:101070001001CFE741F00801D4E741F00401D9E7BE
-:1010800000B587B00021029103910491059106916A
-:101090000068A0F18041B1F5C8412CD11748016822
-:1010A00041F000710160006800F000700190144888
-:1010B000016841F008010160006800F0080001903B
-:1010C000032002900221039105900920069002A9B5
-:1010D0000C4800F0FBF900221146132000F056FBEB
-:1010E000132000F045FB00221146142000F04EFBB7
-:1010F000142000F03DFB07B000BD00004038024066
-:1011000030380240000C02407047000010B58AB031
-:1011100004462068D0F8B001400D01902068A0F18D
-:101120008041B1F5C84113D10198A0F201201028E7
-:101130000ED800F0BBFA0749086008AB01AA0021ED
-:101140002046FFF79EFD019808A900B201F0A8FD16
-:101150000AB010BD180000207047704770470000AB
-:1011600070B5044690F82000012804D0606A40F46D
-:101170000020606218E0022084F8200020680168E6
-:1011800021F00101016000F091FA05460EE000BF78
-:1011900000F08CFA401B0A2808D9606A40F400303D
-:1011A0006062052084F82000012070BD206840683E
-:1011B000C007EDD1606270BD7047704770477047DF
-:1011C00070477047704790F83510022903D080218E
-:1011D000416501207047052180F8351000680168DD
-:1011E00021F0010101600020704700002DE9F84363
-:1011F00004464FF00009CDF8009063484FF41651B3
-:10120000A56D0068B0FBF1F72E6894F85C1008201B
-:1012100000FA01F131420FD021680A6852070BD55C
-:101220000A6822F004020A6094F85C108840A86002
-:10123000606D40F00100606594F85C104FF00108AB
-:1012400008FA01F0304208D021684969090604D53E
-:10125000A860606D40F00200606594F85C100420A6
-:101260008840304208D021680968890704D5A86001
-:10127000606D40F00400606594F85C1010208840B8
-:10128000304218D021680968090714D5A860206881
-:101290000168490304D50068000308D5A16C07E084
-:1012A0000168C90503D4016821F008010160216CBF
-:1012B00009B12046884794F85C10202088403042CD
-:1012C00031D021680968C9062DD5A86094F8350089
-:1012D00005282068016806D0490347D50068000347
-:1012E0001DD4616C1CE021F0160101602068416989
-:1012F00021F080014161206C08B9A06C20B1206808
-:10130000016821F00801016094F85C103F208840DA
-:10131000A86084F8349084F83580216D1FE0E16B7B
-:1013200009B120468847606D00282BD0606DC0074A
-:1013300014D0052084F835002068016821F00101EF
-:1013400001600098401C0090B84203D820680068F3
-:10135000C007F6D184F8349084F83580E16C002918
-:1013600010D001B02046BDE8F04308470168C90528
-:10137000D5D4016821F01001016084F8349084F81C
-:101380003580CCE7BDE8F883000000202DE9F0416E
-:10139000044600F08BF906465CB1002584F8345011
-:1013A000022084F835002068016821F00101016005
-:1013B0000DE00120BDE8F08100F078F9801B0528E0
-:1013C00005D920206065032084F83500F2E7206805
-:1013D0000068C007F0D12268116820480140D4E9B4
-:1013E00001031843D4E903363343184363691843B0
-:1013F000A3691843E3691843236A18430843616AE1
-:10140000042903D1D4E90B13194308431060206861
-:101410004069666A20F0070130460E430127042820
-:101420000CD1A06A0643E06A40B12046FFF7D6F926
-:1014300020B14020606584F83570BAE720684661C5
-:101440002046FFF7B7F994F85C203F219140816076
-:10145000656584F835700020ACE700003F8010F02F
-:1014600070B5044690F83400002501280CD0012006
-:1014700084F8340094F835600020012E06D084F8FA
-:1014800034000225284670BD022070BD022684F873
-:10149000356060652046FFF7CBF92068016841F0B0
-:1014A00001010160EEE7000070B5044600F0FEF8AF
-:1014B0000546601C02D004480078044400F0F6F8A9
-:1014C000401BA042FAD370BD040000202DE9F84F64
-:1014D00000224FF0010803254FF00F0E0B6808FAA9
-:1014E00002F42340A3426ED14E68012E05D0022E95
-:1014F00003D0112E01D0122E12D186684FEA420C71
-:1015000005FA0CF7BE43CF6807FA0CF7374387603C
-:101510004668A6430C79C4F30014944034434460F5
-:10152000C668570005FA07FC8C6826EA0C06BC4022
-:101530003443C4604C68022C01D0122C13D1D4085F
-:1015400000EB8404A346D4F8209054074FEAD46AF1
-:101550000EFA0AF629EA06090E6906FA0AF646EABA
-:101560000906CBF8206004680E7924EA0C0406F022
-:101570000306BE40264306604C68E4006FD53B4C32
-:10158000266846F480462660246822F0030604F4A8
-:1015900080440094364C3444A446D4F80848960756
-:1015A000360F0EFA06F7BC43324FB84201D100277E
-:1015B0002EE0314FB84201D1012729E02F4FB84228
-:1015C00002D1022724E04AE02D4FB84201D103277F
-:1015D0001EE02C4FB84201D1042719E02A4FB8422F
-:1015E00001D1052714E0294FB84201D106270FE0A9
-:1015F000274FB84201D107270AE0264FB84201D150
-:10160000082705E0244FB84201D1092700E00A2746
-:10161000B7402743CCF80878204E34684F689C4385
-:10162000FF0300D51C4334601C4E361D34684F68E0
-:101630009C43BF0300D51C433460184E0836346801
-:101640004F689C43FF0200D51C433460134E0C3698
-:1016500034684F689C43BF0200D51C433460521C61
-:10166000102AFFF43BAFBDE8F88F00004438024079
-:101670000030014000000240000402400008024027
-:10168000000C02400010024000140240001802400A
-:10169000001C02400020024000240240003C0140A7
-:1016A0000AB1816170470904FBE7000001488068C6
-:1016B000704700000400002002488168027811444D
-:1016C00081607047040000200B4810B5016841F4A8
-:1016D00000710160016841F480610160016841F4BA
-:1016E00080710160032000F071F8002000F006F81E
-:1016F00000F024F8002010BD003C024070B50D4DF4
-:1017000004464FF47A712878B1FBF0F00A49096871
-:10171000B1FBF0F000F03CFC48B9102C07D20022DD
-:101720002146501E00F032F800206C6070BD012090
-:1017300070BD0000040000200000002081B00A48B5
-:10174000016841F480410160006800F4804000902D
-:101750000648016841F080510160006800F0805047
-:10176000009001B070470000443802404038024009
-:10177000002809DB00F01F02012191404009800090
-:1017800000F1E020C0F8001170470000F0B40E4BEB
-:101790001B680C46C3F30223C3F10705042D00D9CF
-:1017A0000425191D072901D2002300E0DB1E0126B4
-:1017B00006FA05F1491E214099409E40761E1640CA
-:1017C0003143F0BC01F0F7B90CED00E0064900F040
-:1017D000070208684FF6FF03184040EA0220034A58
-:1017E00010430860704700000CED00E00000FA05AF
-:1017F0002DE9F0470E46050065D0DFF81481D8F8D2
-:101800000000F7B200F00F00B04207D288F8007075
-:10181000D8F8000000F00F00B04254D128683D4CC9
-:10182000810712D5400703D5206840F4E0502060BE
-:101830002878000703D5206840F4604020602068C5
-:10184000A96820F0F000084320602878C0072DD058
-:10185000304968680839012812D0022813D00328BB
-:1018600011D00968890700292DDA216821F00301C8
-:1018700001432160FFF71AFF814641F2883A0EE0EA
-:1018800009688903EFE709688901ECE7FFF70EFFB4
-:10189000A0EB0901514502D90320BDE8F08720687B
-:1018A000696800F00C00B0EB810FEFD1D8F80010A0
-:1018B000404601F00F01B14207D90770006800F0FF
-:1018C0000F00B04201D00120E7E72878400705D596
-:1018D0002068E96820F4E050084320602878000779
-:1018E00006D52068296920F4604040EAC1002060E4
-:1018F00000F038F82168084AC1F30311515CC84070
-:101900000649086006480068FFF7F8FE0020C4E7B3
-:10191000003C024008380240363C0008000000202D
-:10192000080000200448054900680968044AC1F31A
-:101930008221515CC84070470000002008380240F6
-:10194000463C00080448054900680968044AC1F398
-:101950004231515CC8407047000000200838024006
-:10196000463C0008154810B5006810F00C021448F9
-:1019700013D01449042A0FD0082A0ED10F4C241F6B
-:101980002268236802F03F025B0207D52068C0F39B
-:101990008810A0FB010106E0084610BD2168C1F3D4
-:1019A0008811A1FB00010023FEF71EFC2168C1F392
-:1019B0000141491C4900B0FBF1F010BD083802405C
-:1019C0000024F400001BB7002DE9F84F04006ED08E
-:1019D0002078DFF83C93C007A9F104054AD009F14B
-:1019E00004000168C1F38101012908D00068C0F337
-:1019F000810002280AD1D9F80000400206D52868E3
-:101A0000800337D560680028E1D033E06068B0F526
-:101A1000803F10D0B0F5A02F286810D020F480307F
-:101A20002860286820F4802028606068A8B1FFF74B
-:101A30003DFE06460DE0286840F48030F4E740F4AF
-:101A400080202860F7E700BFFFF730FE801B642886
-:101A500073D828688003F7D50CE0FFF727FE064609
-:101A600005E000BFFFF722FE801B6428F0D828683D
-:101A70008003F7D42078DFF89C8280074FF0000ABB
-:101A80003ED5A348001D016811F00C0F08D0006876
-:101A9000C0F3810002280BD1D9F80000400207D41E
-:101AA0002868800716D5E068012800D112E02BE1F4
-:101AB000E068B8B10120C8F80000FFF7F7FD06465E
-:101AC00005E000BFFFF7F2FD801B0228C0D82868A0
-:101AD0008007F7D52868216920F0F80040EAC100A6
-:101AE00028600DE0C8F800A0FFF7E0FD064604E01E
-:101AF000FFF7DCFD801B02281FD828688007F7D479
-:101B00002078000722D5824E83486169703671B112
-:101B100001210160FFF7CAFD074604E0FFF7C6FD9B
-:101B2000C01B022809D830688007F7D50EE0C0F83E
-:101B300000A0FFF7BBFD074605E082E0FFF7B6FD1A
-:101B4000C01B02287DD830688007F7D42078400772
-:101B500068D5DFF8BCB100270BF13C0BDBF80000C7
-:101B6000C0000BD4DBF8001041F08051CBF800101E
-:101B7000DBF80000012700F080500090674E3068CD
-:101B8000C00510D4306840F480703060FFF78EFDDF
-:101B9000009005E0FFF78AFD0099401A022850D80E
-:101BA0003068C005F6D55A4EA0686C3601280FD0B3
-:101BB0000528306810D020F001003060306820F037
-:101BC00004003060A068B8B1FFF770FD00900FE02E
-:101BD000306840F00100F4E740F004003060F7E7BF
-:101BE000FFF764FD0099411A41F28830814266D8BE
-:101BF00030688007F4D50EE0FFF758FD009007E04D
-:101C0000FFF754FD0099411A41F28830814256D8BD
-:101C100030688007F4D42FB1DBF8001021F0805138
-:101C2000CBF80010A069C8B33949091D0968C1F390
-:101C3000810102294AD00228504607D0C8F8600026
-:101C400000E03CE0FFF732FD04463BE04746C8F8C1
-:101C50006000FFF72BFD064605E000BFFFF726FDFD
-:101C6000801B02282BD828688001F7D4D4E907010B
-:101C70000843A16A2A4A490802EB0141626A41EA23
-:101C80008211084394F82C1040EA0161C9F8001051
-:101C900001203866FFF70AFD044606E036E000BF83
-:101CA000FFF704FD001B022809D828688001F7D53A
-:101CB0002CE000BFFFF7FAFC001B022802D903202A
-:101CC000BDE8F88F28688001F4D41FE00128F7D020
-:101CD000D9F80000E26900F48001914214D1226A2F
-:101CE00000F03F0191420FD147F6C071626A014096
-:101CF000914209D1A26A00F44031914204D1E16AD3
-:101D000000F07060884201D00120D9E70020D7E7B9
-:101D10000438024000004742800E474200700040F5
-:101D20000000FFFF70B5040005D00025A56294F8FF
-:101D3000510010B106E0012070BD84F850502046DB
-:101D400000F030F8022084F851002068016821F08A
-:101D500040010160D4E901010843D4E903121143B1
-:101D6000084361690843218B01F400710843E1696C
-:101D70000843216A0843A16A084321680860A069F2
-:101D8000042101EA1040616A084321684860206824
-:101D9000C16921F40061C1616565012084F85100C9
-:101DA000002070BDF0B587B0002402940394049421
-:101DB000059406940068A0F18041B1F598312FD1C7
-:101DC0001848016841F480510160006800F48050B7
-:101DD00001901548016841F002010160016801F0BD
-:101DE00002010191016841F001010160006800F009
-:101DF0000100019008200290022603960325059514
-:101E00000527069702A90948FFF760FB802002908A
-:101E1000039604940595069702A90548FFF756FB1B
-:101E200007B0F0BD443802403038024000040240A0
-:101E3000000002402DE9F84F044690F850000027BA
-:101E40001D461646894601280DD04FF0010B84F837
-:101E500050B0FFF72BFC804694F85100BA46012899
-:101E600004D002278EE00220BDE8F88FB9F1000F00
-:101E70007DD0002E7BD0032084F85100C4F854A0FC
-:101E8000C4F83090A686E686C4F838A0A4F83CA032
-:101E9000A4F83EA0C4F844A0C4F840A0A068B0F5DF
-:101EA000004F04D12068016841F48041016020683E
-:101EB0000168490603D4016841F040010160E0680F
-:101EC000B0F5006F606803D030B3012E24D040E03D
-:101ED00008B1012E1CD1206B21680088C86006E083
-:101EE00020688168890709D5216B0988C160206B4A
-:101EF000801C2063E08E401EE08609E0FFF7D6FBE1
-:101F0000A0EB0800A84202D3681C01D031E07DB3E9
-:101F1000E08E0028E4D11FE0206B21680078087370
-:101F200006E020688168890709D5216B097801736B
-:101F3000206B401C2063E08E401EE08609E0FFF726
-:101F4000B5FBA0EB0800A84202D3681C01D010E04A
-:101F500075B1E08E0028E4D142462946204600F0C3
-:101F6000CDFB08B120206065A06820B107E008E043
-:101F7000FFE7032706E02068C16880680090606D75
-:101F800000B1012784F851B084F850A038466BE7BF
-:101F900010B5401EB0F1807F01D3012010BD4FF07D
-:101FA000E02460610F21601700F005FE0020A061B1
-:101FB00007202061002010BD7047000070B5026846
-:101FC00004461068D168536910F00F0F52D003F027
-:101FD000010501F490762E435FD0C20705D0CA05F3
-:101FE00003D5E26B42F00102E263420705D5DA074E
-:101FF00003D0E26B42F00202E263820705D5DA0702
-:1020000003D0E26B42F00402E263020707D501F05D
-:1020100020022A4303D0E26B42F00802E263E26B43
-:10202000002A33D0800604D5880602D5204600F069
-:102030004FFC20684069E16BC0F38010090700D4B1
-:1020400028B3204600F036FC2068416949061AD5BD
-:10205000416921F040014161606BA0B11B490165FC
-:10206000606BFFF7B0F8002810D0606B016DBDE821
-:1020700070400847830610D58B060ED52046BDE874
-:10208000704000F025BC2046FFF796FF70BD20464B
-:10209000FFF792FF0020E06370BD030606D50B0634
-:1020A00004D52046BDE8704000F0F2BC4006F3D5F0
-:1020B0004806F1D5D168204621F04001D1602021A9
-:1020C00084F8391000F069F970BD0000A5280008F7
-:1020D00070B5040004D094F83900002510B106E072
-:1020E000012070BD84F83850204600F023F82420E9
-:1020F00084F839002068C16821F40051C16020468D
-:1021000000F032FC2068016921F4904101612068EF
-:10211000416921F02A0141612068C16841F4005100
-:10212000C160E563202084F8390084F83A0000207B
-:1021300070BD00002DE9F04786B0044600250195EA
-:102140000295039504950595206882490322022390
-:102150000826A0F1804CBCF5F84C70D0DFF8F8C12F
-:102160000F15A0F180494FF4807A4FF04008B9F57F
-:1021700088397DD0A0F18049B9F58A395BD1DCF886
-:10218000000040F02000CCF80000DCF8000000F077
-:1021900020000090086840F040000860086800F0E7
-:1021A000400000904FF48440019002930492059601
-:1021B00001A96A48FFF78AF96A4E694830604FF012
-:1021C0002069C6F80490B560F56037617561B56146
-:1021D000C6F81CA0356275623046FFF7D7F808B123
-:1021E000FEF73BFB6663B463604E5F483060C6F841
-:1021F0000490C6F80880F56037617561B561F561D6
-:10220000356275623046FFF7C1F808B1FEF725FB6D
-:102210002663B463002211464720FFF7B7FA472030
-:10222000FFF7A6FA52480068016841680091C1684A
-:1022300041F01001C16006B0BDE8F087FFE74D48EE
-:10224000D0F800C04CF0004CC0F800C0006800F0AE
-:1022500000400090086840F010000860086800F036
-:10226000100000900192029301200390049200E07C
-:1022700010E0059601A94048FFF728F93F4800689B
-:10228000016841680091C16841F01001C16006B069
-:10229000BDE8F087DCF8000040F01000CCF800004A
-:1022A000DCF8000000F010000090086840F0020028
-:1022B0000860086800F002000090C02001900293BE
-:1022C00004920720059001A92D48FFF7FFF82E4E34
-:1022D0002C4830604FF00069C6F80490B560F56096
-:1022E00037617561B561C6F81CA03562756230460C
-:1022F000FFF74CF808B1FEF7B0FA6663B463244EFA
-:1023000022483060C6F80490C6F80880F56037614E
-:102310007561B561F561356275623046FFF736F873
-:1023200008B1FEF79AFA2663B4630022114625200D
-:10233000FFF72CFA2520FFF71BFA16480068016802
-:1023400041680091C16841F01001C16006B0BDE86C
-:10235000F087000030380240443802400018024044
-:102360002864024070020020A0640240D0020020D5
-:10237000700100204038024000100240F0000020B0
-:102380000004024040640240B0010020B8640240F2
-:10239000100200203001002070477047FEE7000067
-:1023A00030B585B00024009401940294039414483D
-:1023B000124901604FF48031416084600461047609
-:1023C00080F82040C4620F498162C4600125C56164
-:1023D00080F830404561FEF7F3FA08B1FEF73DFAA8
-:1023E000062000900195029469460548FEF736FAEA
-:1023F000002801D0FEF731FA05B030BD00200140C1
-:10240000280000200100000F10B510480E4901609F
-:102410000321416000218160C1604FF4002202610C
-:102420004FF4401242610176012242768176C176F4
-:1024300001774177FEF797FD002803D0BDE81040F3
-:10244000FEF70BBA10BD00000064004070000020D1
-:1024500008B51548016841F480010160006800F486
-:1024600080000090002211463920FFF78FF93920B3
-:10247000FFF77EF9002211463A20FFF787F93A204C
-:10248000FFF776F9002211464520FFF77FF9452036
-:10249000FFF76EF9002211464620FFF777F9BDE8F5
-:1024A00008404620FFF764B9303802402DE9F04774
-:1024B00086B000240194029403940494059448483F
-:1024C000016841F010010160016801F01001009104
-:1024D000016841F040010160016801F04001009194
-:1024E000016841F002010160016801F00201009100
-:1024F000016841F001010160016801F001010091F2
-:10250000016841F008010160016801F008010091D3
-:10251000016841F080010160016801F080010091D3
-:10252000016841F020010160006800F02000009087
-:102530002C4E00224FF4C0613046FFF7B1F82A4F0D
-:1025400000223C213846FFF7ABF8DFF8A0800022DC
-:102550004FF4FF714046FFF7A3F8DFF89490002294
-:10256000F1144846FFF79CF8DFF888A000224FF4EA
-:1025700080415046FFF794F84FF4C0600190012568
-:1025800002950394049401A93046FEF79FFF3C2076
-:10259000019002950394049401A93846FEF796FF32
-:1025A0004FF4FF70019002950394049401A94046F2
-:1025B000FEF78CFFE802019002950394049401A9B0
-:1025C0004846FEF783FFA803019002950394049404
-:1025D00001A95046FEF77AFF06B0BDE8F08700007B
-:1025E0003038024000040240001C02400018024043
-:1025F000001002400014024010B511480F4901605C
-:102600004FF4827141604FF4004181600021C1604C
-:10261000016141614FF4007282612822C26101624E
-:10262000416281620A21C162FFF77CFB002803D06E
-:10263000BDE81040FEF711B910BD000000300140A8
-:102640009800002010B50C480A4901604FF4E131B0
-:10265000416000218160C16001610C2242618161A1
-:10266000C161FFF735FD002803D0BDE81040FEF73B
-:10267000F4B810BD007C0040F000002010B50D48FB
-:102680000B4901600C49416000218160C1604FF439
-:10269000806202610C2242618161C161FFF718FD15
-:1026A000002803D0BDE81040FEF7D7B810BD0000E9
-:1026B0000010014030010020A086010010B50C4838
-:1026C0000A4901604FF4E131416000218160C1603D
-:1026D00001610C2242618161C161FFF7F9FC0028B0
-:1026E00003D0BDE81040FEF7B8B810BD001401409B
-:1026F00070010020FEE770477047000038B50446BF
-:102700001248134B0068B0FBF3F04FF47A73584350
-:1027100000906068B0F5827F0DD10B4600920022D8
-:102720008021204600F016F870B1606D40F0200066
-:102730006065032038BD009830B1401E00902068CD
-:102740008068C0430006F6D5002038BD0000002098
-:1027500000366E012DE9F0411D4617460E4604462F
-:10276000DDF8188008E0681C06D0FEF79FFFA0EB9C
-:102770000800A8420BD255B12068806836EA0000F4
-:1027800030D00020B842EED10020BDE8F0812068B2
-:10279000416821F0E00141606068B0F5827F0BD1B3
-:1027A000A068B0F5004F02D0B0F5806F04D120686A
-:1027B000016821F040010160A06AB0F5005F09D115
-:1027C0002068016821F4005101602068016841F42B
-:1027D00000510160012084F85100002084F850006D
-:1027E0000320D2E70120CDE77047FEF765BF000068
-:1027F00030B593B00024089409940A940B94019482
-:1028000002940394049405941D48016841F080519A
-:102810000160006800F0805000901A48016841F49F
-:1028200040410160006800F44040009001200690A3
-:102830000004079002250C9580010D9006200E9053
-:10284000A8200F9010950420119006A8FFF7BCF85F
-:1028500008B1FEF702F80F200190029503944FF49F
-:10286000A05004904FF480500590052101A8FEF778
-:10287000BFFF002801D0FDF7F0FF13B030BD00000E
-:1028800040380240007000400448016841F4700183
-:10289000016003494FF000600860704788ED00E078
-:1028A00008ED00E010B5806B0021C185C184FFF701
-:1028B00083FB10BD0168CA6822F49072CA60016887
-:1028C0004A6922F001024A61202180F83A107047DB
-:1028D00010B590F83A10222901D0022010BD81686D
-:1028E000B1F5805F11D00169002901681FD04968E6
-:1028F00001F07F03816A4A1C82620B70C18D491E00
-:102900000904090CC18518D02BE00269816A002AEC
-:102910000268526805D0D2B20A80816A491C81627D
-:10292000ECE7C2F308020A80816A891CF7E74A686B
-:10293000816A4B1C83620A70E0E70168CA6822F072
-:102940002002CA600168CA6822F48072CA60016805
-:102950004A6922F001024A61202180F83A10FFF70B
-:102960001BFD002010BD00002DE9F0410446006869
-:102970000169E26821F44051114301612169A068B5
-:10298000E26908436169114308432168CA6849F252
-:102990000C639A430243CA6020684169A26921F42A
-:1029A000407111434161E069192764253226B0F571
-:1029B000004F354A354920684FF0000806D088425C
-:1029C00001D0904236D1FEF7BDFF35E0884201D0FC
-:1029D000904202D1FEF7B6FF01E0FEF7A3FF616867
-:1029E0004A18A0FB070148EB0803FDF7FDFB014671
-:1029F000B0FBF5F00201B1FBF5F06FF0180358439E
-:102A000001EB800006EBC000B0FBF5F000F0F80031
-:102A100002EB4002B1FBF5F0584301EB800006EBFE
-:102A2000C000B0FBF5F000F007002168104488609A
-:102A3000BDE8F081FEF776FF61688B0F8A00A0FB8E
-:102A40000701FDF7D1FB0146B0FBF5F06FF018026E
-:102A5000504301EB800006EB0010B0FBF5F000F0F6
-:102A6000F002B1FBF5F002EB0012B1FBF5F06FF0F4
-:102A70001803584301EB800006EB0010B0FBF5F0A3
-:102A800000F00F00D1E700000014014000100140E9
-:102A900090F83910212901D0022070478168B1F5E2
-:102AA000805F016A0BD04A1C02620268097851609B
-:102AB000C18C491E0904090CC1840ED017E0098895
-:102AC0000268C1F30801516001690029016A02D05E
-:102AD000491C0162ECE7891CFBE70168CA6822F027
-:102AE0008002CA600068C16841F04001C1600020F6
-:102AF0007047000038B5174D2868016811F0100FB5
-:102B000022D0C16811F0100F1ED0016840680090FB
-:102B1000686B0068016821F001010160686B006862
-:102B2000406884B2202C01D100F0B0FC322C01D1DD
-:102B300001F03AF8696B322009684860686B0068F8
-:102B4000016841F001010160BDE838400148FFF72C
-:102B500035BA00003001002038B5154C20680168F6
-:102B600011F0100F1FD0C16811F0100F1BD00168B9
-:102B700040680090606B0068016821F0010101600D
-:102B8000606B0068406880B2C0F11E0040B200F087
-:102B900049FD616B1E2009684860606B0068016830
-:102BA00041F001010160BDE838400148FFF706BA75
-:102BB00070010020FEE70907090E002804DB00F180
-:102BC000E02080F80014704700F00F0000F1E020D2
-:102BD00080F8141D704702E008C8121F08C1002ABF
-:102BE000FAD170477047002001E001C1121F002A8E
-:102BF000FBD17047D0ED160A184A30EE800ADFED9F
-:102C0000180A10EE101A914201DD30EE600AB5EE9E
-:102C1000C00AF1EE10FA01D230EE200AD0ED180A07
-:102C2000F5EEC00AF1EE10FA06DDF4EEC00AF1EEA0
-:102C300010FA01D2B0EE600AD0ED190AF5EEC00A22
-:102C4000F1EE10FA06DDF4EEC00AF1EE10FA01DD45
-:102C5000B0EE600A80ED160A704700000000B44331
-:102C60000000B44300B58BB000200121CDE906017E
-:102C70000590009001900290039004900E20CDE901
-:102C8000081069460548FDF775FF0448FEF768FA25
-:102C900002210248FDF7EEFE0BB000BD70000020DF
-:102CA00070B51E4E0D46002404EB840106EB411165
-:102CB000098881422DD1FEF7F9FC04EB840106EB73
-:102CC0004114A066A06918B1012801D002281FD1C3
-:102CD000288840BA2081FDF7C5FB9FED111B53ECFE
-:102CE000112BFDF7CDFA9FED101B53EC112BFDF7C7
-:102CF00039FBFDF7C4FBE060688840BA00B200EE23
-:102D0000100AB8EEC00A84ED040AA88840BAA0826E
-:102D100070BD641C142CC7DB70BD0000FC070020D4
-:102D200000000000008076400000000000FFBF406F
-:102D30002DE9F041434C90B0206810B9FEF7B6FC85
-:102D40002060FEF7B3FC2168401A0A2876D33E4A79
-:102D50000DAF002407CA87E807003C4E25464FF018
-:102D6000080809950A9557F82420CDE904580192DE
-:102D700003958DF81850002101EB810006EB4010FF
-:102D80004388934212D1B0F804C0BCF1010F0DD1B9
-:102D900090ED170ABDEEC00A10EE10CA4FEA1C2CC7
-:102DA0008DF824C010EE10CA8DF825C0934212D1C0
-:102DB000B0F804C0BCF1020F0DD190ED170ABDEEC2
-:102DC000C00A10EE10CA4FEA1C2C8DF826C010EE77
-:102DD00010CA8DF827C0934212D1B0F804C0BCF1DC
-:102DE000030F0DD190ED170ABDEEC00A10EE10CA08
-:102DF0004FEA1C2C8DF828C010EE10CA8DF829C09F
-:102E000093420FD18388042B0CD190ED170ABDEEAD
-:102E1000C00A10EE100A000A8DF82A0010EE100AFF
-:102E20008DF82B00491C1429A6DB012309AA01A94E
-:102E30000748FDF731FE641C032C92DB10B0BDE89F
-:102E4000F081000024000020CC440008FC07002092
-:102E500070000020FEF738FCFFF7CAFCFFF726FBE6
-:102E6000FFF7F6FAFFF79CFAFFF7C6FBFFF706FC41
-:102E7000FFF724FCFFF7C8FAFFF7E4FB01223C212F
-:102E80002448FEF70DFC0122D1022348FEF708FC7E
-:102E9000012291032148FEF703FC214C012211027B
-:102EA0002046FEF7FDFB012280212046FEF7F8FBBD
-:102EB000012240212046FEF7F3FB0122202120467B
-:102EC000FEF7EEFB012210212046FEF7E9FB01226E
-:102ED00008212046FEF7E4FB012204212046FEF7EC
-:102EE000DFFB012202212046FEF7DAFB00F090F81A
-:102EF00000F05AFE00F06CFEFFF7B4FE032000F075
-:102F0000DDFB00F07FFD00F0E3FD00F037FEFFF792
-:102F10000FFFF6E7001C02400010024000140240C0
-:102F2000001802402DE9F047002000F02DF8DFF8EE
-:102F3000549000245FF0000609EBC60000EBD400BB
-:102F4000002507784FFA86F8380604EB050041B2F1
-:102F500001D5012200E00022404600F035F8780655
-:102F60006D1C070EEDB2082DEED3761CF6B2802E46
-:102F7000E2D30834E4B2402CDCD3BDE8F04700F0E3
-:102F8000DDB80000CA400008F0B500210D4BFF2657
-:102F90000C46002201280FD003EBC20580B16F5C04
-:102FA000C7F1FF076F54521CD2B2802AF2D9491CD4
-:102FB000C9B20829EDD3F0BD03EBC2056E54F2E7A8
-:102FC0006C54F0E73003002070B5802817D2002938
-:102FD00015DB3F2913DCCB1701EB5375C5F3C70392
-:102FE00025F007050124094E491B8C4006EBC00063
-:102FF000012A05D0C15C022A05D0A143C15470BD8D
-:10300000C15C2143FAE76140F8E70000300300208B
-:1030100070B5494D4FF48064002221462846FEF7E2
-:103020003FFB4FF4FA70FEF73FFA01222146284693
-:10303000FEF736FB0021AE2000F0B0F80021084674
-:1030400000F0ACF80021102000F0A8F8002140208A
-:1030500000F0A4F80021812000F0A0F80021CF208A
-:1030600000F09CF80021A12000F098F80021C82071
-:1030700000F094F80021A62000F090F80021A8208C
-:1030800000F08CF800213F2000F088F80021D320C8
-:1030900000F084F80021084600F080F80021D520D7
-:1030A00000F07CF80021802000F078F80021D92081
-:1030B00000F074F80021F12000F070F80021DA200F
-:1030C00000F06CF80021122000F068F80021DB20ED
-:1030D00000F064F80021402000F060F8002120207A
-:1030E00000F05CF80021022000F058F800218D204B
-:1030F00000F054F80021142000F050F80021A42022
-:1031000000F04CF80021A62000F048F80021AF2084
-:1031100000F044F80021AF2000F040F80020FFF755
-:1031200033FF0021084600F023F8FFF7FBFEBDE85F
-:10313000704000F003B800000004024070B50B4E70
-:1031400000242146002000F013F8002506EBC500FE
-:103150000121005D00F022F86D1CEDB2802DF5D349
-:10316000641CE4B2082CECD370BD000030030020D6
-:1031700010B5801CC4B2B031C8B2002100F00EF806
-:10318000102040EA1410002100F008F804F0F000CC
-:10319000BDE81040002100F001B8000013B5084858
-:1031A0004FF4007309B1012200E000221946FEF736
-:1031B00077FA0A23012269460248FEF73BFE1CBD4E
-:1031C000000402409800002090F8301000291CD123
-:1031D000416891ED000A80ED080A0168D1ED000A0E
-:1031E000C0ED090AD0ED070AB4EEE00AF1EE10FADC
-:1031F00006DCD0ED060AB4EEE00AF1EE10FA01D2D8
-:10320000C0ED080A012180F83010704780ED0D0AEA
-:10321000704710B5044690F83000002864D020684C
-:10322000D0ED001AA06890ED000A70EE610A94EDEE
-:103230000D0AB5EEC00AF1EE10FA13DDB6EE001A73
-:1032400020EE011AF4EEC10AF1EE10FA01DD70EE83
-:10325000C00AB1EE411AF4EEC10AF1EE10FA01D241
-:1032600070EE200A94ED080A94ED041A01EE200A8B
-:1032700084ED080A94ED071AB4EEC10AF1EE10FAD3
-:1032800002DD84ED081A08E094ED062AB4EEC20AC5
-:10329000F1EE10FA01D284ED082A94ED090AD4ED7A
-:1032A000032A31EEC02A94ED080A02EEA00AD4EDFA
-:1032B000050A00EEC20AB4EEC01AF1EE10FA02D20C
-:1032C000B0EE410A08E0D4ED060AF4EEC00AF1EED1
-:1032D00010FA01DDB0EE600A606880ED000AC4ED0E
-:1032E000091AFEF7E3F9A06210BD000010B504460C
-:1032F0002DED028B002084E80E009FED188AB0EEC1
-:10330000602AF0EE402A84F83000F0EE411ADFED3A
-:10331000120AB0EE480A204600F03EF80A20E062A9
-:103320000021204600F01CF8B0EE611AF0EE420ACF
-:10333000B0EE620A204600F075F8FEF7B7F9E16AD0
-:10334000401AA0622046FFF73FFF84ED0D8A204619
-:10335000BDEC028B10BD000000007F4300000000A8
-:1033600090F83020AAB190F838208A4211D090ED20
-:10337000030AB1EE400A80ED030A90ED040AB1EEB3
-:10338000400A80ED040A90ED050AB1EE400A80ED96
-:10339000050A80F838107047B4EEE00AF1EE10FA32
-:1033A0002BDA80ED060AC0ED070A90F830100029EC
-:1033B00023D0416891ED001AB4EEE01AF1EE10FA54
-:1033C00002DDC1ED000A06E0B4EEC01AF1EE10FA1B
-:1033D00001D281ED000A90ED080AD0ED070AB4EEA3
-:1033E000E00AF1EE10FA06DCD0ED060AB4EEE00ACF
-:1033F000F1EE10FA01D2C0ED080A704710B590ED59
-:10340000030A0446B5EEC00AF1EE10FA08D0FEF742
-:103410004DF9A16A401AE16A884201D3012010BD2A
-:10342000002010BDB5EEC00AF1EE10FA2BD3F5EE78
-:10343000C00AF1EE10FA26D3B5EEC01AF1EE10FA7A
-:1034400021D3D0ED0B1ADFED102A80ED030AB8EE80
-:10345000612AC2EE221A81EE212A60EEA10AC0ED95
-:10346000040A80ED052A90F8381001290BD1B1EE3D
-:10347000400A80ED030AB1EE600A80ED040AB1EE65
-:10348000420A80ED050A704700007A442DE9F05F9A
-:103490002DED028BFEF70AF95E49282208605E498D
-:1034A00001F12800FCF7D1FEDFF86CB15A4CABF10A
-:1034B000140B0026BBF80000C0F30A05A5F58065D3
-:1034C00025809BF80100C2089BF8020042EA4012E6
-:1034D000C2F30A02A2F5806262809BF80330800981
-:1034E00040EA83009BF80430521D40EA8320C0F379
-:1034F0000A00A0F58060A0805B089BF805700A2A8E
-:1035000043EAC711C1F30A01A1F58061E18000D847
-:103510006680401D0A2800D8A680491D0A2900D8C7
-:10352000E6802846FCF78DFF9FED3C8B53EC182B73
-:10353000FCF718FFFCF7A3FFA060B4F90200824675
-:10354000FCF77FFF53EC182BFCF70CFFFCF797FF01
-:10355000E060B4F904008146FCF773FF53EC182BCC
-:10356000FCF700FFFCF78BFF2061B4F906008046F2
-:10357000FCF767FF53EC182BFCF7F4FEFCF77FFF1A
-:103580006061B9092176C7F3011161764FF4A56135
-:1035900005F5257558468D4200D926800AF5257215
-:1035A0008A4200D9668009F525728A4200D9A68030
-:1035B00008F525728A4200D9E680C18861830189B5
-:1035C000A1834189E183017B84F82010417B84F849
-:1035D0002110C1896184BBF810004FF42571A0F55A
-:1035E000806000B2A084884205DC4042A084BDEC2B
-:1035F000028BBDE8F09F4FF4257210FB02F043F6FA
-:10360000C61290FBF2F000B2A0848842EFDDA184E4
-:10361000EDE70000100000204407002066666666A3
-:1036200066661A4070B5234D2878B5F80110A528B4
-:103630004CBA3DD1FEF73AF81F490860B5F80500CD
-:1036400043BA042B25D00BDC012B19D01948323892
-:10365000022B1AD0032B2BD1E91D2246001D0BE0B3
-:10366000052B1BD0A3F58073013B1CD0012B1FD170
-:103670001048E91D2246001FBDE87040FCF7E5BD7B
-:103680000C48E91D22463238F6E7E91D2246C01CE7
-:10369000F2E70848E91D22460E38EDE70548E91D26
-:1036A00022460B38E8E70348E91D22460838E3E7DD
-:1036B00070BD0000CA070020140000202DE9F0476B
-:1036C00064282DED068B01D96438C0B2032803D0DD
-:1036D000042801D005287DD1A3A1A648FCF7C7FD89
-:1036E000A44C00256C3C40F20120A561461E2080C0
-:1036F00066800127A7809FEDA08A04F158031A1D58
-:10370000A2F14C0101F10C00B0EE481AF6EE000AED
-:10371000B7EE000A8046FFF7E9FDDFED988AF0EE8C
-:10372000680A9FED979A4046B0EE490AFFF734FECB
-:1037300094A104F58670FCF79AFDB01CC4F8B8504B
-:10374000A4F8A00004F1F8031A1DA2F14C01A4F89A
-:10375000A2604FF0020801F10C00A4F8A480B0EEC2
-:10376000481AF6EE000AB7EE000A8146FFF7BEFDE2
-:10377000F0EE680AB0EE490A4846FFF70DFE84A154
-:1037800004F5D670FCF773FDF01CC4F85851A4F88A
-:10379000400104F5CC731A1DA2F14C01A4F842615A
-:1037A0004FF0030901F10C00A4F84491B0EE481A5F
-:1037B000F6EE000AB7EE000A8246FFF797FDF0EE3C
-:1037C000680AB0EE490A5046FFF7E6FD73A104F51A
-:1037D000137000E0C3E0FCF74AFD301DC4F8F85157
-:1037E000A4F8E00104F50E73A4F8E26104201A1DA8
-:1037F000A4F8E401A2F14C0101F10C00B0EE481A6A
-:10380000F6EE000AB7EE000A0546FFF76FFDF0EE90
-:10381000680AB0EE490A2846FFF7BEFD62A104F52A
-:103820006370FCF724FD701DC4F83873A4F82003FE
-:10383000851FA4F82253A4F824739FED5F0A84ED3A
-:10384000E10A9FED5E0A84EDE00A9FED5D0AB0EEAD
-:10385000481A84EDDE0ADFED5B8A04F55E739FEDA6
-:103860005A9A1A1DA2F1500101F11000F0EE680AF7
-:10387000B0EE490A0646FFF739FDDFED549A3046AF
-:10388000B0EE690AFFF7C2FC9FED51AAF0EE4A0ABA
-:10389000DFED50AA3046B0EE6A0AFFF77DFD4EA17B
-:1038A00004F53B70FCF7E3FCE81DC4F89872A4F83B
-:1038B0008002A4F88252A4F884829FED4B0A84ED22
-:1038C000B90A9FED4A0A84EDB80A9FED490A04F54A
-:1038D00036731A1DA2F1500184EDB60A01F11000F1
-:1038E000B0EE481AF0EE680AB0EE490A0646FFF755
-:1038F000FDFCB0EE690A3046FFF788FCF0EE4A0A9C
-:10390000B0EE6A0A3046FFF747FD3AA104F22C40B8
-:10391000FCF7ADFC40F20720C4F8D883A4F8C0033C
-:1039200004F583631A1DA4F8C253A2F14C01A4F854
-:10393000C49301F10C00B0EE481AF6EE000AB6EEA0
-:10394000000A0446FFF7D2FCBDEC068B2046BDE81A
-:10395000F047DFED2A0A9FED2A0AFFF71DBDBDECF7
-:10396000068BBDE8F087000046524F4E545F4C4531
-:103970004654000068080020000000000000804657
-:10398000000080C646524F4E5420524947485400CA
-:103990004241434B20524947485400004241434B67
-:1039A000204C454654000000544F5552454C4C4560
-:1039B00020504954434800007B9474435C2F924349
-:1039C000B83E88430000C842000048430000B443AA
-:1039D0000060EA460060EAC6544F5552454C4C45DB
-:1039E0002059415700000000856BDD4252389A4350
-:1039F0008FC25043464545444552000000401C4696
-:103A000000401CC610B50E4CE06810B9FDF74EFE24
-:103A1000E060FDF74BFEE168401AB0F57A7F07D908
-:103A2000FDF744FEE0600748416981F400614161AF
-:103A300000F00AF800F036F8BDE8104000F01CB8BD
-:103A4000100000200010024010B5FDF72FFE0849BD
-:103A50000968421A07484FF48071B2F5FA7F01D223
-:103A6000002200E00122BDE81040FDF719BE000071
-:103A7000100000200018024010B5FDF717FE07499E
-:103A80008968411A0648642901D2002200E0012217
-:103A9000BDE810404021FDF703BE000010000020EB
-:103AA0000018024010B5FDF701FE07494968411AA8
-:103AB0000648B1F5FA6F01D2002200E00122BDE80C
-:103AC00010408021FDF7ECBD1000002000180240DE
-:103AD00010B5244C24482DED028BB2EE0E8AD4EDA5
-:103AE000030A80EE880AFFF785F8D4ED020A1E4823
-:103AF00080EE880AA038FFF77DF81B48217EE03071
-:103B0000012904D0022929D0032907D102E09FED21
-:103B1000170A01E09FED160A80ED060AB4F90420A9
-:103B2000B4F90610501800EB40004000511A01EBA8
-:103B3000410100EE100A490000EE901AB8EEC00AEA
-:103B40000C48F8EEE00A80ED160AC0ED3E0A80ED62
-:103B5000660AC0ED8E0ABDEC028B10BD9FED060A11
-:103B6000DAE70000440700201C0B002000000000E2
-:103B700000409C45FC07002000401C4670B5094EE3
-:103B8000002400BF04EB840006EB40151C352846DA
-:103B9000FFF734FC10B12846FFF73BFB641C142CE4
-:103BA000F0DB70BDFC070020074882B000680168A8
-:103BB00041680091C16841F01001C160322203499F
-:103BC000014802B000F018B8300100203007002092
-:103BD000074882B00068016841680091C16841F0FF
-:103BE0001001C1601E220349014802B000F004B870
-:103BF00070010020CA07002070B5044690F83A0012
-:103C0000202801D0022070BD99B192B1A162A28595
-:103C10000020E063134620680A46656B011D2846B4
-:103C2000FDF71EFC2068416941F040014161002020
-:103C300070BD012070BD0000000000000000010206
-:103C4000030406070809000000000102030400063F
-:103C50001016000610160000000000000000000012
-:103C60000000000000003F400000000000000000D5
-:103C70003000400030004000000009000BC03D0053
-:103C80000BC03D00090018C024407FE02240318075
-:103C90000000180024C01B000D803240018003800A
-:103CA0001C4027401C8007400040100060000000BE
-:103CB0000000000000000000000000001F80204005
-:103CC00040200000402020401F800000000009002C
-:103CD00006001F80060009000000040004003F8069
-:103CE000040004000000001000600000000000005C
-:103CF00000000400040004000400040000000000B0
-:103D000000400000000000000000002001C006008C
-:103D10003800400000001F802040204020401F80CD
-:103D20000000000010403FC000400000000018C02C
-:103D300021402240244018400000108020402440B0
-:103D400024401B80000002000D0011003FC0014014
-:103D500000003C80244024402440238000001F8039
-:103D6000244024403440038000003000200027C05D
-:103D70003800200000001B802440244024401B8089
-:103D800000001C0022C0224022401F8000000000D2
-:103D90000000084000000000000000000000046077
-:103DA000000000000000000004000A001100208054
-:103DB0004040090009000900090009000000000056
-:103DC0004040208011000A00040018002000234019
-:103DD0002400180000001F802040274029401F4079
-:103DE0000000004007C039000F0001C00040204023
-:103DF0003FC0244024401B8000001F802040204002
-:103E000020403080000020403FC0204020401F80E4
-:103E1000000020403FC024402E4030C00000204021
-:103E20003FC024402E00300000000F0010802040D2
-:103E300022403380020020403FC0040004003FC005
-:103E40002040204020403FC0204020400000006033
-:103E5000202020203FC02000200020403FC02440E0
-:103E60000B0030C0204020403FC0204000400040B8
-:103E700000C03FC03C0003C03C003FC000002040E9
-:103E80003FC00C4023003FC020001F802040204046
-:103E900020401F80000020403FC024402400180024
-:103EA00000001F802140214020E01FA00000204092
-:103EB0003FC02440260019C0004018C024402440C0
-:103EC000224031800000300020403FC020403000C0
-:103ED000000020003F80004000403F802000200084
-:103EE0003E0001C0070038002000380007C03C0039
-:103EF00007C038000000204039C0060039C020400B
-:103F000000002000384007C038402000000030404A
-:103F100021C02640384020C00000000000007FE0A3
-:103F2000402040200000000070000C000380004092
-:103F300000000000402040207FE000000000000062
-:103F400020004000200000000000001000100010C1
-:103F500000100010001000000000400000000000F1
-:103F60000000000002800540054003C00040200022
-:103F70003FC0044004400380000000000380044070
-:103F800004400640000000000380044024403FC07D
-:103F90000040000003800540054003400000000091
-:103FA00004401FC0244024402000000002E00550CF
-:103FB00005500650042020403FC00440040003C0C8
-:103FC00000400000044027C0004000000000001036
-:103FD0000010041027E00000000020403FC0014016
-:103FE000070004C00440204020403FC00040004083
-:103FF000000007C0040007C0040003C00000044024
-:1040000007C00440040003C00040000003800440D7
-:10401000044003800000041007F0045004400380B3
-:104020000000000003800440045007F0001004402A
-:1040300007C00240040004000000000006400540E4
-:10404000054004C00000000004001F800440004040
-:104050000000040007800040044007C00040040046
-:10406000070004C0018006000400060001C007002C
-:1040700001C006000000044006C0010006C0044064
-:1040800000000410071004E0018006000400000096
-:10409000044005C006400440000000000000040089
-:1040A0007BE040200000000000000000FFF0000066
-:1040B0000000000040207BE0040000000000400001
-:1040C00080004000200020004000000000000000B0
-:1040D00000000000000000000000000000000000E0
-:1040E00000000000000000000000000000000000D0
-:1040F00000000000000000000000000000000000C0
-:1041000000000000000000000000000000000000AF
-:104110000006000000000000001E0000000000007B
-:1041200000DE00000000000000D8000000000000D9
-:1041300000D800000000000000D8000000000000CF
-:1041400000DE00000000000000FE00000000000093
-:1041500000F60000000000000072000000000000F7
-:104160000000000000000000007C000000000000D3
-:1041700000FE00000000000000C60000000000007B
-:1041800000C600000000000000C6000000000000A3
-:1041900000FE000000000000007C000000000000A5
-:1041A0000000000000000000001E000000000000F1
-:1041B00000DE00000000000000D60000000000004B
-:1041C00000D600000000000000D600000000000043
-:1041D00000D600000000000000DE400000000000EB
-:1041E00000FE600000000010006C70000000003055
-:1041F00000007800000000F0007C7C00000007F068
-:1042000000FE7E0000003FF000C67F000001FFF0CE
-:1042100000C67F80000FFFF000C67FC0007FFFF068
-:1042200000FE7FE003FFFFF0007C7FF03FFFFFF028
-:1042300000027FF83FFFFFF000067FFC3FFFFFF02A
-:10424000001E7FFE3FFFFFF000BC7FFF3FFFFFF03F
-:1042500000E07FFFBFFFFF8000F87FFFFFFFFC0053
-:10426000003E7FFFFFFFE000000E7FFFFFFF00002A
-:1042700000B87FFFFFF8000000E07FFFFFF00000C4
-:1042800000FE7FFFFFF00000001E7FFFFFF0000038
-:1042900000027FFFFFF0000000007FEFFFF0020050
-:1042A00000067FE7FFF00200000E7FE3FFF0020050
-:1042B000001C7FE1FFF8030000BA7FE0FFFC030071
-:1042C00000F67FE07FFE038000E67FE03FFF038093
-:1042D00000F67FE03FFF83C0003E7FE03FFFC3C0AA
-:1042E000000E7FE03FFFE3E000027FE03FFFF3E0EE
-:1042F00000007FE03FFFFBF000027FE03FFFFFF0A8
-:1043000000667FE03FFFFFF800F67FE03FFFFFF829
-:1043100000D67FE03FFFFFFC00D67FF07FFFFFFC71
-:1043200000D67FF8FFF7FFFE00D67FFFFFF3FFFE0A
-:1043300000DE3FFFFFE1FFFF008C3FFFFFE0FFCF0C
-:1043400000401FFFFFC07FC780C01FFFFFC03FC3EB
-:1043500080C00FFFFF801FC1C0FE07FFFF000FC01E
-:10436000C0FE03FFFE0007C060C001FFFC0003C0E9
-:1043700020C0007FF00001C00086000F800000C058
-:10438000001600000000004000D600000000000001
-:1043900000D600000000000000D600000000000071
-:1043A00000D600000000000000D600000000000061
-:1043B00000D000000000000000C00000000000006D
-:1043C0000006000000000000001E000000000000C9
-:1043D00000DE00000000000000D800000000000027
-:1043E00000D800000000000000D80000000000001D
-:1043F00000DE00000000000000DE00000000000001
-:1044000000F6000000000000007200000000000044
-:10441000000000000000000000620000000000003A
-:1044200000F600000000000000F6000000000000A0
-:1044300000D600000000000000D6000000000000D0
-:1044400000D600000000000000DE000000000000B8
-:10445000008C0000000000000000000000000000D0
-:10446000000000000000000000000000000000004C
-:10447000000000000000000000000000000000003C
-:10448000000000000000000000000000000000002C
-:10449000000000000000000000000000000000001C
-:1044A000000000000000000000000000000000000C
-:1044B00000000000000000000000000000000000FC
-:1044C00000000000000000000000000000020000EA
-:1044D000FF010000FF020000F84400080000002077
-:1044E00028000000D62B00082045000828000020E6
-:1044F00058180000E62B00080024F400010000001A
-:10450000100000000000000000000000000000009B
-:10451000000000000000000000000000000000009B
+:100280002DE9FE4F804681EA0300C00F0C46009026
+:1002900021F0004123F00045B8EB0200A94105D24E
+:1002A0004046214690461C460B46024623F000403D
+:1002B000104347D0270DC7F30A00C3F30A51029039
+:1002C000401A019040286BDAC3F3130040F4801BFE
+:1002D0000098924620B10023D2EB030A63EB0B0B8C
+:1002E00001985946C0F14002504600F08BF906468D
+:1002F0000D4650465946019A00F0A3F910EB08004C
+:100300006141002487EA115284EAE7731A4340D01E
+:10031000009A62B3019A012A4FEA075215DC001BCA
+:1003200061EB02014FF0004202EA0752CDE90042C0
+:10033000001C41F5801132462B4600F0DAF903B07B
+:10034000BDE8F08F40462146F9E7001B61EB020152
+:10035000001C41F5801300185B412018A2F500171E
+:1003600047EB030140EAD570B6196D4111E06D0805
+:100370004FEA360645EAC0754FEA0752001B61EBAB
+:100380000201001C41F5801149084FEA30000019B4
+:10039000514132462B4603B0BDE8F04F00F09AB908
+:1003A0000098012240000023D0EB020263EBE073CF
+:1003B000009821464FEAE074B8EB000061EB0401BD
+:1003C000E9E783F000435BE781F0004158E72DE95E
+:1003D000FE4F81EA030404F0004421F00041009440
+:1003E0004FF0000B23F0004350EA01045ED052EAC4
+:1003F00003045BD0C3F30A54C1F30A552C44A4F29E
+:10040000F3340194A0FB0254C1F3130141F48011B1
+:10041000C3F3130343F4801301FB024400FB034EB8
+:10042000840A970A44EA815447EA8357A4FB076881
+:1004300002958D0A05FB07854FEA932C04FB0C54AB
+:100440002705029D4FEA065847EA1637B5EB08051F
+:100450006EEB070C870E920E47EA811742EA831271
+:10046000A7FB0201B6EB0B0164EB00042B0D43EA82
+:100470000C335E1844EB1C50DA465146E7FB020190
+:10048000C5F313044FEA0B3343EA14534FEA043223
+:10049000019C43EA0603A4F10C040294009CCDE9FC
+:1004A00000B400F026F903B0BDE8F08F002001464B
+:1004B000F9E72DE9F04D81EA030404F0004B21F047
+:1004C000004514464FF0000A23F0004150EA0502AF
+:1004D00020D054EA01021DD0C5F30A570246C5F3E5
+:1004E0001303C1F31300C1F30A5640F4801543F41B
+:1004F0008013A7EB0608101BD64608F2FD3873EBF5
+:10050000050002D308F1010801E092185B41B8F13F
+:10051000000F03DA00200146BDE8F08D00204FF403
+:100520008011064684460EE0171B73EB050705D3C2
+:10053000121B63EB050306434CEA010C49084FEA22
+:10054000300092185B4150EA0107EDD152EA0300F6
+:1005500012D082EA040083EA0501084305D0101B8B
+:10056000AB4106D20122002306E000224FF00043F7
+:1005700002E06FF0010253101AEB06004CEB085139
+:1005800010EB0A0041EB0B01BDE8F04D00F0A2B802
+:100590000EB5C10F80EAE0700844CA07002140F29E
+:1005A00033438DE80E000A460B4600F0A2F803B074
+:1005B00000BD0EB540F2334102910021CDE900119A
+:1005C0000A460B4600F095F803B000BD01F0004369
+:1005D00030B421F0004150EA010206D00A0DA2F524
+:1005E0006072C1F31301002A02DC30BC00207047A6
+:1005F000440F44EAC104C100E01830BC00EBC25013
+:1006000000F031B8202A04DB203A00FA02F1002081
+:1006100070479140C2F1200320FA03F31943904040
+:100620007047202A04DB203A21FA02F000217047AB
+:1006300021FA02F3D040C2F120029140084319464A
+:100640007047202A06DBCB17203A41FA02F043EA32
+:10065000E07306E041FA02F3D040C2F1200291407B
+:100660000843194670470029A8BF7047401C49003D
+:1006700008BF20F00100704710B4B0FA80FC00FA07
+:100680000CF050EA010404BF10BC704749B1CCF132
+:10069000200421FA04F411FA0CF118BF01212143BE
+:1006A0000843A3EB0C01CB1D4FEA00614FEA102079
+:1006B00042BF002010BC704700EBC350104400291B
+:1006C000A4BF10BC7047401C490008BF20F00100C7
+:1006D00010BC704710B5141E73F1000408DA401CFA
+:1006E00041F1000192185B411A4301D120F0010051
+:1006F00010BD2DE9F04D92469B4611B1B1FA81F241
+:1007000002E0B0FA80F220329046FFF77BFF044609
+:100710000F4640EA0A0041EA0B0153465A46084395
+:1007200013D0114653EA010019D0C8F140025046D7
+:10073000FFF777FF05460E46504659464246FFF7FB
+:1007400061FF084305D0012004E020463946BDE89A
+:10075000F08D0020054346EAE0762C4337430A98A3
+:100760006305E40AA0EB08000022FD0A44EA4754AE
+:100770000A3002D500200146E9E701051019694158
+:10078000DDE9084500196941BDE8F04DA2E7000028
+:10079000064C074D06E0E06840F0010394E80700CE
+:1007A00098471034AC42F6D3FFF704FD804E0008A2
+:1007B000A04E0008464910B54A6822F440324A600B
+:1007C0004A6843681A434A6001684A6822F48072A2
+:1007D0004A6001684A68036942EA03224A60016884
+:1007E0004A6822F040724A6001684A6883681A4386
+:1007F0004A6001688A6822F400628A6001688A6837
+:10080000C3681A438A60816A6FF07062D1420168DE
+:100810008A6822F070628A6001688A680CD0836AF4
+:100820001A438A6001688A6822F040528A6001682F
+:100830008A68C36A1A4301E022F040528A60016864
+:100840008A6822F002028A6001688A68037E42EAAE
+:1008500043028A6090F82010002901684A680FD08E
+:1008600042F400624A6001684A6822F460424A60C9
+:1008700001684A68174C436A04EB43331A4301E0AA
+:1008800022F400624A600168CA6A22F47002CA62F5
+:100890000168CA6A838B104C04EB03531A43CA6283
+:1008A00001688A6822F400728A6001688A6890F898
+:1008B000303042EA43228A6001688A6822F480620A
+:1008C0008A6001688A68406942EA8020886010BDB9
+:1008D0000023014000E0FFFF0000F0FFFEE7000002
+:1008E000014800F0FCBA000070000020014800F050
+:1008F000F6BA000070000020014800F031BD000091
+:10090000B0020020014800F02BBD0000F0010020E3
+:10091000014800F025BD000010030020014800F050
+:100920001FBD00005002002001681823CAB2103A0F
+:10093000B2FBF3F2054B6FF30901032A9B5CC3651D
+:1009400000D9091D8165084670470000F64500087A
+:1009500010B5014600208B698A6A4FF0C07453B10C
+:10096000B3F5005F15D072B1012A0CD0022A0AD06B
+:10097000032A09D104E01AB1012A06D0022A03D1C0
+:10098000C96AC90100D5012010BDC96AA142FAD0C7
+:1009900010BD002AF7D0012AF2D0022AF3D0032A90
+:1009A000F3D010BD30B50468256825F48025256096
+:1009B000046863608368402B036803D09960006813
+:1009C000C26030BD9A600068C16030BD704770473A
+:1009D00078B50024009490F83C20012A19D0012217
+:1009E00080F83C200A6807230568092A13D9EE68B5
+:1009F0000A3A02EB420293409E43EE600B788A680B
+:100A00000A3B03EB43039A400368DD682A43DA603C
+:100A100010E0022078BD2E6902EB420293409E4313
+:100A20002E610B788A6803EB43039A4003681D69C3
+:100A30002A431A614A681F23072A13D205686E6B7E
+:100A4000521E02EB820293409E436E630A8893B269
+:100A50000A79521E02EB820293400268556B2B43C7
+:100A6000536327E005680D2A12D22E6BD21F02EBCA
+:100A7000820293409E432E630B790A88DB1F92B259
+:100A800003EB83039A4003681D6B2A431A6311E04A
+:100A9000EE6A0D3A02EB820293409E43EE620B79BE
+:100AA0000A880D3B92B203EB83039A400368DD6A28
+:100AB0002A43DA621B4B0568194A9D420AD10D6828
+:100AC000122D07D1556825F400055560556845F489
+:100AD0008005556005689D421DD1134D0B68AB42E2
+:100AE00001D0112B17D1536823F48003536053684E
+:100AF00043F4000353600968A9420CD10B490C4A26
+:100B00000968B1FBF2F101EB8101490000E0491EE7
+:100B100000910029FBD180F83C40002078BD000006
+:100B200000230140002001401200001000000020BE
+:100B300040420F0070B504004FF0000503D0206C58
+:100B4000002610B107E0012070BD204600F01CF81F
+:100B5000666484F83C60206CC00610D4206C20F4DD
+:100B6000885040F0020020642046FFF723FE6664B0
+:100B7000206C20F0020040F00100206400E001251C
+:100B800084F83C60284670BD00B587B00021029112
+:100B900003910491059106910068A0F18041B1F59F
+:100BA000903119D10D48016841F4807101600068ED
+:100BB00000F4807001900A48016841F00101016071
+:100BC000006800F001000190402002900320039093
+:100BD00002A9044800F034FD07B000BD44380240CB
+:100BE000303802400000024090F82020012A07D04F
+:100BF000022A05D0416A41F48021416201207047F8
+:100C0000006842690A43426100207047F0B590F8DD
+:100C100020500468A468012D05D0022D03D0416A3C
+:100C200041F480215DE014F0406F01D1E50055D51D
+:100C3000C4F30164022C03D9416A41F4000150E07D
+:100C40000125A5401D608D684FF4C0739DB1CE682D
+:100C500035434E6845EAC605066803EB0417F551AF
+:100C60004FF4C275076805EB04150E697E51097DC6
+:100C7000012905D009E00E88CD6845EA4655EBE725
+:100C800001684E5946F480764E511179D5795679DE
+:100C900041EA056195792D0445EA062529434FF47B
+:100CA000C676056806EB0416A9511178D57841EA95
+:100CB0000561957852782D0445EA022211434FF4DC
+:100CC000C475026805EB04155151006803EB04116B
+:100CD000425842F0010242500020F0BD416A41F406
+:100CE000001141620120F0BD10B590F82020012ACA
+:100CF00007D0022A05D0416A41F4802141620120D7
+:100D000010BD3B48D0F8002242F00102C0F800229A
+:100D1000D0F8002222F47C52C0F80022D0F8002241
+:100D20004B6A42EA0322C0F800220A7D02F01F0348
+:100D300001229A40D0F81C329343C0F81C32CB6990
+:100D4000B3B9D0F80C329343C0F80C328C894B689D
+:100D500064F31F434C6900EBC404C4F840320C89AF
+:100D60000B6864F31F434C6900EBC404C4F84432BD
+:100D7000CB69012B16D1D0F80C321343C0F80C32DA
+:100D80000C884B6864F31F434C6900EBC404C4F83F
+:100D900040320C89CB6864F31F434C6900EBC404F8
+:100DA000C4F844328B69002BD0F804320ED01343C0
+:100DB000C0F804320B69002BD0F8143208D013436A
+:100DC000C0F81432096A012904D008E09343EFE720
+:100DD0009343F5E7D0F81C121143C0F81C12D0F869
+:100DE000001221F00101C0F80012002010BD000027
+:100DF00000640040704730B590F82040012C05D0C9
+:100E0000022C03D0416A41F480215DE0046800298E
+:100E100055D02469A40754D04FF4D874056804EB66
+:100E200001142D5915F00405956005682D594ED013
+:100E3000ED08556005682C5904F00204D4604FF4A5
+:100E4000DA74056804EB01142D5905F00F051561DE
+:100E500005682D59C5F30725956105682C59240CA3
+:100E600054614FF4DC72046802EB0112A4581C7048
+:100E70000468A458240A5C700468A458240C9C706C
+:100E80000468A258120EDA704FF4DE72046802EBA6
+:100E90000112A4581C710468A458240A5C710468E7
+:100EA000A458240C9C710468A258120EDA710068D0
+:100EB00081B1016941F020010161002030BDE46889
+:100EC000A8E7416A41F400114162012030BD6D0D77
+:100ED0001560AFE7C16841F02001C160EDE72DE981
+:100EE000F05F0546006800244669D0F804908768E2
+:100EF000D0F80CB0D0F810A0D0F81880F10748D086
+:100F0000F90714D001218160B80703D5284600F005
+:100F10000EFA0CE0780702D54FF4006407E03807BA
+:100F200002D54FF4805402E0284600F0FFF9F8059E
+:100F300016D529684FF480708860B80503D5284617
+:100F400000F0F7F90CE0780502D544F4005407E00E
+:100F5000380502D544F4804402E0284600F0E8F960
+:100F6000F80316D529684FF480308860B80303D59C
+:100F7000284600F0E0F90CE0780302D544F4004480
+:100F800007E0380302D544F4803402E0284600F03C
+:100F9000D1F9300707D55FEACB6004D52968102066
+:100FA00044F40074C86070074FF0080707D55FEA83
+:100FB0000B7004D52868C760284600F05FF9B007B9
+:100FC00006D52868C068800702D0284600F058F986
+:100FD000700607D55FEACA6004D52968102044F47A
+:100FE00080640861B00607D55FEA0A7004D52868F6
+:100FF0000761284600F06AF9F00606D528680069FE
+:10100000800702D0284600F062F9B00308D55FEAF5
+:10101000C96005D5296810204860284600F058F9B5
+:10102000F00307D55FEA097004D5286847602846B1
+:1010300000F082F9300446D55FEA497040D5F005EA
+:1010400004D55FEAC87001D044F00104B00504D5AE
+:101050005FEA887001D544F00204700504D55FEAA8
+:10106000487001D544F00404300529D518F0700FFC
+:1010700026D008F07000402815D006DC102809D0D2
+:1010800020280AD0302816D10AE050280ED0602837
+:1010900011D10EE044F008040DE044F010040AE021
+:1010A00044F0200407E044F0400404E044F08004ED
+:1010B00001E044F480742868816921F07001816145
+:1010C000296804204860002C05D0686A20436862C3
+:1010D0002846FFF78FFEBDE8F09F70B5040003D0EF
+:1010E00094F8200010B104E0012070BD204600F00B
+:1010F00081F82068016821F00201016000F090FB96
+:101100000546052604E000F08BFB401B0A2811D899
+:10111000206840688007F6D42068016841F001012A
+:10112000016000F07DFB05460BE000F079FB401B01
+:101130000A2806D9606A40F40030606284F82060B2
+:10114000D2E720684068C007EFD0207E01282068E1
+:1011500001683DD021F080010160607E0128206897
+:10116000016838D021F040010160A07E012820688C
+:10117000016833D021F020010160E07E0128206861
+:1011800001682ED041F010010160207F0128206805
+:10119000016829D021F008010160607F01282068E2
+:1011A000016824D021F004010160D4E90201084360
+:1011B000D4E90412114308436168491E08432168B9
+:1011C000C86100206062012084F82000002070BD0A
+:1011D00041F08001C0E741F04001C5E741F0200146
+:1011E000CAE721F01001CFE741F00801D4E741F050
+:1011F0000401D9E700B587B0002102910391049161
+:10120000059106910068A0F18041B1F5C8412CD14B
+:101210001748016841F000710160006800F000703B
+:1012200001901448016841F008010160006800F075
+:1012300008000190032002900221039105900920EB
+:10124000069002A90C4800F0FBF900221146132079
+:1012500000F056FB132000F045FB0022114614203D
+:1012600000F04EFB142000F03DFB07B000BD000075
+:101270004038024030380240000C02407047000005
+:1012800010B58AB004462068D0F8B001400D019036
+:101290002068A0F18041B1F5C84113D10198A0F2B6
+:1012A000012010280ED800F0BBFA0749086008ABEF
+:1012B00001AA00212046FFF79EFD019808A900B26F
+:1012C00002F0C8F80AB010BD200000207047704737
+:1012D0007047000070B5044690F82000012804D043
+:1012E000606A40F40020606218E0022084F8200068
+:1012F0002068016821F00101016000F091FA0546C3
+:101300000EE000BF00F08CFA401B0A2808D9606A82
+:1013100040F400306062052084F82000012070BD98
+:1013200020684068C007EDD1606270BD70477047AB
+:101330007047704770477047704790F83510022922
+:1013400003D08021416501207047052180F83510C8
+:101350000068016821F00101016000207047000071
+:101360002DE9F84304464FF00009CDF8009063489A
+:101370004FF41651A56D0068B0FBF1F72E6894F894
+:101380005C10082000FA01F131420FD021680A6890
+:1013900052070BD50A6822F004020A6094F85C1028
+:1013A0008840A860606D40F00100606594F85C10B2
+:1013B0004FF0010808FA01F0304208D0216849696D
+:1013C000090604D5A860606D40F00200606594F8DD
+:1013D0005C1004208840304208D0216809688907E1
+:1013E00004D5A860606D40F00400606594F85C105E
+:1013F00010208840304218D021680968090714D5A8
+:10140000A86020680168490304D50068000308D576
+:10141000A16C07E00168C90503D4016821F0080147
+:101420000160216C09B12046884794F85C102020A7
+:101430008840304231D021680968C9062DD5A8609E
+:1014400094F8350005282068016806D0490347D57F
+:10145000006800031DD4616C1CE021F016010160DE
+:101460002068416921F080014161206C08B9A06CBD
+:1014700020B12068016821F00801016094F85C1037
+:101480003F208840A86084F8349084F83580216D2E
+:101490001FE0E16B09B120468847606D00282BD022
+:1014A000606DC00714D0052084F8350020680168FD
+:1014B00021F0010101600098401C0090B84203D85F
+:1014C00020680068C007F6D184F8349084F835802D
+:1014D000E16C002910D001B02046BDE8F043084778
+:1014E0000168C905D5D4016821F01001016084F8B4
+:1014F000349084F83580CCE7BDE8F8830000002004
+:101500002DE9F041044600F08BF906465CB1002558
+:1015100084F83450022084F835002068016821F0F6
+:10152000010101600DE00120BDE8F08100F078F9D3
+:10153000801B052805D920206065032084F835002C
+:10154000F2E720680068C007F0D1226811682048DF
+:101550000140D4E901031843D4E903363343184367
+:1015600063691843A3691843E3691843236A18435E
+:101570000843616A042903D1D4E90B1319430843D2
+:10158000106020684069666A20F0070130460E430B
+:10159000012704280CD1A06A0643E06A40B1204626
+:1015A000FFF7D6F920B14020606584F83570BAE7BE
+:1015B000206846612046FFF7B7F994F85C203F2188
+:1015C00091408160656584F835700020ACE70000CB
+:1015D0003F8010F070B5044690F8340000250128D3
+:1015E0000CD0012084F8340094F835600020012EDE
+:1015F00006D084F834000225284670BD022070BD54
+:10160000022684F8356060652046FFF7CBF9206834
+:10161000016841F001010160EEE7000070B5044689
+:1016200000F0FEF80546601C02D00448007804442F
+:1016300000F0F6F8401BA042FAD370BD0400002071
+:101640002DE9F84F00224FF0010803254FF00F0E4F
+:101650000B6808FA02F42340A3426ED14E68012EB3
+:1016600005D0022E03D0112E01D0122E12D1866881
+:101670004FEA420C05FA0CF7BE43CF6807FA0CF7A5
+:10168000374387604668A6430C79C4F3001494403E
+:1016900034434460C668570005FA07FC8C6826EAA4
+:1016A0000C06BC403443C4604C68022C01D0122CA0
+:1016B00013D1D40800EB8404A346D4F82090540737
+:1016C0004FEAD46A0EFA0AF629EA06090E6906FA02
+:1016D0000AF646EA0906CBF8206004680E7924EA87
+:1016E0000C0406F00306BE40264306604C68E40086
+:1016F0006FD53B4C266846F480462660246822F06D
+:10170000030604F480440094364C3444A446D4F8D0
+:1017100008489607360F0EFA06F7BC43324FB84218
+:1017200001D100272EE0314FB84201D1012729E035
+:101730002F4FB84202D1022724E04AE02D4FB84291
+:1017400001D103271EE02C4FB84201D1042719E034
+:101750002A4FB84201D1052714E0294FB84201D1E0
+:1017600006270FE0274FB84201D107270AE0264F8E
+:10177000B84201D1082705E0244FB84201D109271A
+:1017800000E00A27B7402743CCF80878204E346899
+:101790004F689C43FF0300D51C4334601C4E361D2C
+:1017A00034684F689C43BF0300D51C433460184E17
+:1017B000083634684F689C43FF0200D51C433460F0
+:1017C000134E0C3634684F689C43BF0200D51C434F
+:1017D0003460521C102AFFF43BAFBDE8F88F0000C4
+:1017E0004438024000300140000002400004024042
+:1017F00000080240000C02400010024000140240A9
+:1018000000180240001C0240002002400024024058
+:10181000003C01400AB1816170470904FBE7000008
+:101820000148806870470000040000200248816879
+:101830000278114481607047040000200B4810B505
+:10184000016841F400710160016841F48061016048
+:10185000016841F480710160032000F071F80020FC
+:1018600000F006F800F024F8002010BD003C024013
+:1018700070B50D4D04464FF47A712878B1FBF0F045
+:101880000A490968B1FBF0F000F03CFC48B9102CA3
+:1018900007D200222146501E00F032F800206C6072
+:1018A00070BD012070BD0000040000200000002079
+:1018B00081B00A48016841F480410160006800F489
+:1018C000804000900648016841F080510160006846
+:1018D00000F08050009001B0704700004438024092
+:1018E00040380240002809DB00F01F02012191402E
+:1018F0004009800000F1E020C0F8001170470000AE
+:10190000F0B40E4B1B680C46C3F30223C3F107056A
+:10191000042D00D90425191D072901D2002300E058
+:10192000DB1E012606FA05F1491E214099409E4022
+:10193000761E16403143F0BC01F017BD0CED00E0FF
+:10194000064900F0070208684FF6FF03184040EA16
+:101950000220034A10430860704700000CED00E0CD
+:101960000000FA052DE9F0470E46050065D0DFF8C6
+:101970001481D8F80000F7B200F00F00B04207D28F
+:1019800088F80070D8F8000000F00F00B04254D181
+:1019900028683D4C810712D5400703D5206840F4E4
+:1019A000E05020602878000703D5206840F46040AC
+:1019B00020602068A96820F0F000084320602878A3
+:1019C000C0072DD0304968680839012812D0022894
+:1019D00013D0032811D00968890700292DDA21685E
+:1019E00021F0030101432160FFF71AFF814641F214
+:1019F000883A0EE009688903EFE709688901ECE796
+:101A0000FFF70EFFA0EB0901514502D90320BDE805
+:101A1000F0872068696800F00C00B0EB810FEFD10F
+:101A2000D8F80010404601F00F01B14207D9077005
+:101A3000006800F00F00B04201D00120E7E72878ED
+:101A4000400705D52068E96820F4E050084320608D
+:101A50002878000706D52068296920F4604040EA0C
+:101A6000C100206000F038F82168084AC1F3031172
+:101A7000515CC8400649086006480068FFF7F8FE58
+:101A80000020C4E7003C024008380240DE45000860
+:101A9000000000200800002004480549006809688B
+:101AA000044AC1F38221515CC84070470000002005
+:101AB00008380240EE4500080448054900680968F6
+:101AC000044AC1F34231515CC84070470000002015
+:101AD00008380240EE450008154810B5006810F0BF
+:101AE0000C02144813D01449042A0FD0082A0ED12E
+:101AF0000F4C241F2268236802F03F025B0207D5C7
+:101B00002068C0F38810A0FB010106E0084610BD64
+:101B10002168C1F38811A1FB00010023FEF764FBDB
+:101B20002168C1F30141491C4900B0FBF1F010BD2F
+:101B3000083802400024F400001BB7002DE9F84FDC
+:101B400004006ED02078DFF83C93C007A9F10405AB
+:101B50004AD009F104000168C1F38101012908D0CC
+:101B60000068C0F3810002280AD1D9F800004002C1
+:101B700006D52868800337D560680028E1D033E0B7
+:101B80006068B0F5803F10D0B0F5A02F286810D065
+:101B900020F480302860286820F480202860606865
+:101BA000A8B1FFF73DFE06460DE0286840F48030FE
+:101BB000F4E740F480202860F7E700BFFFF730FE2D
+:101BC000801B642873D828688003F7D50CE0FFF7E2
+:101BD00027FE064605E000BFFFF722FE801B6428B3
+:101BE000F0D828688003F7D42078DFF89C8280073B
+:101BF0004FF0000A3ED5A348001D016811F00C0FFC
+:101C000008D00068C0F3810002280BD1D9F8000089
+:101C1000400207D42868800716D5E068012800D163
+:101C200012E02BE1E068B8B10120C8F80000FFF72E
+:101C3000F7FD064605E000BFFFF7F2FD801B022816
+:101C4000C0D828688007F7D52868216920F0F800F7
+:101C500040EAC10028600DE0C8F800A0FFF7E0FDF1
+:101C6000064604E0FFF7DCFD801B02281FD8286829
+:101C70008007F7D42078000722D5824E8348616917
+:101C8000703671B101210160FFF7CAFD074604E01B
+:101C9000FFF7C6FDC01B022809D830688007F7D5BA
+:101CA0000EE0C0F800A0FFF7BBFD074605E082E0AC
+:101CB000FFF7B6FDC01B02287DD830688007F7D437
+:101CC0002078400768D5DFF8BCB100270BF13C0B4A
+:101CD000DBF80000C0000BD4DBF8001041F08051AD
+:101CE000CBF80010DBF80000012700F080500090D6
+:101CF000674E3068C00510D4306840F480703060A2
+:101D0000FFF78EFD009005E0FFF78AFD0099401A6D
+:101D1000022850D83068C005F6D55A4EA0686C36F7
+:101D200001280FD00528306810D020F00100306065
+:101D3000306820F004003060A068B8B1FFF770FD93
+:101D400000900FE0306840F00100F4E740F004003C
+:101D50003060F7E7FFF764FD0099411A41F28830DF
+:101D6000814266D830688007F4D50EE0FFF758FD51
+:101D7000009007E0FFF754FD0099411A41F28830C6
+:101D8000814256D830688007F4D42FB1DBF80010B8
+:101D900021F08051CBF80010A069C8B33949091D62
+:101DA0000968C1F3810102294AD00228504607D0B0
+:101DB000C8F8600000E03CE0FFF732FD04463BE07D
+:101DC0004746C8F86000FFF72BFD064605E000BF58
+:101DD000FFF726FD801B02282BD828688001F7D446
+:101DE000D4E907010843A16A2A4A490802EB0141E4
+:101DF000626A41EA8211084394F82C1040EA0161BA
+:101E0000C9F8001001203866FFF70AFD044606E015
+:101E100036E000BFFFF704FD001B022809D8286840
+:101E20008001F7D52CE000BFFFF7FAFC001B022869
+:101E300002D90320BDE8F88F28688001F4D41FE0A0
+:101E40000128F7D0D9F80000E26900F4800191423E
+:101E500014D1226A00F03F0191420FD147F6C071C0
+:101E6000626A0140914209D1A26A00F44031914274
+:101E700004D1E16A00F07060884201D00120D9E706
+:101E80000020D7E70438024000004742800E474256
+:101E9000007000400000FFFF70B5040005D0002571
+:101EA000A56294F8510010B106E0012070BD84F8DD
+:101EB0005050204600F030F8022084F8510020688D
+:101EC000016821F040010160D4E901010843D4E92F
+:101ED00003121143084361690843218B01F4007127
+:101EE0000843E1690843216A0843A16A084321685D
+:101EF0000860A069042101EA1040616A0843216872
+:101F000048602068C16921F40061C16165650120F4
+:101F100084F85100002070BDF0B587B00024029411
+:101F200003940494059406940068A0F18041B1F5EF
+:101F300098312FD11848016841F480510160006840
+:101F400000F4805001901548016841F002010160E1
+:101F5000016801F002010191016841F00101016095
+:101F6000006800F00100019008200290022603960C
+:101F7000032505950527069702A90948FFF760FB89
+:101F800080200290039604940595069702A90548BF
+:101F9000FFF756FB07B0F0BD44380240303802402E
+:101FA00000040240000002402DE9F84F044690F87A
+:101FB000500000271D461646894601280DD04FF0D7
+:101FC000010B84F850B0FFF72BFC804694F85100C9
+:101FD000BA46012804D002278EE00220BDE8F88F1F
+:101FE000B9F1000F7DD0002E7BD0032084F8510082
+:101FF000C4F854A0C4F83090A686E686C4F838A089
+:10200000A4F83CA0A4F83EA0C4F844A0C4F840A0A2
+:10201000A068B0F5004F04D12068016841F4804108
+:10202000016020680168490603D4016841F040015D
+:102030000160E068B0F5006F606803D030B3012E36
+:1020400024D040E008B1012E1CD1206B216800880B
+:10205000C86006E020688168890709D5216B098876
+:10206000C160206B801C2063E08E401EE08609E08A
+:10207000FFF7D6FBA0EB0800A84202D3681C01D0F2
+:1020800031E07DB3E08E0028E4D11FE0206B2168B1
+:102090000078087306E020688168890709D5216BFC
+:1020A00009780173206B401C2063E08E401EE0869F
+:1020B00009E0FFF7B5FBA0EB0800A84202D3681CBB
+:1020C00001D010E075B1E08E0028E4D142462946E7
+:1020D000204600F0B9FD08B120206065A06820B15D
+:1020E00007E008E0FFE7032706E02068C168806892
+:1020F0000090606D00B1012784F851B084F850A0C1
+:1021000038466BE710B5401EB0F1807F01D3012047
+:1021100010BD4FF0E02460610F21601701F025F938
+:102120000020A06107202061002010BD10B590F8AC
+:102130003C20012A22D0012280F83C20CA688C6809
+:1021400022F4407222434C6822F4806222430C68DD
+:1021500022F4006222430C6922F4805222434C692B
+:1021600022F400522243C969002322F480420A4328
+:1021700001684A6480F83C30002010BD022010BD88
+:1021800070B590F83C20012A32D0012480F83C4000
+:10219000022280F83D2003685A689D6822F070068C
+:1021A0000A6832435A60134B02689A4214D0B2F163
+:1021B000804F11D0104B9A420ED0104B9A420BD048
+:1021C0000F4B9A4208D00F4B9A4205D00E4B9A42C1
+:1021D00002D00E4B9A4204D1496825F0800319437E
+:1021E000916080F83D40002180F83C10084670BDA9
+:1021F000022070BD000001400004004000080040C3
+:10220000000C004000040140004001400018004064
+:1022100000B587B0002102910391049105910691C8
+:102220000068A0F18041B1F5803113D10A480168FE
+:1022300041F001010160006800F0010001904FF4DD
+:1022400040700290022003900120069002A90348EA
+:10225000FFF7F6F907B000BD303802400000024039
+:1022600070B5044690F83C000D4601280DD00126BB
+:1022700084F83C60022084F83D0042B1042A18D062
+:10228000082A2AD00C2A4DD139E0022070BD2068DE
+:1022900000F020FE2068816941F00801816120681A
+:1022A000816921F004018161206881692A691143F3
+:1022B00011E0206800F03EFE2068816941F4006171
+:1022C00081612068816921F4806181612068816970
+:1022D0002A6941EA0221816124E0206800F060FE61
+:1022E0002068C16941F00801C1612068C16921F01D
+:1022F0000401C1612068C1692A69114311E02068A5
+:1023000000F082FE2068C16941F40061C16120686B
+:10231000C16921F48061C1612068C1692A6941EA0B
+:102320000221C16184F83D60002084F83C0070BD4A
+:1023300010B5040003D094F83D0010B107E001206F
+:1023400010BD002084F83C00204600F00DF802206B
+:1023500084F83D00211D206800F04AFD012084F82A
+:102360003D00002010BD000081B00068A0F1804158
+:10237000B1F5803108D10548016841F001010160E3
+:10238000006800F00100009001B07047443802403E
+:1023900010B504460068012200F08EFD0B4920684C
+:1023A000884202D00A49884203D1416C41F400417D
+:1023B00041642068816801F00701062903D00168A3
+:1023C00041F001010160002010BD0000000001404B
+:1023D000000401407047000070B5026804461068B0
+:1023E000D168536910F00F0F52D003F0010501F4CA
+:1023F00090762E435FD0C20705D0CA0503D5E26BA5
+:1024000042F00102E263420705D5DA0703D0E26B2E
+:1024100042F00202E263820705D5DA0703D0E26BDD
+:1024200042F00402E263020707D501F020022A43CA
+:1024300003D0E26B42F00802E263E26B002A33D081
+:10244000800604D5880602D5204600F01BFE2068D1
+:102450004069E16BC0F38010090700D428B320461F
+:1024600000F002FE2068416949061AD5416921F051
+:1024700040014161606BA0B11B490165606BFEF7D3
+:102480005CFF002810D0606B016DBDE8704008470C
+:10249000830610D58B060ED52046BDE8704000F0AF
+:1024A000F1BD2046FFF796FF70BD2046FFF792FF73
+:1024B0000020E06370BD030606D50B0604D5204658
+:1024C000BDE8704000F0BEBE4006F3D54806F1D529
+:1024D000D168204621F04001D160202184F83910D4
+:1024E00000F069F970BD00005930000870B50400B3
+:1024F00004D094F83900002510B106E0012070BD29
+:1025000084F83850204600F023F8242084F839005D
+:102510002068C16821F40051C160204600F0FEFD32
+:102520002068016921F4904101612068416921F02E
+:102530002A0141612068C16841F40051C160E5632E
+:10254000202084F8390084F83A00002070BD000093
+:102550002DE9F04786B004460025019502950395C4
+:102560000495059520688249032202230826A0F1DC
+:10257000804CBCF5F84C70D0DFF8F8C10F15A0F115
+:1025800080494FF4807A4FF04008B9F588397DD002
+:10259000A0F18049B9F58A395BD1DCF8000040F040
+:1025A0002000CCF80000DCF8000000F020000090D3
+:1025B000086840F040000860086800F040000090A3
+:1025C0004FF48440019002930492059601A96A4851
+:1025D000FFF736F86A4E694830604FF02069C6F858
+:1025E0000490B560F56037617561B561C6F81CA0EF
+:1025F000356275623046FEF783FF08B1FEF7E7F9F2
+:102600006663B463604E5F483060C6F80490C6F8F5
+:102610000880F56037617561B561F5613562756295
+:102620003046FEF76DFF08B1FEF7D1F92663B463BB
+:10263000002211464720FFF763F94720FFF752F9C0
+:1026400052480068016841680091C16841F010017A
+:10265000C16006B0BDE8F087FFE74D48D0F800C084
+:102660004CF0004CC0F800C0006800F00040009042
+:10267000086840F010000860086800F01000009042
+:102680000192029301200390049200E010E005966D
+:1026900001A94048FEF7D4FF3F480068016841683F
+:1026A0000091C16841F01001C16006B0BDE8F0873B
+:1026B000DCF8000040F01000CCF80000DCF800006E
+:1026C00000F010000090086840F002000860086800
+:1026D00000F002000090C0200190029304920720B5
+:1026E000059001A92D48FEF7ABFF2E4E2C48306017
+:1026F0004FF00069C6F80490B560F5603761756108
+:10270000B561C6F81CA0356275623046FEF7F8FE6A
+:1027100008B1FEF75CF96663B463244E224830606A
+:10272000C6F80490C6F80880F56037617561B56138
+:10273000F561356275623046FEF7E2FE08B1FEF7DC
+:1027400046F92663B463002211462520FFF7D8F826
+:102750002520FFF7C7F81648006801684168009116
+:10276000C16841F01001C16006B0BDE8F08700000B
+:1027700030380240443802400018024028640240C9
+:10278000B0020020A064024010030020B00100202D
+:102790004038024000100240300100200004024096
+:1027A00040640240F0010020B86402405002002062
+:1027B0007001002070477047FEE7000030B585B01B
+:1027C0000024009401940294039414481249016077
+:1027D0004FF48031416084600461047680F82040C9
+:1027E000C4620F498162C4600125C56180F8304030
+:1027F0004561FEF79FF908B1FEF7E9F80620009061
+:102800000195029469460548FEF7E2F8002801D0D8
+:10281000FEF7DDF805B030BD0020014028000020A3
+:102820000100000F10B510480E49016003214160FE
+:1028300000218160C1604FF4002202614FF4401218
+:1028400042610176012242768176C1760177417735
+:10285000FEF743FC002803D0BDE81040FEF7B7B8F0
+:1028600010BD0000006400407000002008B515484D
+:10287000016841F480010160006800F4800000906C
+:10288000002211463920FFF73BF83920FFF72AF8DC
+:10289000002211463A20FFF733F83A20FFF722F8DA
+:1028A000002211464520FFF72BF84520FFF71AF8C4
+:1028B000002211464620FFF723F8BDE808404620D5
+:1028C000FFF710B8303802402DE9F04786B00024F9
+:1028D000019402940394049405944848016841F0DB
+:1028E00010010160016801F010010091016841F0E0
+:1028F00040010160016801F040010091016841F070
+:1029000002010160016801F002010091016841F0DB
+:1029100001010160016801F001010091016841F0CD
+:1029200008010160016801F008010091016841F0AF
+:1029300080010160016801F080010091016841F0AF
+:1029400020010160006800F0200000902C4E002261
+:102950004FF4C0613046FEF75DFF2A4F00223C2154
+:102960003846FEF757FFDFF8A08000224FF4FF71D2
+:102970004046FEF74FFFDFF894900022F1144846DE
+:10298000FEF748FFDFF888A000224FF48041504650
+:10299000FEF740FF4FF4C0600190012502950394BB
+:1029A000049401A93046FEF74BFE3C2001900295AD
+:1029B0000394049401A93846FEF742FE4FF4FF70D9
+:1029C000019002950394049401A94046FEF738FE55
+:1029D000E802019002950394049401A94846FEF789
+:1029E0002FFEA803019002950394049401A9504678
+:1029F000FEF726FE06B0BDE8F08700003038024042
+:102A000000040240001C0240001802400010024076
+:102A10000014024010B511480F4901604FF4827153
+:102A200041604FF4004181600021C160016141615A
+:102A30004FF4007282612822C261016241628162A8
+:102A40000A21C162FFF728FA002803D0BDE8104030
+:102A5000FDF7BDBF10BD0000003001409800002010
+:102A600010B592B000241094119409940A940B9418
+:102A70000C940D940E940F9400940194029403947A
+:102A80000494059406940794254824490160A721DD
+:102A90004160846042F20F71C160046144618461ED
+:102AA000FFF746FC08B1FDF792FF1094119410A9AE
+:102AB0001B48FFF765FB08B1FDF789FF602009900F
+:102AC0004FF47A700A900B940C940D940E940F941A
+:102AD000002209A91248FFF7C3FB08B1FDF777FFF1
+:102AE000042209A90E48FFF7BBFB08B1FDF76FFFF1
+:102AF000009401940294039404944FF400500590C0
+:102B0000079469460648FFF711FB08B1FDF75FFF20
+:102B10000348FFF77DFB12B010BD0000000001402C
+:102B2000F000002010B50C480A4901604FF4E13173
+:102B3000416000218160C16001610C2242618161BC
+:102B4000C161FFF7D3FC002803D0BDE81040FDF7BA
+:102B50003EBF10BD007C00403001002010B50D4884
+:102B60000B4901600C49416000218160C1604FF454
+:102B7000806202610C2242618161C161FFF7B6FC93
+:102B8000002803D0BDE81040FDF721BF10BD0000B4
+:102B90000010014070010020A086010010B50C4813
+:102BA0000A4901604FF4E131416000218160C16058
+:102BB00001610C2242618161C161FFF797FC00282D
+:102BC00003D0BDE81040FDF702BF10BD0014014066
+:102BD000B0010020FEE77047F2EE041A026880EEB2
+:102BE000211A9FED0F0A80EEA12ADFED0E1A31EEB9
+:102BF000001A72EE000AB7EE000AB0EE402A11EE9B
+:102C0000212ABCEEC21A11EE101A516310EEA10A6D
+:102C10000068BCEEC00A10EE101A81637047000015
+:102C2000CDCCCC3D00401C4610B500210448FFF738
+:102C3000AFFBBDE8104004210148FFF7A9BB00002D
+:102C4000F00000207047000038B504461248134BCE
+:102C50000068B0FBF3F04FF47A735843009060685B
+:102C6000B0F5827F0DD10B460092002280212046D4
+:102C700000F016F870B1606D40F020006065032030
+:102C800038BD009830B1401E009020688068C04375
+:102C90000006F6D5002038BD0000002000366E0189
+:102CA0002DE9F0411D4617460E460446DDF8188012
+:102CB00008E0681C06D0FEF7B3FDA0EB0800A842B0
+:102CC0000BD255B12068806836EA000030D0002071
+:102CD000B842EED10020BDE8F0812068416821F0C3
+:102CE000E00141606068B0F5827F0BD1A068B0F56B
+:102CF000004F02D0B0F5806F04D12068016821F048
+:102D000040010160A06AB0F5005F09D12068016848
+:102D100021F4005101602068016841F40051016014
+:102D2000012084F85100002084F850000320D2E7ED
+:102D30000120CDE77047FEF779BD000030B593B0B4
+:102D40000024089409940A940B9401940294039427
+:102D5000049405941D48016841F0805101600068A9
+:102D600000F0805000901A48016841F44041016031
+:102D7000006800F440400090012006900004079095
+:102D800002250C9580010D9006200E90A8200F9032
+:102D900010950420119006A8FEF7D0FE08B1FDF7AB
+:102DA00016FE0F200190029503944FF4A05004905A
+:102DB0004FF480500590052101A8FEF7D3FD0028AF
+:102DC00001D0FDF704FE13B030BD000040380240D2
+:102DD000007000400448016841F47001016003493B
+:102DE0004FF000600860704788ED00E008ED00E0FB
+:102DF000F0B50268254C264D264E274F274B4FF045
+:102E0000804CA04209D0604507D0A84205D0B0420E
+:102E100003D0B84201D0984204D122F0700E4A6823
+:102E200042EA0E02A0421BD0604519D0A84217D03A
+:102E3000B04215D0B84213D0984211D0184DA842D4
+:102E40000ED0184DA8420BD0174DA84208D0174DF0
+:102E5000A84205D0164DA84202D0164DA84203D173
+:102E600022F44075CA682A434D6922F080022A4341
+:102E700002608A68C2620A688262A04201D09842F7
+:102E800001D10969016301214161F0BD00000140E8
+:102E90000004004000080040000C00400004014015
+:102EA000004001400044014000480140001800403B
+:102EB000001C00400020004010B501F01F0301215C
+:102EC000046A99408C430462016A9A40114301628A
+:102ED00010BD0000F0B5026A22F001020262036A2E
+:102EE00042688469124E24F073050C682C4323F069
+:102EF00002058B682B430D4DA84201D0B04205D18D
+:102F000023F00807CB683B4323F00403A84201D019
+:102F1000B04205D14D6922F4407215438A692A43B3
+:102F200042608461496841630362F0BD0000014072
+:102F300000040140F0B5026A22F010020262026A47
+:102F4000436884690D6824F4E64444EA05248D68E6
+:102F500022F0200242EA05120F4D104EA84201D085
+:102F6000B04206D1CF6822F0800242EA071222F076
+:102F70004002A84201D0B04207D14D6923F440631A
+:102F800043EA85038D6943EA8503436084614968A8
+:102F900081630262F0BD00000000014000040140B6
+:102FA000F0B5026A22F480720262026A4368C46960
+:102FB00022F4007224F073050C68124E2C438D68C5
+:102FC00042EA05220E4DA84201D0B04206D1CF6898
+:102FD00022F4006242EA072222F48062A84201D071
+:102FE000B04207D14D6923F4405343EA05138D697C
+:102FF00043EA05134360C4614968C1630262F0BDDE
+:10300000000001400004014030B5026A22F4805201
+:103010000262046A4268C3690D6823F4E64343EA26
+:1030200005238D6824F4005444EA0534084DA84271
+:1030300002D0084DA84204D14D6922F4804242EAF0
+:1030400085124260C36149680164046230BD0000BA
+:10305000000001400004014010B5806B0021C185D3
+:10306000C184FFF7B7F910BD0168CA6822F49072F5
+:10307000CA6001684A6922F001024A61202180F891
+:103080003A10704710B590F83A10222901D002206A
+:1030900010BD8168B1F5805F11D001690029016818
+:1030A0001FD0496801F07F03816A4A1C82620B705D
+:1030B000C18D491E0904090CC18518D02BE0026995
+:1030C000816A002A0268526805D0D2B20A80816AF9
+:1030D000491C8162ECE7C2F308020A80816A891CFC
+:1030E000F7E74A68816A4B1C83620A70E0E701686F
+:1030F000CA6822F02002CA600168CA6822F480729D
+:10310000CA6001684A6922F001024A61202180F800
+:103110003A10FFF74FFB002010BD00002DE9F041F1
+:10312000044600680169E26821F4405111430161DD
+:103130002169A068E2690843616911430843216875
+:10314000CA6849F20C639A430243CA602068416925
+:10315000A26921F4407111434161E0691927642596
+:103160003226B0F5004F354A354920684FF0000847
+:1031700006D0884201D0904236D1FEF79DFC35E062
+:10318000884201D0904202D1FEF796FC01E0FEF7A2
+:1031900083FC61684A18A0FB070148EB0803FDF7B0
+:1031A00023F80146B0FBF5F00201B1FBF5F06FF03A
+:1031B0001803584301EB800006EBC000B0FBF5F0AC
+:1031C00000F0F80002EB4002B1FBF5F0584301EBD0
+:1031D000800006EBC000B0FBF5F000F007002168AE
+:1031E00010448860BDE8F081FEF756FC61688B0FE3
+:1031F0008A00A0FB0701FCF7F7FF0146B0FBF5F0E2
+:103200006FF01802504301EB800006EB0010B0FB9A
+:10321000F5F000F0F002B1FBF5F002EB0012B1FBAB
+:10322000F5F06FF01803584301EB800006EB001037
+:10323000B0FBF5F000F00F00D1E7000000140140F2
+:103240000010014090F83910212901D00220704768
+:103250008168B1F5805F016A0BD04A1C0262026886
+:1032600009785160C18C491E0904090CC1840ED033
+:1032700017E009880268C1F308015160016900295B
+:10328000016A02D0491C0162ECE7891CFBE7016876
+:10329000CA6822F08002CA600068C16841F040013B
+:1032A000C16000207047000038B5174D28680168DC
+:1032B00011F0100F22D0C16811F0100F1ED001685C
+:1032C00040680090686B0068016821F001010160AE
+:1032D000686B0068406884B2202C01D100F0B8FC13
+:1032E000322C01D101F034F9696B32200968486051
+:1032F000686B0068016841F001010160BDE8384079
+:103300000148FFF769B800007001002038B5154C7E
+:103310002068016811F0100F1FD0C16811F0100F64
+:103320001BD0016840680090606B0068016821F064
+:1033300001010160606B0068406880B2C0F11E004E
+:1033400040B200F051FD616B1E2009684860606B5F
+:103350000068016841F001010160BDE838400148A2
+:10336000FFF73AB8B0010020FEE70907090E002870
+:1033700004DB00F1E02080F80014704700F00F003B
+:1033800000F1E02080F8141D704702E008C8121F09
+:1033900008C1002AFAD170477047002001E001C13E
+:1033A000121F002AFBD1704790ED161A184A00EE42
+:1033B000201A9FED180A11EE101A914201DD31EE2C
+:1033C000401AB5EEC01AF1EE10FA01D231EE001A31
+:1033D00090ED180AB5EEC00AF1EE10FA06DDB4EE73
+:1033E000C10AF1EE10FA01D2B0EE401A90ED190ABE
+:1033F000B5EEC00AF1EE10FA06DDB4EEC10AF1EE48
+:1034000010FA01DDB0EE401A80ED161A7047000088
+:103410000000B4430000B44300B58BB0002001218C
+:10342000CDE9060105900090019002900390049070
+:103430000E20CDE9081069460548FDF755FC044803
+:10344000FDF748FF02210248FDF7CEFB0BB000BD9F
+:103450007000002070B51E4E0D46002404EB840160
+:1034600006EB4111098881422DD1FEF7D9F904EB11
+:10347000840106EB4114A066A06918B1012801D0AF
+:1034800002281FD1288840BA2081FDF792F89FEDCD
+:10349000111B53EC112BFCF79AFF9FED101B53EC03
+:1034A000112BFDF706F8FDF791F8E060688840BA47
+:1034B00000B200EE100AB8EEC00A84ED040AA88833
+:1034C00040BAA08270BD641C142CC7DB70BD000024
+:1034D0003C08002000000000008076400000000052
+:1034E00000FFBF402DE9F041454C90B0206810B975
+:1034F000FEF796F92060FEF793F92168401A0A2832
+:103500007AD3FEF78DF920603E480DAF002407C83E
+:1035100087E807003C4E25464FF0080809950A95B4
+:1035200057F82420CDE90458019203958DF81850DE
+:103530005FF0000101EB810006EB401043889342ED
+:1035400012D1B0F804C0BCF1010F0DD190ED170AF3
+:10355000BDEEC00A10EE10CA4FEA1C2C8DF824C034
+:1035600010EE10CA8DF825C0934212D1B0F804C0F5
+:10357000BCF1020F0DD190ED170ABDEEC00A10EE9E
+:1035800010CA4FEA1C2C8DF826C010EE10CA8DF818
+:1035900027C0934212D1B0F804C0BCF1030F0DD183
+:1035A00090ED170ABDEEC00A10EE10CA4FEA1C2CAF
+:1035B0008DF828C010EE10CA8DF829C093420FD1A3
+:1035C0008388042B0CD190ED170ABDEEC00A10EED3
+:1035D000100A000A8DF82A0010EE100A8DF82B0050
+:1035E000491C1429A6DB012309AA01A90748FDF7F4
+:1035F0000DFB641C032C91DB10B0BDE8F0810000D2
+:1036000024000020744E00083C08002070000020B8
+:10361000FEF714F9FFF792FBFFF756F9FFF726F9CB
+:10362000FFF7CCF8FFF7F6F9FFF798FAFFF7B6FACD
+:10363000FFF7F8F8FFF776FAFFF712FAFFF7F4FA58
+:1036400001223C212448FEF7E5F80122D10223485B
+:10365000FEF7E0F8012291032148FEF7DBF8214C48
+:10366000012211022046FEF7D5F8012280212046D2
+:10367000FEF7D0F8012240212046FEF7CBF80122C8
+:1036800020212046FEF7C6F8012210212046FEF731
+:10369000C1F8012208212046FEF7BCF801220421CE
+:1036A0002046FEF7B7F8012202212046FEF7B2F8C5
+:1036B00000F090F800F04CFF00F05EFFFFF7ACFE6A
+:1036C000032000F0DDFB00F087FD00F031FE00F08C
+:1036D00029FFFFF707FFF6E7001C02400010024039
+:1036E00000140240001802402DE9F047002000F0CD
+:1036F0002DF8DFF8549000245FF0000609EBC600B7
+:1037000000EBD400002507784FFA86F8380604EB62
+:10371000050041B201D5012200E00022404600F040
+:1037200035F878066D1C070EEDB2082DEED3761C29
+:10373000F6B2802EE2D30834E4B2402CDCD3BDE8EC
+:10374000F04700F0DDB80000724A0008F0B5002133
+:103750000D4BFF260C46002201280FD003EBC205BB
+:1037600080B16F5CC7F1FF076F54521CD2B2802A40
+:10377000F2D9491CC9B20829EDD3F0BD03EBC2054B
+:103780006E54F2E76C54F0E77003002070B58028A7
+:1037900017D2002915DB3F2913DCCB1701EB53753A
+:1037A000C5F3C70325F007050124094E491B8C40CA
+:1037B00006EBC000012A05D0C15C022A05D0A14356
+:1037C000C15470BDC15C2143FAE76140F8E70000D5
+:1037D0007003002070B5494D4FF4806400222146EB
+:1037E0002846FEF717F84FF4FA70FDF717FF01228D
+:1037F00021462846FEF70EF80021AE2000F0B0F872
+:103800000021084600F0ACF80021102000F0A8F8D4
+:103810000021402000F0A4F80021812000F0A0F851
+:103820000021CF2000F09CF80021A12000F098F8A2
+:103830000021C82000F094F80021A62000F090F8A4
+:103840000021A82000F08CF800213F2000F088F82B
+:103850000021D32000F084F80021084600F080F811
+:103860000021D52000F07CF80021802000F078F8BD
+:103870000021D92000F074F80021F12000F070F848
+:103880000021DA2000F06CF80021122000F068F826
+:103890000021DB2000F064F80021402000F060F8F7
+:1038A0000021202000F05CF80021022000F058F8F0
+:1038B00000218D2000F054F80021142000F050F871
+:1038C0000021A42000F04CF80021A62000F048F8C8
+:1038D0000021AF2000F044F80021AF2000F040F8B4
+:1038E0000020FFF733FF0021084600F023F8FFF720
+:1038F000FBFEBDE8704000F003B800000004024089
+:1039000070B50B4E00242146002000F013F800256E
+:1039100006EBC5000121005D00F022F86D1CEDB240
+:10392000802DF5D3641CE4B2082CECD370BD0000EC
+:103930007003002010B5801CC4B2B031C8B20021A1
+:1039400000F00EF8102040EA1410002100F008F8F2
+:1039500004F0F000BDE81040002100F001B80000C4
+:1039600013B508484FF4007309B1012200E00022AA
+:103970001946FDF74FFF0A23012269460248FEF768
+:1039800013FB1CBD000402409800002090F830108A
+:1039900000291CD1416891ED000A80ED080A0168F8
+:1039A000D1ED000AC0ED090AD0ED070AB4EEE00A35
+:1039B000F1EE10FA06DCD0ED060AB4EEE00AF1EE04
+:1039C00010FA01D2C0ED080A012180F830107047CA
+:1039D00080ED0D0A704710B5044690F830000028BD
+:1039E00064D02068D0ED001AA06890ED000A70EE57
+:1039F000610A94ED0D0AB5EEC00AF1EE10FA13DD7E
+:103A0000B6EE001A20EE011AF4EEC10AF1EE10FA39
+:103A100001DD70EEC00AB1EE411AF4EEC10AF1EE1A
+:103A200010FA01D270EE200A94ED080A94ED041AFF
+:103A300001EE200A84ED080A94ED071AB4EEC10ADB
+:103A4000F1EE10FA02DD84ED081A08E094ED062A82
+:103A5000B4EEC20AF1EE10FA01D284ED082A94ED18
+:103A6000090AD4ED032A31EEC02A94ED080A02EEC9
+:103A7000A00AD4ED050A00EEC20AB4EEC01AF1EEB7
+:103A800010FA02D2B0EE410A08E0D4ED060AF4EED4
+:103A9000C00AF1EE10FA01DDB0EE600A606880ED58
+:103AA000000AC4ED091AFDF7BBFEA06210BD0000BC
+:103AB00010B504462DED028B002084E80E009FED2A
+:103AC000188AB0EE602AF0EE402A84F83000F0EE5A
+:103AD000411ADFED120AB0EE480A204600F03EF827
+:103AE0000A20E0620021204600F01CF8B0EE611AC6
+:103AF000F0EE420AB0EE620A204600F075F8FDF7DB
+:103B00008FFEE16A401AA0622046FFF73FFF84ED76
+:103B10000D8A2046BDEC028B10BD000000007F43E3
+:103B20000000000090F83020AAB190F838208A42B6
+:103B300011D090ED030AB1EE400A80ED030A90ED3A
+:103B4000040AB1EE400A80ED040A90ED050AB1EED8
+:103B5000400A80ED050A80F838107047B4EEE00A9C
+:103B6000F1EE10FA2BDA80ED060AC0ED070A90F8A4
+:103B70003010002923D0416891ED001AB4EEE01A0C
+:103B8000F1EE10FA02DDC1ED000A06E0B4EEC01A53
+:103B9000F1EE10FA01D281ED000A90ED080AD0EDA5
+:103BA000070AB4EEE00AF1EE10FA06DCD0ED060AE0
+:103BB000B4EEE00AF1EE10FA01D2C0ED080A704747
+:103BC00010B590ED030A0446B5EEC00AF1EE10FA06
+:103BD00008D0FDF725FEA16A401AE16A884201D3A8
+:103BE000012010BD002010BDB5EEC00AF1EE10FAA4
+:103BF0002BD3F5EEC00AF1EE10FA26D3B5EEC01ABB
+:103C0000F1EE10FA21D3D0ED0B1ADFED102A80ED82
+:103C1000030AB8EE612AC2EE221A81EE212A60EE72
+:103C2000A10AC0ED040A80ED052A90F83810012998
+:103C30000BD1B1EE400A80ED030AB1EE600A80EDCF
+:103C4000040AB1EE420A80ED050A704700007A448A
+:103C50002DE9F05F2DED028BFDF7E2FD5E49282294
+:103C600008605E4901F12800FCF7EFFADFF86CB15B
+:103C70005A4CABF1140B0026BBF80000C0F30A0548
+:103C8000A5F5806525809BF80100C2089BF802001D
+:103C900042EA4012C2F30A02A2F5806262809BF8F7
+:103CA0000330800940EA83009BF80430521D40EA4B
+:103CB0008320C0F30A00A0F58060A0805B089BF819
+:103CC00005700A2A43EAC711C1F30A01A1F5806110
+:103CD000E18000D86680401D0A2800D8A680491DD2
+:103CE0000A2900D8E6802846FCF752FC9FED3C8B61
+:103CF00053EC182BFCF7DDFBFCF768FCA060B4F973
+:103D000002008246FCF744FC53EC182BFCF7D1FB75
+:103D1000FCF75CFCE060B4F904008146FCF738FC79
+:103D200053EC182BFCF7C5FBFCF750FC2061B4F9F1
+:103D300006008046FCF72CFC53EC182BFCF7B9FB73
+:103D4000FCF744FC6061B9092176C7F30111617683
+:103D50004FF4A56105F5257558468D4200D926809A
+:103D60000AF525728A4200D9668009F525728A42D1
+:103D700000D9A68008F525728A4200D9E680C1885C
+:103D800061830189A1834189E183017B84F820104B
+:103D9000417B84F82110C1896184BBF810004FF485
+:103DA0002571A0F5806000B2A084884205DC404205
+:103DB000A084BDEC028BBDE8F09F4FF4257210FB90
+:103DC00002F043F6C61290FBF2F000B2A0848842E3
+:103DD000EFDDA184EDE70000100000208407002043
+:103DE0006666666666661A4070B5234D2878B5F833
+:103DF0000110A5284CBA3DD1FDF712FD1F490860FE
+:103E0000B5F8050043BA042B25D00BDC012B19D0E3
+:103E100019483238022B1AD0032B2BD1E91D224628
+:103E2000001D0BE0052B1BD0A3F58073013B1CD0BC
+:103E3000012B1FD11048E91D2246001FBDE870402C
+:103E4000FCF703BA0C48E91D22463238F6E7E91DB3
+:103E50002246C01CF2E70848E91D22460E38EDE76D
+:103E60000548E91D22460B38E8E70348E91D2246CC
+:103E70000838E3E770BD00000A08002014000020A5
+:103E80002DE9F04764282DED068B01D96438C0B2C6
+:103E9000B0EE009AF6EE008A9FEDA68A032803D0C2
+:103EA000042801D005287DD1A3A1A648FCF7DFF99D
+:103EB000A44C00256C3C40F20120A5612080461EE8
+:103EC00004F158031A1DA2F14C016680012701F18B
+:103ED0000C00A780B0EE481AF0EE680AB0EE490A6E
+:103EE0008046FFF7E5FDDFED989AF0EE690A9FED59
+:103EF00097AA4046B0EE4A0AFFF730FE94A104F5B7
+:103F00008670FCF7B4F9B01CC4F8B850A4F8A0004F
+:103F100004F1F8031A1DA2F14C01A4F8A2604FF0BD
+:103F2000020801F10C00A4F8A480B0EE481AF0EEEB
+:103F3000680AB0EE490A8146FFF7BAFDF0EE690A59
+:103F4000B0EE4A0A4846FFF709FE84A104F5D67090
+:103F5000FCF78DF9F01CC4F85851A4F8400104F5A1
+:103F6000CC731A1DA2F14C01A4F842614FF0030971
+:103F700001F10C00A4F84491B0EE481AF0EE680A82
+:103F8000B0EE490A8246FFF793FDF0EE690AB0EE03
+:103F90004A0A5046FFF7E2FD73A104F51370FCF7DF
+:103FA00066F900E0C1E0301DC4F8F851A4F8E00162
+:103FB00004F50E73A4F8E26104201A1DA4F8E401CC
+:103FC000A2F14C0101F10C00B0EE481AF0EE680AC3
+:103FD000B0EE490A0546FFF76BFDF0EE690AB0EE58
+:103FE0004A0A2846FFF7BAFD62A104F56370FCF7A0
+:103FF0003EF9701DC4F83873A4F82003851FA4F897
+:104000002253A4F824739FED5F0A84EDE10A9FED2B
+:104010005E0A84EDE00A9FED5D0A84EDDE0A9FED05
+:104020005C8AB0EE481ADFED5B8AF0EE680A9FED1D
+:104030005A0A04F55E731A1DA2F1500101F1100035
+:104040000646FFF735FD9FED559A3046B0EE490A1A
+:10405000FFF7BEFCDFED529AF0EE690A9FED51AA20
+:104060003046B0EE4A0AFFF779FD4FA104F53B70E8
+:10407000FCF7FDF8E81DC4F89872A4F88002A4F8D3
+:104080008252A4F884829FED4C0A84EDB90A9FED18
+:104090004B0A84EDB80A9FED4A0AB0EE481A84ED47
+:1040A000B60AF0EE680A9FED470A04F536731A1D4A
+:1040B000A2F1500101F110000646FFF7F9FCB0EE45
+:1040C000490A3046FFF784FCF0EE690AB0EE4A0A6E
+:1040D0003046FFF743FD3CA104F22C40FCF7C7F843
+:1040E00040F20720C4F8D883A4F8C00304F5836322
+:1040F0001A1DA4F8C253A2F14C01A4F8C49301F113
+:104100000C00B0EE481AF6EE000AB6EE000A0446BD
+:10411000FFF7CEFCBDEC068B2046BDE8F047DFED97
+:104120002C0A9FED2C0AFFF719BDBDEC068BBDE8EC
+:10413000F08700000AD7233C46524F4E545F4C454F
+:1041400046540000A808002000008046000080C6F9
+:1041500046524F4E54205249474854004241434B27
+:1041600020524947485400004241434B204C4546A9
+:1041700054000000544F5552454C4C452050495472
+:1041800043480000000075430080924300007A43DA
+:10419000000000000000C8420000C8430000B44313
+:1041A0000060EA460060EAC6544F5552454C4C4503
+:1041B0002059415700000000856BDD4252389A4378
+:1041C0000000504300004843464545444552000026
+:1041D00000401C4600401CC610B50E4CA06810B92B
+:1041E000FDF71EFBA060FDF71BFBA168401AB0F5B0
+:1041F0007A7F07D9FDF714FBA0600748416981F475
+:104200000061416100F00AF800F07CF8BDE8104060
+:1042100000F01CB8100000200010024010B5FDF79F
+:10422000FFFA08490968421A07484FF48071B2F54D
+:10423000FA7F01D2002200E00122BDE81040FDF724
+:10424000E9BA0000100000200018024070B5FDF728
+:10425000E7FA2A4C2A4DD4F8E812401A642801D211
+:10426000002200E0012240212846FDF7D3FAFDF7A5
+:10427000D7FAD4F88813401A642801D2002200E04B
+:10428000012220212846FDF7C5FAFDF7C9FAD4F826
+:104290000811401A642801D2002200E001221021F6
+:1042A0002846FDF7B7FAFDF7BBFAA16E401A64285D
+:1042B00001D2002200E0012208212846FDF7AAFAD7
+:1042C000FDF7AEFAD4F8A811401A642801D20022F2
+:1042D00000E0012204212846FDF79CFAFDF7A0FA30
+:1042E000D4F84812401A642801D2002200E00122CA
+:1042F0002846BDE870400221FDF78CBA3C0800203A
+:104300000018024010B5FDF78BFA07494968411AB9
+:104310000648B1F5FA6F01D2002200E00122BDE8A3
+:1043200010408021FDF776BA1000002000180240EE
+:104330002DE9F0476A4C2DED068B94ED030ADFED75
+:10434000690A6948FFF730F894ED020ADFED670A61
+:104350006548A038FFF728F8654E664B6648D6F8E2
+:104360002C234FF480419A4201DD002200E001221B
+:10437000FDF750FA5C48217EE0309FED600A01298C
+:1043800004D0022908D003290AD102E080ED060AF0
+:1043900006E0DFED5B0A01E0DFED5A0AC0ED060A38
+:1043A000607E012804D002287ED003280AD102E0D2
+:1043B000F0EE400A03E0F5EE000AB5EE000A5248BE
+:1043C000FEF70AFCB4F92400FCF7E2F8894649EC50
+:1043D000100B05469FED4D8B51EC100B53EC182B39
+:1043E000FBF7F5FFB4F90680B4F9047041EC190B42
+:1043F000A8EB0700FCF7CCF88A464AEC100B044601
+:1044000053EC192B51EC100BFBF7DBFF9FED41AB8D
+:1044100053EC1A2BFBF7DBFFFCF7D8F849EC105BE9
+:10442000B06553EC182B51EC100BFBF7D0FF41ECAF
+:10443000190B08EB0700FCF7ABF8884648EC100BAB
+:10444000074653EC192B51EC100BFBF719FF9FEDAE
+:10445000339B53EC192BFBF7BAFFFCF7B7F849EC89
+:10446000105BC6F8F80053EC182B51EC100BFBF75F
+:10447000AEFF41EC100B4AEC114B53EC102B51ECFE
+:10448000110BFBF7FDFE53EC192BFBF7A0FFFCF71C
+:104490009DF849EC105BC6F8980153EC182B51ECD1
+:1044A000100BFBF794FF00E015E041EC110B48EC1A
+:1044B000107B53EC112B51EC100BFBF782FF53ECEC
+:1044C0001A2BFBF784FFFCF781F8C6F83802BDEC25
+:1044D000068BBDE8F087F6EE000AB6EE000A6EE73E
+:1044E0008407002017B751385C0B002017B751B86C
+:1044F0003C080020008092430014024000000000AD
+:1045000000409C4500401C46F0000020333333330C
+:104510003333D33F000000000000244000000000BF
+:10452000000024C070B5094E002400BF04EB8400D5
+:1045300006EB40151C352846FFF742FB10B1284614
+:10454000FFF749FA641C142CF0DB70BD3C08002016
+:10455000074882B00068016841680091C16841F075
+:104560001001C16032220349014802B000F018B8BE
+:104570007001002070070020074882B000680168C1
+:1045800041680091C16841F01001C1601E220349D9
+:10459000014802B000F004B8B00100200A08002071
+:1045A00070B5044690F83A00202801D0022070BD72
+:1045B00099B192B1A162A2850020E0631346206800
+:1045C0000A46656B011D2846FDF704F8206841691D
+:1045D00041F040014161002070BD012070BD00002C
+:1045E00000000000000001020304060708090000A3
+:1045F0000000010203040006101600061016000059
+:1046000000000000000000000000000000003F402B
+:1046100000000000000000003000400030004000BA
+:10462000000009000BC03D000BC03D00090018C090
+:1046300024407FE0224031800000180024C01B008D
+:104640000D803240018003801C4027401C800740C1
+:1046500000401000600000000000000000000000AA
+:10466000000000001F80204040200000402020402B
+:104670001F8000000000090006001F8006000900DE
+:104680000000040004003F8004000400000000104B
+:1046900000600000000000000000040004000400AE
+:1046A00004000400000000000040000000000000C2
+:1046B0000000002001C006003800400000001F80FC
+:1046C0002040204020401F800000000010403FC0DC
+:1046D00000400000000018C0214022402440184043
+:1046E000000010802040244024401B800000020075
+:1046F0000D0011003FC0014000003C8024402440D8
+:104700002440238000001F80244024403440038044
+:1047100000003000200027C03800200000001B806F
+:104720002440244024401B8000001C0022C0224062
+:1047300022401F8000000000000008400000000030
+:104740000000000000000460000000000000000005
+:1047500004000A00110020804040090009000900FF
+:1047600009000900000000004040208011000A00FC
+:1047700004001800200023402400180000001F80BF
+:104780002040274029401F400000004007C039005A
+:104790000F0001C0004020403FC0244024401B8047
+:1047A00000001F802040204020403080000020403A
+:1047B0003FC0204020401F80000020403FC02440D8
+:1047C0002E4030C0000020403FC024402E0030006A
+:1047D00000000F0010802040224033800200204063
+:1047E0003FC0040004003FC02040204020403FC0A4
+:1047F0002040204000000060202020203FC02000FA
+:10480000200020403FC024400B0030C0204020400A
+:104810003FC020400040004000C03FC03C0003C0FB
+:104820003C003FC0000020403FC00C4023003FC080
+:1048300020001F802040204020401F80000020409A
+:104840003FC024402400180000001F802140214068
+:1048500020E01FA0000020403FC02440260019C0D7
+:10486000004018C024402440224031800000300025
+:1048700020403FC020403000000020003F8000402A
+:1048800000403F80200020003E0001C007003800AB
+:104890002000380007C03C0007C03800000020405E
+:1048A00039C0060039C0204000002000384007C051
+:1048B000384020000000304021C02640384020C051
+:1048C0000000000000007FE04020402000000000C9
+:1048D00070000C00038000400000000040204020D9
+:1048E0007FE00000000000002000400020000000E9
+:1048F0000000001000100010001000100010000058
+:1049000000004000000000000000000002800540A0
+:10491000054003C0004020003FC004400440038025
+:104920000000000003800440044006400000000036
+:104930000380044024403FC0004000000380054045
+:10494000054003400000000004401FC024402440F4
+:104950002000000002E005500550065004202040D1
+:104960003FC00440040003C000400000044027C0D2
+:1049700000400000000000100010041027E00000BC
+:10498000000020403FC00140070004C00440204018
+:1049900020403FC000400040000007C0040007C0A6
+:1049A000040003C00000044007C00440040003C02A
+:1049B0000040000003800440044003800000041015
+:1049C00007F004500440038000000000038004400E
+:1049D000045007F00010044007C002400400040027
+:1049E0000000000006400540054004C00000000033
+:1049F00004001F80044000400000040007800040C5
+:104A0000044007C000400400070004C00180060005
+:104A10000400060001C0070001C0060000000440B9
+:104A200006C0010006C0044000000410071004E0A6
+:104A30000180060004000000044005C00640044058
+:104A400000000000000004007BE0402000000000A7
+:104A500000000000FFF000000000000040207BE0AC
+:104A60000400000000004000800040002000200002
+:104A700040000000000000000000000000000000F6
+:104A80000000000000000000000000000000000026
+:104A90000000000000000000000000000000000016
+:104AA0000000000000000000000000000000000006
+:104AB00000000000000000000006000000000000F0
+:104AC000001E00000000000000DE000000000000EA
+:104AD00000D800000000000000D800000000000026
+:104AE00000D800000000000000DE00000000000010
+:104AF00000FE00000000000000F6000000000000C2
+:104B00000072000000000000000000000000000033
+:104B1000007C00000000000000FE0000000000001B
+:104B200000C600000000000000C6000000000000F9
+:104B300000C600000000000000FE000000000000B1
+:104B4000007C0000000000000000000000000000E9
+:104B5000001E00000000000000DE00000000000059
+:104B600000D600000000000000D600000000000099
+:104B700000D600000000000000D600000000000089
+:104B800000DE40000000000000FE60000000001099
+:104B9000006C70000000003000007800000000F0A1
+:104BA000007C7C00000007F000FE7E0000003FF06B
+:104BB00000C67F000001FFF000C67F80000FFFF0FD
+:104BC00000C67FC0007FFFF000FE7FE003FFFFF024
+:104BD000007C7FF03FFFFFF000027FF83FFFFFF017
+:104BE00000067FFC3FFFFFF0001E7FFE3FFFFFF04F
+:104BF00000BC7FFF3FFFFFF000E07FFFBFFFFF80B3
+:104C000000F87FFFFFFFFC00003E7FFFFFFFE0009A
+:104C1000000E7FFFFFFF000000B87FFFFFF80000DD
+:104C200000E07FFFFFF0000000FE7FFFFFF00000CC
+:104C3000001E7FFFFFF0000000027FFFFFF000007A
+:104C400000007FEFFFF0020000067FE7FFF00200A8
+:104C5000000E7FE3FFF00200001C7FE1FFF803007D
+:104C600000BA7FE0FFFC030000F67FE07FFE0380D8
+:104C700000E67FE03FFF038000F67FE03FFF83C058
+:104C8000003E7FE03FFFC3C0000E7FE03FFFE3E058
+:104C900000027FE03FFFF3E000007FE03FFFFBF01A
+:104CA00000027FE03FFFFFF000667FE03FFFFFF87C
+:104CB00000F67FE03FFFFFF800D67FE03FFFFFFCFC
+:104CC00000D67FF07FFFFFFC00D67FF8FFF7FFFEE6
+:104CD00000D67FFFFFF3FFFE00DE3FFFFFE1FFFF97
+:104CE000008C3FFFFFE0FFCF00401FFFFFC07FC7EA
+:104CF00080C01FFFFFC03FC380C00FFFFF801FC1E8
+:104D0000C0FE07FFFF000FC0C0FE03FFFE0007C08C
+:104D100060C001FFFC0003C020C0007FF00001C0A4
+:104D20000086000F800000C0001600000000004058
+:104D300000D600000000000000D6000000000000C7
+:104D400000D600000000000000D6000000000000B7
+:104D500000D600000000000000D0000000000000AD
+:104D600000C000000000000000060000000000007D
+:104D7000001E00000000000000DE00000000000037
+:104D800000D800000000000000D800000000000073
+:104D900000D800000000000000DE0000000000005D
+:104DA00000DE00000000000000F60000000000002F
+:104DB0000072000000000000000000000000000081
+:104DC000006200000000000000F60000000000008B
+:104DD00000F600000000000000D600000000000007
+:104DE00000D600000000000000D600000000000017
+:104DF00000DE000000000000008C00000000000049
+:104E000000000000000000000000000000000000A2
+:104E10000000000000000000000000000000000092
+:104E20000000000000000000000000000000000082
+:104E30000000000000000000000000000000000072
+:104E40000000000000000000000000000000000062
+:104E50000000000000000000000000000000000052
+:104E60000000000000000000000000000000000042
+:104E70000000000000020000FF010000FF0200002F
+:104E8000A04E000800000020280000008A3300081F
+:104E9000C84E000828000020981800009A33000827
+:104EA0000024F400010000001000000000000000D9
+:104EB00000000000000000000000000000000000F2
+:084EC0000000000000000000EA
 :04000005080001AD41
 :00000001FF
diff --git a/MDK-ARM/bin/startup_stm32f427xx._ia b/MDK-ARM/bin/startup_stm32f427xx._ia
new file mode 100644
index 0000000..7bf361f
--- /dev/null
+++ b/MDK-ARM/bin/startup_stm32f427xx._ia
@@ -0,0 +1,6 @@
+--cpu Cortex-M4.fp.sp --pd "__EVAL SETA 1" -g --apcs=interwork --pd "__MICROLIB SETA 1"
+-I.\RTE\_RobotMaster_allRobots
+-IC:\Users\sfaguet\AppData\Local\Arm\Packs\ARM\CMSIS\5.7.0\CMSIS\Core\Include
+-IC:\Users\sfaguet\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.15.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include
+--pd "__UVISION_VERSION SETA 532" --pd "_RTE_ SETA 1" --pd "STM32F427xx SETA 1" --pd "_RTE_ SETA 1"
+--list ..\..\startup_stm32f427xx.lst --xref -o .\bin\startup_stm32f427xx.o --depend .\bin\startup_stm32f427xx.d "startup_stm32f427xx.s"
\ No newline at end of file
diff --git a/RobotMaster_allRobots.ioc b/RobotMaster_allRobots.ioc
index bd8c7de..6331b3f 100644
--- a/RobotMaster_allRobots.ioc
+++ b/RobotMaster_allRobots.ioc
@@ -13,6 +13,7 @@ SPI1.VirtualType=VM_MASTER
 Dma.USART1_TX.1.MemInc=DMA_MINC_ENABLE
 UART8.IPParameters=VirtualMode
 PG2.Signal=GPIO_Output
+TIM1.IPParameters=Channel-PWM Generation1 CH1,Channel-PWM Generation2 CH2,Prescaler,Period,Pulse-PWM Generation1 CH1,Pulse-PWM Generation2 CH2
 PE11.GPIO_Label=BOARD_LED_RED
 USART1.BaudRate=100000
 PG8.Signal=GPIO_Output
@@ -32,8 +33,10 @@ RCC.RTCFreq_Value=32000
 PA6.GPIO_Label=OLED_Analog
 PB6.GPIO_Label=ReceiverRC_TX
 PD0.Locked=true
+TIM1.Pulse-PWM\ Generation1\ CH1=1000
 PH5.GPIO_Label=BOARD_POWER4_CTRL
 PG14.GPIOParameters=GPIO_Label
+SH.S_TIM1_CH1.ConfNb=1
 USART1.IPParameters=VirtualMode,BaudRate,Parity,Mode
 PG5.GPIO_Label=BOARD_LED_D
 PG2.GPIOParameters=GPIO_Label
@@ -54,6 +57,7 @@ Mcu.IP0=ADC1
 Mcu.IP1=CAN1
 PH4.GPIOParameters=GPIO_Label
 PH5.Signal=GPIO_Output
+TIM1.Prescaler=167
 Mcu.UserConstants=
 PH3.Locked=true
 Dma.USART6_TX.3.Priority=DMA_PRIORITY_LOW
@@ -62,7 +66,7 @@ Mcu.ThirdPartyNb=0
 SPI1.Direction=SPI_DIRECTION_1LINE
 PH0/OSC_IN.Mode=HSE-External-Oscillator
 RCC.HCLKFreq_Value=168000000
-Mcu.IPNb=10
+Mcu.IPNb=11
 RCC.I2SClocksFreq_Value=192000000
 ProjectManager.PreviousToolchain=
 RCC.APB2TimFreq_Value=168000000
@@ -95,6 +99,7 @@ RCC.HSE_VALUE=12000000
 NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 PB3.Mode=Simplex_Bidirectional_Master
+Mcu.IP10=USART6
 PD1.GPIOParameters=GPIO_Label
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 PD1.GPIO_Label=CAN1_TX
@@ -106,12 +111,14 @@ MxDb.Version=DB.6.0.0
 PE0.GPIOParameters=GPIO_Label
 ProjectManager.BackupPrevious=false
 RCC.VCOInputFreq_Value=2000000
+TIM1.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
 PA14.Mode=Serial_Wire
 File.Version=6
 PG4.GPIO_Label=BOARD_LED_E
 PB3.GPIOParameters=GPIO_Label
 PH3.GPIOParameters=GPIO_Label
 PB7.Signal=USART1_RX
+PA8.Signal=S_TIM1_CH1
 PE1.Locked=true
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 SH.ADCx_IN6.ConfNb=1
@@ -132,6 +139,7 @@ PA6.Signal=ADCx_IN6
 NVIC.DMA2_Stream7_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 PA7.Locked=true
 PG5.GPIOParameters=GPIO_Label
+TIM1.Pulse-PWM\ Generation2\ CH2=1000
 USART6.VirtualMode=VM_ASYNC
 ProjectManager.ToolChainLocation=
 RCC.LSI_VALUE=32000
@@ -152,6 +160,7 @@ Dma.Request3=USART6_TX
 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 Dma.USART1_RX.0.Mode=DMA_CIRCULAR
 Dma.USART1_TX.1.Priority=DMA_PRIORITY_LOW
+TIM1.Period=9999
 PB10.GPIOParameters=GPIO_Label
 NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
 Dma.Request0=USART1_RX
@@ -174,7 +183,7 @@ PG7.Signal=GPIO_Output
 PA7.Mode=Simplex_Bidirectional_Master
 Dma.USART1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
 PB9.GPIO_Label=OLED_DC
-Mcu.PinsNb=32
+Mcu.PinsNb=34
 ProjectManager.NoMain=false
 SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler
 PG3.Signal=GPIO_Output
@@ -207,6 +216,7 @@ NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true
 PB9.GPIOParameters=GPIO_Label
 PG8.GPIO_Label=BOARD_LED_A
 PA13.Signal=SYS_JTMS-SWDIO
+SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
 PH4.Signal=GPIO_Output
 CAN1.BS2=CAN_BS2_4TQ
 Dma.USART6_RX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode
@@ -217,7 +227,9 @@ PB10.GPIO_Label=OLED_RST
 Dma.USART6_RX.2.MemInc=DMA_MINC_ENABLE
 PB7.GPIOParameters=GPIO_Label
 Dma.USART1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
+PA9.Signal=S_TIM1_CH2
 USART1.Parity=PARITY_EVEN
+TIM1.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2
 RCC.VcooutputI2SQ=192000000
 PB9.Locked=true
 Dma.USART6_RX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
@@ -229,6 +241,7 @@ NVIC.DMA2_Stream6_IRQn=true\:0\:0\:false\:false\:true\:false\:true
 PE11.Signal=GPIO_Output
 RCC.LSE_VALUE=32768
 Dma.USART1_RX.0.PeriphInc=DMA_PINC_DISABLE
+SH.S_TIM1_CH2.ConfNb=1
 CAN1.ABOM=ENABLE
 PB10.Signal=GPIO_Output
 RCC.VCOI2SOutputFreq_Value=384000000
@@ -253,13 +266,16 @@ RCC.APB2Freq_Value=84000000
 MxCube.Version=6.0.1
 USART1.Mode=MODE_TX_RX
 PG4.GPIOParameters=GPIO_Label
+SH.S_TIM1_CH2.0=TIM1_CH2,PWM Generation2 CH2
 SPI1.Mode=SPI_MODE_MASTER
 PG7.GPIO_Label=BOARD_LED_B
-Mcu.Pin30=PB10
+Mcu.Pin30=PA7
 VP_SYS_VS_Systick.Mode=SysTick
 RCC.EthernetFreq_Value=168000000
+Mcu.Pin33=VP_SYS_VS_Systick
 Dma.USART1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
-Mcu.Pin31=VP_SYS_VS_Systick
+Mcu.Pin31=PF14
+Mcu.Pin32=PB10
 NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 PF14.Locked=true
 PA13.Mode=Serial_Wire
@@ -271,28 +287,28 @@ ProjectManager.AskForMigrate=true
 Mcu.Name=STM32F427I(G-I)Hx
 PE0.Signal=UART8_RX
 PD0.Mode=Master
-Mcu.Pin26=PA6
-Mcu.Pin27=PE11
+Mcu.Pin26=PG2
+Mcu.Pin27=PG1
 RCC.RTCHSEDivFreq_Value=6000000
-Mcu.Pin24=PG2
+Mcu.Pin24=PG4
 ProjectManager.UnderRoot=false
-Mcu.Pin25=PG1
-Mcu.IP8=USART1
-Mcu.IP9=USART6
-Mcu.Pin28=PA7
+Mcu.Pin25=PG3
+Mcu.IP8=UART8
+Mcu.IP9=USART1
+Mcu.Pin28=PA6
 Mcu.IP6=SYS
-Mcu.Pin29=PF14
-Mcu.IP7=UART8
+Mcu.Pin29=PE11
+Mcu.IP7=TIM1
 ProjectManager.CoupleFile=true
 RCC.48MHZClocksFreq_Value=84000000
 PB3.Signal=SPI1_SCK
 RCC.SYSCLKFreq_VALUE=168000000
-Mcu.Pin22=PG4
-Mcu.Pin23=PG3
-Mcu.Pin20=PG6
+Mcu.Pin22=PG6
+Mcu.Pin23=PG5
+Mcu.Pin20=PH5
 PA7.GPIO_Label=OLED_MOSI
 ADC1.master=1
-Mcu.Pin21=PG5
+Mcu.Pin21=PG7
 NVIC.ForceEnableDMAVector=true
 KeepUserPlacement=false
 Dma.USART1_TX.1.Mode=DMA_NORMAL
@@ -302,27 +318,27 @@ ProjectManager.CompilerOptimize=6
 PB7.Mode=Asynchronous
 PA14.Signal=SYS_JTCK-SWCLK
 ProjectManager.HeapSize=0x200
-Mcu.Pin15=PH1/OSC_OUT
+Mcu.Pin15=PH0/OSC_IN
 Dma.USART1_TX.1.PeriphInc=DMA_PINC_DISABLE
 NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
-Mcu.Pin16=PH4
+Mcu.Pin16=PH3
 PH5.Locked=true
-Mcu.Pin13=PH0/OSC_IN
-Mcu.Pin14=PH3
+Mcu.Pin13=PH2
+Mcu.Pin14=PA8
 Dma.USART6_TX.3.FIFOMode=DMA_FIFOMODE_DISABLE
-Mcu.Pin19=PG7
+Mcu.Pin19=PG8
 Dma.USART6_TX.3.Instance=DMA2_Stream6
 ProjectManager.ComputerToolchain=false
-Mcu.Pin17=PG8
+Mcu.Pin17=PH1/OSC_OUT
 RCC.HSI_VALUE=16000000
-Mcu.Pin18=PH5
+Mcu.Pin18=PH4
 PH2.Locked=true
 NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
 ADC1.NbrOfConversionFlag=1
 Mcu.Pin11=PD1
 PH3.Signal=GPIO_Output
 PD0.GPIOParameters=GPIO_Label
-Mcu.Pin12=PH2
+Mcu.Pin12=PA9
 RCC.PLLM=6
 RCC.PLLN=168
 Mcu.Pin10=PG9
diff --git a/Src/BoardA_handle.c b/Src/BoardA_handle.c
index cdbec47..e478e9b 100644
--- a/Src/BoardA_handle.c
+++ b/Src/BoardA_handle.c
@@ -58,11 +58,36 @@ void signOfLife_refereeSystem(){
 
 /* Gère le signe de vie, LED C: Si on recoit des données sur le bus CAN1 */
 void signOfLife_can1(){
-  if ((HAL_GetTick() - signOfLife_CAN1_tick) < 100){
+  if ((HAL_GetTick() - motors[TOURELLE_YAW].signOfLife_tick) < 100){
 		BOARD_LED_C_ON();
 	}else{
 		BOARD_LED_C_OFF();
 	}
+	if ((HAL_GetTick() - motors[TOURELLE_PITCH].signOfLife_tick) < 100){
+		BOARD_LED_D_ON();
+	}else{
+		BOARD_LED_D_OFF();
+	}
+	if ((HAL_GetTick() - motors[FRONT_RIGHT].signOfLife_tick) < 100){
+		BOARD_LED_E_ON();
+	}else{
+		BOARD_LED_E_OFF();
+	}
+	if ((HAL_GetTick() - motors[FRONT_LEFT].signOfLife_tick) < 100){
+		BOARD_LED_F_ON();
+	}else{
+		BOARD_LED_F_OFF();
+	}
+	if ((HAL_GetTick() - motors[BACK_RIGHT].signOfLife_tick) < 100){
+		BOARD_LED_G_ON();
+	}else{
+		BOARD_LED_G_OFF();
+	}
+	if ((HAL_GetTick() - motors[BACK_LEFT].signOfLife_tick) < 100){
+		BOARD_LED_H_ON();
+	}else{
+		BOARD_LED_H_OFF();
+	}
 }
 
 /* Permet d'afficher ce que l'on souhaite debuger sur l'uart
diff --git a/Src/main.c b/Src/main.c
index 31d211d..97d7549 100644
--- a/Src/main.c
+++ b/Src/main.c
@@ -23,13 +23,13 @@
 #include "can.h"
 #include "dma.h"
 #include "spi.h"
+#include "tim.h"
 #include "usart.h"
 #include "gpio.h"
 
 /* Private includes ----------------------------------------------------------*/
 /* USER CODE BEGIN Includes */
 #include "main.h"
-#include "traitement.h"
 /* USER CODE END Includes */
 
 /* Private typedef -----------------------------------------------------------*/
@@ -97,7 +97,10 @@ int main(void)
   MX_USART6_UART_Init();
   MX_CAN1_Init();
   MX_UART8_Init();
+  MX_TIM1_Init();
   /* USER CODE BEGIN 2 */
+	PWM_init();
+	//PWM_ScaleAll(&htim1); //etalonnage du PWM entre 0 et 1 (a faire uniquement lors de l'installation des moteurs la 1ere fois) info: motors.c
 	HAL_GPIO_WritePin(GPIOH, BOARD_POWER1_CTRL_Pin|BOARD_POWER2_CTRL_Pin|BOARD_POWER3_CTRL_Pin|BOARD_POWER4_CTRL_Pin, GPIO_PIN_SET); // switch on 24v power
 	BOARD_LED_ALL_OFF
 	oled_init();
@@ -105,6 +108,7 @@ int main(void)
 	uart6_init();
 	can1_init();
 	robotInit(3); //Initialise le robot comme un standard, l'objectif c'est que l'initialisation de fasse par le referee system
+	extern motor_t motors[MAX_MOTORS];
 	
   /* USER CODE END 2 */
 
@@ -118,6 +122,7 @@ int main(void)
 		traitement_1();							//Calcul les consignes des moteurs
 		traitement_pids_compute(); 	//Calcul les commandes des moteurs
 		can_send_command(); 				//Envoie des commandes des moteurs
+		
     /* USER CODE END WHILE */
 
     /* USER CODE BEGIN 3 */
diff --git a/Src/motors.c b/Src/motors.c
index 196c6e0..1cbee49 100644
--- a/Src/motors.c
+++ b/Src/motors.c
@@ -17,6 +17,7 @@ void can_send_command(){
   if((HAL_GetTick() - tickstart) < 10){
 		return;
 	}
+	tickstart = HAL_GetTick();
 	
 	int32_t trams[3] = {0x200, 0x1FF, 0x2FF};
 	for(int i = 0 ; i < 3 ; i++){
@@ -74,9 +75,8 @@ void can_motors_callback_handler(int16_t rx_id, uint8_t* rx_buff){
 }
 
 /* Modifie la consigne tout en vérifiant les limites de postion */
-void add_consigne_position(motor_t* motor, float value){
-	float consigne_position = motor->consigne;
-	consigne_position += value;
+void add_consigne_position(motor_t* motor, float value, float coeff){
+	float consigne_position = motor->consigne + (value * coeff);
 	if(consigne_position > 360) consigne_position -= (float) 360.0;
 	if(consigne_position < 0) 	consigne_position += (float) 360.0;
 	if(motor->MAX_POSITION > 0 && consigne_position > motor->MAX_POSITION) consigne_position = motor->MAX_POSITION;
@@ -103,3 +103,49 @@ void can1_init(){
   HAL_CAN_Start(&hcan1);                          // start can
   HAL_CAN_ActivateNotification(&hcan1, CAN_IT_RX_FIFO0_MSG_PENDING); // enable can rx interrupt
 }
+
+
+
+
+
+/* Initialise le TIMER 1 pour les PWM */
+void PWM_init(void)
+{
+    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); // start pwm output
+    HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2);
+}
+
+/* Set le duty cycle de tous les channels PWM */ 
+void PWM_SetAllDuty(TIM_HandleTypeDef *tim, float duty_ch1, float duty_ch2){
+	duty_ch1 = duty_ch1/10 + 0.10f; //rescale before send
+	duty_ch2 = duty_ch2/10 + 0.10f;
+	tim->Instance->CCR1 = (10000*duty_ch1) - 1;
+	tim->Instance->CCR2 = (10000*duty_ch2) - 1;
+}
+
+/* scales all PWM duty cycles between 0 and 1 
+Cette fonction permet d'étalonner le snail pour que ca commande 0 = min, et 1 = max
+
+Pour utiliser cette fonction, il faut le faire moteur PWM par moteur PWM
+	1- Débrancher l'alimentation de tous les moteurs PWM
+	2- Brancher l'alimentation du moteur PWM a étalonner sur la sortie XT30 de la BOARD A - POWER 1
+  2- Envoyer sur la board A grâce au ST LINK un programe avec cette fonction appelé dans le main.c, avant la boucle infinie
+	3- Brancher l'alimentation 24V de la board A, le programme va se lancer : 
+		a) va couper l'alimentation 24V du snail
+    b) Met l'impulsion PWM au max
+    c) Attends, allume le snail, attends
+		d) Coupe tous le signal PWM
+
+*/
+void PWM_ScaleAll(TIM_HandleTypeDef *tim){ //il faudrait jouer sur l'allumage des ports d'alimentation des snails (voir Nathan pour plus de détails)
+	HAL_GPIO_WritePin(GPIOH, BOARD_POWER1_CTRL_Pin, GPIO_PIN_RESET); // switch off 24v power
+	PWM_SetAllDuty(&htim1,1,1);
+	HAL_Delay(10);
+	
+	HAL_GPIO_WritePin(GPIOH, BOARD_POWER1_CTRL_Pin, GPIO_PIN_SET); // switch on 24v power
+	HAL_Delay(3500);
+	
+	PWM_SetAllDuty(&htim1,0,0);
+	HAL_Delay(500);
+	while(1);
+}
diff --git a/Src/robot_configuration.c b/Src/robot_configuration.c
index 5944e8c..1f8b2f7 100644
--- a/Src/robot_configuration.c
+++ b/Src/robot_configuration.c
@@ -53,6 +53,9 @@ void robotInit(uint8_t robot_id){
 		109: Blue Radar Station.
 	*/
 	if(robot_id > 100) robot_id -= 100; 
+	float pid_chassis_p = 2;
+	float pid_chassis_i = 0.5;
+	float pid_chassis_d = 0.01;
 	switch(robot_id){
 		/* Standard */
 		case 3:
@@ -67,8 +70,9 @@ void robotInit(uint8_t robot_id){
 							&motors[FRONT_LEFT].info.speed, //input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[FRONT_LEFT].command, 		//output: la commande que l'on envoie au moteur
 							&motors[FRONT_LEFT].consigne, 	//consigne: On veut que le moteur soit à cette position ou tourne a cette vitesse
-							1, 0.5, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
+							pid_chassis_p, pid_chassis_i, pid_chassis_d); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_limits(&motors[FRONT_LEFT].pid, -16384, 16384); //Minimum et maximum de la commande envoyable au moteur
+			
 		
 			strcpy(motors[FRONT_RIGHT].debug_name, "FRONT RIGHT");
 			motors[FRONT_RIGHT].type = M3508;
@@ -79,9 +83,9 @@ void robotInit(uint8_t robot_id){
 							&motors[FRONT_RIGHT].info.speed, //input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[FRONT_RIGHT].command, 		//output: la commande que l'on envoie au moteur
 							&motors[FRONT_RIGHT].consigne, 	//consigne: On veut que le moteur soit à cette position ou tourne a cette vitesse
-							1, 0.5, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
+							pid_chassis_p, pid_chassis_i, pid_chassis_d); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_limits(&motors[FRONT_RIGHT].pid, -16384, 16384); //Minimum et maximum de la commande envoyable au moteur
-		
+			
 			strcpy(motors[BACK_RIGHT].debug_name, "BACK RIGHT");
 			motors[BACK_RIGHT].type = M3508;
 			motors[BACK_RIGHT].can_rx_id = 0x200+3; // ID = 3
@@ -91,9 +95,9 @@ void robotInit(uint8_t robot_id){
 							&motors[BACK_RIGHT].info.speed, //input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[BACK_RIGHT].command, 		//output: la commande que l'on envoie au moteur
 							&motors[BACK_RIGHT].consigne, 	//consigne: On veut que le moteur soit à cette position ou tourne a cette vitesse
-							1, 0.5, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
+							pid_chassis_p, pid_chassis_i, pid_chassis_d); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_limits(&motors[BACK_RIGHT].pid, -16384, 16384); //Minimum et maximum de la commande envoyable au moteur
-
+			
 			strcpy(motors[BACK_LEFT].debug_name, "BACK LEFT");
 			motors[BACK_LEFT].type = M3508;
 			motors[BACK_LEFT].can_rx_id = 0x200+4; // ID = 4
@@ -103,7 +107,7 @@ void robotInit(uint8_t robot_id){
 							&motors[BACK_LEFT].info.speed, //input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[BACK_LEFT].command, 		//output: la commande que l'on envoie au moteur
 							&motors[BACK_LEFT].consigne, 	//consigne: On veut que le moteur soit à cette position ou tourne a cette vitesse
-							1, 0.5, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
+							pid_chassis_p, pid_chassis_i, pid_chassis_d); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_limits(&motors[BACK_LEFT].pid, -16384, 16384); //Minimum et maximum de la commande envoyable au moteur
 			
 			strcpy(motors[TOURELLE_PITCH].debug_name, "TOURELLE PITCH");
@@ -111,17 +115,17 @@ void robotInit(uint8_t robot_id){
 			motors[TOURELLE_PITCH].can_rx_id = 0x204+1; // ID = 1
 			motors[TOURELLE_PITCH].can_tx_frame = 0x1FF; 
 			motors[TOURELLE_PITCH].can_tx_id = 1;
-			motors[TOURELLE_PITCH].MIN_POSITION = 244.58; //en deg
-			motors[TOURELLE_PITCH].MAX_POSITION = 292.37; //en deg
-			motors[TOURELLE_PITCH].consigne = 272.49; //en deg //Valeur initiale
+			motors[TOURELLE_PITCH].MIN_POSITION = 245; //en deg
+			motors[TOURELLE_PITCH].MAX_POSITION = 293; //en deg
+			motors[TOURELLE_PITCH].consigne = 250; //en deg //Valeur initiale
 			pid_create(&motors[TOURELLE_PITCH].pid, 
 							&motors[TOURELLE_PITCH].info.angle_360, 		//input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[TOURELLE_PITCH].command, 						//output: la commande que l'on envoie au moteur
 							&motors[TOURELLE_PITCH].consigne, 	//consigne: On veut que le moteur soit à cette position ou tourne a cette vitesse
-							200, 100, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
+							400, 100, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_circulaire(&motors[TOURELLE_PITCH].pid, 360); //Asservissement circulaire, permet, comme on fait une régulation en position, quand on est a position = 350 degrée, que la consigne est à 10deg, de ne pas faire tout le tour
 			pid_limits(&motors[TOURELLE_PITCH].pid, -30000, 30000); //Minimum et maximum de la commande envoyable au moteur
- 
+			
 			strcpy(motors[TOURELLE_YAW].debug_name, "TOURELLE YAW");
 			motors[TOURELLE_YAW].type = GM6020;
 			motors[TOURELLE_YAW].can_rx_id = 0x204+2; // ID = 2
@@ -129,7 +133,7 @@ void robotInit(uint8_t robot_id){
 			motors[TOURELLE_YAW].can_tx_id = 2;
 			motors[TOURELLE_YAW].MIN_POSITION = 110.71; //en deg
 			motors[TOURELLE_YAW].MAX_POSITION = 308.44; //en deg
-			motors[TOURELLE_YAW].consigne = 208.76; //en deg //Valeur initiale
+			motors[TOURELLE_YAW].consigne = 208; //en deg //Valeur initiale
 			pid_create(&motors[TOURELLE_YAW].pid, 
 							&motors[TOURELLE_YAW].info.angle_360, 		//input : le retour sur la quelle ont veut atteintre la consigne 
 							&motors[TOURELLE_YAW].command, 						//output: la commande que l'on envoie au moteur
@@ -137,7 +141,7 @@ void robotInit(uint8_t robot_id){
 							200, 100, 0); //k, i, d : les coefficient de régulation : http://www.ferdinandpiette.com/blog/2011/08/implementer-un-pid-sans-faire-de-calculs/
 			pid_circulaire(&motors[TOURELLE_YAW].pid, 360); //Asservissement circulaire, permet, comme on fait une régulation en position, quand on est a position = 350 degrée, que la consigne est à 10deg, de ne pas faire tout le tour
 			pid_limits(&motors[TOURELLE_YAW].pid, -30000, 30000); //Minimum et maximum de la commande envoyable au moteur
-
+			
 			strcpy(motors[FEEDER].debug_name, "FEEDER");
 			motors[FEEDER].type = M2006;
 			motors[FEEDER].can_rx_id = 0x200+7; // ID = 7
diff --git a/Src/tim.c b/Src/tim.c
new file mode 100644
index 0000000..f3aa907
--- /dev/null
+++ b/Src/tim.c
@@ -0,0 +1,147 @@
+/**
+  ******************************************************************************
+  * File Name          : TIM.c
+  * Description        : This file provides code for the configuration
+  *                      of the TIM instances.
+  ******************************************************************************
+  * @attention
+  *
+  * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
+  * All rights reserved.</center></h2>
+  *
+  * This software component is licensed by ST under BSD 3-Clause license,
+  * the "License"; You may not use this file except in compliance with the
+  * License. You may obtain a copy of the License at:
+  *                        opensource.org/licenses/BSD-3-Clause
+  *
+  ******************************************************************************
+  */
+
+/* Includes ------------------------------------------------------------------*/
+#include "tim.h"
+
+/* USER CODE BEGIN 0 */
+
+/* USER CODE END 0 */
+
+TIM_HandleTypeDef htim1;
+
+/* TIM1 init function */
+void MX_TIM1_Init(void)
+{
+  TIM_MasterConfigTypeDef sMasterConfig = {0};
+  TIM_OC_InitTypeDef sConfigOC = {0};
+  TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig = {0};
+
+  htim1.Instance = TIM1;
+  htim1.Init.Prescaler = 167;
+  htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+  htim1.Init.Period = 9999;
+  htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+  htim1.Init.RepetitionCounter = 0;
+  htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+  if (HAL_TIM_PWM_Init(&htim1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+  sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+  if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sConfigOC.OCMode = TIM_OCMODE_PWM1;
+  sConfigOC.Pulse = 1000;
+  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+  sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
+  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+  sConfigOC.OCIdleState = TIM_OCIDLESTATE_RESET;
+  sConfigOC.OCNIdleState = TIM_OCNIDLESTATE_RESET;
+  if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  if (HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
+  sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
+  sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
+  sBreakDeadTimeConfig.DeadTime = 0;
+  sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
+  sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
+  sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
+  if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
+  {
+    Error_Handler();
+  }
+  HAL_TIM_MspPostInit(&htim1);
+
+}
+
+void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
+{
+
+  if(tim_pwmHandle->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspInit 0 */
+
+  /* USER CODE END TIM1_MspInit 0 */
+    /* TIM1 clock enable */
+    __HAL_RCC_TIM1_CLK_ENABLE();
+  /* USER CODE BEGIN TIM1_MspInit 1 */
+
+  /* USER CODE END TIM1_MspInit 1 */
+  }
+}
+void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
+{
+
+  GPIO_InitTypeDef GPIO_InitStruct = {0};
+  if(timHandle->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspPostInit 0 */
+
+  /* USER CODE END TIM1_MspPostInit 0 */
+
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+    /**TIM1 GPIO Configuration
+    PA9     ------> TIM1_CH2
+    PA8     ------> TIM1_CH1
+    */
+    GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_8;
+    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+    GPIO_InitStruct.Pull = GPIO_NOPULL;
+    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+    GPIO_InitStruct.Alternate = GPIO_AF1_TIM1;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /* USER CODE BEGIN TIM1_MspPostInit 1 */
+
+  /* USER CODE END TIM1_MspPostInit 1 */
+  }
+
+}
+
+void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
+{
+
+  if(tim_pwmHandle->Instance==TIM1)
+  {
+  /* USER CODE BEGIN TIM1_MspDeInit 0 */
+
+  /* USER CODE END TIM1_MspDeInit 0 */
+    /* Peripheral clock disable */
+    __HAL_RCC_TIM1_CLK_DISABLE();
+  /* USER CODE BEGIN TIM1_MspDeInit 1 */
+
+  /* USER CODE END TIM1_MspDeInit 1 */
+  }
+}
+
+/* USER CODE BEGIN 1 */
+
+/* USER CODE END 1 */
+
+/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Src/traitement.c b/Src/traitement.c
index f4d0f09..7b218bc 100644
--- a/Src/traitement.c
+++ b/Src/traitement.c
@@ -6,7 +6,7 @@
 
 #include "traitement.h"
 
-#define MAX_BASE_SPEED_COEFF  6
+#define MAX_BASE_SPEED_COEFF  10
 
 /* On récupère les variables exterieurs */
 extern receiver_RadioController_t receiver_RadioController;	
@@ -24,9 +24,16 @@ void traitement_pids_compute(){
 
 /* Fonctions qui fait les liens entre les entrées (capteurs, radio controller, CV, ...) et les sorties (consignes moteurs), on peut créer plusieurs traitements */
 void traitement_1(){
-	add_consigne_position(&motors[TOURELLE_PITCH], (float)receiver_RadioController.data.ch2_float/15);
-	add_consigne_position(&motors[TOURELLE_YAW], 	(float)receiver_RadioController.data.ch1_float/15);
-
+	add_consigne_position(&motors[TOURELLE_PITCH], (float)receiver_RadioController.data.ch2_float, 0.00005);
+	add_consigne_position(&motors[TOURELLE_YAW], 	(float)receiver_RadioController.data.ch1_float, -0.00005);
+			
+	if(motors[TOURELLE_PITCH].info.angle_360 > 293){
+		BOARD_LED_GREEN_ON();
+	}else{
+		BOARD_LED_GREEN_OFF();
+	}
+	
+	
 	switch(receiver_RadioController.data.sw1){
 		case 1:
 			motors[FEEDER].consigne = 0;
@@ -38,9 +45,21 @@ void traitement_1(){
 			motors[FEEDER].consigne = 10000;
 			break;
 	}
+	switch(receiver_RadioController.data.sw2){
+		case 1:
+			PWM_SetAllDuty(&htim1, 0.0, 0.0);
+			break;
+		case 3:
+			PWM_SetAllDuty(&htim1, 0.25, 0.25);
+			break;
+		case 2:
+			PWM_SetAllDuty(&htim1, 0.50, 0.50);
+			break;
+	}
+	
 	
-	motors[FRONT_LEFT].consigne 	= MAX_BASE_SPEED_COEFF*(+ receiver_RadioController.data.ch3 + receiver_RadioController.data.ch4);
-	motors[FRONT_RIGHT].consigne 	= MAX_BASE_SPEED_COEFF*(+ receiver_RadioController.data.ch3 - receiver_RadioController.data.ch4);
-	motors[BACK_RIGHT].consigne 	= motors[FRONT_LEFT].consigne;
-	motors[BACK_LEFT].consigne 		= motors[FRONT_RIGHT].consigne;
+	motors[FRONT_LEFT].consigne 	= MAX_BASE_SPEED_COEFF*(receiver_RadioController.data.ch4 - receiver_RadioController.data.ch3 - 0.3*receiver_RadioController.data.wheel);
+	motors[FRONT_RIGHT].consigne 	= -MAX_BASE_SPEED_COEFF*(receiver_RadioController.data.ch4 + receiver_RadioController.data.ch3 + 0.3*receiver_RadioController.data.wheel);
+	motors[BACK_RIGHT].consigne 	= -MAX_BASE_SPEED_COEFF*(receiver_RadioController.data.ch4 - receiver_RadioController.data.ch3 + 0.3*receiver_RadioController.data.wheel);
+	motors[BACK_LEFT].consigne 		= MAX_BASE_SPEED_COEFF*(receiver_RadioController.data.ch4 + receiver_RadioController.data.ch3 - 0.3*receiver_RadioController.data.wheel); 
 }
-- 
GitLab