From c6e5cf5baf287a9c10ab4de3d663f22401424a5f Mon Sep 17 00:00:00 2001 From: Niklas Fauth Date: Thu, 6 Dec 2018 17:10:30 +0100 Subject: [PATCH] TranspOtterNG firmware ready --- .../Src/stm32f1xx_hal_i2c.c | 282 +- Inc/config.h | 19 +- Src/control.c | 17 +- Src/hd44780.c | 21 +- Src/main.c | 261 +- Src/setup.c | 2 +- build/hover.hex | 2277 +++++++++-------- 7 files changed, 1452 insertions(+), 1427 deletions(-) diff --git a/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c b/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c index 3c957e2b..441c1647 100644 --- a/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c +++ b/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_i2c.c @@ -35,13 +35,13 @@ (+++) Configure the DMA handle parameters (+++) Configure the DMA Tx or Rx channel (+++) Associate the initialized DMA handle to the hi2c DMA Tx or Rx handle - (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on + (+++) Configure the priority and enable the NVIC for the transfer complete interrupt on the DMA Tx or Rx channel (#) Configure the Communication Speed, Duty cycle, Addressing mode, Own Address1, Dual Addressing mode, Own Address2, General call and Nostretch mode in the hi2c Init structure. - (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level Hardware + (#) Initialize the I2C registers by calling the HAL_I2C_Init(), configures also the low level Hardware (GPIO, CLOCK, NVIC...etc) by calling the customized HAL_I2C_MspInit(&hi2c) API. (#) To check if target device is ready for communication, use the function HAL_I2C_IsDeviceReady() @@ -92,7 +92,7 @@ [..] (+) A specific option field manage the different steps of a sequential transfer (+) Option field values are defined through @ref I2C_XFEROPTIONS and are listed below: - (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfaces in no sequential mode + (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfaces in no sequential mode (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address and data to transfer without a final stop condition (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address @@ -204,14 +204,14 @@ (#) Workarounds Implemented inside I2C HAL Driver (##) Wrong data read into data register (Polling and Interrupt mode) (##) Start cannot be generated after a misplaced Stop - (##) Some software events must be managed before the current byte is being transferred: + (##) Some software events must be managed before the current byte is being transferred: Workaround: Use DMA in general, except when the Master is receiving a single byte. For Interupt mode, I2C should have the highest priority in the application. (##) Mismatch on the "Setup time for a repeated Start condition" timing parameter: - Workaround: Reduce the frequency down to 88 kHz or use the I2C Fast-mode if + Workaround: Reduce the frequency down to 88 kHz or use the I2C Fast-mode if supported by the slave. (##) Data valid time (tVD;DAT) violated without the OVR flag being set: - Workaround: If the slave device allows it, use the clock stretching mechanism + Workaround: If the slave device allows it, use the clock stretching mechanism by programming NoStretchMode = I2C_NOSTRETCH_DISABLE in HAL_I2C_Init. @endverbatim @@ -263,7 +263,7 @@ /* Private define ------------------------------------------------------------*/ /** @addtogroup I2C_Private_Define * @{ - */ + */ #define I2C_TIMEOUT_FLAG 35U /*!< Timeout 35 ms */ #define I2C_TIMEOUT_BUSY_FLAG 25U /*!< Timeout 25 ms */ #define I2C_NO_OPTION_FRAME 0xFFFF0000U /*!< XferOptions default value */ @@ -676,7 +676,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevA hi2c->XferCount--; hi2c->XferSize--; } - + /* Wait until BTF flag is set */ if(I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { @@ -698,7 +698,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevA hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Process Unlocked */ __HAL_UNLOCK(hi2c); @@ -711,7 +711,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevA } /** - * @brief Receives in master mode an amount of data in blocking mode. + * @brief Receives in master mode an amount of data in blocking mode. * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param DevAddress Target device address: The device 7 bits address value @@ -800,7 +800,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd hi2c->Instance->CR1 |= I2C_CR1_STOP; /* Re-enable IRQs */ - __enable_irq(); + __enable_irq(); } else if(hi2c->XferSize == 2U) { @@ -818,7 +818,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd hi2c->Instance->CR1 &= ~I2C_CR1_ACK; /* Re-enable IRQs */ - __enable_irq(); + __enable_irq(); } else { @@ -837,7 +837,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd if(hi2c->XferSize == 1U) { /* Wait until RXNE flag is set */ - if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { if(hi2c->ErrorCode == HAL_I2C_ERROR_TIMEOUT) { @@ -919,7 +919,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd hi2c->XferCount--; /* Re-enable IRQs */ - __enable_irq(); + __enable_irq(); /* Read data from DR */ (*hi2c->pBuffPtr++) = hi2c->Instance->DR; @@ -930,7 +930,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd else { /* Wait until RXNE flag is set */ - if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { if(hi2c->ErrorCode == HAL_I2C_ERROR_TIMEOUT) { @@ -972,7 +972,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd } /** - * @brief Transmits in slave mode an amount of data in blocking mode. + * @brief Transmits in slave mode an amount of data in blocking mode. * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param pData Pointer to data buffer @@ -983,10 +983,10 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi2c, uint16_t DevAd HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size, uint32_t Timeout) { uint32_t tickstart = 0x00U; - + /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - + if(hi2c->State == HAL_I2C_STATE_READY) { if((pData == NULL) || (Size == 0U)) @@ -996,7 +996,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -1101,7 +1101,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit(I2C_HandleTypeDef *hi2c, uint8_t *pData } /** - * @brief Receive in slave mode an amount of data in blocking mode + * @brief Receive in slave mode an amount of data in blocking mode * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param pData Pointer to data buffer @@ -1161,7 +1161,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData, while(hi2c->XferSize > 0U) { /* Wait until RXNE flag is set */ - if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { /* Disable Address Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; @@ -1261,7 +1261,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t D /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -1331,14 +1331,14 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t De /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -1400,7 +1400,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, { __IO uint32_t Prev_State = 0x00U; __IO uint32_t count = 0x00U; - + /* Check the parameters */ assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); @@ -1417,11 +1417,11 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, { hi2c->PreviousState = I2C_STATE_NONE; hi2c->State= HAL_I2C_STATE_READY; - + /* Process Unlocked */ __HAL_UNLOCK(hi2c); - - return HAL_TIMEOUT; + + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -1452,8 +1452,8 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, hi2c->Devaddress = DevAddress; Prev_State = hi2c->PreviousState; - - /* Generate Start */ + + /* Generate Start */ if((Prev_State == I2C_STATE_MASTER_BUSY_RX) || (Prev_State == I2C_STATE_NONE)) { /* Generate Start condition if first transfer */ @@ -1502,7 +1502,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c, HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t XferOptions) { __IO uint32_t count = 0U; - + /* Check the parameters */ assert_param(IS_I2C_TRANSFER_OPTIONS_REQUEST(XferOptions)); @@ -1523,7 +1523,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -1552,7 +1552,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, hi2c->XferOptions = XferOptions; hi2c->XferSize = hi2c->XferCount; hi2c->Devaddress = DevAddress; - + if((hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX) || (hi2c->PreviousState == I2C_STATE_NONE)) { /* Generate Start condition if first transfer */ @@ -1560,7 +1560,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, { /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; - + /* Generate Start */ hi2c->Instance->CR1 |= I2C_CR1_START; } @@ -1568,7 +1568,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c, { /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; - + /* Generate ReStart */ hi2c->Instance->CR1 |= I2C_CR1_START; } @@ -1623,7 +1623,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pD /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -1673,7 +1673,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit_IT(I2C_HandleTypeDef *hi2c, uint8_t *pD } /** - * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt + * @brief Receive in slave mode an amount of data in non-blocking mode with Interrupt * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param pData Pointer to data buffer @@ -1703,7 +1703,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pDa /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -1895,7 +1895,7 @@ HAL_StatusTypeDef HAL_I2C_EnableListen_IT(I2C_HandleTypeDef *hi2c) if(hi2c->State == HAL_I2C_STATE_READY) { hi2c->State = HAL_I2C_STATE_LISTEN; - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -1941,7 +1941,7 @@ HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c) /* Disable EVT and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); - + return HAL_OK; } else @@ -1978,7 +1978,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -2012,7 +2012,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t /* Set the I2C DMA transfer complete callback */ hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; - /* Set the DMA error callback */ + /* Set the DMA error callback */ hi2c->hdmatx->XferErrorCallback = I2C_DMAError; /* Set the unused DMA callbacks to NULL */ @@ -2069,7 +2069,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t } /** - * @brief Receive in master mode an amount of data in non-blocking mode with DMA + * @brief Receive in master mode an amount of data in non-blocking mode with DMA * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param DevAddress Target device address: The device 7 bits address value @@ -2096,14 +2096,14 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t D /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -2113,18 +2113,18 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t D /* Disable Pos */ hi2c->Instance->CR1 &= ~I2C_CR1_POS; - + hi2c->State = HAL_I2C_STATE_BUSY_RX; hi2c->Mode = HAL_I2C_MODE_MASTER; hi2c->ErrorCode = HAL_I2C_ERROR_NONE; - + /* Prepare transfer parameters */ hi2c->pBuffPtr = pData; hi2c->XferCount = Size; hi2c->XferOptions = I2C_NO_OPTION_FRAME; hi2c->XferSize = hi2c->XferCount; hi2c->Devaddress = DevAddress; - + if(hi2c->XferSize > 0U) { /* Set the I2C DMA transfer complete callback */ @@ -2177,7 +2177,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Receive_DMA(I2C_HandleTypeDef *hi2c, uint16_t D /* Enable EVT, BUF and ERR interrupt */ __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); } - + return HAL_OK; } else @@ -2237,7 +2237,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevA } /** - * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA + * @brief Transmit in slave mode an amount of data in non-blocking mode with DMA * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param pData Pointer to data buffer @@ -2247,7 +2247,7 @@ HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevA HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pData, uint16_t Size) { __IO uint32_t count = 0U; - + if(hi2c->State == HAL_I2C_STATE_READY) { if((pData == NULL) || (Size == 0U)) @@ -2267,7 +2267,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *p /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -2297,7 +2297,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *p /* Set the I2C DMA transfer complete callback */ hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; - + /* Set the DMA error callback */ hi2c->hdmatx->XferErrorCallback = I2C_DMAError; @@ -2332,7 +2332,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint8_t *p } /** - * @brief Receive in slave mode an amount of data in non-blocking mode with DMA + * @brief Receive in slave mode an amount of data in non-blocking mode with DMA * @param hi2c Pointer to a I2C_HandleTypeDef structure that contains * the configuration information for the specified I2C. * @param pData Pointer to data buffer @@ -2362,7 +2362,7 @@ HAL_StatusTypeDef HAL_I2C_Slave_Receive_DMA(I2C_HandleTypeDef *hi2c, uint8_t *pD /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -2443,7 +2443,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - + /* Check the parameters */ assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); @@ -2457,7 +2457,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -2477,7 +2477,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress hi2c->XferCount = Size; hi2c->XferOptions = I2C_NO_OPTION_FRAME; hi2c->XferSize = hi2c->XferCount; - + /* Send Slave Address and Memory Address */ if(I2C_RequestMemoryWrite(hi2c, DevAddress, MemAddress, MemAddSize, Timeout, tickstart) != HAL_OK) { @@ -2525,7 +2525,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress hi2c->XferCount--; } } - + /* Wait until BTF flag is set */ if(I2C_WaitOnBTFFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { @@ -2546,7 +2546,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Process Unlocked */ __HAL_UNLOCK(hi2c); @@ -2576,7 +2576,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - + /* Check the parameters */ assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); @@ -2590,7 +2590,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -2632,7 +2632,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, { /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; } @@ -2665,12 +2665,12 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; - + /* Re-enable IRQs */ - __enable_irq(); + __enable_irq(); } else { @@ -2689,7 +2689,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, if(hi2c->XferSize== 1U) { /* Wait until RXNE flag is set */ - if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) + if(I2C_WaitOnRXNEFlagUntilTimeout(hi2c, Timeout, tickstart) != HAL_OK) { if(hi2c->ErrorCode == HAL_I2C_ERROR_TIMEOUT) { @@ -2811,7 +2811,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Process Unlocked */ __HAL_UNLOCK(hi2c); @@ -2855,7 +2855,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddr /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -2940,7 +2940,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddre /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -2986,7 +2986,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddre /* Note : The I2C interrupts must be enabled after unlocking current process to avoid the risk of I2C interrupt handle execution before current process unlock */ - + /* Enable EVT, BUF and ERR interrupt */ __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); } @@ -3017,7 +3017,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAdd /* Init tickstart for timeout management*/ tickstart = HAL_GetTick(); - + /* Check the parameters */ assert_param(IS_I2C_MEMADD_SIZE(MemAddSize)); @@ -3035,7 +3035,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAdd /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -3064,7 +3064,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAdd hi2c->XferOptions = I2C_NO_OPTION_FRAME; if(hi2c->XferSize > 0U) - { + { /* Set the I2C DMA transfer complete callback */ hi2c->hdmatx->XferCpltCallback = I2C_DMAXferCplt; @@ -3097,10 +3097,10 @@ HAL_StatusTypeDef HAL_I2C_Mem_Write_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAdd /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Process Unlocked */ __HAL_UNLOCK(hi2c); - + /* Note : The I2C interrupts must be enabled after unlocking current process to avoid the risk of I2C interrupt handle execution before current process unlock */ @@ -3154,7 +3154,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddr /* Process Unlocked */ __HAL_UNLOCK(hi2c); - return HAL_TIMEOUT; + return HAL_TIMEOUT; } } while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BUSY) != RESET); @@ -3235,7 +3235,7 @@ HAL_StatusTypeDef HAL_I2C_Mem_Read_DMA(I2C_HandleTypeDef *hi2c, uint16_t DevAddr process unlock */ /* Enable ERR interrupt */ __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_ERR); - + /* Enable DMA Request */ hi2c->Instance->CR2 |= I2C_CR2_DMAEN; } @@ -3305,7 +3305,7 @@ HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAdd /* Process Locked */ __HAL_LOCK(hi2c); - + /* Check if the I2C is already enabled */ if((hi2c->Instance->CR1 & I2C_CR1_PE) != I2C_CR1_PE) { @@ -3319,7 +3319,7 @@ HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAdd hi2c->State = HAL_I2C_STATE_BUSY; hi2c->ErrorCode = HAL_I2C_ERROR_NONE; hi2c->XferOptions = I2C_NO_OPTION_FRAME; - + do { /* Generate Start */ @@ -3876,7 +3876,7 @@ static HAL_StatusTypeDef I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) { /* Send Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); - + hi2c->EventCount += 2; } /* If Memory address size is 16Bit */ @@ -3884,7 +3884,7 @@ static HAL_StatusTypeDef I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) { /* Send MSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_MSB(hi2c->Memaddress); - + hi2c->EventCount++; } } @@ -3892,7 +3892,7 @@ static HAL_StatusTypeDef I2C_MasterTransmit_TXE(I2C_HandleTypeDef *hi2c) { /* Send LSB of Memory Address */ hi2c->Instance->DR = I2C_MEM_ADD_LSB(hi2c->Memaddress); - + hi2c->EventCount++; } else if(hi2c->EventCount == 2) @@ -3933,7 +3933,7 @@ static HAL_StatusTypeDef I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) uint32_t CurrentXferOptions = hi2c->XferOptions; if(hi2c->State == HAL_I2C_STATE_BUSY_TX) - { + { if(hi2c->XferCount != 0U) { /* Write data to DR */ @@ -3946,34 +3946,34 @@ static HAL_StatusTypeDef I2C_MasterTransmit_BTF(I2C_HandleTypeDef *hi2c) if((CurrentXferOptions != I2C_FIRST_AND_LAST_FRAME) && (CurrentXferOptions != I2C_LAST_FRAME) && (CurrentXferOptions != I2C_NO_OPTION_FRAME)) { __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); - + hi2c->PreviousState = I2C_STATE_MASTER_BUSY_TX; hi2c->Mode = HAL_I2C_MODE_NONE; hi2c->State = HAL_I2C_STATE_READY; - + HAL_I2C_MasterTxCpltCallback(hi2c); } else /* Generate Stop condition then Call TxCpltCallback() */ { /* Disable EVT, BUF and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; - + hi2c->PreviousState = I2C_STATE_NONE; hi2c->State = HAL_I2C_STATE_READY; - + if(hi2c->Mode == HAL_I2C_MODE_MEM) { hi2c->Mode = HAL_I2C_MODE_NONE; - + HAL_I2C_MemTxCpltCallback(hi2c); } else { hi2c->Mode = HAL_I2C_MODE_NONE; - + HAL_I2C_MasterTxCpltCallback(hi2c); } } @@ -3993,7 +3993,7 @@ static HAL_StatusTypeDef I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) if(hi2c->State == HAL_I2C_STATE_BUSY_RX) { uint32_t tmp = 0U; - + tmp = hi2c->XferCount; if(tmp > 3U) { @@ -4007,7 +4007,7 @@ static HAL_StatusTypeDef I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) { /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; - + /* Enable Pos */ hi2c->Instance->CR1 |= I2C_CR1_POS; } @@ -4016,7 +4016,7 @@ static HAL_StatusTypeDef I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; } - + /* Disable BUF interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); } @@ -4035,7 +4035,7 @@ static HAL_StatusTypeDef I2C_MasterReceive_RXNE(I2C_HandleTypeDef *hi2c) /* Disable EVT, BUF and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); - + /* Read data from DR */ (*hi2c->pBuffPtr++) = hi2c->Instance->DR; hi2c->XferCount--; @@ -4104,7 +4104,7 @@ static HAL_StatusTypeDef I2C_MasterReceive_BTF(I2C_HandleTypeDef *hi2c) { /* Disable EVT and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; } @@ -4167,7 +4167,7 @@ static HAL_StatusTypeDef I2C_Master_SB(I2C_HandleTypeDef *hi2c) if(hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) { /* Send slave 7 Bits address */ - if(hi2c->State == HAL_I2C_STATE_BUSY_TX) + if(hi2c->State == HAL_I2C_STATE_BUSY_TX) { hi2c->Instance->DR = I2C_7BIT_ADD_WRITE(hi2c->Devaddress); } @@ -4232,10 +4232,10 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) { /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Generate Restart */ hi2c->Instance->CR1 |= I2C_CR1_START; - + hi2c->EventCount++; } else @@ -4244,11 +4244,11 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) { /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; } - else if(hi2c->XferCount == 1U) + else if(hi2c->XferCount == 1U) { if(CurrentXferOptions == I2C_NO_OPTION_FRAME) { @@ -4286,7 +4286,7 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; } - + /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); } @@ -4294,10 +4294,10 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) { /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; - + /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; } @@ -4308,10 +4308,10 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) { /* Enable Pos */ hi2c->Instance->CR1 |= I2C_CR1_POS; - + /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); - + /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; } @@ -4319,7 +4319,7 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) { /* Enable Acknowledge */ hi2c->Instance->CR1 |= I2C_CR1_ACK; - + /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); } @@ -4344,7 +4344,7 @@ static HAL_StatusTypeDef I2C_Master_ADDR(I2C_HandleTypeDef *hi2c) /* Clear ADDR flag */ __HAL_I2C_CLEAR_ADDRFLAG(hi2c); } - + /* Reset Event counter */ hi2c->EventCount = 0U; } @@ -4379,11 +4379,11 @@ static HAL_StatusTypeDef I2C_SlaveTransmit_TXE(I2C_HandleTypeDef *hi2c) { /* Last Byte is received, disable Interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_BUF); - + /* Set state at HAL_I2C_STATE_LISTEN */ hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; hi2c->State = HAL_I2C_STATE_LISTEN; - + /* Call the Tx complete callback to inform upper layer of the end of receive process */ HAL_I2C_SlaveTxCpltCallback(hi2c); } @@ -4474,7 +4474,7 @@ static HAL_StatusTypeDef I2C_Slave_ADDR(I2C_HandleTypeDef *hi2c) { TransferDirection = I2C_DIRECTION_TRANSMIT; } - + if(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_DUALF) == RESET) { SlaveAddrCode = hi2c->Init.OwnAddress1; @@ -4500,7 +4500,7 @@ static HAL_StatusTypeDef I2C_Slave_STOPF(I2C_HandleTypeDef *hi2c) { /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ uint32_t CurrentState = hi2c->State; - + /* Disable EVT, BUF and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); @@ -4607,7 +4607,7 @@ static HAL_StatusTypeDef I2C_Slave_AF(I2C_HandleTypeDef *hi2c) hi2c->PreviousState = I2C_STATE_NONE; hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ HAL_I2C_ListenCpltCallback(hi2c); } @@ -4617,7 +4617,7 @@ static HAL_StatusTypeDef I2C_Slave_AF(I2C_HandleTypeDef *hi2c) hi2c->PreviousState = I2C_STATE_SLAVE_BUSY_TX; hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Disable EVT, BUF and ERR interrupt */ __HAL_I2C_DISABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_BUF | I2C_IT_ERR); @@ -4635,7 +4635,7 @@ static HAL_StatusTypeDef I2C_Slave_AF(I2C_HandleTypeDef *hi2c) /* State Listen, but XferOptions == FIRST or NEXT */ __HAL_I2C_CLEAR_FLAG(hi2c, I2C_FLAG_AF); } - + return HAL_OK; } @@ -4677,7 +4677,7 @@ static void I2C_ITError(I2C_HandleTypeDef *hi2c) if(hi2c->hdmatx->State != HAL_DMA_STATE_READY) { - /* Set the DMA Abort callback : + /* Set the DMA Abort callback : will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ hi2c->hdmatx->XferAbortCallback = I2C_DMAAbort; @@ -4694,7 +4694,7 @@ static void I2C_ITError(I2C_HandleTypeDef *hi2c) } else { - /* Set the DMA Abort callback : + /* Set the DMA Abort callback : will lead to call HAL_I2C_ErrorCallback() at end of DMA abort procedure */ hi2c->hdmarx->XferAbortCallback = I2C_DMAAbort; @@ -4756,7 +4756,7 @@ static void I2C_ITError(I2C_HandleTypeDef *hi2c) hi2c->PreviousState = I2C_STATE_NONE; hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + /* Call the Listen Complete callback, to inform upper layer of the end of Listen usecase */ HAL_I2C_ListenCpltCallback(hi2c); } @@ -5175,18 +5175,18 @@ static HAL_StatusTypeDef I2C_RequestMemoryRead(I2C_HandleTypeDef *hi2c, uint16_t static void I2C_DMAXferCplt(DMA_HandleTypeDef *hdma) { I2C_HandleTypeDef* hi2c = (I2C_HandleTypeDef*)((DMA_HandleTypeDef*)hdma)->Parent; - + /* Declaration of temporary variable to prevent undefined behavior of volatile usage */ uint32_t CurrentState = hi2c->State; uint32_t CurrentMode = hi2c->Mode; - if((CurrentState == HAL_I2C_STATE_BUSY_TX) || ((CurrentState == HAL_I2C_STATE_BUSY_RX) && (CurrentMode == HAL_I2C_MODE_SLAVE))) + if((CurrentState == HAL_I2C_STATE_BUSY_TX) || ((CurrentState == HAL_I2C_STATE_BUSY_RX) && (CurrentMode == HAL_I2C_MODE_SLAVE))) { /* Disable DMA Request */ hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; - + hi2c->XferCount = 0U; - + /* Enable EVT and ERR interrupt */ __HAL_I2C_ENABLE_IT(hi2c, I2C_IT_EVT | I2C_IT_ERR); } @@ -5194,16 +5194,16 @@ static void I2C_DMAXferCplt(DMA_HandleTypeDef *hdma) { /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; - + /* Generate Stop */ hi2c->Instance->CR1 |= I2C_CR1_STOP; - + /* Disable Last DMA */ hi2c->Instance->CR2 &= ~I2C_CR2_LAST; - + /* Disable DMA Request */ hi2c->Instance->CR2 &= ~I2C_CR2_DMAEN; - + hi2c->XferCount = 0U; /* Check if Errors has been detected during transfer */ @@ -5239,17 +5239,17 @@ static void I2C_DMAXferCplt(DMA_HandleTypeDef *hdma) static void I2C_DMAError(DMA_HandleTypeDef *hdma) { I2C_HandleTypeDef* hi2c = (I2C_HandleTypeDef*)((DMA_HandleTypeDef*)hdma)->Parent; - + /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; - + hi2c->XferCount = 0U; - + hi2c->State = HAL_I2C_STATE_READY; hi2c->Mode = HAL_I2C_MODE_NONE; - + hi2c->ErrorCode |= HAL_I2C_ERROR_DMA; - + HAL_I2C_ErrorCallback(hi2c); } @@ -5262,7 +5262,7 @@ static void I2C_DMAError(DMA_HandleTypeDef *hdma) static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) { I2C_HandleTypeDef* hi2c = ( I2C_HandleTypeDef* )((DMA_HandleTypeDef* )hdma)->Parent; - + /* Disable Acknowledge */ hi2c->Instance->CR1 &= ~I2C_CR1_ACK; @@ -5311,7 +5311,7 @@ static void I2C_DMAAbort(DMA_HandleTypeDef *hdma) static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Flag, FlagStatus Status, uint32_t Timeout, uint32_t Tickstart) { /* Wait until flag is set */ - while((__HAL_I2C_GET_FLAG(hi2c, Flag) ? SET : RESET) == Status) + while((__HAL_I2C_GET_FLAG(hi2c, Flag) ? SET : RESET) == Status) { /* Check for the Timeout */ if(Timeout != HAL_MAX_DELAY) @@ -5324,12 +5324,12 @@ static HAL_StatusTypeDef I2C_WaitOnFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uin /* Process Unlocked */ __HAL_UNLOCK(hi2c); - + return HAL_TIMEOUT; } } } - + return HAL_OK; } @@ -5391,7 +5391,7 @@ static HAL_StatusTypeDef I2C_WaitOnMasterAddressFlagUntilTimeout(I2C_HandleTypeD * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ +{ while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_TXE) == RESET) { /* Check if a NACK is detected */ @@ -5399,7 +5399,7 @@ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, { return HAL_ERROR; } - + /* Check for the Timeout */ if(Timeout != HAL_MAX_DELAY) { @@ -5416,7 +5416,7 @@ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, } } } - return HAL_OK; + return HAL_OK; } /** @@ -5428,7 +5428,7 @@ static HAL_StatusTypeDef I2C_WaitOnTXEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ +{ while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_BTF) == RESET) { /* Check if a NACK is detected */ @@ -5465,7 +5465,7 @@ static HAL_StatusTypeDef I2C_WaitOnBTFFlagUntilTimeout(I2C_HandleTypeDef *hi2c, * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ +{ while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_STOPF) == RESET) { /* Check if a NACK is detected */ @@ -5499,7 +5499,7 @@ static HAL_StatusTypeDef I2C_WaitOnSTOPFlagUntilTimeout(I2C_HandleTypeDef *hi2c, * @retval HAL status */ static HAL_StatusTypeDef I2C_WaitOnRXNEFlagUntilTimeout(I2C_HandleTypeDef *hi2c, uint32_t Timeout, uint32_t Tickstart) -{ +{ while(__HAL_I2C_GET_FLAG(hi2c, I2C_FLAG_RXNE) == RESET) { diff --git a/Inc/config.h b/Inc/config.h index 9dd3ed04..6a40b8f7 100644 --- a/Inc/config.h +++ b/Inc/config.h @@ -18,12 +18,12 @@ #define BAT_CALIB_REAL_VOLTAGE 43.0 // input voltage measured by multimeter #define BAT_CALIB_ADC 1704 // adc-value measured by mainboard (value nr 5 on UART debug output) -#define BAT_NUMBER_OF_CELLS 10 // normal Hoverboard battery: 10s +#define BAT_NUMBER_OF_CELLS 9 // normal Hoverboard battery: 10s #define BAT_LOW_LVL1_ENABLE 0 // to beep or not to beep, 1 or 0 -#define BAT_LOW_LVL1 3.6 // gently beeps at this voltage level. [V/cell] +#define BAT_LOW_LVL1 3.2 // gently beeps at this voltage level. [V/cell] #define BAT_LOW_LVL2_ENABLE 1 // to beep or not to beep, 1 or 0 -#define BAT_LOW_LVL2 3.5 // your battery is almost empty. Charge now! [V/cell] -#define BAT_LOW_DEAD 3.37 // undervoltage poweroff. (while not driving) [V/cell] +#define BAT_LOW_LVL2 3.0 // your battery is almost empty. Charge now! [V/cell] +#define BAT_LOW_DEAD 2.6 // undervoltage poweroff. (while not driving) [V/cell] #define DC_CUR_LIMIT 15 // DC current limit in amps per motor. so 15 means it will draw 30A out of your battery. it does not disable motors, it is a soft current limit. @@ -45,10 +45,10 @@ // ############################### SERIAL DEBUG ############################### -#define DEBUG_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! -#define DEBUG_BAUD 115200 // UART baud rate +//#define DEBUG_SERIAL_USART3 // right sensor board cable, disable if I2C (nunchuck or lcd) is used! +//#define DEBUG_BAUD 115200 // UART baud rate //#define DEBUG_SERIAL_SERVOTERM -#define DEBUG_SERIAL_ASCII // "1:345 2:1337 3:0 4:0 5:0 6:0 7:0 8:0\r\n" +//#define DEBUG_SERIAL_ASCII // "1:345 2:1337 3:0 4:0 5:0 6:0 7:0 8:0\r\n" // ############################### INPUT ############################### @@ -72,13 +72,12 @@ // ###### TRANSPOTTER FIRMWARE ####### #define CONTROL_GAMETRAK -//#define INVERT_GAMETRAK #define SUPPORT_LCD #define SUPPORT_NUNCHUCK //#define SUPPORT_REMOTE #define VEL_P 0.9 -#define ROT_P 1.2 +#define ROT_P -1.2 // ###### CONTROL VIA NINTENDO NUNCHUCK ###### @@ -96,7 +95,7 @@ // - weakr and weakl: field weakening for extra boost at high speed (speedR > 700 and speedL > 700). 0 to ~400 #define FILTER 0.1 // lower value == softer filter. do not use values <0.01, you will get float precision issues. -#define SPEED_COEFFICIENT 0.5 // higher value == stronger. 0.0 to ~2.0? +#define SPEED_COEFFICIENT 0.9 // higher value == stronger. 0.0 to ~2.0? #define STEER_COEFFICIENT 0.5 // higher value == stronger. if you do not want any steering, set it to 0.0; 0.0 to 1.0 #define INVERT_R_DIRECTION #define INVERT_L_DIRECTION diff --git a/Src/control.c b/Src/control.c index c3ec8df8..b827eb1c 100644 --- a/Src/control.c +++ b/Src/control.c @@ -84,6 +84,13 @@ void PPM_Init() { } #endif +uint8_t Nunchuck_Ping() { + if (HAL_I2C_Master_Receive(&hi2c2,0xA4,(uint8_t*)nunchuck_data, 1, 10) == HAL_OK) { + return 1; + } + return 0; +} + void Nunchuck_Init() { //-- START -- init WiiNunchuck i2cBuffer[0] = 0xF0; @@ -101,18 +108,18 @@ void Nunchuck_Init() { void Nunchuck_Read() { i2cBuffer[0] = 0x00; - HAL_I2C_Master_Transmit(&hi2c2,0xA4,(uint8_t*)i2cBuffer, 1, 100); - HAL_Delay(5); - if (HAL_I2C_Master_Receive(&hi2c2,0xA4,(uint8_t*)nunchuck_data, 6, 100) == HAL_OK) { + HAL_I2C_Master_Transmit(&hi2c2,0xA4,(uint8_t*)i2cBuffer, 1, 10); + HAL_Delay(3); + if (HAL_I2C_Master_Receive(&hi2c2,0xA4,(uint8_t*)nunchuck_data, 6, 10) == HAL_OK) { timeout = 0; } else { timeout++; } - if (timeout > 3) { + /*if (timeout > 3) { HAL_Delay(50); Nunchuck_Init(); - } + }*/ //setScopeChannel(0, (int)nunchuck_data[0]); //setScopeChannel(1, (int)nunchuck_data[1]); diff --git a/Src/hd44780.c b/Src/hd44780.c index 38033793..f23f0426 100644 --- a/Src/hd44780.c +++ b/Src/hd44780.c @@ -13,10 +13,11 @@ uint8_t LCDerrorFlag = 0; void LCD_WaitForBusyFlag(LCD_PCF8574_HandleTypeDef* handle) { uint8_t flag; LCD_GetBusyFlag(handle, &flag); - uint32_t startTick=HAL_GetTick(); - while (flag == 1 && HAL_GetTick()-startTickpcf8574.PCF_I2C_TIMEOUT) { - LCD_GetBusyFlag(handle, &flag); - } + //uint32_t startTick=HAL_GetTick(); + //while (flag == 1 && HAL_GetTick()-startTickpcf8574.PCF_I2C_TIMEOUT) { + // LCD_GetBusyFlag(handle, &flag); + //} + return; } LCD_RESULT LCD_I2C_WriteOut(LCD_PCF8574_HandleTypeDef* handle) { @@ -61,7 +62,7 @@ LCD_RESULT LCD_Init(LCD_PCF8574_HandleTypeDef* handle) { return LCD_ERROR; } - HAL_Delay(50); + //HAL_Delay(50); LCD_StateWriteBit(handle, 0, LCD_PIN_RS); LCD_StateWriteBit(handle, 0, LCD_PIN_RW); LCD_StateWriteBit(handle, 0, LCD_PIN_E); @@ -155,17 +156,17 @@ LCD_RESULT LCD_GetBusyFlag(LCD_PCF8574_HandleTypeDef* handle, uint8_t* flag) { LCD_StateWriteBit(handle, 1, LCD_PIN_E); - PCF8574_Read(&handle->pcf8574, flag); + //PCF8574_Read(&handle->pcf8574, flag); - *flag &= 1 << handle->pins[LCD_PIN_D7]; - *flag >>= handle->pins[LCD_PIN_D7]; + //*flag &= 1 << handle->pins[LCD_PIN_D7]; + //*flag >>= handle->pins[LCD_PIN_D7]; LCD_StateWriteBit(handle, 0, LCD_PIN_E); LCD_StateWriteBit(handle, 1, LCD_PIN_E); - uint8_t flag2; - PCF8574_Read(&handle->pcf8574, &flag2); + //uint8_t flag2; + //PCF8574_Read(&handle->pcf8574, &flag2); LCD_StateWriteBit(handle, 0, LCD_PIN_E); LCD_StateWriteBit(handle, 0, LCD_PIN_RW); diff --git a/Src/main.c b/Src/main.c index a1c0d911..5d174d0d 100644 --- a/Src/main.c +++ b/Src/main.c @@ -30,6 +30,14 @@ LCD_PCF8574_HandleTypeDef lcd; extern I2C_HandleTypeDef hi2c2; +extern uint8_t LCDerrorFlag; + +uint8_t nunchuck_connected = 0; + +float steering; +int feedforward; + + void longBeep(void); void shortBeep(void); @@ -272,15 +280,15 @@ int main(void) { I2C_Init(); HAL_Delay(50); lcd.pcf8574.PCF_I2C_ADDRESS = 0x27; - lcd.pcf8574.PCF_I2C_TIMEOUT = 5; - lcd.pcf8574.i2c = hi2c2; - lcd.NUMBER_OF_LINES = NUMBER_OF_LINES_2; - lcd.type = TYPE0; - - if(LCD_Init(&lcd)!=LCD_OK){ - // error occured - //TODO while(1); - } + lcd.pcf8574.PCF_I2C_TIMEOUT = 1; + lcd.pcf8574.i2c = hi2c2; + lcd.NUMBER_OF_LINES = NUMBER_OF_LINES_2; + lcd.type = TYPE0; + + if(LCD_Init(&lcd)!=LCD_OK){ + // error occured + //TODO while(1); + } LCD_ClearDisplay(&lcd); HAL_Delay(5); @@ -298,41 +306,6 @@ int main(void) { while(1) { HAL_Delay(DELAY_IN_MAIN_LOOP); //delay in ms - #ifdef CONTROL_NUNCHUCK - Nunchuck_Read(); - cmd1 = CLAMP((nunchuck_data[0] - 127) * 8, -1000, 1000); // x - axis. Nunchuck joystick readings range 30 - 230 - cmd2 = CLAMP((nunchuck_data[1] - 128) * 8, -1000, 1000); // y - axis - - button1 = (uint8_t)nunchuck_data[5] & 1; - button2 = (uint8_t)(nunchuck_data[5] >> 1) & 1; - #endif - - #ifdef CONTROL_PPM - cmd1 = CLAMP((ppm_captured_value[0] - 500) * 2, -1000, 1000); - cmd2 = CLAMP((ppm_captured_value[1] - 500) * 2, -1000, 1000); - button1 = ppm_captured_value[5] > 500; - float scale = ppm_captured_value[2] / 1000.0f; - #endif - - #ifdef CONTROL_ADC - // ADC values range: 0-4095, see ADC-calibration in config.h - cmd1 = CLAMP(adc_buffer.l_tx2 - ADC1_MIN, 0, ADC1_MAX) / (ADC1_MAX / 1000.0f); // ADC1 - cmd2 = CLAMP(adc_buffer.l_rx2 - ADC2_MIN, 0, ADC2_MAX) / (ADC2_MAX / 1000.0f); // ADC2 - - // use ADCs as button inputs: - button1 = (uint8_t)(adc_buffer.l_tx2 > 2000); // ADC1 - button2 = (uint8_t)(adc_buffer.l_rx2 > 2000); // ADC2 - - timeout = 0; - #endif - - #ifdef CONTROL_SERIAL_USART2 - cmd1 = CLAMP((int16_t)command.steer, -1000, 1000); - cmd2 = CLAMP((int16_t)command.speed, -1000, 1000); - - timeout = 0; - #endif - #ifdef CONTROL_GAMETRAK if(HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN)) { enable = 0; @@ -360,32 +333,100 @@ int main(void) { } + + + uint16_t distance = CLAMP((adc_buffer.l_rx2) - 180, 0, 4095); - float steering = (adc_buffer.l_tx2 - 2048) / 2048.0; - int feedforward = ((distance - (int)(setDistance * 1345))); - - speedL = speedL * 0.8f + (CLAMP(feedforward + ((steering)*((float)MAX(ABS(feedforward), 50)) * ROT_P), -750, 750) * -0.2f); - speedR = speedR * 0.8f + (CLAMP(feedforward - ((steering)*((float)MAX(ABS(feedforward), 50)) * ROT_P), -750, 750) * -0.2f); - - if ((speedL < lastSpeedL + 50 && speedL > lastSpeedL - 50) && (speedR < lastSpeedR + 50 && speedR > lastSpeedR - 50)) { - if (distance - (int)(setDistance * 1345) > -300) { - pwml = speedL; - pwmr = -speedR; - if (checkRemote) { - if (!HAL_GPIO_ReadPin(LED_PORT, LED_PIN)) { - enable = 1; - } else { - enable = 0; + steering = (adc_buffer.l_tx2 - 2048) / 2048.0; + feedforward = ((distance - (int)(setDistance * 1345))); + if (nunchuck_connected == 0) { + speedL = speedL * 0.8f + (CLAMP(feedforward + ((steering)*((float)MAX(ABS(feedforward), 50)) * ROT_P), -850, 850) * -0.2f); + speedR = speedR * 0.8f + (CLAMP(feedforward - ((steering)*((float)MAX(ABS(feedforward), 50)) * ROT_P), -850, 850) * -0.2f); + if ((speedL < lastSpeedL + 50 && speedL > lastSpeedL - 50) && (speedR < lastSpeedR + 50 && speedR > lastSpeedR - 50)) { + if (distance - (int)(setDistance * 1345) > 0) { + enable = 1; + } + if (distance - (int)(setDistance * 1345) > -300) { + #ifdef INVERT_R_DIRECTION + pwmr = -speedR; + #endif + #ifndef INVERT_R_DIRECTION + pwmr = speedR; + #endif + + #ifdef INVERT_L_DIRECTION + pwml = -speedL; + #endif + #ifndef INVERT_L_DIRECTION + pwml = speedL; + #endif + + if (checkRemote) { + if (!HAL_GPIO_ReadPin(LED_PORT, LED_PIN)) { + //enable = 1; + } else { + enable = 0; + } } } else { - enable = 1; + enable = 0; } - } else { + } + lastSpeedL = speedL; + lastSpeedR = speedR; + + timeout = 0; + } else { + Nunchuck_Read(); + enable = 1; + cmd1 = CLAMP((nunchuck_data[0] - 127) * 8, -1000, 1000); // x - axis. Nunchuck joystick readings range 30 - 230 + cmd2 = CLAMP((nunchuck_data[1] - 128) * 8, -1000, 1000); // y - axis + + // ####### LOW-PASS FILTER ####### + steer = steer * (1.0 - FILTER) + cmd1 * FILTER; + speed = speed * (1.0 - FILTER) + cmd2 * FILTER; + + + // ####### MIXER ####### + speedR = CLAMP(speed * SPEED_COEFFICIENT - steer * STEER_COEFFICIENT, -900, 900); + speedL = CLAMP(speed * SPEED_COEFFICIENT + steer * STEER_COEFFICIENT, -900, 900); + + // ####### SET OUTPUTS ####### + if ((speedL < lastSpeedL + 100 && speedL > lastSpeedL - 100) && (speedR < lastSpeedR + 100 && speedR > lastSpeedR - 100) && timeout < TIMEOUT) { + #ifdef INVERT_R_DIRECTION + pwmr = speedR; + #else + pwmr = -speedR; + #endif + #ifdef INVERT_L_DIRECTION + pwml = speedL; + #else + pwml = -speedL; + #endif + } + else if (timeout > TIMEOUT) { + pwml = 0; + pwmr = 0; enable = 0; + + LCD_SetLocation(&lcd, 0, 0); + LCD_WriteString(&lcd, "Len:"); + LCD_SetLocation(&lcd, 8, 0); + LCD_WriteString(&lcd, "m("); + LCD_SetLocation(&lcd, 14, 0); + LCD_WriteString(&lcd, "m)"); + + HAL_Delay(1000); + + nunchuck_connected = 0; } + lastSpeedL = speedL; + lastSpeedR = speedR; } + + if ((distance / 1345.0) - setDistance > 0.5 && (lastDistance / 1345.0) - setDistance > 0.5) { // Error, robot too far away! enable = 0; longBeep(); @@ -400,81 +441,47 @@ int main(void) { poweroff(); } - #ifdef SUPPORT_LCD - if (counter % 100 == 0) { - LCD_SetLocation(&lcd, 4, 0); - LCD_WriteFloat(&lcd,distance/1345.0,2); - LCD_SetLocation(&lcd, 10, 0); - LCD_WriteFloat(&lcd,setDistance,2); - LCD_SetLocation(&lcd, 4, 1); - LCD_WriteFloat(&lcd,batteryVoltage, 1); - LCD_SetLocation(&lcd, 11, 1); - LCD_WriteFloat(&lcd,MAX(ABS(currentR), ABS(currentL)),2); + #ifdef SUPPORT_NUNCHUCK + if (counter % 500 == 0) { + if (nunchuck_connected == 0 && enable == 0) { + if (Nunchuck_Ping()) { + HAL_Delay(500); + Nunchuck_Init(); + #ifdef SUPPORT_LCD + LCD_SetLocation(&lcd, 0, 0); + LCD_WriteString(&lcd, "Nunchuck Control"); + #endif + timeout = 0; + HAL_Delay(1000); + nunchuck_connected = 1; + } + } } #endif - #endif - - #ifndef CONTROL_GAMETRAK - // ####### LOW-PASS FILTER ####### - steer = steer * (1.0 - FILTER) + cmd1 * FILTER; - speed = speed * (1.0 - FILTER) + cmd2 * FILTER; - - - // ####### MIXER ####### - speedR = CLAMP(speed * SPEED_COEFFICIENT - steer * STEER_COEFFICIENT, -1000, 1000); - speedL = CLAMP(speed * SPEED_COEFFICIENT + steer * STEER_COEFFICIENT, -1000, 1000); + #ifdef SUPPORT_LCD + if (counter % 100 == 0) { + if (LCDerrorFlag == 1 && enable == 0) { - #ifdef ADDITIONAL_CODE - ADDITIONAL_CODE; - #endif + } else { + if (nunchuck_connected == 0) { + LCD_SetLocation(&lcd, 4, 0); + LCD_WriteFloat(&lcd,distance/1345.0,2); + LCD_SetLocation(&lcd, 10, 0); + LCD_WriteFloat(&lcd,setDistance,2); + } + LCD_SetLocation(&lcd, 4, 1); + LCD_WriteFloat(&lcd,batteryVoltage, 1); + LCD_SetLocation(&lcd, 11, 1); + LCD_WriteFloat(&lcd,MAX(ABS(currentR), ABS(currentL)),2); + } + } - // ####### SET OUTPUTS ####### - if ((speedL < lastSpeedL + 50 && speedL > lastSpeedL - 50) && (speedR < lastSpeedR + 50 && speedR > lastSpeedR - 50) && timeout < TIMEOUT) { - #ifdef INVERT_R_DIRECTION - pwmr = speedR; - #else - pwmr = -speedR; #endif - #ifdef INVERT_L_DIRECTION - pwml = -speedL; - #else - pwml = speedL; + counter++; #endif - } - - lastSpeedL = speedL; - lastSpeedR = speedR; - - - if (inactivity_timeout_counter % 25 == 0) { - // ####### CALC BOARD TEMPERATURE ####### - board_temp_adc_filtered = board_temp_adc_filtered * 0.99 + (float)adc_buffer.temp * 0.01; - board_temp_deg_c = ((float)TEMP_CAL_HIGH_DEG_C - (float)TEMP_CAL_LOW_DEG_C) / ((float)TEMP_CAL_HIGH_ADC - (float)TEMP_CAL_LOW_ADC) * (board_temp_adc_filtered - (float)TEMP_CAL_LOW_ADC) + (float)TEMP_CAL_LOW_DEG_C; - // ####### DEBUG SERIAL OUT ####### - #ifdef CONTROL_ADC - setScopeChannel(0, (int)adc_buffer.l_tx2); // 1: ADC1 - setScopeChannel(1, (int)adc_buffer.l_rx2); // 2: ADC2 - #endif - setScopeChannel(2, (int)speedR); // 3: output speed: 0-1000 - setScopeChannel(3, (int)speedL); // 4: output speed: 0-1000 - setScopeChannel(4, (int)adc_buffer.batt1); // 5: for battery voltage calibration - setScopeChannel(5, (int)(batteryVoltage * 100.0f)); // 6: for verifying battery voltage calibration - setScopeChannel(6, (int)board_temp_adc_filtered); // 7: for board temperature calibration - setScopeChannel(7, (int)board_temp_deg_c); // 8: for verifying board temperature calibration - consoleScope(); - } - - - // ####### POWEROFF BY POWER-BUTTON ####### - if (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN) && weakr == 0 && weakl == 0) { - enable = 0; - while (HAL_GPIO_ReadPin(BUTTON_PORT, BUTTON_PIN)) {} - poweroff(); - } - #endif // ####### BEEP AND EMERGENCY POWEROFF ####### diff --git a/Src/setup.c b/Src/setup.c index 8de657a0..a43357f0 100644 --- a/Src/setup.c +++ b/Src/setup.c @@ -238,7 +238,7 @@ void I2C_Init() HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); hi2c2.Instance = I2C2; - hi2c2.Init.ClockSpeed = 100000; + hi2c2.Init.ClockSpeed = 200000; hi2c2.Init.DutyCycle = I2C_DUTYCYCLE_2; hi2c2.Init.OwnAddress1 = 0; hi2c2.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; diff --git a/build/hover.hex b/build/hover.hex index c955d45f..abe6c9b6 100644 --- a/build/hover.hex +++ b/build/hover.hex @@ -1,23 +1,23 @@ :020000040800F2 -:1000000000C00020115C0008E55B0008E95B000807 -:10001000ED5B0008F15B0008F55B000800000000E4 -:10002000000000000000000000000000F95B000874 -:10003000FD5B000800000000015C0008055C000892 -:10004000615C0008615C0008615C0008615C00089C -:10005000615C0008615C0008615C0008615C00088C -:10006000615C0008615C0008615C0008514A00089E -:10007000615C0008615C0008615C0008615C00086C -:10008000615C0008615C0008615C0008615C00085C -:10009000615C0008615C0008615C0008615C00084C -:1000A000615C0008615C0008615C0008615C00083C -:1000B000615C0008615C0008615C0008615C00082C -:1000C000615C0008615C0008615C0008615C00081C -:1000D000615C0008615C0008615C0008615C00080C -:1000E000615C0008615C0008615C0008615C0008FC -:1000F000615C0008615C0008615C0008615C0008EC -:10010000615C0008615C0008615C0008615C0008DB -:10011000615C0008615C0008615C0008615C0008CB -:10012000615C0008615C0008615C0008615C0008BB +:1000000000C00020AD5C0008815C0008855C000831 +:10001000895C00088D5C0008915C0008000000000D +:10002000000000000000000000000000955C0008D7 +:10003000995C0008000000009D5C0008A15C0008BD +:10004000FD5C0008FD5C0008FD5C0008FD5C00082C +:10005000FD5C0008FD5C0008FD5C0008FD5C00081C +:10006000FD5C0008FD5C0008FD5C0008794B0008A1 +:10007000FD5C0008FD5C0008FD5C0008FD5C0008FC +:10008000FD5C0008FD5C0008FD5C0008FD5C0008EC +:10009000FD5C0008FD5C0008FD5C0008FD5C0008DC +:1000A000FD5C0008FD5C0008FD5C0008FD5C0008CC +:1000B000FD5C0008FD5C0008FD5C0008FD5C0008BC +:1000C000FD5C0008FD5C0008FD5C0008FD5C0008AC +:1000D000FD5C0008FD5C0008FD5C0008FD5C00089C +:1000E000FD5C0008FD5C0008FD5C0008FD5C00088C +:1000F000FD5C0008FD5C0008FD5C0008FD5C00087C +:10010000FD5C0008FD5C0008FD5C0008FD5C00086B +:10011000FD5C0008FD5C0008FD5C0008FD5C00085B +:10012000FD5C0008FD5C0008FD5C0008FD5C00084B :1001300000000000000000000000000000000000BF :1001400000000000000000000000000000000000AF :10015000000000000000000000000000000000009F @@ -32,9 +32,9 @@ :0401E0005FF8E0F1F3 :1001E80010B5054C237833B9044B13B10448AFF369 :1001F80000800123237010BD500000200000000083 -:10020800C45C000808B5064B1BB106480649AFF3A5 +:10020800605D000808B5064B1BB106480649AFF308 :1002180000800648036813B1054B03B1984708BD31 -:1002280000000000C45C0008540000204C000020BE +:1002280000000000605D0008540000204C00002021 :100238000000000081F0004102E000BF83F00043AD :1002480030B54FEA41044FEA430594EA050F08BF69 :1002580090EA020F1FBF54EA000C55EA020C7FEA2D @@ -293,18 +293,18 @@ :101228000000704712F1610F01D1420202D14FF064 :10123800FF3070474FF00000704700BF0022044B9A :10124800DA61044B1A6942F001021A6101807047A1 -:10125800B000002000200240154BDB6813F0100F8F +:10125800B800002000200240154BDB6813F0100F87 :1012680006D0144BDA6942F00202DA61102300E07A :1012780000230F4AD26812F0040F06D00D4AD16934 :1012880041F00101D16143F00403094AD26912F027 :10129800010F09D0074AD16941F00401D161044A1C :1012A800D16921F00101D161014AD360704700BFC3 -:1012B80000200240B0000020074B1B6913F0800F8C +:1012B80000200240B8000020074B1B6913F0800F84 :1012C80007D0054B054A5A6002F188325A6000205F :1012D80070470120704700BF002002402301674586 :1012E800034B1A6942F080021A610020704700BF60 -:1012F8000020024070B5044601F0B4F90646184DC6 -:1013080008E0B4F1FF3F05D01CB301F0ABF9801B36 +:1012F8000020024070B5044601F0A4F90646184DD6 +:1013080008E0B4F1FF3F05D01CB301F09BF9801B46 :10131800A04220D8EB6813F0010FF2D1104BDB6824 :1013280013F0200F02D020220D4BDA600C4BDB6843 :1013380013F0100F09D10A4BDB6913F0010F04D128 @@ -320,7 +320,7 @@ :1013D800A1B2FFF733FF4CF25030FFF78BFFD9F87B :1013E800103023F00103C9F81030034628B908F17A :1013F80001085FFA88F8D845DAD30021034A117644 -:101408001846BDE8F88F0220BDE8F88FB00000202C +:101408001846BDE8F88F0220BDE8F88FB800002024 :101418000020024082B0084B1A68084BA3FB021355 :101428005B0A00FB03F0019000BF019B5A1E01926A :10143800002BF9D102B0704700000020D34D621094 @@ -335,32 +335,32 @@ :1014C80003F18043A3F53C331A6842F480221A6082 :1014D8001A6842F480321A6008E0804B1A6822F4D5 :1014E80080321A601A6822F480221A6063687BB11D -:1014F80001F0B8F80646794D05E001F0B3F8801B15 +:1014F80001F0A8F80646794D05E001F0A3F8801B35 :10150800642800F283812B6813F4003FF5D00EE0C5 -:1015180001F0A8F80646714D05E001F0A3F8801B1C +:1015180001F098F80646714D05E001F093F8801B3C :10152800642800F275812B6813F4003FF5D1236815 :1015380013F0020F50D0694B5B6813F00C0F0AD000 :10154800664B5B6803F00C03082B16D1634B5B6892 :1015580013F4803F11D1614B1B6813F0020F03D0C5 :101568002369012B40F056815C4B196821F0F80182 :10157800626941EAC2021A602EE02369D3B10122EE -:10158800574B1A6001F06EF80646544D05E001F01D -:1015980069F8801B022800F23F812B6813F0020FC4 +:10158800574B1A6001F05EF80646544D05E001F02D +:1015980059F8801B022800F23F812B6813F0020FD4 :1015A800F5D04E4B196821F0F801626941EAC20290 -:1015B8001A6011E000224A4B1A6001F053F80646FF -:1015C800464D05E001F04EF8801B022800F2268106 +:1015B8001A6011E000224A4B1A6001F043F806460F +:1015C800464D05E001F03EF8801B022800F2268116 :1015D8002B6813F0020FF5D1236813F0080F29D0F8 -:1015E800A369ABB101223F4B1A6001F03BF80646F4 -:1015F8003A4D05E001F036F8801B022800F2108110 +:1015E800A369ABB101223F4B1A6001F02BF8064604 +:1015F8003A4D05E001F026F8801B022800F2108120 :101608006B6A13F0020FF5D00120FFF703FF11E01A -:101618000022344B1A6001F025F806462F4D05E0EC -:1016280001F020F8801B022800F2FC806B6A13F09E +:101618000022344B1A6001F015F806462F4D05E0FC +:1016280001F010F8801B022800F2FC806B6A13F0AE :10163800020FF5D1236813F0040F00F08C80274BBC :10164800DB6913F0805F0BD1244BDA6942F08052DA :10165800DA61DB6903F080530193019B012500E007 :101668000025214B1B6813F4807F13D11E4B1A6889 -:1016780042F480721A6000F0F5FF07461A4E05E042 -:1016880000F0F0FFC01B642800F2CE80336813F42A +:1016780042F480721A6000F0E5FF07461A4E05E052 +:1016880000F0E0FFC01B642800F2CE80336813F43A :10169800807FF5D0E368012B05D1104B1A6A42F020 :1016A80001021A622BE063B903F1804303F50433A6 :1016B8001A6A22F001021A621A6A22F004021A62F5 @@ -368,22 +368,22 @@ :1016D8001A6A42F001021A6211E000BF00100240CB :1016E800000042428004424200700040574B1A6A90 :1016F80022F001021A621A6A22F004021A62E368EE -:1017080093B100F0AFFF8046504E41F2883706E0B3 -:1017180000F0A8FFC8EB0000B84200F28780336AE7 -:1017280013F0020FF4D010E000F09CFF8046474E03 -:1017380041F2883705E000F095FFC8EB0000B84299 +:1017080093B100F09FFF8046504E41F2883706E0C3 +:1017180000F098FFC8EB0000B84200F28780336AF7 +:1017280013F0020FF4D010E000F08CFF8046474E13 +:1017380041F2883705E000F085FFC8EB0000B842A9 :1017480076D8336A13F0020FF5D125B13F4BDA6929 :1017580022F08052DA61E369002B6BD03B4A526871 :1017680002F00C02082A67D0022B3AD10022384B2B -:101778001A6000F077FF0646344D04E000F072FF6F +:101778001A6000F067FF0646344D04E000F062FF8F :10178800801B02285AD82B6813F0007FF6D1236AF1 :10179800B3F5803F09D103F1804303F588335968D5 :1017A80021F40031A2680A435A60284B596821F491 :1017B8007411206A626A02430A435A600122244B68 -:1017C8001A6000F04FFF0546204C04E000F04AFF85 +:1017C8001A6000F03FFF0546204C04E000F03AFFA5 :1017D800401B022834D8236813F0007FF6D000207D -:1017E80031E000221A4B1A6000F03CFF0546174C06 -:1017F80004E000F037FF401B022823D8236813F0C9 +:1017E80031E000221A4B1A6000F02CFF0546174C16 +:1017F80004E000F027FF401B022823D8236813F0D9 :10180800007FF6D100201EE001201CE003201AE032 :10181800032018E0012016E0032014E0032012E062 :10182800032010E003200EE003200CE003200AE070 @@ -395,7 +395,7 @@ :1018880012F8102C13F4803F0CD00B4B5B68C3F399 :1018980040430B4413F8143C0848B0FBF3F002FB38 :1018A80000F004E0064800FB02F000E0034806B040 -:1018B80030BC7047DC5C00080010024000127A005F +:1018B80030BC7047785D00080010024000127A00C2 :1018C80000093D002DE9F04104460D46614B1B68B7 :1018D80003F007038B420BD25E4B1A6822F0070213 :1018E8000A431A601B6803F007038B4240F0998093 @@ -404,12 +404,12 @@ :10191800012B05D1504A126812F4003F0DD183E023 :10192800022B05D14C4A126812F0007F05D17EE0E7 :10193800494A126812F0020F7CD0474A516821F0D8 -:1019480003010B43536000F08DFE06466368012BCC -:101958000FD105E000F086FE801B404503D96CE0FE +:1019480003010B43536000F07DFE06466368012BDC +:101958000FD105E000F076FE801B404503D96CE00E :101968003D4F41F288387B6803F00C03042BF1D11A -:101978001EE0022B15D105E000F074FE801B4045E7 +:101978001EE0022B15D105E000F064FE801B4045F7 :1019880003D95DE0344F41F288387B6803F00C03DB -:10199800082BF1D10CE000F065FE801B404503D90F +:10199800082BF1D10CE000F055FE801B404503D91F :1019A80051E02D4F41F288387B6813F00C0FF2D1CB :1019B800284B1B6803F00703AB420AD9254B1A686A :1019C80022F007022A431A601B6803F00703AB42A0 @@ -417,1091 +417,1102 @@ :1019E800E061E2680A435A60236813F0080F07D0E1 :1019F800194B5A6822F46052216942EAC1025A60BE :101A0800FFF728FF144B5B68C3F30313134AD35C37 -:101A1800D840134A1060002000F0F4FD0020BDE813 +:101A1800D840134A1060002000F0E4FD0020BDE823 :101A2800F0810120BDE8F0810120BDE8F0810120AE :101A3800BDE8F0810120BDE8F0810320BDE8F08118 :101A48000320BDE8F0810320BDE8F0810120BDE856 -:101A5800F08100BF0020024000100240F05C000846 +:101A5800F08100BF00200240001002408C5D0008A9 :101A680000000020014B1868704700BF00000020EC :101A780008B5FFF7F7FF044B5B68C3F30223034A7B -:101A8800D35CD84008BD00BF00100240005D0008CC -:101A980008B5FFF7E7FF044B5B68C3F3C223034AAB -:101AA800D35CD84008BD00BF00100240005D0008AC -:101AB80030B4036A23F001030362026A436885694C -:101AC80025F073050C68254322F002028C68224336 -:101AD800104CA04203D004F50064A04205D122F0C6 -:101AE8000802CC68224322F004020A4CA04203D028 -:101AF80004F50064A04205D123F440734C692343E4 -:101B08008C692343436085614B684363026230BC40 -:101B1800704700BF002C014030B4036A23F480737F -:101B28000362026A4368C56925F073050C6825439A -:101B380022F400728C6842EA0422124CA04203D0BC -:101B480004F50064A04206D122F40062CC6842EA9F -:101B5800042222F480620B4CA04203D004F50064F6 -:101B6800A04207D123F440534C6943EA04138C691B -:101B780043EA04134360C5614B68C363026230BC27 -:101B8800704700BF002C014030B4036A23F480532F -:101B98000362056A4368C26922F4E6420C6842EAB5 -:101BA800042425F400558A6845EA0232094DA84202 -:101BB80003D005F50065A84204D123F480434D699C -:101BC80043EA85134360C4614B680364026230BC16 -:101BD800704700BF002C014010B4036A046A24F067 -:101BE80001040462846924F0F00444EA021223F038 -:101BF8000A031943826101625DF8044B704700BF14 -:101C080010B4036A23F0100303628469036A24F49E -:101C1800704444EA023223F0A00343EA01118261CE -:101C280001625DF8044B704710B4846824F47F4463 -:101C380042EA032319430C4384605DF8044B704760 -:101C480010B50B460268946824F070044968214373 -:101C580021F007041968214391605A68502A1FD05F -:101C680002D8402A0BD010BD602A1FD0702A22D17A -:101C78000068D9689A681B69FFF7D6FF10BD02682B -:101C8800116A146A24F0010414620268946924F049 -:101C9800F0041B6944EA031393610368196210BDD9 -:101CA800006899681A69FFF797FF10BD006899687E -:101CB8001A69FFF7A5FF10BD704700BF38B5044685 -:101CC80090F83C30012B17D0012580F83C500223B6 -:101CD80080F83D30FFF7B4FF2368DA6822F040024D -:101CE800DA602368DA6822F48042DA6084F83D50CA -:101CF800002084F83C0038BD022038BD0368244A1F -:101D0800904212D002F5006290420ED0B0F1804F9E -:101D18000BD0A2F59832904207D002F5806290422B -:101D280003D002F58062904203D123F070034A6821 -:101D38001343174A904212D002F5006290420ED027 -:101D4800B0F1804F0BD0A2F59832904207D002F53F -:101D58008062904203D002F58062904203D123F45E -:101D68004073CA68134323F080034A691A43026028 -:101D78008B68C3620B688362054B984203D003F5F6 -:101D88000063984201D10B690363012343617047E3 -:101D9800002C014010B50446B0B190F83D3013F066 -:101DA800FF0F04D1002380F83C30FFF785FF0223A2 -:101DB80084F83D30214651F8040BFFF79FFF0123BB -:101DC80084F83D30002010BD012010BD30B4036AF6 -:101DD80023F010030362026A4368856925F4E64527 -:101DE8000C6845EA042522F020028C6842EA0412B5 -:101DF800114CA04203D004F50064A04206D122F0A1 -:101E08008002CC6842EA041222F040020A4CA04246 -:101E180003D004F50064A04207D123F440634C6961 -:101E280043EA84038C6943EA8403436085614B6811 -:101E38008363026230BC7047002C014038B5044609 -:101E48000D4690F83C30012B64D0012380F83C30DB -:101E5800022380F83D300C2A55D8DFE802F00754F9 -:101E680054541A5454542E54545441000068FFF7E3 -:101E78001FFE23689A6942F008029A6123689A69EA -:101E880022F004029A61236899692A690A439A61CF -:101E980039E00068FFF79AFF23689A6942F4006204 -:101EA8009A6123689A6922F480629A6123689A6920 -:101EB800296942EA01229A6125E00068FFF72CFEB1 -:101EC8002368DA6942F00802DA612368DA6922F0E5 -:101ED8000402DA612368D9692A690A43DA6112E0DF -:101EE8000068FFF751FE2368DA6942F40062DA619C -:101EF8002368DA6922F48062DA612368DA69296979 -:101F080042EA0122DA61012384F83D30002084F896 -:101F18003C0038BD022038BD10B401238B40046A50 -:101F280024EA03030362036A8A40134303625DF8E9 -:101F3800044B704710B5044600680122FFF7ECFF18 -:101F480023680C4A934205D002F50062934203D1FC -:101F5800012202E0012200E000221AB15A6C42F488 -:101F680000425A6423681A6842F001021A6000208D -:101F780010BD00BF002C014010B404238B40046A3C -:101F880024EA03030362036A8A40134303625DF889 -:101F9800044B704710B5044600680422FFF7ECFFB5 -:101FA80023685A6C42F400425A6423681A6842F063 -:101FB80001021A60002010BD90F83C30012B22D09D -:101FC800012380F83C30CB6823F440728B681343BC -:101FD80023F480624B681A4322F400620B681A43A8 -:101FE80022F480520B691A4322F400524B691A43B7 -:101FF800896922F440420A4303685A64002380F83E -:102008003C30184670470220704700BF30B490F843 -:102018003C30012B20D0012380F83C30022280F88C -:102028003D200268546824F07004546002685568C2 -:102038000C682C4354600268946824F0800494600F -:102048000268946849682143916080F83D30002314 -:1020580080F83C30184600E0022030BC704700BFD2 -:1020680010B490F82430012B21D0012380F82430BB -:1020780003689A6812F0010F0FD10F4A926812F0A4 -:10208800010F0AD10D4A934207D15C6824F47024E9 -:102098000A6822435A60002304E0836A43F020035D -:1020A80083620123002280F82420184600E00220E1 -:1020B8005DF8044B704700BF002801400024014030 -:1020C80000F00700064AD36823F4E0631B041B0CE6 -:1020D80043EA002343F0BF6343F40033D3607047FF -:1020E80000ED00E030B4164BDB68C3F30223C3F104 -:1020F8000705042D28BF04251C1D062C01D9033B08 -:1021080000E00023012404FA05F5013D2940994027 -:1021180004FA03F3013B1A400A43002806DA00F0E8 -:102128000F001201D2B2074B1A5407E01201D2B2C3 -:1021380000F1604000F5614080F8002330BC704732 -:1021480000ED00E014ED00E0420900F01F0001235B -:1021580003FA00F0014B43F82200704700E100E069 -:102168000138B0F1807F0AD2064B5860F021064A48 -:1021780082F823100020986007221A607047012017 -:10218800704700BF10E000E000ED00E0042805D132 -:10219800054B1A6842F004021A607047024B1A682D -:1021A80022F004021A60704710E000E0704700BF98 -:1021B80008B5FFF7FBFF08BD0022064BDA61064BA6 -:1021C8001A6942F004021A611A6942F040021A615F -:1021D800704700BFB0000020002002400022064BDC -:1021E800DA61064B1A6942F002021A6158611A69EB -:1021F80042F040021A617047B000002000200240FF -:102208002DE9F04105468846284B1B7E012B49D015 -:102218000122264B1A760368022B13D14CF2503058 -:10222800FFF768F8002834D10120FFF7C5FF4CF20A -:102238005030FFF75FF801461D4B1A6922F004027F -:102248001A6129E04CF25030FFF754F818BB4FF0F0 -:10225800FF33C8F80030AC6801214CF25037144EF7 -:1022680010E02046FFF7BAFF3846FFF743F8336916 -:1022780023F002033361014610B1C8F800400BE0B7 -:1022880004F50064EA68AB6803EBC223A342E8D80C -:1022980002E0012100E001210022044B1A760846E1 -:1022A800BDE8F0810220BDE8F08100BFB000002049 -:1022B800002002402DE9F00F82B000252B46784F10 -:1022C800DFF8E4C1DFF8E481764C8146E1E00126DD -:1022D8009E400A683240B24240F0DA8048681228CC -:1022E8002FD00BD8022829D003D868B3012820D0D2 -:1022F80039E0032834D011281DD034E0DFF8B0A12C -:10230800504521D008D8AAF5801A50451CD00AF5A6 -:10231800803A504527D117E0DFF898A1504513D0EF -:102328000AF5803A50450FD0AAF5801A50451AD1BF -:102338000AE0CD6817E0CD68043514E0CD680835AB -:1023480011E0CD680C350EE0886858B1012803D13A -:10235800C9F81060082506E0C9F81460082502E0ED -:10236800002500E00425FF2A01D8484601E009F1CC -:102378000400FF2A01D89E0002E0A3F10806B60077 -:10238800D0F800B04FF00F0A0AFA06FA2BEA0A0A48 -:1023980005FA06F64AEA06060660486810F0805F05 -:1023A80076D0B86940F00100B861B86900F0010062 -:1023B800019001989808861C5CF826B003F0030683 -:1023C800B6004FF00F0A0AFA06FA2BEA0A0AC145C4 -:1023D80025D0DFF8E4B0D9451ED00BF5806BD94580 -:1023E80017D00BF5806BD94510D00BF5806BD9450C -:1023F80009D00BF5806BD94502D14FF0050B10E0E1 -:102408004FF0060B0DE04FF0040B0AE04FF0030B02 -:1024180007E04FF0020B04E04FF0010B01E04FF032 -:10242800000B0BFA06F646EA0A0602304CF8206062 -:10243800486810F4803F03D020681043206003E010 -:10244800206820EA02002060486810F4003F03D0AA -:1024580060681043606003E0606820EA0200606022 -:10246800486810F4801F03D0A0681043A06003E000 -:10247800A06820EA0200A060486810F4001F03D09A -:10248800E0680243E26003E0E06820EA0202E260FA -:1024980001330F2B7FF61BAF02B0BDE8F00F70477A -:1024A8000010024000040140000001400008014003 -:1024B8000000211000003110000C014083680B421D -:1024C80001D0012070470020704700BF0AB10161A8 -:1024D8007047090401617047C3685940C16070477B -:1024E8002DE9F04182B00446036813F0010F60D073 -:1024F800404BDB6913F0805F0BD13E4BDA6942F049 -:102508008052DA61DB6903F080530193019B012754 -:1025180000E00027384B1B6813F4807F12D1364B3C -:102528001A6842F480721A6000F09CF80646324D30 -:1025380004E000F097F8801B642852D82B6813F445 -:10254800807FF6D02B4B1B6A13F4407325D062684A -:1025580002F440729A4220D0264A136A23F440704B -:10256800264901250D6000250D60106213F0010F4A -:1025780013D000F077F8804605F1804505F504355D -:1025880041F2883605E000F06DF8C8EB0000B04273 -:1025980029D82B6A13F0020FF5D0164B196A21F4CB -:1025A800407162680A431A621FB1DA6922F08052E8 -:1025B800DA61236813F0020F06D00E4B596821F434 -:1025C8004041A2680A435A60236813F0100F0CD0E8 -:1025D800084B5A6822F4800261690A435A60002055 -:1025E80004E0032002E0032000E0002002B0BDE880 -:1025F800F08100BF001002400070004040044242D9 -:10260800704700BF10B50446074B1868074BA3FB7B -:1026180000208009FFF7A4FD4FF0FF30214600227B -:10262800FFF760FD002010BD00000020D34D6210B0 -:1026380008B5074B1A6842F010021A600320FFF72A -:102648003FFD0020FFF7DEFFFFF7DAFF002008BD9F -:1026580000200240024B1A6801321A60704700BF1E -:10266800D0000020014B1868704700BFD000002040 -:1026780030B583B00190FFF7F5FF0546019CB4F132 -:10268800FF3F00D00134FFF7EDFF401BA042FAD313 -:1026980003B030BD704700BF30B482B0002301934F -:1026A80090F82430012B00F08980012380F8243031 -:1026B8004B68062B0ED80268546B03EB8303053B6B -:1026C8001F259D4024EA05050C6804FA03F32B43F3 -:1026D80053631EE00C2B0ED80268146B03EB8303C4 -:1026E800233B1F259D4024EA05050C6804FA03F3E3 -:1026F8002B4313630DE00268D46A03EB8303413B69 -:102708001F259D4024EA05050C6804FA03F32B43B2 -:10271800D3620B68092B0ED90268D46803EB430314 -:102728001E3B07259D4024EA05058C6804FA03F33F -:102738002B43D3600CE00268146903EB43030725BD -:102748009D4024EA05058C6804FA03F32B431361C2 -:102758000B68103B012B27D803681A4A93421DD1F6 -:102768009A6812F4000F21D19A6842F400029A6024 -:102778000B68102B1CD1144B1A68144BA3FB0213C3 -:102788009B0C03EB83035B00019302E0019B013B7D -:102798000193019B002BF9D100220AE0836A43F0E0 -:1027A80020038362012204E0002202E0002200E00C -:1027B8000022002380F82430104600E0022002B0F6 -:1027C80030BC7047002401400000002083DE1B431A -:1027D80030B583B004460023019303689A6812F069 -:1027E800010F2ED19A6842F001029A60164B1A68BE -:1027F800164BA3FB02139B0C019302E0019B013BC8 -:102808000193019B002BF9D1FFF72CFF054611E03E -:10281800FFF728FF401B02280CD9A36A43F01003D6 -:10282800A362E36A43F00103E362002384F82430DF -:10283800012007E023689B6813F0010FE8D000200F -:1028480000E0002003B030BD0000002083DE1B4301 -:1028580010B5044690F82430012B6ED0012380F87F -:102868002430FFF7B5FF0246002861D1A36A23F49C -:10287800407323F0010343F48073A3622368304953 -:102888008B4205D1A1F58061496811F4702F0ED1F2 -:10289800A16A21F48011A162596811F4806F1CD0DB -:1028A800A16A21F4405141F48051A16215E0A16A66 -:1028B80041F48011A16223498B4203D001F5806164 -:1028C8008B420AD11F49496811F4806F05D0A16A6B -:1028D80021F4405141F48051A162A16A11F4805F52 -:1028E80004D0E16A21F00601E16201E00021E16221 -:1028F800002184F824106FF0020119602368996898 -:1029080001F46021B1F5602F0DD10D498B4205D13D -:10291800A1F58061496811F4702F04D1996841F4D8 -:10292800A001996007E0996841F48011996002E07C -:10293800002384F82430104610BD022010BD00BFCB -:10294800002801400024014038B5044603689A680D -:1029580012F0010F1DD09A6822F001029A60FFF769 -:1029680081FE05460EE0FFF77DFE401B022809D9CF -:10297800A36A43F01003A362E36A43F00103E3622E -:10298800012038BD23689B6813F0010FEBD10020AC -:1029980038BD002038BD00BF70B50446002800F0DF -:1029A8008680836A23B9C36280F82430FFF772FEF9 -:1029B8002046FFF7C9FFA36A13F0100F71D1002852 -:1029C8006FD1A36A23F4885323F0020343F0020370 -:1029D800A36261682368374A934206D1E269B2F577 -:1029E800402F03D14FF4002200E0E2690A43E56872 -:1029F80042EA4502A168B1F5807F04D0012905D1DA -:102A08004FF4807103E04FF4807100E000216669A3 -:102A1800012E0FD135B9A569013D41EA453141F48F -:102A2800006107E0A56A45F02005A562E56A45F062 -:102A38000105E5625D6825F4694529435960216807 -:102A48008D681D4B2B4013438B60A368B3F5807FC3 -:102A580001D0012B03D12569013D2D0500E000259A -:102A68002368D96A21F470012943D96223689968D7 -:102A7800124B0B409A4208D10023E362A36A23F069 -:102A8800030343F00103A36270BDA36A23F012039A -:102A980043F01003A362E36A43F00103E3620120F9 -:102AA80070BDA36A43F01003A362012070BD01202A -:102AB80070BD00BF003C0140FDF7E1FFFE0E1FFFA7 -:102AC8002DE9F84304460368196921F44051C268A6 -:102AD8000A431A61826803691A43436942EA030197 -:102AE8000268D36823F4B05323F00C030B43D3607C -:102AF8000368596921F4407182690A435A6106687A -:102B08005A4B9E4258D1FEF7C3FF00EB800000EB02 -:102B1800800063689B00B0FBF3F9554DA5FB0929BC -:102B28004FEA59194FEA0919FEF7B2FF00EB800086 -:102B380000EB800063689B00B0FBF3F8FEF7A8FF8A -:102B480000EB800000EB800063689B00B0FBF3F3B0 -:102B5800A5FB03235B09642707FB13884FEA0818C2 -:102B680008F13208A5FB08384FEA581808F0F008B1 -:102B7800C844FEF78DFF00EB800000EB800063681F -:102B88009B00B0FBF3F9FEF783FF00EB800000EB3E -:102B9800800063689B00B0FBF3F3A5FB03235B098C -:102BA80007FB13973F013237A5FB0735C5F34315DC -:102BB8004544B560BDE8F883FEF75AFF00EB800096 -:102BC80000EB800063689B00B0FBF3F9284DA5FB80 -:102BD80009294FEA59194FEA0919FEF749FF00EB8D -:102BE800800000EB800063689B00B0FBF3F8FEF701 -:102BF8003FFF00EB800000EB800063689B00B0FBA8 -:102C0800F3F0A5FB00304009642707FB10884FEA62 -:102C1800081808F13208A5FB08284FEA581808F0E8 -:102C2800F008C844FEF724FF00EB800000EB8000AA -:102C380063689B00B0FBF3F9FEF71AFF00EB800016 -:102C480000EB800063689B00B0FBF3F0A5FB00304D -:102C5800400907FB10973F013237A5FB0725C5F34D -:102C680043154544B560BDE8F88300BF003801400E -:102C78001F85EB51704700BF10B5044658B390F854 -:102C8800393013F0FF0F04D1002380F83830FFF7F4 -:102C9800F1FF242384F839302368DA6822F40052DB -:102CA800DA602046FFF70CFF23681A6922F4904285 -:102CB8001A6123685A6922F02A025A612368DA687D -:102CC80042F40052DA600020E063202384F83930AF -:102CD80084F83A3010BD012010BD00BF03685A695E -:102CE80012F4806F0DD06FF480625A61042303647C -:102CF80000230363202280F83D2080F83C30012027 -:102D080070470020704700BF2DE9F84307460D467D -:102D180091461E46C1F3074815E0B6F1FF3F12D0B1 -:102D28002EB1FFF79FFC089BC01AB0420BD90023B5 -:102D38003B63202287F83D2087F83E3087F83C30F7 -:102D48000320BDE8F883B8F1010F09D13B685C693D -:102D580025EA0404A4B2D4F1010438BF002408E031 -:102D68003C68A46925EA0404A4B2D4F1010438BF7C -:102D780000244C45D1D00020BDE8F8832DE9F84364 -:102D880004460E4690469946C1F307472EE0206850 -:102D9800456915F4806F13D0036843F4007303602A -:102DA80023686FF480625A61042323640023236339 -:102DB800202284F83D2084F83C300120BDE8F883C7 -:102DC800B8F1FF3F12D0B8F1000F05D0FFF74AFC69 -:102DD800C9EB0000404509D900232363202284F869 -:102DE8003D2084F83C300320BDE8F883012F08D14A -:102DF8002368586926EA000080B2003018BF012015 -:102E080007E02368986926EA000080B2003018BFFE -:102E180001200028BBD1BDE8F88300BFF0B583B01E -:102E280004460F4616461D46C06A042804D00128E9 -:102E380002D010F5803F05D123681A6842F48072E9 -:102E48001A6007E0236B122B04D123681A6842F436 -:102E580080721A60009520464FF001110022334617 -:102E6800FFF752FF58BB2369B3F5804F04D123689D -:102E780007F0FE071F6115E0236807F44072D211BE -:102E880042F0F0021A612046114932462B46FFF7FC -:102E980075FF20B1236C042B13D1012314E02368A0 -:102EA800FFB21F6120460B4932462B46FFF766FFEB -:102EB800034648B1236C042B05D1012304E0032306 -:102EC80002E0032300E00323184603B0F0BD00BF6F -:102ED80008000100020001002DE9F04184B0044619 -:102EE800884617461E46C06A25682B6843F48063E7 -:102EF8002B60042804D0012802D010F5803F05D1AA -:102F080023681A6842F480721A6007E0236B112B59 -:102F180004D123681A6842F480721A600096204629 -:102F28004FF0011100223B46FFF7EEFE002852D178 -:102F38002369B3F5804F06D1236848F001085FFA8A -:102F480088F21A613AE0236808F44075ED0945F003 -:102F5800F0021A61204626493A463346FFF70EFF2B -:102F680020B1236C042B38D101233DE023685FFA9C -:102F780088F21A6120461F493A463346FFF7FEFE9B -:102F880020B1236C042B2AD101232DE000220392C7 -:102F9800236859690391996903910399196841F460 -:102FA80080711960009620464FF001113B46FFF7EB -:102FB800ABFEB0B9236845F0F1051D6120460D4907 -:102FC8003A463346FFF7DAFE034668B1236C042B12 -:102FD80009D1012308E0032306E0032304E00323C7 -:102FE80002E0032300E00323184604B0BDE8F081A3 -:102FF800080001000200010070B504460D4616469F -:1030080019E02046FFF76AFEE0B9B5F1FF3F12D09C -:1030180025B1FFF727FB801BA8420CD9236C43F08E -:103028002003236400232363202284F83D2084F8AE -:103038003C30032070BD23685B6913F0800FE0D03B -:10304800002070BD012070BD70B504460D461646BF -:1030580019E02046FFF742FEE0B9B5F1FF3F12D074 -:1030680025B1FFF7FFFA801BA8420CD9236C43F067 -:103078002003236400232363202284F83D2084F85E -:103088003C30032070BD23685B6913F0040FE0D067 -:10309800002070BD012070BDF8B506460D461746E4 -:1030A80022E0596911F0100F0CD06FF010025A612C -:1030B800002333643363202286F83D2086F83C30B1 -:1030C8000120F8BD25B1FFF7CDFAC01BA8420BD9E6 -:1030D800336C43F020033364202386F83D3000230B -:1030E80086F83C300320F8BD33685C6914F0400F63 -:1030F800D7D00020F8BD00BF704700BF38B50446E0 -:10310800002800F0838090F83D3013F0FF0F04D1C1 -:10311800002380F83C30FFF7EFFF242384F83D308C -:1031280023681A6822F001021A60FEF7A1FC384BE6 -:10313800A3FB00239B0C2268536021686268354D0D -:10314800AA4201D8013308E04FF4967202FB03F358 -:10315800314AA2FB03539B0901330B62226863685F -:103168002C498B4208D85B00B0FBF3F0C0F30B038B -:10317800032B2DD804202BE0A16851B903EB43059C -:10318800B0FBF5F5C5F30B05D5F1010538BF0025F2 -:103198000BE003EB830505EB8505B0FBF5F5C5F3FF -:1031A8000B05D5F1010538BF002585B931B903EB09 -:1031B8004303B0FBF3F040F4004009E003EB830362 -:1031C80003EB8303B0FBF3F040F4404000E0012040 -:1031D800D0612368E169226A0A431A602368216979 -:1031E800E2680A439A6023686169A2690A43DA605F -:1031F80023681A6842F001021A6000202064202324 -:1032080084F83D30206384F83E0038BD012038BD85 -:1032180083DE1B43A0860100D34D62102DE9F043E5 -:1032280085B004460F4691469846FFF71BFA0646B6 -:1032380094F83D50EDB2202D40F0A080009020463B -:10324800554901221923FFF75FFD002840F09880B7 -:1032580094F83C30012B00F09580012384F83C3031 -:1032680023681A6812F0010F03D11A6842F00102AC -:103278001A6023681A6822F400621A60212384F80D -:103288003D30102384F83E3000232364C4F8249092 -:10329800A4F82A80A3F58033E362638D2385204652 -:1032A80039460C9A3346FFF7B9FD054660B1236CE1 -:1032B800042B04D1002384F83C30012567E0002367 -:1032C80084F83C30032562E00023039323685A699D -:1032D80003929B690393039B3FE020460C99324677 -:1032E800FFF78AFE48B1236C042B4DD123681A6876 -:1032F80042F400721A60012549E02268636A591C89 -:1033080061621B781361638D013B9BB26385238DDA -:10331800013B9BB223852268516911F0040F0CD040 -:103328005BB1636A591C61621B781361638D013B51 -:103338009BB26385238D013B238520460C99324639 -:10334800FFF782FE48B1236C042B1FD123681A684B -:1033580042F400721A60012519E0238D002BBCD1BC -:1033680023681A6842F400721A60202384F83D30FA -:10337800002384F83E3084F83C3008E0022506E05B -:10338800022504E0022502E0032500E00325284683 -:1033980005B0BDE8F08300BF020010002DE9F0433E -:1033A80087B004460F4691469846FFF75BF90646F4 -:1033B80094F83D50EDB2202D40F05F8100902046FA -:1033C800954901221923FFF79FFC002840F05781F7 -:1033D80094F83C30012B00F05481012384F83C30F0 -:1033E80023681A6812F0010F03D11A6842F001022B -:1033F8001A6023681A6822F400621A60222384F88B -:103408003D30102384F83E3000232364C4F8249010 -:10341800A4F82A80A3F58033E362638D23852046D0 -:1034280039460E9A3346FFF757FD054660B1236CBF -:10343800042B04D1002384F83C3001252CE100231F -:1034480084F83C30032527E1238D5BB90293236878 -:103458005A6902929A690292029A1A6842F40072B0 -:103468001A60FAE0012B13D123681A6822F48062EB -:103478001A6072B60023039323685A6903929A6903 -:103488000392039A1A6842F400721A6062B6E4E082 -:10349800022B13D123681A6842F400621A6072B6CC -:1034A8000023049323685A6904929A690492049A3F -:1034B8001A6822F480621A6062B6CEE023681A683D -:1034C80042F480621A600023059323685A690592C2 -:1034D8009B690593059BC0E0032B00F29180012BAB -:1034E80019D120460E993246FFF7D6FD28B1236C34 -:1034F800202B40F0C8800325CEE0636A5A1C626224 -:10350800226812691A70238D013B2385638D013B64 -:103518009BB26385A4E0022B2BD10096204641463E -:103528003A460E9BFFF7F0FB002840F0AE8072B6DB -:1035380023681A6842F400721A60636A5A1C62624D -:10354800226812691A70238D013B2385638D013B24 -:103558009BB2638562B6636A5A1C6262226812690A -:103568001A70238D013B2385638D013B9BB26385D4 -:1035780076E00096204641463A460E9BFFF7C4FB8C -:10358800002840F0848023681A6822F480621A6058 -:1035980072B6636A5A1C6262226812691A70238DB5 -:1035A800013B2385638D013B9BB2638500962046D2 -:1035B80041463A460E9BFFF7A7FB002869D12368CE -:1035C8001A6842F400721A60636A5A1C62622268BE -:1035D80012691A70238D013B2385638D013B9BB2D1 -:1035E800638562B6636A5A1C6262226812691A703D -:1035F800238D013B2385638D013B9BB263852FE0BF -:1036080020460E993246FFF747FD38B1236C202B30 -:1036180041D1032540E000BF02001000636A5A1C34 -:103628006262226812691A70238D013B2385638DBB -:10363800013B9BB2638523685A6912F0040F0FD0CF -:10364800626A511C61621B691370238D013B2385DB -:10365800638D013B9BB2638502E0DFF8448000275D -:10366800238D002B7FF438AF202384F83D300023CE -:1036780084F83E3084F83C300EE002250CE0022548 -:103688000AE0022508E0012506E0032504E00325F9 -:1036980002E0032500E00125284607B0BDE8F083D5 -:1036A8000400010010B4034600283CD002682049F9 -:1036B8008A420AD81F4911441F4AA2FB010109097D -:1036C800890019641D4ADA6309E01D4911441A4A40 -:1036D800A2FB01010909890019641A4ADA63022266 -:1036E80083F8212019680A6822F47F5222F03002F8 -:1036F8005C6898680443D8680443186904435869A7 -:10370800044398690443D869204302430A600020AF -:103718009862D862186358639863012283F821205D -:1037280083F8200000E001205DF8044B704700BFDB -:1037380007040240F8FFFDBFCDCCCCCC000002400E -:10374800F8FBFDBF000402400F4B1A6842F001026B -:103758001A6059680D4A0A405A601A6822F0847241 -:1037680022F480321A601A6822F480221A605A6899 -:1037780022F4FE025A604FF41F029A604FF0006272 -:10378800034B9A60704700BF001002400000FFF82A -:1037980000ED00E030B597B01F4BDA6942F48022A3 -:1037A800DA61DA6902F480220092009A5A6942F0DA -:1037B80001025A615B6903F001030193019B174DF4 -:1037C80006954FF4E13307930024089409940A946A -:1037D80008230B930C940D9406A8FFF74DFA6B6918 -:1037E80043F080036B614FF48063029301230493D9 -:1037F8000223039303230593094802A9FEF75AFD00 -:10380800084B1C60084A9A605C6090221A6070221B -:103818001C3B5A6017B030BD001002400048004001 -:10382800000C01401C000240044800402DE9F04112 -:103838008AB04A4DEB6943F48003EB61EB6903F40A -:1038480080030193019B6B6943F001036B616B6912 -:1038580003F001030293029B0E2001210422FEF7CC -:1038680041FC0E20FEF770FC0F2001210322FEF719 -:1038780039FC0F20FEF768FC394E3A4B33603A4B5F -:1038880073600024B460F4604FF480433361746162 -:10389800B461F46134623046FFF730FC6B6943F081 -:1038A80001036B616B6903F001030393039BAB692D -:1038B80043F00803AB61AB6903F008030493049B6E -:1038C8004FF44063069312230793012308930323BD -:1038D8000993264806A9FEF7EDFCEB6943F480033B -:1038E800EB61EB6903F480030593059B204D214BA5 -:1038F8002B606C60AC604FF08008C5F80C802C61C0 -:103908006C61AC614FF48057EF612846FFF7CAFE3F -:10391800B5636E62184D194B2B6010236B60AC6059 -:10392800C5F80C802C616C61AC61EF612846FFF72B -:10393800B9FE75636E62212021462246FEF7D2FB4E -:103948002120FEF701FC222021462246FEF7CAFB71 -:103958002220FEF7F9FB0AB0BDE8F0810010024012 -:103968004801002000580040A0860100000C0140DA -:10397800DC010020580002402002002044000240E0 -:103988002DE9F04F89B0814B9A6942F004029A619F -:103998009A6902F004020192019A9A6942F00802B7 -:1039A8009A619A6902F008020292029A9A6942F0B0 -:1039B80010029A619B6903F010030393039B002391 -:1039C800059306934FF00208CDF81C804FF0200AAB -:1039D8000DEB0A0444F810AD6D4F38462146FEF74A -:1039E80069FC4023049338462146FEF763FC4FF0F8 -:1039F800800BCDF810B038462146FEF75BFC4FF43B -:103A080080630493634D28462146FEF753FC4FF428 -:103A18000063049328462146FEF74CFC4FF4805679 -:103A2800049628462146FEF745FC049606F1804692 -:103A380006F5784630462146FEF73CFCCDF8108066 -:103A480030462146FEF736FC4FF00109CDF81490B8 -:103A58000423049338462146FEF72CFC10230493D4 -:103A680030462146FEF726FCCDF810A03046214608 -:103A7800FEF720FC03230593CDF810902846214635 -:103A8800FEF718FCCDF8109030462146FEF712FCE0 -:103A98000823049328462146FEF70CFCCDF8108035 -:103AA80028462146FEF706FC1023049328462146A3 -:103AB800FEF700FCCDF810A028462146FEF7FAFBD9 -:103AC8000423049328462146FEF7F4FB08230493B5 -:103AD80030462146FEF7EEFB042304933046214688 -:103AE800FEF7E8FBCDF814804023049328462146CE -:103AF800FEF7E0FBCDF810B028462146FEF7DAFBCA -:103B08004FF4807ACDF810A028462146FEF7D2FB64 -:103B1800CDF810B030462146FEF7CCFBCDF810901A -:103B280038462146FEF7C6FBCDF8108038462146B8 -:103B3800FEF7C0FBCDF810A030462146FEF7BAFBD1 -:103B48004FF40073049330462146FEF7B3FB4FF45D -:103B58008063049330462146FEF7ACFB4FF40053D4 -:103B6800049338462146FEF7A5FB4FF4804304939F -:103B780038462146FEF79EFB4FF40043049338462F -:103B88002146FEF797FB09B0BDE8F08F0010024010 -:103B9800000C0140001001402DE9F04F99B0754B21 -:103BA8009A6942F400629A619A6902F40062019289 -:103BB800019A9A6942F400529A619B6903F400538E -:103BC8000293029B6C4EDFF8B891C6F8009000246F -:103BD80074604FF02008C6F808804FF4FA6BC6F8F6 -:103BE8000CB034617461B4613046FEF7D3F8102329 -:103BF80016931794304616A9FEF708FA60230F9318 -:103C08001094119408271297139414944FF4007386 -:103C1800159330460FA92246FEF710F930460FA932 -:103C28000422FEF70BF930460FA93A46FEF706F9CB -:103C38004FF4006308934FF4806309930A94CDF816 -:103C48002C800C940D940E9430460DEB0801FEF771 -:103C5800B3F94A4DDFF82CA1C5F800A06C60C5F88F -:103C68000880C5F80CB02C616C61AC612846FEF781 -:103C780091F8CDF8588080231793284616A9FEF7A7 -:103C8800C5F9049418A9052341F8543D2846FEF7C0 -:103C980015F860230F9310941194129713941494A9 -:103CA8004FF40073159328460FA92246FEF7C6F86D -:103CB80028460FA90422FEF7C1F828460FA93A465C -:103CC800FEF7BCF84FF4006308934FF48063099340 -:103CD8000A94CDF82C800C940D940E9428460DEB84 -:103CE8000801FEF769F9DAF8443023F40043CAF80A -:103CF8004430D9F8443023F40043C9F84430284606 -:103D08002146FEF717F928460421FEF713F928463D -:103D18003946FEF70FF928462146FEF73BF92846B3 -:103D28000421FEF737F928463946FEF733F93046BD -:103D38002146FEF7FFF830460421FEF7FBF830462F -:103D48003946FEF7F7F830462146FEF723F93046A4 -:103D58000421FEF71FF930463946FEF71BF92B6898 -:103D680001221A6333681A6842F001021A6019B016 -:103D7800BDE8F08F001002409C0100202C030020B9 -:103D8800002C0140003401402DE9F04186B0424E3C -:103D9800B36943F40073B361B36903F40073009328 -:103DA800009B3E4C3E4B23604FF48073A36000257C -:103DB800E56065614FF44023E36165604FF00508F5 -:103DC800C4F810802046FEF7E7FD364B5A6842F4E7 -:103DD80080225A6006A94FF4C02341F8043D2046CA -:103DE800FEF73EF9012304930E2202920393204624 -:103DF80002A9FEF751FC029502270397204602A963 -:103E0800FEF74AFC04970B270297032303932046E7 -:103E180002A9FEF741FC0C230293042303932046D6 -:103E280002A9FEF739FC0723049310230293CDF867 -:103E38000C80204602A9FEF72FFC23689A6842F4FA -:103E4800000242F480729A609A6842F001029A6015 -:103E5800736943F001037361736903F0010301930C -:103E6800019B114B1D60C3F80480104A9A60104AE8 -:103E7800DA6040F6A2221A601A6842F001021A605B -:103E8800384629462A46FEF72DF93846FEF75CF9EA -:103E980006B0BDE8F08100BF0010024064020020B7 -:103EA8000024014000000140080002404C24014069 -:103EB800D8020020F0B585B0284B9A6942F4806298 -:103EC8009A619B6903F480630093009B244C254B03 -:103ED80023604FF48073A3600023E36063614FF4B1 -:103EE8006022E2616360052626612046FEF754FDE4 -:103EF800012303930F2201920293204601A9FEF7A2 -:103F0800CBFB0D23019302250295204601A9FEF75C -:103F1800C3FB03950A23019303270297204601A9AF -:103F2800FEF7BAFB01950423029320460DEB03012B -:103F3800FEF7B2FB0723039301970296204601A9D7 -:103F4800FEF7AAFB23689A6842F480729A609A681E -:103F580042F001029A6005B0F0BD00BF00100240B7 -:103F6800180100200028014070B50D4B1B68133361 -:103F7800262B14D800240B4B1C700B4B1C700B4EBB -:103F8800642504E034702846FEF772FB0134072CE0 -:103F9800F8DD074820210022FEF798FAFEE770BDF9 -:103FA80028040020740000208800002090000020D1 -:103FB8000008014010B5054C052323704FF4FA7032 -:103FC800FEF756FB0023237010BD00BF90000020B1 -:103FD80010B5044C052323706420FEF749FB002329 -:103FE800237010BD9000002008B5FDF765F9044B5B -:103FF8001888044B198801F0CDFAFDF771F908BD4E -:10400800080000206C00002030B597B002250C9500 -:1040180001231093102311931395002414944FF443 -:10402800601315930CA8FDF70BFA0F230793089557 -:1040380009944FF480630A930B9407A82946FDF767 -:1040480041FC01954FF44043039301A8FEF748FA59 -:10405800FDF708FD084BA3FB00208009FEF780F858 -:104068000420FEF793F84FF0FF3021462246FEF772 -:1040780039F817B030BD00BFD34D62100000000002 -:104088002DE9F04F87B0FEF7D3FAA54CA36943F0AA -:104098000103A361A36903F001030593059B0320B2 -:1040A800FEF70EF86FF00B0000210A46FEF71AF82B -:1040B8006FF00A0000210A46FEF714F86FF00900B5 -:1040C80000210A46FEF70EF86FF0040000210A46A8 -:1040D800FEF708F86FF0030000210A46FEF702F821 -:1040E8006FF0010000210A46FDF7FCFF4FF0FF309A -:1040F80000210A46FDF7F6FFFFF786FF636923F004 -:1041080001036361FFF73CFCFFF746FDFFF73CFE48 -:10411800FFF7D0FEFFF73EFB824820210122FEF781 -:10412800D5F98148FEF794FB8048FEF791FB0424FB -:104138007F4E642505E0630033702846FEF798FA41 -:10414800013C002CF7DA0424794E642506E063006C -:10415800013B33702846FEF78BFA013C002CF6DA57 -:104168000022734B1A700122724B1A70FDF7A4F8E3 -:1041780001F078F8704C714B1888214601F050F81E -:10418800FDF7AEF82088FCF7A7F900226C4BFCF786 -:1041980033FBFCF7E9FC8146FCF7B0F95EA3D3E9F1 -:1041A8000023FCF771FC08B14FF07E59FFF73EFB86 -:1041B800644C272384F840300526666404F14800DF -:1041C8006149542201F070FD012525704FF0000B64 -:1041D80084F83CB0204601F02DFC3220FEF748FA66 -:1041E800204601F06BFB3220FEF742FA2046594682 -:1041F8005A4601F043FB2046544901F049FB20464A -:1042080059462A4601F03AFB2046514901F040FB45 -:10421800204601F053FB3046FEF72AFA204659465D -:104228002A4601F02BFB20464A4901F031FB204683 -:1042380008212A4601F022FB2046474901F028FBC5 -:1042480020460F212A4601F019FB2046434901F078 -:104258001FFB204659465A4601F010FB20464049AC -:1042680001F016FB204608215A4601F007FB2046BC -:104278003C4901F00DFB20460E215A4601F0FEFA9A -:104288002046394901F004FB384804212A46FEF744 -:104298001DF9374B1B8A274B1D70DA460220FEF7A3 -:1042A800E7F920480221FEF709F900287CD000220E -:1042B800204B1A701B4D02240A2602E03046FEF7F6 -:1042C800D7F928462146FEF7F9F80028F6D1FFF776 -:1042D8007FFE4FF49670FEF7CBF912480221FEF7E5 -:1042E800EDF820B946E03046FEF7C2F902E00D4D80 -:1042F80002240A2628462146FEF7E0F80028F2D1D3 -:10430800FFF758FE4FF4AF70FEF7B2F9FFF72CFE37 -:104318004AE000BFAFF300809A9999999999C93FEB -:10432800001002400008014064020020180100202B -:1043380090000020880000206C0000200800002069 -:1043480000408F406C03002048010020085D0008F1 -:104358001C5D00082C5D0008345D0008385D00080D -:104368003C5D0008445D0008485D0008000C014001 -:10437800D802002048464FF07A51FCF74BFC8146A2 -:10438800FCF7BCF898A3D3E90023FCF79BFB08B122 -:104398004FF07C5948469C49FCF744FDFCF72EFF3A -:1043A8009A4B1880FFF720FE994B5B8A9BB2B43B6F -:1043B800B3F5805F0BDA964B5B8A9BB2B42B04D4BF -:1043C800934B5E8AB43EB6B203E0002601E040F6A5 -:1043D800FF768F4BD88980B2A0F50060FCF77CF897 -:1043E80000224FF07D53FCF7DDF8FCF7BDFB0746D4 -:1043F800B04648468749FCF715FDFCF7D9FE361A42 -:104408005846FCF7BBFC8449FCF70CFDFCF776F832 -:10441800CDE902013046FCF75FF804460D4600225C -:104428000023FCF731FB28B17342322BD4BF0023A1 -:10443800012303E0322ED4BF0023012373B12046A9 -:10444800294600220023FCF71FFB18B17042FCF735 -:1044580095FC04E03046FCF791FC00E06F483946D3 -:10446800FCF7E0FCFCF74AF84FF033326C4BFCF7F2 -:1044780099F802460B4620462946FBF7E1FE002242 -:10448800684BFCF71FFB002876D1204629460022FE -:104498000023FCF7F9FA28B17342322BD4BF00236A -:1044A800012303E0322ED4BF0023012373B1204639 -:1044B800294600220023FCF7E7FA18B17042FCF7FE -:1044C8005DFC04E03046FCF759FC00E053483946EF -:1044D800FCF7A8FCFCF712F84FF03332504BFCF70E -:1044E80061F802460B4620462946FBF7A9FE40A381 -:1044F800D3E90023FCF7C8FA002837D1204629461B -:1045080000220023FCF7C0FA28B17342322BD4BF33 -:104518000023012303E0322ED4BF0023012373B10B -:104528002046294600220023FCF7AEFA18B1704253 -:10453800FCF724FC04E03046FCF720FC00E0374898 -:104548003946FCF76FFCFBF7D9FF4FF03332344B99 -:10455800FCF728F802460B4620462946FBF770FE72 -:1045680025A3D3E90023FCF71DF802E024A1D1E933 -:10457800000102460B4602E04FF096622A4BDDE945 -:104588000201FBF75DFEFCF7A7FA83465046FCF7ED -:10459800F5FB2149FCF746FCFBF7B0FFCDE902012A -:1045A8002046294600220023FCF76EFA28B1734200 -:1045B800322BD4BF0023012303E0322ED4BF0023C3 -:1045C80001239BB32046294600220023FCF75CFA0E -:1045D80018B17042FCF7D2FB29E03046FCF7CEFB5D -:1045E80025E000BFAFF30080CDCCCCCCCCCC0440D0 -:1045F80000000000007087C0000000A09999C9BFA2 -:104608000000B00400C0624000007A446C00002042 -:10461800D80200200020A844CDCC4C3F00004842DE -:104628003333F33F0070874000C062C0A848394662 -:10463800FCF7F8FBFBF762FF4FF03332A54BFBF7B3 -:10464800B1FF02460B4620462946FBF7F7FD00223C -:10465800A14BFCF737FA002876D1204629460022DC -:104668000023FCF711FA28B17342322BD4BF002380 -:10467800012303E0322ED4BF0023012373B1204667 -:10468800294600220023FCF7FFF918B17042FCF715 -:1046980075FB04E03046FCF771FB00E08C483946B6 -:1046A800FCF7C0FBFBF72AFF4FF03332894BFBF7CF -:1046B80079FF02460B4620462946FBF7BFFD7CA33F -:1046C800D3E90023FCF7E0F9002837D12046294632 -:1046D80000220023FCF7D8F928B17342322BD4BF4B -:1046E8000023012303E0322ED4BF0023012373B13A -:1046F8002046294600220023FCF7C6F918B170426B -:10470800FCF73CFB04E03046FCF738FB00E070485F -:104718003946FCF787FBFBF7F1FE4FF033326D4B60 -:10472800FBF740FF02460B4620462946FBF786FD6D -:1047380061A3D3E90023FBF735FF02E060A1D1E9CB -:10474800000102460B4602E04FF09662634BDDE93A -:104758000201FBF775FDFCF7BFF98246BBF1310F8B -:1047680017DC1BF1310F14DB312812DC10F1310F8B -:104778000FDB16F5967F09DD594BC3F800B04242AE -:10478800584B1A600122584B1A7002E00022564B0F -:104798001A704046FBF7A0FE4BA3D3E90023FCF7B1 -:1047A8002BF806460F464846FBF7A8FE04460D467A -:1047B8003046394622462B46FBF740FD00224B4B3C -:1047C800FCF780F960B30020002122462B46FBF756 -:1047D80035FD0022454BFCF775F908B3424B4FF005 -:1047E80000011970FFF7E6FBDFF81C81404601F075 -:1047F80065F80520FDF73CFF404600210A4601F018 -:104808003DF840463A4901F043F84046002101226C -:1048180001F034F84046374901F03AF8FFF7A4FBB5 -:10482800354B1B88354AA2FB03125209642101FB50 -:1048380012339BB2002B40F0A080DFF8CC804046BA -:104848000421002201F01AF8022200924046324662 -:104858003B4601F067F840460A21002201F00EF8B5 -:1048680002230093404622462B4601F05BF840465F -:104878000421012201F002F8214B1868FBF73EFEE3 -:1048880002460B4601240094404601F04BF840468E -:104898000B21224600F0F2FF1A4B18680021FCF7A2 -:1048A8005FFC98B3174B1C6804F1004430E000BF6C -:1048B80000000000007087C0000000A09999C9BFDF -:1048C8000000B00400C062400000000000049540F1 -:1048D800000048423333F33F0070874000C062C095 -:1048E8008C00002094000020880000200000E03F99 -:1048F8004C5D00085C5D00086E0000201F85EB51D0 -:1049080020000020A00000206C030020424B1C68FF -:10491800424B18680021FCF723FC20B13F4B196873 -:1049280001F1004101E03D4B19682046FCF736FCD7 -:1049380068B1394B18680021FCF712FC20B1364BDE -:10494800186800F100400FE0334B18680CE0334B57 -:1049580018680021FCF704FC20B1304B186800F1FE -:10496800004001E02D4B1868FBF7C8FD02460B46D6 -:10497800022100912A4800F0D5FF2A4B1C682046E6 -:104988002949FCF7EDFB38B1284B1B681333262B5C -:1049980002D8FFF7E9FA21E020462549FCF7E0FBB9 -:1049A80058B120462049FCF7F9FB30B10522214BCC -:1049B8001A700622204B1A7010E01C4B1B6813F16A -:1049C800320F06DA05221B4B1A7001221A4B1A7095 -:1049D80004E00023174A1370174A13708BEAEB732D -:1049E800A3EBEB73322B05DC8AEAEA73A3EBEA73D9 -:1049F800322B03DD0022114B1A6003E00F4B1A68BB -:104A080001321A600D4B1A680D4B9A427FF646AC7C -:104A1800FFF7AAFA42E400BFA00000209C00002093 -:104A28006C03002020000020CCCC06422804002083 -:104A380000000C42900000207400002010040020A8 -:104A480000710200AFF300802DE9F8430222704B99 -:104A58005A60704B1B68B3F57A7F3BDA01336D4AB5 -:104A680013606D4B998889B26C4A1068014401EB58 -:104A7800D17149101160D98889B2694A1068014416 -:104A880001EBD17149101160198889B2654A106823 -:104A9800014401EBD17149101160598889B2624A09 -:104AA8001068014401EBD17149101160598989B22C -:104AB8005E4A1068014401EBD171491011601A89EE -:104AC80092B25B4B19680A4402EBD27252101A6018 -:104AD800BDE8F883574B1E68574BA3FB06139B0989 -:104AE8004FF47A7202FB136313BB544F3868FBF719 -:104AF80005FD41A3D3E90023FBF754FD04460D4609 -:104B0800454B988980B2FCF735F94D49FCF78AF98D -:104B1800FBF7F4FC3AA3D3E90023FBF743FD024675 -:104B28000B4620462946FBF78BFBFCF71DF838603F -:104B3800394B588980B23D4B1B68C01AFBF7CCFC37 -:104B480031A3D3E90023FBF72DFDFCF70DF804464C -:104B58003C4B18600021FCF703FB28B120463A497A -:104B6800FCF7FEFA60B904E020463849FCF716FB6A -:104B780030B9374B1B68052B02D8364B1B782BB93D -:104B8800354B5A6C22F400425A6404E0324B5A6C9A -:104B980042F400425A64204B188980B2244B1B68A7 -:104BA800C01AFBF799FC18A3D3E90023FBF7FAFC1A -:104BB800FBF7DAFF0446294B18600021FCF7D0FA0E -:104BC80028B120462049FCF7CBFA68B904E0204612 -:104BD8001E49FCF7E3FA38B91D4B1B68052B03D8AF -:104BE8001C4B1B78002B3DD11D4B5A6C22F4004204 -:104BF8005A643CE0AFF30080AE47E17A14AEEF3F71 -:104C08007B14AE47E17A843F7B14AE47E17A943F48 -:104C18000000024070000020D8020020140000208C -:104C2800100000201C000020180000202400002094 -:104C38002800002098000020D34D6210200000209A -:104C480017B9CE3C9C000020000070C100007041E4 -:104C5800040000208800002000340140A00000204B -:104C6800002C01408E4B5A6C42F400425A648D4B22 -:104C78009A6812F0200F14BF00220122996811F0DF -:104C8800400F14BF002101219B6813F0800F14BF4F -:104C980000200120844B9C6814F4806F14BF002509 -:104CA80001259C6814F4006F14BF002701279B6836 -:104CB80013F4805F01EB400302EB43037B4CE25C9F -:104CC8007B4B1A601A6802F102021A601868794967 -:104CD80081FB0082A2EBE07202EB42024FEA420241 -:104CE800C2EB00021A600CBF022200223A4405EB14 -:104CF8004202A05C704A10601068023010601068B0 -:104D080081FB0091A1EBE07101EB41014900411ADF -:104D180011601B68694A908880B269490968441A19 -:104D2800D18889B2674802688A1A052B18D8DFE843 -:104D380003F003070A0D1013A21A634B1A6012E05E -:104D4800614B1C600FE0604B1C600CE05E4B1A600E -:104D580009E05D4B1A6006E0121B5B4B1A6002E02B -:104D68000022594B1A600136584B1E60584B1B687D -:104D7800ABB15849A1FB0621090B574A1268013209 -:104D8800B1FBF2F002FB10124AB9B6FBF3F203FBD7 -:104D980012664EB951481021FDF79EFB04E04F48BA -:104DA80010210022FDF792FB4D4B1A68404B1B68FF -:104DB800052B1AD8DFE803F003070B0E111515466B -:104DC8005242002614E056421546002210E0564290 -:104DD80000250DE0554200260AE0554216460022FD -:104DE80006E016465242002502E000221546164605 -:104DF8003C4B1868304B1B68052B1ED8DFE803F0C6 -:104E080003080D111519074640424FF0000C17E032 -:104E1800C0F1000C0746002012E0C0F1000C00278A -:104E28000EE047424FF0000C0AE04742844600205B -:104E380006E084464042002702E0002007468446F8 -:104E4800274B1968002951DD274B1968184B1C6836 -:104E58000534184B83FB0493A3EBE47303EB430380 -:104E68005B00E31A052B70D8DFE803F003070B0E8D -:104E780011150B46494200246CE04C420B460021B8 -:104E880068E04C42002365E04B42002462E04B425C -:104E98000C4600215EE00C46494200235AE000BF60 -:104EA800002C0140000C0140001001406C5D00081E -:104EB8007C000020ABAAAA2A84000020D802002087 -:104EC8001400002010000020A400002098000020FA -:104ED800900000205917B7D1740000200008014045 -:104EE8008C0000209400002078000020784B19687E -:104EF8004B42784C246804F10108774C84FB0894F1 -:104F0800A4EBE87404EB44046400C4EB0804052C27 -:104F180004D8DFE804F01E070A0E131700210B4619 -:104F28000C4617E00C46002114E00C4619460023F5 -:104F380010E01C460B46214600240BE01C460B469D -:104F4800002107E01C46002304E000210B460C4624 -:104F580000E0002426441D4401EB02085F4B1B6857 -:104F6800002B2ADD5E4B1A685E4B1C6805345A4BD1 -:104F780083FB0493A3EBE47303EB43035B00E31AA3 -:104F8800052B47D8DFE803F003070B0E111513466E -:104F98005242002143E05142134600223FE0514271 -:104FA80000233CE05342002139E0534211460022DD -:104FB80035E011465242002331E0494B1A6853420A -:104FC80048490C680134444981FB0491A1EBE47120 -:104FD80001EB41014900611A052904D8DFE801F015 -:104FE8001E070A0E131700221346114617E0114632 -:104FF800002214E011461A46002310E01946134611 -:105008000A4600210BE019461346002207E019461C -:10501800002304E000221346114600E00021614409 -:105028003B44024406F57A7640F2C670864203DCB9 -:105038000A2EB8BF0A2601E040F2C6762A4846631F -:1050480005F57A7540F2C670854203DC0A2DB8BFB3 -:105058000A2501E040F2C6752348856308F57A748D -:1050680040F2C670844203DC0A2CB8BF0A2401E06F -:1050780040F2C6741C48C46301F57A7140F2C670E8 -:10508800814203DC0A29B8BF0A2101E040F2C67157 -:105098001648416303F57A7340F2C6718B4203DC0C -:1050A8000A2BB8BF0A2301E040F2C6730F498B638D -:1050B80002F57A7240F2C6739A4203DC0A2AB8BF34 -:1050C8000A2201E040F2C672084BDA63BDE8F883B1 -:1050D800780000207C000020ABAAAA2A94000020B7 -:1050E800800000208400002000340140002C014092 -:1050F800074A4FF6FF7104E003889BB28B4204D144 -:1051080004309042F8D9012070470020704700BF52 -:10511800FF870008134B1B8899B2134B1B889BB25F -:1051280078B1012811D12BB94EF6EE6399420ED110 -:105138000020704769B94EF6EE6293420BD14020C9 -:10514800704751B15BB9402070470020704740203C -:105158007047AB2070470020704700207047AB2095 -:10516800704700BF0080000800800108F8B50746B6 -:105178000E460120FFF7CEFFAB281FD000F5803484 -:105188001034E402C3020E4D1D4413E02368B3F14A -:10519800FF3F0ED101202146B2B20023FCF7E2F80E -:1051A80000B1F8BD0120A11CBAB20023FCF7DAF85F -:1051B800F8BD0434AC42E9D38020F8BDAB20F8BD7B -:1051C800FF87000800B587B00023059301931248B4 -:1051D800039001230493FFF78BFF20B901A805A9C9 -:1051E800FDF70EF888B901200B4900220023FCF7CF -:1051F800B9F858B909480390FFF77AFF38B901A8F8 -:1052080005A9FCF7FDFF20B903E002E001E000205A -:10521800FFE707B05DF804FB008000080080010884 -:1052280070B505460E460020FFF774FFAB2813D073 -:10523800C2020A4B13440A4C144409E01A8892B279 -:10524800AA4204D133F8023C3380002070BD043BED -:105258009C42F3D3012070BDAB2070BDFE870008CF -:10526800028000082DE9F04387B000210591954A96 -:1052780013889BB29448008880B20191039201225E -:1052880004924EF6EE6293423AD04FF6FF72934282 -:1052980003D0002B40F0F7809CE078B98948FFF7ED -:1052A80027FF0446002840F0F38001A805A9FCF771 -:1052B800A7FF002800F001810446FEE04EF6EE63E9 -:1052C800984216D17F48FFF713FF38B901A805A9FE -:1052D800FCF796FF0446002840F0EF8001207A4949 -:1052E80000220023FCF73EF80446002800F0D28094 -:1052F800E3E0FFF767FF0446002800F0CD80DCE01C -:10530800F0B146E0B8F800309BB22C4637F81500EB -:10531800834200D1AEB233B29C420ED04946FFF769 -:105328007FFF012809D037F81400B9F80010FFF7FB -:105338001DFF0446002840F0C0800135ADB207E0EB -:105348004FF6FF760025DFF88881604FDFF88491FB -:10535800022DD7D901205B4900220023FCF702F86F -:105368000446002840F0A980002301935648039082 -:1053780001230493FFF7BCFE0446002840F08E800A -:1053880001A805A9FCF73CFF002800F09680044618 -:1053980093E04FF6FF73984216D14B480390FFF7FE -:1053A800A7FE38B901A805A9FCF72AFF044600287A -:1053B80040F083800120434900220023FBF7D2FFFD -:1053C800044600286CD078E0FFF7FCFE044600286D -:1053D80068D072E028B9FFF7F5FE0446002863D0CC -:1053E8006BE04FF6FF7398422AD137480390FFF7D6 -:1053F8007FFE0446002859D101A805A9FCF700FF43 -:1054080000285AD0044658E0B8F800309BB2254628 -:1054180037F81400834200D1A6B233B29D420CD0B3 -:105428004946FFF7FDFE012807D037F81500B9F8FF -:105438000010FFF79BFE00283AD10134A4B207E020 -:105448004FF6FF760024DFF89080204FDFF8849035 -:10545800022CD9D901201C4900220023FBF782FF26 -:10546800044650BB0023019316480390012304937C -:10547800FFF73EFE0446E8B901A805A9FCF7C0FEFF -:10548800D8B1044619E0FFF79DFE0446A0B114E028 -:10549800002412E0002410E000240EE000240CE0B8 -:1054A80000240AE0002408E0002406E0002404E0C8 -:1054B800044602E0002400E00024204607B0BDE8CE -:1054C800F08300BF00800008008001080800002069 -:1054D80006800008A8000020068001082DE9F04792 -:1054E80086B005460C4600200590FFF713FE4028BD -:1054F80004D0002840D1234F234E01E0224F214EF3 -:10550800012031464EF6EE620023FBF72BFF00B177 -:1055180035E028462146FFF729FE78BB0024DFF84E -:105528006C80DFF86C9011E038F81400A8420BD0BA -:105538004946FFF775FE012806D038F81400B9F877 -:105548000010FFF713FED0B90134A4B2022CEBD936 -:105558000023019303970123049301A805A9FCF7ED -:105568004FFE00B10BE00120314600220023FBF77B -:10557800F9FE00B103E002E0AB2000E0FFE706B06F -:10558800BDE8F087008000080080010808000020BE -:10559800A800002038B505460C46FFF7E7FD80282F -:1055A80003D128462146FFF799FF38BD08B50246C2 -:1055B800084B1B784BB9403092F8341000F0E0FAF1 -:1055C80028B10120034B187008BD012008BD002038 -:1055D80008BD00BFAA00002008B559B1836B53F875 -:1055E8002230012202FA03F390F83420134380F8A2 -:1055F80034300BE0836B53F82230012202FA03F3B4 -:1056080090F8342022EA030380F83430FFF7CEFF05 -:1056180008BD00BF08B501F001010722FFF7DCFF54 -:1056280008BD00BF08B511F0010F0AD0836B1B68D5 -:10563800012202FA03F390F83420134380F834303F -:105648000AE0836B1B68012202FA03F390F8342006 -:1056580022EA030380F8343011F0020F0AD0836B7A -:105668005B68012202FA03F390F83420134380F8B0 -:1056780034300AE0836B5B68012202FA03F390F886 -:10568800342022EA030380F8343011F0040F0AD0E2 -:10569800836B9B68012202FA03F390F834201343CA -:1056A80080F834300AE0836B9B68012202FA03F326 -:1056B80090F8342022EA030380F8343011F0080F00 -:1056C8000AD0836BDB68012202FA03F390F83420D6 -:1056D800134380F834300AE0836BDB68012202FA56 -:1056E80003F390F8342022EA030380F83430FFF7FC -:1056F8005DFF08BDF0B583B004460D4600210622C3 -:10570800FFF76AFF204600210422FFF765FF2046C5 -:1057180001210522FFF760FF204601210622FFF73D -:105728005BFF04F140063046294600F041FAA36BBE -:10573800DB68012707FA03F32A7813402B70A26B62 -:10574800D26813412B70204600210622FFF744FF40 -:10575800204639460622FFF73FFF30460DF1070184 -:1057680000F026FA204600210622FFF735FF2046E2 -:1057780000210522FFF730FF002003B0F0BD00BF75 -:1057880030B583B004460DF10701FFF7B3FFFCF70E -:1057980069FF054604E020460DF10701FFF7AAFF5F -:1057A8009DF80730012B05D1FCF75CFF401B636CAB -:1057B8009842F0D303B030BD38B504460D46174BB8 -:1057C8001B784BBB00210622FFF706FF204600216D -:1057D8000422FFF701FF20462909FFF723FF20468F -:1057E80001210622FFF7F8FE204600210622FFF7D6 -:1057F800F3FE20462946FFF715FF20460121062221 -:10580800FFF7EAFE204600210622FFF7E5FE2046C4 -:10581800FFF7B6FF002038BD012038BDAA000020E0 -:1058280038B504460D4600210622FFF7D5FE20466E -:1058380001210422FFF7D0FE20462909FFF7F2FED6 -:10584800204601210622FFF7C7FE20460021062236 -:10585800FFF7C2FE20462946FFF7E4FE2046012155 -:105868000622FFF7B9FE204600210622FFF7B4FE04 -:105878002046FFF785FF002038BD00BF08B501EBC3 -:10588800821161F07F01C9B2FFF796FF08BD00BF22 -:1058980070B506460D4649B90EE03046FFF770FF71 -:1058A8003046295DFFF7BCFF013400E000244F2C8F -:1058B80002DC2B5D002BF0D1002070BD08B5012162 -:1058C800FFF77AFF08BD00BF08B501224270827851 -:1058D800520042F00C02D2B2C1781143FFF76CFFBC -:1058E80008BD00BF10B58AB000238DF82430012A06 -:1058F80000D80A2209ACB1FBF2F303FB1211C9B2BA -:10590800013C092902D83031C9B201E03731C9B2A6 -:1059180021701946002BEED12146FFF7B9FF0AB0D6 -:1059280010BD00BF2DE9F84F814616461F469DF869 -:1059380028B01046194600220023FBF7A5F830B11D -:1059480048463349FFF7A4FF07F100431F464FF0CD -:10595800000800222F4B00242F4D0BE0104619465B -:1059680022462B46FAF748FF02460B4608F1010883 -:105978005FFA88F8D845F1D330463946FAF760FC23 -:1059880004460D46FBF7D0F80646FAF795FD0246A1 -:105998000B4620462946FAF751FC04460D46484670 -:1059A80031460A22FFF79EFFBBF1000F21D048467F -:1059B8001A49FFF76DFF1CE02046294632463B4650 -:1059C800FAF7F0FD04460D46FBF786F8834648468D -:1059D80059465246FFF786FF5846FAF77DFD0246BC -:1059E8000B4620462946FAF729FC04460D46C346CD -:1059F80003E00026084F4FF00A0A0BF1FF385FFA60 -:105A080088F8BBF1000FD7D10020BDE8F88F00BFA0 -:105A1800745D00080000E03F00002440785D000845 -:105A280008B5490041F00401C9B21143FFF7C4FEAB -:105A380008BD00BF10B50446012343700023C3709E -:105A4800837090F83C30002B40F08D80484B836386 -:105A5800403000F08FF8002840F087803220FCF7B3 -:105A680007FE204600210422FFF7B6FD204600214C -:105A78000522FFF7B1FD204600210622FFF7ACFD05 -:105A880020460321FFF7CEFD204601210622FFF71D -:105A9800A3FD0120FCF7ECFD204600210622FFF7BC -:105AA8009BFD0520FCF7E4FD20460321FFF7BAFD26 -:105AB800204601210622FFF78FFD0120FCF7D8FDC3 -:105AC800204600210622FFF787FD0120FCF7D0FDC4 -:105AD80020460321FFF7A6FD204601210622FFF7F5 -:105AE8007BFD0120FCF7C4FD204600210622FFF7BC -:105AF80073FD0120FCF7BCFD20460221FFF792FD53 -:105B0800204601210622FFF767FD0120FCF7B0FDC2 -:105B1800204600210622FFF75FFD0120FCF7A8FDC3 -:105B28002178C900C9B2204641F02001FFF744FEA0 -:105B3800A3785B0043F00803DBB2E1782046194301 -:105B4800FFF73AFE2046FFF7B9FE20460121002262 -:105B5800FFF766FF2046FFF7B7FE20460121FFF753 -:105B680059FD002010BD012010BD012010BD00BF4F -:105B78002C000020037803F007030370002070470F -:105B880000B585B004AA02F8011D034613F8081BE6 -:105B9800490040680090184641F040010123FDF794 -:105BA8003DFB08B1012000E0002005B05DF804FBD2 -:105BB80000B583B00A46034613F8081B490040683D -:105BC8000090184641F040010123FDF7E7FB08B1BA -:105BD800012000E0002003B05DF804FB704700BF1F -:105BE800FEE700BFFEE700BFFEE700BFFEE700BF1D -:105BF800704700BF704700BF704700BF08B5FCF78B -:105C080029FDFCF7D5FA08BD002100F004B80D4BBA -:105C18005B58435004310C480C4B42189A42FFF42D -:105C2800F6AF0B4A00F003B8002342F8043B094BD7 -:105C38009A42FFF4F9AFFDF787FD00F00FF8FEF781 -:105C48001FFA7047845D0008000000204C00002007 -:105C58005000002034040020FFF7FEBF70B50E4B43 -:105C68000E4D0024ED1AAD101E46AC4204D056F875 -:105C7800242090470134F8E700F020F8084D094B3C -:105C88000024ED1AAD101E46AC4204D056F824206C -:105C980090470134F8E770BD7C5D00087C5D000822 -:105CA800805D00087C5D000810B50023934203D096 -:105CB800CC5CC4540133F9E710BD0000F8B500BF4F -:105CC800F8BC08BC9E467047F8B500BFF8BC08BCD5 -:045CD8009E4670472D -:105CDC0002030405060708090A0B0C0D0E0F101021 -:105CEC00010200000000000000000000010203049B -:105CFC000607080900000000010203045472616EDB -:105D0C0073704F747465722056322E31000000008F -:105D1C00496E697469616C697A696E672E2E2E0002 -:105D2C004261743A0000000056000000410000007F -:105D3C004C656E3A000000006D2800006D290000D3 -:105D4C00456D657267656E6379204F66662100004C -:105D5C004B656570657220746F20666173742E00DC -:105D6C0000000201040503002D0000002E000000BD -:045D7C000D0200080C -:045D8000E90100082D -:105D840000A24A0464000000371300000000000071 -:105D9400D0070000D0070000D0070000D0070000A3 -:105DA40000002042D0070000D007000004000000DB -:105DB40005000000060000000700000000000000CD -:0C5DC400010000000200000003000000CD -:0400000508005C1182 +:101A8800D35CD84008BD00BF001002409C5D000830 +:101A980030B4036A23F001030362026A436885696C +:101AA80025F073050C68254322F002028C68224356 +:101AB800104CA04203D004F50064A04205D122F0E6 +:101AC8000802CC68224322F004020A4CA04203D048 +:101AD80004F50064A04205D123F440734C69234304 +:101AE8008C692343436085614B684363026230BC61 +:101AF800704700BF002C014030B4036A23F48073A0 +:101B08000362026A4368C56925F073050C682543BA +:101B180022F400728C6842EA0422124CA04203D0DC +:101B280004F50064A04206D122F40062CC6842EABF +:101B3800042222F480620B4CA04203D004F5006416 +:101B4800A04207D123F440534C6943EA04138C693B +:101B580043EA04134360C5614B68C363026230BC47 +:101B6800704700BF002C014030B4036A23F480534F +:101B78000362056A4368C26922F4E6420C6842EAD5 +:101B8800042425F400558A6845EA0232094DA84222 +:101B980003D005F50065A84204D123F480434D69BC +:101BA80043EA85134360C4614B680364026230BC36 +:101BB800704700BF002C014010B4036A046A24F087 +:101BC80001040462846924F0F00444EA021223F058 +:101BD8000A031943826101625DF8044B704700BF34 +:101BE80010B4036A23F0100303628469036A24F4BF +:101BF800704444EA023223F0A00343EA01118261EF +:101C080001625DF8044B704710B4846824F47F4483 +:101C180042EA032319430C4384605DF8044B704780 +:101C280010B50B460268946824F070044968214393 +:101C380021F007041968214391605A68502A1FD07F +:101C480002D8402A0BD010BD602A1FD0702A22D19A +:101C58000068D9689A681B69FFF7D6FF10BD02684B +:101C6800116A146A24F0010414620268946924F069 +:101C7800F0041B6944EA031393610368196210BDF9 +:101C8800006899681A69FFF797FF10BD006899689E +:101C98001A69FFF7A5FF10BD704700BF38B50446A5 +:101CA80090F83C30012B17D0012580F83C500223D6 +:101CB80080F83D30FFF7B4FF2368DA6822F040026D +:101CC800DA602368DA6822F48042DA6084F83D50EA +:101CD800002084F83C0038BD022038BD0368244A3F +:101CE800904212D002F5006290420ED0B0F1804FBF +:101CF8000BD0A2F59832904207D002F5806290424C +:101D080003D002F58062904203D123F070034A6841 +:101D18001343174A904212D002F5006290420ED047 +:101D2800B0F1804F0BD0A2F59832904207D002F55F +:101D38008062904203D002F58062904203D123F47E +:101D48004073CA68134323F080034A691A43026048 +:101D58008B68C3620B688362054B984203D003F516 +:101D68000063984201D10B69036301234361704703 +:101D7800002C014010B50446B0B190F83D3013F086 +:101D8800FF0F04D1002380F83C30FFF785FF0223C2 +:101D980084F83D30214651F8040BFFF79FFF0123DB +:101DA80084F83D30002010BD012010BD30B4036A16 +:101DB80023F010030362026A4368856925F4E64547 +:101DC8000C6845EA042522F020028C6842EA0412D5 +:101DD800114CA04203D004F50064A04206D122F0C1 +:101DE8008002CC6842EA041222F040020A4CA04267 +:101DF80003D004F50064A04207D123F440634C6982 +:101E080043EA84038C6943EA8403436085614B6831 +:101E18008363026230BC7047002C014038B5044629 +:101E28000D4690F83C30012B64D0012380F83C30FB +:101E3800022380F83D300C2A55D8DFE802F0075419 +:101E480054541A5454542E54545441000068FFF703 +:101E58001FFE23689A6942F008029A6123689A690A +:101E680022F004029A61236899692A690A439A61EF +:101E780039E00068FFF79AFF23689A6942F4006224 +:101E88009A6123689A6922F480629A6123689A6940 +:101E9800296942EA01229A6125E00068FFF72CFED1 +:101EA8002368DA6942F00802DA612368DA6922F005 +:101EB8000402DA612368D9692A690A43DA6112E0FF +:101EC8000068FFF751FE2368DA6942F40062DA61BC +:101ED8002368DA6922F48062DA612368DA69296999 +:101EE80042EA0122DA61012384F83D30002084F8B7 +:101EF8003C0038BD022038BD10B401238B40046A71 +:101F080024EA03030362036A8A40134303625DF809 +:101F1800044B704710B5044600680122FFF7ECFF38 +:101F280023680C4A934205D002F50062934203D11C +:101F3800012202E0012200E000221AB15A6C42F4A8 +:101F480000425A6423681A6842F001021A600020AD +:101F580010BD00BF002C014010B404238B40046A5C +:101F680024EA03030362036A8A40134303625DF8A9 +:101F7800044B704710B5044600680422FFF7ECFFD5 +:101F880023685A6C42F400425A6423681A6842F083 +:101F980001021A60002010BD90F83C30012B22D0BD +:101FA800012380F83C30CB6823F440728B681343DC +:101FB80023F480624B681A4322F400620B681A43C8 +:101FC80022F480520B691A4322F400524B691A43D7 +:101FD800896922F440420A4303685A64002380F85E +:101FE8003C30184670470220704700BF30B490F864 +:101FF8003C30012B20D0012380F83C30022280F8AD +:102008003D200268546824F07004546002685568E2 +:102018000C682C4354600268946824F0800494602F +:102028000268946849682143916080F83D30002334 +:1020380080F83C30184600E0022030BC704700BFF2 +:1020480010B490F82430012B21D0012380F82430DB +:1020580003689A6812F0010F0FD10F4A926812F0C4 +:10206800010F0AD10D4A934207D15C6824F4702409 +:102078000A6822435A60002304E0836A43F020037D +:1020880083620123002280F82420184600E0022001 +:102098005DF8044B704700BF002801400024014050 +:1020A80000F00700064AD36823F4E0631B041B0C06 +:1020B80043EA002343F0BF6343F40033D36070471F +:1020C80000ED00E030B4164BDB68C3F30223C3F124 +:1020D8000705042D28BF04251C1D062C01D9033B28 +:1020E80000E00023012404FA05F5013D2940994048 +:1020F80004FA03F3013B1A400A43002806DA00F009 +:102108000F001201D2B2074B1A5407E01201D2B2E3 +:1021180000F1604000F5614080F8002330BC704752 +:1021280000ED00E014ED00E0420900F01F0001237B +:1021380003FA00F0014B43F82200704700E100E089 +:102148000138B0F1807F0AD2064B5860F021064A68 +:1021580082F823100020986007221A607047012037 +:10216800704700BF10E000E000ED00E0042805D152 +:10217800054B1A6842F004021A607047024B1A684D +:1021880022F004021A60704710E000E0704700BFB8 +:1021980008B5FFF7FBFF08BD0022064BDA61064BC6 +:1021A8001A6942F004021A611A6942F040021A617F +:1021B800704700BFB8000020002002400022064BF4 +:1021C800DA61064B1A6942F002021A6158611A690B +:1021D80042F040021A617047B80000200020024017 +:1021E8002DE9F04105468846284B1B7E012B49D036 +:1021F8000122264B1A760368022B13D14CF2503079 +:10220800FFF778F8002834D10120FFF7C5FF4CF21A +:102218005030FFF76FF801461D4B1A6922F004028F +:102228001A6129E04CF25030FFF764F818BB4FF000 +:10223800FF33C8F80030AC6801214CF25037144E17 +:1022480010E02046FFF7BAFF3846FFF753F8336926 +:1022580023F002033361014610B1C8F800400BE0D7 +:1022680004F50064EA68AB6803EBC223A342E8D82C +:1022780002E0012100E001210022044B1A76084601 +:10228800BDE8F0810220BDE8F08100BFB800002061 +:10229800002002402DE9F00F82B000252B46784F30 +:1022A800DFF8E4C1DFF8E481764C8146E1E00126FD +:1022B8009E400A683240B24240F0DA8048681228EC +:1022C8002FD00BD8022829D003D868B3012820D0F2 +:1022D80039E0032834D011281DD034E0DFF8B0A14C +:1022E800504521D008D8AAF5801A50451CD00AF5C7 +:1022F800803A504527D117E0DFF898A1504513D010 +:102308000AF5803A50450FD0AAF5801A50451AD1DF +:102318000AE0CD6817E0CD68043514E0CD680835CB +:1023280011E0CD680C350EE0886858B1012803D15A +:10233800C9F81060082506E0C9F81460082502E00D +:10234800002500E00425FF2A01D8484601E009F1EC +:102358000400FF2A01D89E0002E0A3F10806B60097 +:10236800D0F800B04FF00F0A0AFA06FA2BEA0A0A68 +:1023780005FA06F64AEA06060660486810F0805F25 +:1023880076D0B86940F00100B861B86900F0010082 +:10239800019001989808861C5CF826B003F00306A3 +:1023A800B6004FF00F0A0AFA06FA2BEA0A0AC145E4 +:1023B80025D0DFF8E4B0D9451ED00BF5806BD945A0 +:1023C80017D00BF5806BD94510D00BF5806BD9452C +:1023D80009D00BF5806BD94502D14FF0050B10E001 +:1023E8004FF0060B0DE04FF0040B0AE04FF0030B23 +:1023F80007E04FF0020B04E04FF0010B01E04FF053 +:10240800000B0BFA06F646EA0A0602304CF8206082 +:10241800486810F4803F03D020681043206003E030 +:10242800206820EA02002060486810F4003F03D0CA +:1024380060681043606003E0606820EA0200606042 +:10244800486810F4801F03D0A0681043A06003E020 +:10245800A06820EA0200A060486810F4001F03D0BA +:10246800E0680243E26003E0E06820EA0202E2601A +:1024780001330F2B7FF61BAF02B0BDE8F00F70479A +:102488000010024000040140000001400008014023 +:102498000000211000003110000C014083680B423D +:1024A80001D0012070470020704700BF0AB10161C8 +:1024B8007047090401617047C3685940C16070479B +:1024C8002DE9F04182B00446036813F0010F60D093 +:1024D800404BDB6913F0805F0BD13E4BDA6942F069 +:1024E8008052DA61DB6903F080530193019B012775 +:1024F80000E00027384B1B6813F4807F12D1364B5D +:102508001A6842F480721A6000F09CF80646324D50 +:1025180004E000F097F8801B642852D82B6813F465 +:10252800807FF6D02B4B1B6A13F4407325D062686A +:1025380002F440729A4220D0264A136A23F440706B +:10254800264901250D6000250D60106213F0010F6A +:1025580013D000F077F8804605F1804505F504357D +:1025680041F2883605E000F06DF8C8EB0000B04293 +:1025780029D82B6A13F0020FF5D0164B196A21F4EB +:10258800407162680A431A621FB1DA6922F0805208 +:10259800DA61236813F0020F06D00E4B596821F454 +:1025A8004041A2680A435A60236813F0100F0CD008 +:1025B800084B5A6822F4800261690A435A60002075 +:1025C80004E0032002E0032000E0002002B0BDE8A0 +:1025D800F08100BF001002400070004040044242F9 +:1025E800704700BF10B50446074B1868074BA3FB9C +:1025F80000208009FFF7A4FD4FF0FF30214600229C +:10260800FFF760FD002010BD00000020D34D6210D0 +:1026180008B5074B1A6842F010021A600320FFF74A +:102628003FFD0020FFF7DEFFFFF7DAFF002008BDBF +:1026380000200240024B1A6801321A60704700BF3E +:10264800D8000020014B1868704700BFD800002050 +:1026580030B583B00190FFF7F5FF0546019CB4F152 +:10266800FF3F00D00134FFF7EDFF401BA042FAD333 +:1026780003B030BD704700BF30B482B0002301936F +:1026880090F82430012B00F08980012380F8243051 +:102698004B68062B0ED80268546B03EB8303053B8B +:1026A8001F259D4024EA05050C6804FA03F32B4313 +:1026B80053631EE00C2B0ED80268146B03EB8303E4 +:1026C800233B1F259D4024EA05050C6804FA03F303 +:1026D8002B4313630DE00268D46A03EB8303413B89 +:1026E8001F259D4024EA05050C6804FA03F32B43D3 +:1026F800D3620B68092B0ED90268D46803EB430335 +:102708001E3B07259D4024EA05058C6804FA03F35F +:102718002B43D3600CE00268146903EB43030725DD +:102728009D4024EA05058C6804FA03F32B431361E2 +:102738000B68103B012B27D803681A4A93421DD116 +:102748009A6812F4000F21D19A6842F400029A6044 +:102758000B68102B1CD1144B1A68144BA3FB0213E3 +:102768009B0C03EB83035B00019302E0019B013B9D +:102778000193019B002BF9D100220AE0836A43F000 +:1027880020038362012204E0002202E0002200E02C +:102798000022002380F82430104600E0022002B016 +:1027A80030BC7047002401400000002083DE1B433A +:1027B80030B583B004460023019303689A6812F089 +:1027C800010F2ED19A6842F001029A60164B1A68DE +:1027D800164BA3FB02139B0C019302E0019B013BE8 +:1027E8000193019B002BF9D1FFF72CFF054611E05F +:1027F800FFF728FF401B02280CD9A36A43F01003F7 +:10280800A362E36A43F00103E362002384F82430FF +:10281800012007E023689B6813F0010FE8D000202F +:1028280000E0002003B030BD0000002083DE1B4321 +:1028380010B5044690F82430012B6ED0012380F89F +:102848002430FFF7B5FF0246002861D1A36A23F4BC +:10285800407323F0010343F48073A3622368304973 +:102868008B4205D1A1F58061496811F4702F0ED112 +:10287800A16A21F48011A162596811F4806F1CD0FB +:10288800A16A21F4405141F48051A16215E0A16A86 +:1028980041F48011A16223498B4203D001F5806184 +:1028A8008B420AD11F49496811F4806F05D0A16A8B +:1028B80021F4405141F48051A162A16A11F4805F72 +:1028C80004D0E16A21F00601E16201E00021E16241 +:1028D800002184F824106FF00201196023689968B8 +:1028E80001F46021B1F5602F0DD10D498B4205D15E +:1028F800A1F58061496811F4702F04D1996841F4F9 +:10290800A001996007E0996841F48011996002E09C +:10291800002384F82430104610BD022010BD00BFEB +:10292800002801400024014038B5044603689A682D +:1029380012F0010F1DD09A6822F001029A60FFF789 +:1029480081FE05460EE0FFF77DFE401B022809D9EF +:10295800A36A43F01003A362E36A43F00103E3624E +:10296800012038BD23689B6813F0010FEBD10020CC +:1029780038BD002038BD00BF70B50446002800F0FF +:102988008680836A23B9C36280F82430FFF772FE19 +:102998002046FFF7C9FFA36A13F0100F71D1002872 +:1029A8006FD1A36A23F4885323F0020343F0020390 +:1029B800A36261682368374A934206D1E269B2F597 +:1029C800402F03D14FF4002200E0E2690A43E56892 +:1029D80042EA4502A168B1F5807F04D0012905D1FA +:1029E8004FF4807103E04FF4807100E000216669C4 +:1029F800012E0FD135B9A569013D41EA453141F4B0 +:102A0800006107E0A56A45F02005A562E56A45F082 +:102A18000105E5625D6825F4694529435960216827 +:102A28008D681D4B2B4013438B60A368B3F5807FE3 +:102A380001D0012B03D12569013D2D0500E00025BA +:102A48002368D96A21F470012943D96223689968F7 +:102A5800124B0B409A4208D10023E362A36A23F089 +:102A6800030343F00103A36270BDA36A23F01203BA +:102A780043F01003A362E36A43F00103E362012019 +:102A880070BDA36A43F01003A362012070BD01204A +:102A980070BD00BF003C0140FDF7E1FFFE0E1FFFC7 +:102AA80003685A6912F4806F0DD06FF480625A611E +:102AB8000423036400230363202280F83D2080F868 +:102AC8003C30012070470020704700BF2DE9F843D3 +:102AD80007460D4691461E46C1F3074815E0B6F174 +:102AE800FF3F12D02EB1FFF7ADFD089BC01AB042D0 +:102AF8000BD900233B63202287F83D2087F83E301E +:102B080087F83C300320BDE8F883B8F1010F09D1FC +:102B18003B685C6925EA0404A4B2D4F1010438BF17 +:102B2800002408E03C68A46925EA0404A4B2D4F1AE +:102B3800010438BF00244C45D1D00020BDE8F883FB +:102B48002DE9F84304460E4690469946C1F30747D7 +:102B58002EE02068456915F4806F13D0036843F4AC +:102B68000073036023686FF480625A61042323644E +:102B780000232363202284F83D2084F83C30012080 +:102B8800BDE8F883B8F1FF3F12D0B8F1000F05D0C7 +:102B9800FFF758FDC9EB0000404509D9002323631E +:102BA800202284F83D2084F83C300320BDE8F883D7 +:102BB800012F08D12368586926EA000080B2003046 +:102BC80018BF012007E02368986926EA000080B250 +:102BD800003018BF01200028BBD1BDE8F88300BF32 +:102BE800F0B583B004460F4616461D46C06A042851 +:102BF80004D0012802D010F5803F05D123681A6857 +:102C080042F480721A6007E0236B122B04D1236808 +:102C18001A6842F480721A60009520464FF001113C +:102C280000223346FFF752FF58BB2369B3F5804FA4 +:102C380004D1236807F0FE071F6115E0236807F435 +:102C48004072D21142F0F0021A6120461149324610 +:102C58002B46FFF775FF20B1236C042B13D10123FA +:102C680014E02368FFB21F6120460B4932462B4609 +:102C7800FFF766FF034648B1236C042B05D10123F7 +:102C880004E0032302E0032300E00323184603B013 +:102C9800F0BD00BF08000100020001002DE9F0416D +:102CA80084B00446884617461E46C06A25682B68C5 +:102CB80043F480632B60042804D0012802D010F567 +:102CC800803F05D123681A6842F480721A6007E0D1 +:102CD800236B112B04D123681A6842F480721A609E +:102CE800009620464FF0011100223B46FFF7EEFE0A +:102CF800002852D12369B3F5804F06D1236848F0E4 +:102D080001085FFA88F21A613AE0236808F440750E +:102D1800ED0945F0F0021A61204626493A46334645 +:102D2800FFF70EFF20B1236C042B38D101233DE0BF +:102D380023685FFA88F21A6120461F493A463346EB +:102D4800FFF7FEFE20B1236C042B2AD101232DE0CE +:102D580000220392236859690391996903910399A1 +:102D6800196841F480711960009620464FF00111EE +:102D78003B46FFF7ABFEB0B9236845F0F1051D618E +:102D880020460D493A463346FFF7DAFE034668B156 +:102D9800236C042B09D1012308E0032306E0032355 +:102DA80004E0032302E0032300E00323184604B0F1 +:102DB800BDE8F081080001000200010070B504467A +:102DC8000D46164619E02046FFF76AFEE0B9B5F150 +:102DD800FF3F12D025B1FFF735FC801BA8420CD964 +:102DE800236C43F02003236400232363202284F808 +:102DF8003D2084F83C30032070BD23685B6913F0E4 +:102E0800800FE0D0002070BD012070BD70B5044671 +:102E18000D46164619E02046FFF742FEE0B9B5F127 +:102E2800FF3F12D025B1FFF70DFC801BA8420CD93B +:102E3800236C43F02003236400232363202284F8B7 +:102E48003D2084F83C30032070BD23685B6913F093 +:102E5800040FE0D0002070BD012070BDF8B5064613 +:102E68000D46174622E0596911F0100F0CD06FF08B +:102E780010025A61002333643363202286F83D2010 +:102E880086F83C300120F8BD25B1FFF7DBFBC01BFD +:102E9800A8420BD9336C43F020033364202386F80F +:102EA8003D30002386F83C300320F8BD33685C6968 +:102EB80014F0400FD7D00020F8BD00BF704700BF06 +:102EC80038B50446002800F0838090F83D3013F0B0 +:102ED800FF0F04D1002380F83C30FFF7EFFF2423D5 +:102EE80084F83D3023681A6822F001021A60FEF760 +:102EF800BFFD384BA3FB00239B0C2268536021685D +:102F08006268354DAA4201D8013308E04FF4967241 +:102F180002FB03F3314AA2FB03539B0901330B6203 +:102F2800226863682C498B4208D85B00B0FBF3F039 +:102F3800C0F30B03032B2DD804202BE0A16851B953 +:102F480003EB4305B0FBF5F5C5F30B05D5F101051A +:102F580038BF00250BE003EB830505EB8505B0FBC7 +:102F6800F5F5C5F30B05D5F1010538BF002585B981 +:102F780031B903EB4303B0FBF3F040F4004009E040 +:102F880003EB830303EB8303B0FBF3F040F440400F +:102F980000E00120D0612368E169226A0A431A60CF +:102FA80023682169E2680A439A6023686169A26913 +:102FB8000A43DA6023681A6842F001021A600020A6 +:102FC8002064202384F83D30206384F83E0038BD17 +:102FD800012038BD83DE1B43A0860100D34D62105B +:102FE8002DE9F04385B004460F4691469846FFF711 +:102FF80029FB064694F83D50EDB2202D40F0A08004 +:1030080000902046554901221923FFF75FFD00284B +:1030180040F0988094F83C30012B00F09580012313 +:1030280084F83C3023681A6812F0010F03D11A683B +:1030380042F001021A6023681A6822F400621A60DA +:10304800212384F83D30102384F83E300023236484 +:10305800C4F82490A4F82A80A3F58033E362638D32 +:103068002385204639460C9A3346FFF7B9FD0546B5 +:1030780060B1236C042B04D1002384F83C30012573 +:1030880067E0002384F83C30032562E000230393C3 +:1030980023685A6903929B690393039B3FE0204688 +:1030A8000C993246FFF78AFE48B1236C042B4DD1A8 +:1030B80023681A6842F400721A60012549E0226800 +:1030C800636A591C61621B781361638D013B9BB273 +:1030D8006385238D013B9BB223852268516911F0DA +:1030E800040F0CD05BB1636A591C61621B781361D1 +:1030F800638D013B9BB26385238D013B238520466D +:103108000C993246FFF782FE48B1236C042B1FD17D +:1031180023681A6842F400721A60012519E0238DA9 +:10312800002BBCD123681A6842F400721A6020236D +:1031380084F83D30002384F83E3084F83C3008E0C1 +:10314800022506E0022504E0022502E0032500E04E +:103158000325284605B0BDE8F08300BF0200100033 +:103168002DE9F04387B004460F4691469846FFF78D +:1031780069FA064694F83D50EDB2202D40F05F8183 +:1031880000902046954901221923FFF79FFC00284B +:1031980040F0578194F83C30012B00F05481012312 +:1031A80084F83C3023681A6812F0010F03D11A68BA +:1031B80042F001021A6023681A6822F400621A6059 +:1031C800222384F83D30102384F83E300023236402 +:1031D800C4F82490A4F82A80A3F58033E362638DB1 +:1031E8002385204639460E9A3346FFF757FD054694 +:1031F80060B1236C042B04D1002384F83C300125F2 +:103208002CE1002384F83C30032527E1238D5BB9AA +:10321800029323685A6902929A690292029A1A687A +:1032280042F400721A60FAE0012B13D123681A687D +:1032380022F480621A6072B60023039323685A69E5 +:1032480003929A690392039A1A6842F400721A6008 +:1032580062B6E4E0022B13D123681A6842F40062D4 +:103268001A6072B60023049323685A6904929A6913 +:103278000492049A1A6822F480621A6062B6CEE058 +:1032880023681A6842F480621A6000230593236851 +:103298005A6905929B690593059BC0E0032B00F2D0 +:1032A8009180012B19D120460E993246FFF7D6FDA1 +:1032B80028B1236C202B40F0C8800325CEE0636A38 +:1032C8005A1C6262226812691A70238D013B238599 +:1032D800638D013B9BB26385A4E0022B2BD1009642 +:1032E800204641463A460E9BFFF7F0FB002840F087 +:1032F800AE8072B623681A6842F400721A60636A74 +:103308005A1C6262226812691A70238D013B238558 +:10331800638D013B9BB2638562B6636A5A1C626225 +:10332800226812691A70238D013B2385638D013B46 +:103338009BB2638576E00096204641463A460E9B4E +:10334800FFF7C4FB002840F0848023681A6822F441 +:1033580080621A6072B6636A5A1C626222681269D5 +:103368001A70238D013B2385638D013B9BB26385D6 +:103378000096204641463A460E9BFFF7A7FB0028D9 +:1033880069D123681A6842F400721A60636A5A1C89 +:103398006262226812691A70238D013B2385638D4E +:1033A800013B9BB2638562B6636A5A1C62622268FB +:1033B80012691A70238D013B2385638D013B9BB2F3 +:1033C80063852FE020460E993246FFF747FD38B156 +:1033D800236C202B41D1032540E000BF02001000E0 +:1033E800636A5A1C6262226812691A70238D013B53 +:1033F8002385638D013B9BB2638523685A6912F06C +:10340800040F0FD0626A511C61621B691370238D0F +:10341800013B2385638D013B9BB2638502E0DFF8A6 +:1034280044800027238D002B7FF438AF202384F8B5 +:103438003D30002384F83E3084F83C300EE002250D +:103448000CE002250AE0022508E0012506E0032534 +:1034580004E0032502E0032500E00125284607B023 +:10346800BDE8F0830400010010B4034600283CD0F6 +:10347800026820498A420AD81F4911441F4AA2FB00 +:1034880001010909890019641D4ADA6309E01D4927 +:1034980011441A4AA2FB01010909890019641A4A50 +:1034A800DA63022283F8212019680A6822F47F521D +:1034B80022F030025C6898680443D86804431869AD +:1034C80004435869044398690443D8692043024374 +:1034D8000A6000209862D8621863586398630122D2 +:1034E80083F8212083F8200000E001205DF8044BD8 +:1034F800704700BF07040240F8FFFDBFCDCCCCCC1D +:1035080000000240F8FBFDBF000402400F4B1A68A0 +:1035180042F001021A6059680D4A0A405A601A6856 +:1035280022F0847222F480321A601A6822F480220F +:103538001A605A6822F4FE025A604FF41F029A6019 +:103548004FF00062034B9A60704700BF00100240C2 +:103558000000FFF800ED00E02DE9F0418AB04A4D87 +:10356800EB6943F48003EB61EB6903F48003019397 +:10357800019B6B6943F001036B616B6903F0010305 +:103588000293029B0E2001210422FEF79BFD0E20D0 +:10359800FEF7CAFD0F2001210322FEF793FD0F203D +:1035A800FEF7C2FD394E3A4B33603A4B7360002444 +:1035B800B460F4604FF4804333617461B461F461C2 +:1035C80034623046FFF77CFC6B6943F001036B61A2 +:1035D8006B6903F001030393039BAB6943F0080392 +:1035E800AB61AB6903F008030493049B4FF4406399 +:1035F800069312230793012308930323099326486C +:1036080006A9FEF747FEEB6943F48003EB61EB691B +:1036180003F480030593059B204D214B2B606C60C0 +:10362800AC604FF08008C5F80C802C616C61AC610F +:103638004FF48057EF612846FFF716FFB5636E62B7 +:10364800184D194B2B6010236B60AC60C5F80C80CB +:103658002C616C61AC61EF612846FFF705FF75636B +:103668006E62212021462246FEF72CFD2120FEF71E +:103678005BFD222021462246FEF724FD2220FEF78C +:1036880053FD0AB0BDE8F08100100240500100204F +:1036980000580040400D0300000C0140E4010020E8 +:1036A8005800024028020020440002402DE9F04F53 +:1036B80089B0814B9A6942F004029A619A6902F0D2 +:1036C80004020192019A9A6942F008029A619A6981 +:1036D80002F008020292029A9A6942F010029A6174 +:1036E8009B6903F010030393039B00230593069340 +:1036F8004FF00208CDF81C804FF0200A0DEB0A04A9 +:1037080044F810AD6D4F38462146FEF7C3FD4023FF +:10371800049338462146FEF7BDFD4FF0800BCDF8E7 +:1037280010B038462146FEF7B5FD4FF48063049388 +:10373800634D28462146FEF7ADFD4FF40063049320 +:1037480028462146FEF7A6FD4FF4805604962846E3 +:103758002146FEF79FFD049606F1804606F5784659 +:1037680030462146FEF796FDCDF8108030462146BA +:10377800FEF790FD4FF00109CDF81490042304934F +:1037880038462146FEF786FD10230493304621462D +:10379800FEF780FDCDF810A030462146FEF77AFDF1 +:1037A80003230593CDF8109028462146FEF772FDB5 +:1037B800CDF8109030462146FEF76CFD082304939F +:1037C80028462146FEF766FDCDF81080284621469A +:1037D800FEF760FD1023049328462146FEF75AFDA4 +:1037E800CDF810A028462146FEF754FD0423049383 +:1037F80028462146FEF74EFD08230493304621460D +:10380800FEF748FD0423049330462146FEF742FDA7 +:10381800CDF814804023049328462146FEF73AFD4C +:10382800CDF810B028462146FEF734FD4FF4807AD3 +:10383800CDF810A028462146FEF72CFDCDF810B093 +:1038480030462146FEF726FDCDF810903846214631 +:10385800FEF720FDCDF8108038462146FEF71AFD08 +:10386800CDF810A030462146FEF714FD4FF4007342 +:10387800049330462146FEF70DFD4FF48063049310 +:1038880030462146FEF706FD4FF4005304933846B0 +:103898002146FEF7FFFC4FF4804304933846214647 +:1038A800FEF7F8FC4FF40043049338462146FEF730 +:1038B800F1FC09B0BDE8F08F00100240000C014097 +:1038C800001001402DE9F04F99B0754B9A6942F408 +:1038D80000629A619A6902F400620192019A9A69F7 +:1038E80042F400529A619B6903F400530293029BCD +:1038F8006C4EDFF8B891C6F80090002474604FF061 +:103908002008C6F808804FF4FA6BC6F80CB034618A +:103918007461B4613046FEF72DFA1023169317949C +:10392800304616A9FEF762FB60230F93109411949A +:1039380008271297139414944FF400731593304684 +:103948000FA92246FEF76AFA30460FA90422FEF7AD +:1039580065FA30460FA93A46FEF760FA4FF400635D +:1039680008934FF4806309930A94CDF82C800C9443 +:103978000D940E9430460DEB0801FEF70DFB4A4DF1 +:10398800DFF82CA1C5F800A06C60C5F80880C5F860 +:103998000CB02C616C61AC612846FEF7EBF9CDF8F0 +:1039A800588080231793284616A9FEF71FFB049416 +:1039B80018A9052341F8543D2846FEF76FF96023FE +:1039C8000F93109411941297139414944FF4007356 +:1039D800159328460FA92246FEF720FA28460FA974 +:1039E8000422FEF71BFA28460FA93A46FEF716FAF4 +:1039F8004FF4006308934FF4806309930A94CDF859 +:103A08002C800C940D940E9428460DEB0801FEF7BB +:103A1800C3FADAF8443023F40043CAF84430D9F83A +:103A2800443023F40043C9F8443028462146FEF7C1 +:103A380071FA28460421FEF76DFA28463946FEF742 +:103A480069FA28462146FEF795FA28460421FEF72A +:103A580091FA28463946FEF78DFA30462146FEF798 +:103A680059FA30460421FEF755FA30463946FEF732 +:103A780051FA30462146FEF77DFA30460421FEF71A +:103A880079FA30463946FEF775FA2B6801221A632F +:103A980033681A6842F001021A6019B0BDE8F08F65 +:103AA80000100240A401002034030020002C014033 +:103AB800003401402DE9F04186B0424EB36943F429 +:103AC8000073B361B36903F400730093009B3E4C29 +:103AD8003E4B23604FF48073A3600025E560656169 +:103AE8004FF44023E36165604FF00508C4F8108087 +:103AF8002046FEF741FF364B5A6842F480225A604E +:103B080006A94FF4C02341F8043D2046FEF798FA71 +:103B1800012304930E2202920393204602A9FEF782 +:103B2800ABFD029502270397204602A9FEF7A4FDE4 +:103B380004970B27029703230393204602A9FEF755 +:103B48009BFD0C23029304230393204602A9FEF74E +:103B580093FD0723049310230293CDF80C8020468D +:103B680002A9FEF789FD23689A6842F4000242F42C +:103B780080729A609A6842F001029A60736943F011 +:103B880001037361736903F001030193019B114BF6 +:103B98001D60C3F80480104A9A60104ADA6040F643 +:103BA800A2221A601A6842F001021A6038462946B1 +:103BB8002A46FEF787FA3846FEF7B6FA06B0BDE899 +:103BC800F08100BF001002406C0200200024014078 +:103BD80000000140080002404C240140E00200209F +:103BE800F0B585B0284B9A6942F480629A619B6966 +:103BF80003F480630093009B244C254B23604FF40F +:103C08008073A3600023E36063614FF46022E26184 +:103C18006360052626612046FEF7AEFE0123039366 +:103C28000F2201920293204601A9FEF725FD0D23DC +:103C3800019302250295204601A9FEF71DFD039573 +:103C48000A23019303270297204601A9FEF714FDD2 +:103C580001950423029320460DEB0301FEF70CFDAA +:103C68000723039301970296204601A9FEF704FD56 +:103C780023689A6842F480729A609A6842F0010256 +:103C88009A6005B0F0BD00BF00100240200100207E +:103C98000028014000B583B00A2300930648A421F8 +:103CA800064A0123FFF75CFA08B9012000E000206A +:103CB80003B05DF804FB00BF500100206C00002039 +:103CC80070B582B0104CF0232370552363700F4DEC +:103CD800642600962846A42122460223FFF780F98D +:103CE8000A20FEF7B5FCFB232370002363700096BF +:103CF8002846A42122460223FFF772F90A20FEF77C +:103D0800A7FC02B070BD00BFB40300205001002022 +:103D180030B583B00F4A002313700F4C0A25009565 +:103D28002046A4210123FFF75BF90320FEF790FC4E +:103D380000952046A421094A0623FFF711FA18B96D +:103D48000022074B1A6003E0054B1A6801321A601B +:103D580003B030BDB4030020500100206C000020E7 +:103D68000400002070B50D4B1B681333262B14D8A4 +:103D780000240B4B1C700B4B1C700B4E642504E08D +:103D880034702846FEF764FC0134072CF8DD074838 +:103D980020210022FEF78AFBFEE770BD7404002094 +:103DA80080000020940000209C00002000080140B2 +:103DB80010B5054C052323704FF4FA70FEF748FC44 +:103DC8000023237010BD00BF9C00002010B5044CD8 +:103DD800052323706420FEF73BFC0023237010BDED +:103DE8009C00002008B5FDF767FA044B1888044BBF +:103DF800198801F063FCFDF773FA08BD080000207C +:103E08007400002030B597B002250C95012310935B +:103E1800102311931395002414944FF460131593F1 +:103E28000CA8FDF70DFB0F230793089509944FF491 +:103E380080630A930B9407A82946FDF743FD019573 +:103E48004FF44043039301A8FEF73AFBFDF70AFE3F +:103E5800084BA3FB00208009FEF772F90420FEF747 +:103E680085F94FF0FF3021462246FEF72BF917B0AF +:103E780030BD00BFD34D62102DE9F04F89B0FEF779 +:103E8800C7FBA34CA36943F00103A361A36903F033 +:103E980001030793079B0320FEF702F96FF00B005D +:103EA80000210A46FEF70EF96FF00A0000210A46C3 +:103EB800FEF708F96FF0090000210A46FEF702F93B +:103EC8006FF0040000210A46FEF7FCF86FF00300CB +:103ED80000210A46FEF7F6F86FF0010000210A46B5 +:103EE800FEF7F0F84FF0FF3000210A46FEF7EAF837 +:103EF800FFF788FF636923F001036361FFF7D6FBCF +:103F0800FFF7E0FCFFF7D6FDFFF76AFE81482021A6 +:103F18000122FEF7CBFA8048FEF78AFC7F48FEF7BD +:103F280087FC04247E4E642505E063003370284630 +:103F3800FEF78EFB013C002CF7DA0424784E64254A +:103F480006E06300013B33702846FEF781FB013C25 +:103F5800002CF6DA0022724B1A700122714B1A708B +:103F6800FDF7AAF901F012FA6F4C704B1888214638 +:103F780001F0EAF9FDF7B4F92088FCF7ADFA002260 +:103F88006B4BFCF739FCFCF7EFFD8346FCF7B6FA00 +:103F98005DA3D3E90023FCF777FD08B14FF07E5B02 +:103FA800FFF7DAFA634C272384F840300527676463 +:103FB80004F148006049542201F0C4FE012626702D +:103FC800002584F83C50204601F09CFD3220FEF785 +:103FD8003FFB204601F0DAFC3220FEF739FB204691 +:103FE80029462A4601F0B2FC2046544901F0B8FCA3 +:103FF80020462946324601F0A9FC2046504901F0E6 +:10400800AFFC204601F0C2FC3846FEF721FB2046F3 +:104018002946324601F09AFC20464A4901F0A0FCA4 +:1040280020460821324601F091FC2046464901F01D +:1040380097FC20460F21324601F088FC2046434970 +:1040480001F08EFC204629462A4601F07FFC2046D6 +:104058003F4901F085FC204608212A4601F076FCFC +:1040680020463C4901F07CFC20460E212A4601F0FE +:104078006DFC2046384901F073FC3848042132466B +:10408800FEF714FA364B1B8A264B1E700295AA4679 +:104098000220FEF7DDFA1F480221FEF7FFF900288B +:1040A8007AD000221F4B1A701A4D02240A2602E009 +:1040B8003046FEF7CDFA28462146FEF7EFF90028EC +:1040C800F6D1FFF783FE4FF49670FEF7C1FA114858 +:1040D8000221FEF7E3F920B944E03046FEF7B8FACA +:1040E80002E00C4D02240A2628462146FEF7D6F99E +:1040F8000028F2D1FFF75CFE4FF4AF70FEF7A8FA84 +:10410800FFF730FE48E000BF9A9999999999C93FFD +:1041180000100240000801406C020020200100202D +:104128009C0000209400002074000020080000205B +:1041380000408F40B803002050010020A45D000813 +:10414800B85D0008C85D0008D05D0008D45D0008AF +:10415800D85D0008E05D0008E45D0008000C01403F +:10416800E002002058464FF07A51FCF753FD834691 +:10417800FCF7C4F99CA3D3E90023FCF7A3FC08B11E +:104188004FF07C5B5846A249FCF74CFEFDF736F829 +:10419800A04B1880FFF726FE9F4B5B8A9BB2B43B6F +:1041A800B3F5805F0BDA9C4B5B8A9BB2B42B04D4CB +:1041B800994B5E8AB43EB6B203E0002601E040F6B1 +:1041C800FF76954BD88980B2A0F50060FCF784F99A +:1041D80000224FF07D53FCF7E5F9FCF7C5FC0746D4 +:1041E8008E4B1860039658468D49FCF71BFEFCF76A +:1041F800DFFF361A8B4B1E608B4B1B78002B40F071 +:10420800DE815046FCF7BAFD8849FCF70BFEFCF747 +:1042180075F9804689463046FCF75EF904460D4636 +:1042280000220023FCF730FC28B17342322BD4BFA4 +:104238000023012303E0322ED4BF0023012373B1EE +:104248002046294600220023FCF71EFC18B17042C4 +:10425800FCF794FD04E03046FCF790FD00E074485C +:104268003946FCF7DFFDFCF749F961A3D3E90023E0 +:10427800FCF798F902460B4620462946FBF7E0FF73 +:1042880000226C4BFCF71EFC002876D120462946FC +:1042980000220023FCF7F8FB28B17342322BD4BF6D +:1042A8000023012303E0322ED4BF0023012373B17E +:1042B8002046294600220023FCF7E6FB18B170428D +:1042C800FCF75CFD04E03046FCF758FD00E0584878 +:1042D8003946FCF7A7FDFCF711F945A3D3E90023FC +:1042E800FCF760F902460B4620462946FBF7A8FF73 +:1042F80041A3D3E90023FCF7C7FB002837D12046A8 +:10430800294600220023FCF7BFFB28B17342322B59 +:10431800D4BF0023012303E0322ED4BF002301239E +:1043280073B12046294600220023FCF7ADFB18B1E3 +:104338007042FCF723FD04E03046FCF71FFD00E067 +:104348003B483946FCF76EFDFCF7D8F828A3D3E9BB +:104358000023FCF727F902460B4620462946FBF7BF +:104368006FFF27A3D3E90023FCF71CF902E04FF005 +:10437800AA60314902460B4602E023A3D3E9002391 +:1043880040464946FBF75CFFFCF7A6FB80460298CF +:10439800FCF7F4FC2549FCF745FDFCF7AFF8CDE93F +:1043A80004012046294600220023FCF76DFB28B1B2 +:1043B8007342322BD4BF0023012303E0322ED4BF33 +:1043C80000230123D3B32046294600220023FCF70B +:1043D8005BFB18B17042FCF7D1FC30E03046FCF7CB +:1043E800CDFC2CE0AFF30080CDCCCCCCCCCC0440C1 +:1043F800333333333333F3BF0000000000908AC0F7 +:10440800000000A09999C9BF00005005004065C090 +:1044180000007A4474000020E0020020800400209C +:104428000020A8447C04002076000020CDCC4C3F1E +:104438000000484200908A4000406540764839466E +:10444800FCF7F0FCFCF75AF84FF03332734BFCF7EB +:10445800A9F802460B4620462946FBF7F1FE002242 +:104468006F4BFCF72FFB002876D120462946002207 +:104478000023FCF709FB28B17342322BD4BF002379 +:10448800012303E0322ED4BF0023012373B1204659 +:10449800294600220023FCF7F7FA18B17042FCF70E +:1044A8006DFC04E03046FCF769FC00E05A483946E8 +:1044B800FCF7B8FCFCF722F84FF03332574BFCF707 +:1044C80071F802460B4620462946FBF7B9FE4CA375 +:1044D800D3E90023FCF7D8FA002837D1204629462B +:1044E80000220023FCF7D0FA28B17342322BD4BF44 +:1044F8000023012303E0322ED4BF0023012373B12C +:104508002046294600220023FCF7BEFA18B1704263 +:10451800FCF734FC04E03046FCF730FC00E03E4891 +:104528003946FCF77FFCFBF7E9FF4FF033323B4B92 +:10453800FCF738F802460B4620462946FBF780FE72 +:1045480031A3D3E90023FCF72DF802E04FF0AA606D +:10455800344902460B4602E02DA3D3E90023DDE9E6 +:104568000401FBF76DFEFCF7B7FA0AF13203434585 +:104578001FDDAAF1320AC2451BDA029901F13203A2 +:10458800834216DDA1F13203834212DA002E02DDE6 +:104598000122254B1A7016F5967F07DD4242234B00 +:1045A8001A60C8F10002224B1A6002E000221E4B7A +:1045B8001A7000221F4B1A600290C2463DE1FFF7B5 +:1045C800A7FB0122184B1A701B4B1B787F3BDB00A3 +:1045D800B3F57A7F04DC194EB342A8BF1E4601E04A +:1045E8004FF47A76164B1E60134B5B78803BDB00EA +:1045F800B3F57A7F26DC114FBB42A8BF1F4623E0E4 +:104608000000000000908AC0000000A09999C9BF6E +:1046180000005005004065C0000048423333F33FB6 +:1046280000908A400040654094000020A0000020CF +:1046380098000020040000206C00002018FCFFFFF8 +:10464800840400204FF47A775B4B1F60DFF8848185 +:10465800D8F80000FBF740FF51A3D3E90023FBF78C +:10466800A1FF04460D463046FBF736FF4EA3D3E9BB +:104678000023FBF797FF02460B4620462946FBF727 +:10468800DFFDFCF729FA0646C8F80000DFF8488184 +:10469800D8F80000FBF720FF41A3D3E90023FBF77C +:1046A80081FF04460D463846FBF716FF3EA3D3E9C3 +:1046B8000023FBF777FF02460B4620462946FBF707 +:1046C800BFFDFCF709FAC8F80000FBF705FF34A3A3 +:1046D800D3E90023FBF766FF804689463046FBF79F +:1046E800FBFE0022354BFBF75DFF04460D464046B6 +:1046F800494622462B46FBF7A1FD06460F460022F7 +:104708002F4BFCF7DFF978B93046394628A3D3E9AF +:104718000023FCF7B9F928B930463946FCF7DCF92B +:10472800064603E0274E01E04FF4617640464946CD +:1047380022462B46FBF784FD04460D460022204BFB +:10474800FCF7C0F978B92046294619A3D3E9002314 +:10475800FCF79AF928B920462946FCF7BDF9044622 +:1047680003E0184C01E04FF461740AF164039C42C1 +:1047780034DAAAF1640A544530DD029A02F164037E +:104788009E422BDAA2F164039E4227DD0E4B1B6882 +:10479800042B23D80D4B1E600D4B1C604BE000BF53 +:1047A800CDCCCCCCCCCCEC3F9A9999999999B93F7E +:1047B8000000000000208CC0680400200000E03FDA +:1047C80000208C407CFCFFFF04000020A00000209B +:1047D800980000206C04002074040020964B1B688D +:1047E800052B28D90025954B1D60954B1D60954BD1 +:1047F8001D70954F384629462A4601F0A7F83846D5 +:10480800924901F0ADF8384608212A4601F09EF891 +:1048180038468F4901F0A4F838460E212A4601F09F +:1048280095F838468B4901F09BF84FF47A70FDF7FC +:104838000FFF894B1D700296A2460398FBF74CFEAA +:104848007BA3D3E90023FBF7D7FF06460F4658465C +:10485800FBF754FE04460D463046394622462B46A1 +:10486800FBF7ECFC00227D4BFCF72CF968B3002029 +:10487800002122462B46FBF7E1FC0022774BFCF790 +:1048880021F910B34FF000096E4B83F80090FFF741 +:104898008FFADFF8B481404601F078F80520FDF77B +:1048A800D7FE404649464A4601F050F840466C4912 +:1048B80001F056F840464946012201F047F84046C3 +:1048C800684901F04DF8FFF74DFA674B1B88674AB6 +:1048D800A2FB031252094FF4FA7101FB12339BB287 +:1048E8001BBB5D4B1B7803BB564B1B78EBB9FFF723 +:1048F800D1F9D0B14FF4FA70FDF7AAFEFFF7E0F94D +:10490800DFF84481404600210A4601F01FF840467E +:10491800574901F025F80022474B1A604FF47A7086 +:10492800FDF796FE01224C4B1A704F4B1B88514ADB +:10493800A2FB03125209642101FB12339BB2002B24 +:1049480040F0AD804C4B1B78012B04D13D4B1B78BC +:10495800002B00F0A480404B1B78DBB9DFF8E8801F +:1049680040460421002200F0F1FF4FF00209CDF883 +:104978000090404632463B4601F03CF840460A214A +:10498800002200F0E3FFCDF80090404622462B4677 +:1049980001F030F82C4C20460421012200F0D6FF0B +:1049A800364B1868FBF7AAFD02460B460125009511 +:1049B800204601F01FF820460B212A4600F0C6FFCA +:1049C8002F4B18680021FCF7CBFB20B12C4B1C683F +:1049D80004F1004401E02A4B1C682A4B18680021A6 +:1049E800FCF7BEFB20B1274B196801F1004101E03B +:1049F800244B19682046FCF7D1FB68B1204B186896 +:104A08000021FCF7ADFB20B11D4B186800F10040F8 +:104A18003CE01B4B186839E01A4B18680021FCF77A +:104A28009FFB88B3174B186800F100402EE000BFC9 +:104A380000000000000495400400002098000020B9 +:104A4800A000002094000020B8030020D85D0008D2 +:104A5800E05D0008E45D0008760000200000E03F0B +:104A6800E85D0008F85D000878000020D34D62106A +:104A7800085E00081F85EB51B600002020000020CA +:104A8800AC000020A80000202E4B1868FBF736FD6C +:104A980002460B46022100912B4800F0ABFF2B4B3E +:104AA8001A8801321A802A4B1C6820462949FCF7CB +:104AB80057FB38B1284B1B681333262B02D8FFF756 +:104AC80051F921E020462549FCF74AFB58B1204618 +:104AD8002049FCF763FB30B10522214B1A700622EE +:104AE800204B1A7010E01C4B1B6813F1320F06DACA +:104AF80005221B4B1A7001221A4B1A7004E000237E +:104B0800174A1370174A13708AEAEA73A3EBEA7319 +:104B1800322B05DC029B002BB8BF5B42322B03DD36 +:104B28000022114B1A6003E00F4B1A6801321A6019 +:104B38000D4B1A680D4B9A427FF6AAAAFFF712F995 +:104B4800FFF7A6BAA8000020B803002078000020CC +:104B5800200000203333BB41740400200000D841FA +:104B68009C000020800000205C04002000710200EE +:104B78002DE9F8430222704B5A60704B1B68B3F55D +:104B88007A7F3BDA01336D4A13606D4B998889B29D +:104B98006C4A1068014401EBD17149101160D98841 +:104BA80089B2694A1068014401EBD171491011605A +:104BB800198889B2654A1068014401EBD17149101E +:104BC8001160598889B2624A1068014401EBD171B9 +:104BD80049101160598989B25E4A1068014401EB95 +:104BE800D171491011601A8992B25B4B19680A4455 +:104BF80002EBD27252101A60BDE8F883574B1E6858 +:104C0800574BA3FB06139B094FF47A7202FB1363FD +:104C180013BB544F3868FBF771FC41A3D3E9002359 +:104C2800FBF7C0FC04460D46454B988980B2FCF75B +:104C3800A1F84D49FCF7F6F8FBF760FC3AA3D3E975 +:104C48000023FBF7AFFC02460B4620462946FBF73C +:104C5800F7FAFBF789FF3860394B588980B23D4B2A +:104C68001B68C01AFBF738FC31A3D3E90023FBF714 +:104C780099FCFBF779FF04463C4B18600021FCF7D0 +:104C88006FFA28B120463A49FCF76AFA60B904E09D +:104C980020463849FCF782FA30B9374B1B68052B98 +:104CA80002D8364B1B782BB9354B5A6C22F400428C +:104CB8005A6404E0324B5A6C42F400425A64204B66 +:104CC800188980B2244B1B68C01AFBF705FC18A38F +:104CD800D3E90023FBF766FCFBF746FF0446294BA4 +:104CE80018600021FCF73CFA28B120462049FCF75F +:104CF80037FA68B904E020461E49FCF74FFA38B97C +:104D08001D4B1B68052B03D81C4B1B78002B3DD172 +:104D18001D4B5A6C22F400425A643CE0AFF3008009 +:104D2800AE47E17A14AEEF3F7B14AE47E17A843F99 +:104D38007B14AE47E17A943F000002407C000020DB +:104D4800E002002014000020100000201C000020B9 +:104D5800180000202400002028000020A4000020C3 +:104D6800D34D62102000002017B9CE3CA8000020C7 +:104D7800000070C100007041040000209400002071 +:104D880000340140AC000020002C01408E4B5A6CCE +:104D980042F400425A648D4B9A6812F0200F14BFF7 +:104DA80000220122996811F0400F14BF002101214F +:104DB8009B6813F0800F14BF00200120844B9C686F +:104DC80014F4806F14BF002501259C6814F4006F4B +:104DD80014BF002701279B6813F4805F01EB400391 +:104DE80002EB43037B4CE25C7B4B1A601A6802F1CE +:104DF80002021A601868794981FB0082A2EBE0720E +:104E080002EB42024FEA4202C2EB00021A600CBFF8 +:104E1800022200223A4405EB4202A05C704A10606C +:104E2800106802301060106881FB0091A1EBE071FE +:104E380001EB41014900411A11601B68694A9088D9 +:104E480080B269490968441AD18889B267480268FA +:104E58008A1A052B18D8DFE803F003070A0D101388 +:104E6800A21A634B1A6012E0614B1C600FE0604BA2 +:104E78001C600CE05E4B1A6009E05D4B1A6006E0AE +:104E8800121B5B4B1A6002E00022594B1A60013674 +:104E9800584B1E60584B1B68ABB15849A1FB062103 +:104EA800090B574A12680132B1FBF2F002FB1012EB +:104EB8004AB9B6FBF3F203FB12664EB9514810210A +:104EC800FDF7FAFA04E04F4810210022FDF7EEFA48 +:104ED8004D4B1A68404B1B68052B1AD8DFE803F0C6 +:104EE80003070B0E111515465242002614E05642D0 +:104EF8001546002210E0564200250DE055420026D6 +:104F08000AE055421646002206E01646524200259F +:104F180002E00022154616463C4B1868304B1B68C9 +:104F2800052B1ED8DFE803F003080D1115190746F5 +:104F380040424FF0000C17E0C0F1000C074600207B +:104F480012E0C0F1000C00270EE047424FF0000CC1 +:104F58000AE047428446002006E084464042002793 +:104F680002E0002007468446274B1968002951DDD6 +:104F7800274B1968184B1C680534184B83FB04939E +:104F8800A3EBE47303EB43035B00E31A052B70D830 +:104F9800DFE803F003070B0E11150B464942002406 +:104FA8006CE04C420B46002168E04C42002365E06F +:104FB8004B42002462E04B420C4600215EE00C4666 +:104FC800494200235AE000BF002C0140000C014078 +:104FD800001001401C5E000888000020ABAAAA2A25 +:104FE80090000020E00200201400002010000020A3 +:104FF800B0000020A40000209C0000205917B7D161 +:10500800800000200008014098000020A000002037 +:1050180084000020784B19684B42784C246804F1CE +:105028000108774C84FB0894A4EBE87404EB44046F +:105038006400C4EB0804052C04D8DFE804F01E075C +:105048000A0E131700210B460C4617E00C460021E8 +:1050580014E00C461946002310E01C460B46214676 +:1050680000240BE01C460B46002107E01C460023E9 +:1050780004E000210B460C4600E0002426441D44B1 +:1050880001EB02085F4B1B68002B2ADD5E4B1A6898 +:105098005E4B1C6805345A4B83FB0493A3EBE47303 +:1050A80003EB43035B00E31A052B47D8DFE803F063 +:1050B80003070B0E111513465242002143E05142DB +:1050C800134600223FE0514200233CE053420021B6 +:1050D80039E053421146002235E01146524200237E +:1050E80031E0494B1A68534248490C680134444935 +:1050F80081FB0491A1EBE47101EB41014900611AC4 +:10510800052904D8DFE801F01E070A0E131700224C +:105118001346114617E01146002214E011461A46BC +:10512800002310E0194613460A4600210BE01946F1 +:105138001346002207E01946002304E00022134624 +:10514800114600E0002161443B44024406F57A76AA +:1051580040F2C670864203DC0A2EB8BF0A2601E078 +:1051680040F2C6762A48466305F57A7540F2C6705D +:10517800854203DC0A2DB8BF0A2501E040F2C67556 +:105188002348856308F57A7440F2C670844203DCCC +:105198000A2CB8BF0A2401E040F2C6741C48C46354 +:1051A80001F57A7140F2C670814203DC0A29B8BF62 +:1051B8000A2101E040F2C6711648416303F57A738B +:1051C80040F2C6718B4203DC0A2BB8BF0A2301E008 +:1051D80040F2C6730F498B6302F57A7240F2C673C8 +:1051E8009A4203DC0A2AB8BF0A2201E040F2C672DA +:1051F800084BDA63BDE8F8838400002088000020AB +:10520800ABAAAA2AA00000208C0000209000002051 +:1052180000340140002C0140074A4FF6FF7104E0BA +:1052280003889BB28B4204D104309042F8D9012004 +:1052380070470020704700BFFF870008134B1B888A +:1052480099B2134B1B889BB278B1012811D12BB9A5 +:105258004EF6EE6399420ED10020704769B94EF6BA +:10526800EE6293420BD14020704751B15BB94020A8 +:1052780070470020704740207047AB2070470020DF +:10528800704700207047AB20704700BF00800008BF +:1052980000800108F8B507460E460120FFF7CEFF4B +:1052A800AB281FD000F580341034E402C3020E4D41 +:1052B8001D4413E02368B3F1FF3F0ED101202146BE +:1052C800B2B20023FCF74EF800B1F8BD0120A11CD2 +:1052D800BAB20023FCF746F8F8BD0434AC42E9D36F +:1052E8008020F8BDAB20F8BDFF87000800B587B067 +:1052F8000023059301931248039001230493FFF7B9 +:105308008BFF20B901A805A9FCF76AFF88B901201D +:105318000B4900220023FCF725F858B909480390E7 +:10532800FFF77AFF38B901A805A9FCF759FF20B99A +:1053380003E002E001E00020FFE707B05DF804FBAE +:10534800008000080080010870B505460E46002060 +:10535800FFF774FFAB2813D0C2020A4B13440A4C60 +:10536800144409E01A8892B2AA4204D133F8023CE4 +:105378003380002070BD043B9C42F3D3012070BDF4 +:10538800AB2070BDFE870008028000082DE9F043BD +:1053980087B000210591954A13889BB294480088EC +:1053A80080B201910392012204924EF6EE6293427A +:1053B8003AD04FF6FF72934203D0002B40F0F780AB +:1053C8009CE078B98948FFF727FF0446002840F099 +:1053D800F38001A805A9FCF703FF002800F001816C +:1053E8000446FEE04EF6EE63984216D17F48FFF77A +:1053F80013FF38B901A805A9FCF7F2FE04460028F6 +:1054080040F0EF8001207A4900220023FBF7AAFF31 +:105418000446002800F0D280E3E0FFF767FF044667 +:10542800002800F0CD80DCE0F0B146E0B8F80030AC +:105438009BB22C4637F81500834200D1AEB233B286 +:105448009C420ED04946FFF77FFF012809D037F864 +:105458001400B9F80010FFF71DFF0446002840F0BB +:10546800C0800135ADB207E04FF6FF760025DFF8C2 +:105478008881604FDFF88491022DD7D901205B49DC +:1054880000220023FBF76EFF0446002840F0A980A5 +:10549800002301935648039001230493FFF7BCFEB1 +:1054A8000446002840F08E8001A805A9FCF798FE64 +:1054B800002800F09680044693E04FF6FF73984268 +:1054C80016D14B480390FFF7A7FE38B901A805A9E4 +:1054D800FCF786FE0446002840F0838001204349FB +:1054E80000220023FBF73EFF044600286CD078E03A +:1054F800FFF7FCFE0446002868D072E028B9FFF7E1 +:10550800F5FE0446002863D06BE04FF6FF7398421F +:105518002AD137480390FFF77FFE0446002859D167 +:1055280001A805A9FCF75CFE00285AD0044658E0FB +:10553800B8F800309BB2254637F81400834200D1F2 +:10554800A6B233B29D420CD04946FFF7FDFE0128B2 +:1055580007D037F81500B9F80010FFF79BFE0028B0 +:105568003AD10134A4B207E04FF6FF760024DFF801 +:105578009080204FDFF88490022CD9D901201C4953 +:1055880000220023FBF7EEFE044650BB00230193E4 +:105598001648039001230493FFF73EFE0446E8B93A +:1055A80001A805A9FCF71CFED8B1044619E0FFF7CD +:1055B8009DFE0446A0B114E0002412E0002410E08F +:1055C80000240EE000240CE000240AE0002408E097 +:1055D800002406E0002404E0044602E0002400E081 +:1055E8000024204607B0BDE8F08300BF0080000813 +:1055F800008001080800002006800008B400002090 +:10560800068001082DE9F04786B005460C460020C3 +:105618000590FFF713FE402804D0002840D1234FFF +:10562800234E01E0224F214E012031464EF6EE6214 +:105638000023FBF797FE00B135E028462146FFF727 +:1056480029FE78BB0024DFF86C80DFF86C9011E04D +:1056580038F81400A8420BD04946FFF775FE012818 +:1056680006D038F81400B9F80010FFF713FED0B9C7 +:105678000134A4B2022CEBD9002301930397012330 +:10568800049301A805A9FCF7ABFD00B10BE00120CC +:10569800314600220023FBF765FE00B103E002E07B +:1056A800AB2000E0FFE706B0BDE8F0870080000807 +:1056B8000080010808000020B400002038B5054625 +:1056C8000C46FFF7E7FD802803D128462146FFF75F +:1056D80099FF38BD08B50246084B1B784BB94030D6 +:1056E80092F8341000F0B0FA28B10120034B18707A +:1056F80008BD012008BD002008BD00BFB60000207D +:1057080008B559B1836B53F82230012202FA03F32A +:1057180090F83420134380F834300BE0836B53F84F +:105728002230012202FA03F390F8342022EA03031C +:1057380080F83430FFF7CEFF08BD00BF08B501F090 +:1057480001010722FFF7DCFF08BD00BF08B511F013 +:10575800010F0AD0836B1B68012202FA03F390F849 +:105768003420134380F834300AE0836B1B6801222D +:1057780002FA03F390F8342022EA030380F8343065 +:1057880011F0020F0AD0836B5B68012202FA03F35F +:1057980090F83420134380F834300AE0836B5B6858 +:1057A800012202FA03F390F8342022EA030380F876 +:1057B800343011F0040F0AD0836B9B68012202FA7F +:1057C80003F390F83420134380F834300AE0836BF5 +:1057D8009B68012202FA03F390F8342022EA0303BB +:1057E80080F8343011F0080F0AD0836BDB6801228F +:1057F80002FA03F390F83420134380F834300AE0B7 +:10580800836BDB68012202FA03F390F8342022EA62 +:10581800030380F83430FFF75DFF08BD10B5044678 +:1058280000210622FFF76CFF204600210422FFF723 +:1058380067FF204601210522FFF762FF204601216C +:105848000622FFF75DFF204600210622FFF758FFDA +:10585800204601210622FFF753FF20460021062299 +:10586800FFF74EFF204600210522FFF749FF0020E1 +:1058780010BD00BF00B583B00DF10701FFF7CEFFE3 +:1058880003B05DF804FB00BF38B504460D46174B5E +:105898001B784BBB00210622FFF732FF2046002170 +:1058A8000422FFF72DFF20462909FFF74FFF204666 +:1058B80001210622FFF724FF204600210622FFF7D8 +:1058C8001FFF20462946FFF741FF204601210622F7 +:1058D800FFF716FF204600210622FFF711FF20469A +:1058E800FFF7C8FF002038BD012038BDB6000020F2 +:1058F80038B504460D4600210622FFF701FF204671 +:1059080001210422FFF7FCFE20462909FFF71EFFAC +:10591800204601210622FFF7F3FE20460021062239 +:10592800FFF7EEFE20462946FFF710FF204601212B +:105938000622FFF7E5FE204600210622FFF7E0FEDB +:105948002046FFF797FF002038BD00BF08B501EBE0 +:10595800821161F07F01C9B2FFF796FF08BD00BF51 +:1059680070B506460D4649B90EE03046FFF782FF8E +:105978003046295DFFF7BCFF013400E000244F2CBE +:1059880002DC2B5D002BF0D1002070BD08B5012191 +:10599800FFF77AFF08BD00BF08B501224270827880 +:1059A800520042F00C02D2B2C1781143FFF76CFFEB +:1059B80008BD00BF10B58AB000238DF82430012A35 +:1059C80000D80A2209ACB1FBF2F303FB1211C9B2E9 +:1059D800013C092902D83031C9B201E03731C9B2D6 +:1059E80021701946002BEED12146FFF7B9FF0AB006 +:1059F80010BD00BF2DE9F84F814616461F469DF899 +:105A080028B01046194600220023FBF73DF830B1B4 +:105A180048463349FFF7A4FF07F100431F464FF0FC +:105A2800000800222F4B00242F4D0BE0104619468A +:105A380022462B46FAF7E0FE02460B4608F101081B +:105A48005FFA88F8D845F1D330463946FAF7F8FBBB +:105A580004460D46FBF768F80646FAF72DFD0246A0 +:105A68000B4620462946FAF7E9FB04460D46484608 +:105A780031460A22FFF79EFFBBF1000F21D04846AE +:105A88001A49FFF76DFF1CE02046294632463B467F +:105A9800FAF788FD04460D46FBF71EF8834648468C +:105AA80059465246FFF786FF5846FAF715FD024653 +:105AB8000B4620462946FAF7C1FB04460D46C34665 +:105AC80003E00026084F4FF00A0A0BF1FF385FFA8F +:105AD80088F8BBF1000FD7D10020BDE8F88F00BFD0 +:105AE800245E00080000E03F00002440285E000813 +:105AF80008B5490041F00401C9B21143FFF7C4FEDB +:105B080008BD00BF10B50446012343700023C370CD +:105B1800837090F83C30002B40F08A80464B8363BA +:105B2800403000F08BF8002840F0848020460021A7 +:105B38000422FFF7E5FD204600210522FFF7E0FDDE +:105B4800204600210622FFF7DBFD20460321FFF750 +:105B5800FDFD204601210622FFF7D2FD0120FCF7BA +:105B680077FD204600210622FFF7CAFD0520FCF735 +:105B78006FFD20460321FFF7E9FD2046012106229B +:105B8800FFF7BEFD0120FCF763FD20460021062239 +:105B9800FFF7B6FD0120FCF75BFD20460321FFF768 +:105BA800D5FD204601210622FFF7AAFD0120FCF7BA +:105BB8004FFD204600210622FFF7A2FD0120FCF739 +:105BC80047FD20460221FFF7C1FD2046012106229C +:105BD800FFF796FD0120FCF73BFD20460021062239 +:105BE800FFF78EFD0120FCF733FD2178C900C9B20B +:105BF800204641F02001FFF747FEA3785B0043F001 +:105C08000803DBB2E17820461943FFF73DFE204642 +:105C1800FFF7BCFE204601210022FFF769FF20465E +:105C2800FFF7BAFE20460121FFF788FD002010BDCE +:105C3800012010BD012010BD2C000020037803F0C6 +:105C4800070303700020704700B585B004AA02F866 +:105C5800011D034613F8081B4900406800901846C8 +:105C680041F040010123FDF7BBF908B1012000E034 +:105C7800002005B05DF804FB704700BFFEE700BFD9 +:105C8800FEE700BFFEE700BFFEE700BF704700BFAA +:105C9800704700BF704700BF08B5FCF7CBFCFCF7A6 +:105CA80077FA08BD002100F004B80D4B5B5843504B +:105CB80004310C480C4B42189A42FFF4F6AF0B4AD9 +:105CC80000F003B8002342F8043B094B9A42FFF462 +:105CD800F9AFFDF71BFC00F00FF8FEF7CDF87047A1 +:105CE800345E0008000000204C0000205000002016 +:105CF80088040020FFF7FEBF70B50E4B0E4D002440 +:105D0800ED1AAD101E46AC4204D056F82420904738 +:105D18000134F8E700F020F8084D094B0024ED1A8B +:105D2800AD101E46AC4204D056F8242090470134EA +:105D3800F8E770BD2C5E00082C5E0008305E000895 +:105D48002C5E000810B50023934203D0CC5CC454E9 +:105D58000133F9E710BD0000F8B500BFF8BC08BC76 +:105D68009E467047F8B500BFF8BC08BC9E46704711 +:105D780002030405060708090A0B0C0D0E0F101084 +:105D880001020000000000000000000001020304FE +:105D98000607080900000000010203045472616E3E +:105DA80073704F747465722056322E3100000000F3 +:105DB800496E697469616C697A696E672E2E2E0066 +:105DC8004261743A000000005600000041000000E3 +:105DD8004C656E3A000000006D2800006D29000037 +:105DE800456D657267656E6379204F6666210000B0 +:105DF8004B656570657220746F20666173742E0040 +:105E08004E756E636875636B20436F6E74726F6C4A +:105E18000000000000000201040503002D0000003E +:045E28002E00000048 +:045E2C000D0200085B +:045E3000E90100087C +:105E340000A24A04640000003713000000000000C0 +:105E4400D0070000D0070000D0070000D0070000F2 +:105E540000001042D0070000D0070000040000003A +:105E6400050000000600000007000000000000001C +:0C5E74000100000002000000030000001C +:0400000508005CADE6 :00000001FF