From 8498a190825b5be1410faf16beb5239ae6e5f57b Mon Sep 17 00:00:00 2001 From: greedyhao Date: Thu, 27 Feb 2020 21:36:04 +0800 Subject: [PATCH 1/6] [bsp][stm32] add stm32f411-mini-system bsp --- bsp/stm32/stm32f411-mini-system/.config | 437 +++ bsp/stm32/stm32f411-mini-system/.cproject | 201 ++ bsp/stm32/stm32f411-mini-system/.gitignore | 44 + bsp/stm32/stm32f411-mini-system/.project | 69 + .../.settings/language.settings.xml | 14 + .../.settings/org.eclipse.core.runtime.prefs | 3 + bsp/stm32/stm32f411-mini-system/Kconfig | 21 + bsp/stm32/stm32f411-mini-system/README.md | 108 + bsp/stm32/stm32f411-mini-system/SConscript | 15 + bsp/stm32/stm32f411-mini-system/SConstruct | 60 + .../applications/SConscript | 12 + .../stm32f411-mini-system/applications/main.c | 33 + .../board/CubeMX_Config/.mxproject | 14 + .../board/CubeMX_Config/CubeMX_Config.ioc | 156 + .../board/CubeMX_Config/Inc/main.h | 71 + .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 443 +++ .../board/CubeMX_Config/Inc/stm32f4xx_it.h | 69 + .../board/CubeMX_Config/Src/main.c | 400 +++ .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 326 ++ .../board/CubeMX_Config/Src/stm32f4xx_it.c | 203 ++ .../CubeMX_Config/Src/system_stm32f4xx.c | 743 +++++ bsp/stm32/stm32f411-mini-system/board/Kconfig | 117 + .../stm32f411-mini-system/board/SConscript | 38 + bsp/stm32/stm32f411-mini-system/board/board.c | 58 + bsp/stm32/stm32f411-mini-system/board/board.h | 50 + .../board/linker_scripts/link.icf | 28 + .../board/linker_scripts/link.lds | 158 + .../board/linker_scripts/link.sct | 15 + .../board/ports/fal_cfg.h | 48 + .../stm32f411-mini-system/figures/board.png | Bin 0 -> 577790 bytes .../stm32f411-mini-system/makefile.targets | 4 + bsp/stm32/stm32f411-mini-system/project.ewd | 2834 +++++++++++++++++ bsp/stm32/stm32f411-mini-system/project.ewp | 2257 +++++++++++++ bsp/stm32/stm32f411-mini-system/project.eww | 10 + bsp/stm32/stm32f411-mini-system/project.uvopt | 162 + .../stm32f411-mini-system/project.uvoptx | 967 ++++++ .../stm32f411-mini-system/project.uvprojx | 731 +++++ bsp/stm32/stm32f411-mini-system/rtconfig.h | 170 + bsp/stm32/stm32f411-mini-system/rtconfig.py | 143 + bsp/stm32/stm32f411-mini-system/template.ewp | 2106 ++++++++++++ bsp/stm32/stm32f411-mini-system/template.eww | 10 + .../stm32f411-mini-system/template.uvopt | 162 + .../stm32f411-mini-system/template.uvoptx | 191 ++ .../stm32f411-mini-system/template.uvprojx | 394 +++ 44 files changed, 14095 insertions(+) create mode 100644 bsp/stm32/stm32f411-mini-system/.config create mode 100644 bsp/stm32/stm32f411-mini-system/.cproject create mode 100644 bsp/stm32/stm32f411-mini-system/.gitignore create mode 100644 bsp/stm32/stm32f411-mini-system/.project create mode 100644 bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml create mode 100644 bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs create mode 100644 bsp/stm32/stm32f411-mini-system/Kconfig create mode 100644 bsp/stm32/stm32f411-mini-system/README.md create mode 100644 bsp/stm32/stm32f411-mini-system/SConscript create mode 100644 bsp/stm32/stm32f411-mini-system/SConstruct create mode 100644 bsp/stm32/stm32f411-mini-system/applications/SConscript create mode 100644 bsp/stm32/stm32f411-mini-system/applications/main.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/Kconfig create mode 100644 bsp/stm32/stm32f411-mini-system/board/SConscript create mode 100644 bsp/stm32/stm32f411-mini-system/board/board.c create mode 100644 bsp/stm32/stm32f411-mini-system/board/board.h create mode 100644 bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf create mode 100644 bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds create mode 100644 bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct create mode 100644 bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h create mode 100644 bsp/stm32/stm32f411-mini-system/figures/board.png create mode 100644 bsp/stm32/stm32f411-mini-system/makefile.targets create mode 100644 bsp/stm32/stm32f411-mini-system/project.ewd create mode 100644 bsp/stm32/stm32f411-mini-system/project.ewp create mode 100644 bsp/stm32/stm32f411-mini-system/project.eww create mode 100644 bsp/stm32/stm32f411-mini-system/project.uvopt create mode 100644 bsp/stm32/stm32f411-mini-system/project.uvoptx create mode 100644 bsp/stm32/stm32f411-mini-system/project.uvprojx create mode 100644 bsp/stm32/stm32f411-mini-system/rtconfig.h create mode 100644 bsp/stm32/stm32f411-mini-system/rtconfig.py create mode 100644 bsp/stm32/stm32f411-mini-system/template.ewp create mode 100644 bsp/stm32/stm32f411-mini-system/template.eww create mode 100644 bsp/stm32/stm32f411-mini-system/template.uvopt create mode 100644 bsp/stm32/stm32f411-mini-system/template.uvoptx create mode 100644 bsp/stm32/stm32f411-mini-system/template.uvprojx diff --git a/bsp/stm32/stm32f411-mini-system/.config b/bsp/stm32/stm32f411-mini-system/.config new file mode 100644 index 0000000000..0fb195dd24 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.config @@ -0,0 +1,437 @@ +# +# Automatically generated file; DO NOT EDIT. +# RT-Thread Configuration +# + +# +# RT-Thread Kernel +# +CONFIG_RT_NAME_MAX=8 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_ALIGN_SIZE=4 +# CONFIG_RT_THREAD_PRIORITY_8 is not set +CONFIG_RT_THREAD_PRIORITY_32=y +# CONFIG_RT_THREAD_PRIORITY_256 is not set +CONFIG_RT_THREAD_PRIORITY_MAX=32 +CONFIG_RT_TICK_PER_SECOND=1000 +CONFIG_RT_USING_OVERFLOW_CHECK=y +CONFIG_RT_USING_HOOK=y +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +# CONFIG_RT_USING_TIMER_SOFT is not set +CONFIG_RT_DEBUG=y +CONFIG_RT_DEBUG_COLOR=y +# CONFIG_RT_DEBUG_INIT_CONFIG is not set +# CONFIG_RT_DEBUG_THREAD_CONFIG is not set +# CONFIG_RT_DEBUG_SCHEDULER_CONFIG is not set +# CONFIG_RT_DEBUG_IPC_CONFIG is not set +# CONFIG_RT_DEBUG_TIMER_CONFIG is not set +# CONFIG_RT_DEBUG_IRQ_CONFIG is not set +# CONFIG_RT_DEBUG_MEM_CONFIG is not set +# CONFIG_RT_DEBUG_SLAB_CONFIG is not set +# CONFIG_RT_DEBUG_MEMHEAP_CONFIG is not set +# CONFIG_RT_DEBUG_MODULE_CONFIG is not set + +# +# Inter-Thread communication +# +CONFIG_RT_USING_SEMAPHORE=y +CONFIG_RT_USING_MUTEX=y +CONFIG_RT_USING_EVENT=y +CONFIG_RT_USING_MAILBOX=y +CONFIG_RT_USING_MESSAGEQUEUE=y +# CONFIG_RT_USING_SIGNALS is not set + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +# CONFIG_RT_USING_MEMHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMTRACE is not set +CONFIG_RT_USING_HEAP=y + +# +# Kernel Device Object +# +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_VER_NUM=0x40003 +CONFIG_ARCH_ARM=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M4=y +# CONFIG_ARCH_CPU_STACK_GROWS_UPWARD is not set + +# +# RT-Thread Components +# +CONFIG_RT_USING_COMPONENTS_INIT=y +CONFIG_RT_USING_USER_MAIN=y +CONFIG_RT_MAIN_THREAD_STACK_SIZE=2048 +CONFIG_RT_MAIN_THREAD_PRIORITY=10 + +# +# C++ features +# +# CONFIG_RT_USING_CPLUSPLUS is not set + +# +# Command shell +# +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_CMD_SIZE=80 +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_USING_MSH_DEFAULT=y +CONFIG_FINSH_USING_MSH_ONLY=y +CONFIG_FINSH_ARG_MAX=10 + +# +# Device virtual file system +# +# CONFIG_RT_USING_DFS is not set + +# +# Device Drivers +# +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_PIPE_BUFSZ=512 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_HWTIMER is not set +# CONFIG_RT_USING_CPUTIME is not set +# CONFIG_RT_USING_I2C is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_MTD_NOR is not set +# CONFIG_RT_USING_MTD_NAND is not set +# CONFIG_RT_USING_PM is not set +# CONFIG_RT_USING_RTC is not set +# CONFIG_RT_USING_SDIO is not set +# CONFIG_RT_USING_SPI is not set +# CONFIG_RT_USING_WDT is not set +# CONFIG_RT_USING_AUDIO is not set +# CONFIG_RT_USING_SENSOR is not set +# CONFIG_RT_USING_TOUCH is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE is not set +# CONFIG_RT_USING_WIFI is not set + +# +# Using USB +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set + +# +# POSIX layer and C standard library +# +# CONFIG_RT_USING_LIBC is not set +# CONFIG_RT_USING_PTHREADS is not set +CONFIG_RT_LIBC_USING_TIME=y + +# +# Network +# + +# +# Socket abstraction layer +# +# CONFIG_RT_USING_SAL is not set + +# +# Network interface device +# +# CONFIG_RT_USING_NETDEV is not set + +# +# light weight TCP/IP stack +# +# CONFIG_RT_USING_LWIP is not set + +# +# AT commands +# +# CONFIG_RT_USING_AT is not set + +# +# VBUS(Virtual Software BUS) +# +# CONFIG_RT_USING_VBUS is not set + +# +# Utilities +# +# CONFIG_RT_USING_RYM is not set +# CONFIG_RT_USING_ULOG is not set +# CONFIG_RT_USING_UTEST is not set +# CONFIG_RT_USING_LWP is not set + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_WEBCLIENT is not set +# CONFIG_PKG_USING_WEBNET is not set +# CONFIG_PKG_USING_MONGOOSE is not set +# CONFIG_PKG_USING_MYMQTT is not set +# CONFIG_PKG_USING_MQTTCLIENT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_LIBMODBUS is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_EZXML is not set +# CONFIG_PKG_USING_NANOPB is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# CONFIG_PKG_USING_RW007 is not set +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_PPP_DEVICE is not set +# CONFIG_PKG_USING_AT_DEVICE is not set +# CONFIG_PKG_USING_ATSRV_SOCKET is not set +# CONFIG_PKG_USING_WIZNET is not set + +# +# IoT Cloud +# +# CONFIG_PKG_USING_ONENET is not set +# CONFIG_PKG_USING_GAGENT_CLOUD is not set +# CONFIG_PKG_USING_ALI_IOTKIT is not set +# CONFIG_PKG_USING_AZURE is not set +# CONFIG_PKG_USING_TENCENT_IOTHUB is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_OTA_DOWNLOADER is not set +# CONFIG_PKG_USING_IPMSG is not set +# CONFIG_PKG_USING_LSSDP is not set +# CONFIG_PKG_USING_AIRKISS_OPEN is not set +# CONFIG_PKG_USING_LIBRWS is not set +# CONFIG_PKG_USING_TCPSERVER is not set +# CONFIG_PKG_USING_PROTOBUF_C is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_DLT645 is not set +# CONFIG_PKG_USING_QXWZ is not set +# CONFIG_PKG_USING_SMTP_CLIENT is not set +# CONFIG_PKG_USING_ABUP_FOTA is not set +# CONFIG_PKG_USING_LIBCURL2RTT is not set +# CONFIG_PKG_USING_CAPNP is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_libsodium is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set + +# +# language packages +# +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set + +# +# multimedia packages +# +# CONFIG_PKG_USING_OPENMV is not set +# CONFIG_PKG_USING_MUPDF is not set +# CONFIG_PKG_USING_STEMWIN is not set +# CONFIG_PKG_USING_WAVPLAYER is not set +# CONFIG_PKG_USING_TJPGD is not set + +# +# tools packages +# +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_EASYFLASH_WRITE_GRAN_1BIT is not set +# CONFIG_PKG_EASYFLASH_WRITE_GRAN_8BITS is not set +# CONFIG_PKG_EASYFLASH_WRITE_GRAN_32BITS is not set +# CONFIG_PKG_USING_EASYFLASH_V400 is not set +# CONFIG_PKG_USING_EASYFLASH_V330 is not set +# CONFIG_PKG_USING_EASYFLASH_V321 is not set +# CONFIG_PKG_USING_EASYFLASH_V310 is not set +# CONFIG_PKG_USING_EASYFLASH_V300 is not set +# CONFIG_PKG_USING_EASYFLASH_LATEST_VERSION is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_ADBD is not set +# CONFIG_PKG_USING_COREMARK is not set +# CONFIG_PKG_USING_DHRYSTONE is not set +# CONFIG_PKG_USING_NR_MICRO_SHELL is not set +# CONFIG_PKG_USING_CHINESE_FONT_LIBRARY is not set +# CONFIG_PKG_USING_LUNAR_CALENDAR is not set +# CONFIG_PKG_USING_BS8116A is not set + +# +# system packages +# +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_LWEXT4 is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_FAL is not set +# CONFIG_PKG_USING_FAL_V00400 is not set +# CONFIG_PKG_USING_FAL_V00300 is not set +# CONFIG_PKG_USING_FAL_V00200 is not set +# CONFIG_PKG_USING_FAL_V00100 is not set +# CONFIG_PKG_USING_FAL_LATEST_VERSION is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_LITTLEVGL2RTT is not set +# CONFIG_PKG_USING_CMSIS is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_THREAD_POOL is not set +# CONFIG_PKG_USING_ROBOTS is not set +# CONFIG_PKG_USING_EV is not set +# CONFIG_PKG_USING_SYSWATCH is not set + +# +# peripheral libraries and drivers +# +# CONFIG_PKG_USING_SENSORS_DRIVERS is not set +# CONFIG_PKG_USING_REALTEK_AMEBA is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_U8G2 is not set +# CONFIG_PKG_USING_BUTTON is not set +# CONFIG_PKG_USING_PCF8574 is not set +# CONFIG_PKG_USING_SX12XX is not set +# CONFIG_PKG_USING_SIGNAL_LED is not set +# CONFIG_PKG_USING_LEDBLINK is not set +# CONFIG_PKG_USING_LITTLED is not set +# CONFIG_PKG_USING_WM_LIBRARIES is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_AGILE_BUTTON is not set +# CONFIG_PKG_USING_AGILE_LED is not set +# CONFIG_PKG_USING_AT24CXX is not set +# CONFIG_PKG_USING_MOTIONDRIVER2RTT is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_PCA9685 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_TOUCH_DRIVERS is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set + +# +# miscellaneous packages +# +# CONFIG_PKG_USING_LIBCSV is not set +# CONFIG_PKG_USING_OPTPARSE is not set +# CONFIG_PKG_USING_FASTLZ is not set +# CONFIG_PKG_USING_MINILZO is not set +# CONFIG_PKG_USING_QUICKLZ is not set +# CONFIG_PKG_USING_MULTIBUTTON is not set +# CONFIG_PKG_USING_FLEXIBLE_BUTTON is not set +# CONFIG_PKG_USING_CANFESTIVAL is not set +# CONFIG_PKG_USING_ZLIB is not set +# CONFIG_PKG_USING_DSTR is not set +# CONFIG_PKG_USING_TINYFRAME is not set +# CONFIG_PKG_USING_KENDRYTE_DEMO is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set + +# +# samples: kernel and components samples +# +# CONFIG_PKG_USING_KERNEL_SAMPLES is not set +# CONFIG_PKG_USING_FILESYSTEM_SAMPLES is not set +# CONFIG_PKG_USING_NETWORK_SAMPLES is not set +# CONFIG_PKG_USING_PERIPHERAL_SAMPLES is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_UKAL is not set +CONFIG_SOC_FAMILY_STM32=y +CONFIG_SOC_SERIES_STM32F4=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_STM32F411RE=y + +# +# Onboard Peripheral Drivers +# + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_UART1=y +# CONFIG_BSP_USING_UART2 is not set +# CONFIG_BSP_USING_UART6 is not set +# CONFIG_BSP_USING_I2C1 is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_TIM is not set +CONFIG_BSP_USING_ON_CHIP_FLASH=y + +# +# Board extended module Drivers +# diff --git a/bsp/stm32/stm32f411-mini-system/.cproject b/bsp/stm32/stm32f411-mini-system/.cproject new file mode 100644 index 0000000000..57136a8532 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.cproject @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f411-mini-system/.gitignore b/bsp/stm32/stm32f411-mini-system/.gitignore new file mode 100644 index 0000000000..b1c3134254 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.gitignore @@ -0,0 +1,44 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.exe +*.pdb +*.idb +*.ilk +*.old +build +Debug +documentation/html +packages/ +*~ +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +.DS_Stor* +.config 3 +.config 4 +.config 5 +Midea-X1 +*.uimg +GPATH +GRTAGS +GTAGS +.vscode +JLinkLog.txt +JLinkSettings.ini +DebugConfig/ +RTE/ +settings/ +*.uvguix* +cconfig.h +board/CubeMX_Config/Drivers +board/CubeMX_Config/MDK-ARM diff --git a/bsp/stm32/stm32f411-mini-system/.project b/bsp/stm32/stm32f411-mini-system/.project new file mode 100644 index 0000000000..b1bc357d5e --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.project @@ -0,0 +1,69 @@ + + + stm32f411-mini-system + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.rt-thread.studio.rttnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + rt-thread + 2 + virtual:/virtual + + + rt-thread/bsp + 2 + virtual:/virtual + + + rt-thread/components + 2 + $%7BPARENT-3-PROJECT_LOC%7D/components + + + rt-thread/include + 2 + $%7BPARENT-3-PROJECT_LOC%7D/include + + + rt-thread/libcpu + 2 + $%7BPARENT-3-PROJECT_LOC%7D/libcpu + + + rt-thread/src + 2 + $%7BPARENT-3-PROJECT_LOC%7D/src + + + rt-thread/bsp/stm32 + 2 + virtual:/virtual + + + rt-thread/bsp/stm32/libraries + 2 + $%7BPARENT-1-PROJECT_LOC%7D/libraries + + + diff --git a/bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml b/bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml new file mode 100644 index 0000000000..5d47297634 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs b/bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs new file mode 100644 index 0000000000..b36aae6fb2 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs @@ -0,0 +1,3 @@ +content-types/enabled=true +content-types/org.eclipse.cdt.core.asmSource/file-extensions=s +eclipse.preferences.version=1 diff --git a/bsp/stm32/stm32f411-mini-system/Kconfig b/bsp/stm32/stm32f411-mini-system/Kconfig new file mode 100644 index 0000000000..8cbc7b71a8 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/Kconfig @@ -0,0 +1,21 @@ +mainmenu "RT-Thread Configuration" + +config BSP_DIR + string + option env="BSP_ROOT" + default "." + +config RTT_DIR + string + option env="RTT_ROOT" + default "../../.." + +config PKGS_DIR + string + option env="PKGS_ROOT" + default "packages" + +source "$RTT_DIR/Kconfig" +source "$PKGS_DIR/Kconfig" +source "../libraries/Kconfig" +source "board/Kconfig" diff --git a/bsp/stm32/stm32f411-mini-system/README.md b/bsp/stm32/stm32f411-mini-system/README.md new file mode 100644 index 0000000000..6aa02e3098 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/README.md @@ -0,0 +1,108 @@ +# STM32F411-mini-system 开发板 BSP 说明 + +## 简介 + +本文档为 STM32F411-mini-system 开发板提供的 BSP (板级支持包) 说明。 + +主要内容如下: + +- 开发板资源介绍 +- BSP 快速上手 +- 进阶使用方法 + +通过阅读快速上手章节开发者可以快速地上手该 BSP,将 RT-Thread 运行在开发板上。在进阶使用指南章节,将会介绍更多高级功能,帮助开发者利用 RT-Thread 驱动更多板载资源。 + +## 开发板介绍 + +STM32F411-mini-system 是一款基于 ARM Cortex-M4 内核的开发板,最高主频为 100Mhz,该开发板芯片为 STM32F411CE。 + +开发板外观如下图所示: + +![board](figures/board.png) + +该开发板常用 **板载资源** 如下: + +- MCU:STM32F411CEU,主频 100MHz,512KB FLASH ,128KB RAM。 +- 常用外设 + - LED: 2 个, user LED (LD1), power LED (LD2) + - 按键: 3 个, USER, BOOT0 and RESET +- 常用接口:USB 支持 3 种不同接口:虚拟 COM 端口、大容量存储和调试端口 +- 调试接口: SWD + +## 外设支持 + +本 BSP 目前对外设的支持情况如下: + +| **片上外设** | **支持情况** | **备注** | +| :----------- | :----------: | :-----------------------------------------------------: | +| GPIO | 支持 | PA0, PA1... PH1 ---> PIN: 0, 1...47 | +| UART | 支持 | UART1 | +| SPI | 支持 | | +| IIC | 支持 | | +| RTC | 支持 | 支持外部晶振和内部低速时钟 | +| WDT | 支持 | | +| FLASH | 支持 | 已适配 [FAL](https://github.com/RT-Thread-packages/fal) | + +## 使用说明 + +使用说明分为如下两个章节: + +- 快速上手 + + 本章节是为刚接触 RT-Thread 的新手准备的使用说明,遵循简单的步骤即可将 RT-Thread 操作系统运行在该开发板上,看到实验效果 。 + +- 进阶使用 + + 本章节是为需要在 RT-Thread 操作系统上使用更多开发板资源的开发者准备的。通过使用 ENV 工具对 BSP 进行配置,可以开启更多板载资源,实现更多高级功能。 + +### 快速上手 + +本 BSP 为开发者提供 MDK5 和 IAR 工程,并且支持 GCC 开发环境。下面以 MDK5 开发环境为例,介绍如何将系统运行起来。 + +#### 硬件连接 + +使用 Type-A to Type-C 线连接开发板和 PC 供电,红色 LED LD2 (PWR) 会点亮。 + +#### 编译下载 + +双击 project.uvprojx 文件,打开 MDK5 工程,编译并下载程序到开发板。 + +> 工程默认配置使用 ST-LINK 下载程序,点击下载按钮即可下载程序到开发板。 + +#### 运行结果 + +下载程序成功之后,系统会自动运行,观察开发板上 LED 的运行效果,红色 LD2 常亮、绿色 LD1 会周期性闪烁。 + +COM 端口默认连接串口 2,在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以看到 RT-Thread 的输出信息: + +```bash + \ | / +- RT - Thread Operating System + / | \ 4.0.3 build Feb 27 2020 + 2006 - 2020 Copyright by rt-thread team +msh > +``` + +### 进阶使用 + +此 BSP 默认只开启了 GPIO 和 串口 1 的功能,更多高级功能需要利用 ENV 工具对 BSP 进行配置,步骤如下: + +1. 在 BSP 下打开 env 工具。 + +2. 输入 `menuconfig` 命令配置工程,配置好之后保存退出。 + +3. 输入 `pkgs --update` 命令更新软件包。 + +4. 输入 `scons --target=mdk4/mdk5/iar` 命令重新生成工程。 + +本章节更多详细的介绍请参考 [STM32 系列 BSP 外设驱动使用教程](../docs/STM32 系列 BSP 外设驱动使用教程. md)。 + +## 注意事项 + +暂无 + +## 联系人信息 + +维护人: + +- [greedyhao](https://github.com/greedyhao) ,邮箱: diff --git a/bsp/stm32/stm32f411-mini-system/SConscript b/bsp/stm32/stm32f411-mini-system/SConscript new file mode 100644 index 0000000000..20f7689c53 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/SConscript @@ -0,0 +1,15 @@ +# for module compiling +import os +Import('RTT_ROOT') +from building import * + +cwd = GetCurrentDir() +objs = [] +list = os.listdir(cwd) + +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + objs = objs + SConscript(os.path.join(d, 'SConscript')) + +Return('objs') diff --git a/bsp/stm32/stm32f411-mini-system/SConstruct b/bsp/stm32/stm32f411-mini-system/SConstruct new file mode 100644 index 0000000000..1684dc06b0 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/SConstruct @@ -0,0 +1,60 @@ +import os +import sys +import rtconfig + +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') +else: + RTT_ROOT = os.path.normpath(os.getcwd() + '/../../..') + +sys.path = sys.path + [os.path.join(RTT_ROOT, 'tools')] +try: + from building import * +except: + print('Cannot found RT-Thread root directory, please check RTT_ROOT') + print(RTT_ROOT) + exit(-1) + +TARGET = 'rtthread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CCFLAGS = rtconfig.CFLAGS, + AR = rtconfig.AR, ARFLAGS = '-rc', + CXX = rtconfig.CXX, CXXFLAGS = rtconfig.CXXFLAGS, + LINK = rtconfig.LINK, LINKFLAGS = rtconfig.LFLAGS) +env.PrependENVPath('PATH', rtconfig.EXEC_PATH) + +if rtconfig.PLATFORM == 'iar': + env.Replace(CCCOM = ['$CC $CCFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rtthread.map') + +Export('RTT_ROOT') +Export('rtconfig') + +SDK_ROOT = os.path.abspath('./') + +if os.path.exists(SDK_ROOT + '/libraries'): + libraries_path_prefix = SDK_ROOT + '/libraries' +else: + libraries_path_prefix = os.path.dirname(SDK_ROOT) + '/libraries' + +SDK_LIB = libraries_path_prefix +Export('SDK_LIB') + +# prepare building environment +objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) + +stm32_library = 'STM32F4xx_HAL' +rtconfig.BSP_LIBRARY_TYPE = stm32_library + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, stm32_library, 'SConscript'))) + +# include drivers +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'HAL_Drivers', 'SConscript'))) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/stm32/stm32f411-mini-system/applications/SConscript b/bsp/stm32/stm32f411-mini-system/applications/SConscript new file mode 100644 index 0000000000..6f66f7ab73 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/applications/SConscript @@ -0,0 +1,12 @@ +import rtconfig +from building import * + +cwd = GetCurrentDir() +CPPPATH = [cwd, str(Dir('#'))] +src = Split(""" +main.c +""") + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/stm32/stm32f411-mini-system/applications/main.c b/bsp/stm32/stm32f411-mini-system/applications/main.c new file mode 100644 index 0000000000..729ae11bd6 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/applications/main.c @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include +#include +#include + +/* defined the LED0 pin: PC13 */ +#define LED0_PIN GET_PIN(C, 13) + +int main(void) +{ + int count = 1; + /* set LED0 pin mode to output */ + rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT); + + while (count++) + { + rt_pin_write(LED0_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED0_PIN, PIN_LOW); + rt_thread_mdelay(500); + } + + return RT_EOK; +} diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject new file mode 100644 index 0000000000..8fedc8ffd7 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject @@ -0,0 +1,14 @@ +[PreviousGenFiles] +HeaderPath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc +HeaderFiles=stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h; +SourcePath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src +SourceFiles=stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; + +[PreviousLibFiles] +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; + +[PreviousUsedKeilFiles] +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; +HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; +CDefines=USE_HAL_DRIVER;STM32F411xE;USE_HAL_DRIVER;USE_HAL_DRIVER; + diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc new file mode 100644 index 0000000000..9404a082ed --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc @@ -0,0 +1,156 @@ +#MicroXplorer Configuration settings - do not modify +File.Version=6 +KeepUserPlacement=false +Mcu.Family=STM32F4 +Mcu.IP0=NVIC +Mcu.IP1=RCC +Mcu.IP2=RTC +Mcu.IP3=SPI1 +Mcu.IP4=SYS +Mcu.IP5=TIM10 +Mcu.IP6=TIM11 +Mcu.IP7=USART1 +Mcu.IPNb=8 +Mcu.Name=STM32F411C(C-E)Ux +Mcu.Package=UFQFPN48 +Mcu.Pin0=PC13-ANTI_TAMP +Mcu.Pin1=PC14-OSC32_IN +Mcu.Pin10=PA13 +Mcu.Pin11=PA14 +Mcu.Pin12=VP_RTC_VS_RTC_Activate +Mcu.Pin13=VP_SYS_VS_Systick +Mcu.Pin14=VP_TIM10_VS_ClockSourceINT +Mcu.Pin15=VP_TIM11_VS_ClockSourceINT +Mcu.Pin2=PC15-OSC32_OUT +Mcu.Pin3=PH0 - OSC_IN +Mcu.Pin4=PH1 - OSC_OUT +Mcu.Pin5=PA5 +Mcu.Pin6=PA6 +Mcu.Pin7=PA7 +Mcu.Pin8=PA9 +Mcu.Pin9=PA10 +Mcu.PinsNb=16 +Mcu.ThirdPartyNb=0 +Mcu.UserConstants= +Mcu.UserName=STM32F411CEUx +MxCube.Version=5.4.0 +MxDb.Version=DB.5.0.40 +NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.ForceEnableDMAVector=true +NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 +NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false +NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true +NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false +PA10.Mode=Asynchronous +PA10.Signal=USART1_RX +PA13.Mode=Serial_Wire +PA13.Signal=SYS_JTMS-SWDIO +PA14.Mode=Serial_Wire +PA14.Signal=SYS_JTCK-SWCLK +PA5.Mode=Full_Duplex_Master +PA5.Signal=SPI1_SCK +PA6.Mode=Full_Duplex_Master +PA6.Signal=SPI1_MISO +PA7.Mode=Full_Duplex_Master +PA7.Signal=SPI1_MOSI +PA9.Mode=Asynchronous +PA9.Signal=USART1_TX +PC13-ANTI_TAMP.Locked=true +PC13-ANTI_TAMP.Signal=GPIO_Output +PC14-OSC32_IN.Mode=LSE-External-Oscillator +PC14-OSC32_IN.Signal=RCC_OSC32_IN +PC15-OSC32_OUT.Mode=LSE-External-Oscillator +PC15-OSC32_OUT.Signal=RCC_OSC32_OUT +PCC.Checker=false +PCC.Line=STM32F411 +PCC.MCU=STM32F411C(C-E)Ux +PCC.PartNumber=STM32F411CEUx +PCC.Seq0=0 +PCC.Series=STM32F4 +PCC.Temperature=25 +PCC.Vdd=null +PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator +PH0\ -\ OSC_IN.Signal=RCC_OSC_IN +PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator +PH1\ -\ OSC_OUT.Signal=RCC_OSC_OUT +PinOutPanel.RotationAngle=0 +ProjectManager.AskForMigrate=true +ProjectManager.BackupPrevious=false +ProjectManager.CompilerOptimize=6 +ProjectManager.ComputerToolchain=false +ProjectManager.CoupleFile=false +ProjectManager.CustomerFirmwarePackage= +ProjectManager.DefaultFWLocation=true +ProjectManager.DeletePrevious=true +ProjectManager.DeviceId=STM32F411CEUx +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.24.2 +ProjectManager.FreePins=false +ProjectManager.HalAssertFull=false +ProjectManager.HeapSize=0x200 +ProjectManager.KeepUserCode=true +ProjectManager.LastFirmware=true +ProjectManager.LibraryCopy=0 +ProjectManager.MainLocation=Src +ProjectManager.NoMain=false +ProjectManager.PreviousToolchain= +ProjectManager.ProjectBuild=false +ProjectManager.ProjectFileName=CubeMX_Config.ioc +ProjectManager.ProjectName=CubeMX_Config +ProjectManager.StackSize=0x400 +ProjectManager.TargetToolchain=MDK-ARM V5 +ProjectManager.ToolChainLocation= +ProjectManager.UnderRoot=false +ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true +RCC.48MHZClocksFreq_Value=50000000 +RCC.AHBFreq_Value=100000000 +RCC.APB1CLKDivider=RCC_HCLK_DIV2 +RCC.APB1Freq_Value=50000000 +RCC.APB1TimFreq_Value=100000000 +RCC.APB2Freq_Value=100000000 +RCC.APB2TimFreq_Value=100000000 +RCC.CortexFreq_Value=100000000 +RCC.EthernetFreq_Value=100000000 +RCC.FCLKCortexFreq_Value=100000000 +RCC.FamilyName=M +RCC.HCLKFreq_Value=100000000 +RCC.HSE_VALUE=25000000 +RCC.HSI_VALUE=16000000 +RCC.I2SClocksFreq_Value=96000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,RCC_RTC_Clock_Source,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.LSI_VALUE=32000 +RCC.PLLCLKFreq_Value=100000000 +RCC.PLLM=8 +RCC.PLLN=100 +RCC.PLLQCLKFreq_Value=50000000 +RCC.RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE +RCC.RTCFreq_Value=32768 +RCC.RTCHSEDivFreq_Value=12500000 +RCC.SYSCLKFreq_VALUE=100000000 +RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK +RCC.VCOI2SOutputFreq_Value=192000000 +RCC.VCOInputFreq_Value=2000000 +RCC.VCOInputMFreq_Value=1000000 +RCC.VCOOutputFreq_Value=200000000 +RCC.VcooutputI2S=96000000 +SPI1.CLKPolarity=SPI_POLARITY_LOW +SPI1.CalculateBaudRate=50.0 MBits/s +SPI1.Direction=SPI_DIRECTION_2LINES +SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,CLKPolarity +SPI1.Mode=SPI_MODE_MASTER +SPI1.VirtualType=VM_MASTER +USART1.IPParameters=VirtualMode +USART1.VirtualMode=VM_ASYNC +VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled +VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate +VP_SYS_VS_Systick.Mode=SysTick +VP_SYS_VS_Systick.Signal=SYS_VS_Systick +VP_TIM10_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM10_VS_ClockSourceINT.Signal=TIM10_VS_ClockSourceINT +VP_TIM11_VS_ClockSourceINT.Mode=Enable_Timer +VP_TIM11_VS_ClockSourceINT.Signal=TIM11_VS_ClockSourceINT +board=custom diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h new file mode 100644 index 0000000000..13e8db7d8d --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h @@ -0,0 +1,71 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.h + * @brief : Header for main.c file. + * This file contains the common defines of the application. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __MAIN_H +#define __MAIN_H + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "stm32f4xx_hal.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void Error_Handler(void); + +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +/* Private defines -----------------------------------------------------------*/ +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +#ifdef __cplusplus +} +#endif + +#endif /* __MAIN_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h new file mode 100644 index 0000000000..5a9e6396cb --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -0,0 +1,443 @@ +/** + ****************************************************************************** + * @file stm32f4xx_hal_conf_template.h + * @author MCD Application Team + * @brief HAL configuration template file. + * This file should be copied to the application folder and renamed + * to stm32f4xx_hal_conf.h. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2017 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_HAL_CONF_H +#define __STM32F4xx_HAL_CONF_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Exported types ------------------------------------------------------------*/ +/* Exported constants --------------------------------------------------------*/ + +/* ########################## Module Selection ############################## */ +/** + * @brief This is the list of modules to be used in the HAL driver + */ +#define HAL_MODULE_ENABLED + + /* #define HAL_ADC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_CAN_MODULE_ENABLED */ +/* #define HAL_CRC_MODULE_ENABLED */ +/* #define HAL_CRYP_MODULE_ENABLED */ +/* #define HAL_DAC_MODULE_ENABLED */ +/* #define HAL_DCMI_MODULE_ENABLED */ +/* #define HAL_DMA2D_MODULE_ENABLED */ +/* #define HAL_ETH_MODULE_ENABLED */ +/* #define HAL_NAND_MODULE_ENABLED */ +/* #define HAL_NOR_MODULE_ENABLED */ +/* #define HAL_PCCARD_MODULE_ENABLED */ +/* #define HAL_SRAM_MODULE_ENABLED */ +/* #define HAL_SDRAM_MODULE_ENABLED */ +/* #define HAL_HASH_MODULE_ENABLED */ +/* #define HAL_I2C_MODULE_ENABLED */ +/* #define HAL_I2S_MODULE_ENABLED */ +/* #define HAL_IWDG_MODULE_ENABLED */ +/* #define HAL_LTDC_MODULE_ENABLED */ +/* #define HAL_RNG_MODULE_ENABLED */ +#define HAL_RTC_MODULE_ENABLED +/* #define HAL_SAI_MODULE_ENABLED */ +/* #define HAL_SD_MODULE_ENABLED */ +/* #define HAL_MMC_MODULE_ENABLED */ +#define HAL_SPI_MODULE_ENABLED +#define HAL_TIM_MODULE_ENABLED +#define HAL_UART_MODULE_ENABLED +/* #define HAL_USART_MODULE_ENABLED */ +/* #define HAL_IRDA_MODULE_ENABLED */ +/* #define HAL_SMARTCARD_MODULE_ENABLED */ +/* #define HAL_SMBUS_MODULE_ENABLED */ +/* #define HAL_WWDG_MODULE_ENABLED */ +/* #define HAL_PCD_MODULE_ENABLED */ +/* #define HAL_HCD_MODULE_ENABLED */ +/* #define HAL_DSI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_QSPI_MODULE_ENABLED */ +/* #define HAL_CEC_MODULE_ENABLED */ +/* #define HAL_FMPI2C_MODULE_ENABLED */ +/* #define HAL_SPDIFRX_MODULE_ENABLED */ +/* #define HAL_DFSDM_MODULE_ENABLED */ +/* #define HAL_LPTIM_MODULE_ENABLED */ +#define HAL_GPIO_MODULE_ENABLED +#define HAL_EXTI_MODULE_ENABLED +#define HAL_DMA_MODULE_ENABLED +#define HAL_RCC_MODULE_ENABLED +#define HAL_FLASH_MODULE_ENABLED +#define HAL_PWR_MODULE_ENABLED +#define HAL_CORTEX_MODULE_ENABLED + +/* ########################## HSE/HSI Values adaptation ##################### */ +/** + * @brief Adjust the value of External High Speed oscillator (HSE) used in your application. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSE is used as system clock source, directly or through the PLL). + */ +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)25000000U) /*!< Value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSE_STARTUP_TIMEOUT) + #define HSE_STARTUP_TIMEOUT ((uint32_t)100U) /*!< Time out for HSE start up, in ms */ +#endif /* HSE_STARTUP_TIMEOUT */ + +/** + * @brief Internal High Speed oscillator (HSI) value. + * This value is used by the RCC HAL module to compute the system frequency + * (when HSI is used as system clock source, directly or through the PLL). + */ +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000U) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @brief Internal Low Speed oscillator (LSI) value. + */ +#if !defined (LSI_VALUE) + #define LSI_VALUE ((uint32_t)32000U) /*!< LSI Typical Value in Hz*/ +#endif /* LSI_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz + The real value may vary depending on the variations + in voltage and temperature.*/ +/** + * @brief External Low Speed oscillator (LSE) value. + */ +#if !defined (LSE_VALUE) + #define LSE_VALUE ((uint32_t)32768U) /*!< Value of the External Low Speed oscillator in Hz */ +#endif /* LSE_VALUE */ + +#if !defined (LSE_STARTUP_TIMEOUT) + #define LSE_STARTUP_TIMEOUT ((uint32_t)5000U) /*!< Time out for LSE start up, in ms */ +#endif /* LSE_STARTUP_TIMEOUT */ + +/** + * @brief External clock source for I2S peripheral + * This value is used by the I2S HAL module to compute the I2S clock source + * frequency, this source is inserted directly through I2S_CKIN pad. + */ +#if !defined (EXTERNAL_CLOCK_VALUE) + #define EXTERNAL_CLOCK_VALUE ((uint32_t)12288000U) /*!< Value of the External audio frequency in Hz*/ +#endif /* EXTERNAL_CLOCK_VALUE */ + +/* Tip: To avoid modifying this file each time you need to use different HSE, + === you can define the HSE value in your toolchain compiler preprocessor. */ + +/* ########################### System Configuration ######################### */ +/** + * @brief This is the HAL system configuration section + */ +#define VDD_VALUE ((uint32_t)3300U) /*!< Value of VDD in mv */ +#define TICK_INT_PRIORITY ((uint32_t)0U) /*!< tick interrupt priority */ +#define USE_RTOS 0U +#define PREFETCH_ENABLE 1U +#define INSTRUCTION_CACHE_ENABLE 1U +#define DATA_CACHE_ENABLE 1U + +/* ########################## Assert Selection ############################## */ +/** + * @brief Uncomment the line below to expanse the "assert_param" macro in the + * HAL drivers code + */ +/* #define USE_FULL_ASSERT 1U */ + +/* ################## Ethernet peripheral configuration ##################### */ + +/* Section 1 : Ethernet peripheral configuration */ + +/* MAC ADDRESS: MAC_ADDR0:MAC_ADDR1:MAC_ADDR2:MAC_ADDR3:MAC_ADDR4:MAC_ADDR5 */ +#define MAC_ADDR0 2U +#define MAC_ADDR1 0U +#define MAC_ADDR2 0U +#define MAC_ADDR3 0U +#define MAC_ADDR4 0U +#define MAC_ADDR5 0U + +/* Definition of the Ethernet driver buffers size and count */ +#define ETH_RX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for receive */ +#define ETH_TX_BUF_SIZE ETH_MAX_PACKET_SIZE /* buffer size for transmit */ +#define ETH_RXBUFNB ((uint32_t)4U) /* 4 Rx buffers of size ETH_RX_BUF_SIZE */ +#define ETH_TXBUFNB ((uint32_t)4U) /* 4 Tx buffers of size ETH_TX_BUF_SIZE */ + +/* Section 2: PHY configuration section */ + +/* DP83848_PHY_ADDRESS Address*/ +#define DP83848_PHY_ADDRESS 0x01U +/* PHY Reset delay these values are based on a 1 ms Systick interrupt*/ +#define PHY_RESET_DELAY ((uint32_t)0x000000FFU) +/* PHY Configuration delay */ +#define PHY_CONFIG_DELAY ((uint32_t)0x00000FFFU) + +#define PHY_READ_TO ((uint32_t)0x0000FFFFU) +#define PHY_WRITE_TO ((uint32_t)0x0000FFFFU) + +/* Section 3: Common PHY Registers */ + +#define PHY_BCR ((uint16_t)0x0000U) /*!< Transceiver Basic Control Register */ +#define PHY_BSR ((uint16_t)0x0001U) /*!< Transceiver Basic Status Register */ + +#define PHY_RESET ((uint16_t)0x8000U) /*!< PHY Reset */ +#define PHY_LOOPBACK ((uint16_t)0x4000U) /*!< Select loop-back mode */ +#define PHY_FULLDUPLEX_100M ((uint16_t)0x2100U) /*!< Set the full-duplex mode at 100 Mb/s */ +#define PHY_HALFDUPLEX_100M ((uint16_t)0x2000U) /*!< Set the half-duplex mode at 100 Mb/s */ +#define PHY_FULLDUPLEX_10M ((uint16_t)0x0100U) /*!< Set the full-duplex mode at 10 Mb/s */ +#define PHY_HALFDUPLEX_10M ((uint16_t)0x0000U) /*!< Set the half-duplex mode at 10 Mb/s */ +#define PHY_AUTONEGOTIATION ((uint16_t)0x1000U) /*!< Enable auto-negotiation function */ +#define PHY_RESTART_AUTONEGOTIATION ((uint16_t)0x0200U) /*!< Restart auto-negotiation function */ +#define PHY_POWERDOWN ((uint16_t)0x0800U) /*!< Select the power down mode */ +#define PHY_ISOLATE ((uint16_t)0x0400U) /*!< Isolate PHY from MII */ + +#define PHY_AUTONEGO_COMPLETE ((uint16_t)0x0020U) /*!< Auto-Negotiation process completed */ +#define PHY_LINKED_STATUS ((uint16_t)0x0004U) /*!< Valid link established */ +#define PHY_JABBER_DETECTION ((uint16_t)0x0002U) /*!< Jabber condition detected */ + +/* Section 4: Extended PHY Registers */ +#define PHY_SR ((uint16_t)0x10U) /*!< PHY status register Offset */ + +#define PHY_SPEED_STATUS ((uint16_t)0x0002U) /*!< PHY Speed mask */ +#define PHY_DUPLEX_STATUS ((uint16_t)0x0004U) /*!< PHY Duplex mask */ + +/* ################## SPI peripheral configuration ########################## */ + +/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver +* Activated: CRC code is present inside driver +* Deactivated: CRC code cleaned from driver +*/ + +#define USE_SPI_CRC 0U + +/* Includes ------------------------------------------------------------------*/ +/** + * @brief Include module's header file + */ + +#ifdef HAL_RCC_MODULE_ENABLED + #include "stm32f4xx_hal_rcc.h" +#endif /* HAL_RCC_MODULE_ENABLED */ + +#ifdef HAL_EXTI_MODULE_ENABLED + #include "stm32f4xx_hal_exti.h" +#endif /* HAL_EXTI_MODULE_ENABLED */ + +#ifdef HAL_GPIO_MODULE_ENABLED + #include "stm32f4xx_hal_gpio.h" +#endif /* HAL_GPIO_MODULE_ENABLED */ + +#ifdef HAL_DMA_MODULE_ENABLED + #include "stm32f4xx_hal_dma.h" +#endif /* HAL_DMA_MODULE_ENABLED */ + +#ifdef HAL_CORTEX_MODULE_ENABLED + #include "stm32f4xx_hal_cortex.h" +#endif /* HAL_CORTEX_MODULE_ENABLED */ + +#ifdef HAL_ADC_MODULE_ENABLED + #include "stm32f4xx_hal_adc.h" +#endif /* HAL_ADC_MODULE_ENABLED */ + +#ifdef HAL_CAN_MODULE_ENABLED + #include "stm32f4xx_hal_can.h" +#endif /* HAL_CAN_MODULE_ENABLED */ + +#ifdef HAL_CRC_MODULE_ENABLED + #include "stm32f4xx_hal_crc.h" +#endif /* HAL_CRC_MODULE_ENABLED */ + +#ifdef HAL_CRYP_MODULE_ENABLED + #include "stm32f4xx_hal_cryp.h" +#endif /* HAL_CRYP_MODULE_ENABLED */ + +#ifdef HAL_SMBUS_MODULE_ENABLED +#include "stm32f4xx_hal_smbus.h" +#endif /* HAL_SMBUS_MODULE_ENABLED */ + +#ifdef HAL_DMA2D_MODULE_ENABLED + #include "stm32f4xx_hal_dma2d.h" +#endif /* HAL_DMA2D_MODULE_ENABLED */ + +#ifdef HAL_DAC_MODULE_ENABLED + #include "stm32f4xx_hal_dac.h" +#endif /* HAL_DAC_MODULE_ENABLED */ + +#ifdef HAL_DCMI_MODULE_ENABLED + #include "stm32f4xx_hal_dcmi.h" +#endif /* HAL_DCMI_MODULE_ENABLED */ + +#ifdef HAL_ETH_MODULE_ENABLED + #include "stm32f4xx_hal_eth.h" +#endif /* HAL_ETH_MODULE_ENABLED */ + +#ifdef HAL_FLASH_MODULE_ENABLED + #include "stm32f4xx_hal_flash.h" +#endif /* HAL_FLASH_MODULE_ENABLED */ + +#ifdef HAL_SRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sram.h" +#endif /* HAL_SRAM_MODULE_ENABLED */ + +#ifdef HAL_NOR_MODULE_ENABLED + #include "stm32f4xx_hal_nor.h" +#endif /* HAL_NOR_MODULE_ENABLED */ + +#ifdef HAL_NAND_MODULE_ENABLED + #include "stm32f4xx_hal_nand.h" +#endif /* HAL_NAND_MODULE_ENABLED */ + +#ifdef HAL_PCCARD_MODULE_ENABLED + #include "stm32f4xx_hal_pccard.h" +#endif /* HAL_PCCARD_MODULE_ENABLED */ + +#ifdef HAL_SDRAM_MODULE_ENABLED + #include "stm32f4xx_hal_sdram.h" +#endif /* HAL_SDRAM_MODULE_ENABLED */ + +#ifdef HAL_HASH_MODULE_ENABLED + #include "stm32f4xx_hal_hash.h" +#endif /* HAL_HASH_MODULE_ENABLED */ + +#ifdef HAL_I2C_MODULE_ENABLED + #include "stm32f4xx_hal_i2c.h" +#endif /* HAL_I2C_MODULE_ENABLED */ + +#ifdef HAL_I2S_MODULE_ENABLED + #include "stm32f4xx_hal_i2s.h" +#endif /* HAL_I2S_MODULE_ENABLED */ + +#ifdef HAL_IWDG_MODULE_ENABLED + #include "stm32f4xx_hal_iwdg.h" +#endif /* HAL_IWDG_MODULE_ENABLED */ + +#ifdef HAL_LTDC_MODULE_ENABLED + #include "stm32f4xx_hal_ltdc.h" +#endif /* HAL_LTDC_MODULE_ENABLED */ + +#ifdef HAL_PWR_MODULE_ENABLED + #include "stm32f4xx_hal_pwr.h" +#endif /* HAL_PWR_MODULE_ENABLED */ + +#ifdef HAL_RNG_MODULE_ENABLED + #include "stm32f4xx_hal_rng.h" +#endif /* HAL_RNG_MODULE_ENABLED */ + +#ifdef HAL_RTC_MODULE_ENABLED + #include "stm32f4xx_hal_rtc.h" +#endif /* HAL_RTC_MODULE_ENABLED */ + +#ifdef HAL_SAI_MODULE_ENABLED + #include "stm32f4xx_hal_sai.h" +#endif /* HAL_SAI_MODULE_ENABLED */ + +#ifdef HAL_SD_MODULE_ENABLED + #include "stm32f4xx_hal_sd.h" +#endif /* HAL_SD_MODULE_ENABLED */ + +#ifdef HAL_MMC_MODULE_ENABLED + #include "stm32f4xx_hal_mmc.h" +#endif /* HAL_MMC_MODULE_ENABLED */ + +#ifdef HAL_SPI_MODULE_ENABLED + #include "stm32f4xx_hal_spi.h" +#endif /* HAL_SPI_MODULE_ENABLED */ + +#ifdef HAL_TIM_MODULE_ENABLED + #include "stm32f4xx_hal_tim.h" +#endif /* HAL_TIM_MODULE_ENABLED */ + +#ifdef HAL_UART_MODULE_ENABLED + #include "stm32f4xx_hal_uart.h" +#endif /* HAL_UART_MODULE_ENABLED */ + +#ifdef HAL_USART_MODULE_ENABLED + #include "stm32f4xx_hal_usart.h" +#endif /* HAL_USART_MODULE_ENABLED */ + +#ifdef HAL_IRDA_MODULE_ENABLED + #include "stm32f4xx_hal_irda.h" +#endif /* HAL_IRDA_MODULE_ENABLED */ + +#ifdef HAL_SMARTCARD_MODULE_ENABLED + #include "stm32f4xx_hal_smartcard.h" +#endif /* HAL_SMARTCARD_MODULE_ENABLED */ + +#ifdef HAL_WWDG_MODULE_ENABLED + #include "stm32f4xx_hal_wwdg.h" +#endif /* HAL_WWDG_MODULE_ENABLED */ + +#ifdef HAL_PCD_MODULE_ENABLED + #include "stm32f4xx_hal_pcd.h" +#endif /* HAL_PCD_MODULE_ENABLED */ + +#ifdef HAL_HCD_MODULE_ENABLED + #include "stm32f4xx_hal_hcd.h" +#endif /* HAL_HCD_MODULE_ENABLED */ + +#ifdef HAL_DSI_MODULE_ENABLED + #include "stm32f4xx_hal_dsi.h" +#endif /* HAL_DSI_MODULE_ENABLED */ + +#ifdef HAL_QSPI_MODULE_ENABLED + #include "stm32f4xx_hal_qspi.h" +#endif /* HAL_QSPI_MODULE_ENABLED */ + +#ifdef HAL_CEC_MODULE_ENABLED + #include "stm32f4xx_hal_cec.h" +#endif /* HAL_CEC_MODULE_ENABLED */ + +#ifdef HAL_FMPI2C_MODULE_ENABLED + #include "stm32f4xx_hal_fmpi2c.h" +#endif /* HAL_FMPI2C_MODULE_ENABLED */ + +#ifdef HAL_SPDIFRX_MODULE_ENABLED + #include "stm32f4xx_hal_spdifrx.h" +#endif /* HAL_SPDIFRX_MODULE_ENABLED */ + +#ifdef HAL_DFSDM_MODULE_ENABLED + #include "stm32f4xx_hal_dfsdm.h" +#endif /* HAL_DFSDM_MODULE_ENABLED */ + +#ifdef HAL_LPTIM_MODULE_ENABLED + #include "stm32f4xx_hal_lptim.h" +#endif /* HAL_LPTIM_MODULE_ENABLED */ + +/* Exported macro ------------------------------------------------------------*/ +#ifdef USE_FULL_ASSERT +/** + * @brief The assert_param macro is used for function's parameters check. + * @param expr: If expr is false, it calls assert_failed function + * which reports the name of the source file and the source + * line number of the call that failed. + * If expr is true, it returns no value. + * @retval None + */ + #define assert_param(expr) ((expr) ? (void)0U : assert_failed((uint8_t *)__FILE__, __LINE__)) +/* Exported functions ------------------------------------------------------- */ + void assert_failed(uint8_t* file, uint32_t line); +#else + #define assert_param(expr) ((void)0U) +#endif /* USE_FULL_ASSERT */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_HAL_CONF_H */ + + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h new file mode 100644 index 0000000000..ab2ae38f21 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h @@ -0,0 +1,69 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.h + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __STM32F4xx_IT_H +#define __STM32F4xx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Exported types ------------------------------------------------------------*/ +/* USER CODE BEGIN ET */ + +/* USER CODE END ET */ + +/* Exported constants --------------------------------------------------------*/ +/* USER CODE BEGIN EC */ + +/* USER CODE END EC */ + +/* Exported macro ------------------------------------------------------------*/ +/* USER CODE BEGIN EM */ + +/* USER CODE END EM */ + +/* Exported functions prototypes ---------------------------------------------*/ +void NMI_Handler(void); +void HardFault_Handler(void); +void MemManage_Handler(void); +void BusFault_Handler(void); +void UsageFault_Handler(void); +void SVC_Handler(void); +void DebugMon_Handler(void); +void PendSV_Handler(void); +void SysTick_Handler(void); +/* USER CODE BEGIN EFP */ + +/* USER CODE END EFP */ + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32F4xx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c new file mode 100644 index 0000000000..27d1514281 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c @@ -0,0 +1,400 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file : main.c + * @brief : Main program body + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN PTD */ + +/* USER CODE END PTD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +RTC_HandleTypeDef hrtc; + +SPI_HandleTypeDef hspi1; + +TIM_HandleTypeDef htim10; +TIM_HandleTypeDef htim11; + +UART_HandleTypeDef huart1; + +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +void SystemClock_Config(void); +static void MX_GPIO_Init(void); +static void MX_USART1_UART_Init(void); +static void MX_SPI1_Init(void); +static void MX_RTC_Init(void); +static void MX_TIM10_Init(void); +static void MX_TIM11_Init(void); +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/** + * @brief The application entry point. + * @retval int + */ +int main(void) +{ + /* USER CODE BEGIN 1 */ + + /* USER CODE END 1 */ + + + /* MCU Configuration--------------------------------------------------------*/ + + /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ + HAL_Init(); + + /* USER CODE BEGIN Init */ + + /* USER CODE END Init */ + + /* Configure the system clock */ + SystemClock_Config(); + + /* USER CODE BEGIN SysInit */ + + /* USER CODE END SysInit */ + + /* Initialize all configured peripherals */ + MX_GPIO_Init(); + MX_USART1_UART_Init(); + MX_SPI1_Init(); + MX_RTC_Init(); + MX_TIM10_Init(); + MX_TIM11_Init(); + /* USER CODE BEGIN 2 */ + + /* USER CODE END 2 */ + + /* Infinite loop */ + /* USER CODE BEGIN WHILE */ + while (1) + { + /* USER CODE END WHILE */ + + /* USER CODE BEGIN 3 */ + } + /* USER CODE END 3 */ +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.LSEState = RCC_LSE_ON; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 100; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 4; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief RTC Initialization Function + * @param None + * @retval None + */ +static void MX_RTC_Init(void) +{ + + /* USER CODE BEGIN RTC_Init 0 */ + + /* USER CODE END RTC_Init 0 */ + + /* USER CODE BEGIN RTC_Init 1 */ + + /* USER CODE END RTC_Init 1 */ + /** Initialize RTC Only + */ + hrtc.Instance = RTC; + hrtc.Init.HourFormat = RTC_HOURFORMAT_24; + hrtc.Init.AsynchPrediv = 127; + hrtc.Init.SynchPrediv = 255; + hrtc.Init.OutPut = RTC_OUTPUT_DISABLE; + hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH; + hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN; + if (HAL_RTC_Init(&hrtc) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN RTC_Init 2 */ + + /* USER CODE END RTC_Init 2 */ + +} + +/** + * @brief SPI1 Initialization Function + * @param None + * @retval None + */ +static void MX_SPI1_Init(void) +{ + + /* USER CODE BEGIN SPI1_Init 0 */ + + /* USER CODE END SPI1_Init 0 */ + + /* USER CODE BEGIN SPI1_Init 1 */ + + /* USER CODE END SPI1_Init 1 */ + /* SPI1 parameter configuration*/ + hspi1.Instance = SPI1; + hspi1.Init.Mode = SPI_MODE_MASTER; + hspi1.Init.Direction = SPI_DIRECTION_2LINES; + hspi1.Init.DataSize = SPI_DATASIZE_8BIT; + hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; + hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; + hspi1.Init.NSS = SPI_NSS_SOFT; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; + hspi1.Init.TIMode = SPI_TIMODE_DISABLE; + hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; + hspi1.Init.CRCPolynomial = 10; + if (HAL_SPI_Init(&hspi1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN SPI1_Init 2 */ + + /* USER CODE END SPI1_Init 2 */ + +} + +/** + * @brief TIM10 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM10_Init(void) +{ + + /* USER CODE BEGIN TIM10_Init 0 */ + + /* USER CODE END TIM10_Init 0 */ + + /* USER CODE BEGIN TIM10_Init 1 */ + + /* USER CODE END TIM10_Init 1 */ + htim10.Instance = TIM10; + htim10.Init.Prescaler = 0; + htim10.Init.CounterMode = TIM_COUNTERMODE_UP; + htim10.Init.Period = 0; + htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim10.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim10) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM10_Init 2 */ + + /* USER CODE END TIM10_Init 2 */ + +} + +/** + * @brief TIM11 Initialization Function + * @param None + * @retval None + */ +static void MX_TIM11_Init(void) +{ + + /* USER CODE BEGIN TIM11_Init 0 */ + + /* USER CODE END TIM11_Init 0 */ + + /* USER CODE BEGIN TIM11_Init 1 */ + + /* USER CODE END TIM11_Init 1 */ + htim11.Instance = TIM11; + htim11.Init.Prescaler = 0; + htim11.Init.CounterMode = TIM_COUNTERMODE_UP; + htim11.Init.Period = 0; + htim11.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; + htim11.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; + if (HAL_TIM_Base_Init(&htim11) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM11_Init 2 */ + + /* USER CODE END TIM11_Init 2 */ + +} + +/** + * @brief USART1 Initialization Function + * @param None + * @retval None + */ +static void MX_USART1_UART_Init(void) +{ + + /* USER CODE BEGIN USART1_Init 0 */ + + /* USER CODE END USART1_Init 0 */ + + /* USER CODE BEGIN USART1_Init 1 */ + + /* USER CODE END USART1_Init 1 */ + huart1.Instance = USART1; + huart1.Init.BaudRate = 115200; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart1) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USART1_Init 2 */ + + /* USER CODE END USART1_Init 2 */ + +} + +/** + * @brief GPIO Initialization Function + * @param None + * @retval None + */ +static void MX_GPIO_Init(void) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + /* GPIO Ports Clock Enable */ + __HAL_RCC_GPIOC_CLK_ENABLE(); + __HAL_RCC_GPIOH_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + + /*Configure GPIO pin Output Level */ + HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_RESET); + + /*Configure GPIO pin : PC13 */ + GPIO_InitStruct.Pin = GPIO_PIN_13; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + +} + +/* USER CODE BEGIN 4 */ + +/* USER CODE END 4 */ + +/** + * @brief This function is executed in case of error occurrence. + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler_Debug */ + /* User can add his own implementation to report the HAL error return state */ + + /* USER CODE END Error_Handler_Debug */ +} + +#ifdef USE_FULL_ASSERT +/** + * @brief Reports the name of the source file and the source line number + * where the assert_param error has occurred. + * @param file: pointer to the source file name + * @param line: assert_param error line source number + * @retval None + */ +void assert_failed(uint8_t *file, uint32_t line) +{ + /* USER CODE BEGIN 6 */ + /* User can add his own implementation to report the file name and line number, + tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ + /* USER CODE END 6 */ +} +#endif /* USE_FULL_ASSERT */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c new file mode 100644 index 0000000000..747ab74f59 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c @@ -0,0 +1,326 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * File Name : stm32f4xx_hal_msp.c + * Description : This file provides code for the MSP Initialization + * and de-Initialization codes. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN Define */ + +/* USER CODE END Define */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN Macro */ + +/* USER CODE END Macro */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* External functions --------------------------------------------------------*/ +/* USER CODE BEGIN ExternalFunctions */ + +/* USER CODE END ExternalFunctions */ + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ +/** + * Initializes the Global MSP. + */ +void HAL_MspInit(void) +{ + /* USER CODE BEGIN MspInit 0 */ + + /* USER CODE END MspInit 0 */ + + __HAL_RCC_SYSCFG_CLK_ENABLE(); + __HAL_RCC_PWR_CLK_ENABLE(); + + /* System interrupt init*/ + + /* USER CODE BEGIN MspInit 1 */ + + /* USER CODE END MspInit 1 */ +} + +/** +* @brief RTC MSP Initialization +* This function configures the hardware resources used in this example +* @param hrtc: RTC handle pointer +* @retval None +*/ +void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc) +{ + if(hrtc->Instance==RTC) + { + /* USER CODE BEGIN RTC_MspInit 0 */ + + /* USER CODE END RTC_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_RTC_ENABLE(); + /* USER CODE BEGIN RTC_MspInit 1 */ + + /* USER CODE END RTC_MspInit 1 */ + } + +} + +/** +* @brief RTC MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hrtc: RTC handle pointer +* @retval None +*/ +void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc) +{ + if(hrtc->Instance==RTC) + { + /* USER CODE BEGIN RTC_MspDeInit 0 */ + + /* USER CODE END RTC_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_RTC_DISABLE(); + /* USER CODE BEGIN RTC_MspDeInit 1 */ + + /* USER CODE END RTC_MspDeInit 1 */ + } + +} + +/** +* @brief SPI MSP Initialization +* This function configures the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ +void HAL_SPI_MspInit(SPI_HandleTypeDef* hspi) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspInit 0 */ + + /* USER CODE END SPI1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_SPI1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF5_SPI1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN SPI1_MspInit 1 */ + + /* USER CODE END SPI1_MspInit 1 */ + } + +} + +/** +* @brief SPI MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hspi: SPI handle pointer +* @retval None +*/ +void HAL_SPI_MspDeInit(SPI_HandleTypeDef* hspi) +{ + if(hspi->Instance==SPI1) + { + /* USER CODE BEGIN SPI1_MspDeInit 0 */ + + /* USER CODE END SPI1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_SPI1_CLK_DISABLE(); + + /**SPI1 GPIO Configuration + PA5 ------> SPI1_SCK + PA6 ------> SPI1_MISO + PA7 ------> SPI1_MOSI + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); + + /* USER CODE BEGIN SPI1_MspDeInit 1 */ + + /* USER CODE END SPI1_MspDeInit 1 */ + } + +} + +/** +* @brief TIM_Base MSP Initialization +* This function configures the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM10) + { + /* USER CODE BEGIN TIM10_MspInit 0 */ + + /* USER CODE END TIM10_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM10_CLK_ENABLE(); + /* USER CODE BEGIN TIM10_MspInit 1 */ + + /* USER CODE END TIM10_MspInit 1 */ + } + else if(htim_base->Instance==TIM11) + { + /* USER CODE BEGIN TIM11_MspInit 0 */ + + /* USER CODE END TIM11_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_TIM11_CLK_ENABLE(); + /* USER CODE BEGIN TIM11_MspInit 1 */ + + /* USER CODE END TIM11_MspInit 1 */ + } + +} + +/** +* @brief TIM_Base MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param htim_base: TIM_Base handle pointer +* @retval None +*/ +void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base) +{ + if(htim_base->Instance==TIM10) + { + /* USER CODE BEGIN TIM10_MspDeInit 0 */ + + /* USER CODE END TIM10_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM10_CLK_DISABLE(); + /* USER CODE BEGIN TIM10_MspDeInit 1 */ + + /* USER CODE END TIM10_MspDeInit 1 */ + } + else if(htim_base->Instance==TIM11) + { + /* USER CODE BEGIN TIM11_MspDeInit 0 */ + + /* USER CODE END TIM11_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM11_CLK_DISABLE(); + /* USER CODE BEGIN TIM11_MspDeInit 1 */ + + /* USER CODE END TIM11_MspDeInit 1 */ + } + +} + +/** +* @brief UART MSP Initialization +* This function configures the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspInit(UART_HandleTypeDef* huart) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspInit 0 */ + + /* USER CODE END USART1_MspInit 0 */ + /* Peripheral clock enable */ + __HAL_RCC_USART1_CLK_ENABLE(); + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* USER CODE BEGIN USART1_MspInit 1 */ + + /* USER CODE END USART1_MspInit 1 */ + } + +} + +/** +* @brief UART MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param huart: UART handle pointer +* @retval None +*/ +void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) +{ + if(huart->Instance==USART1) + { + /* USER CODE BEGIN USART1_MspDeInit 0 */ + + /* USER CODE END USART1_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USART1_CLK_DISABLE(); + + /**USART1 GPIO Configuration + PA9 ------> USART1_TX + PA10 ------> USART1_RX + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); + + /* USER CODE BEGIN USART1_MspDeInit 1 */ + + /* USER CODE END USART1_MspDeInit 1 */ + } + +} + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c new file mode 100644 index 0000000000..84413fb5f2 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c @@ -0,0 +1,203 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file stm32f4xx_it.c + * @brief Interrupt Service Routines. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under BSD 3-Clause license, + * the "License"; You may not use this file except in compliance with the + * License. You may obtain a copy of the License at: + * opensource.org/licenses/BSD-3-Clause + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" +#include "stm32f4xx_it.h" +/* Private includes ----------------------------------------------------------*/ +/* USER CODE BEGIN Includes */ +/* USER CODE END Includes */ + +/* Private typedef -----------------------------------------------------------*/ +/* USER CODE BEGIN TD */ + +/* USER CODE END TD */ + +/* Private define ------------------------------------------------------------*/ +/* USER CODE BEGIN PD */ + +/* USER CODE END PD */ + +/* Private macro -------------------------------------------------------------*/ +/* USER CODE BEGIN PM */ + +/* USER CODE END PM */ + +/* Private variables ---------------------------------------------------------*/ +/* USER CODE BEGIN PV */ + +/* USER CODE END PV */ + +/* Private function prototypes -----------------------------------------------*/ +/* USER CODE BEGIN PFP */ + +/* USER CODE END PFP */ + +/* Private user code ---------------------------------------------------------*/ +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/* External variables --------------------------------------------------------*/ + +/* USER CODE BEGIN EV */ + +/* USER CODE END EV */ + +/******************************************************************************/ +/* Cortex-M4 Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Non maskable interrupt. + */ +void NMI_Handler(void) +{ + /* USER CODE BEGIN NonMaskableInt_IRQn 0 */ + + /* USER CODE END NonMaskableInt_IRQn 0 */ + /* USER CODE BEGIN NonMaskableInt_IRQn 1 */ + + /* USER CODE END NonMaskableInt_IRQn 1 */ +} + +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + /* USER CODE BEGIN HardFault_IRQn 0 */ + + /* USER CODE END HardFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_HardFault_IRQn 0 */ + /* USER CODE END W1_HardFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Memory management fault. + */ +void MemManage_Handler(void) +{ + /* USER CODE BEGIN MemoryManagement_IRQn 0 */ + + /* USER CODE END MemoryManagement_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_MemoryManagement_IRQn 0 */ + /* USER CODE END W1_MemoryManagement_IRQn 0 */ + } +} + +/** + * @brief This function handles Pre-fetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + /* USER CODE BEGIN BusFault_IRQn 0 */ + + /* USER CODE END BusFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_BusFault_IRQn 0 */ + /* USER CODE END W1_BusFault_IRQn 0 */ + } +} + +/** + * @brief This function handles Undefined instruction or illegal state. + */ +void UsageFault_Handler(void) +{ + /* USER CODE BEGIN UsageFault_IRQn 0 */ + + /* USER CODE END UsageFault_IRQn 0 */ + while (1) + { + /* USER CODE BEGIN W1_UsageFault_IRQn 0 */ + /* USER CODE END W1_UsageFault_IRQn 0 */ + } +} + +/** + * @brief This function handles System service call via SWI instruction. + */ +void SVC_Handler(void) +{ + /* USER CODE BEGIN SVCall_IRQn 0 */ + + /* USER CODE END SVCall_IRQn 0 */ + /* USER CODE BEGIN SVCall_IRQn 1 */ + + /* USER CODE END SVCall_IRQn 1 */ +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ + /* USER CODE BEGIN DebugMonitor_IRQn 0 */ + + /* USER CODE END DebugMonitor_IRQn 0 */ + /* USER CODE BEGIN DebugMonitor_IRQn 1 */ + + /* USER CODE END DebugMonitor_IRQn 1 */ +} + +/** + * @brief This function handles Pendable request for system service. + */ +void PendSV_Handler(void) +{ + /* USER CODE BEGIN PendSV_IRQn 0 */ + + /* USER CODE END PendSV_IRQn 0 */ + /* USER CODE BEGIN PendSV_IRQn 1 */ + + /* USER CODE END PendSV_IRQn 1 */ +} + +/** + * @brief This function handles System tick timer. + */ +void SysTick_Handler(void) +{ + /* USER CODE BEGIN SysTick_IRQn 0 */ + + /* USER CODE END SysTick_IRQn 0 */ + HAL_IncTick(); + /* USER CODE BEGIN SysTick_IRQn 1 */ + + /* USER CODE END SysTick_IRQn 1 */ +} + +/******************************************************************************/ +/* STM32F4xx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32f4xx.s). */ +/******************************************************************************/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c new file mode 100644 index 0000000000..90376044e6 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c @@ -0,0 +1,743 @@ +/** + ****************************************************************************** + * @file system_stm32f4xx.c + * @author MCD Application Team + * @brief CMSIS Cortex-M4 Device Peripheral Access Layer System Source File. + * + * This file provides two functions and one global variable to be called from + * user application: + * - SystemInit(): This function is called at startup just after reset and + * before branch to main program. This call is made inside + * the "startup_stm32f4xx.s" file. + * + * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used + * by the user application to setup the SysTick + * timer or configure other parameters. + * + * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must + * be called whenever the core clock is changed + * during program execution. + * + * + ****************************************************************************** + * @attention + * + *

© COPYRIGHT 2017 STMicroelectronics

+ * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. Neither the name of STMicroelectronics nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************** + */ + +/** @addtogroup CMSIS + * @{ + */ + +/** @addtogroup stm32f4xx_system + * @{ + */ + +/** @addtogroup STM32F4xx_System_Private_Includes + * @{ + */ + + +#include "stm32f4xx.h" + +#if !defined (HSE_VALUE) + #define HSE_VALUE ((uint32_t)25000000) /*!< Default value of the External oscillator in Hz */ +#endif /* HSE_VALUE */ + +#if !defined (HSI_VALUE) + #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ +#endif /* HSI_VALUE */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_TypesDefinitions + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Defines + * @{ + */ + +/************************* Miscellaneous Configuration ************************/ +/*!< Uncomment the following line if you need to use external SRAM or SDRAM as data memory */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) +/* #define DATA_IN_ExtSRAM */ +#endif /* STM32F40xxx || STM32F41xxx || STM32F42xxx || STM32F43xxx || STM32F469xx || STM32F479xx ||\ + STM32F412Zx || STM32F412Vx */ + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +/* #define DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx ||\ + STM32F479xx */ + +/*!< Uncomment the following line if you need to relocate your vector Table in + Internal SRAM. */ +/* #define VECT_TAB_SRAM */ +#define VECT_TAB_OFFSET 0x00 /*!< Vector Table base offset field. + This value must be a multiple of 0x200. */ +/******************************************************************************/ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Macros + * @{ + */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Variables + * @{ + */ + /* This variable is updated in three ways: + 1) by calling CMSIS function SystemCoreClockUpdate() + 2) by calling HAL API function HAL_RCC_GetHCLKFreq() + 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency + Note: If you use this function to configure the system clock; then there + is no need to call the 2 first functions listed above, since SystemCoreClock + variable is updated automatically. + */ +uint32_t SystemCoreClock = 16000000; +const uint8_t AHBPrescTable[16] = {0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 6, 7, 8, 9}; +const uint8_t APBPrescTable[8] = {0, 0, 0, 0, 1, 2, 3, 4}; +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_FunctionPrototypes + * @{ + */ + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + static void SystemInit_ExtMemCtl(void); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + +/** + * @} + */ + +/** @addtogroup STM32F4xx_System_Private_Functions + * @{ + */ + +/** + * @brief Setup the microcontroller system + * Initialize the FPU setting, vector table location and External memory + * configuration. + * @param None + * @retval None + */ +void SystemInit(void) +{ + /* FPU settings ------------------------------------------------------------*/ + #if (__FPU_PRESENT == 1) && (__FPU_USED == 1) + SCB->CPACR |= ((3UL << 10*2)|(3UL << 11*2)); /* set CP10 and CP11 Full Access */ + #endif + +#if defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) + SystemInit_ExtMemCtl(); +#endif /* DATA_IN_ExtSRAM || DATA_IN_ExtSDRAM */ + + /* Configure the Vector Table location add offset address ------------------*/ +#ifdef VECT_TAB_SRAM + SCB->VTOR = SRAM_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal SRAM */ +#else + SCB->VTOR = FLASH_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */ +#endif +} + +/** + * @brief Update SystemCoreClock variable according to Clock Register Values. + * The SystemCoreClock variable contains the core clock (HCLK), it can + * be used by the user application to setup the SysTick timer or configure + * other parameters. + * + * @note Each time the core clock (HCLK) changes, this function must be called + * to update SystemCoreClock variable value. Otherwise, any configuration + * based on this variable will be incorrect. + * + * @note - The system frequency computed by this function is not the real + * frequency in the chip. It is calculated based on the predefined + * constant and the selected clock source: + * + * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(*) + * + * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(**) + * + * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(**) + * or HSI_VALUE(*) multiplied/divided by the PLL factors. + * + * (*) HSI_VALUE is a constant defined in stm32f4xx_hal_conf.h file (default value + * 16 MHz) but the real value may vary depending on the variations + * in voltage and temperature. + * + * (**) HSE_VALUE is a constant defined in stm32f4xx_hal_conf.h file (its value + * depends on the application requirements), user has to ensure that HSE_VALUE + * is same as the real frequency of the crystal used. Otherwise, this function + * may have wrong result. + * + * - The result of this function could be not correct when using fractional + * value for HSE crystal. + * + * @param None + * @retval None + */ +void SystemCoreClockUpdate(void) +{ + uint32_t tmp = 0, pllvco = 0, pllp = 2, pllsource = 0, pllm = 2; + + /* Get SYSCLK source -------------------------------------------------------*/ + tmp = RCC->CFGR & RCC_CFGR_SWS; + + switch (tmp) + { + case 0x00: /* HSI used as system clock source */ + SystemCoreClock = HSI_VALUE; + break; + case 0x04: /* HSE used as system clock source */ + SystemCoreClock = HSE_VALUE; + break; + case 0x08: /* PLL used as system clock source */ + + /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N + SYSCLK = PLL_VCO / PLL_P + */ + pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC) >> 22; + pllm = RCC->PLLCFGR & RCC_PLLCFGR_PLLM; + + if (pllsource != 0) + { + /* HSE used as PLL clock source */ + pllvco = (HSE_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + else + { + /* HSI used as PLL clock source */ + pllvco = (HSI_VALUE / pllm) * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> 6); + } + + pllp = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLP) >>16) + 1 ) *2; + SystemCoreClock = pllvco/pllp; + break; + default: + SystemCoreClock = HSI_VALUE; + break; + } + /* Compute HCLK frequency --------------------------------------------------*/ + /* Get HCLK prescaler */ + tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> 4)]; + /* HCLK frequency */ + SystemCoreClock >>= tmp; +} + +#if defined (DATA_IN_ExtSRAM) && defined (DATA_IN_ExtSDRAM) +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; + + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface clock */ + RCC->AHB1ENR |= 0x000001F8; + + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + FMC_Bank5_6->SDCR[0] = 0x000019E4; + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ + FMC_Bank5_6->SDCMR = 0x00000073; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ + FMC_Bank5_6->SDCMR = 0x00046014; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ + + (void)(tmp); +} +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ +#elif defined (DATA_IN_ExtSRAM) || defined (DATA_IN_ExtSDRAM) +/** + * @brief Setup the external memory controller. + * Called in startup_stm32f4xx.s before jump to main. + * This function configures the external memories (SRAM/SDRAM) + * This SRAM/SDRAM will be used as program data memory (including heap and stack). + * @param None + * @retval None + */ +void SystemInit_ExtMemCtl(void) +{ + __IO uint32_t tmp = 0x00; +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) +#if defined (DATA_IN_ExtSDRAM) + register uint32_t tmpreg = 0, timeout = 0xFFFF; + register __IO uint32_t index; + +#if defined(STM32F446xx) + /* Enable GPIOA, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG interface + clock */ + RCC->AHB1ENR |= 0x0000007D; +#else + /* Enable GPIOC, GPIOD, GPIOE, GPIOF, GPIOG, GPIOH and GPIOI interface + clock */ + RCC->AHB1ENR |= 0x000001F8; +#endif /* STM32F446xx */ + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIOCEN); + +#if defined(STM32F446xx) + /* Connect PAx pins to FMC Alternate function */ + GPIOA->AFR[0] |= 0xC0000000; + GPIOA->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOA->MODER |= 0x00008000; + /* Configure PDx pins speed to 50 MHz */ + GPIOA->OSPEEDR |= 0x00008000; + /* Configure PDx pins Output type to push-pull */ + GPIOA->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOA->PUPDR |= 0x00000000; + + /* Connect PCx pins to FMC Alternate function */ + GPIOC->AFR[0] |= 0x00CC0000; + GPIOC->AFR[1] |= 0x00000000; + /* Configure PDx pins in Alternate function mode */ + GPIOC->MODER |= 0x00000A00; + /* Configure PDx pins speed to 50 MHz */ + GPIOC->OSPEEDR |= 0x00000A00; + /* Configure PDx pins Output type to push-pull */ + GPIOC->OTYPER |= 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOC->PUPDR |= 0x00000000; +#endif /* STM32F446xx */ + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x000000CC; + GPIOD->AFR[1] = 0xCC000CCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xA02A000A; + /* Configure PDx pins speed to 50 MHz */ + GPIOD->OSPEEDR = 0xA02A000A; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00000CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA800A; + /* Configure PEx pins speed to 50 MHz */ + GPIOE->OSPEEDR = 0xAAAA800A; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0xCCCCCCCC; + GPIOF->AFR[1] = 0xCCCCCCCC; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA800AAA; + /* Configure PFx pins speed to 50 MHz */ + GPIOF->OSPEEDR = 0xAA800AAA; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0xCCCCCCCC; + GPIOG->AFR[1] = 0xCCCCCCCC; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0xAAAAAAAA; + /* Configure PGx pins speed to 50 MHz */ + GPIOG->OSPEEDR = 0xAAAAAAAA; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) + /* Connect PHx pins to FMC Alternate function */ + GPIOH->AFR[0] = 0x00C0CC00; + GPIOH->AFR[1] = 0xCCCCCCCC; + /* Configure PHx pins in Alternate function mode */ + GPIOH->MODER = 0xAAAA08A0; + /* Configure PHx pins speed to 50 MHz */ + GPIOH->OSPEEDR = 0xAAAA08A0; + /* Configure PHx pins Output type to push-pull */ + GPIOH->OTYPER = 0x00000000; + /* No pull-up, pull-down for PHx pins */ + GPIOH->PUPDR = 0x00000000; + + /* Connect PIx pins to FMC Alternate function */ + GPIOI->AFR[0] = 0xCCCCCCCC; + GPIOI->AFR[1] = 0x00000CC0; + /* Configure PIx pins in Alternate function mode */ + GPIOI->MODER = 0x0028AAAA; + /* Configure PIx pins speed to 50 MHz */ + GPIOI->OSPEEDR = 0x0028AAAA; + /* Configure PIx pins Output type to push-pull */ + GPIOI->OTYPER = 0x00000000; + /* No pull-up, pull-down for PIx pins */ + GPIOI->PUPDR = 0x00000000; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx */ + +/*-- FMC Configuration -------------------------------------------------------*/ + /* Enable the FMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + + /* Configure and enable SDRAM bank1 */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCR[0] = 0x00001954; +#else + FMC_Bank5_6->SDCR[0] = 0x000019E4; +#endif /* STM32F446xx */ + FMC_Bank5_6->SDTR[0] = 0x01115351; + + /* SDRAM initialization sequence */ + /* Clock enable command */ + FMC_Bank5_6->SDCMR = 0x00000011; + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Delay */ + for (index = 0; index<1000; index++); + + /* PALL command */ + FMC_Bank5_6->SDCMR = 0x00000012; + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Auto refresh command */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x000000F3; +#else + FMC_Bank5_6->SDCMR = 0x00000073; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* MRD register program */ +#if defined(STM32F446xx) + FMC_Bank5_6->SDCMR = 0x00044014; +#else + FMC_Bank5_6->SDCMR = 0x00046014; +#endif /* STM32F446xx */ + timeout = 0xFFFF; + while((tmpreg != 0) && (timeout-- > 0)) + { + tmpreg = FMC_Bank5_6->SDSR & 0x00000020; + } + + /* Set refresh count */ + tmpreg = FMC_Bank5_6->SDRTR; +#if defined(STM32F446xx) + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000050C<<1)); +#else + FMC_Bank5_6->SDRTR = (tmpreg | (0x0000027C<<1)); +#endif /* STM32F446xx */ + + /* Disable write protection */ + tmpreg = FMC_Bank5_6->SDCR[0]; + FMC_Bank5_6->SDCR[0] = (tmpreg & 0xFFFFFDFF); +#endif /* DATA_IN_ExtSDRAM */ +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */ + +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx)\ + || defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx)\ + || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) || defined(STM32F412Vx) + +#if defined(DATA_IN_ExtSRAM) +/*-- GPIOs Configuration -----------------------------------------------------*/ + /* Enable GPIOD, GPIOE, GPIOF and GPIOG interface clock */ + RCC->AHB1ENR |= 0x00000078; + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB1ENR, RCC_AHB1ENR_GPIODEN); + + /* Connect PDx pins to FMC Alternate function */ + GPIOD->AFR[0] = 0x00CCC0CC; + GPIOD->AFR[1] = 0xCCCCCCCC; + /* Configure PDx pins in Alternate function mode */ + GPIOD->MODER = 0xAAAA0A8A; + /* Configure PDx pins speed to 100 MHz */ + GPIOD->OSPEEDR = 0xFFFF0FCF; + /* Configure PDx pins Output type to push-pull */ + GPIOD->OTYPER = 0x00000000; + /* No pull-up, pull-down for PDx pins */ + GPIOD->PUPDR = 0x00000000; + + /* Connect PEx pins to FMC Alternate function */ + GPIOE->AFR[0] = 0xC00CC0CC; + GPIOE->AFR[1] = 0xCCCCCCCC; + /* Configure PEx pins in Alternate function mode */ + GPIOE->MODER = 0xAAAA828A; + /* Configure PEx pins speed to 100 MHz */ + GPIOE->OSPEEDR = 0xFFFFC3CF; + /* Configure PEx pins Output type to push-pull */ + GPIOE->OTYPER = 0x00000000; + /* No pull-up, pull-down for PEx pins */ + GPIOE->PUPDR = 0x00000000; + + /* Connect PFx pins to FMC Alternate function */ + GPIOF->AFR[0] = 0x00CCCCCC; + GPIOF->AFR[1] = 0xCCCC0000; + /* Configure PFx pins in Alternate function mode */ + GPIOF->MODER = 0xAA000AAA; + /* Configure PFx pins speed to 100 MHz */ + GPIOF->OSPEEDR = 0xFF000FFF; + /* Configure PFx pins Output type to push-pull */ + GPIOF->OTYPER = 0x00000000; + /* No pull-up, pull-down for PFx pins */ + GPIOF->PUPDR = 0x00000000; + + /* Connect PGx pins to FMC Alternate function */ + GPIOG->AFR[0] = 0x00CCCCCC; + GPIOG->AFR[1] = 0x000000C0; + /* Configure PGx pins in Alternate function mode */ + GPIOG->MODER = 0x00085AAA; + /* Configure PGx pins speed to 100 MHz */ + GPIOG->OSPEEDR = 0x000CAFFF; + /* Configure PGx pins Output type to push-pull */ + GPIOG->OTYPER = 0x00000000; + /* No pull-up, pull-down for PGx pins */ + GPIOG->PUPDR = 0x00000000; + +/*-- FMC/FSMC Configuration --------------------------------------------------*/ + /* Enable the FMC/FSMC interface clock */ + RCC->AHB3ENR |= 0x00000001; + +#if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001011; + FMC_Bank1->BTCR[3] = 0x00000201; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx */ +#if defined(STM32F469xx) || defined(STM32F479xx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FMCEN); + /* Configure and enable Bank1_SRAM2 */ + FMC_Bank1->BTCR[2] = 0x00001091; + FMC_Bank1->BTCR[3] = 0x00110212; + FMC_Bank1E->BWTR[2] = 0x0fffffff; +#endif /* STM32F469xx || STM32F479xx */ +#if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx)|| defined(STM32F417xx)\ + || defined(STM32F412Zx) || defined(STM32F412Vx) + /* Delay after an RCC peripheral clock enabling */ + tmp = READ_BIT(RCC->AHB3ENR, RCC_AHB3ENR_FSMCEN); + /* Configure and enable Bank1_SRAM2 */ + FSMC_Bank1->BTCR[2] = 0x00001011; + FSMC_Bank1->BTCR[3] = 0x00000201; + FSMC_Bank1E->BWTR[2] = 0x0FFFFFFF; +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx */ + +#endif /* DATA_IN_ExtSRAM */ +#endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F427xx || STM32F437xx ||\ + STM32F429xx || STM32F439xx || STM32F469xx || STM32F479xx || STM32F412Zx || STM32F412Vx */ + (void)(tmp); +} +#endif /* DATA_IN_ExtSRAM && DATA_IN_ExtSDRAM */ +/** + * @} + */ + +/** + * @} + */ + +/** + * @} + */ +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/bsp/stm32/stm32f411-mini-system/board/Kconfig b/bsp/stm32/stm32f411-mini-system/board/Kconfig new file mode 100644 index 0000000000..7642096bbc --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/Kconfig @@ -0,0 +1,117 @@ +menu "Hardware Drivers Config" + +config SOC_STM32F411RE + bool + select SOC_SERIES_STM32F4 + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +menu "Onboard Peripheral Drivers" + +endmenu + +menu "On-chip Peripheral Drivers" + + config BSP_USING_GPIO + bool "Enable GPIO" + select RT_USING_PIN + default y + + menuconfig BSP_USING_UART + bool "Enable UART" + default y + select RT_USING_SERIAL + if BSP_USING_UART + config BSP_USING_UART1 + bool "Enable UART1" + default y + + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on BSP_USING_UART1 && RT_SERIAL_USING_DMA + default n + + config BSP_USING_UART2 + bool "Enable UART2" + default n + + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA + default n + + config BSP_USING_UART6 + bool "Enable UART6" + default n + + config BSP_UART6_RX_USING_DMA + bool "Enable UART6 RX DMA" + depends on BSP_USING_UART6 && RT_SERIAL_USING_DMA + default n + endif + + menuconfig BSP_USING_I2C1 + bool "Enable I2C1 BUS (software simulation)" + default n + select RT_USING_I2C + select RT_USING_I2C_BITOPS + select RT_USING_PIN + if BSP_USING_I2C1 + comment "Notice: PB6 --> 22; PB7 --> 23" + config BSP_I2C1_SCL_PIN + int "i2c1 scl pin number" + range 0 48 + default 22 + config BSP_I2C1_SDA_PIN + int "I2C1 sda pin number" + range 0 48 + default 23 + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI BUS" + default n + select RT_USING_SPI + if BSP_USING_SPI + config BSP_USING_SPI1 + bool "Enable SPI1 BUS" + default n + + config BSP_SPI1_TX_USING_DMA + bool "Enable SPI1 TX DMA" + depends on BSP_USING_SPI1 + default n + + config BSP_SPI1_RX_USING_DMA + bool "Enable SPI1 RX DMA" + depends on BSP_USING_SPI1 + select BSP_SPI1_TX_USING_DMA + default n + endif + + menuconfig BSP_USING_TIM + bool "Enable timer" + default n + select RT_USING_HWTIMER + if BSP_USING_TIM + config BSP_USING_TIM10 + bool "Enable TIM10" + default n + + config BSP_USING_TIM11 + bool "Enable TIM11" + default n + endif + + config BSP_USING_ON_CHIP_FLASH + bool "Enable on-chip FLASH" + default n + +endmenu + +menu "Board extended module Drivers" + +endmenu + +endmenu diff --git a/bsp/stm32/stm32f411-mini-system/board/SConscript b/bsp/stm32/stm32f411-mini-system/board/SConscript new file mode 100644 index 0000000000..624af7a9dd --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/SConscript @@ -0,0 +1,38 @@ +import os +import rtconfig +from building import * + +Import('SDK_LIB') + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +CubeMX_Config/Src/stm32f4xx_hal_msp.c +''') + +path = [cwd] +path += [cwd + '/CubeMX_Config/Inc'] +path += [cwd + '/ports'] + +startup_path_prefix = SDK_LIB + +if rtconfig.CROSS_TOOL == 'gcc': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/gcc/startup_stm32f411xe.s'] +elif rtconfig.CROSS_TOOL == 'keil': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/arm/startup_stm32f411xe.s'] +elif rtconfig.CROSS_TOOL == 'iar': + src += [startup_path_prefix + '/STM32F4xx_HAL/CMSIS/Device/ST/STM32F4xx/Source/Templates/iar/startup_stm32f411xe.s'] + +# STM32F405xx) || STM32F415xx) || STM32F407xx) || STM32F417xx) +# STM32F427xx) || STM32F437xx) || STM32F429xx) || STM32F439xx) +# STM32F401xC) || STM32F401xE) || STM32F410Tx) || STM32F410Cx) +# STM32F410Rx) || STM32F411xE) || STM32F446xx) || STM32F469xx) +# STM32F479xx) || STM32F412Cx) || STM32F412Rx) || STM32F412Vx) +# STM32F412Zx) || STM32F413xx) || STM32F423xx) +# You can select chips from the list above +CPPDEFINES = ['STM32F411xE'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') \ No newline at end of file diff --git a/bsp/stm32/stm32f411-mini-system/board/board.c b/bsp/stm32/stm32f411-mini-system/board/board.c new file mode 100644 index 0000000000..f28668a941 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/board.c @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-06 SummerGift first version + */ + +#include "board.h" + +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_RCC_PWR_CLK_ENABLE(); + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.LSEState = RCC_LSE_ON; + RCC_OscInitStruct.HSIState = RCC_HSI_ON; + RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLM = 8; + RCC_OscInitStruct.PLL.PLLN = 100; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 4; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK + |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) + { + Error_Handler(); + } + PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC; + PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE; + if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK) + { + Error_Handler(); + } +} diff --git a/bsp/stm32/stm32f411-mini-system/board/board.h b/bsp/stm32/stm32f411-mini-system/board/board.h new file mode 100644 index 0000000000..e05c785128 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/board.h @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-11-5 SummerGift first version + */ + +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#include +#include +#include "drv_common.h" +#include "drv_gpio.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define STM32_FLASH_START_ADRESS ((uint32_t)0x08000000) +#define STM32_FLASH_SIZE (512 * 1024) +#define STM32_FLASH_END_ADDRESS ((uint32_t)(STM32_FLASH_START_ADRESS + STM32_FLASH_SIZE)) + +#define STM32_SRAM_SIZE 128 +#define STM32_SRAM_END (0x20000000 + STM32_SRAM_SIZE * 1024) + +#if defined(__CC_ARM) || defined(__CLANG_ARM) +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="CSTACK" +#define HEAP_BEGIN (__segment_end("CSTACK")) +#else +extern int __bss_end; +#define HEAP_BEGIN (&__bss_end) +#endif + +#define HEAP_END STM32_SRAM_END + +void SystemClock_Config(void); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf new file mode 100644 index 0000000000..f6b6ffd23b --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf @@ -0,0 +1,28 @@ +/*###ICF### Section handled by ICF editor, don't touch! ****/ +/*-Editor annotation file-*/ +/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */ +/*-Specials-*/ +define symbol __ICFEDIT_intvec_start__ = 0x08000000; +/*-Memory Regions-*/ +define symbol __ICFEDIT_region_ROM_start__ = 0x08000000; +define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x2001FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x0400; +define symbol __ICFEDIT_size_heap__ = 0x0000; +/**** End of ICF editor section. ###ICF###*/ + +define memory mem with size = 4G; +define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__]; +define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, last block CSTACK}; \ No newline at end of file diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds new file mode 100644 index 0000000000..cab0cf0418 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds @@ -0,0 +1,158 @@ +/* + * linker script for STM32F4xx with GNU ld + * bernard.xiong 2009-10-14 + */ + +/* Program Entry, set to mark it as "used" and avoid gc */ +MEMORY +{ + ROM (rx) : ORIGIN = 0x08000000, LENGTH = 512k /* 512KB flash */ + RAM (rw) : ORIGIN = 0x20000000, LENGTH = 128k /* 128K sram */ +} +ENTRY(Reset_Handler) +_system_stack_size = 0x200; + +SECTIONS +{ + .text : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.isr_vector)) /* Startup code */ + + . = ALIGN(4); + *(.text) /* remaining code */ + *(.text.*) /* remaining code */ + *(.rodata) /* read-only data (constants) */ + *(.rodata*) + *(.glue_7) + *(.glue_7t) + *(.gnu.linkonce.t*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for initial. */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + . = ALIGN(4); + + + PROVIDE(__ctors_start__ = .); + KEEP (*(SORT(.init_array.*))) + KEEP (*(.init_array)) + PROVIDE(__ctors_end__ = .); + + . = ALIGN(4); + + _etext = .; + } > ROM = 0 + + /* .ARM.exidx is sorted, so has to go in its own output section. */ + __exidx_start = .; + .ARM.exidx : + { + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + + /* This is used by the startup in order to initialize the .data secion */ + _sidata = .; + } > ROM + __exidx_end = .; + + /* .data section which is used for initialized data */ + + .data : AT (_sidata) + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _sdata = . ; + + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + + PROVIDE(__dtors_start__ = .); + KEEP(*(SORT(.dtors.*))) + KEEP(*(.dtors)) + PROVIDE(__dtors_end__ = .); + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .data secion */ + _edata = . ; + } >RAM + + .stack : + { + . = ALIGN(4); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(4); + _estack = .; + } >RAM + + __bss_start = .; + .bss : + { + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _sbss = .; + + *(.bss) + *(.bss.*) + *(COMMON) + + . = ALIGN(4); + /* This is used by the startup in order to initialize the .bss secion */ + _ebss = . ; + + *(.bss.init) + } > RAM + __bss_end = .; + + _end = .; + + /* Stabs debugging sections. */ + .stab 0 : { *(.stab) } + .stabstr 0 : { *(.stabstr) } + .stab.excl 0 : { *(.stab.excl) } + .stab.exclstr 0 : { *(.stab.exclstr) } + .stab.index 0 : { *(.stab.index) } + .stab.indexstr 0 : { *(.stab.indexstr) } + .comment 0 : { *(.comment) } + /* DWARF debug sections. + * Symbols in the DWARF debugging sections are relative to the beginning + * of the section so we begin them at 0. */ + /* DWARF 1 */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + /* GNU DWARF 1 extensions */ + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + /* DWARF 1.1 and DWARF 2 */ + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + /* DWARF 2 */ + .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } + .debug_abbrev 0 : { *(.debug_abbrev) } + .debug_line 0 : { *(.debug_line) } + .debug_frame 0 : { *(.debug_frame) } + .debug_str 0 : { *(.debug_str) } + .debug_loc 0 : { *(.debug_loc) } + .debug_macinfo 0 : { *(.debug_macinfo) } + /* SGI/MIPS DWARF 2 extensions */ + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct new file mode 100644 index 0000000000..5d1e3e6c00 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct @@ -0,0 +1,15 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08000000 0x00080000 { ; load region size_region + ER_IROM1 0x08000000 0x00080000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + } + RW_IRAM1 0x20000000 0x00020000 { ; RW data + .ANY (+RW +ZI) + } +} + diff --git a/bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h b/bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h new file mode 100644 index 0000000000..fe616d31cf --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2006-2018, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2018-12-5 SummerGift first version + */ + +#ifndef _FAL_CFG_H_ +#define _FAL_CFG_H_ + +#include +#include + +#define FLASH_SIZE_GRANULARITY_16K (4 * 16 * 1024) +#define FLASH_SIZE_GRANULARITY_64K (64 * 1024) +#define FLASH_SIZE_GRANULARITY_128K (3 * 128 * 1024) + +#define STM32_FLASH_START_ADRESS_16K STM32_FLASH_START_ADRESS +#define STM32_FLASH_START_ADRESS_64K (STM32_FLASH_START_ADRESS_16K + FLASH_SIZE_GRANULARITY_16K) +#define STM32_FLASH_START_ADRESS_128K (STM32_FLASH_START_ADRESS_64K + FLASH_SIZE_GRANULARITY_64K) + +extern const struct fal_flash_dev stm32_onchip_flash_16k; +extern const struct fal_flash_dev stm32_onchip_flash_64k; +extern const struct fal_flash_dev stm32_onchip_flash_128k; + +/* flash device table */ +#define FAL_FLASH_DEV_TABLE \ +{ \ + &stm32_onchip_flash_16k, \ + &stm32_onchip_flash_64k, \ + &stm32_onchip_flash_128k, \ +} +/* ====================== Partition Configuration ========================== */ +#ifdef FAL_PART_HAS_TABLE_CFG + +/* partition table */ +#define FAL_PART_TABLE \ +{ \ + {FAL_PART_MAGIC_WROD, "bootloader", "onchip_flash_16k", 0 , FLASH_SIZE_GRANULARITY_16K , 0}, \ + {FAL_PART_MAGIC_WROD, "param", "onchip_flash_64k", 0 , FLASH_SIZE_GRANULARITY_64K , 0}, \ + {FAL_PART_MAGIC_WROD, "app", "onchip_flash_128k", 0 , FLASH_SIZE_GRANULARITY_128K, 0}, \ +} + +#endif /* FAL_PART_HAS_TABLE_CFG */ +#endif /* _FAL_CFG_H_ */ diff --git a/bsp/stm32/stm32f411-mini-system/figures/board.png b/bsp/stm32/stm32f411-mini-system/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..2aba8bd115b22fd8643aba378ab8b401808a1cac GIT binary patch literal 577790 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

Wo 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�dB#C^ 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
    Ekj1 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%0D;GRrbWS-yyKJiE)d?f{4Wi?Fjpk=_>Wz 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 z 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%0AZ%A%vSL636u(_;Iju2*Q(Im)`6ux5QMAG zr0a$NUJT-q#~#I3zWxltJ{A7SA0ROGJOp#d4I*4lB3+tO3eq{jVrDA@gb9?3#{qpD zQ+f?n^{m0NrOo)@qcfPCoVu#oXv=m3LAp-79l!stejlIt?1KpLL-3D(2NLP@siGkD zBBvt652H*t4wwpTxe?1&tVLyIDV3F}nnAoU+&tj!3@x`{K?AmJS%rXk90K!4h`3Jt zwSA`dAw#lETAi4j%HYLcyi7!x>>S&)*T?(a8^V1LefD?E zK^K1O9dyPZ8ZIfv?|<_N?A^NyQzNGkN&g%Xq5pEk@zN*PxcnXV8z08VP-3+j>$l!a zH9&9eKST!a)ezjUKtf~F0{r>6zlP4PPK*z{k80}|2#e#c;w>cW?B`+f_^bi&$|(e* zjac1#Jv7b4;rBiwk7`+tP!j9i2Gz?h(YMrmo8I)rsj=!q>j?S?s)dFJj{t z&?5f=Rl-N^JYmk7%_S>;>HDH_5t4Eowp4|-j`gUit;Rd=yay$dAx7#e8SMQtqMBeh zia+_|uVTsaUU2GpEEIo=2zS!kp`H=0 zTvi4VtgWrbSHJNkw6t}h+IJdF+)p9u7aXNJOO9M~>Sle}zOprl>PhhGdHBmaux8_p zR7?562gkt(wXY`lrD&|IVF{l8>N7-IRVN)ph59TwBQe9VoyQr#oFC;V1S5u$+ErNE zwF>>``^oTSWIb0($mVnu5Yf9~Jsx}faWpnmp$4xZoP6Fzb`*O5b7cj=ie=>p>A;$n zbp+>S=%2Ci3COvttO^cdzPDxEe*4XM=#j_JRO>@&>WA{CBP zAY6fl#p}`7+>GPLPGVwm64Di}RdON>Rss~j<6n3TcisB{DnpY9P5nK5nL{&VELK*Y zGQrHL51OYTg&I-Sw1UXGK0bPa;HX#b_}b*`ut35yUwsNU-?j%~^CN^N{tlvc794~* z^XfI`tW{fs&p3++KLAT!fTo4rq;F52Is@C(uZoaO)diH6SK*KT^p9}E4O_v*-at6^ z_YjQX8T+ajSzVjO))BHlL0C>g;hV5<$x0Y{2B%J+zv^IpS{2Z?Xd(XS&;A76-R;2m zFA<9W138e~y!Msz5uhN-pP;p%i7i;Nv=bBKBRF^N0)(r8WwX+zRK~{Ib!+ga-~QLA zuM!|lK95lHxjA|$hpZeo`vVR#mqe*>8YxXipllhIFJDZks-fYlbJAJ%o1y(~+2O` zymjCs%IXSNa9%l$IAzNG`uzcXZ&M?eSD0#czD-IFUELf_8B9n+_tp`0plnISAN|YbhsfC6TTuH^nu@X2mR9w z`n4FvI_OU3RKy>C>r2?XXE%~#$5E>O6J#z%5bKDI7g| z+R36`LAFO#nG;ch|KorEI@YaQi^+ilsO4WG*!AU1{*??SYZ7MaBsi%QiRtvK@D z2N)Tha57W#6qdb-SX{-LHLLJ%{`~8Rr#J*NFQGATgd(a}C#wy~=!a+y!&lacrCqDB zZ{Go=(ixXHZvN{&quRLb)*JB5GoMHQg)y{9KSz~xf|Sd=t~cweJOzyc#wj9Wschar zq+JKzeite;dWHELlC-ZZ5ug3cUfh1y{g@a%izR_)5fVnoY4;GKNVx^dV#w-8FcHAw zmD>>v266D+_uaN!^S>l(?c(!C@YGYE!Ln6b!KaR5k^dKvks#;%%1udM^Cufp7~#q1?Xz3Yw`7Od=YK!D^VeQNcCtogNSl&G-ck`b)0qP;0wxG z@R4Qc?B0O>zVkSHW?%-v)qE~&Q|6TM3_SJaFJeJU8ydtn5mjGw`^R7DdF8xdNk0Wn zA4IrjBicKcQ~m7d$QYdJrTNRs>bM#C+cRJLDjMsnP-8v^UuxfsjN_HcYC~3!5uzbl zza9;Z4LEY-D5j>S9Cqh<4r1Xp1+42`k0-zMH0sKEM5g}E30iSd5zn0~fX9NYe&xg2SAO#pcz-?W z+tyH~_rni9c58g+FDcWXiYDNZM<2qS_uPj-=52(gzE2Qga90{l;V1wi*rN#XqcD97 z(7bR35{U#pI(i(k%wNG;buxXt5Ts1xb=PkNH}+G6lRqUV+rA1}*;yxB7ZH+D(4{uC zEbf4kj^p_8)2@RyA6cF6F$7&{c_sej+kb}c6^p?Q{da`YuhMzLU6pR-5#}#|XQf7g zMdO{)=v>m-&xW#zIF|7yk6y-$rva2WjLx@GFO@%&MR`Ij4mqt_oJll~O=x zij`e$`1sfSu}XROP}A;kycFHd(W-7{kC05Ob#HT{E{G|td1z(;7~Z| z#Wp@8F$yaC5VAhOGhccL-Q68XBuzJRS^Qx2(UKIv=RbE3Hf-96*w7JF*{{;!QOG&x zisM`dxSh;{sBp~1VgU6wnK}d<$Q0qGi!}1j+ zYyQEL!6d22Ax=JvjztxC;>kzBF}{K;kd?L3YHV!87oL0o!((aGb1$P@JPX4vLMay` zD>(SmZ$X@T5nH#c!~GB5OTjBffHPlN+4J@EEXREh-iOK20W9>rfB-*9HD39qwU~WH zSwCBYf9fX?68mxc9d}~K&g-EX!n`|=SXArg!}c9pu=)DkK;{%$<(DAZ3CdFB8%4>= zNf3=;_{YBszj+>yKK=xjbas%FHQ&Kx<#-u;@3;kROIDy1AE6d65}^*}$~wpJDe4U1 zgAk4L@Q-~5(Gc*=*T079+Bzb3n%{6Bz>ER=u6ypF{Z%WzgK*|$H#n2ufG#X62a5|j zwYISz)AgTz=8N!$N?;iCU#ql7eIY#f@Iz>-uRxXgJbbCQ-2iP7vgZE=Iivp6oA75| z$NDYX@tKG3gXD`qx8{GgvOq#@T@xOD^bs^v2?$Sp7ou{~!#SUmA$5^m`3FxsHyD2o z!OVVKcf(HXzUfAALXg^c&Tnu;K-k{VfrlS^6lJ~<1jfHh@c%+iWKp`6lffBNC`@3|H0)~%y%F!Pob0;ZBW9(woz+rxI z_$tauWbD23c64@jP^Xyr1%GS`BrraYr@!(vdR8rmJ^W(?l>IIusqnrkJR3Z!qz_PT zy+JL-9((KoG&D3oQRdI{!H_I$ zoH>k!=62#Z@%h6r=PfGB@|(mv@x<>vj;MbEa_onY$l;YQ1yOSSr%(w1(|JBFfmZ+P zNR1!En%;Hz>}U5tQJhkR;)hdOkye1-jT`a! zHuZ5+Xp(;gm{Ztt-St@4yPDeaf%i?*S^e6_ua}+wchq;C@%c6IW_~(y4c0HRV_63t zedJCk=@>cE4DM@D#58-yu*L1LG_p2pHgv;*Q}KN6h0m0TPt+mC-#}?FNzCAtRh86k zYCeO(uNEzC!vhc8j>PyGgp@a(n%EqXy=ht5M>lO^QD<`Uc??Q+t&kXpIr=gdH3x9d z-MbM8gkjCYL9=OIfc3rI*s)_9;zLJJj&}%{mMa%OEi3zP28(7j)&id!T070~8{{q^ zGx!45uWrPxx9%k6VspjUO*^nw9(Uh)Bih;)!<^iY8uL*=}cbdd|FnAk=8-12zk~j zDH~ouF!L6;*go8`_a@5Ju~t*_Qg|+(z*Ap*7>R^}8sQ)!{16N~chGBER?~K6$L?PvL=w9z^qk7RuPoXD|b)y0#W~-+Ko#$r$SR{iI0q1yG2%pW|qq(!Syx z(x06BijyH)BM`@bfQS^sL!WsFK7WXUAM=S`GQ)G(^5s~waWlaYtL@jpnMzJ$m-0;R z9I`oOy?kk{=Fu`X7lfprfi&@BG}M;i@h2Xmwd$NR#mdT@GaWm3?Zn!(Yf#}ILOA`( zj8YMgUvSfMIp->ySFr%M1k1p%`gt+-BG#;1ON{HWxN?aTqBv0*fg!N#=3Q93b~U2h z3HVZP5s{`-0+3r)o5(sXn3nCrRdde=GXQ<@mmsJ1LT2`j7Sa%9K<@3tQ3{@Sz#EXcEgShkFd(pnM-646K z$1qGAWtBDf>?04Oxv>hu__Gkq;k?;sl9h8fHdNgrx$~U?4bA_jvbwV(XNx0fsPOpWL!CC%q3<_G@Tp zsKuVWx6v73THL&3Wen&&J!^2sU3*}r&m)}p>817M{fo=8vVFz+IJ5E^(ziM8!t_-@ z{}>hayQrvY#0@*Hr>-VuPA|gCG2x(F0@n7f#m*adKp%Sz!Sw4+aHhb%qE>*K<*rpO z4?{aeKTs`wL|i)c3p#Pr?(5+Xgox{-*um@oUUWzS*Q{9q!n3)uiUNHXJ-1wk z7hilGr%s*)FBIpbnU;m>sv6vT_b$ZZ8LAici%EjWc*)A@DPvO#28NP|B~{80F$KYk zKGfIv(O4xS=$mGupPQ->5ydBn#g607JzMeSn+Gs_vEO0ZE@EU99V=EW$IhJ_FghMb zh5Z4!)3%4h!(?STpTXhJUx-t`OO|b5wV;A1qoGXG%k**lv!p(P0S$(1Vk)u5K&oTIql5myceeYWqT4_;#Dl~cmzFb zdT{Z=1=x(psVLoJQ}=_dn|lz9)FZ6Ci8ArD_gZ!TThUBh7)fJ1W{{kkDZ;XOL?aT~ zn>a)QE>rT{eZ~3UGta?F9>AuJJFxA#ZFu>`UjRiyhfUL>t_@qZ^rF173FZ3tAzGuf z2EAlu+a;ON(LbahmIQTDU?h0VkgtpiSlY}XC{G(Gb7qB;A*J4d8Cr==n>V6&LoW^< z*oTn6ILII~0&D6UuzAZyYNr!TeBWU`_fT(~TQ$yLkp06Nk{KSF={U`-JHmom0SoJR zf~{Iv864+HeesuplGWIK(=P0L^KG0xd6fF&79%Um=m&yfY}~j3r6mG_qyLl>*3Q-x zGjJy2ItE8gBr^=c%RV+3pW>1QA{r_M>f@h{h2HS7k1wlCjU+N9&9N{S|1?3EkOj;P4Fsb8%qFVHB0)7t5+hkNkMaKx8Bdg8J z;Po*`$+ys0cQ-j$XHK1lZ5lm+jJ=4UdMppDodpj}42@YNZ(22x zQ7qCW(J+T43w)?9pDvG^E2|%ZdKMA+FcvN9#m%?v#&`buZ{aJFkAhlMDF)VWT!*Dy z-LTI8XGr>>XEvI1!>t+3M&Gc7(U?KMW%J5Fpp_*YmbQgZQR;L1W6!;pk4ke&!<|%< zz3sZKc>ZV4A`~db?6XNXr!y+j z1_Z%GeU*fzZ4re0q9f~^U$Y=2LU-48=Eizee#RSRo+SK!v$ zc7l(+>=4&os^gv`D>>u>2FDEyj_ODx9a(KlLs>+`;+6=SY667Jnky^mUv3f=IEWOt zosu=bdi@}s!^P=V9*KmC2R`!vwrpGhev$>~#&e)NY_hLY3WtFa1HswbWzf3XL^>bS;V?=oe|nX0HJr<>DD6wIgU*xEyQOuEGm1 zyy9H>3j3qy8f43I0w$Bdxr-(y;~G+F1&X2~AaiJK@MCFfgaV7dqloltK0bBOe?x;Y zsxMmDg5}HFiG0kbyz3c-p58DQhhpgOpMS3zcK${QB%g=xOj0JIDHsl^N^>p!?~7u-@rI7 zjwE0jI@Q*|-vp^_6NJ!Wq{JXj!$O_*4r--?1ml}2D`jbza!MXXu&NEW-*yB3{eSq5 zn@uPjm1fsk*0mTbSFMCH_AVm)8BZsIGW(i^v;C8poJ>*c35Ye|OIJXObbNUnl$zv2&i^;ZfN&BM9L8fR28XARF?=xni@=9gAQ)K+PAnlq;*-oM#wXvyl8Tem zdBB=`L~N?2XX%ccjLg@Z)1F908$Zcml$j}6bWI+uA5+|PoqXU=*~s9tn3{O zk0}^t!8w$|4lklT<@42%BdM!XcyIg+8Un|#xN3kk51q4?*t`hvrT4=KEW@tdyYR|O zufVcRmxm+&VA+JW#s;k0xD6rwLxgdT3`MWZ4$EE+4yQ4Zu%Qc$;A_?)5Nd~C2+@Ni z5(C(G{sSznJcH))Bwfdz6Z~Sqm_Ymm*i~P~4coU-i>RQVFM>ORgUSM5E0?2V*-C`e zw;>wiIrkN-sUIB8P|c&^?}1pk26CW*?qX<3^pBrJ|MB;*dci1VN$o5&538L{f*XGx z?Mt7;h7Id*?4u763>1^`=a5V)xa*!<(Y|yE{K~s-zi1D`jEDp^To|5Kdk^h3>W#Dx+dnK!G_@tQ&?g&;3OQ>KufIE6P(yobubAXY8r z5Doh%@G#>75^IT1lN zr}2KAJNp{Wy>$UA7i;Kf3ttM9&6yp9)HhI5^EA4^+NdSg78@u$r&F#iVyqV$Ep5dtm!OAOQYXIP#%IE zN7Oom`i2LvYV`_ya{M?fBSk@-LW2b|x7~0ZYN|>hCSE3FVz#VKmk33dadxU5abYF6 z#ySLSK-SYpPxfK-+^g7kIBAwz|%#4vV#A1(~PhjRlX zIMbiPhE?S#jYzZil?!z)mCj&Pxj?n^*Kg~^3%__3d=YDvInse}8P@l%LU~{u*2D*H ziDUM>vMY`2i*P2f3U;^wd{{(CPs18Lj@aN~oa{f2V`uu%v9JQYE6Nb^3t0#Wh9D>x zPa>{%qpht4TeqymTW=j8lu3SBZ9;~GB4t>$Vi7|81=yKWp2!L2L|UAP0d*ZNs4IZd z0Hjg@!So2!!9y53|0XUBkK^dcN%SnM#EPXQL|S=SRL=b;hf@AyB-5SPyr~C2f8kAh za^e^Q{(R*$E@QlHp)?xB_8ZniGW&^$)~mFI5x(hM1byljj2j)WDg{X4DM(ZOP|m!B z^!Papjl}Wci3x1(siL6LwC!+tW_V(wXRP^2yB+H{t;hcThY*{L(cidh)Y_EEs@N4c zr`?D+*95E1f)E~tb@4FL@go==?L+?s9!EZ&#J087Xl@9420uO>v&W|n`fp^|R3EqP zy7g#ouBWb5wV?f6D~DNH2JVr|bdgn~hWIrC8R z9?T5xEz2S7x$OpI(n&xagv4twG24hFC&I9BejtWaN`)+0Fv>SUsJsgh%iOk0&Pkyn zj5FG8uw)Tc!jbIEq|GBNjU#T1Vf*#H`0n?9<{Wg$ubg$=M00Z^cJJDP*!U=d_BkTk zn_I`uN*I_E(SIQUO;aKJ%V1R812MYZnNR!j`(uvVIkOIJ{Erak`m&r7_S^w$0HRMp z_wt4K+0R6`Vl2OMX7^vUdKr~Cq!J@&;0HXvN924d=A0*C=?0|e3h>nr08*vXUwHcT z6$8ki4rk3qw2D7w^dEEHKS%3VRL-EHd^4JxYjNZ~MxtUAaL|~sWn=yN)!@V+1S^KH zIF#*FyTXpgGz^VS!4}IPR_}pO((BIYw2}%y^pzonr8sXMMl=7M8`+*2P-2E;8b}>S zOXG61x3^>e=m^6{6f`0jjG49Rkpm?Nas$-o+^~aLbIPV|WJ1G4Tmx6q1F?KB1i9+c z-lr**f(V405HmNUPkq^QUlB2yJ_$Z^3`>`6AX!fw`w+62pL~hkLiUHTWNAA>kto8( zo8Zk+m|Q4JR_2^v98r+aLg1=*K`hzqvR_|brzMr0u&b71ATK( z2I05P603hhV-sRygOH{CvNGeDvEes1HlU)S5~0`!PT%lL=an;G9Ia~$7e*AMg%0pd zw?PWDx#yHSr*as9NFyw3D?T229ShA@(NL;pAxAjdf~0-|Q@@B6tGZFw(1=8=5LuK> z&c5smVOduv%AKM!;`p&+FqFvxa6_AnaG&3go;7PABL;uwkSBtQ zIXv-{g8pPX)apAS$~7$1acNEiksyL4jVN#0gyD1hu>a#bf=kh}f;LRz> znGaA=wi}x^Z^Dm%_yZRVnt!n1WL0@NHf-7qE4dG{b_!NjAc3RSN+ZcK3~Q@lHSTtr zKe>Bf5QFdq%28Ug9GL~1arWp>VIDt@-eod)PRI&=@Mek-aIGz^)ZOHj7Y7K{P)J-x zWZ2TO086`802lrSf;H)#<+D{>NG-ysd=vPR7VtC9Q$Y?P7;QpD;|7fNzlnE_JqO)n z0fjKKk=8r}a|{9V7#6fHMC-yfe0bzt7x9tj3}E%V869iZu10fn12FJ?H|Q~Uz1oE8 zIkweq5wBeCv8Q z;q}+vz`4_(z~{^Fpxd^HOh(1_?bo9upu-n`KSwswMB1vvS=@_cw2d5NHmAJ1_x+(d zR4mwt(KD}L@RJwt(*7}Q-%v$pH5Ra(eNP@`;(1IeL)dZScKq^}zk-t13bM~zZaq8; zLP|y-Wb@37v+D9-4o}SLz**}~=#jAV{@MR81|bK^5w2*5lH7$0A3uvz=iY*%+StCK z649_YdtXuXi$jHY5<^BaHg8^wXPKXg zwb%Ajb~yiVN-;KU=s@rK)i7hPKx8f7JRNi!7mY0#u(m^xHCKL?OK3%;q8&A@+tL5Q z-(&p3yLkJ^C`=1j(-rkBsqk?O*?0nt3$|ie=R#^{mT%Z@`#~k6V%LrhsH-c7kou|T zFPM$S?AUYqEf}-9A&MEN8E_;(tu)Jj5( z<}?Drq-U0oMHPoe6_}O@(O(Xu;Y+Y6;GsHB?+gYBj-r-PoYik5hVksjcA}@EatiHB zTF}zc2u;uL@Q~B1m{`%Z7&Y~+)Cx(O6a1MT>{`R)Zjas4wJ_=)2gC|jRx3-^gx!ks z<}Gf3V2-Su0Lh-D7DLxxw;7dH)ih^$hYhFP1FMLm)V4UR>s?E| zfGecao+N|JzKy3WOeNy5qU&MQegT$Lk+t`!T*TJNAROU$V$59S8ql+4L$=*U*5Kt9l@+ryy8~IlsAFCp{9= zpagoMS3d#E-w2q=>^Ze`r>#!i^%%r$$e6(_SsC()w-T`8N3e3$8nm{xxb>3xhoWiJ zm%V*S2SnvKI5VF0eaf5~Iz|&BGUboJD!a}31AG6o=G201vN^3nu=yeMW!6F0^lZo? z%S>zM2(i(wMjrTjCn<=RU<=4a2T zLFaVcq8*SL?!(F9Fbq@kkkt=aIY>lItJm~6gjNOF_if5PtzNSlf}Me=ori~)3W3)V z*UB*@-3zVkc6XhcS#!#=)`3VJ7Oi^%O;l8rQy`0#FA+>R&tPYJ zC{lv170baJqY$({SJv5R5{8HyF}pAt`W)bE&OT3VmN7I)-s-j;Sh(g1oEi!e{52c0 z%7Qc+eCqpXS=f$+ZLJOxrhvX;B`#$Z6=-Q&2ubgwp6p(O>BoNSR!j&tP}@zfy-({j zT!+>*kE6V4BR)Ev#zfr8nl76d=o1KXW2mlcLU~06;NcL?{S{La(b6(BHr7!W6LyWP zwF;9Qo<8d~(nE}xH~Ty_U>Pc^+IC>kx-Y;IqBwFQiA37MoKCsqXorMR1i5j9A{7Wn zB01~wXUfWg31wwvXlbqlw2KgIB`XQQ`kH6#YMeK3hH6KMIo@lX`a-p6S^ar5E!lzb zDIFi2OjG&G+`4oYU@Q^NgSXQtudE>(v={<57No1Gu0UH;1QtuwAbT&c7IahgV)Pj| zI=Xl6o?<$d=TNm^8y2nq5=zUfF)$RzC+9Ps*;97)F#4!8rnRk^_>&x+m2Yqq_^Pj~ zL_@U?(1u*QZT7xm@{gE37%;Af05y9~4Hdpn6&BS44O0LBAOJ~3K~!#d26gQ_5bz85 z^ux!~vltiNi98Q}$EoCwptZp~ZC?ABNkLLI$he2~I zM$K-BTx!nV*I`>0t<%=EPa;xQOS<^OQ*n$=s#z^n9k%>5>gB_z6@Gy66zZ1VgrIDZt~~T{4Do~k@yh#D{<9eT{{&*X z-^k~;X&8n{S;5+xO6Zyf(VXyz46SSrDH5+ab!0W5*&&P=t6jK!_KK3Ueng`s6ii?&@`W<} ztWI=6a~%XR1gN9%@hJ~kIjV=#3@1{qMQ?`b?;sY=TziJH0(KRK&9$yGIpe;R?b85t z08LE|Xl|;Z7GL=Wdv~HFprSlVh{i2{th!$K#xGO$(ZHzO)y^_7*}> z%pR;idIm_JLRonU-M=t9vQuKy&`^h(`g(}!2{)jUUCS9)1jPL}!3eDe%y`aq>ddJD zUXq}d?8LCrI-?a1=jMx8i?BF2bqKXJH7F}D^9;6S$;t>#JC-6CWYF`Evfn?ux2Ykf zS79o2H*7IVb^p2Lw5Wt6THAw!|9VU&c%U+%AU^&(z059L>6Ly` zmbf}Ax2()TkA%bM>{S_*+=&9(R0TFD?-+KT3`JE2)V42_!}vhv`}G=kz39Wb38?XJGc zFDuglEbt{^int8sLYp}ky)tI4M%u0=M>5y@w^-mylu_4lC+Zfgz}TdMiMZ+U_&h|Y zknAb=17Y;8T~2eBS617GC`o8vyZ~l;5WF$u63or|5(Pbm%ni^GBD=|Z@7vVlK2oz1 z%`5IkS!oo5BN}DB=k6=^eVI>z(}od_lw-kyIzm6@8_aGFhk_KKf#T?Z%l*!$KQ?rP zaKYT>CX90LefICQOZK9wX*q&H5q-lN5lPOSSDUDaGte`mSiE>4Dk{tK+O2e7OG9~7 zM1ABU{OJQ!?wTD;VzNeX(Ol11AhOmfF75p!qIKP9>beWjXo$|N{vplt-i$du%wI$; z_cnSvY)GO>`sYgf;!h8rY`P|lTgxDDDbIanSq`66eJ7jKm57!|)Wu+E+_Ay9IY&SN zg8HoSKhw|rb$>n$U;GA!>1I!((I{+v(laXyHzTPU9Ay)EL4qD!M=Zyjog0?U;6*93 z3NeF0w&pkzHU}Rg5!2(StEqq_7OLfOpy16-bqM%<5Ug=e!-VO}lxmTz0%t=DE{7gi znO9D@k>N>m5i(|FRxp7rMxSVqk-uO;JsA*o0d{0&ymhgfeolvkN$)4Koz`~DFJ;c0 z653AWIfZJ**}*ezc2efh>$;MlLlR6>SC`ZKEi|vp&}eCGgr;UF)8ke9!x537MfFa$ zTn#PM>t@;VUz`1I((3R=Wv~O#OrfGQh^ne`H^Q3-GHhCigoB8blt5Qgka#7VDalp3 z>9h%(4?zuXg2|T>oHpOJ*}69n#FVud9I_P&GuRDv3S|)iexK}7|2umyrCD87fj}Tg zPBgmbZsceIn14ZML854SB8!VyB%}C`R%!p%IA!gWnKZ^$594EvFL#h;xnsX>A zi69g%flo3WgU2KAl}u?!aqTbytH4=><%B!0acdzNAX)E#SkaP%q^PW}Arz5WKv?!? zf#(q}iPG<2rnA-{3n)${O=Lp5+`hfVkUFyLkBOAf34;QP*>dp41hoh%E3Y6FMWK0R z$3%H$Ims$${ow3uIoQ6MQp%u(H`Bf?YFIk0m5jfaNH4iLYnA8@%?Vlu_4N&;U-GYi zjyO74J2?j1=d}x-fdmF^p1^8At}eLu;X3Kei031#k>M5)QXu;m9Ie$*D1e5>I`?eN zHyp>QrL~pj%VBPx!^dK4NT3~YezhBHE4Tq*nJVN^HH5PDNE`lHXCQa!t|oY65T#}1 zsIIQgfjS;Gs4~HXp7}A}=rk$Y!YO2e?X&0Hx?wOSyHG7NPPoVuI$R&t2-AJ8YSWDGu zSufk;JbXfuvfvGkjgV!zfP>DF)5}`4mV`t|)}+^+2^BYP_qYyG;lWthLsctLQneHr z&7u}{bLW-V=cN?EvROG;;laT&ZL}|0M79pK0L%({m{9C;(&xN~j?8*87EF>$5pCRn zP&kN0hI5#+XRK03Yylze0wh@?BweAkO3tSsU}0MmY%@(kv$;BeJ$KS>BE7>GQ98-c z3E`T}h}L$(=i?Add7l@o&Rw>K;17mTSzhLz0lDR6!O^nP5-eQU3{#tMN;2ol3Y~&8 zP8XW|X9}BB$ybW9=Ic=sEhEI-WWvhgS7r98#AP7pBdDrn`zlClG2dYGUSH)$MOhFU z<7@IfGi^+mT^@wG*~8KmL~45xt!zdl9Dt%TlD2Hb2i*0lnm#OS4qsX3dXDqVNC6Fw z^($ZMvij!9ddxF( zLRp@)P7V^wN^0UF=+c5&^;}+qn)=&*s8-nX5M!BJLye=dJOV)!3uGm2QXmx-W$?)o zI3woyEz5O!nXJr^QRUTc&0l^+%_4~GfK=>KPv?sf*Dwc-8D};MHT-l~w(DxE9oUbN zT}wmlp2!fe$lx^j3g}{UQG{+FS^ZG$63@SiyiJEQn=8lI$savuMsX+mD43OI#!xU6LZqY=FcJ_bkmBV? zG6&g!!IwbyugJ@(FzfoPTHlV6gElwY%dw6DMiP+_M^0=Zv;$vZ^q| zW|(5*rCPq?WMz5Ya_{UY#}TZav3IjISkOV|1cW0_Nev6ocwLjps_QCLe~;UCtM~@H zOqpj;H?3+JAYJTlTUaPw;2<CUR zgoo^XmXt(^WH8?|Q&Ex)gu@{Uet0|I7EGZOX=ychYc9ed&($rRN_P~Y6^7;Yj7}C^ z6nTOz=RX5%$B5+^K~$J@rI)OPh~jFXa-JpRX+P9Vtd0Wfcxxj`B!)C@tcgreCVZCH7_AIluFATjUdY0Q$q zv9B0x-0u@%>tmk#hUr^YA6snDgP_`C1i^|Gv={WbKjR!-<`+_=BZHv`&2yo!FZ+9G ziCZ?KPkNZ(77T=-*i}W#%J!5LX-A}LDZMwgC%h7njL}`-1xgkbY76H$=p5>5t7so^ zcG|VcW;kdtp`r}B9ri3+%f6@yTL>Uf-i~mj6sjS5yef{87or`f_I1%{;b0P#NXnuE z-PcpF?d-q?lQm`45h|sa)k*=n(k_Hb7~;f_jP6}(!IA=&nStyJ5JI(Jkk+|fn`Z`j710sG@WqZkrXNH+aD2~lNtEV({4XV)MGP@RU_!{tTgGUfaOCHuf(;CRq85F!womuz$JvtX>Kbg~A!=u^$C6S$=hb30cUsl_6en&xFulHe59W8@{ zJMTZAyl$qDLr%TQ_Afhc3U>sU`$G#5%VG2391_^%pfi4%VvKWwMH5oUqKuyRd*H6H zN3jhqxF~Pdjm;6QKheuE%9ewIUeo33Iln(oQ<@p$ya*vw=l;^mnRc>jti*xi3f0R` zuhr>q<+7JJYW+GtSvd&4Qpmo@^d;tO*Xey_L1Y{{d0h*8##(h`%*CKhXDl&=!oe}x) z-u2IOheZd4;W~b^w-3eEd2vQ|C;#=>uQO?dU`4t8Gmc0q7;~zkOT?mEtnoucFvuOG zAV99BU;1|bi`mFz6qvTtcRQD{XBs9HMTc%?h3gB*%4gL|PY=$`ic{8vn7|7}c`XYm zR$FZ4R^n`(uo44S)1JGBulL~GyrkE)DQnJ4F40MW_s?2*=}!MjueMs#gBe7+!GMq6 z@ZVg6oM{+DE|Z--atLiW>JzGwW0miTotkYOs>*uA=T>NJ?Q4cW_0RLkN;_tZk)tGq zs`cr;CzHt{Tpovug3L5Q@=6@gpv<)C)f2byaOTw8p|L3d#CpA^vq*%zMmm$BwZMDH zVLMKS#rvs$?Ytcy7jii3*=LAE2C8XLfGA&$9Q&Ka_BNAMkX@3ZxnFWFZE{{ryoClw zYgOcuo~qIz-!Y)16Gagk5*%L?={(N059yis;5-8faAj3I_ti`fE1gakeNuDN#7Law zX_>L}q+nnw$F&7PMy@mtD?zcTzrEoetNA2${>IK%s`1Qm4j1h}cnlUO%K4aFh;)F; z8tE6D3Y(lV-paVOi*seQ2|>YKs^pyC;6)!KDcA3uKIO~~F?AD#=sno0F%63X%6VZd z^PX3S)K8M55P8c}ZIX@>& zFzBaJAMc}ugK6_*uUM8>{r{YAyGTh@&kyYuvUpDlT$ee%!2kjwb_O^>buY)7cVYJP zKV5R%mu7q(Oz<2J$sZ+z93=vI!IfpMl%EcKIupN{!IWJhkw7Yuf-OX5)yU1iG{Sjug?vM2wtd)^FQuu;-Cw9;u8D zC7p5)ru-yX(}Nk2EQ9C;ZzVD{If}{2xFcr)$S9NJ?D+vwbSBl6XMbOk1d0MP7H=ax z<}!B|HLaw4{9MfYxj3Fm3lfPW8LC_XWB?;6N+#mqgaC9qkoB&Z;$(Bm_)r)mpGAV_ zbBZ!0DRD`UXr>K8@*%AN$z+-`)OoMN6o{fAlS%A8!4H*D5zt!AZ~PINil#Z=6TFcQlr@qC$JjU01ra1OhsFAcW76qU>oKo3 zA0$UZRg{8;DqHXIc!GMNTdZE+!|7+qYBsMHK@93#77r~Gt46{*e;BVHiZ4N@uTA-=Gj*)=#a^f z)9a9f%?VK2a9C|k#WgmIm(vL*sR&^ptJNCZe#jgzArYT|QP4qiSZ&kk6m%V){lwv} z0V1HAm*eYX`hDCu{21|+)u~10kxpj{OabQxpKNHVPV?u~?Pq_B<@rPk2+U_VYc+t2 zZa~qyB!d~;<749vLMe}|jvlcwHRbk`pB32TEwHymuKjMg9P zE1X|erwoB1xzfpTDhqL1fz8IEvUv}1LsuXxs1;X0vb;|s+ak0N(^nZK1ED|wkVqgi z8Kja)_iXjps~p?M7w7M!+ZJR#4O#T!Zn5ZGWos@GpDG-rb4jLBsU&o^v3T!5Ejw?S zti=bET(^PMqRXt*XPR7dwyc&=LC*2m*f==5AU=(rWo&$$^gZjml5LOi1n>8A1DGjNv?zHTWY3OwX1qIR&z!So zW_HGVeD-+8yFQ*Bdp)v7woFPCDT-o_APF#mAixYFG#ZVZ8t9yJsP2k?+H>#!SI4TZ zY7hWPu&+*w61%$U*8AVP?}qPw7tu%*L&IUWpE|SABJ(~n8by11HzX~T7AZx#((}(f zm~?_zkDP!<74WL*?p2#TZ%YI?kwrzVtW6F=U^HrSi>QtMTYM zP0IX-lyvRvOK|aRcGe}mqJ#zuNFD4eWmlLRQlKd&G@l0nFW4qswQRu+C{9}FM*R5( z2|;%|VHRzJVCJd-}6pcEltfi9|6nG7MP_Lbs*|5)6Y^BzV0FlCcP2#>Rv68Ggvw zCFdhg)TbfGaf5Q%ht94cMn+^SA`|?&uWt~EM1n^&IsN5Rl?7+&y=oH4Xs=W8$YD(> zG2unO8%RzTuE>(EiXUA){i&|q88j8#TTKopCF%@IVe-f6*l{p99?hH83rohzzdC1P$q74#WzrSi`W*>}P*mSHS@Y z1x(YlupMGZp%r0xXb6$f=y(-3qu7WHjbgZDsdrtKgB0MwzJsF!3nLxiH2fnwb57Fo-Y^{{_nkwY5l&JM%?GU-HDb4*2 z*sZPuI`w@86Ft%Q@95~t+JDLwJV`=Fdk6HS4NI+@wx-U6kT8nGDQ>UIT~~?css}_1 zCzH}O4p6^5?bFtlHcqb2EEWe6^>y`5V5byKgSb+7?icL{pw&q@9wc#;oT7#WF zpDdic)zR6F@Nk$JpJx*4KOP($LVtfBBwr*+jq;+ZX z)O1dgq6C($p{=DEc9!HfpBhO*Lwz&1vgo2X&AF1{kp_?_>R?*A>B>_#>>+6O5PYi1 z`z+l$B~ge(Jc;(!c6ahfW+9{p`HOXRjXaLlNYidf3CcXF5kAoa%gXIs(Vo%lc1U&v zzBECva1-Oi7ZHhs(cd@d>NJp#!d`&_xz72ly8-St)pxdFe21ii@7B9@lXu^lca5IcpXNDO7%|J50sHW%h+BEn9C{uX6Hrl67DPC% zAwF~wFd{R;a(NsMOq43;;FZ$M0JkmZQVDcRLDkVSyk^lKTN5cq zd5MZ(D8Q92Gtoced%~?BQLta8oX7|@qKkQCG=_8M>!4|wA*(4NltE`#FSEEOL@APX zXj&DOde9eFdU(7^q_4(hTh1mlk28vLr8-UJ%o)RHDkbRc9Yl9`e^&NRhS}>$banM2 z9*ZI>7NqTmqiwW!o)?BOg5=-{h8SlTiLYb? zCTO1QHh=?(fgvRVsM}zrf?%diZqP#&k*@JQH*#2w6a%>m&tob9-nlE9KAO5#hAokAg`0K2(vU zWR~NbXV#UHpCh9YoI7(7s((Ig;+dF2K1e}N0PV<^>$9S=ro21K)sr*4+UCz9R6-;| zEg>`Wdr+djt*sp`jSWzP%iSuvJ;~XpHOZ6ekS7{v)izSMi9a!cr~OABA9#-A%4FL z=P$Yxa5F1QZq3=VwcHvc`xm)$!&70IgL08=9mVn)C-BX1MkcSB3d!h3p40+O7E{fi z`}P*%Vjg1gBpRC9vIgks*=yR!?I>zg?NGvm7o!Bbi&0nN!Ic{&#ly{9ThP$t*p1al{Ji^p!{QK~^D zjxjL)gm_m-7814}!ZRP|&tBvLT())PSfD?N#twmmm5*_fhl%ihiHmNf%84BJs({}- z$3&2RHO7JZ^jA3Z$}Ob;UmhO;cVuJ$j*3bE03ZNKL_t&~HOww_F7oAO6f5VP#ugZQ_8u(Km7H@5Jjt2vORR86ji$a1 zHdZY3qpZ9b{k?UFhnq46=wxtc4r7IO9HrVx7dAUt2%=?pR&dt%Vr_%#>|_tnMk5iN zJboI`D$t)?0$EJ%8K-tHs!Xq4>VwCtVW8~`r?+`VT|HRf`5ZwhJ+zf?z~Fie4UM3- zwh5Y=OCTX}hWFxyTA0d0ekM~%V(4wDs<3jQ7l~*;qJ!rdLYqm*DI$HBsPFM?*L2?o z!Uwfr11?^;gxcChcydT4ki%0~*M#=ARz#)cX_-&y9rFA#mX?_a_g#dkM`sAqoDO-q z%oi#j@)(ur6-fiOS`IC=0w+(N!QfCB*?kDXx}G?B7UA$H5_WOMmzEZKQ0!^MX#aUY zcxG^5~uJfgR2#Tf*S#t??U^P10+fZG79A0mBZVO7j z^!4@N(#7*Id^f|Ai_!-FRNY?aIRs4%xxvKDx{`HWEWgbtis{#+&3)nu@72?2Y;1=| z%kF8=*}GhO2|Zn1u>7kzu%76Rxhp+f$|1;x)4q&ep*BPa$-XmzK$yK7XFH-wk|47F}iD1C{cZ z$XB~FF&i+XxTEzlYA@A8q5EpaCUk0b6Br#CMssr$qDDTqWu<#_N?{jTjmp&dGtNd!o0u7nd$KBPoh`)YSC*irSTiuu%D! z1GQ|r(!KAsnougAgr-g(p~(Jh4>qB4PK=x`sgUk3`xlxh^nm&bgk^y1tPzW70?RxkWs(;)$#q_5MeGip}AqiLMX zA_T|GtphS3`QWxs?1vFarXTrBiNs3f5CT#c7Yi~~nduJE%m#>912hq11jY2p z7Zww_M!k1pq~K3ceOW`&Q~)W>bedTTBO)-2O64#-((nxDigAbVB@QDQA4O1!!K0?< zpqP`1`(RG4xlrDam=pJYcmOS}?XbPeT}ILAFn3i2Hm>qv#j+BN4%VZ;qngR39Oi48 z16{-Ru)9;F)M1VPEr#Hv8{0)Ql|6Y&@x|d~Z zH6mpHd>&xiY9A_!H4JtfL_9LYju7kVIu4XoBmL%URaoZvfE|OWhLJLU(YOsyXgNOm zv<7-Ik#_EC8dYKF2^>0n9GWkPQM1$ysHarXO`sqsuzigWs?m(Ww*AlzYm%p=E5l9Zt<^RfTqBQEr9`q;dwLWaAyrx$0>o`W|~h_Ep)ZQl+h z6e^1(Y*=O@*7G^yqn%FXlX{(4S7q$~YhnZ|)HhKe)n>SCY$Qb zyDH=2#mi`EZib~)F#CNbCwXy&f~AG^i1r@g??ac?*j^peRfbRM!Yb`$1Vl&Lqz8{N z@>QT~P~iN9I+%Jc*;Si^o>M2zqOZ3fqsa`6``m{tVRdB`rPe+eqjj)EYE6|fCzo`k zi!e_#V41uVD#B?i7?j_UgGzzMo3esu|JPou#b_jsC>AoZVOq71Cq8Ic zRd@l#;wWdu$DhA4ey&{R+!ApNi{;%6#kJGuN{qd>cPYBMhd4<`kg{yTL}g|I4Gj$# z9FD^Bu5^jZCfg4R%KaV-s{?zvlIEZwCht|tJy%q1S|II1rSz%0Qq$K2~Tgrs^{RFO}YClL|{`v(tv;Sd^1*_p8=iAX?4aqirC7*aXn%5n~_ zCX2-Sl#9cdCw&YB5!a?_({v@t7j;-Fzd>o=87f19#}E~`=fXL#e2*{F-o?f!8 z=VAF)Lzl`XC6t_RDmh6PX%|YxF6*G*opqK(5*5;y zsFXgNFbZ(G5OAik?gA%jy`GsXU2yMYBAq>2eHJ}^Ly+?}PkQeOpjr6Pjb+L%1f>?< zljfx7pSoK$=17?@_Mz0oLR zvX+ohAYH%`<$ZWXpIhWmr|eZ{U47`lJb5odet8-UA8vr2(AL4$=3(!iJ&cT#GO)5w zR>WXN^!*|4QoRNI}OU(BkXVR^78qn>~uMODM~qJhpKBTig5@33V;%>uT9&pAg|_B9r^|>B(x1) z*L6;&Ji9;slYjl!H`1CAOKxv(4?g|qLmq1d*ZEHo-$>%>Y|5!ZpRsAnc0Bmt!(-;; z=_ek;@X#PvnkYc)8w_LZnw40+dL;&iO%y1t(}}Wd2evuCR7NPMAu-a*237Us@j=t1 z5d`HP%=gq_neXF_0T*2$NvQ%>!9954#djHs>s9QWzB*mbBcpNLw0b$_FIdJb#razI zv?Ks06ck`VsSHhyA{p(1#~0*YJYs1kD0@(8$3pE(EYJ?QBdew;z%!d-NO;yGCa=cd z|LnKu?d#*9J{M&z%fRq(44XErMxbyBWV0K7c_^)}0S~aKjPAp3m_`h~KoMVFvPi%u z^&=#=V2QRLW%6lv4A^vCEhCPY?+)~hhVYZWe}?~F0t=;>fN=AD+HzzZ^x%#kAkgW^{;*io8+y z>=szU$32N1pmFA=@!Xt5%l@;NZZQq9#t%qWCrK#u(C?bMF=^USV zXYxVZaheh5XHIbDMe-h$N>%RjpROxG-jcz)5VcD2_dk0ULjwa) zw_w5YO%NlexW_Tw=lIZv0#VET-%iap$?HnJhF=^YLx(5dBBoCR zcbxrv(Ey+5haE}oz6^b{=}J) zUu>^pNhZL$=fNMsjJ88F+xVP`H0w&X)8n=f$gHcuK``kW6fKx1e};L|r<}s!b)EE; zoeF=0B*YSb>e(Zig}22*nyogXnTvEb^sVPQ-Hc zSs1(zD6k;?DUrBH{s85Cu8=X2K}jrKxADe@EjVsMm& z%3GihpNA&J(|nG@M^GSLc6xky4;aooYY}I-Zb)jv66GBf%jeT364{Rt3K9jsi{240 zUU}hVG&j}3qvdk2Y_|W+EnRrvzS~hyTn=;OoXcoG`T0BW;U476m-*RKphM4|)|G-w zs#wyQTdwUwNF8x|d8e!nA*j@HMEu|9B<(9Ny@JR{e|F+ER|E0^1_r|T{_i}%C=ok) znUmu7w7n{Ek9WS*=zdFy^`swKZ@<)o5^)@hwNE(cn;!5Gk4B8qUft#JY~2tmD1+-v`?WLpC~GGQ{aNfS!L)a%=!x4k5Ay9`{_8<73PZwy=+oE;u7Z zSwg!BJ^ETSH8$h*SKopn+gTasQ@Tc?I*(=Bdi$NQV{Kf~owQel^FrE_RPm<(*m5~b zQs>Gmg^_0*M5XivN(<$&p7L=MAjZCLzquAMbv+J$`8nQwZy$UfIlHbjP)G7$pnn+U zr3KiqWjhi>7ZLCn(^&m&K3791R?b3|V$3z;kRsAv)!{)Kiefua8t6k&fiDA%rN!^l zrEfq|Ta7nge-)Q5UV^GBypLznmUt2tFJ6Fq?%D#Mai0C0Ox1Dv4EFVuOJm4T=UiFr zv-Ykgdt>Ljpcfq-c>VKm+WOP%jzA*Dh1CC7Q3`gda=WhW8Q{Rl3&18==n zg~p~9mx($zWo1QXc-yYsd+;Cs>_4Jw@MeVM9(E9>I<1!Nz}?p^v7j5r5Hstc3x^1g zf?l5(U_G5a&glo9W^ISfa`;QP;q{-t&djl@ocrh&s`lAe

    &^746-hH1V78yY(kh^K3zUrzY)%el<3$gkp2{UzaQ14%{uOB6N1u?sr z`5-83?tv3X&|XO2$LoM}X@4k1cc8Xm7>AFXfJyVkb88iM5FbVy2fjFf@BiQj2rRz? zYWy4&y^Z026NQ~M8(bkTk&h!m1V46>6TFLI?o+k79v4WTI6)FR@}QO8jpL`AaqwUb zU+mfX&r?FqW@L02`#;=|yY9Xh3yOXKvxmri(v2K*M(53wK0*b);7Usp`Mh4lMobkp zu1rkp<#u%?$4r_BDSsP2`rt70W#k2NnbqtFRj>PdyYa#Md$4-#TI3Zx0{_4Z&M&9D z2c->E3}dO-1zq?NM+poBIT-Sxi&^_=uV(7~q-31oT?;96GroA|Eu21ck1{x66J?twS_zSHA7NmnPu;T2t2F2BO-Nzb32H^GXjO@I<1!~{JP zv|N##(T#f#^r53C0l!~kW{OnhYbKE;0}b^J_~MH%@w-2~2l0+e(Bh|<9B=BXaJ!Yb zgnaoDk|=O>^*RAMI(UCL&p&fDoD$RFQ3KEHYDY9dB!sS8Y>OGI(+>JHiJIyfoIZ02 z+t>dNjMf%tR(FQyXmMauET2LGMM&BO{5t1cb@0a#@mIRXNqd!$FY&#b;lF zSEEsbxv@i2s|68Sz4yTZ+<*V=m|yw;jLz2>xix+4mJ_6xOGlWugIai!$m8Fn&XrS1 zo!J0Ug8$5=Fy7eLhP+_v*`<39lY=ga6PUn@FTaoN+t$OAe;2Hgz1)5_)gPukNQk3_ z^2ex<5A*YPMsN~)dN(KP2uFAEc0-FWzy}|Ef!}@P zb|kx7p^1UCBjUK_MXF~8@|abMxLxS97KlOkMKALo(Yj{R)s}p(#9LF@8Ss^ znv&anMS&nCIX?d62!8N`dvMFDdk`Po$q28h!Jxy3Br!C}#7Dr{|h54i3HodCoK2_e!Q}CFCKho2MU9?BNqDzUY|Ct z<%N7E+OhNHgD9745VgvoBfu8dYq!DYi!wQ8x>gyumU+-vjEJ@k7tWqQ?S)#Wb%>L_ zS667SQlfi_`XO{Bh?rHxK8S3G;Z@tTF8b`Mc z1w19+$B7Fgc=fe+kW3_Ug5i$82RQIJdh`@d9(Fg(9;30DDr6gU!>OzUx`aV{Jw}xc zoXJcltgERwqn<Oqj0rX%8bk7hoG53(Z&XuE|f{tfl2?3wq3bmfGR3NHo`5=|%+7r2L#0*Fk(ITM4~ zK+?aB3Ep0Q`AxL6bULibvk+CbG1%Xaov*%(;Y1!{p&#iRyJv>9N zy>OF7;0hJ7I};NzIql@AXM!}-U(xao_D+JwmE?aKeu*WEjHBc9$yA1>yoiqJb+YME;j4;3ZuXr~rx|00L;r(bE-lWigVn@?VR$!j6I(u)O-Hk z=e_vgK%X-s*$sHC4C50g3I%AEk-$sOzl4UCA?W!J!;p&7awoub(3}KFm~|`?XU7sr z&fdthMh>x6Nuh>k-|j$dQ-lKp7x$9W2v54-dV4zX+%wOib3lVAc^Gj+<MDGB@Gzt5a;fsBgaTD+A)=u7Xw60VD!zxoxF7aZo{vd3 zz{8bj@~w)c^L)3aiZtn~hc@dP59~lxS&dKj?Zd$Xhajw3%&c}v?PAdg-gt8_x_aY4 z;XN1}$$ZChOOx$k->*=*j3Vg*2j{6fH~l%bct3_c4$B!uRpPsq z3QI4%_znlq5p^p@N1`sWK}`COV*|Y0mgg5e>|2q(9x=lDXC^r}IqA`b?;$*@nT)4mo4nxy&vzt{~@%{QnW@la9{aMJwX)wka0`(_s(Pp=-M69=OO9e zf>(F$K~?n`gLcKr^g?XB75$+H&NF>gln@O|3EM}Vn%-UnOD);+=xN39Ru=RGeS6Rw?dWbkDI9qMNV}> zm$}*%)=TjC6E9(8bd(*D*<5z?TI!Xekvuzh?nd9hD0*-o;@+(pgLI^b>!6PH$IaxF zQzBth4W|EFu3#Zy z2t<8%!e4w7{^6gVL;t`KqznOIW)bY1)2BZ1tEbT1+=4{j50Kz|ChS%BTulj( zQ$LghOxiveMGqpH^x&sIdlm!z{q8L1*$F+1$Y>ak{nKL@2-`4CzGoUJ|=P%Mg)zgcrm}qRM$8Vqd4Z?ak;sw7CQwpYM;U9Z% zdBVAxi8N?jhrFPQj}G_a)jgeD@fv4%7Cf3Q+t#Ib@u)VA96W?wZ@!I)ycV&*{aL=F zYXd|!UEwC^Y~HI%*#mg(W|e?o0-EuMPvX$%eY@)*zA3i*LV*!K9ZUP4n>63M)WFcNb|L}oae z6S;DncEL=a%bpk#zU>(CK7{k<&SU56Z@|=J$T9^i?Ryc|Q0?VLJobwhFq|yIsCEbQ z6U~&9827ER-K`EUPAvEk`m7DORC@{Uz4IRYUTNBB&s=mR|KUj0N&M=GS0EQ`L9f0B zBO_5p5~Y{PeqdV8kqNrepx6P=kIRiA1 z70M0QgHCYQzHeX;dP*FKTMP|N9oV+zCT6W3HYyQPdbx`0?Bn#=>`cP1rum_^g|M*% zqU0g$*;j>MJpK|i*>)@Rv;WQ%^bkAt#f$Y=ytopfvh~c89F$slmg$uo;c;ChgzYu3 z@^;`?Prin?cJG7VBjrG}l1W#Ao}K};wRK|I@)ghu*TCcP!DBQ{sBq0zSDOtf5zoYY zJD_`S!GHVPU*Yhf<6Jq-HnJ|0sH%jnu09M53}MAhH$yGB86GJC#b|X^yfR%W&l)xJ zU=@5H-Qhg^=fC_Jni|`nDYMO%jtgzw*0wGlVY7PuR;YRFxzC?wbtB6Nq|9P*CVAAV zfGBwct(^({*`NOe(b3UaBxr1>A6jzI8RRV3rj82@qsR{`*t|9$re%Nii@`-mgvCnu z=Km0%A2@@*`MW150uqn_03ZNKL_t(wn+d2&u9eft!c!fRIurMmSCnDNntNc1d??A< z348|b`_AU=ZHG)U?%jsG#gE|C*FM0LPrc40TA4=LWD`Qt#9~QYxOf?xHg7_~yzNe_ zNaC{l46fuFw>g8KL;yzKL-1GJhJXCWXYlU(pF)-NY10jI6@v2i4~Dr-X8oq^@Re+W z5g%ZddB^Fwl6^H9H}}1ugAUuC(;pFw$RqvjlP~2i6Q*O&o7~GNaujZF@vsSFEB$wU|gKw!{W9B zuRny<8}8&pu^nyXfM^n2dZxnhBym{c3D&IVJpilh53q0VCwTm^$B~E)xt0Feii1!h znDDvt4Op;b6_%{J)v1KVTgI#0Uttf>eMqezPrcQK-|lL2(Hn3kZH!IZ5S+N5x%lh! z+Y+1q#o8up*su;|i#HlLZW zq>(Kxy+|aIxc$z%c>;kI?}R2ruW(Imw|F8W?%R%7{vYw({p2s7z@>}loaFZv=qg+u zgUj{KKH7TQeMnd#SkY#96>D}#hY7mUx>9RbBKRN%lzVaE{2Bb}u_w^m)9IdpE78@N zHGi?TnaP1~z55X!DW;fRP$V;l5tHe}a>)Ip5JrN3h|cI@oTxd9r=ED46IF5!ygrk~ za_pv1*he9IRZ?1pjko;(@z@9?vzK{7#FhG148bo$kM>9Ci-d6Sz~^}Ow=Z#QM7m}| zKuwj&J?Q7S@BLcDPE$q9q6fXBy&XRPjmtPU7ocAy$u&S{9c2jvLt%!HFIrfEg0h>C zRF}geN0~&2sy-qsd#&p{Q3l%75lcu&`0qk8cpLWaKZ>9H^eLw^P?}xke5w#UsK0+0 zmoGJ-va$k&mAAn1Ea4s~*&K2zzc~bI6wLA%70W`*@FNj?07>sUJpIgWJp24^1iTU? z>B<91UJDuM?CwWva~l>fSpt9YdPx5HP|Q9^)`;7amEAyd;BDzJEO0NCDE~1AVFWOwzl}JFWBy>|Cp{{^b z@nf`goA`^r{0CgV)Cix~o^>T+s;*RZsc&q>NO%M{-Mkr|;>`@xlFR`}c65TSGrtc* zL@gb+$*<`|yj$UuO8F6P#SR zkfTo!xuZvqW7+cMC|$e*hFk{3JD6vH8MAZTtMppamXK5y@LsjOOYrDpFW{Be_VDwQ zzrwlVI(@?2w10Oq8t$(070AD{HBfjaLGFq#bD@BZ%B z_~g?ne*U=xjhWw{)UeUi+|E7et8cjtfr{-glEaX!VVAtla`!;)LWu~P!qMCr!(aUD zGS1bH^8bgsSL{?ZiwM*NT%xd<*Mj02`l0)3I6Q(|w%m_E$t^IG1I$Sv*$J0$JyTzE zdYenn%I}qN@Wc@Q%cGZgKJcVgEVshz@G<1pJ4;hF$mut zZimo{VJCW+V3BN4cEK0cQdU-P9%a@a z#_6+{uzdM4ELgF_nYv&MKw@1jSJ#<^$phJ5s7U&@!l?LPF&GWtrRQG2tFOGyh?FZW zC`{C~xwQu^tsPji_GVNpyMxD|5!s%zS93X6&KoAf9~U*Z64v z#|Zc&H<55eXbsT14Gz$`~A@JmLWFU1Fsx+S`wsO&sCD`54APK z3;$2{bp>^W6EbpegTVLY4738cz;Q>rdf4$ z_bL=d4n~Xq75ZXjIDGI6MruXELrmT~`{yrQ@;0*9Dx(p|wiXo@VbdLtU~nh_$sFY8 zuSnT_E9V^z*T3~Z_pHT`{}0hIDDd&V5ApO<&qGmU_Bm!kYEG580R8Kixd8nt$!r32 zxDNWjU>G&WPxGj#;_@YsLR$f~h{<`#Ig}}=WHJW_vLw08m~c+Kr6=2? zuCwPUHK9PSqCY}U zv=lqv_<(h#08+XN=L#-5ArXt=@ZlPM#`6}hM`+;#h$d8KHJ9y(lK>&+UVGvmFx~I0 zbFaCfRwALUMsVq$puRPR-~9GXJoWS&?1+5T1f9FUY)`_&qo}GnhEOns1*`6Yr|eed z$zbP<_iB9FUL`$gUy!|`o>|+o2ubfI_!j>d=PtD4r~l)(%-T;*Stc%y*$9JH$w6;! z=W%A0^A=#Jw}Looitwd9RyN9xTsd*adgPQ~3zaoU6lM z{q-+!@X&FFQfFfp&qW+0qlI&4FQK8K36%?$qHNg%u+&Pn|F#*2o)}?bNN0~)ytwUW)gdLeQPm}*i=SPgOd1ndIB`3%`d$tz6y#pv;unO~6 z+zC_4=L8syMKtvhD9jE&zOE@f1;!JFq+`ghAfB+W>*H?x*I(6PVAx;+&xu+(i3HiL zB*|_dVrF%$DG6g+Hfn0lKsRhGT(k@Y^KXSIg`5OoG76Xxr<%lT>aHbKlWDCf;YH9~ zmF|G`kmmmzbVo|?+N-bQ@n1ZFSTqcuW__i^=R{p&(HN?Zo?yO_#VfZXRKCesF-u1> zKEmfpc1L7ReEtqgw)^j4L(^nt!Ef(Q;OEaZaC; zucdJImNR|8K?hoLG5afe$)7+E-icEuj^l6s+kfX7{eEw5=O(MJWP2omlcz7?^qI?8 zvUDjHuDTD73het}FMj&>|A@Lv zwFvqo zt}H^rcN?s-KSBS92k-9Qji;V`2JNlQ%#(37g!Z6Qovz~|$Ss@iM5uf-VhM}wRgx;z zNbsJUq$?+7l1|}E3L>d2MKW|B^x_|*skI+(@7|5)pM43jks&BbZj&1_ucyh@QI=K2 z<4GK=Ig3~CLrgcq!$iJbsqki+|xd44GK)*UN+W;MK7{%kUIA_qiI=c~# z#ZXYO8A|aTJYQ261xQLI4pX!2LBf!jZ8Cv!n4aZ4^HnLn3t{ON?ER=3fA^Ee@%iV~ z@KH7TDzY>Rx0fvviQ?F?6X@&haW50Zni9qs#GS4u* z8oG*9R$8*r+0liXno|f54WYDhB?=cm2-CX?Njt>4l2b!t!Kj*-u)NSk5u+IB`HTE5 zP|6;}xw;5`^Yklt;@59*Z(HCh1?MS|+#sf|z6mE!o`Gpv$S+@w!o|OXgtCYOU|TL? zGAK*fvY{uFsH!@Srp87{iU$?T??T>!dyyc9 zc@cuG6vCE*JnbQAY0T(tC<|bDm+@W=F8UE7Vg+{X+Q*5c&ptouRClgI(rcp7UX6}M zP*qif&h~bw-U7_O=^<#vn~^YmNFoHG7C6oVJ%7^+Q!a(6E`;S@1Ch5G{)In6f29H4a{N#Bz>2>w8^Bko+AZ%E=e4bnvIPkOgYt=I*T1$ zZOcH_u~RsEt^pp8hSCM=kzcuuA^HT-wH2}f0VXwyn;t+ZhUHlVLt74n)v#yW> zoIEBQYqE{?Az^u-dh_59gwQ{j!0R74&;R|;d%0>lUep$2|4g+*jW3wQRa%~{Y)KQ^ z>{4x9slRpZt8h4q!&PU{(a{CXSBT<;+Yu;QgQ)I@-2?y}@?w$C@pFV~Y$7@(uc~)e5*~EsX&`7%|jvPJ9egNq;f7QKE0*evV zy)aM!Th50myf93K_X9lhkdT)__iq4-e*jVXBeZmc@z%~)@w5N&7&_Zq+~EA``H?*4 zQIUA&_?L%Ha$BJzTLbf(B>A=_%JC9u_bh^woh`?ta@{t@iL`#6F2 z>Ps)-SC2o1SY#MJu10_L;C!O4l&EQJ?!=)ZrxA%JQLm*2+7$^@+`^0>9kU~*vRTtO*iG;2b;1xDVTuuFaq{qb^qxaU1Q{hMd;;RpM8 zEbx`JwxrP!&UiIRR=L`L@X!g=)wdv!UyQ}8?}Z#%2_$=%6f#qPJe|=*@t<-FR%54* zw|BjP=bwEMUwnR$V<2u9u;R1cvl9b!)oO=D;rq%zW`-ZSFA{bDQ9XpPy#hnu z@c>=C@$N@A)HkCIdExw7{MBFl8A72D|2u+J+qRRLA&AS>4$vt$H%$}&=HLE1{NyJ; zM~Z^s_KmC1($oND${eO?qcm)q<7yxnD!{sR>#%vtW^CSeD^{<)nJ+FYIS2_cSo#QL zMS`k$5YuIxJ6F$6-Ko=OQB!jsx}HFQW}IH7Aac64HecY;n2Dm2GM+oUanojOy>$mx zu3EuN#I`=@{FAbEk_JifVKC4-S^**HEVA{&}YGj_d&Ab%$`d|Q}y^D zDFL*#b>Ya7<2Zi&G>%lAL1$+d3i7;Mkc6)nWhI!#(QUULjbt4}ct{>Vs}NvysK zq&b_=xgsJje;^-Qwr;|fZKUfCtX{nok~s?7809&%M0iAdm4ahSc==p?`Nfwwb^0QX z96813i5$qQYXioG-jUES;n4(2%F3~0#~oO^ZXNEt`)({;PzK2gvz@Z^2=}*A+lK1R zM^cw?;@B}9IPfL+2UZ_D3r)3oe)P3FSAwTtj7D@UTd@M$Z@m>auUm(^?!FV{r2&|U z0bW-kPvXEu2|x>!Gdu6Gni_om3F%sob7#)7o?Z{Gp(7x1uOy*AZd$z>8#Zmk)@@s{ zZQCZ~2UQ+bV;fOMBRPB9;^1qruM0;GAHm_n$8hH20P0$z2nA#)ii3J#Xm}bJZi;c6 z&?r=0arSnSEB7<^KH6N(=1LSaY}&XM8*W*NTW{Zto7b#Fen?}RN_x^>b>;|L+*jY( z(Saj}YjC*gB&tsJp{p-}{GiN9Dkm5>rv!wqP*P5ek7%>qDwoJ%kJGImjnP=6AhvE^ zi*+}z#I3h(!OE3OkQb1+I%yhlm?n`n`FO8VVxhjF9iM!D4AsZZq2^c(V$l)T23)&y zMXevvxP|<}QoaK=Y*>peTQ*|V$|VSROt$|fRa9vuWDSz+!RTlNmuoNL=#hgsb?O2R z9q;9R5pZGdsa0^eG^{Dlb{y_b<0nm?v+Rf@tTBWM|1CqPU0sC-hOKb#ba6=mHr%ob zx81%4n>KC2qQwiCn}BR8ohwQNsop}!-cs}p#yH7!@W2MY- z#?70s`ljUw`UFhYHQ@xxS{|bpV!DQ=hDKB!`T|F*s&VS%Nkm7(2nMc=t~O1;pq3sX zBN~aLpdf(lTW`V5>(=1jbwk*^xQ&ysghaG4PX9vaR+`eVzxAKvz?aoHcJwGNoUesx zSqS)j&Ma~+V9frGjVA@}x#xEL&42y(2>EoFjO?TdAfB8^O0Q@gBro6B6nsN1U?kjs z_;-H}pU=xtqIT_ z5im^~iKGF4umE}a1t>2oMR{c<%F4>Q`an>qXe5m8&NlS+bYXBP%vo1mkHPOz7&2>L zb!Ru7wgS3tB4OC@2MSPHQiAe|3RF~7prEK2n&yFFBoT{5(A?aNk?;@(2Zzwz-3!}D zz{fq@_O%Nlr|6nUm@q7Xy!>L6(VCW*qr7q+LU|!*n#RuA$nY@tt;XX~*0aC2pELU2 zu`x>5UdZ>4C3MbImXwyGw5$Z><&~(IR|&7j3(cd!(34ytr*$Q0B*9Gw`g@t7nVpBL zST&zvNtu8pP7#Ihpkm%Ul$DmEtfG?Fma?664v7r0y}cDZT^+1zXICGF2M3s;S5b4X z@KZmTGx|tovKn?Yd0foYfLUS#k16Bl=xj!)2T}8&qM{5Hm6fQdn1|xhVn*DMzC?o8 z+1`P^zFvgGVRZNOB0M~VkY9HCH)k7#tixdq*dd@hCgG(sesm659ZpSsMuEW8S=ZC@LvIVPO#p3-eJ>Sis1D z(UB4K^z@*=uNVFO1L$b)f^8=e^eJxOI2)3&D-&`i5=j%fAy80Qg35XG7^YuPT!f19 zQUroQ<^u?ahtb{H&CUUhrtEBQVJ%F4?S4CSGe>{eL` zpDRK#5obepcQ^Aw5aDEZPd``8Q;gEWA&+o_D$8ZYpS*{;S;BT$w&`5)^RRWd?=rhv zK$Y)!lB%p4Dk@4)T%3=>f&!G67jrP=^?A7(*xl8S-o8PuW|9r)>kqSC<*K>cmc;$> zmhHB4B-4C8wY8*zbf=1LySmQYZsI&MO4gDit9kq=EiFP(VLnQVi%?cxf}-MlsEUGt z{vmXA^`d`Z5Cg+ew6}F39t(4yyi?)7*5}Fz(sTp-aU$ z&q=5*0>g%37|?YC`S~G~mK39?v>2r&WxQX5p%DMRyQ_!y>d@d2BMLh^yZO$gVuC6g z*QNMnv(I89X-aIPXb;fZmX?*Fq@)D?K!8Vb4Gs-4I%p(3jNaZ}^mKPa7CL-B4`d?t zyY{N`+9nbfY)R#3UszOtlCmgvU$gsu-oE#VD^R=XF(8LL+H>_YVy8qphVGk!Td%U0sYs@OxDbhOfSVJuYMC zPf}qRCX&en2d48%6wE8JQCZ?cX|cw(huNYokgRB|ujJ}VS!pteRL!9~Lzb>p zjxYyZsZG{&_5c~Il&yD~ba}wk*DHblo95qqUaPwo#=h5pA|>lASK81$QK->QvG>Z{}90 zb4*OKu9mY`Nk3)_R@4dimB~L2iIl{BtQc!Y8i!uH@8$-Q@ihBcVsy+HyZcymH<7ch zlmMZ1wJgUOq`O&W+v+6p$X-#vNi6$xt}=~0x*o#kiu=0-B-gg4+T|$lW!q{yeZeY` zKq;9B4{B_^?P40;oW6AXNx>Sh3%DduE<9;d0ide7qV4Mto3#IEUpbOEr-Q{{6KovbdJbh zp@a$hSCY+pHC>y?b3}8)s=eG$;VFJt=HEE2sd%6y64B{{Yc43B9~6>N8uuG6G@BDr!Bl}cS%*^ac~e( zUoB{5B%-7_cY`>KmzGp_<)+02q%TjKVySyv*oAh?)tiD&>-azS<1Mb{a`c6;f0q^{|} zuT17>b^b;Ocv3#D>0IJpr%ck7;G)L3gCr*EYB|pF*C~=a;>f1G%CJVKV!?!66zrym z)?LRa+@-D{001BWNkl}Np+@>T=`(EiqatZp_>C|I%6^!jw zvNs;Lzmz%ztgqPy$Sx~6ohzGRH+il~ocK)Tsful?M>8>d!yWGHn5ORTT z4J&xe8_PF9*VJSRPTJ~`@w?TXX^_&D;=ZpZ_KR~NffA=go+_AA!-76V7uiK1nYQE8 zk}bb_TULi{N3L&FmCgRtu?O&XvL|nbk74N#^9+ zE9q#~Qq`DLz@DnGfT54pgjd2L3A4u$FyN!7yVDu2ftNb*xCy5Z)2Z6JSqTmtGePbh zu8A?oyTGig>E8|!SHUdV?s_R4n5PmsmYrhRH^!LPGk=&1frmU6=-Xqd8!`E#rv9ZE zPl!x?Pv>vkwjA4XSp!l`^Y+(}oD0ye zmDs>v{mtJa8jVbw4S6GNup1LtGACb$j8)DtrESADU8j30(G?sMHsN0jd*;;q+g=IgJ~tIu`y%0DdSX}O>c0RAO+=`2A;T6cc~V)?zjudMB*Eu+0~c10R1Wn zF(`iV*+=-Z|Mb6O+pTwSR>!_Uhv!d~Z~V9X7CnY5S9MB5=OmG)_X_49Q=vq53L~5P zl&=gma^EW>v@-Qs!iBz0WvZSI)18wWUnZTA>&#zsBYl|Vl8B9w6uUjZ6PbD@oc1*5 z&z=H5ze0PE%Xbyiq3n*`$ne?B$}NpmS47HQjr~oUznf)%{!N!F(Q%AeFw3(XA3Hdk zg~{CCo?TJ|g2J8dVNZJ7v6=1Z+3v1fzL5d?Tu6Uq@*P>X8}Ms794byb4I!2LdV8?v z-M4Y``i;<3Z7x8clbMCGI_PAr^kR=l#kTm6Z zj}rr>@^{zzDtp}N6@nR`MQRSmOn#A_a+Fg}l;u(+PwyEY`&zGnG5LT$Lc+8pPwg%fg zVZj+^XkJ@FFCjB?yX^*Q4zs)NlE|e`(vjV;7|$l05pt=H{4v|%l8{}u35DN=-bvwh z@vD=V+o$%ePkz=D$=s%M1#o}+*zcwizu7K(dWJurBr?xnr>P5;J)T5xo+`bE0Yy0D zr6%5ub22A$@@*Cy7R_I`HHSq*QFyE)`Jx-QZoi?Q>|B6;6@>zbnW~C&0s7Y@H{>Pl zjE1q?F*;5_E<2S5$r%+g>9y|9*mO3_<~f>3NAxpEoFF_U&uj^KAS%XJ&5MzSccIu|iirz0uCX1G zIIgkt#VL0DCHeCIQoa;B?sgKF#BqvyAsCDc)dtgx3<4z71uDCeR@&X$X3qKl-uIj- zw{6pQ&BO1a-Mw??PCav;w>(dB90?$Wbx7c49U2|1&6)Amp0GgMs2~DXVuA*K*)f7t z=h@-G2Wo^QUF!v`Kt9*52`t!5Ob~c1iY8@XTq0z3<-p`(ZiyP1QMnxbq_nKcU`6(A zV?1lqBR^wJt*X}%r<{zL^*1gtq9+We(R zkz%fb{YN0QwBv<{k~Q-kDM3$>Vot#-Eo;wCoE$?`bvy}j0-Kc(;Up(%p<|Ycy?_Om zf;L4>)u6PQ`(*cq2swCE_E<~Mqa|zpO)evhdIJX=T>DMN@0oXx?4HOEw2m~SNRi@L z;EECy2hK7k$j3h8P9oDB6JHZxD{@5(LbA+BRu6%4Aw`9q6r>1=`efd#l>Ihj-1wk7 zJQ%U{q75n-L-=YUC@q0!?{DEi1%}*fVJzr~peqVKuqU`OYUYz>#ywZZs&Kni)w$$c zH+!SYs(sT{V|%0a2-F;lI4iHU6A9}&;d4vdmk1KiuK1if!klZxpLHVdfAf5#Y@0o& zOw`k7Mv4?E<{sR6mn=#Zpi(3;Z>|Mx3At+~BigYw?(yWsp$rz2Seu!sEB$Qjlq|#; zvR+9-UTcFk!um(4dpCp}*3UTVGfhm$XtIwAPug??tF@`YwAH+(NHGf_IQRucgeYUO z)HE^>3FfgT^g@sCJr0!d_~KhxR8yOynD9Cfl#!;aw)UsM7Kh5}i`F;Yv%x%Q5!s zC8A|HI4tO#7@ZLjR&)sy`BgfIv=JOzzMfo%InP0q;pc#h&HS6+9e!>Sp+An?nNp-U zKA`6}=Swr_DN@XGPy!)9HsSdzqO`Rk%RXlb;?lrond)Yk&Y6o9`r+)C6HTV7i8*Zc z&X4-l8&CXFq)0J&AW~i846>FPd%L=(bXYl%qMV>w_I~B8HDxI!XW%KbDyaOOOUkKN zFyQqGOeR4RHQ97S)Onm#t}V-Uxoln9Uh}HY!BpZ1QDG8C%bH3gBS0h~FLs51bTX9U zAf~YW)Xlf)ctP`h6%A+0x{Bgge?Y{~0Pb~nqt+$UhUG-%^hR_yU{Wq?O5g>zKPek* zHo=zgd8vfyrUM4ClUaXi9^uL(sY-DJ?|o>#(!uN^qTx7qYs(i^}LMJDPhES0x{ZUK`l7g7iO z`N{PGqLTCy2MSb_$)_GgkI6KXcM1>?nXmcYkkk?3Gg(_Vp?@Jb^Qt(*n-Dkm({bWgqVnqi;4}Tsj5I56Lk~-%3zY>d-R@hmf+01@;Rf9D$R;x4ZxdM_qGxuX z6pcHwrxSHb{F8_g_ekqR#YF9rqY-x4fKR}|qGXjr^4UhJ&H>kK1XiD<`g>T5UIg5B z5g=@5@Zc*7G?Ca``n*YzBE{@QO3Ihl2A}bd@ob)IrpwRM&%tc%5Fn?+&`|h zY0c5L$5=E}?j9eEA9ewn`^k;kJ5e|@HkoZ#R%A>>J?6Dz5S7N4ZRT8BAu>zOs|b5Y z7Gc(HKW({r^lms#YWvCX-{e;&MK`N$Fz3$9!R%8kE*I^)4)a^)=y9M~jQv~-?msWv zss@KcF|m@o5v)^O-4P_tX$)!4H4$|M(^}>0EMI#@wd*-dqT!UuiRND6>{0OY;e3n> zLq(#{NSle7h)8*e+KJh0Cg*9Hdx{jWnh;brOqONbc0)bsj$`|L1FN1MSerE+ja7zR zl_G*Ji0lg2mZ7^w^wO$!n=Ez!tu4u_WwB$1FhK?0CJHRLaml^iwm@fjEOKR7y;EBa zfY?bQ5}d24OyYl$s8R~8R;5`&h^qC~HTGy-Me3nPFVw8fh(`i^jVhoTeRh(DvqpLX zBDp=u?-fa#HEs9Ph`(tLK97~GYunc4N6PIccp{8W0++6!;1WU0_wd!^}5X!FkbADryaKZ4tXs z1UDjNjn`TIm+(5(HXGk)nV8mV+fpL}(#cJIB|YZFS(M zVa{0zBdlh~ua^iKim0SqOAktgHjp9tNw(<(w$Hs{v*@m^3<{UCnOMrgIv#(@H-*?KUlBE}-C9I&Pc3Ff>ghY_5nnq*BqYI$LOHCm7G^=le zX8RrrzbUJAQVEOB6Tan$d;D29K*1pmgN9~8{ zsgj*^q(nT$+=H2*XGhc{&}`X7*M2dzMw+eAfh{Aa5@yd%D`Ij@q?@XQXcz#-u$_kRJWSd380?brtrR8^TUW zb{T&%A>N@AN^i~9S8E+PedBgggl_Wu=o@}hgTFQULLHT$8!J&KBIpKmwPaYFR7Qe+ zqr+s!OI9nvi$wh*QMjsXI&4cu5nANzHRhS`oK)Zb6e&`q7(Y^io+8Dx!f5zvnP-tC zBWOhBqQwRi5SPih7H(|eqmA{9(2YyrQ%p8ep}47mNRV@3v!QXOT-!2a*ms~aTwRi4 zHlI-vMk})?xjA>PEn&9WtOm;F*0c_PrI`*eXkz!_$67(rXI=rWdVJ*>k zBH$z@q4mVWh`@P?o=>0sgAtLKl$fWOy9nDg`1%&1hjpyH%-+W=>g7e{utK|0d2EW= z45No(RMd%7JJw+$B+q6Hgb4f51FPa*TLO=WsuDrtF;K+)%q+&HWt3fKX9>tezFbDD zU~(?P9(Neq$T7&83u)Vln!Hc;ZLD<`eW&1(>LkL^I>bkDk%ESj_ zz5MDzlu`B2r(j~DYmR1krnK$p*HzjmNjtQ-iXv3}XN7i{N(t`W7am*ZDfm|CZ7e&W zx!0Us0+^(`){j4zs6LCA6}n_=(;R;Oa%sF3MNG$>6e&_nH&TM0BE>X;rzXOK5MDfq zt?PFa359knqdiht$k98 z*@|$CqOxM&X4EAIS&Sf@1q;lX3~TI%9$29@UClZZ2rb#d_XN{_!PiTYELRE7>A3S- zsgax|>@~=iX^juBvK8(2a;^V-V%5B!s?u^@zqAh3-DCT;W{U11y-%*QilC1Lll};4 zw!-l5wk08|EC|oH_1RC@hzhGcVHDk^tt4|J<$p~<8C6brsgJT{+S=%m;GoT>LuO5I zsOtG^NV*_h7@NiSk%5a)7bbn~rbv-u`ruAQBy}dC_0&X%Q_L~U!fSwfF@;q;7Il*Y zBr;3MGR;aN!=6qMQp^WPI5O-fE^|iA^cS0Z#Mlj1IQvBcaWttm_Dta`9pL8fEC*;9$V%i^u+xRWBqY(O{* z2>IT8<$P%deF`z#uNhOGm)y#UZ!t|CNC`DXV^Gwe$u}2aHX`S+q*UBjXALd8UgCh}Ug*c=+`b(;=!LA|M(C(KmxUMuvJVlF|)SyLUhD@ZE{ClgBW zlC#{JmDCOKcBHn}Y)PN;M$Q$DMahy&jCB1toWXB?NXIoAk8+t#=DKDjxWd4<)eA=W zFRZ4BVf)RQum_NJL>=auQAJaF4jb5!IVf$!RmZ02M%Pb??Hf&14z1OY^=f?!#jP|( zBLgW(Pmv-MyRHkzac!v?CO!k8GSompsnkQX5vUB36lrOa;&8aHk|^ne z%{0`MwX0(40X?gbW^N}B334Uk23ws_?2c8wwbflP_XhbKQ<=OQBOLWbE`m;Y7t%;F(5>}A%7i`yHK_r?Nc^+@mWiDR_mYBX1btx_QM zb{z#|LKy#YBM2ANxtdT3I?Y#t$SJ_%>>0IDjP=}6#SXYW!&I|z&$-T8+cjl_=u{G4 zgo-lh4*bA{=TxTon5Gyn$d%z(?qU&EtIX5KiD}Il-x1;jT>5yOcDVEJfuw6*NFTa2 zpscxHso=)neh=2KKMNJVS}bL}pmNm*A9@hq`__Ll@lTOBnncdEEn8=m+p;AbiP6p~ zwHpMMoTt}pig^kmS5a)rF}7JEfJ0@hFcV-0VU}D#a*Ib`$hmM>y_>V`Y|CX!VA;Ab zDMFRrKL&GYRu$@PRJfm9k}tY8<O0US zPtL>7HQCfibgmK1=S{)>2)oM*j>$eu#ATf0rXSOGE7Jh9lV*h!Vhhd)q9B4_CF4>alQG4G=n}xn9Y|9k!UJMzy1wx!HX`qcv9Bc z*}DYa|IU9y2f>IFm*WZCO({G`>DV!(!s0i{iAu8PoTK+CIiHo#(PTP3H^&O2=&a(> zR_Q@dMUSLn=7J&H{2fUvri!^gIFMx(;F+|UESR<`(TIo{s_vu6Us>1p{f-27)~XrK zM(cU2?etNj%pbP7L8ttt zD?B2Z&As_{RUg6d7m=X8BjeaIkGe{!J>1q%6fV*sh>w7Ea3CEDX^FBM z*(;hgX6^4*#XoUvIP7Gh7HpQJ zr}LZ{$50_aKI`B`XLsYA(>u}C;i0|NV-h;zFyBn)fe3$~Q7i`-IO=21{vv+LNdqx*JT3rrejAz&{76a_-FY)ns^r^$xzIzy%Swqz4 zFH(Yj9Ajv3kaxbm8+v@8Zmz=c(4-wmZM|>BDA90=nvYenciPl)Fo&MMT)i zbd*_@BhHtF&D$|at<&BZ0ovGORS9$nQv@*5I+7w}Jn0+d`^LL`!+m7Vqaz|0gk;>V z%J_I&@|11k*|YPoZ1ypWt}uP*3{X{wHV(X01W zhb6L2jz3)sawK(k6?&F8|2%J}9Qi1#h~SScpcEzyBVoFvy8E=D*<@Wul?+xx-wMLT z5TSZMzZ?$Q#q0CT-{^Ut_#EpJ(CkHo?J+K&Z&qR-(~eukcp6h=E(#22WFU00YWsyM zLCajE0B@>wQv0=;0-a~daKHA-#kl^86S3mNJWgKPf?U>t@9XL+lX0G+u$-H|pf`maYh4l|;qj_C+D-jx z6e0BE?B;CXxSYbuM51r9RuqnBXrbLu*q5FP!p$~>lXXRtGm$}{EAT`ik%LPyG5B0f zq7m9`xmMZPk|gG0niZC-OG-s_zr^BGlJ6&@7A=|*1!3jJD9g%ycw=nGF^g#~n-q5Z zA#xWqA?dVyNC07pv*Vb|Ow;v?IFlYOuaqs!9s@z6ZIROIWD85!EI|!FO<(WWeGgQe zNsn3sI2fThFlyQds(ZU<4kMJ3N7-4}$cb-Aw>HN@is~h!-#7piYQD!W)??94t{{OC z)!kKWh+hBs+8|GpLuyV-^_wH*sDz9)>#H!6r%Z%foZPCg;>9ZU^Zl+MR0HL98XHuQ zup8B}P77e4l_6}<4mqwwC+H5_k#EUGG^5pk$|GUW9fP03k-O?ob z^n=RT7xm`w(RZ!JCFl2|qt!vh*BCAa7%EP#4iaVJ&sp1vvrg;4#TypjQ(t=ycRkS0 zSQ-Tvj+Tq~Kez zJ1Je$*Czd0k>S+*karV(c-7lvh>48J1{3&ngqv;9wo(I8Mkg)lnlxymiman563K+g zWFfW9tK|&;W=Dfs_4Y(bd(`?`OA4F@U9h2t^ynismrIAXS~ZJ1VwADICW+(9QS4x9 zmNyn&HX@*F1+yA_REu!W_-~T4snV8s8__i*zGk=IiTi#-|7{|foLLqgpNCLPhzpRV zw%+3^u`N^iv>WSqSl>mCI!a!%ly3Y0vfF%Rm#UWq3A*KMur6a;JjU}(we4k`B@gZ2p)}!z001BW zNklb;5)@P&E|?PW zH7B>?6CYWRPk(J2{`00?<{F!Yr@mNLSh=(XpZ?RcaN5dt_`V_L#|qkC%A)&0cs$zh zsgItCFMnqTzWB}Ua2*r;PBD2%33`edgk~EZDj5s>02RN2-i5vBUAPG6ukXTD8~Sm^ z>TYzmdp6?(3=I0%*H^@r9Y^rvN4xOkmI1u5XBUQs3drTMygn9-nNcAZ&65#feSNuv zF46zUh;pB=XEW>> zL*!L*GOwDFv*_n=T@5g%-P4VUU5F9a(SSUSclog*3Ix`We32-Bj^7Bg#WJMc_Iyk3 zuO(tmWso5?N0_PQkGUqt87NDDjZe7{jRg88dI6JM%BHhtJ`@YJMFDM=5DZn3&GkwM)9|Ca5%KDCnSU)!jLyX0}q4 z6G5*s6!ONoMmt=UlV%R52b3jWz9f(T`@z$3;aS}nEHs|uO~(1C4W!cV^!+q0{;zke z!oblAzJ1#sE~%d_p#7#`!h)_0KK94!vF_9k3=P*Gqlq4$q%KzsI(xaJTMqos@jC%R-Pys!?JvjIL4S4A#mtx(S8_?@MfmPnkC{!Gd z2!?3QJ6N-#4QrMIFMiD*U`Kxs?)>S^xb2o7;i;#dhUa<6cp2_ZbjDTYHkpvN950?c z*dI)EUV4cM$gwH_q?k(3!;E^Y6pFUISw-h=K7s;aiY)=Da>civ<5PT$sh3lkOq3J# zuxJiqDGnASGH=q@teK2*#d=~NkM@qoG7AlR)58+>_;QvZc@HEDcST}eRsQ5asFQA8 z!wtOX2bMTShS;Jy*gG1HioUUzGDqe1E5+|gUA=x#Bj=gJp*DHQJAE)2x zJAdo-C*k2I4`Ji8N6_Aq(#pv~dL&a!JB)}=h9l7Bav2w1cs{Os^(%4u`m>S40CJUk z(T;5>Xs7Pc%8|@~M7uH&hwsFR`L+1XcU+H4F1rl3-Es@Q{mt*-(4j-f<#Ie7Fc16b z6>}jws8Gq?5b(IiPT5{t5qbZnf@8BD!dULicbJ}M*Oqy5!-x@KnwEPfDFzn)7+M~= zw&c`}gCmhhTwu$tLuvKe^E66^W26Lp10)5&WZ00NkiHmEI8IjA#5Y@BMm@ZVI_$*0 ziG&(^asx#2Gfj7-E}h*W zUZ~12ii7`!+--<;&d8}U9&Q(Q$N|JPq#l1Ov@NKK`dw=spJPgk;sQmw$E0*Af zYnE~*J>FssS5z=iUV!~a+fXQ0M$a!$YgbT4rE~;C1ACdI=W`jHxG;-lOIi^4ar;xD zq;T5F?RfLG%dlsm5!se-*BK^>yg(UVygB zgXnReL5p{gGk2z}t?}6uGJ`h%F;vP=qFnqXR(4;2cmB>>v3m6>_@^&?3A=ag=Du{J z3ERBPb+SRh2jO^$S$nc%&)BqxkW8f6^AxiT3Nbm9GoG0a1-UAg-1$*IYbZ7aE9ztx zZ#4Qh*9-^+D61&rC=vr)$j!akidDi%89n(KR{L-A0Mb^ZEx7@z!NN2d0#My^p4d0~ zURGgm==YW+>!I*mvh-ZV<4;{MLp1pr(PxQ_$Y@y+si+GrV}UI#s!HdLvb^~`9XHME zP-D^nNHL#birx)@4n^UtkQ`^rOI74o@-k(vyo;~bjA_Zyeqyr4<;Y_q~ZVp=qat ziY#ET{4DlAeH%QzAKUlz;Joz<(9xEu3Z@bXJ$r2@&O4(E_djuny}@S^)GNPmK?X0s zxR;+XBoZg=GlY)Mp7Mp*RX7iWz8D+pV-b`9fheLF?8CmzKgLksGwABfW9_M(ID72^ zWHXKp>VtzOueo9gZo2&iJp8M}$mgf8^nX5cK6k$D*-U#Brc;g)V3o}&T26z=Z@=?5 zaQ;OXA)g7bF!&)($Za-#V4BL;yity(DaECd9Vgfde_$8N#jUvV(#z4i;6wP^zxxb! zY~NuYplVu5b$P3VObAg`s`_LVN8>{or&>{*`GModFMR%$xl`2JArU0%-Q<$N(k#hx z+GEX=aG%w;LxHI(f*viKMEyAmr!Fjt7Am<50awZfq_rA!T(mTVls-$Dm9eV38|C=s zYVEKYb;>?dMq1Yior(B^+SpJwBKSz`HJ64u$)jQoh@!f7orqFc;=#d?X6K>yNQR#m zk*dDK#9i_@E<#~2VH`S)^_$DnMzYbPY^1F6$4+s4!f3H*k+&5x#sgi{kaQyAF>wz6 zn6VEYKQS&>?ARb#mu7sb?sl~*_CGh7dKKL-#u36Q%!@ROK9!&h_L`OLSiPc+MTC=} zv$3V{O6;qw=kt_nvCb3|*d7|eTBL)H-ZkjxU4Kz~-iJ~-z?Cmq%q8C8a7*L< zg3b)CzGM;Ze6VlE2|AUUFFhfLD_?v928Sz&YAS(!m9y|%;YzM1$>!DAr!M?VlW1G8 z67364!QM?jz=3T)#lssbtmeM{v~F9?Wxl_sD}%F7@8mM~X%*0$#|%9!aZfQ#(8d-` zWZ+kP{Kk!M!i6t-5n5y)PWJ9XtJ7!2W5#z$8gJt)TMXIZ}ACcfz^>;P;gh-HaATELd5PV`(eZ_(ewzH}pQnO1~M4XCB@lJgh9sqx#UajDN=ivyL@ zZICaBJDnx~GY(bwI&AA*i&HLmH~OFYXABPyVcYIutUaY8>c6J%@H~N2PijSHn>*uW z-P8xa`s6mWwYpL7IgO(w-HEM*EBSY>R2dJM)!{J#vMmd-WbJF=;Q-15&tS`rK`dL+ zitdhVldH1fV1dFhJ3CrOL2_nH9dYQrUP8=D6<$IF5r?&F2ajndKt2E2q)+6 zM62w#CGW=qY0BQ!X7ueXWBuu`#D_lgTlmYr{H#$YR#~ewd~BH-D%l(!E+PnkWy_af zK~FDo`8-c<3&TU$e_#*?4<1C|msrp)&Yl~~r}nlsWL(M~;<$SEcPUfzz1a)phFW6SdnCV^}6cG-5XRuDH-$07_WW z9h2kGFFp)raA`iN<_j5-Y*U#aql`QEVQSM?E-Z16Gc{_2jZtiQ<=FmuR=*~Ts>rim za5-|o_Ep*h^{6blN*O+#?9D99IiTlWx#C+L7|qog8P9>|IrdzQ|2z@7Emw?-OTgz{ zz;hjBGM=dyo?eT?&7 z6_nw%EJDvom!PeRyi)Mm+Y| zW4Ps}@8YS)A3-kfF|iH;D!@Kpudwmyfy{r~=yCnmLf@>}ozU2Hh_ zd}K3O{M*0&3%>Ww@1UjCMNdyJKK|){My00IOW3}s!-o&yzzch@@mCvh=TCoxgZ+om z(w3W&-VepuiJZw<+FB=?2qCO&2!j)(B|ztLUXt__DP|vH;v5DqYDDBh)@`c}C}Yp$ zT+2i@GbYf~_pX>|J6yU>q=m})Wu(>~*Z`dxag61jV-Z$9gcVbg*KfWn{Mltt6qla?<=S64eqr80K!-iJ-kY(r2gBcIQiATX13*wkL7rnLn&i|%t7G}%j?(BtBq zHK$|Y35)q!?dv~`=eF*|?p@EbJroh^QJ;!oRfljeT=e0I0P9Ze#Ii*hw6(Y6P;nvl z>^+JtTehQ6Dk7hq*;40u2@Q0#W>}muNQ^Bs$0(_esT&nkfPC+{aO5_)S#lEsU*F+W zipD$Y!|vb=`ph19vVU9Do2e4Bqo0ljOD2t(kd}kjz6!a;>)`l%p^&XAWvAoO)#h>_ zWu{w==L_8VM=MjAxLF6T0?nXY8pc&uU5=&8PeN;DBYIn&;cQAH(0~&J3NP#*!qK5J zD&-<)S-gBNdb(TD+j;IIGg6FBRPGi#P`(Z1{?tXg&wUUlttc;gK>;7|YL5Afq#e~5fOV@vS` z&N=s7T>Xlxqfc$$wjE#o{3nskWfR{eaN&zzimP7s3jY0`U)+sS1;{Ifd}}MNx%#?M zx0hshZn@=u@cB=E3=iIWH*z$|nY2+;^LZmH8p#orZY=qctBYRW`ItF_w8I6;`%k6xQBywXPeO$x{Qs~a5vBJ5^zXiC%_sjZ$!@}93L zuV?RSBb4b{@ju1nKYS)o1R%?Tc#)kRslyAElJ)6?$Y5|Nz|~h>j+ejeLaaY?EtV}` z%31D%2M=TO=I3zFFCNDK+?~7ufGx-Hmt)*D^{Sl zryGSr5j%G5#3PSv#LYjv3y(hbG+JA8&_UQsF1Q_nuZ!e0AO!rtg;qt}_`2nI`30Rg z`HaiabINs)(!+rR`?2}i=Wxr9?#7R9`#DN}0a;f>CAy7a0!~Mc7IEH&b$H`dJvjH& zVXQbYht7^1p2w@Ob#D$2J@^p5f79)FdebvjP;7dgW9Bnh2CmNZL9@0%!xE;+0?lo5 zC!oEf9ra#MPsBW#Ak4Q7}=i9Fv-(2+qvmRMS|@L$rmHbsgQvjNSBL=g3LhJEi+2z!@Hn*n#MUwtS) z=h&)xVFdVe?1wI8s2fnP7B4IjqIMX~z8f^Uc{T_jjM%4=rfNrt!Mto}7zc)^+Y(wDxCn{T}v*{lnw z_}OiG(c=`fLujwpU^L0LOw18`_z7!vL|F2`+(gDarx1v&^fc+5i`Nyz!aRq5p6NwVRQbhj1iVI!O$Lj(G+7yhKj4@ffVb>baC6HcM3$xI z%1UEjX%UWAmS9!uPtomcwI$Ut=yy-;2g+M;-nnPvrkn3Vp-|$9o-G*w->Y&qWl`ya;dzvta(?-<|hNOb$7fAj&|^^@Dt(rRo#x)=1|o$vi1 zu7AT@c$u?LUyI-W@Sowmzxj5wy1FjHIuRs~HBY>)T^!BFO`n!vpIC?dVo~8X1!_rX z7Lb|yNVDiE<|7)76=7evs#0#3VK2MsH0Q~*nar9DyQ!qtHtT6K;SKvnjR(7-H$I>o zXz6hPK-seVurh}YgxD+JPl@`JKw@aPf*W3cE#Cb*Z$x{xgkaZ~A%jDZw%lA79jKuv zfVPWp#T75bp+iUT@lXC63PXpR_Igtf_sWx3;Lrc}dvMlSr=z_0X1K+t;iv+iRX)ds zU%}6;!ir_Dz2;z1O)K$f0|pFay{th*HNf8SfMZ+}0wZrO}n&KV*2m13-*bMxHJAyx{fcE^Y$ zYoN>Bh5>*1lpIT%=j6qH4&Y>6#R94-AqYy_a&)MIeSJkZ&di=?s$S|lRD#hQ4uhUR zkM}J0Rcfm}CkCEVi$UbwK}a}g$rP*BLshRk_YR@Rnfz(l?Rk&1VJ5|tf(Fw-1?cT* z$C;;fBIEBsZ{|5$YF?|#Ng3fX_U#|!_ucLds4Th>I=|AC$*Uru%GT$!f`abGvqM*N zA5yJN568ZB8De-7E=z2`>!`&TGKz7>ZL z9mK(dhw#j%r}4Q@eG=dL<~L9p9>%_Xd$D@W>F8e28+#TfO8>$wdEE_f!fS4L9gZFy ze|CBA^Lwym^LA`|ZZo!R-Hb;b{3Sl{u6N)+{_S5POOlsec{MJ5*~?HUOp@<9mApp6 zcG{Mkg%3^vC0n^a$@I1crj*ql_u4>8iWDj45=7z^-v1_}O;(n!D8fa7x*(FYpp%_ItyRtxT;2@8Ie&e`X$sbgeq0pT-kvL3LdnRH~;E%RycXk@RdMYdnc~B z>LuuE_aOVe3F*H8p-ZN9iO-vcREOXmy&I*2kKxs?xe6Q3S&K^0c%0`mCv&*q{PmnU z5BA>%Z}0&=#|DlqVK2ceJqh&x7)wv=#SO2!3W2X|kT<^egeB`#t+9Af53arDQUvZo zl>H!HAK9S6FgwS89?sz(AsE_$H^1rCSh{=(ySy|4wa~d<9`7 zs{j#d5Z=)J@cZt@S!b=q6<53nitJ?5>v2**JAC>THG5GLv!}L!lmFczZk{#tD&4OKsELZrvbFA+p)cP8Kh8E>mf+T;{oMl=N2sO zItZu|q%Mr>j8!TXoVc_X*S-4n{5wq_p4#*@?)vF%kdl;Uv#hr6x-K%FhhnjS&wTu^ z@&5Py7G8AWdc5-GFU7vSd*QlXY}*p9J1~+by&au+=X*bZ#Y=io8YhY7@67;SCd1p3 z$!58Q;ESLCBo6fV@t!VTxDe-GbTJB(=ALExQO%?~u7faHE;pKFRZXO#pXMvlCsK;} zj{Fh2L@n!us3S?~l|hZl*`h3g4HrSG&Z3IIsk=gt;&QX0!U znSqvh1Ui%GVV{qqjgB<~rW69hg);Y?uU)$as{dzj)Db(jC#Q|3{XpnJ$ikESe7)wH z%h1)`#s1Z`APv#p-Y#5!{k13_+6brkE3USxKJT&qfm7ZFl%B`>Ggjl`i_S!$RBM%L zo~I-%cipv@qMgLVj@}1HdUZtFY-@BZHs6$Wj0xTr|=Y1sUMeJdI3&3Bis_9B;=`E~}Hi*4OGgr7g$ zZ{35y*SjN1I5~G0dfexDRHkv3^nk{Dd`NG|EB*@3(R+bP2_3mI3onM?AVHvU&qMt< zI^@r&<=lKiO3+6^8VNdf1PbWt@Nn{pZ75e7tFP1jOx}qVUqCn>D%rItW!EK?TbtuZ za3Tt7ffYQe21T*Ss_euQ@*LqCua*ai-E?&=z?mD)<3~76CBE~`|3INIoG2GpC=3^I zbZ`*ELxXtap^f;DuYLo2U+Cwu?;!F9QPIBB^x?K!{s#ktgIuV0*(I0b&2Rs0&eo46 zurnHns6V^uY3^f(-R5P>mfP~M$(XcO`@3s*zC%r%U^ z>L`ZIu#zzQVE(-_J??X`BkJYPJqBWmy zD4a#g0WB?goOaqNP=y!Z1Op>v_9&BH28!Fzy`T##PFjLWrA8ReItNrL0nR#m4KkjB zQ`s|eworI*C=(tW0Kq^$zs0#5&fw>Gqjozw#0z^D;KUP8fGq8TM7jBWK%$9i2x@o> zmM>q9-kvV*3r=zDpn1hm!N-@rwH@uPUe#qt=dDHV!|C}SU|IHlbb33Gmj}7`dLpl! za|C(pL2u=U=ye{$30+`i{@N>{ln5Zvsx1h~^ew@eVFxo5kqqp({bmoR|LN_I&WJ1l}%y~Hm2fzPero8Wd z?+0-EPj10ePi!3X_B8`tw-iJO1>?GVdePeIa4DeU9ODCp>)A~YmLEtiQ>95aJtWw> zn6q4=n!C#+odu(;Sk(MQ+KZlIK47Y%(q_HJI?cCE52kNjP!={J2uGgiS||M0BL@g8 zSI0f)W%hVSsQ#|w?5@cYIXn&#i8sFLn8JOVTF|&j*+DK<6$(L6gpi8MY^Me$i|t5< zpTj(wa}>7ze3~Dn=}QlW(b95)ZGmbqQP-y8K}rQh`TLl?vn^Q^gp_1KVJQ^eq3;7H-<|=T)79A#o|`weuyWoD*yl>07*naRE(nP zLRq!j0L=uR#S~}>2H@omAeYPY{L^#_CeNkje(TTu*K<~wa5fwt!5Sa8+`SLiUa}aM zoZo|k0~M1rfy0#sE3)_C#LOcosW#4}j~yD)*^OK`RgAXrd^#!Em&-`(*;~ZdzP|(e z`%8%o{?tQHGUuCZNJZjC09}O2HrEEivn3tr1bn=pK_Z)xTmsV!0!9I{Tn->S4;5#z z6@eKYEGwk*P01gPCHb5K*O6>RF)nB@p>+~lQ!ZDcOtfFA;Dp7C@!|jdXE<-ec_^uB z;iH^%aN~_PV%N?c_1BIN_{zV07O#5k4Oq2u6;3*FDc<|RKg9q3gAXLK?h`!bl8$E_ zD4-yM>&i*Vpc}iTN))N3$*`b61(l&vmL7@zKWTbH>3f|CTHK{bkzzV9T{F#4#7Nsp zo4^Wx89}*#O5c^XOL(@|I8=ELsxt2k7K#hl?oqRkx@#xs0*XXI*)QAWacR5`9*CylJF$+C|4vPi5?*Oki0g$aE}*#Y?Gr zo2llIQSbUlprA96v5^|jlJy;2R_w@05o1jegG#2!mha>Lx*4DQ^K&?3OUafHY`3dj zWW^wI?vZ0Vat@6nt!P#N(UN!Z`TyLC`yV?5Zx&^XDRaHQzle|j+h#0VoWtUUc@#@# ztPIQBNx!MZ=^uBZM0;i)#|g^>=)BOi{>@wW;PwX&Oe;A*9w4hi5cBDEjG$*spkYaf zYeZ;{_p4=s5I_SFjq0OG&ok=TDwQf+uBJ(3Yz)^UTjXlV7Caci(bSP*LhTAnbW0@+ zRVq=z5uE zsy3%ckz!_XEG6v6K9U%aD!j34G-dEfQ8?Isb=UZ!%N%>A*RF#JJSo6a-#bjcp@p+q0(U zdX2?T8@yLPi!nimbfP#VpajFCn+EVV|NIPBVrH{W-JFi+9NHV>E7RoVqR~`|f;Hsv zPvrcczP^Ja|VXEtG9e~}Yo$zv1-Fvot3%!>pQYp?5YPXF~=cHy)C zxrIypr>>%>3Fa$*wXd{UU<7Do%A=WJAgFsJq~+~n0}XaVg^|gbwlQrIW+9R;)abqE zuu*F&uWobpCwdO6L1V^nF)%%0;~YQevxVVdyzs*F(ao~q{0o_sgN5iQD__PPKl>?u zc-w9G_V>So+wZ=Er%_?lovt6wDl~Xi1yXm`}DSC=&CfCv|Wl{xAVb#S_#FDmrfkE$0f%bIwJH z_lu6p^a$jPO2gy7P;iBXk8QRGm3gsDSB|QhOmzfaeujv&h~UeC--|s z16;=sB)6JM{P3=Q__I$vg-y>LVbV?{baYKJ(cm>YXer8)=dun99De3&TkwUiZ$;TR zmT$8SG$fE{-Q5rMI+ZvJZ~nI?B^@e z689#cYng6L_Fm-Q)9l|w!6dgB;NamhJXbU<9ikh&qus;Ky?_V?;SO(w?AXA{>!X1t zE8XsnrW3A=E7%HSXgEN|8{Z&8rQrt;_TkZo9>A$5t>7&8%dWTz|Ipr!gMA0!WwSVV zupfW%ryu1^esO3J=WI9w_dfWmF)0?13VVOwA$;}ApT|ose>oO*bm5$H&O^!fCq&SR zEDsG8aqju&p`){t|3-&<|Gs^os`<$*z2iPmnv{tg_w^~|a;7}Yd{t+_yfL>d%zdQ2 z=#!6FkPy*NDxDZl2y^F{F)2&)T!2Lr* z73|(Sh&3zP?BGy6z>y_OPge$+tcQVtB65c}A>VoKsK=ew)9Y=4Cx^Kdrxr9}tN03g z_7}MyCz}~72zTG{6TIPdZ{YV%Ie8_1=Y7AAkNwS`3^$P^DSr>QwG}sh^kEi<`{DP$g?sM2 z9a_3rd&W9kbKNU(_0`uTx&2gH2*`uAke1*b4efpEQ;_6r8tkciH=yd}IXKy$k z#o-ci`3xM##j@oqaM6ojifdo_>gc%M{^MKm;4dFX_kwzb`^kV{%0yFM3U9mCx890C zF+n%yMoZ7OE*uY&oHUDmtl;b#m&V2=tyWu_v#FZyc`B7fXt$M4p6d}FllgOOh^V_X zuGm6$Q#obS!9jlLe4V(Kr2AFJfW}!aeYe*Td2kDB@y6>>70$+|NF48R9SdnEO;oW^ zf~Zk47yO=Utn_Nd{$?%GGWOXB%5YQiXZOAWKKbukxa^wTdg#Ud;S*%&OwfmYRwSp^ zNGfm7+kW@C#s}yaVli=fmYQzs#KoXCimgA)?1MggKV>t1l!V331jQ|c=WL$Y}$MXnM{5{q$!*Au=n}> z_=`XJ5We*9-@?humcy3k|%y`y76ss#4jW`&BH7thiNnXR9{pMei%&v2Z96bt((5)xeNpww%Ty zT2@mQUYe45O_pIkTY;sR==m8dsZD43DJBjY<0unMFLGQO916HM`dC3znM}s?p3imA z9Y(mlK`z^hC%5m%;oUz(=h7?TW*6Eis3~e(p8X}3e7ORTJn$6^3>-m6M?0jNm^DpnTLzCjct76$rq|&A{MFy%rI)@8!f~*; zdjS?-a8b0JvU!2PuizWs`wl+!iGRfAXScxf%r+)P+LHa?G+4HGWN`EMzK7S|@D{x8 zwKqi3vqpX6;bUV_S9kS(TX8z&`}oB#?#74S|J&HVZ!i0~PF3{RY+h2O-c9tID;r9% zlQk9!QuU>eDN;mmOy)ego)iRYQCJ0QE!f&Gj4vD7X?`Ys3nw9l!&wiu%cOq|NuQ_} zzd#&w35hzp7}(WO@1wDTLPJqRE}zsQ3NVCD3oMW+>bHsQ3AyJsrq+#?tJ=P>5H~5N zE#kjNN0eu1idzJX$N1cRqD8&u%8+de0;)jSaD~I#Ak<@Shsnn6FVFf$jikP4p2V9%cCao@f7Vd?TWV6Qk2D>Ap&O@6c` z=?gmrE;-Z1VBvWj9Qp=)u@+9I3oT9`7I@o{5l4CHW|lcb+MR`0;=xBZ;ijAKLR(v_ zwJw_&F{DA-%Ve#fd+B-V2YsWS& z|EKqh#Ug%o_wA@u>cxU+EyKgZ*#6uW-1Pl#utUYKjei5|W}6{5haA+_K>W6q*SD&Aq{*b-$KW?4-( zgxokx*1ejfYio-{*RB+!TQNqrYnYveh<|4BoxoTyHgPT>f=wh{L?qp0_bGsoB;QQr z?LLQ@_U7b#wCgKLhQhH1v2|IvPugUoDXScl{qQvxScvA92SJ(`?5FM_RQYDfO6`~) zbq*fts?Qnn?sMQrSvLymRVO8KhgIOyviJFiW4NYMQa-OhV$j8sg6rjYu4n?S8im3z ziiKeoNb}s$Pdbn1=`(-gXn2V2v;R1}?NWk10i?Iy_#n7L*@x?TxaaO)V8eOmpk@6U z^i@`4QRbg!q?akb7?fv#4{2|sEhnj(7DW#28yRY3_w?;MoXLj3pFzlKt|f_y%2 zEO(CK?9sYOb$#&YQQULq&v5&XZ-aCw^W6pEwxX}^FqEnw=hD79?0+svgh(5exKgQr z&wcVA@ad2J9dEklIovm%gyXu{^6b-i`wg#(c8Zqk=*;jj={v9=uYctg&9@OIt4H5Y zM8WmOCyF-`49V9`BFbU8sHqSzW$v-_0a>zXTLMp$UOtn$l=h>iXmG5Y=x1|{n1^!^ z2qu(7q+MBoBPwjirL|0a*77tJXOTI-9#*##!B6Obg~cCXl9?0S~z1$Fw)7V5k>MSrCas_x37}QD zhdsr7!Z>gCS$*m2n)aC#qeHL-a7$|^HmqNRlTTTJGtO9x*0vT54G!VyP0!%DEnBc> z*Br)%x+x~_x(12bW%2EAeH|}6zlZIJj|aGEfqROn zhc+dKj)#H6NAUgc-Hc_+-;1E_MaarQbUWLlY)9Ssj1=^1)gpD(KM2WrWe|f{f&7xI z@V#%|hM(SkKf1cQpj9PN3Uh1^FToZZ4xGFhB!-8E5FkJ{o8>Y|vV9Y_B*$#OY4|bL zeI7>R%tWjy>s@;s!tbtqZ#qB^9De9fM#({ATO!IdQRZB@)(S^PS#-VzR0&$zzG4yp z(_uk=I+;k3fN@{Dg2fxAvc1ML83Zf_TIau+M&W3 za|!|rw)8R;KD3XT0uL}jp6bsjxS|Zr!3YwEa+uUp**jq%qxix1Z^a`IKaQ-Y8hVNczK`E{*YDwq%U*)nY|5;g{5+e%ee?hxc;J5Q z*uE8RzNKn^=IdyjX3)opxqBhZKmT=fc6OMF7%9q5k%f*aX_fPKkf455?pc*I zNp0att<&HUB)ELn=Ls!aV#$nEZI9MuNIFgWsrOc907bdHa^1S-AJQ!Pcu^fn3;WDf zgE8WGslu4-&)OdJ#Bw^cE@N`;+Ljd_!6SuqLu`$61C#bykyTILTcYk~_7B%aR8R?* zebiw^;WYQB*LtBF|8!c0dfEf!*uQ#g)h1Ck?Eq8v9vEewKxd)3f^7)C3b@TDO{6!1@zOs!SixCmpMwv7^bfIq z{Tl4sKZqT>4`J}=01hAQ!_g!C9O&rm?#7wtoR9Tqtj6a)`(@m5=Y7Zu)$rI34-Mi- z$+T3>Hq4pXN0TC@?lyrS2#%}jkd&aOm^KLRZ>%7n%i@lo-OVKJjYQI&E1+6>(5)VY z;ht;m<6BPCaR%0xa;yhdp7q=Irpp)kz`qBKle6Nyp;*x<59pR zCcN}EY+oybxQ&X;iJ z$xhZeTV4|fq)BozU}BY*=l^J&UW21UM}5K6BH}CKaqUPAR~F!jA$TYpC)dhMT`!3& zGE7ia=%Q8950GrHWHCFLff9KZ#GJkpzaGV$E&racohajko4Txx zZ`CP|4Msbu%r;7nBk|}%kKw?+1GwRh*W>IBXJg5tx1z0OKXSzfkSji7%Ap&8CRrtS zC3M>bQ0^k^*uD>6`MXcxwx9fhd%;P}4FQ!QP7gVk!dB+Y!;6HD9;wJvb%PW`iN7`j z1y0HkB5x;d85_(G;v1AE`#hI-ZOK{2C|}Qe;kdNaeKe5jzak>2Ob>9NGkhPLzSSU6 ziXHa0j%)2rMSey??HP;IdPVcEPdX=PgzCQ4J@57I3c{9*k7wgXvzcksbvV|85R-MT zeo;P)sL?%5iufYRs)KvHIV;T>>dDjmXuMfDE|re8eUtkrA!InF$fngfl1tkQW<4Uq z;)A9fJ8QhqE#Zlwnb^}{7TEo#;3FLohkMg!bLZ(~qk-;$pc3m`JkFD7CI5p2O>&x(^Z7p6H=>yp9#qn*j^?NY8q1e2$IGw04E+OT92ulLSVTgh{EtmA zWPe=M}-3Y5zg z>@BUv_ANf{zyD_Z>%ad1ex-t3F2_BEP?ZMdic<(d4@g^PmY8#}O|ob-5ubY)GqKUy zX3b+Vpk>zfpcfN<)x4ew-t)nYBzLencW)kvJE(Svav$?l=#nvQ;6X zkwDxC(220V;&N%t1XbAb={n0ufhfBgibcxEqsMI(Hj;(M3&g|f(oq$l)4$fbeK5tI2K5ty5tdzyX9iBxNC+iHSHc#Oj!Lb5K1 z0bM)FTB|h%S+B7m94ogwoJmux{_b#Ks8&P{mW&ITMW9VDyCQO`%e=1nk5Oa{!<&l9 zd34h3r;=07v0v$YzfOR4&O~v;%#mZ8HBZU;i12-&cVQ3Ko^cv>>^jW-;*CV#U<0cy zZQWSVvj~;a5K1KwkJ6p zuAq!+z+~PCu!%{T%nEk=(2+vDZ>`bd!PQh(WbE|D1`(`PT+_8`6G+gUmA4|7^j##p z1;0*2j*gq4Rtw6cQ$IV4$z{1;UvTx%JkUtchPVh(ZPC{p=Gq~)fk8Q*w50{b80$uGMI@>dF9Mh9pEGg{mE8@st1-Wbv`Fsv-ZEXkw-HA99)q}Z0NW|CrlrO9&+E{c&MHF>1-gvw^!we-v!YhGv4$5Oj>Ji~ZW zbFP}jxssD8VeQo>p+csSU#+mIw$;^tT>vg@(FK@aQiE^q*+>FFeALi`zXmfIAbbfsGt29 zu6bn@=FL6@a1dT2f}b5k!bz`y#uP0jtF@b+Q^y8i*x zIZS~I-}f#4qW8g>;t!@iYsSCeVEzi$Bw-ZCdlxeL@sFfzg)I&%C&vj8M zmJs-Xb)6Y`Ov+^P$Y#2cae#6~!*#uxER~3m&K~ABQi47P%SZioa5%ug;BdUOEphMd&hVtcq@{{*spK#nu4W8|K$)x+XAta$7(1rwNtKbF z3Nz_8J0oHgDMh&+{5Cm+@RY{OFUo;QX~H z>*eSWTWlpnqm`BsWKIH{4%~J3_f59DfmI;+i0|367u%lOj#W!mAgi8*=hQ#X%sK;T zrxR}bX?Xm;C$VG49(Zo5!93f*a|{)rREaDAOaK5N07*naR4Q`-NeDfrbdHzx(9+U_ zN~sLbQ|RmK=jy4My0_Dr?(uM$VaqlVhd$P2bD8m&6xT3`WQl^WNAK{!$S>M*GOtLQWL@zGWJs#BE(=^Ly z5SEM!mgDm6{XQ4^MMUB?ok;eUtB5p*qFqLnoyN`rgc{~H6DG|%NZf0}maLoXsS>T+ zXFawlgNVX#4vKJCbw6}Dhhg;9=Z)>z!!nIu${76?+@k!yMBfzaH=w z;PEG(!IMuthitYnLCH9V%M%c@VqqtH5)=Ca7>n%MFP|yU1NVyDyCfuv3xb=W0x?G_cY6#VlbeMAY zDhsv@PjXX|o?>ntui3VZjR5#BnJ2fPNAY7gg4*^>EWwMiFY16RlR|T6n zSEdqzNq-BMo{tap-z5?vbXqiPO%M|#%Gv}pR4GByC3_^Bih!CDZnk49@iwuDA&-su z=Goj?3`Zygl@h-ArSIVBE&G9muR_^9nFADIn*p82z+DQp;Md@_EyI_;@(n!t=q5Db z(I$`~1KfM>qxi3H{0N!OQ{iSi69KpQI^`>_dp(}mxEcTa#c%)r>|F<#71h~(r`)!E zm$G!EH?d*YprWE;i#2LAqEQnQH8IBDXpF{^Kenh*qa^kg_19Qp0|99QHUva^@36h! zI&=Q#`_7r$_Aa}?F0jkIkNddnojc{s%sF3qzxRXR?`v|f==rRvsl&s6dja*aTxgxn zLQr&N+POSeo!646cL>n=OvI3de?0v<%F8O66cFUX2;IWl?|z2aUoAwS`#3ZhLt)eN zPo*3}29a&O5V8C-;42)4k3XG;4?miY?0}i_{Z8stX_v{)4o7qz7K{T+u_{6 zlz78JxW0yiJ|!h(ShivfguUnPuj`oapD;U`+aTOWISKAK>`e%jS>G@20@F){a?CAx z?IadNt%!6Jrfw@?IHI3=SveIdldfxinZ;|Q?w+8#Gdg@ty8FJiZ*+ubQ^eb;Ne9eO z6m?xXrb?~dMnJy3BBttnn`@~iBsH9#I-y z8!x~5A!n(ZC>3WAb)0DKPdxQ1!gVL&@-Zd~vptAfT6|sb`E(8lP5EX6?tADB&UTvS zj)NS!ZeaGD`FP-g3ApJuplw77O1bU!}Mui;Mil2MCYOaO3Uk+1(7NwshBYcA{G)Ha4RYZ;MobUF~!};ps~;v zaIJ!-A>zeY9dndi4o)+0Uk(>70U0E5#n=4`(ujA~HC?qC;;|rk0H&P!p)u7}8t7yY z(Rev+vIL7N`4cVJ;_B`RCta$$3#t6?I_WO<8FXYLT&RBLG1*(3H2_SN_0~CyNc3`z z9ph-c3}MG(BD3j^$~rk!GNZ1nxF53y!(5yl+d34MF`SrC@ig=K4Nv21M=FTVFRYU(4reRCi`n^f5+fBqFVZYjYz zXPt!M!v~|VXefMMFSf7ShLtPd#ix^IAUoSosunvwSDzQyxM>sax$kL=J7YAC zKI#y3@7@!+xjAU4s>iY!)A7TSRe0mAPdGT_Gl7;>HoMpxpm)>nvGCoz1$h0nw{hJs z#zV7plvagc*^c;|24RI*%r-0Ffye8E&ud`r?Ae$$Z4T^M2u4PYf!4j}t~IcK!*$R* zEIRP3y^mg+?4_C32VGi{@~4B|lDJZJ(%%Hr-DMqXvS^i~e2tWCWeYZP$P<0iHTgTy zDdXzyUgf;I>h3P~7WOxzJ5~HmW~hyLTQ%Eu)IYpZV**m7O|~s-I-9N|1dX!Ms`ofM z=@gLT`uH6QL)x6VC1v>JIU(L_-BxwcDl00xdg#ib7JS~^CJ(#nq(cTRNNa=ksd~W6 z7Hd&O<4?Ly>NG%eA%6}o1>yjLty)dChv!K|;WKq?-LeHw{o{2MckPU>#YL=yO_}hO zE7v0$4I?MZXt5Ry)#-aogUi3(nY;y`&Dn-t#R25!$Wo~l>*}zzG>qKb+!i_K4k-BR z^J-Y~!!j&cx*C0YcSliC0eoH$wwIJ+)v68r{N!aD+&-^G<1Z}uJR0h1D)Hh=@8Xk* zGts@c3vzO@5DbN|eEB-m*3=*`*9%>91X5k+d|w6y`Y3q!{(B$uGkDo$7vX?j`KS-Z z5VOE_>0Z+ZpC=2Z*Mo28zUMNM@DmoV(OmENwc3d>6~4L5{85mgv$hS?xV5>n2#e=J2c0M6Y96-;o{^C=h+ul3)% z&lZWa#iA`#)fd3#P4(EYZaoK9DJbLhLbjg@wR}z%M7h%BJtINb>T008A|zYoDQbDP zUxO8kz>1}f509q`;%Ko%t3YNrL}c4mih)=WtXZ`RD=irWCWbtnD{UUyiE~W`Wyj05 zZNaw9TUc|3V)C?4Y6%++2b=vq#f?l4bp~+dpY}FPgTx%e`1rq{VD+jsIP0u4aO`nM zp?h&BSg|NHT}NqYIc84z0#l|;!^-6=P+v>Vxv>*{?ptpBx&DTWbhr+>3l}bS8)W!u zO!4=~no>=0n;AiUinX-f$0DNCaHZ4DRCirdePdNNDqbt9)ZJMqPAR&Ra2)oBOuD;d z?|rzAd1EB9>fCJuG1y$6?udBlO5D+G0c~BDt#Ey}?v2-WlN(NDE}0!@hiWc+kIT74 zOEHFHLYLh@96A$iFNhv*sx1sy!pk+tyY`-`_mkD|ZSH?=t2%hub3OgKEf$)SS$D}8 zpqh9JMyA%i?m5tSL?SVaJLi1de$OK?eFp3n`RO9f@n}gFI@9939Z zneX(u?k<|p4x`rD8`p2dgZKO%3+I31I_Y~IQn1h#A^h|09x+)<5Xp(N#mw{)O&SIQ(u$9Pqw8pNkB~amH3XW4D3`Yr=|p> z>Ale*wB(_sCGowsXBCbYGEXZLh9C}yJ(AXchPd#EXYRlfX!KIkFr$_ z*d+GILUPSzt4V}Sz-HYE=|I~%bf9InRHwOz%@{q&J=3^kMk8T1E5!24eWzzR7qR|Kj3>t#}x$6N89M~6; zwmgMBFpcdqGvyA%y?gfRh2PwEAFdz&V?@H?9SYR#(xIiX#QSYOVuX7a6vXp;1Y+ST zly0v^$u?b;t_V&v@aHT!VYJdSmRQ%_)qOW1TF>X(7vW~mUF;)}HOt|!g-Fasetsu( z>(T|;Sy}LSy)Zo{J8@L!U0>gTZCgvQZQB;6PUmF%SQ*xx?)DB?oJWhXan1{yP{MD* z5seaQJ(eLAP(>KF@Ilj^ELZ|8L?!&tRm&n7o(ZcxNGIKbq{Zs4aGZ-)8*3N44gsAV z&=|8_Y<@qbupAk;PPV;iSlsH(=Dy}0=!OrrFt}bFP1LmOniY3$xwc!#%yeA)!*HB* z`F*CJ3vk98&OEbQ>h8{yV{vUWSfSpGGl3+PKbjOowpGUpuT+G0GU+0$+QscT5JTVV z3!tE=Gdt(eD3I$1yzTG}*w<&s1_1;cB-K7UC%4rdbIBU$*ZUAkbvpy4>6e}8l> z?v6mf&-Ki@p`)U#49k};#li*iv1#K*%$WWKYHDkco$Y1Hl8e1?581dTBiENOK9Xp! zQa~v+8)j&-K9uX$4Ku^DYf36R*Q8sL-JYiIZn4M|xGuHh!d=YU4z5$)+K}xO!|XiE zx@;$_OoES5MSIUIkVbTI10k*}b~4gDhmfe6w&Qwj&Vp+eGjHU)qjAueviQ0P#p&*p zG3O2w6a;7$b$93Z;C%=>j?*Ju^D356n(!U{o7rDpIbRaffX8J|&toE9PfM-A{`=ua zSi5=!J1ebxm?Svu`yBDqSW+MKZiZIZgN9x^gX{m>c{SmH%o(A_7*^`i2^NPw4 zMvfec^UoiLJ_ig$&%Q&DljB1+*1@N(fzMtD)Tv&#nh&|TozQ>G0Gu)IBve*4;LAC4 zG4az$m^^6;FMvK%w0Q*7MPtb9nWUU*tn%zc@P(wmYpQNM$w1LHRbx(>bS>RU7b?T# z=hjS;s;Y4bHHhuTtTB~~!7&o!azV?RO>iX`!|9*@< zW)!NM(mvcxBuX@>%^f{!`d-sE*sIt_BN8pU6RxxFA{DNK-l5RGUTTYyqM8?1Uwt+% zxZrH)-a;5!6kYY{$PR9TN2`N~)dN-oi;(He5;P%nA7W+M5N08CbjR4y$K$Yre~lAP zI2Qk$@FF&>U5kKU+o1vIq76U}IA^*QwVibX3<%v+i;uzgTN>x7PP)w^PGGuw`g1I} z!qdm1Pnt68m=a3HyKvOqy^=)Q;nm&UZ2Hc_b7>h2DdaywtMk<>3eEV<ksw(ILh3d+NPj^D*%3Ckb#46;f?dZhHgin+ z-CgVVSGW$ki@kzKR3JC62v?6kAE%st8iMs92_u(-B!YJ8WQU6Cc?6!RVg#?AL{N7Tt|J!aGmmf3G9H8QajJ(vXvT9 z-l@Zb-egNPNXj>NdGJX`Tk}hwy#=}xq)(!05f*|=IO)C=C%yI6-IJk|+qo{?Na~lK z=AMFOQ zxBg%B^v#C{b#n1$L(a%RfYYR6FGtQj9G&**^~hQ1jfLk7l`TnpkF#A`VtaZfY&|=^Bg9S9)y(6JXj50h94~icx)*1Zwoz1SgIqSrDLnwaJpzE2!4l} z9Bm=H=h(?V)S;yf>gJn;rok2hrq_r6O#B9)f4v4hdiH^3rP~Jr4fP?Mbjn#+uzVZ- z`q=XbWM%QW?+vt#u(;-~^%>An{a5G5&7iy3qhN6!;l*!myaET0IvmxdD=;`~I(%B4 z6#QxmJDBarVJAO4U#vyt_V-ZK=}g>w(-kN!DaD#KYvD6>m9c2O365L9#bWBTG#Fkl zjJ7V^YX-FN(m7d5?cOj9{@EGOb;V*a9&f`mxRqUNfJJM7q)fUJW=hYbYXTMvE%~IO zoDNNjO*u8HT8fIh$q!gUIIg4Dq&wK3BkZox((XVEC@yP}nQhXipf_1&(la>^f-~v1 zP1IF`Gielr(>ZF_!c01~SflK9lDfNXg;Y&?LfsvPN4-r3)8o_Ur(J?jG=Iw8JK|^* zptLon`6tfbVv#xOY#~yDO*+@^YpgjRRdn$73!4Say`}^Mxs-_w1e@0{r%fk6 zBT8(|#qK2T-7uMBQqq-^v!$^GxLNQ?5mQ4so1P(s*DCFeip|-l3Mf3I~ z+I|&wsqgy}TnF979s^ChWfdV@b>*2DbMkR0*}esRyRno0E0C9~p+~RY?7#+tL2TVtiD0M}IXPL9TF;pn z4K;OjQlXwrETEuJX8oPXm1-X=E21eTS55%PN?JTMT|-?>2=(d`%(VSPB4O0l0zMzm zy?YlF6c(YTx(a1wrM#GB=Ky}czsZG_t}7g-eFzj3nCR7~FHFNgNy&DUY_EsUORZtN zjSQqnB!a41m6-yNpQpj=Oh8&Cd&;|()Mt9{!Zp;}J1AhsofaJ?O^T9wx|2?2D;5lL zX0?E}8n127GpnGMV!P(=bR zb{(`9UwQ2>Fyg=iF>T6Z%$WKKG!m54G=zd-3>q>NmtAos{MkjYY?*!LdT!mu#`PQV z#>*2>RaJ$otfp;=ok9}<7jn)Ei#p@n3r~lz1-w2#a`WcYH+a{sr~Qw@zJ3J)^$jtM8Z{EvTzx+38f^5? zXCRhNqr>1D*0o zP;A#Ts*a;MVDJIB|EAxgZ?8TmDlUd;mJL1kq*B4G=Ih77{bettcA_vwR9or{s1pNIO|T2xh5V8x0R z_|KcKV!^iykyns;VXdkPVaTxlxaOBPq5pt^=+vbvpI>Ep8MbWMjH#b}!q?^VnemJ~ zo%@K92jiDF-oocp7YgFJXP(5;#Y^D#n`+E}%E}O~y6!5RG%H zS644H^m=A>cblDVt%*3I4omo8Y6*irUESSbWJrqZ{^Hc7UuWyg3zS8ncaCm{qlDeI zaGmgu4e6Zme8di`AxoEZU!3Zl4q3+@l8(H}xUsmJXkiD3Ce+=92*Zfiq(|b;KNQuR z;|HxIKIZHvzW@07Cpqbwbkc>=^PvCB8hKq_A=TsCcIMV(?EtoL+HfYuQ(m9OtSJtV z2pP=f&K(Zl)14A_8MIz^Dei%L9-4s8S-`-dhv2(;b5K=Y&hOxW!9(z`*Z+gVh7WHP z`Y}|2#-O1iaOdx@Mmqqw?|t=RMp2v*O>nd45t zw3**v-Rd>)d3Jq;udWK=%yY)!{)ZmNkO6}-Zgb9AXXAp4e}YH;_s@9e&DWTo)wyd| z{N&=F@aMIW2&PY)f@z<9hOBJqpwmKh+pTw`>__uw;j1~b5aTE?P#?5#&IK3af^#qA z&zG%Uh5!BYT?jT1EEg^qdc`I9+uxo-Rv?T277+r!xcV{#8;E}9+f zTGQ(8R=fq<{*p;g$L>4qR5HQhTAazE?$p6Ha1LDSdw+ziFSn&ayJjZZDzc-T?kZ>r zb#%@|%V$Pta!%V7b$1T_vhZ9e@l2;U=^~-P-Wr*7Xa7Pd<#uo&k=O*fmYhkqlJe&o zGXR9@gu&1~5Y!vK9X>O0CJwhvRey6FaTSJe5~Llg?!I~KPG)+?8DoJiUAppbLEhGY zKad5>D#Ji_&OgTR;R8_CK-p;dYB@0xTU7^M{L{;s6?o?@*C85>Hp*hllfZ7z<&+#K z*|r5UrhbaP{eOk(${OV6<*^M=TT{u$O&%t??rI^hdDA+){Opr>@9o!MX#19u`<{g> zAlp&kI_Pfpe2<_Z7{w7sjKT?{4@Xs1B|7QLWX7ZkY%iRS(X-nyoP6TZc;bhZ@OjK#>W|(~AHfmF9F7P6 z{xk;k>dTq#U?hUt+8S)zx)p^*Md)7KjkC+c1`NQ>xBUqVzWWBtmn_F;pMHYtesvT2 zcJB_4>A}d6hhWl2(xBihc*)(o-M0KyL}_1IgNT{O%1NT`~u9JHU(alocewak_Z;q(zM-i(D(Oy;35G< z)8xRK;D7+?Ko!5OtV{QEt-6u1G)c84(|l^~m)q~Wy1S1VS`7NW6-qqUj;N)U7DQ~d zHeOMA*%T-c;6NfoGTTQ(%r-cPYv}X?MUfAvRl;bu6j#R?7x7yE7z~=RHLAZixYerT zTs6(E>zFW24?Lcozh+ixh=h4vZ^|zv$5sl&=~DR3wt2jtdhuNh9X=9U&hG9edqg&5@ zs9yVl>~Y?NAyryYkIh@kX_`f>%cZcgkAlG=Q)xWWuXR=zEUG;hL$W_Z58n^*HaQ7s zFj0d@{Su5kXc&6*C`N5{1=m0CEGUCG{J@dyoRj%P^zmDM^GkgA-v3Ec$}n)v78szs1UxE4Xfp9CW{~;eY`H;fScxf;o2F+3ZX@AqM)0BHi74 z^v3Fy%Mgh~F?85qbnD)eKd*~M@x_eKdCEQaf{Ss`!H4m88bTr5_S;|M->8jUW0!;_BgV#n;yve`Upmk8I5P2 zdj$nKIsCV(nri&+#$RCe%+KNTsh+=?gyZzaHJ@ZdQ`;lK8JET_*c@eKDI6z1GuQx^ z1|Wl5JHd6*Q_$2nq>V3kRgi`s*ZjB0Id{j{#m+!!QE(8*WNi*&!I1uj&hK?HR3@GL zJY6cl+f4aZS@jmYuTqx=c_=9H$MC1BM!i4LV9*S7Kz~C!wy0B z9(|Zb9;^@IzB_KjYcITnygYgQm=(k9nN#@Oem4FpL~R4djXstC-IkyLO+!OHCqYP< zZo#)-GTU(DhP9|DFID{0xj3)*sVnmcbL)xvT>jepy*MdiUX^IpZvh7(AGx(>b~M$j$=Sr!V+!K86n)##h^~|3Gvt&Os;? ze$g^uyXklM8d#`gJ==$#h=&L)nd-9={yEqio3-dif!Gp z1^@cz3&_is=S>1`Z@l^f&N%x#j5_=%AQnZ}uH8^jRKT_6MV$-rlgr1m`${I><}F)r z<;7?7e*Av9z<>SaTwHVcg_tsXKDrhZB3M_8;_f}+^J^S^PX{fEBxHBWm}BtIm)=D8 z;_iG$$}7t8yWjm9AHMe%)8mtkDK=8sk#=f6b*7(cNEMFL^&R&~&!p~ds2<4D0G73` ztOmT_sJrhfQpd(HH06{Ct{c|ef>0N20>RFBjOphl(`o7diOh8}9J+g$-*KY9YAhb< zX|cLHIl`>2t|d9?x|2zFob<3HWILI3R$*@?b$5s252wD|RwX`KJg~^6Jye%Xw0J4R zlH`!K&v%f8@U$3H`zh$kObDT;Xj@ps9za6NBtch}f`QKOazU^=M6QVf_80#28U(z6 z)v!+e)vgGHvJr-;&)5ew zYT2l$j<9-b#5)KL*(dGL5F#^%lwa4@{|E=={Rfsv-6sjo7}2dL3{;^`sP6g9gJ&!eFLUVo`@AoS0Nk)OivW|-SsEr=jS07ZNRoI8{zR#2E@Qu zb7$kii!Wm8THk*CF?9Gyd^vkAdLPgOJ$v@ymvHf-g{Y~i!Pt{d=3|UG^>n;2;qTl& zWXRAFD9Xv_ftf8m(mMq5n zZ@-ds__XM>#w}24G3t;5@sH8*abtw|M`px8Mty84U-GS|}-+r)s{# zPCB6)rvwG-;@hL&i-MuxU*&$K_OyYD{emKmJ6bJ+(j+8RO%q*1_) zv#UbRP#P4oCK(zB_zZTS1N?T&+Hr4-)!n(jI;}B!hDh5XRBP-5r zRxginpi<6zddj@1wR@|Su8+%;C{s-IeJ(?Cu7{j<5!WNp9g)~3(2=yPBQd~?tV3|| z?^Q`xGxMz#1oDnR{$Y1>qF`r1RB_$VnKP1CP{;xJmCKjI^dv@=Vnh^J*Od;;&Sj>Z zfRiJ4n7GF+MK~PALr=Vf5hF+8=|}Iy4+|F{VEPk7VA*^fSN!}2oOAZMxao$g@!2Qu zyAFDja9g#t7wp##x|==UGav=%{Jb3W?9~&Y(l6oB>UnWa24zbsYodtRI$-7?>=~w< zsbI6`SQ{(mpKP-fLL??-GS@s>EevZTx^ymJhtsC${Z7yVxo*o6_~xrQ*tBgcdUWfK zqQXKv@W_)`yl4T}gRfq>60>H^#AlyP(;EoP;j z!3Xr`a}9+fc=XYS@a8LTAve!#L`zGCp#+kgnnNyYv*0ZL?|9I@HzFpr9}pg9r7) z=#$4`(ZXf$2as}XvITaQGES@rS*D=HZwq&(5!B~CiXDetBuLS{TaRw&KVT@^9aATN z1g|gEZ6W8ptfU;@FZ>qQT|FLS#-5G2v!-(E*o;DUE|SnTU0+WVG(=?#f zErDOJfY%$~MMG#UXc3YGf53yU=FGvf|9T2BMWiQJ^U#rp;L?jO!yoRr8_&J`I%dq7 zgFF88M-+6*=j=ID;9>KoP1s(tot@Tf(`33jnG(mJFa};Fc2Zheicdd$7wgwcYFl1j z9tI8`jy`>QV&LGR{5MMoOrH25_b3l!dGYn!ukrkZClRsj_%wUy$b)gog_q*CKl~9- zKlciz&i)pEzV{wqzIL6Csg7oTQ6E-0J(7CVlO~Ivm;8G-EqXc+#;>^F`5Tp-{s1vSJjR_rmM-@$1#>TCRahO=7|aTbP_Q5zK`#_}~1Q<%MlG z|K3oSnE``_!{hUzwze8;S1sp$=qZQOSSAJQ*Q`WIZ4?I|dL)+^+IGv{4=4D*qIv3v ze&3a#MEghkEuHCz(388!b)=uxfGo3h)I?iAH`=3UKNE+h8(h~MCEm3iQz9{`V@dyt zL~Z^dArea~;Jiu8o=L5Vc5Q<1o8PEHwzefM?Bgf}w-gkGC5Q3Zryj$Nzq|_THf~_b zyAuweC!=?_ZWw*cF}UmQd+^*VZ=<+-FRlZ3@b%oe@#`Ekcqp=cItC9N&fhJquEtk$ zW@2k;5M?FXdApq4TpT<4M9#Pm95|TIoE9N!za|A*Gz79dnDE3Sxa{H!@b$cTEEMM) zk(TW4or-Yep@-nkKi-MQp86-cbnl07B+68^9zA=-&xf+#yqGmHB+V_zmI^5J?bVx) z>)c(cW4r#w-(k$y)6me+GDj%Xy+h$d~vw9hd2#m{u&wsO)_KO-TcWIY3e zMW)0q8aOUoxM)i#b$3K%tumxmg@vY^?pUJFxH2?JJkoA4QP6SH9jHvYNOjW5nY5MR zE?^`H&Fvb9?yV_j+veYVvOhcT+u-Z9;7@YIWbmTn7}Az(t4FQw>>!sY(K?{VGvYB- zme!o6K*w^XG+yH*)n7F81I6kH$B4OR!Ll-pMbbJ>YdSIXDER)tJFlX&WIKXk;K(Bn z#qlSe%C@ht1%km4jyU>o-1z&uk((>EX_D=l%|9pEZ_Y%fE;NyFn8$(?>$7rlk(Xb9+`N2bW#@3xfj%Q0 zA=-BTLi=&lJE{*W_E(B~OQvyF7!^{wMMnQjj%d5FrCmW{Vzz8uWj00X1VDYyqc%dJ zD0FhV$Pm&ptC1!nz66M-E78co&hb=pL>{UFnW)r;*7BNKS}15Tf9utk@yUPR#gRuJ zi;FHBkAZ`RqFc9Obne;>K23_NoPNrw*m~RDxZ&Ds;ql2Z!^~-)eY}|b7omjef5lXgh;YGCB zd)h*EcSBK6ZT?f^sZ6kmXRrYr-?wJVHf)@YQhk?&RAx@}A$H$#7cTZ0#MRwp+c8Zu zVbfgOh+gifyK6G=CL{|^cbGCQ5sqVLF_bDCmqFcKXUzV@PY)s%4YSR{0eX6-1#sz=zrd_%6R~dfY77}Z z0uMd;0uDU*K;BhVWexuKuA9|+mB|(`RT+rjUiMP>Fe<6-^lVe|#c2^pnlZxMp&kr5 z+?zJ8M_p|VdiCjxpImV*o_}Tnva@xV9+@)?q=iPrGFKl_>&i$(iT1>5 z0dGLjn0K&m$QE3A=GG=NB_uLa*C3;%fKni(Yy{E6n%O_N4$49}6hl_F4~3obd9j#2 zUSI;nFLv!kK5Ek72_`@Nv)k@ws^Ug@56zS<_LnZ7c7W zOubGyIqaloa?mMS-G9I!jwml$I3M8NYQ^9&Y(I}@kM214f(zrHQkyjj!jsm_F^7#r@4o%9Vci;B zam|f5^w5zU1h1^D#GSX?gb&~QH%w2u4ImUF&65bAP#_Dk`#@YIPPbXt!BV9m!s)D{ zWqziq%&oG#0+T0xfSZ2%Tm0h2+pux{S}a=dEy~KunVR3VYd$Xd*`>Jl*SGL@=6yXI z)z#JUGQ*U!?}|2(D+%UPdw*J$5WQ1+Q>nyRZR;WY{ni}>I* zA}Nb5m6#Reda!mAU`OjrEf(s(wvl+I?OjY)JbZprkMtwsFe!rpW zyL4$#A-uzEL@X9VakuXH<&C#+J$2VEU2)&Nf5ehS3%DkmCj9yH=3(~id04q(HJ*9y zd1QON=-IP31`Zj9=`+5B=@VGLZavDYtC63dkD{VZIO@0`AuB5jA(+3Y3fv;!JN^ziB znY}KIyY7D&!$%y5>60hoi`g?VW9lT-*3`zwNLPl!6Hh*hzy0+-zM22`?^iHp>^Ph} zdJM+hH3{!?HXlQ zG$kBI0X{ljqrUAeg$x{0&2D=3TG&tX#GdhaWho@s5%_fts*|FnQ_%*tC8v7Y}Z) ztiu1?bUi+P|1EgEo-_wll5ts>G0tePRIpovB@D!(F>Z%PEo61whOlC+1B3W`)3k7} zKg)|3Cp?PdPB;z69y$yYUikoDOrMPPYgck&V#u(AaO$`-QQ)Cgamz7v(g%uZlR=-x zwsFv*N8+jH-^7qUJy012=6*2~%a$xeeSIB*4fO~GgUHU#LFeLP^yxbg$DcSBV~#rp z-TwIsesk^R_~y%*suk`2Y8$wY`kumm=b-P*BgIa-@+Dl2xLpS=F4a{v*t}^o`t&SD z6j|^gl+w4HoXVnn6Ioeal$1BXSMdV^`J<%q(@d7Tr~i9)(j9ef33jr zE{p1xNr0R)`Q)UN^TrNe=3`K%IxnvPKmX;8$Wm=PRNSJcS`UtJF` zS{hJRQi@r#XX4ZoPv+0gzxXoz-|H`OaDc>MplZ{H3>}1HN1uc)d3hLg-LFyDwHWXH z=fChI*^e}dR5S!JW#UH&hiv2*_^@?LDPEZHB#t|7G)%)pVNMS2yzfC=`r|VY3f8qa z0?iAztyGyEHD_IGBnXvIcNc23QsHF79FZsI86jG#!Bo3sL)#-679ysM4EN=C;bLEa zo>AQ$8T+L3yDQYY-$>oPc_-abcegc~QT3c8mYcHRGyJdSkWumV>g1 zMx*seBso9(GcqZ)cSMIl=Pm-VUo>i^2sv4 zs>*Ww_7|6M;NNZ{CqXR6?ImScw&Z&jV|(+Je`3q#4a~UvYR+_cyqZR;l7dgB$i{-!_R?DH?g z#XmkPWgF`C^WFy^;NidCjg1@DD+f9aLh!lY|M0Wu*QW>G|70SbpYQ}$EnkF<>o?>D!{ij%#Jsx zqE#Oh*D>FH5Y2FVNh!Wxv=sdYosURu5d$+*)6uvvk5)?-={g}33yE%E7sLv!`2|Y9)qV8L(vmCdrAwT?qy+`OwSF`#WrkM zi`QOy7T5j!mrU8d3yQ$>PENqzRrX&8OtDZI$WlqtG;!v<8Amr8LLzrp?2 zXU+JW9dz1e?CIlh{cmr;8?U{DU~L^6i`{zm#(fX|jlV<3st$%wUS1Bv<3&Y91>Su1 zd7O0O$$Y*?9d$GwefoJkc<&#ve%%_xVgkMU^u}XPKaWnixjZtJwRQODgLe@Lh2YCg zjqOo86u&NT}bawJNTW7kC`ffv0?u9#kE_N46AWcKO z*40*-bUm&7C6UPsOCdMM17K&mB~H2)7ck>FgI z5YZ`9t|fmraUIRwJ4zZXUN{eby7iZM`}OB>$l*s}#E8TAnm4XrjW1?S#lr8tMtNBo z{C;o7r-70t!wx(IqmDcX^A{|^tv6nU_3O4FCtE{yjt@Dxso$Y&du2sA-hJ~eR99AD zY~+szI_QU#l793{XK{@;n&vHV*dPPIAdHrY<(as zdjkyJN~O6AAU{{f=tJ}I#SbA=mwX4?EJ9A_gSoy~s8%a7+G?Z7vjM}hC&EM|t*?4w zjQoBb3zyYk>FQc|Jq~qSsRL_CPC8}MGf)#LxKLAFkN4hw13$j-5_HWkfF20oua7*5 z>u=|dHU(a61%g)CA4?c!# zuD=OuR;@sfp1sktcOMiL6vWja-+kw8EL*Y|exDb*urTqX5AgC!&*JCfuZ5v$xZr}H z;KVVfV$0So@caDe+PQPQPM)so;}74%|GoY;^7AD_AQ|Zyak`G`s(L*4%o7-O#8K$e ztp{K4l|TOlzL-80v!+kyMX{xjO3q0&=|lq+UKMOf7LF5KwjeX&8EVpriYGLtl4>bI zAJt=7#H3TMnekwNbkseHJ{VK|hdb_~&>CRTM%{#E8!7KN2Sc=kYPE}|A@-2dv8RsH zdPvOQws88Ad$}C!NSX7B z^OOLs6k8ZhNJJ>^8603(E>&)r!SfymTo}I__{}=jJxaKyVSi^UhP`j>vAn z?c(oZ4?u(0YvB7u%dl?EN@%&m5fp_PYrkpY>y)SAl*0lT(%XbyGaa$==@5}pcA!0a z5IJTk24zjhLAme2r`M!8=LvWW5~mB}`xP~42#Ln3qfBjAwNIMU&Z{v3+y{Lo{&Lst z*t&fiJG;4FFGdU+jMGm(4WkY^1cmwe{C6uF#V3;|;(zbC9k~I?3Q(+aY+Sbv8@6xd zsz{&8j8FRHzucGH0WAvT$P<;_tF|Nju<$$7RM*CpNvXx!H($=hbN`%xEv2P=>@3s7 z@PUJH*6C;Bu#pF$xS&9VAAnCLPsS6E{S9?>H82e+Bohnr6jEahK-bZm^ z5e^-GAchSXh)((P`w_aPDU)#b?KdMkD^a6P3!Ae%=j7z_zmwO*>>MvHR-T$<8!pLC}Sgk@`7Qbq4EG*63+Na>`fwP4fIGH4XI zi;Ki*YCY+oCRSS8uf`wm`174Z^1Rwq2EFObdV2vSAin*2HrB0Kg*BTRP*rEM)5&W- z{b%?Q3DwpNCz${MAOJ~3K~x~8cqsh&z2r(}0-<0%R<2%w^0E@u+N||KYd(pq)z^i% zoKCj?OA=9}vq^K#p=NxK9^!uY$=Q7&WH4c8nN?)BP$w7~tD2fBl$KPnihI9-2jJ8* z&cqA<{usC1@mF@N(~}4k9N4sB9jHqj=>uJI`6UR4qo}P3v6D|MK&KBn{T_9$Hwqkm z{7D#f#NpUnT906T9olG^J0RS$oZUe?T$P(ahYr}Z-;48k3~bu86_Y-ji|el+fKqWZ z{PrZ6dNfs`Rmi0_%MTnm1ZW6rD6g7_ptTGhZ%^a~qR2Bh!>fhZ&=(o%jiKm;7V

    {_4W05>Dgy6YSa;u*=<=^_}w=gyhsSR>G1h9OnB;XeE01(^q&jA?j&!r!?S8(oKUo|Tp5nEu5KcI>O_>X;5@np(=W5QE``e?E!6 z2lPkp9zD2?3#I>$KIT|_@b3F8jJGq0tGg>zX3C^nnwJfLbm2H1VR<|yMw7ZsI0m%I zPQT3PiWEbTGh*~Ca5mjk)`eqm>#8nZJ+#UQO;9lHxN@ySO>7s+uR@-AGU&V;g&iED zTd2=9#DgDPvuh{!s}%`VVQ%+B_s1j44Mfmgz|%m(7PTbvAZiPk)crzhi@9HLAbBCu47*5sO zvS?-eyXq){SYfh7sKy;4ycwBU?G^N{lTc}}!HNfCo&V?Nd0?6bYHOualW@iWpC6g) zf?I;5{_pAcG_n4-RE-6%HP90B=PCxVF_e_)mcj z5|*1iV;W8$dlK$>;A!+9Fc`CEevYl1*D;N~zM+9d`G~!k*Qtor?2kP51YCXn?@{Ol zrp}##jqBIL^t5f@wBw--=2))t}x}eXKKp%LYS;`G=r9HWW|3@fK=>Iw6&R#s}pM%I?wm_2J6 zKA$`Z-MSZ}bEiCX?OM!AC#BoAVcps_sHu%1zp#)gV%(E7iC#>{pyN;ZbP^_gJPEye z7jyq~e;^B6H*dm{#jE%-@(WTIe)`UmMGJBHg=g}=DcB$^o7o1*@OZo^D=p<906F)x zz?$55RUjv4*J`-fN#|2>=&goSdbb{-_UIU+NdY6L{?4XnOcRZSd-g?en8J39DXEE&T+}Ea1#}$en?5qq z(h2me3L$&>>T%_15f6gNfQK}^r32G)18skR)J+oXFq_ntsEr;Q88D#3jEI}5Lg~>YeLvol+D@9c+W}GtSBZ0`R;3#@htUw#F*x5!WW-tc)r(lD24P~s z1(fJ1b;t=@C@rf-mS1m^H6{{{qF0}O`11pg3d}+Y_;MSz7IaIYGQhgJDBu2LM<0XHC!LPNjyM`8oIDo!%8b}pR*$KlzK!?a zex0{Z4^;5;+fa{t@3;}2yS{;A4jGAi{(KKMmEVT%zxx`c+qa;)x{?zSl*s7ZwHppR z_;B>=Ucf8;y3Jeh)Zgx5dnP-_pZP>xv;eNSTuWiP5^?PX?fsOKER?MmLWSkORB4L zrq5IYK92F05CS4YP3HPcSu>U482*3{KEGf^)Y6hNS&Jk{)WwgSoE%mLnF=U_U1r%cosq?hNg$Aey4qUQRBpqHWh?j-^6#k@ys#)o)=>+Y z;mI^^6nvobD=jI()-Bt4A*55IdUI!?ljA1h4jY}Lqg2niWtEjm2JMqn>yxi1%n@}X zV_>4C(Afw^TpUoUyF(cZ>4-vOC*7gsDZ^YOWqBy0OU4k7kEQBXV@Xz&P)<6Op`YZe z$J+qu%2CMB!+0Nme}x(k$2kX=3TTSTml!WgZ7AuAPWeW{p_iF+jg_cPNF`q_K7O_o z;!{qPP*g|KLvZ>_yO8jiF%ImIrb1hZ>v1mGu$jd~#lHawH<_i@Z(4{CT2Mk2}r(hEenA%U>e$S)0`nqe8?4s0K0$JHP zSn|UXJoMDRaM0j>Dc?Qel+$tBO;=&Xvc(*<-I*+}fUZ~(>0+^o0I9aG*Pu7L+)O1= zQ0pS#5gNB6OO#6pL_@Xc(z!ndo_HqKefctKw-T#RlYx4V*`oKC+LBQp^qrY%8^XZx zCl1DsPC5exc^;f|{w28U_TQ-mqb1I{SGB-Rti5vWh^D?XnZ9eq(9jS==Pre~=(3-% zLq2T8VK{JbUp{JG1o(3P61?`}Kd@%iGJNypEY#OUk(ck!_>56Pg6hd{xcVo!^k-M$ zjB_u?;C|iF=hPE39-oe}r7DciKY1I^Joz}5d_Qlev~ygv1iPMH@8Ah^H-qkC&w*Z| ztbl=K%U9v4Ctt=N@BA&cR2|DkQWwus<+$#e(?*L^EEYzcelUzqWAWOXpW*FyK1F~c z_EsGXVKens))AYMaGR{MOX6TuS7jUgT2QZBt%9YuaM!v|l=`XQvao^rHg#>dJyrO|Z}?cJM!oWQkNlw~41IggEu zP&XA|*tP4~Ip~NgC(p^mQ^v|tMt1srizy?{>vV2U`&>wSgEQdr8K4X>Wz2LqLQ={5 zwBsxbE&iFNvT13@7JA0kZ~GJ+$J;q4$2m_9n%N@BtkjU?yUWjor25nIp{uMphc$>k z4L=NB$WjD)?(7b7Cq5~K>LY1l{)ZGye#?IKRht$dtLOm4g4OY`Cw@jfWwYFjXl3J@cnn;^_QN-fI-91 zZ@^&W<`*I_FCT$GHma+uuyykWtX{bUCEK@R%chMeFReswo|`#uTWI^{yS$g+I_T{J z9qED9KD2O)1_tIS#v8JS2VF*6cz!*a!-Lb z?_j+A%KLcfmG=QV$`mTj;!zeF6zvVfsqBK)MH9}PjOIGZ-)4)2XEZ0%uN)LJB_Jr` zOPC=K(rTGP!ETVL96-B?wmvc|EbJ&WJ)wB4q2(=r=(=oHK{jEtN^zK}_4@)0Em4yW zIIYx#a;noEWsBRX5j9?_xhMBw%_L@|^M098p~avhJ+RTJGCSjl=$svn?$fVv8q-oD z?R<^qKF_cZ+ot@lpPiH#kGIA5hKx>|VPwi!Ck>Y_4wNpyE=!G;#7yE~4c zh^xD|q$WM80=`C~d?UrVPg*}HXwXDpv^{|4$??DZ4K5vjHHb7tte5xRdIMk2oryEg zy97TvX$*4mvY;W0udueJ7LPx07Yd5H;QHU(${GO&A3h2XKKUZ9IR6wxNM*YPS#&CA zOXypqj-5zx{PrPw`%ayP>;cX^Bh8Cn|L!&%ID7!=Yd4{K@kgjyG8M>@POIt7K~di$ zVR*CP&FRD?W1&zK0|yVn^H)BCm!F$}8B-@BD?7WWWEO-=2WQTc0@EzCsK*o|DD!(j`}X^@aNfmN;KIv(j{XDtGc%D;Sy793 zKc9&go_PdIepra--uM^?^y|j7bbr8%Ckt94N=W5?6aZMiW)(K9Ta8)MJk03RRhOK& zP+T-31Jk;Oy!-%{Bx-6q7j1<$s8?^Na2<3PdmOaj60LI97vCTlir^=gUI?StNNB#1 zC=_4AZ><3$r4U?Gtfz=`Nk>BR-Ys&pv}}a+ZqN#kLl~X$%->(d+wV-|Y=wbv$_q{l zgKdSN8Oli~ht*CPO|nADVuOp?y2;O4koC}{0;@o}^R1~YtfHy4ssSNbAWfdREi*!@ zw%oD=JJsY^nxy`!%g-GFC7W~kJ8>i->yBl?aVuUzDe)hLTCNTywu;VZmw4^O$FiUgl6Is;H$*8nm z5X;5>2co-E%#xftGPHHw%X6Ndf$q*uIt7t*zkF7?X2~PlnsYnA9m6S&lBF&_<+P~h znC1x%&Y7yj$Y{4&bjo<2ckz`{@J$zZ_0?B#@9n=qZA}ekOqqy>o_rA}opLgwF`%xt z95?@BJU*ZF5f5=?SqX0c^L_9Iaxr}5q3AzwFqSNu&wa6*M^ctNT^GiwKi?P12Qoe= zjnn6e6~pA`h8$R1X^i?jUR-qv-uR_D5szm%sfT;Rx%=V)@b)c=MHi;{A7CMO8%^Z|C(TvgCB` zyCRIo;=hV+D6{r6RZIAui4sadxeI6at zxYyb5j$-at-(thYEja&zvoUnUNc8J}I*Rfe5D3qQX>Di4ar)8h1|ADb7>L?lXr64q z-wS5`NEk*}eEsEjc=6?z@XgoX!smg?oHqtJ%;flMdV=mQMZl!%N)cXLbHs*Bl~r#E zgo^Yh35PM9zh|mV-c6{wa+yoF_z<>mi~s{M+hj*Q!2RZJX~@LI&358msaj*E&>=#5 z-shYssqQXVbc|#5+(u1j8hj>5Dj+EldzGPQwBTJ+%!?#CYqDxPL!>+GP|sPLT=s53 zh}5t`x{V`}FGnH0y-e~x9LRi-qBF8iK#ZLp+5cQ+x@gQr;u|uk5{sL#dV3RnaXCH!W4<4%>$^N1;hBSmZnb+(qGvisE*CO4pxu%)WI5=E4? z=j2-bf-%_6b{}y+seQWiKp6j zEzGJ<;Ek?^=Ff$h(;JRs_g1)Y-j!!2!|sWG4ddsd*M%!L+8?rGtXT-gc&~% zPL^oV7BMEkw0LRDazD}UfW4EeWeN+1)jUCcfxarn= z@Y9RVM~w}fKlXThGj}!uSuWk(Mccx4(D!L{?93a@i2f{6-~)UxZ$VzR$yv^( z7D-Jl7^IM_86H@|F{qry-(vb6t8~+kqK`LoCCb5(j;x@4!x2xjlQOg#D<-$*_-Trs z?HqwA^|pvp?)6rvFQwynO^x@bX-=EEea~^ySfSol-Q#u6%nC=zJtKq^krKMBTa5=V znj0}kUCu~V7=}~AknW`G``~zKuxtV6>0l*xEyL$&#dPSQH%49eFvK>#A)#imd$Zh$srVZd=eO0g=Jsq@d^Q z>7U}}>#xG&|9B3A`}O5BnEdIxnEdG^7)cca$${Ho6gcUmV{qn=e}X&@P#S5vJWh5? z@x+6x^v)1lvZWyU_|hL1;I99<1;-qJB91%ZbX;@g75p>n>-m`X%^b}9{8K3gS6|oW zcb&$OXzlCPtmHBNe*ObHE0!%?hMMYfWM_Gim!@n=Z0 z7?eFs1O-X|BgWsC@0gjOz_(LmN;X!Om7*qWBhRN}^{QoPAm=IGB5YSg+=SFufgWG4 zQ|awyVr^~fAl@!I=5iCS6p&3X^cHf>;lj7LTDueE)e*Byi0uCGbQu6&aSwQNb2B>V zR3B~neQE@p&okRV#Dw$vy_h|H3U2=OHMr)NH(=emwOFxa0rK-b8S1L#KC&$ft5z(< z(~tiJV@^E{&;8@^B>k48bI~O0M2i>uk#pWWtv%(4nuaZ#H{hAaAH}_VIUN2Krk3ZR+iT4wc)fs>R#~Tgh#R9yRWcz z)iP|}v;kh ztGc>6M8hGb+xfgY3i7;3t%zE(7|4a)X2Z!;SC|g%K24>=%glY}eR_&YiE;M$;O@v^@n2 zt@$K1e@6<Pb5v^rV!U0v|^-LVyEoDeO89hiKL8XBpzUuD(q?whzq@?J3t!G zEkZGB=(*>tXgrG;lifi$*sC`dTWlwwF{5|hd8KBD$4a@*%-j)z4fp?Korsb5=w85b6a>iVPZA+GrY?YYS-9#0XLVI2o_^w2c=?5=QMP9n!jVjRx2l{wB5k_oyoJHJ19r&i2^^}dz`HZw!2I{$ z#w-7L9;3!gz{Qt;4xhZ>Q#kLO8K||0%>mqT?@uxH)EW5OAAgHIyLTuzo8|}*+ID&p z6WUFr0c*C3iUWAZy`;4N@^6Q77F#*=SH8 zFO)r@v}__^&rn)yQ2;@7C8j5)dk0k|9XWc+8~QwVj{hRF4;_b1l=@g)IW6GGS{;{5CW za#|EJ{oTy!-S66GP1$5YY%ZQ?JvyS`ARbo{qk8)Dfm2QIN$aZ?F z=#EZ>qt`$|x*@vWy_`%Wc)TbqjNqH!`w>?XS1ezKXf%vOGLHH0&*bDD(SONKlvJ>T zp%8Ao^$yH9^%T^lXsR_}rJ71mOSaCG?%e4Whg0K0nz_&%##{@~=tngp=#!=ry>yZZ zq|i=5bUhYc!vm-z@>XE(K~bO%X6-K6w%7YKy&nM)LtgY4gm9`BIBXhD(xg{WFC_Bv zaA1E~1N$L4pdUDBFtY~O!gN_Hb^dbh%8^$us+o zrLNq{bXC5MuCK||N@rp=bpKbb&$iii&iR|l?uWa4u-O>cEr2N2h^ww@UxfDEf$K?KtFt*oR&(9q9XJo{*;V z&Fkt?xc=rlG4I1oc>VoV7&&?@CsVRPf$_zk{ydhg*oar&T8#59`3w?Ce>XfnzQmOre0HNrMN9XWGJ#Xbg`vg6ndy}?zY1HM=dTpp&wn24*4vi1rtCT z3P0Sc`(gVLsPkxgS}>9pkhB8)P1B{2+L8#-*dUxFoWVi6A+>#G);-BVn6&k03avn{ zEAe!%yLOuWY%eiQfJc~iZB#jjn~bXsUZu`zXxbyozU>mbz`t`!G z$DM#p8`fmLPl8(ur<`yypZ$`)CHV2r9^=03ZNKL_t)Wk_WN6I;{L)F_tb|jQ#`r;G7FSh4U}@f7rTtLxZasdOpuO?_xai z#Pb+ZQlLce08AP+7-ya~4QHQ!0evdlv`?alw_M;2yoDACn1PR%|X5C>7A1hwgqWuCEqsdMORiR zKpd7Gfg~Cyi4|q|N;^9U7&573cXW_0*fz|m5_RAEPAzqkI_T3>cPI&B?hn--_^gEM z?cHzW6Eor5H_#Q~&Kn?Q^uWqS{)Sd;*CMD7AzG|u2V636$~F)*Ena}zke-T~kA^@) zRnjuphSDNCEGhK3;KK_Jn?*viKs0R~rnX#6KlN^&-=lLz!Kp((&VBn!&;JP)NfcUF zLFfS9mO&k8205YHRoaZ`n5iQE$_vl2HQ3J{c?|uEdSc6_buMMy8<5pZz0hYpc5V-pf>&3ixvolu{t~lzmjS5!tFN~in1$B?SmSEuRIh5*Eijjz@5S1AC=x+}-a#wRqyi2+*G4~&KiQMVJDD6RNq@FAf&1|C5DKF zK-&aO+pSMpws4tMxvSoi89KUQO6#R$ZbwymH7|tqE1`~2A#Wp)SXL+`@!Ctz;oyON z7}T#XX1@Jjw^!K<3WPphu^eCe%!TOLs|V)Jeh0BwE%NgtjkL!|6@YV}ztaNarBerV zGR4u*XnbszIuUKzs!fU7n)RfUmH0X zC2a|+{!`F>`}gj~$)}x$9zFXYFE51W|N199^QYgUq;Ef5aM=tN7v8Y$BUq`Vwn_Ay z1KY-k(c>^|_z-N}u?G*_^9{WE>Kh2sv6{eJufK#l?s)*8y5M}=^}|Q-y>EOKhYlTR zw`20*qbc|Sx{o7+PO*Lz8I!!KYYeAEZ29NPh#q9CSc2hEg2f_F6ne1W*8L9GF%ZSxq^j)kml z0pYYH5pA6--6o5?g-isM}=k5zm!)cyLpTjha ztYEcqR|mlXa!}iC+K{$tSqo%Pe-8H{k<5s&^!>q|Q&J_}DFJNRAy^b}Q!>a=-pu$) zuSzu_X%~QdAb-x-0ySY)Ynf?6J?|u6A)*`&Xhb!0O zNB7=?ZQC}nSX%D!LLeHAV$s4m`0cMB!T&w{YZUg#N1wj^*yVucP?Pr2Xp3{%Fo@1x z(z_2H`}3=qbi#>T`A=w5!#T5$;rlWYj^Inz-GcGQj=@*I_*pETKNop<^#k;gqsDOs ze#80=c;nx1pl?Z73;aqJJiPn%8)1q+;L1;5iVv1thd=)A7tI#m^Wmed;RooQ3Vzk2 z!{OyMW`XIDuD4Y4Cm;i=7m+IOY<-qt;g(AGyh8`Y^*ni72cD!Uz&3=g`Wsr=Jy(zp z?!8tb@J>aC1k{d(Al(5kzgZtZICgBFA&~^5s4`?20e687M@?MHCW7`OL&=s|vUk~? z^38*Q*WtVYGJl&u=<^yhfS{2|e}f2Un>OcL{NBH&Ktq*b`isftK?Q(H)Jt2h>BOD4 zHGrwVZ~}Dc3L0iV719$}s@AEb8^EPVh>ohvB$Z}r%Ru3%!W&&;sHNa$z`(({_J-Tg ztGIWwdvU3cdEee$c=k`f$EFSIncm)TkFrQRH)JH`q^=I9#Z{ZMU345+oR$PLkQMN^ zMQ|Q)gLCzg0y_G%to+>mT{S6)$p zy4q@Wf94X-lgf^cu4BM3aNxiJ?BBPW9diV%2Gu16RI5x?WjPW_OSkb^TxjSh)Ws6G z>$ZC^ZTg8gc%T-4c=T}$9X1@Fx#BZOrIMT=+Od5b7B6@o7o2rEPMkU&A1+;3&#RsO zx2C4rJ=cQQNzUH{Cy=&oDa9i{`w>QtnTR{@eGsKvHsX~RUS!pGA3i!7et_D%wzgH}{Vk&A)%Ss%SfchpMmAdo(GlE$<5zC}rv; z&~HJu#seHBWMA~mN83Wt)wO@Qq*Psq*+)WKps8`d(^t*<6uE4@R9eiPk#x(3V`r(x zdBJpR$s$^|Qj^z#zv`0i++!{ElmGnjzhe3)PGgF6vq6j)18h@u-<>yO`_`?E1nGub zO*Y_d&k}&w?o_67k7b^ZlnH>Uo`C%-YHwVA_ z%}?-ypZ*H>KJW-%7qVls{M@IH4u&6~cN+NBa|P8C$cn_t6sy4|Q#Ol{NWJ)>03;YR z5e@})@6%x@xn{&tnV-Sb_ADBF^FC5)J0D#|H-fs~TXq8Z^sM7+XO%y_f z>S^S!@&xII4!W}|=|X#?TN1+5m2?h5kH#QfUproeCzWb5`JhY9MzG;lzPyzWT1=70 zyzm6=M`F*@|7Jf6Eln7Bj!h~xVP`#UH&1EF1F4)>V%S0jdWV2J=y?W74-b>*|n38C*N#Isv7Kn ze!(Rd^BK7B&YQ4%=XS2F*Si`nlgsHnPmc$xui9HZ&l-p7om?f>7BCW!oTT)!;SLYk zm2*nC1VpCDD!Z$gaSr@UAseThyQwQF zxI&*y5woP@ok?gPkDD?L1%*AZzw98Mc=R!Zgrf6%LBGc8YH_I6#xWzuA`;0%g?&Kr z{WXXUw{v?b-gxz&xaMeM&SNAR#NVI(0|pHlfm^@%4LteW z%h$NjOe+dv*7QA#`=u5pi-9 z#|=JV!sF9x@cC<=6<_Uf{`;E(x`%%79W0ppF7opWbi%E1q>@Pt9We@5fAwY#9?!qzB1rjLeD@pI z;ZS9TXMUABIM?G8YkpYiB%w$*RWsA9S@XOzHe1^9vTc}l-kx)4(Lht=o+IhH28e8BWGyJhze0e(%2dDBD|;d7gzpJPxjMm*fXfT6Ku$ zn_QQi`pJLw(D%`&qzA?yI~h|?nTA<2Ux#TL?)^yTDV0j$k%#VKmH2DEb~C1oJBI&O z*rTVqKK_*CqXXav=sr3D1d?_D@mLa*kDrVgXMF;_dzWDNh*7LO+M{Prowr$;tk3U+2S6=xK4(u!AiaJ?ob&3TK)1s5GEQ5vHz|=`g2jEVXP%ZkL z37>-XfRLVT4s#c%icbNyD?~$;^oX`_sju$N^loCpQIIZpmTV%#G;JjoXKN;jBSM)Llgp(I(iuU)%g!C8cQj9?rhtVhk8G1eFyBwf&f6!8~a1cvVf#woeOs2HaFuGOzxX zXfM1K-u0sDBZjn!$*!l z-~Rn^@BjSuPfqrI$b z55|rki>tnLJ%0J{FF61gI@wWMU5kDLig3jjzmA9rESxh7l@$jXuvs&(W%GLc?~T`@ zPoKUhFF$~AI9%^osINT{kKyrO{s?ntzkzYbPC`jZ33l$-fdl*Y!mP&t@!_NG;RonG zjvypY_OYaalc!C><)8T!O8WH2kfDRoySNac)J6mo?*oVS!#-HU6GlMhp(t2{qP{~h z`k0BBe(G_!^ivn$%{OM@`RD$@VkSYu(*CoDfi`F(rnj3$0=9^18oLQ;*Jb#(Qc%ox zXY@B|BV~tR8bO_5w|Nmz&(FLCd!VTHI!Je1-&r^=kyA{D>D@=Ax_fic*iCU{&re5$ zv2Fbwd~b6w?h*6h|F)&ZgbyE0LpY+5Sxk=RfjiErOI@W#r5ZPx6(!QW)NHXP0`6z0 z>Drwip->p1#w^TpAXXR03x9nIXMXZxoH64xRMe%i0w%1Fvd-R=fGH<=Aq z&)ajHP>S%jht^JkuPK_I6P4X*Fl+xLOe4v6T3f-ggPi!0Sxh9G`|p#?^4hz5JMOyu zYxuukK8X>dM_|aXLAdvU->{E(W4l6CW7M$m*tBsC z%J%Gr84z5V&vh&mq*Ef`gQbi3Cm0Oy8jW7}_O|=zXtb0O*mdCt=su1Z;t8NvQ88}1 z=ChbS<81CX?_X@8m;D9;yVr7nN@8nDfz(qGj0wnU127^;CHkUY(J8p*3+G_cabxh? zNB@YAKmHiuAPyt2Z98xUhAP$~PuZ>+QKjA`Q|=%mWE~))j(e`VAmQz~8k0i6UAVLy zEQI8$wdvN*dy8v62sjVHM$XrR2_6^Rd=R6}gH>gJ4 zjNqL1UFPUMZ`0j1IH{jzeHaF(%dOA^!h7*$CwGn<11gk2{+$%8&mB`tnjm+`!cTh z!j};V0m)blPd)h*mMnM=;cyN{fRrdG?1|@Jn~&A2mSg6B|Ao2l&cxomyHH(K#m{6g z7|KW>(f>!Ij(5Lm!|aH}gbyF^1N6>-qqF}!7Pm3%m}79=bys2X38$j2dN)S&Sc`(% zm9V+8>kN`2%l{NE^$>O~iUV7aC@)2o7=z=-Psh(5x&sgW^!J!GdjawzLic(fSjZhev z|Nbo8ef!sN)9v3!VPQV3R3pbCsKRVx$F`mL`Ga?1%f=0e=BP|}1b*?romjT$JzRb5 z%@{IlC?e594xD3k)!4IpH(vPLlX(4==Q*e**MWvWRq^xBJqs6}dlt6tsl@xU-oT5` z{Smu&ZO7(~>kzB6+25an_4H|I14^Y2A1#C*p!?`xNF!@bpRHkXt-k)Sren0fITDb?JVRd&Fg0t#vP76qBk%z3F zsE%TFcOO1F5*^3k00DOog(Y^BvbFD8Pcl}q2@?C-U!=A z+iuD*&*RETRlwv#OxqUKWT?k886jV1EP4qA$OqC-aPMVa-8mKjBP~DxB=IzGR-DQ@# zJAAsk4 z0_Bx4+;h)$IC1J!9N4oNBcksiAZj@4-1HRIlpsq01)(?svG))uz8p8-^f|2CunpCR zDw`$f(j3r0kV++yN=fd6f(~RUgB=KnELs%#c+$4Y#GMM_p^!Gm)xkOan@Gf9Q;J&K zKbrwX(J~E#19nnkPuT`iNsFn1Av2B;PZTy1iH0-t^!@Z1B#h$itMaP5CsP(@p`9MT zP$+9i5Q^@eO4>+T0=8wb7q+SdS-dz127@^jQ+@dG(V8&^NLVIp+l0mb&33zlCiFc? z3ecs&Y#xKWn~koaD&F}aJSy;+tgo&ZoD(g0@|2Tt&Gomk>NOfz5X+4BNDLY>6epc} z3eT0%0Pve%{sKFU?VMQeSOy#?&V@6NYi0Rnu*NJzV2gmh-bw&a z*}}E`(`#$$KiPvRW}G@lNg3kSG?|KV^*3lLmY&pXJfYcmoP2K1MyfKrCT=R zFHigm(oWOeDIq}b89insF1h?loHpZZ4C>n#m34L4vwH_tez+VjKL1ygZr;S=M~1I% z>cdAHK&s@JknOfa=HSuw=aVh+xA)PqGu_oebH{h@e+Xxubw;B{lAVem#4I4s1RnkM zFYw4i_abT2Jfv9#9Qb-|MU^&6I>FI8wpi;RdHv9u;GFDB4eFhU_sRIEX@^pcu^qpJi)1d`P7dFSl(XLN?!R0tg0zYkk>9mK#v{V;TB zKR$-bKKn%+Jg^Ttx0PbaqB)rR?i*OOVmXqDIPW_Z4d~np!)R9UEQG<;cw)rU8s~$h zi?L$aV!ZR_s~9+F7^a_bHZHmR3pjSt@fbX;A5NZr2EKUhjhH{@UHtO@?!lhj+cSzW zK76zX`~clYhrqHVqLBhzc>d`K8b1e!(VQk;K7jtIM z!lFHM5H?bLjQIrxxa?P3@o~9)aw}FLJ0M+!#ZL`Bq|0hTQUz9 zo<0E+j+=th&pZ$3oOdaTdzYYZzX2FNVh~O{^EBN2&F^CC=2E=(&g)n(cNSKySc-V8 z4u>i$kV+#HR?a35yD0wQj$BxIy`~?^i`7r0#8m2&=U5aR*sW|h@saUdf74rCY zZ@KjvRig(F8HQgy{wJJ#;#4@=yPJ1xM{P|F3VIY`*nmL@n-Ar-Je}MccQA+=847Wy`ldmEK-A4$47sQGVeZ!etr7jfge4DL4$|l{_oy~RH{BL zUTPX6&)Q}LvD!l@EbNUx{Ph`}f7ZFYUv&0jQex+h?MNh&=-sCe`t<05!blW1eCmJ>lzD6HSftahN(f&4(RLBekj=UXZcZ9?6a+S38v(XhT z1*yt-&$n*GvV|&9n~UO}@rr)@X&#{YVCL&DBbK1)D9ni`_B2Oso*QBS03ZNKL_t(M zW1Jw>bL#zeTBytpte%sgA6vfZN5Np#_(T(eaDsd3)1tOo^tIiCbD`Z_BqvKuAvoDj z`)nG@t%c5?H%U&t@RG&iOwT#bQp6Vqi@+*2UXt5g>MQ4W45|)QV8NVsFz>y$@bd@0 z$AWOvPMLw}XPk@SBSxaQq(6p^I0mXg`z5 z1gp0beSYNVkr+0745prXIzDy9H5fi}uv+_Az?RJ$5UZ>63lKg!1b%?-quoJ4BvpmS zj~k9iVL!-&vk($BS@tsu)PuBZPZjp>I{@SjM@`S`U>UuYSGb-ks8>2=hq12eOwL#j z%UizQUi9tXA7Af|IS-R3OyvFk>ep|?!g=rEwU_^;CFpX4*bXGp^MjxK#0}1A zTA#Og0bYFmIV@W;7l#hjV%)?j_{w!(!x?9v4OGrnH`IQvkRAJx zz9{LGgbHAo5hXavp?E^muAQ`=!PaC>I~?29iH=G15sQz+-Qb4ZIyi5TQKEx$uAF;# zbTXl<{v7}z9cDTtonRK+OCUh!&CGS)WZF4^0(!5Ftrm+_z4A^KJr$?Tn1PGVo`EO-G8y;Z zbqf-)SR-o?!NrWa+5~E2!0_SyFnP)}Oqg^$F1X}MOgnKRb2(@hTeo>9mMxi&Rm+#) zowxpty?b`?I?soX_J$vzcPNg|>Uqkt(YIee95-V6}6*Zac=0orZB^hoQ7| z8^QsjMc2WWHuox#EgbYzwtDqy{P6C(Ss;xRPPdirz=z9jz|@mZ$FZZw@^;5hIS~c< zLF_L(ge{vlV(jR#e6;=g4?wRTA)XwhVd0`nFV)|pdrlz`2}f|onKQVzJ01g$oiq&t z_4iY-KkvO+8D~xf=rR2LnLp#hS|nY$)))8r>}6&)S{(}aoy)Xiw&E1qes4CI;>r@4sXBtCVupjhj8Q9 zzRpX|FMjbW_{TGU!3RqhHTxX<=z6f(A2^`AeubA!XlmOoWp5}tSm4Qrk0T4g$zr>~ zrIo>b&bBaE6G5l95w>!(!IJFeod?EF&dULz}1;rPj0dY>Ftlb6w?&!=W6 zq}M^t-vW9Kr9Mdz6<$zMMI|1NRMD7i6L|_CA zyQaa3nkFAoE!|RcGKza`*HvK;t&2p_Qss!66&N^h0QX)?k56cGK$8PigUMnBy5`Zp ze}7#0h0o#Te?AW@B@xXFu$uaD0APNg|j|+0rE@}Lxv5* z$T4HFdetiQ=w)K`m@yn|uiLPZMdBt;7|&VTGta#U&p-PtVksM=#*9Z%ULGGE(W};c zyb^(|)_vN~!onWtSt#7>F75Zy#mn&6V~^n1kNl1ag;S@Th+)G=V_#X00G-aD9fM`1 zaQu`L(5tYJI|QkUfA4p1$L^iG(XV&JrPUMD@z9}iJoWp>arW6~W7LR|-1~L)bvIze z@+JO*)lET*Z41t#RK^AV zj3(#O5cid{CLGWDadsxjXn+=EXBO1W0G6trcTmzo*}XX}2uZd=ZR)!@pf>`#z~Aw~ zxdTI_6pM-OE2#u>dEC{>e&vTM`P`=&8(w&iQ}Qtw+E<;6CsGIbtZHv)>VC%+nP@(t z){0az#a3z)C!d6~&b=5XopKtAiu&?8Wa~*;?=zDn zqgP;8R^>v#paoE}0=@ebBN7QiS}hFFX?c}OVdMIBsIx7uLJu4`5I=wP5BQ&Nd<)AK zFT||3UdM;amtg7QB}gRHv`4{fBpT-a@pEgbjd1w=DZ6z8%x`- zTD1zxmMp^PAN?5l!61&EI2lPR0AX0@)3>iHsY8nFq$b~-W1xx$#ZD`iFGX2-IZBF( zcp{o~{E7Hr>B8LC%1WST&pZqsJXjw;uy=16R(!Y&c?IEmev|om0iMX_&YOoZBS!K* zPCa=#tEBoq>D>=%3GJ~GB(DMO56sRARDm%<>R+K3cPzH#i|Y93&X6vv!~yjK8{U3o z9r#e6ulha6!dxAzRNh8t)*Px7(GADCn9qfsp+L@-W~_d$G*`r7I;}JxL{SfEuXQMK zv}Sxa1@yKZ;J$CRDzlGFaPGhqN=TN*TQxQ7YPd7?O2HOuHV5yvs)VCqYgQh|$!<|e z%)&;PSyIgWV3W4Cv8!zk3JQB*+VmMX`@G9A<)rB-DlSHGNip(6K-{KEI52<73cT~i z%dEa$QGO5=2M=(&9~EP=19V!u6!z?eC!c*CLx&AUB%u1rS8v>b|Gx5f{Oj+3W|6sl zdv_xiw-AY#=vCCTzq*eOgtuGhD1aZJHv+0aQa>*HNt+;t3x!J&+4%WOSJguroej9{5g2` zuYbaIU;Y}0Cq)H?m^$SoOqp^LzH;3SI8)#)A&7>xz^hrh2>;ePO!Ph!lt@toidg#$>P>10M|UNW`iH2ROvw&NTlbG=-gQe1rTrFiz4zu^AweVenfR6(zR4Tg+?HjX63u#q6^q6e5f4W$q2;!`2xtX#E<&jk_@7`Tb_5>FpW5DJEYkkLGJZ#w>AVRF>>Ts z%sBZ3)Yxzti65`}05AOQNxb;%Q#f?UV*Q_Jp5S1d)*#JwjUo2o559Xd-g@m{sH!@| zEqR9aP7nFQZ$3I10^M!tEM?owcT(y&M9-goC9nm^x&VTEQ-$hJr3F5WbQap(2uP(Y z#A8Vylz_DBAdUQH26vJzMjD$i$U3A^_1Pvs)-qKUmH6RZ-^I)Scn;@YcnQW&n22LW zjKbLQ$8u%d@g66?auUP4^BdnppodzfESUG68=#LGJ02HZavmb2QbM+AySB5JCt1j? z`fw@E_{0q4he9~<#K|bzwF!g!58x@YqM`!3wr^{h#fJd*loQ1s&RK6vU7cu{md#$G z4uS#4x7OgQh+3GWgLF&V>A<~Os&`ECBFxa+`$2kFhgbQRXp)Wv54rMKR4t>0IRrw2 zk~kKGAzi;%Da<3H2JFK}`y+EMV@kJ_9MIT~y9gyRWdNqMbzi!zsl)2I>eSChv!@%$ zbA%sGJCuASu^tW(W_oNF3e8`0ltst@6x z&;1#ZNJtkdd~{`Gr<}SQ0^RP&+URO=Vw-~-CG-+(RrUNR3`%l1d{CcVES7L7eaf@5 z{@IBH1>y+{(y9aE`+#VVCVN+Dk_n19iUK=TCO8KuLt0r`#o5!Af(CU;98^~*o41q= ze6Vx{mMmPsedZ%Z5676X6L8YW({atUH=v}Xgtt5Y;>+>;-~NnMD^?;DGO=v&0tECj zWZoy3#VQ_=e=35?3OKL zXmb*e>pyUiUOoXkww3DM#~kO%RCYSsx0m9C<0kX>ju}4=ww=fk;kE^%vjpdg*~z`(hO)SXW^SaF*`-bhS@jlYs_i17?@u+iTL>`Y z!ytck!%N?{x&NHo7RWDMh5Yr*HCVr6KeG-utzU!EEgP_O(Oj%qwF;>eke6?A4|*=pdM+CE1M_Z$ZXBTpy5Ett z-PH;P4bIMS?a=Upi`Ie$#fpkUIIwR&!hsSb6H$a&Gc!H9Qy^K?BZv)KfkfRQ1cDzT zkUtL6YP`pb)v)Y~*@&|v)U!?!Wj zedv&3c<={zvnU)<=C^L%f_1C6;J^QQ4QtnYj9)$WN0{V6KJ*w&oO}Y7EnWd)PVLyf z4ZHX6L*L$g(0{-H^yzyc@}p654Z#P?mvVd)i3Tu#-fUEsALIai^6@8P*fArS97w_a zoLMt@e_G-%P7_wIUPTzxw;wN+C>y=Gtw_tuXda|~vj`AO%DW8Iq7NF{0@%!m%kOi$(Ae~!8?ybEce6@H--HDtv@ zEf6Bbor<;&%ALM+(LuIJK74dEq+2OhV;fhDb=5L}BGEXPorCUu$BNtY<3hv5gF2&c7l;I854)I(=nbOx+a5dd#Yqz$)end4Vp|{2J z=3w6JIqZ8raL`Z;7(5impKvnH_~b=6_4Ly*X7B~DF1`Q~ro+mxpR=F!POnvnMB2s1F{f;$VLG&|^?gP=LaM0-k#5LH%IaBL3Wld^qX5 z$@YzWTzT1NTPQ4y;H+~m;4?$tSCvR$^QLtT5)C@jQ{x88=k z@4O9xU_J~}4I9!nkW5NUJ>_&vJ>evt%4zxa{9m8q;9b}x_@`9rxwS!r{YrWl2CKBY z^hhQ8NE!n{Q!p(OA_-GyA}FaHdoHu+OhJebA8iJetdy3gGAYu5ABmI(h2>%238qX- zEgaVs-3^!_z*b(u695Gi72I)lK<1pybbfDePO9l07@Vt&iBmndnh|I#mG|`i9$B^a zY*6x3YD+ZojOPR?kGuv_TI+|4OZ5U&q1jGC-+OlYb%qU-T9gpdZ3xms=NHU6kcQG* zAn$c)x6Bo%xu6QTQw6szi)rthH*UnTMRW0wXP-ikp1m-7?6ElWyvuOrITvE|*ijfg zZWKOw{y8Wq>4QgpdM}cRgdd>$=+f|w{d}}Lh<ZhRPK5oR-yvJ2&O5t8kFIsWkBD^CiD-l&r)yK5R{EIuy)OQly2SCDiIK> zD3|TogE_O`;ooVh`r3`R;M7l?#XV6p{*&)`Nl9Paargbm&&%T@+qZWwwrtt}nqz2^ zApi0u3+D1?cxxs#RaICp_dU0Vo5Vxko%vrRG?m@f!FlQKU8t-m*Y;&O4pj*B?9~gs z`}RgjpS~>eHgwocfxEWHJ4vt;?4j38}H7V$pJc9 z%3OED&G_EEKSDu%9zvlY_j?r;_rd@B{MESc!H1dFOrL+Sx*G4i^%^e~c%hn+Trss0 zu0LsZRe1YJscOhUx=@KsQ#hGylSLaHF*$GFqYoe52dctK=2NDjQmz!-WVgaOF5CPh z$S`d7{MLVyT}wohf*wjtlkh7gi|gv*sHu)4MzRw+7&5qDIVXf@fZFe*bl6DvtqDWbS1NC%#N^@_NTM(p(aI&0#7g4>! z$efdv2%J>cEo04Lrz@7k1YuS}``*8#nPVCz??zp10#%19S%7!v_N`dAdIh)BCG{mO z43HpkUc2s(4<8)`zk=Q_@E4!vfV1XLk=Tad)eOIc<$*Z@yWB!K{T3&;^HDa^RL(N?%Ol*;j#rND(;PQ z&%YR>Mviu`{QNoZV#&fqh(?1tK#ybPhs)}HS9ulqvlAw2xKQRk;0@ z>#?8v&sDnt3F;6#Lb%lkpYGn3K@~yLdXTK>D|8jzyBJqJ>9(gL({75tK71S@P=KVA z%60fHfPfL#4hGJXV5+t&X}AG8(pv8@cnmy3;&3gcvP+5T>I6oO8Hw{Rx)k|6im`jw z4%REFtF6WM9s99y!#YI6!lg^6zblju(4ZzT=Y#O~cCs zRBQ(31<<&x+lts07?ztPRlWD7XU=uZ>6P#+i+XzIWR+x6O>r{ACR5YlT?;+48La}X zI6^6rNW>AVBV8Pz|A0OiFlY$+4;YLSr=EuMF8M5uoiGwkr}_RGi4AMlV$ZJKnEm#D zkc`J07sK`8qYJiMD5z+6;l;1kE0*s>># zvhuB{E+jUW|~?ioFJVJE~HW)KHa^`fNf~%Nz%tP6h%r3Ezi?QVqP;)D}9r%Q_;;U#*uB=Gl zQ~&RB-0+R>;OtXR$&ePKk6gB9BX0ic)%alXA`}-#(vB%agLW*9=b}fRni3IXRSJcSrZA)X5Dg z1FWOK#S3X^0Z@HzZDLF`?xNEYB;s+@)=G?>FcOoFpNe54M&Q`vref;!GcamEk^4#8 z57gqrWeZWdc>^}CUxT;bcp2;0Y(;(ne1&!&-2#4q-sbQFj$8-^4D8!mh8JIYhx>)< z#Hond`?%_m85DzUn*yf9gkch+1_n@3U4vMBAp*fXu3#62%2~{W=v)m=3QE`ycz?+O z%$&au1<`!2zULs;d)`q`ex4^h!wB%y^vA~^sRB$50+!*o3CNr>a8g0t@eom zX!>`@)~(pMWiyhg6gI3~(*A+btFg+Am4^Nv$V=L^n-Y9Sy84I51VCe{)K$w85TZAl)375!bZ#ijQgfbUnQ z?I@V`qv!v(J#>Dld(K0EL4mlH^}1pQvXyEZF+pgJHhk1rTz|{AF>352OgU*PianA$ z8+Vms{+yXuxqLCUY+8p8mo3KD(lP`CKwh4~>l+_Fx(oaO-A4yOAU`jN_ugBC8J{>2 zr%a!YJ>@51NO-PGs`7#+_e4@)05pmT66ZPeA(V$ZIf*tBsoR}{U$ zIdp(tb?6Wte(*j#@%XQqYER#_d)Ll-0XlvAPk($b3bb_@eafC)I}nMatwZwigIF-{ zecbTnt2juKSqmTfjJmoy9N1rmva(tf6u=G6p{wt-&yW7{A^hoy$Jlm_`ns|aiH5Lz z>2fSvyd1-Z{}BTR4MBc>0RpCp%Bo6~?JdKW(w%HYSJ(!sV42t|l%mYh$O7H^{< zHFdayDza_x6_pi9-2c$eaO-W~MoIuR@%oQ7O(``=;MD0S<5y2Ujc@(WmpMoekxiQ~1dr)??GQ0OCL$zgk2> zCQ=j-3p01GdUjuy`~M#0U8(xI3VQ@lS6hP*moMiS)RuaxqaMTn5RHc1>U1X5XP1@j z#qQm^-ERsB{-+?i|l2OKk*cVcus9(TN{Wc zfwRv(6W{#a{rK_s??7#x#dAJW`DI6sS(>iytsFNv21!lD*H(G9<+-k%7c`$xtA(Wb z0VWJ1$|9aTHVf)Wr{rmnsqV^l-pkzZ9=^p45Sm}~O2DHlVyErZgz!w!`h3zNgI^bI zGJn&0!%8JFYyJ|v`JaDc{+xHPclRz-R~0>J=!_40#qAKf2;?&^Zx@yk~~ zIByQZL4iHHcjGs|c^W_b;WtqiorbNo0SpQ+K|s`z$w#Zr1t|U`)pnY&p7_T$%v`Wf z{Z5u6hN>~!x@X;)fM{;9-O5HLSY*Y0#j`LA1o)>l2nK`5ih*;2MdKRVPO2(6{j?r} zzo$9-LlY;d;O7>?C!3cz_n13L6z(yn{=FQFBJORY%!ZK`n&GN?Hw)4&Tk`#^DsMrq zZnV^HjDvhBU~8%-`_qaeAM7e&M%$A#%igE7;Gz92T{O7YOK3+tsjT7}0t>$d*pYzd7)qo& zYa+D{a%k`#J3)Ru*y{CKE>IC--urK3{@ht?Q){JCszuH)keBZV3c;DHApL+zn5REMTvbNrL2vIoF40$NC><&CR_`2kedr0~?gw&Bk&Z*yN) zUgWkrw>T4;3+b((8(FW*dJ~h6YzVce$xvoDG~F}D5W~W8DHYVa+biL??sT4QnZC8` zoGGBDLGM@c0>VRVJksY#3obc&1tL3HrSAv-+40fE!O1nI{|epv3lED$frE3YGMCho zP6=V9tg!_|-0~05oh=GHLd01?XL+WwQ-4W@fOLrs;Juc}Wvrz_*nckKI z`L4tEF-1zZS=brZF8w1_vWP_t8(ULJ_qe5WbVZy$X}@$~W^Io)r?^A+p;Hx|iUP#w zqhd&Q8=wy#M+1C{dz-+op0@-v@CHo_3+6Awo;~|;-E~)C(v<1go*aS_xfUhSJqRQ= zLM9Js>Y1520k{hQj=Z@ay09RK4O^@6;P2Msjd^8=giVhn8I{RX09%c)Ob-lQiIk3l zJHyb`zFamej%KZ|c$FJMRm-VrWJKJFJ8h|!qbJ=}cMrRCceZcoCY5xe7N#t!0HhEw z=&oz|y+cAj!Xh!CI1CZw1zGDt{kDa{B5}5UCUPvEr1U&OrvL2t=wgsO7dUF|QhWU) zOAszotzB?1YIL-PWIM*b)JoNQyDI7FS?)+kofy{pZ6_Nadkjw?k0d(2+JAUpW)=%` zI)w*k-_xRm%{m-QHgJ|~4w^~T)f8zeJF(zwAw5<4wmd37sq4c>pxeck9nN>~gY(va z2J>hH*t~f&e*W+uaNc=qaqfBNLG+u3S}TEq;7;`HQ4Q0o0FwJ5ts4C;IuNwu9OOqs zz=4B@@ce&w;Ij|)UQ`K@y&b3<%gV z$sXjLMt4o<%8F2n;qG1ub)n>Nn(ch} zXcgpzbA@#x)qEb^ix zQU-)WYWNo{cp}-hZTY60-^Yf@Qo1^DUaK9GOx1<&}N!yF0 z!GEVXf#^F9fQXhqAI)O#5Axjo4!M4)P7(aSAnll{JeKz1raP(II!M20z1o$m|?weXc*I%#$)Lh34xp|+7` z`%zxWl>mC-?4_tm^+c;6%U6>3(J+(>dr&cfw1WmIWgGCiFSJChy^V30j|~Y`rtFXk zwPY>y0W=8ZMgpw*a4AlkaTWqW1E~g#C@6_o5CUF!=@tC$x4%RpR?EzvBLjiV>Ul$y zbx$DAbnvDV3am+BD?vFyer9%xnBU#PQId{<6HYX&+lD?BlE-bS$9Gq7POYZ=Wsnaa z?TA44s{;F(ysijp7pE$@lnK<;96(KV1@@Qi!O9OmP!pjewnaglt%P`(Rz>QbQG@$^ z)6oAbG!w z{AH#X9Q3`EvV$F~*4_p|5T~hZrIhgq^l(l4)v{sgvH4d;XL^IYWBYL=Cqu zib3LV{0yrg-J~F0#v$!UeE}R|yRj#G%3}>>xm9!u_|@xvz}Pgrm2|IgT&TfHy6XFn zYen~f>p#qapWpxA$sn~ok4|)PmE6c08!fkrt^#I>Nh35zHka?W zEnRYW6Wb!=87HekZ|+rO#Y60J(7+0;s6>!3T4^Ei|soWY4= zV*D8G8JxGnP$!+c*J$28(=(Jz#_`KVGrAL)qHk%d4{5nI4n=&gWt5>_b!Z6gBCu~phmD&dN zxaobp>!Puws=w~=(edyD^j5(S&N~jdt0%m8lG0^iWmjCN(m{bXDYOcg@(#C>u6#i$ zNDrwBeHKV0$aKA&C5r<|P1WT9vzvK#w;x)l?hZ{$mNBlLJ3%^As=3e%$5d{DGP}NC14~cAA$iB!JrAlIP&JEK8`;40eXw!2W6cT+5O}xuGZO1 znO1#wHdWAUHNiqJB)O6Dy0Ws3uKf4b}p;45n=@?+et_O0_`!MC zfm$I_MU5>{So}v-#%Yo6Sdws0x}8u#yeCNK1vLc{-kw>m4C)FR2aUELEVcmk)ZMvd zAf(S>1CVjefN*HkA+_X^4X73QI6~Lep&~n;=c&vnW*v(kbu?BB2Ec6TD9WOMATU6p5OZ4BGMG8On8cS;Fc)iIp;aR+dFJ12Qn)n z$x6Av4DZZ*o9`9VwEY!d2OxU{IU1ucKS1}< z?P1sn*g{+5=pY@QAe||hc3caX8EM8m_pYZrLxas~y&PcjqBNw)o*9&09}Odix;ys; zi$>T8Qui~4l$95pAYIfGB=d1(pn|KUx<<$?250CN5qkCnJy&SHtx-deNLS0;RDhIB zMb;!_BJ(2P3Vk)Suxhw$j$I>rY6CUd>lxpuift67yz zH)+zG4eO;1>V2anHA_kgn5N+xOeuy&8;WY{O3084O(wmEV>h8=&K%*@KQ~{Ol!V1j@?0s}7>=a;z+&*um?wi>>%vEk-vak}> zwpB&*aOkkP#N2pQ>_}`k6OBE$jR$m1Z{L#lb`>1XF}CDdY?OU+o^l6@AtlIt=-N(=bk(F+&cT^cbI$c*>&x; z*ILh8o`?TV0LxNfucIWDGX$Jdsyl&kYL!X_c>nMI@nl|D+@@ejHB(k?)Xt-2C1XZ_ zJ+tXF$>6-^*?8ak-+_0(_i~JkRPo@WJK#mg?kZ&$xBvET^yGc4JmC~vc+myu>2`6| zRbR#6!F|ZN*>jwTWr%8Q%K&;?mUX3BZyKaCNs&~bcl`X?C;7>& z^QIhJHSIvLbQHZ713^@~E1AGeMY(*2k4i+XT= zMf4S>GDj7Xq$U+hj`UV)jdXM$0mDshqP+s?1aiJiR#uxboS8kp_(5ua{63Q@<V#59hjveA_%~2?Jcg+GNK(Vw%0H`{9Tyh1cp(N48S}K60`DrH8^w?4mK($gyB{j@!s?5Sj$;ZX7 zybvG$-S=bv!BIT<%zhrbqUGiJLJ`NTIvrb{ydMuga39v3bTTfy=*8H!bt}H}ogcyX zYvc0+AK{ku`0-l?&@($?Oz?ueroE&p605*EVjx{Y6UXUjiXt=fb+k_}tvT9mBJqfT z^emFzo(WYmtaZ-~NDs3b(uZ>f>GUkDoF?mY)k2$7E<3o8&TRZ9jnaX`X~K3uyp?!< zLXpMMduYMcr6%KFty99hrW(_va8%n~gX>TXtX(RU<|Wf-_QIbI_=)62XDW^V=H z6p2~79H2_smz)ivu%3}~YnE7RSj^+>?s5h*AREvfvb9sh)zlrQ7U9Q;@}$;K_61TM zG164{OFs@;gx1>DD`qa=_ob3IOX(-RRHS91<@V8N05He|o-5px*d~9}i1QKHbpqb(9?kb}o zyw*mx_C}p?g^{F=M#c5uC9H-_1QCf_$4{ljF<@O?We2>!C11)xsSSsrui)_z(Eybw5VF(A9#>OqF{ntH*d(jIs&0og62-y$qcu${A+r z$H)H+6!DubVUzVH+%QtlGiJM*V&xa}>qNX$|Qr^S@Kp`+4>!ij12ScaLk^ zonYaZguRsV&Ju5tZe{5d>7+$vep9}Uk-`OXz-a#3M*@6t)90B<%Up8{R^oSakwTg% zWtw9neEouLWGlAzj0F_DTj!hJOo)>tq6KOz>$;$-|uZNeGx!%4Ixo z&xY1RCM7A+_)5+!PtTpEoWr(Y(YVc$hU0sOIn#mONKZM+0_V4u#k0rZxZ#Loar+%TEodFpMYQ9aI+>2J~E@| z*$Qj&Ed%H+E$f1vGXlI8+WU8P(5I(k6b-33h=mjL@xgx-6&3Z#!Wns7uLMMJCnJXG0$2Id!5YyX6#0~(=i>VfjuycY%PQ)`_dro(nbS4l<6Gc!q*PQmrCu`7 zmw_WtnW_1fiiJB7Efa^?LxKf=@{9DW?^)Lilh>Sf{Y~#lro-G;ZO~RMQI2EVX4|)X z5VIj--uaUdNbl-y4pL~8t=23Qa@|;S;_o+`wojbO% za*|x>2oq*t~NTzgfQBTW`PThUIPWdOaYW!M}BG(}W_4rTMY)(z;DBk+;KF-P@a;ktL>k~a(d z_y^y|Pk-_=$a+PA-xgN$1OxncT>5If?>(2Ix0`AXMi}fYThx!W$G;G-dgX<<`Ihzg z;+Osl`}gfd&Kc|d6)2ahIOFs+_{2v}$8(O`$86ok+qCkS9$a|#JUq601wQk&XK?%N z>ydXw%O<7kDOY?HyKMa7d)MO47as%14)CyPfjoa}rUw<6cn$I#^ zvum_zTP>{g6_~tx2rA;*1KGG=gILrn*D}yk)g{8%mEspn5(k#aU{tTOpgJ%4arNMs2QY zt6li4kDP;z#yWG-N2g~TWU*)&z42-(3mC@sntJ!R26}eZNM<$*Z4QESvTEJJlB1U5 zZ$I@nIC<@AxFffrtG*qzx~*#oJS@pSg88d2z?FaT7wmBV-nYNQgni9QtbJcV*g1UU zeQ(8wK6E)M2R8xx?uJ|6!n^@ebis3vhA2JHs*p;jdVQY*ed@jaZlW-0#eldr)i{=9-a@464IRL^QPiDI{nzx?QF zc>PP4qgsEtTOe$xZEePUhPu$I3Q@BiS3aQFHRcTTP2_k8ndEf86hf|hCb!RA*8o483Ij9Y7 zgHt>Mm%ZaMY<%olj0_!Mt@|_^Db?}rH=TgDT)YA!WiM7IA2pgE$rteUS09T_PYvR~ zuipxrOME)`NT$e`WHBBn=W*GPC`SLT9QU)!`Av?Kty{Na!-fa2{OIFwaA>gU`$e}$ znV3C2U0i=|S&|((4?MULzF$vvxZ*~}001BWNkl7L*|}kDt8hh>$lt|lDJDMo}sR+WLenp7>t%AS~E1+%^yi4;o#agkhz z_z(o{rJ2ywv7|^_T+Dp)eW}=d$k9NORdQ-(CCaRjekG8lB4>w+khgxO#5JI@8;s+` z;(jJI*w5basWPcJ96a?LJmz>vsWZ{<3q>}#ujy_5EWsF?(V@^&wByN zqXV!8Z|6DH7rEFm!Orh8+@YH>aPSb;o^l3`T1F9UFJ=4|sFXdNb!)#`Sk$VD}T4x9Au==gjB8lj+M~N>x8@c@ZxA5=5FxGn_IW>}2Zu3^&&m*tK&fZn^n(%Z#Ph{lrTCpge40Kxb47GS`hM_9^vDT01+0mf0x>`u6J2u6C%nP4>&I z(?*q;mK7=*kWo;6F?VQDi26oMT-E0N6B&RfNg&^8S92v9&Y^A&3N#kN3rIF zV_}Js$`Xv=Akt{eTcfB~1~D=`h+@G)tulyjefy^v9y$msMf!u=Nnpl*%1nx`v5dAA@w%RBe^Wh0N{57Vdkf)vC;TOQa!` z?o_G!yf|=dhwJX*1Xog#p7DV-X&l$5R~h8js#RFFgXlB zVm=1RT8Frq*@>b$zp1uudqzYm4qYGV2Fp=q)SaruqcADUvJBrR?O3h3E0nBObKP^Z zUzH;Q(#i#k5T&wUA@^vO2TLZ|mfMbB0F2=g-}Wb{}$U6aNcopFz44i7ioJ+sU@ zWK)WjXGUm{2Z1_h47OmYH(|{PWf!%kU;ZghKYc9*4vu2mw%w?dOWfxz%R|1qAHDta;ni#K>ZACVFMb90-+Mp03h7xF zwOS3;N>wF|wX$RvZf5On*M`mZz-7f2oeMh663YO3U|HO~9h;O^N|Pqio=5_}JUEIz zNV~}F>UnE~H7R|qf823nr$ET=PKyuEclkPwIc^osIp;i_`@##+KW_mZy6-;x_Kx*< z=z;rC^DMZwt81Mjny$?7?nmmW^C*p$uxj-xoPEx@IOq8<#Iofp@Yo{{;a4~O439nf z5JpEvSf;AKzaMYB^l}_`+$z*P51XHT2LJWde~05VzPh8M6;AVe<6ACMn&JSi{q}$2 z$xV;NK>pzvN#`i}oN1bj8KjX6n+IVTru>|$h4jagv#UdpV?#tV?S+zKWAeX@>3!0T z>&&InA6Dx?!wpbL1?hE}(-l}5NY88T^a2y*RA#5peVE;ZGI&=v8_wK~EzkMy%-?4$6FKK(4fTWg% z)$(qX9Vk+z{{QV`z97XFu-+`06+Q z3&$UKTyU({zvgxLlmGh(eEpl>z(0KQ&#-6rE({(T#d$Bd0B?T7TX>r-yLaK2*ZmB; zcWn!z?9fqi+j8;RH@+1g`~5%Szm3%ExcbXq=unHy3?t22N#zA_nec~YwU{m6)SNdn zUu8287&lRP4e}{no}UlzKfBrXXRcBC2ub0QGbN{?I7P0A-MtcvUac`DeM7T-NDVnFm&juqe9)a z`q{5)^32$0vZommW>lJ95q{R&Zx1mGBc;540fG=P5 zA2@39V*dN~J-bn^l(FiVw2uL^gT0^B&#hMe>;6J|c zpA61vm>DdMV%N?cIBE3>{QG;}`EK^&e(VER;LuPBzx>6|aPh^jMzO0K3l}WHD_(sG zuKv=OQ0xg`-&(bf6V|T5#jkmN;OqX;_pinNeS0PxJ)ddDDR>ll^$qL3)}|+ktsreZ zy+5$0+V^xcT{FEKt!@~mcP|6!lVtQhvD1qQA*rKU@I*cpq?0TglRX9?oiZkBStLEP z$+rxgw_%5S&Etu_PGY-cLwsP;GHVH$Ac+&o3C?3~bY2zuI|*x6Df zK6C%Q5Wj}pyKNh;c>ATe;?lR^pFZ~w7#tnu`*`(h-+;BJ ztV2Ez+;;P?@bu#J9xUZ0!NVn!NI z)%fe@uSwwAVasPWe!m>6VW<7n{$n%6XLi_6P80uCVTv?q@!`pQ!vc?V%xw{^Q_qOw zGMgkza+Xe+&DK=miCuH+)bS{bRXf|azfJTU<4s?myC#BiqQ)#TrQV{V=aDQ4y{-|o z){(P4>r6?=6><^_=5=9ye;(ZhU|w$y{k=JK<%MEw&pJzHQ*5F0Yc74-vJ9BFV^i5m zR13Cq&oIj6GGx~YI8=BA1291n7>WKVSa00N){%ACT3W}zeKL$32L1DT(B0FGXSQu+ z@95Q6eHl0Y>L%Q={(k(=55I@9mgrb=)DjenIqgjFgF0IS(kTtSuh&6obc7@DbSwY< zr7z=#>#oE7_dS5GUHuho-MWpZIwGArW!)L9t@_jx+i>58yMk$R&DxW3@@XfdTB!xc z?dj{rg)ezUz{UFH=FQmr%+s^14sM(#G|RhJj-HXQ zMIw3`Db+AM>O z2L{ny>|&y~MN3wopi{{A?B9oSX_S@}5WY}4>YS!j;267QRZz$QU%&dx`0h8q&c_?r ze~_7SM@B}ma@FzZ>+R!XRjXAdi*sCy^;CcTt6$)CZ@Luox{Fw`;uu`?vWxNHeH%f1 z83fS#=gs5qJw0{);M#BE;J^U0ug`TOnHR|{?+z?mw>cEKp9oUcTbajBAO_@tR=TBR z@u=3FQ{OWpxlWsMs#SIBx?qq_k#t+6q`Svz(rJ;AgJo66;2p>;voS0K=i{)ku9;F% zyRd7&k4h!I429BpNnd=&o-!8t9_AO!uo^jb;zt7JJ4VYG9`RDIKx*W$f1rxJ2de08 zx~erS<&qiN_YG9A??45pI#~#Tn%Zd<2_R`nmX*7CntN9UWe>dKd>5DGYv#WcO z_1N=yN<+6e;6D-Lme7tQ(%r9CeO{kB&g=y01g^chWNxQI-iGU1<9=LHw@0PwvBQkp zqZtuoW*xI56rhh|p*>fft7A05R6`MxlpG{)wy@xfUX<-Muw)u>M$#lky?z|19F0YV zXW_ThKRrC7l=Y#Z!62oaYLwQVbTUpp<#b&67k|S^yR~{9pZcpS859elNmVE^%OKrS ztl_k?tfEvJ#mLAAk9s7pwq)^Q9RK|DaphnAHI7}roTtL;ulqSRKKvkZxg6}G#Q*;I zhq&@DKZSX#k4Kkf;k*}Kgs)xwZ_F%Dwq)^AtUCG_rW*0mp}}{?l~(c8=L}n-s~n zNr?!~wvvU&^-@-1WXzQYxN{>#f*&GMug>Z;({R}UN)-=Xc^fCJ=)noc_2Q!Qj>5VV z=b^9H<;=sweYV097#XQ!=bjSodT<|ZyJs(U>>9=H{Us&ST=mpOq?&Nt(LFf* zr1^O9c}sEXntAB$cE)uNqa_d9ca32EgZpv&hCO(8`!Eg;RvGNuDSGgkb;hy?dJCh- zq_4*x0#X#II}&VK?ot4int%x0J z_`AF>!Ixj(`CB~o-ZkrI^}D_Z%kT+G@dRwA1T)fuc0m)xnAJ zT`Hi?=ke#T2XE?(K)RGwCXO>8ofi6Ok#q-D*0dKwvG7xt4LiCfjon@9YZAJCKAMA; zJ@;8>)Beb2SD#V*5bZA$DY9m@v0!Iuv}ojf%v~lzNHpn+$JE4_b%sW`RsDQKAEyM>e zTZ8)_Ie=@feG<2B*n>(EAMNRK zanzy$UU1eDyzec?V#9Y z%T-4ojWf?W7bMqNt5xxeSH3QQD0kj|3pPKq1Fq{%dV9=76D+AlBxDsxzosT5 zj;0rM+uLpQEhWpwU_Yj7FI4J#Ad_NB2(t9|i5QXe*ofDpdq}BC7rvIHQLZ=|qbIW_ zo!DdPI`|{=sPoS``0~hnw`R3Xd(?cEtskU7O?IIo`+1IS88_5*+}+*XT)NfNG&36k zbYV!~T1C$FzYO{r>{xV$kH|OFH-g7eRl8=@0lr9Vc=*1f{*tRHJub;7|=0JZ~vJ_lf7>$`7x@;sphccvE_Mw4S`(5A8#x1S6w$ z*7?8Wq80euC(g!4-no{4Ct2joVcmIi=H9|mc4V=vI;HwS8eG+p>zihqf#BSj=Xt1< zJxIF@tFRBgyCj92ByN%;a6}|khHN5%(U~3*Ii8gGoh#nT1NcQRdl^3Xf#1Ui-t!)u zci!{yuFKwv?OUE^60E2xoo!!7VQpR*(A+pYJc2*@!;hd=t>V;mXW+xX_eZ$=(zoH| zuY5If`7ZqLkAHwdS2u)hVaw(%*!akUIPJ7ExG%oof(!AzZ+{J^tvdq?7cb^1b??9d zY*_zWo~XnT&N`}U$34z!P;zW`AX}o+)yJ+YH^%@uUTA-g%nL2erc>c{Btc}U))O+7 z?q1WH=R!sA(3tMdshG0DU|GHMMuM%{u}Hc~wRbu5B3!g8&_d1tD!)_u`PEF8ZzkJ} zcr3H8Z>VxCiE^ciLx+aZKL%5`nQMlJhf%BM+M9dYY?d*Utq$|RVuFulw!iOM>Wjky zQk4ls$npZ&HR(nEE+MVxKAv*2Ox+bTFn;+9m*JnUJR8Mshe79Ln=b`M%RagbE4!oa`{?x7aV;4Ya3Cm%MR3~AI?g>(<}U$V_9B86EmH;u02e)7`ujb#@h@A=XCz= zf?!gP(#Rm>$VN?GGL{LrqJo9_tu3Nx6ZddSX;P;oMuvy+oZRCCAZ8|J&ZDmRd&2ur{IUX#nwGavhSnYFSsc6U$LoyX1B z+UcEVcQ>`P5|LU<6~N;KnWF=5T(V;2Im%AwZT@kT1R!l6`>4M)|3318`uO~@gWt#V zG5f0XwfEt3@wK^4ud(&L+xi&I_OXKUfsR`S&L?0hFi|RvU}*3lXM2rhG^Y*h-;YYU zta(@_dId9e#We@OIc#`7eN@z0&5a`Xj+~>?1QrZv=dvR6Tzz(?PNfkzf9|OZ@K1m8 zTuw2kH20*bVx)1fBi89 z&P(OE!}_q>CPk94#w7(l-u1@S`0zW{axJ>w#yHX1nzh%FY1t~ih2>lUN17Kl1Lu=z zv;dgj=kfqpDpz0)J_)Dyc@R!Fv7R-*b}5jvN6_!?QjxbwGO9s$92d4@^8%!=Urkio zb`0X)4eRlWm%N-4!7jMyA`LER@os4_=S2n@$<7|)G;s4plu9M^^v~yr?%=>M9=h*7 zjJ~ak9yf<2OP1icW0zs;maVYzMM}EHU3cAup-Kf^`8f7T+=TK2Z8ANR)JD6nmIF&Y6fP&CYK1Be><7LE%XqTeKls!h-iOS+>??jwCmC-#K_ZH1B;7>n% z8b@qL%U%pH(slY&>PT~eZ1>8VJWtBH^U81>TJza4&`DX7wk`0MS00Bu@7s&ttl!Nk z-ZR0-fw6o^7vA^Qi}k>N3pnnB?}LUX#nY-0r4LD7Bq%(q*q* ziTfWNz%Osx!I=%2b;h!m9K$k#!l^NO-}|~9EL~8*qt8$=`m-pwccOdw%QZ1qBY2_- z#$J^`Cn{7p z?Oj+VGHY`*UA47|vX3R%Cj-`ZPItGWK;2fLNNAAf*L59VMljZ{8IZ125THv6D5br^ ztRTi3+1-`Ip2D-^1?f^pnnQ3-b@8TLB>=^mlR$DUI>zxVHAvQ=S2EbPBjj_9$CA=O zV&xoA+bf50kX|ZG>b*u(Fg3o$v8*yl7^Dlez$S2P*%quZpb&v(=62R4Gg6a#MbA&z z-S=CwCbLYBuSqI#kJU!O=KD|SN9S8hA3ZNEwn(GMUayC$I z=cqcGfiZ}>qQhXDhaG#L@g8)%!|~jCrjkccS7iky2sR~;2nyh;tkLlAp0A_of@17b z8$GA3jQYj>AKn25{hDg_+|so492F{YbDT zbJk4rQqv2+ZcPsch9#cbUPX2Hoq$tB*OKR}`eDBo%%~m%R*99x4Vdrlz-0MzsV=^^ zw-4|C@W-%h!9xDqt6%pPeDSk?k39!!xbQ`1;Z?7^gqM%BbS8jIAg?s)W8E2N;^dP~ z;xdUnJGbDD+ked-$5+4p&A9j_ui$;Ic+b1>&;$2i_n!S&vUnk0|K`ikqXGZHfdhE< z>CGr~xg3op8P1`>8m_v1%8#% zL;6S@h3t~GnynzqBQ5xCY2Y7#bHoREa|Ij$VUiUUnIG%w`K&rh&LCYXAZF@}g?427 zW9ndO$zI%&3b+Mq| z1xDIv1tBr7&%uIz2iBNNhdDMriyR!Gz_#T_OE*=NTv#?|u!zXtIqh9%{gC5Kh^Zw> zBf$6Oi;oLHVQ?$(F;F=Qj}E*52P=!=Shdzjnz}S7LPqB1btSYYIPbI~dWv0ma;JyE-FL$GOUU=13XxmPDaAG4M!&NMD|_z6 zs^Yzq7Ck2;CiJaaw&2^}_zM2NKm5PEJpP0K`w6UCeLVK=*@=r@b}>#~dousMT(9Gs zU;8({htc6Ou6WNC_|WfsgpYIMt+(N=ue%fb_YdLvpZyOmyx=9sI}YCVj&~xT&tc=E zkK_Coy$~0^=mI_#-O)F``X72S3<0-aE8(8?x8jLspTUVMS26D@O`D}!4ZptWMkNc_ zf%?BA!!*M_x3(e#Q~K$yCWF(dwj7Ba3#cQ){4N5Cw^-ett|f->^|pqX$Irle6I0}h z(1dM@oR5g(D6$>Z?4?DApv(wXf3TR{T{79+cqG^ar*;}Mk#mafa)e&ck!&47s`I}N zD(yY9$a=^|v|=JXavuIgr`ZdU0P-SrTg!xUWIBiy(c`t)E@_U49i-u&M7!B$vf&4W zyh4Jb`~ptk8=0%*001BWNkl>?)su_k-I%WfD2)IH_sYHWsSwz&r6Old+=Xsgkr zp1b>sHWv6fP6JMZ0JIII#4etnLyh#(N8`D$uR)B z)ct>ce-88dYWiI`63URIQZdmw<`&Ou(I+b)EXoQLkxVlEci{wMhLDp_%oa5Q!{@DA zi2mMOBr`)jGa3^f88{z9)%kF(&RiD-f^55hqfU7{1|Hsl_4jVZi_bp+#qRL@1Wfyi z4qkZHV*KD2o2NaBPS>++aTlI<`a)*3hi)O7&o&-B7kf&_B5#iz<`^Y;9n`=4`EaUR zaA3;~*l@p#7oB??TvwF<(7Lk#r$AW0r^~^4XDq@!5AWwJgCm@yxFePU^to;`WZog5 zA~=%BbWU8?nYx{%^dW(>PjYbVG8a4d0|$ogM{Rf;ocuiW_4Hs~pM}MRt(fQTWR2Fb zocsHK{0Ch7o$sQ%r&|L= zb?t7>!LFT~@!MN&!rGPZ=fys~#QTPZ@SSgd3&pB;ycpmB_QBXP2`)mLEPHda}`*iiOCJtK2@ZDkX;P886 zF#!=+-i}HTD4I^?O*6;l=DR8|o?Fu;5N%j=S<=oDrLBzIjOwGcX`)AEX3mSuGg_sD zoy-Amj?@xHj&?KqdVZQZqsaC1&s@X|;WFkxmDn=81|zk8mg(%IQE3hAF3dmrEL8X0 zh-bGPz;jMp&LqahD5L4vWkoEUm*;x#>Cysc5^Eb+v9vqEDlf6GyaKyMS99ciB4d=K zb&uVJ;^H$=s6K?D!6ED$7{yVGdxLFCRS##cTY%o8g98Vv?4-+VV&-HjYjfCU3OJ{s zo%N?ZPFL-z-GiDul)}ucF4*%`ozt>;5{r6)O3jAn?FF!lQ=M`y!y8?9I{B6_D zg!lKj7Cnc-;VS;@;~&S(H~kWS@W)qT&GBmjNPXYE8}QHn_$l1@%bOS+Qd%!bd|5)J zZV{o>;Gq(3y#D8S(FGS#Rw!e<-`;))cJ17WuC8wOD=QhXnY4hN`KBC4Dg|9iM-#~j z4XkZl8|z1E%3GP4oO}fw`M5$K!+>?@<699@GO0NiB2o5iK;s3Nh)S?AL@VeBc67l= z#V!>tS@0R0s|0vj*bzu?o&Kn{Hd_!7cUT>PYWV1wd45!mh`v{UQu1OD_rY(&7 zJ~^x??cHW_K9v$JR1K{!G)SM$_hYUuLKWvhrB2$%J}h5Gm>C*P2$j#Wf1rk~d&*iT zy3xr zEn~;-GN(;DLZsJ?%n?(p?K!?jmF-eXWQAEe`^bw01YpQd&F}uyuPLZ>X4&Fy*tW%y zSz}ZJwQYC}q)$%u&H{8cuLi64B=lGAM6KqbT&XESPifYv68XH%0G;ICoN45WqcV`w zPoBqG@W$vW_moyZjDzH{rFm7LuoOKDSEFb2Nem2(V9CN_Fh|j|Ic8aruSK?*nbi@S z!I~MSBU)mSDgkm<(!1Z4lM2|t*7cxMA0N); zayW2cAO7W^{tnmt+ZQo^!2%|B+p~K&%HC?L z>6h1G{cmrDCSpac>Y-4`n*_c9eI?pV)C0(y-@_=$&o8I(T327Q8N|W*LRlRj|Q6+dgT9nd)RO)ML zgx?{%yKKRt&h_X*Xi~Q%szy*YKu$f6>)ccF*Hespaso6+H z;K0Bzs}nS99a_i_jrhpXJK2&hMfKQP9oRQKf`NfS-B)A+KuR7i4-AwsIBH>eVeI>> z`3{CkQpr#;w}RL3JZX%f+FFW^T5U>5(Yscu`W*G0IVrwEmk8;AIH{1J8oOVQ*}a8Y zW5n7*gmROHLuHDMro2T93!Gx_CEjydPfcpe*+umA6*(wWW1a6v#lDoxi$DN<)3ZZU z-Y%gjev$?Kxdac0z;JDT$HqpEj#YtAz(6S3Cm&rLQME(`zVG4Cp@A?? z#*2MZ<7@^_Vkg(6XF3{{rB1hR98KltLZoA^B9aThv=vCSDWGoZ)Z6W;QF1wC;}xpu`#@PKQ-{$rhO6^WWZ~OM`#pq}S<@{0UVK=jBI$9OlF6VvVAf~j(!$e6=x3rEYU)neayaJ3_j$T6#JarL!EB~DV(MPwwdFcgm#<8~wJM;h%be_kn{ylcLWayc zY8ji7es#AlTjc6LQ@TVSp5czpLAHvdly9pB^2Q! z&whA(O;YBUbeft59|YX_S>z)=xojkD#{%*#BF6E{N=rSE?-H^0B^L2e7aijR>s&uw zh44!dvc!Os$ZCAjTPL=8KX3=BOcHj+-E4ITy6Hc?454Q~ekV zSYPiKUJyB53h+>1=KS#agx5O}(e;=OQJTwEOrUbu7#L7P*%&la3v^cTy>clV;NScnY+v<4j> zsk5VCGFqdFA8k&XHT#xl?R}0|n+f2YBj;T~oh`$44M>~q!^unZz10oR>Vs#^<4;}x zdpI9y_oGUSX=#s1BsZ1D3s=%}CI)dzLFXu!t#qClL?;)dQg2_;9}m{SpbMFf;%rgH{31Vm+?7aLy7kE;l{_~Y4J6A=^3f#<2U3&E3gq}O<4N*8Pd?{SXqo`+qCV+d;Ia9 zZ+zG8=JI&*sm=JwPi}zQwG>|8i%=8uU_m>KndhX!?`^sJMd&~Jd^~W^dThAoA(as! z8=nKE#a1d+{Nm>~VcWL7=sN1f7_rtQQr1;O-pj9ox8Rk0uJ8ZgXBZtBVj!8eOwZX8 zn;zeU-`sKsy63M&*;$+5U@@6y7Al2vuxR;dxcN7~#-opJf-Ta61_Ww{hHLo#^;@ue zUzxS9TeV)X+rj4TBlyAfTe;4@-FI_xOlYUPtpWwK4j>0}&`+ewKp|;L{ytgyL;L6S z93uloi>bKotOr%<`Tmv|wXr-*OsrdYoODpL-UrW24w*HSmeJw#Ay? zk3TaAH?{s_YK$`sYCbkSGl*QG5PoUbR@iop%NHin9-g#0gJNO+X}FFL+i{u9Ir^-~ zA@%sPLnxQ)5L49mWh8HLE`FT3wmk2|R5fdD2HZGP4RKn#t--ol982werAdoYzoHC} z1Ujo&fNJqv)a(_gX>z9tUI^@554`OaEp?SXu}_=v;@o5KAbDx-L?pgwu&+hHwYjGn zM*x&Qw5uea7?|0*J~_G2sB3~UOUa07c@O)?>d1JIo!+KE_0 z;*DM(H#?I7=R()W8*5NtiLC!Yb`%n)jh`dWp^yvtx$2n-JG%-dxK4Nw7 z^nVIM*2(eZlLOO=u<(JNRi}$_vQq=54kk!o)-he9C zvgg5fSE6gdT0F67GyeAPzKoqa_o7(rg6~-gy=+dL2UT!A{p>dU-KV~QzxvBR!m^{@ zh}zC?!Ik?|f0ZTFyPpfM@5ON30zUiMYjDFaZ$nQpJxfNlj(V@Zbk(=eQ!LBjset8v3`?!sq3_che3<(8VwT?Ges+_w*({_tQC$CE)ymV%`+>Xg)IeC3$$H+=dA_;PwQb!sg29n0kH=~*73j?!z?%LIc=W&vbY|-KM+m8t#Ts*tL=Q*r#;ten#=+rQDC0Q=HkUD9R)d~d=Zt`Z)vZ_d3Y;6ytb_vQ zJNK4x-{XfcQqs|MSx3d6k6Q6$jQZUeEFEZ?iaB1RdbK^fc3|+(U_z$l}`@9d8DeBB!5^*6OBoQt9ZDfDEX& zZJK>sl^ysD{8UPy6*@vR`16=R$x#y|vyuCUF;Pa}2^lWDLfEbxU}igE*u@D6SkV}1 zOXrv3GH6UoR^Z8;d*bh>imHac69|?~jvYi{5#2r=j1WktR%lF{)yLA#4$5^Pr-{n0 z2{UXOFqw7)Ow`gA5wRyKBln}ZC}gAt-K5k@UyrMi_M@M@l=?%9`(+J5QZU~Z0OK)NbDLZm;2ts!*;K8QXFFvB(hcaDxr!RhVhOJ;5m6?Rri zt(7nJGi`7>C7dG0kjwg<&gAl>#)nEBOHgDO7OJ4sv%wKRCq{)c0@|<0A$B%x3?|t_N*tv5L za=AQ5JC$r@GU}|3NfGwn-thqb=;NQpd#`vkUVd6tX9IaC)t6$&$U1C#bSr-R-`C=f zJ2#-YtG?YL2OZt0rB*7 z8YgMqSL?HA-MQ3Rd5)fAlzK+z!Fl_~qp@Jeo)Wg~9KqU^eQ}~qNUWWAFI=mJXNFGY zH0;B^QeJmfQLNmCetAE<+6eLsis&yoN)0t~R>u<9f3S+{ZrOoiSNmC2i974qd`j2z z%(fBy=!Px0;tj_$u_51*w6L=GaULl*9egfozMHP-(adPPt#3tN?RMDKR*Y0!ELzxu z-Yz>f#?acH_>>-g;vhRNrt=+`OXkcy-@_3aL!ahb=7o{n#S&D|2~;AIHf0uE*L;5q zzV@T7Jel$(Q(CL&f+rtk;xif1*zAN8juuJvx~IuyW-^<(l82&tV+73JHn)vR)k}JZ zDF#^KsGuQ{Gf{HE-f}O}Da>-%)Ah}^W)HW6NQu(vcC|d4cVxaphh+xXDJEc57h8wN zq+EtrPK5gBnw6c)Irw>)K6zNNuf*^1=%}5#S(r*H6MI6ZfHq!^%_(x7GDSibo}d}n zh8_b{M790x1+(nuIi<7tRjaZZJ76ppYH_DiLXCV`tBCKImTWVT2*Jj_55FMQ2Vq%> znM~JP%dnn2niL$RFXDU(4bII1P;Kk0@ugYYMf=QQ@U2-XvU17km|Y*ocwd!EXY( zHQ2Xf+pBB`<$OvUJGhqkbyDAR90k&oU5_0_o^eYfGHrL48Fqpr#sCOL|`;lcelX>}h?I=&xA zEzV=t-U@ENXAgGl8RdFpI?wcxh8aRQD|i4zsF@^wqj!u_xb1+=-I!#DG6xEvr5Sk* z*U1|?ykk-Sy!yLO;4@dA&DUl67mecd?w`>A0FLT@8r%2!7#gZD+2y#-OJDnC*m4L3 z*F$enVCmw16!LDO;7}QjO%HE6h&%7w%aP;hHgfh2kJNDUUAys`i&mh!%VEhiBiVUe z@8eil*omD7EF2mfWk&k38=d482bnV|Z&xwDuZV?)}P}iKNkcw28jnga!90sF4kzq-tQEZD^2cO)#{2PZa=Fe&GUQJCDow}4n z7iNX|R>z*;_G6pW&rC_#MfV@`Tw|GTZsVe9NQ6M-`zGH-&2F-d)8rayF;1XWkyF+h znC_?FOuD{mf6hdas{FwBtswKsIBLi_VkuVL*B_&?|M6+n7+QjPO%39B5l+uuth=w%#Z8JTyFe#u?Q-qMl3|3&DEa zQPd8Ar&0r&w}*!h;l6wB#(f*^j)mQ+h19}4(U1)n7hzE#ho-G0$sXEtkUu{2cx(%t zP6U?5;xB++OVApGpE!YJ3GCQi;?E7Y?KGFEoK;pHE~}fg|1Jof9WgXo!`%<<$6XKY z55Ef>E7O;yCnId_=HZfLS`?g1!_xqpB@5ZXA2W+t+nGa1ssMo15pDR+OdPjw*o&Xu zxD{`H<*}MHPW|0*PV~BmaMJRLoQ`I>`LS#sqzuKBa=&YT8DIFu#%ZlRkDAa50^}_E z>5bd)?l&FJSyjrJtxCd*&LB=$LWSw$IdTy|Pw<;eDf1z4{^XV+eE+)5?4%;1#LPNl z89<*4Hlr|lWp^fMDcx9s9nG`BBJZXo zN7X@6_JvA!cNxf2^i0(`$Hyo2-g%*eGCJ%bKF#oQvSFPa?vMnqwrKqdCbt(F;5Oa9 z2~HgAJi)ozoH9l9HdDQGQ*Gv187G6y;MvyjT*OGtTHTn#r5lz`8Rj|5Z^ri_v;#$? zqm41l5;M`;FSu?RT;QafItrYdx^k%r_vN6yjcgme3*_w4O>qFS^@BtLN-4>+}WA)?l8I7eq-45%qf9|Ur@za~OO|!IGx>36Qv)hL8>3@G1 zcRjctJ>Bl4m0aX=Hiky(xbidi;eT)3hK2JoaNcRlBIrl3<#LKJDBpo5a9me=yuH?b zA7&8GYj6$*=Z>f}cylw;&BZBZHI8PJV?*eabYCUk@?@$&wP`!O@R3^kS!-bjL~{Jf z*CX}M(Fsdy$Mb%6B>mmi#C47){PQ&FTt+H4eluH>+ub||9bK1}j;x#XM74P0 zWt9%OsmQwKcn~3Tb@nc01{GI>^vVD+G7F<~Jk2Yp!|Ilj$(z)8rDXPOOOeolYrGBL zgQKG9Ci5q7`08}`Cbu46z>0xAUS-?HogABN;KO{r>o;@4@>oU4yq=d@K``Rcn(s zu2I$w0o{8Z*^e)LeIstZdpAqJO|Ohzb0d&WN&;7Y=3cz>b*u4?H>~3ErdIDvf2S;x zt}YvoJ$(rO|Cb)Zt#|D~Z;z9O2`0hjUaKA{0i_AtBh~d$dhL(C{~bK?;C-mp#wSlf z6P$=JRg)+2p1bda@6|$*skHq9a4sX@JSv-$S(*vG*e1djCKuDBaI9lWkt55bzDFYt z5unZ~?xcYpGQ@K(0}*5e5-L$p=j$5wx+bb~0!{mHf2hCnLaIKldcMr!{apmaSu%Xu zLNTx^c{HslEX<-R%F3<@p(G*;T3;Vs19{==y3erw{K&8)aZCxHEi+Ktb#|yxTJKmw zdy{GteiTCY=PDDgQD%=}cQ;J?isjtVq?c}FF(4SkH)G>x_LK&8_vUStWNQb5oOD7# zx)_Xxh5!H{07*naRHn2Vb9%M?CbjHZovt-wyD*IR?GqV_W`4WzWO^%oIK5vpgx;dC zJ-R=l`hd}huGH!7mIl#!^kVr)M~`GyIL8sZwCb8|yty&_BmzOHfT$y8GHGmU3pC7w znsccg^$|iiQ|4yaf&6Icq0||1uKr%~9PTues0?g+$5iS*1VFd!7{NdO$HQ2E-(I}# zrN`j>vzDlA%ua@jb=M?q`>+4-Dg5TnUD&g~%xUg3F?t@gLe9qK?Zf!zuRV&}?%9pE zU$P44oW2lw*N%$6jLT?0a)uBg;?>taf!j9h!PXt449=&`=6Die7D1nlHo?xQYQ6-% z_pNVe#^Ux5$UuSE+5-=)N^9r(=T;iG9QjC#oM$$!XJ=}{32+Bs+0j4OHRF2{Eb9oA zU(;aQ)z8l*Mja)slu9TkLw$849~J@V&^oEAWWnd-r<2lU*6!0a?XC#LObu;~9cuLM z`I_AyA=OgkT@0h}QZI55(GQm~fG)!4B-J|^9|zRWciWQJ2y9j+zqzZoZZmJKW<#vxu89nE22sl{Ng{JafC{ z;!MJj%|}_`({!@OZ^nrv8fsg|+tM}8A|dc$*xjLz&kXob9VDv7YboBV)c!%>+VaD; z6x!+B45TZz_ITe`Z18E!>uR{R6Cj=YudU?qlKTX&q8DC!TC`3b13EH1cK;tMGoU@2 zD0pj?k{tb&z;q!pMv26>Dtn0fk|LHJ+d=HhFcn^@ZOqP0BN~gj+{qK#8Eb%b)X8D7 z0!&~5X)koDzY3O!fOt}s)3vsl(^iyTU8(rE;r5-lb;BMkS=5D7*Yx9zlNMm{g1ma) z53{e+dsVMVY}qw}-`=wqk3Btzkp5|Dc2J<6J@ucnZ{!aZcArVL?cV!2voSP zkH4P=1aMSQrh#u6`)7Qnz)l>Tw+O01G%!w&XM5RF`?;NdCpB@OGM~#hIzi8pJa_Ym zqr#HS8aw^(28u&FN@XN8;7+bM=FC^bbR6n0Vw-sW)^K^ z?KI@_Ajx&sjn1BQBUv%?P770BH0$OhT5;uA;lMa!L;fBa*~-#d=u*$j)dp~`=6mQi zsB?5ZeVm!OZDjg8DFbcUKFks0pZ|J$$HD_bzgK1~n5il4t;{&F>vf53yGF2e*9d;{ ztF4FCMzQuF2WT_tkjy$}89+aRt^KHoJfdb)QYv3>i~xjp8lDfF(jkp z$F?9@rSMql{j)65s8^mmwov&OoIfyk6SY5F`gkAninb_5tx-}IZLqca$fWF;^dwj>%Pl{L8a{e)vl>yxKNvZEl~ zkcb_3$%J%>5qLchLj1*iJclrTInw)zj?a z%~;x#X42)U49v`5wIFqVHkrrZJQp~yRGNNL`9?6|n;Cm7B3Tq6IH&oVG6_tUiJHqR zDfRxdr)?By%+?dFENi3LX&FGDO*SnKZ>efwtwLD4+(PF(vKLW$G^DlL86jLpjk$S+ zN?});+pdZt2akGK=t+fBBQ zx*Nv2YSG5=#&7ZCI!R4o8B~X|St31duUN|CNKi?U)gd&Z;~W5bXJIEmS2_^oB$$@y zNP#CygT_vPbON9;StMy#wPgSpJl|#Qb|SJ;(f_d=ET%lir0NQdO|0NtBGS$#3M5<1 zLD9!##@A-ODE3How;_j*6wNivne)0n8>9N!ex`eWSWvCQnFo4ro+s} zIb@D)K_u)neB{?Pjy5;Fzz6}gWUu;+%=(tZ#P2~*;; zzR_75yFKHH?_rX3r=G-kGXux7y#ZY5-?VG-!L@UNhNSBw?Gne{hBS>8)3QlxrKNf` z7WG$$A_pkRj)frIq$9%A=Fbwu#Vn743M72Cy zJ)0xhvIzQYu;~KlOb8c=oJ*zSJQk2LY3*uJCNsA7DK-_MHbC7~%*JHGM7bRu8L#Q6 zIwH@d8H2mfnYnr_byK}>` z_jIOMJc{h=g|)};l&Y;&(J&%~Q|Y@RthbHSEDI|XTM(Af#cpGAA&?Gv*y-+RDc@=J zoQ-5@DqWWx6xLxeZa2HaG2Id!I7g@V>D0N84D(pFEvHL-B)>D(ESgh1l93B)&0#9b zRo#69pc4$tX&=%rS2Ag63eL0j*i5q)V{qU{OqNS!b|l!G1?X}%IEZJk#lg8s783zD zZ*GdwTcx$jjIDiIO#$@^JeI$U0QI0&+~!nF#lBuoyfHGu;4b2%avW8+G*FM$s;7W; zC}J~8SA_u%!VW=y@*`|`($RbcDy?2c*+WI}%rZN2Oh(e%g^moX?1mcEr0TR+j|tA| z4bd2rMearGo0;LKdF(^!?8O z$y_y6&|@?-%?Fn!`M$I`4IJa`V7?c@X`;0N0)6*-EUJbBR zjhYZ4aTt@zaqU_f*hW~Z&XI9T>8Zn{&bvxaRTIY4`~d4RE!aGhKzdYroS7;pWgW&@7xHJQ@VVRKI1bDGaeA+)NA7W4 zcQDTFGn?6_)d^_skOqjx=bNw&dnP^m==@|w=0R6;Z0NVwHxBA_$COfPP^B;Igh+N4}-k0x%m!c$Jnb0=Y0d0!6F{V24hXkD4KzlL4uahyeDuv!IoyIS&8gmsnTG*dMnIH|)$$3iIO_n%}XtZKo7n%S~ zk;2Qii}o#DJ4;FWLtEL?bR-_EZyqCUqNT_juqJ=hWK8_I0NW{{wJj}4K@3e)-Lt<5o)DpHr?j4L&?(R2OjJe-BT%DV0_t5navr?0QyX|X^)&st#jU* z5H4eDpM7RAt9n&EXK4pOTSe7nu<(Ha*s`9`Cl+B;T`#O1VFxLOLbJ#lQo4`?&WlVm zjRZg{ebeqS7BIZrlF`(77>@7;=IX}ix{UojPK*|1?T!Nb_}?O2wpZB*MlA(m4j_ z%YbFvPSN#ly|;R=37pp%Tu^Gh%^`lrQeZ?HrfQQ4&paAZI}}|mx8Z0yjWg1Z=wOHM zwFns0g`v9$Q=StNYes%ZhL_otMV*B)k}cL^`*6P&)&8=5sk1bxq&Yh>@s0VBOb?;8 z{6$b=r5wW4PeKQIl1wi?bBa3S^95Xy_ zcs`3$0izLh!JcT7<`|8VMP;dE%1=oAO=wYYOPIxU^KH!~3cU~u90ant9Mfz!ZkHyn zbCeyt;c1FS&26uR&iHt@pQzc1lQq-GJ{(K7nUwLA@361ybZ@N-ZUu`s#h@+%X{cm0 zO|bqqbkC#|UoVm-ZY3TVOL$RgrBsBURJU%6_CPvCyFKX#p0M$Ob91@+Oy;EtRKB87 zaP3$yWOxC|U5)S1*A75+2s@EcBV+#rKU-RFT?7Bvb0E1XO8FPzyWOl0&~RnhiIje| zc2*kd&2HN`LxP&q&VvjYp`3YqC|j{>+kS(SEj_a2aZ0>OlUJ$D>B{km zy|`9hhS>x>&4~aId%n-W+Z>78$QKD`ik6wHOW1b&{`q+1d`MxdhX#b6CxaS(k-%*N zVST?p2H1~-OBn)EfnY2Pe~(|glT=>lW zTFduKK}aywvf28Bb@2 zx}Maot77-zUY3s5CL=S6MUsp!jFU<7bJZ*nmBUH_D=j18CORE%m#s zj@V>^|M;;*tU1&IJM2X&g^|)$6<0*#(M%tuw}~BPP5PjUyf?otc4`R~Nrz5%Pd=;g ztd<_*4-cGkcBYg;{VN@Y^w%w`%5SUbUNVqkG%mGPti_t+0yW)=s_tG!WgL_D;d4?? zq%bCoTc_v&yElll?#T-UB+W^Ewy(PMwB9FC;+{B*EUn-kU^KN|r?R zX4z_%ELkqG?3?0}`tE&MH#f;zSzgJ@y>a|r99xd%SlzL#Mp=|df&_a5NP-0&m|jl% z-}?7C(||!GSVUqkf+T>MIs5$QFS~sE+x@Y%4-RWjv$Z=0#8~T&Yf}h<&e`8BIAk-a z+COg4OGHkUt{Js-dOc&TSG{_+I92L`hI9vXYAKV+{xR5X)>wA7A)Rr^?8MnlIh>yi zF08NNKZK-A+I0~!KVeL|R?h_6c+GfDeI%9X9VmAxBDZfV?Gr3Njv)=j?gdTm@AacA z89fp^#yxus_Vq{9*_q_4Q$M$7rD6_oJRX zctXFQ_w(`{clv@9;Bs)SjAaP^klqh%#9A7fKQ#5O4e5Pz{l{*HEMh7sbCCl#d><-v z(%DEAIUTf4LE#AsE%Yrdvqd5#BX6515E_7^A2p{n>6l!3vG;FNaMAW;?|aE!rGj}x zOrfJJyKHdGH_t2V^X~HvB4ZHut3@umb3S@(?PHnqYg_oCB9nn&*f4cseov9zIA5ZR zAfXl+kVZO_ka5~nG@W~bZW>j)jM_fxZVh@ z>~>+4DeFzZ;ABr_$+FY$7+QESo?kMRtvOrp_vz0Z%iu=X2Jxa%t(q%VF)!`PZo>XQD$6 zr=(w**I7^Z7|s28>RJQK5FF6!T1ImJ!+p<{7~@NQ&HfM{Sw=gb-$)@#B#6xEynyUp zrc})sQK%ZQ=gJ6gTMnWk>qHR7wU1@RT`3{E1d>d z{)6uf4E=}6oHL9GS%@*aT*Y1s7M*<}%q%#3>UoRl&u0$53Ul@c!9lvE+LeyU)g*$` zRl_d5Nwt|AX#Vivr6s7aDLCxsI%Zj4zcS{aUuQxG1J#^ov$YSNIZv~-voW^zF-bjd z%Z~6f?xKq}!CVTC3n>lTOFPUg<4BVsG6WX)T%*S^a(dN`TWQF-;1F{;WMk=?=2RXq z#U9PF5FokNN?%(T$dMQ9-n*Yi5ghpWKucDDHtru@2c&iQkL>g*+ga~^{r%_&DM6IATS;TE#z z3o@?}@?h=r!0JaN1HG*mv?J5yf~B_Jt5#?f`yd!{?~P6{))(=U5i2Vkl|9BOq+%xM zEI75|_FiD61I?M&XLlkI(^>XR%RolKn>265m|R7|h)2LqA~@VS7`O~H#XUe(4Nhkq zJ7F=Ad6`xr_(a$l2QEF}C(G=|=?TPs;J;e;anDfM)^)C2d@?wDZm=Lul9g zGKciZ93TUc>-eQios{89uCiccx$!CX`0VSZoOv;;o^ycZH>jt0WinL5m2{j!$cDWR zu+~%LZ^PJ^GNf0T&o#~d3E_~g)y;KW&CBhbr+CAKtXkhu-jInDEz9VqxzDpC{j^(4 zy{h*EAQ(E&Fgu@>awf7f>83T3I&oWa*xl1V8_YRpS*;fbawd6ich&A&otlTKtS~d3 zYg~+j@%cN0Y_d!>i?q@v=j2&7CuEanUcd=Z%1-;re7_$+a$a_c#;n)JruLt7xYPF5 z9jE=$s4!BY^>5m9UKH}IBj;YkRN$cx>7|hFQqo&e0btQ-sn$36oc$SD0Yf5Gm3uk+ zsgq0}t2Mt$#SW+_85Gi>98HXz`Bb*uMyHM;BCdBCbI`A(T($!$RdYTXZ0$yxk#|hS zBv(?-gHt0eZ~&j}teXzW91}7|B}*GK%sI@^i^bi_cH#1jbw0;E>$R-!t0dpF0p+JJ9#_xNMB={YmaT8cne?<{3xV zW>D{q6c}3BMXG;yP9|NG3A(N zuO)|#It70pwxYc=^Pk56u|(s-9M9Ee@7J9mWlD1IkxGb&ATZMh-TpFZV%W_8nR%2# zF!e8k;JHU#GJ&P^UhVXpzv`-mQd$3ePC7|ye`U`4&iqCaGn7@sXNAa&4tL5k+ziNi zUM%grjipAeUa=i*hf`osUI2T&TEw#hCy+B{V~@$0gFdRlGckstL(|N`H_ywNIp=?g z9A21ozPB8<_CemmS-Lrdj>YU=vQF!cvF06PGE%X#l*oefX16`-J0k@rnk;0&0Ivq~ z{CclI&z9lF`LDPAz)?~OPRDz_k7ABkFkvwpWhqLM z9sZTBefM?DK_4aI&Uq}BfZMHN-om-C%zhTw<+kiO)L875#b85er6y(7oZAP49km^E zO~zz2Bvn5vI(Y%f&RPq-v)TEacIO>J3RY|7{CqGOjT!uTFpfVrD|Kv3vE@=GH81&u zbpmebl9ucnVGbLyHliANq}+Q;B_s~@br3Zt$O zN7|^QRJ}1vJMd$2<>X>VpJkO|Sx#qz-Wvd&Y5ci6j=6I{Ue|Kf-@d?uEH-mHFGCP0 z(9-{G;m&;etw<5cjjipB?Tj0-InV43|PxvmY7uf5fNW$q`L&`~pW3cmm6 ze~me_=R(iwAA4n`H&l11n6lpQ8;j_T$>>U7e}rX>mLVDP{ne&pz&U<3qAD+i3~R++ z$pN{DYYW%X&NR%4Ijmv37<+FB7s~KFKW6Jfmh+Uw}-=!9h%*X*V;mO&o{;f}aznOL=EJ+^;g`{(|C#$-&! zupg_@cl2xOB`2qc7Lv z8XR+_F29V8`IzuY;1Yncit%{k*Z+xRGI`C8$(VyaN}?ztii=C=!>--wGA3g(dU7QW z+v~xh8}>bZPP6A24JYhsnG7S)D#?Y)rCNUFUd$Q-G;t(qXCqZ}#-N`M9qJsk>yz_* zww3du5w%~-)yw%0bFP=g|8T|SDs<4PJyupX2rD z-3E1N!f^2e)!*Aw?V^x^X=lH32-h6STpg_nLMCK%6`3`tg8lwBXODDB7zBoq^;8&> zLC5>56T6Q&Xst6M#OzP(E(`X&6Zz|e(VEQH=Ct9vV?r~r<;I(_di^HaA9!ae;`+LV zqc>w2^h+Qqo9|!$`A0Z&>NI4z|CUVyOK-vuTXGGzRLduc`lF@{0;>zvRsaAX07*na zROTGkykGg?gm4Ox*YIAuHX)oreH#ZpR#LhN1AzAid*79izGIrV2JotoFIJKXQ z)3JDRt{@9>$DqvB*Jh6%#$61N%cuWynRkWO+>yy` z!N$#04Y0C|mMd_u+Pj;(mu|UYkzJjH$Sy&EvQLzwe@(fAXTmk;K+zu0tllk@^E|MT zDC~R=y|?eW$o=@iALz)#Nu#@W46f_NRfE#Avy}Ar+&NG6Lbd}{JQyxIt(E$=SrZ&S z4%?7d?2vyt(3MA+Mub$CDO{JOXSSqj>LuvRm9`B;X!ag80P$yU8PeW)QJULVAYOEq zBIy!n|Ia4r>aVlN(DlAJEpvHQ2Da&OcuO@7CXaNatO|0_D#B~cX9t-O%F ziz^|i>)X$n^mKYla~5PQyqXycMG4uwpyWV#{Hx7X(O>6Md&(nwW>w@p6g7xz92g0Up)nJ%a6C+JdvL z1PH|BZC+7bX>VjQL`kFogUQJ}oqOPV63aO6Th3CAjIP}CCo_*p4y!k#=T8|@XG~L! z=&GQD7MiaZFr}>u51w?LB68B z=Q88U+l7gyXeW^QUM0%uam{qvxWaQa70t3l2xbaV!`GDxNst};>tY;~(YU{qu378K zf%B3LAlUnBX0BdI$<~$ItSn8EY>%suM%@Tk#P-XUjD1C2u6G_1q2Sr{zA z1CjP?ZWZ(OuI7CmcjN^p@G8=38O+ue((^TCU)hK#0a6+nHTvs{QQJR$P1AXnm+6^h zBT=0FgS)DV!qRrn^&(>q`c)+<$5%!?VIY}ELJ(z?l$KD>KfW+yu{aX(IL%;HRjKyf zhSG{Q^pG0^)QZI%(7>==DAjS!Ejw#O?@bQ4&}|6443pUox?xz*bq$7QkTX_Q?xNQj z217J%BAzrUQ>7>p6qo9}SEB5c4Wqvt5J^T;T{nS5LWid7kYt5819-`ni|fdB)eVzsf_w!9G*|h&h$jd4D7*Q% z7WzpMlRy7J5HV&zRTZd;2uZYTr}DBI6O5w6hM^#?>Cp8A9gYQlKMD&A$&g5D8iK(f z851r=qH&d+KJk}ZSIU-|0usq2G~J>(T3YOf$D`65h{qEM1jCRe87@_XBCF0^z5GTR zZ)Kzz0yI5A&zm3irNxERwuRTRg(FeK;t9x-1eYp6krm3fUy*gi6w)=JC14l^T&fF2 z#f4;)^Poa77=o^8kYyRnB|_%=m2mm@03LcXESa7?Ut5N0!t3$D&uate9MBOA1i+XH zSrXxP@jZYIit4%)x+0~kW?{fGI%J4BDGyI$H}V2*&rWP$-CCG!8|PAuA%>sziJ1l{#B>1Ej02>rh=D z6c+jEnVW_|_EjjJwD(q3rhS0#t$kbJ^(Uj{m@#-M9S#9}cz zTRB40<>F@+rF1THhT73paM8J%NN99M6&4l4C1+f87`lmg zB8KzlThOq#0sHptM>rHBCyhJic9voY3sg|E`kZH+^ZuNA+H`niS#(iW-!LsC5;0Vc zn}8eF%)yOIbhurB&uvdBa?lKhaMZxb<`_O|uyC{~jBq3ZS#eQ}kt*=0H|{0u`zUbZ zK|(yCVdCV;*syUO<}a8}PA}h-C6WK$0JBVVcXi{`sWaHO?*NV-It<-RlEcoSN|z%- z&7VIHB50b0x%1~^ z^AZcS5K)oPEsC%%s#}WHYgS|O6Z`fyU~hc`y1TpKQn|5x zd30q?5Fr-VQC?AojVqR6>9RVMm6t(PU8FBx-+T@PdID%^X~V8vdvIX?0mNca(p4bj z%%u;25H!>j$tkO>8i!lguEN6kQ!#OzpY)Wu)5{G>!$4P80O!xQ;p0#CVgLT)R2!|x zG6m>x8G<$3$T2LD_M_?3CS$|8I?S0WCVDG-8 z5Cqi;fEkx@4-g26G<|vvHf>sq8MEfV?e;ix)pmM#kg@ebD_UAw@&0=s;Pk0eP!tui zXi=~1ORp#FAOhcRL>Y^gEX2}fOE7ch4BA)u9N^={(LX%UeBr_cG@oh4@810#I@;Ud zQdM%&vSHo%<>Jo;+bLF{>pUpu!-loXv2fu6Os$;?RZ%G*%Z+nB=E-D&9N+pq_4wfZ z4-pFVkfSC^9ELu?TxBWe+`ex?go7;8ak3Remu{dm9MH|6#sfF)X{A@K$kbZn$ty{K) z5(+$M$Q>4LTW|wA5l`UE>C?1VeY*2g#1b*Mcyd8BE{luC`%-he#j*rUtDT0Gt5;#c zq6P5ze9pdVXD4|;DI5;t?3rfl{Nz*A*YAeNc!EK2?5qA{G&7ef3?7^@LGyIYx^%KT8WLD zH)6_^DNyJPup-3hLoG!Vpw9-`Qngvl(u<6Dv zSh9R6CQcYnHj5<5_IafnWV5ujwbHuUSHB1CZLO3Hp@a>y@(?80jz6Kq2+%M<;DNtR zNTFi-YY%24Q+YDU>+|5&t+&wFmX?*$-YP39Ij}sl9f?F}uI{Vfi-x^>5e#(G-pWhK zgo|v;$OBk)OXuOKXP$uSEzjR`e3Z8teip~$aYRBvNRoio);9d#|JPsJ_V0Bl!jFFZ z$~6_1;D+qU6G!ns|MGh%@E6d}m;(*7p=OCucLu4=nrYz6&%A*D@!$Uzsd)LS#WT@- zs&NpAJ0s&!l-wweHvS$m9(9W%<5Q;AVA~zHVd0Y1s4Z+j zwX%Z@7%L4Kw)ZifnTjSDTC^nyS~Kv|pS_0vdiPT#I66SEv;S1@Im(Wu-TF>}q`EP0 z{(Rhd*EY1@L&>kcB8zvmJsJAsr0nf+6}~St4Qy6OBz5@X9N1VdrOiq4BH$ zuMs32NB<<@1{crlxIG0}y>>P3_`;nSUp*d0eji*e2`UQ!Mmx`|Q`vxSxxvH&=!S)8 zEP;cE8u89MA7RJG_0$uR97^F*M5h^Lclbfakr3PNxE*)i{RQ~_J{0=BaJv}XLKm!L zH)PQy15RgN2$Bzpq=ry9irssT;Pp4&N5lT36zwIn$0ac)86h?JxcYp4JoxZ~*mBbr zxD*+Mem8t>0gBlIGZ`S`n^%IF%m+d8AQn#|5C~(>-Xr+=FWyGe$+PqtS-fRrvB#U&hiEOQFgl3jHeFQXG=i3FuKW{7t676biruH$o8|odFFycI?J0KYta0 zKo8Zw*}7gDt0!qlFf9>t=FZ0BPdtw4)2E`;Z=uk~;F2`jo0zH7KBQYNFsXnHj&L}E zmbPxZ{mu@&{>FQhZQ*NQ5-&|Ag*yj^$%Bdt=FXpoCmz2Kb7z#nU*Lw@twI&!(31fQ zXmF!fXKpabPX<&l6hmu!4_^7jJ9z7z9c1uI&>)GIX0BS61WQn$C<@lCTZTs;+J?%? z68H-WOalTc(GmkRN0ngVoF zhRgWhEYX=mD%*yAnly1%(9y+=>B;=Tv(L*3$eDDq1vDv+QENtjv>B)+c;0@Y0mY8f=si$GXMdq+2Refk;ReEm(F zJ#&VFG(50$sl;GBz@}hH-F)10&rMh`enhoE)r1eCs{+x4j7U^N zTYDEi`}9-%{NGB$_@b(*TAs&ywop-K|&O)Q}(v--CUA|%wp7`Ru zsGT+u9*>6*Nm`^00unZ4T;_XK2@+Nj*(*JPFwQog!_WThr>Nhx3#P6?l8j5X2ap}W z6w2n_eDg-!ci(NOtSp1y@1@|op0v*)azFhkGw1P@r=FuV5RFFg&F_2< zFMjL0aC=0YZaRne-+dPzZ^1R2T_1DMM?psFpmPVA8!!d_V%&DeZPl;B!2wrIlS`D1{`JHp|fvsw-p)Cf7{C!;e3Ly1Kt`8Qk_ga z9GpOj0FC)!d1gT@n1!V2!@(oX_~-xg3p6ww2Qw44fi_z7v9P1$yw-5RqJ?exSOXLxk@q>q3=ec=Dx|`>u;fa#beQZRSK6Rj9YACsMC}~p-iDT7JCsqQ0L(iF za^Xx^f)7VewBbkp_zHII+D&_uauG&PZ{c^%v(Vh&uB)4i=bw87Gis}$h%ty-3s`6` zRCE!vJv}~7`D{{`p$jF@)Y*{yvk|vSu=BHn_?LhF7o0eD460;69!-p#z)=SFx>~ku zIi7p*IaHPVP{7AkKLsIng7(Hywp()DDZpM4ZBoi_U!3+55ZlG)~DJ9FL%Ch|~t zIg-jk2>!V+;KzyMC-Dz|_xEVnTMtRlAxoocL-HgIAETKwr{U{ge;P~bW`pV7K)eY; z^avCoocH_Q!inQYNmqrVE=FZLx>%x^Qw=g9LWYZG-Vbn|8m;5A~6dey!$SG`jh_`&1ah6QrMu$ zrQwM{L2vHx-h1Eec>3u_P*SAAinqWFABJL{qd;Pxy@tc!r6QQ>bZFjXG;cdPLwNnw zU*e5lzlP5CR=CvcL^>mznw)h0e>2wqS(bLt9T+_A6Lt+eKL>mTg?R3{$8q=eo9%TK zZ-Es)43)JK+k2l+6%<%B`^aZxXAX95{PJ=QpGU&_Wo0NWR&e@!3~gOWs-w--QM5M) zUT?*TkkYXB0fd}$nP6%h685b>cnR|tF2Fc{7fP)UP#FDBNZcrM$U*W6|EX&A0MP@8 zhtH#^WE|FQ+yt-3jmDE_5C}#HzR4V@{ly4(cm>H#P^)KOcn&jXPDQ!vEDB@4MnU|y zP|WiLt?xUoj9O!;Vghcn87y)TiC7ON)y%-!^&7~6JaYUD;t3tg!niBMdA-0_8N zc;>5LMa`rN_^tgYjJyJ0{3FO#m&4JY`~1lW6d2rM6sq0?J+PnZyJpW@i1nK`A|8w5 zz~NKmaEhapnc(%X+%SLmu?O+|OW#0sr36oW2a2OVhdZ$c5+aV#+E-T&yLAgeD9NLU zbsvHxDOk2@Emp5yf#&85IMH~4pqZoL`0_cF&_$G%RpG^#p2ruTdL9K*I|}0eMdRw$ zkCKy>pBa^B$qo1 z8!N9f4aY33TC)m&{DU80*|IvY@IDkpegRMHBS>bK0|D;4uK3z=~316QHO`y+x>dAZX^2^Vm zx zT8g^mtI^iljx*<4?eke2g}P)xLO5bzTJ20c^ZZxv)Kd?`XB>tSd<$yiL#S3eja~jV z%pfowD(irf*b7-}hRauqMJsQ>g2i=cJkf-6=i8|6SF{;0sSJWg7x>=8-4Id8cFyhk zT*k9rEJf<5XZ80J5sd-!7A(XIU;i2&xOWre!~sa%Z^9kl1qA_T5ARRc1l(wa9OHqU z0K7%xv2^tfsGU9?$B&&vXJ>#)iblgpH+e~mC1drf#rWY5{{S1;%ma%ahY=s9K^|!rwO(#%cG#H zAV4!E$chK|Zod_O^EW?4MX>>d>Y;?*g{(Ibawoqya}_=C==&ijPXbZ_CQMz3<*U{q z6bzvGYzwqxVia_>xlwdOBq#Evm!8BQ|H;=V;AwRH21wnIpq0s=cAMSc&->Y}mB zzt>pgxJ!C7)Yxu_Rv2FY1k7Ey3X`YSP+7@^3vKqbeETfFwM; zOuPt*q=l)|YVbe)`un(L>r$}DQCJ;s!IeA+iINHZ*~JC~D+DQd5=wjzFOo%J`Bcnb zvKHefjKlf!7tr3;>DVm86K+dSnKBuhH?M*m+eh3XmqP^VV4@;~Ip_(-@YWk|5weVz zNvvMC5i8fMgRBS$^n`Hs)LD2WFRX#ek3PpT=Ae&~kb}NtXbw7ueJ3>mt5z<-H^229 zib|_cVD7~f<-h0vv-@&N!_t#EtmI4Q7GvS8LL591!ui$&)Kn&&v+9a2yOy2V5IlJx z=bXRZ$($#(Bv!9kiRZui6;xIfW4!Vi%JkQu7_Ic0L0OrZy&1`(2(K7`lxRXi)39vS z7EGNw348Y*L03-*s_Jow?nd&AIEn!j$=r6w&3N?j$5CFaqFQ_x1+lltD9`Acuk}Sr zY<7H}UGs_UFvE>tq6h0X-Gq|DLhRgi2uaO^dQr}VUDlwu{doA%2eAEt2T|+_qFj3& zzWDog9XYXg4>ktGJxv)MAI>5XY=Yve!n%!HkccO-x8WEOUghttJ9Ochh=RgWeD%fW zaQD6U!fhTy5f370dmV&@JTzSe5nfe?$2v{r8UC^{i2U}Nmt*9tUC{W{&wc|*{0+={;Ay%zkiQ~sl<7DG` zcs$BQASrBPhi9V~*VW;NfBt>Uo;?F{=(i}2zXsK4CZm3!pjWo8oFuA14pLUgGLx7& zZyD7t?muuG?VUlW7v)Ua(7#~B#4Wengg^TJ_fTHqh9~rElqBDVLhH&kr036Qu1fF; z?O@T91U+1`auYcdyZ0VNG!lm_UCi@m1QF)W`In#iBA)-+*WeR7Q4snMcoUycz2ks$ zRmlF2NLdn>)eIJIhTDs-aATM6$uEEV%lOil9)OTI4LSH5 zxb?%dZkdoZSNkPt7wGx8WSxRLqJ9Csq6t{D={7>V96WG@>QyhsN#{;PC~Tmld_4Z- z``^Xww{3zu_6dB^H=t@wkR(@{y?KyNvbi#NsaEm?1fv}#RWq?>)9qB}dF*HtIin*F zD%x{35Y#Yx&Rl%&PyYlP*Diz{cnj{>2XG19cBX64E&@VYR|P@H$zu?#1S%%gVd0Wh zINj8Qb7xy9Gbc#)nPPXUFm2~MTPU+8+W{fV$(*O1bH1(&Y}~vVfBb_##IgkyFxy@u zG?Gh9I2{}Y8&jM8ojOn$=b>oF$&sEme-oxmn}H*T4x_V+JLw}GQ)gtEh=d{HzU{Z* zd*Ayysw+gq&c6XyVi%Riu>sEjA?shF$AZf|4MjhLq~*cvMO#o&Sx&qk33Adec3lY+ zSbg%#_u>z}{Q^8V2d(u@xQ)Y9_dM`i6|%l02rLelb{LY;0Z}PN-O8KkoI2Tf8qsLj z2`XMhoiAm0U3l`z`|*u$JOd+857zY#+-9TGN^0=)Dy6H)LU3_(pbx*Zchc=WfCoMJocgmr`wpn;v*Z8(AOJ~3K~!$NX$86) zUxgCg0oe*<*;Yf)mAlW{87Rp^kQ5gxCoLgPkgm=SoN78tydQL?P;Gf?eD&OElxh(H zA@kalwmhMbNMhc+8Tem+_m@~auLPmfzl1BXhmcyCbv4L*D zj2SbhQyIbebFFZ>hWGqa4*C{y&>Kb4rc^+(7S_Cy#2=8c^&j%XBY>L?L%i# z2V8JNX4f92+L(hr8p3QC{m?S#j5g)Pi|6Czm!F5~DS}`77?VA}r^u}(s9E|A^PnP_ zjD?9+9?YKR$DTt$bo6KxmFD$Tg6ML{=qx9T*nhUdqK!m_ZW>s&d?}uJ?imyp029QI zP-5*Q$2}bh97Lxa;YN>WLbc8!9__}IIqOk7Z8GZX4l)KM1eOz(nD7xV3#?f@gqMbN!7mXW8VsCJ4H#>n0X0-vY14gZhSJRMH@h$UtWV z6O>gi9)0X#+;r=0@XPHOr~e#^eiBUZ4zmqaDzhfRB}Rex30R^JOIK|sLcx6pPB`s% zM#AjLTcyZQJ$`)k#jjxfrY-Pj`%oJFH%L~uGp@t?Oq*#~go|~Nkeqxv}F_i@Q=TX0+)`$(2wEOcH6uZL)ioRd@64V zrBP`FC*qsEU=^w+OvU>jen!NCBVAXV^E4DS@W^8iQ8tpV+v4z#p_-?uUVp%K)vxm_ zLqV9bFTqe4^OtUh$6Jcsdm3oZACNd~0O46Vlgaqz*B{3t4}SqhPd(J&n~==z+1@8 zI5NT@ja@g(IR|)P=H+jH1uoVKtL>L?qs?*5@~tajfXQn+6p|Gr1Q;i~nz86+6nMR8 zXgG)@cP2;ZOY$-tJ}2+L|2Dkz($f&42Z65F;S$1w?5q9hDw3|U*#TKU1<75C1uJeR z$9K=}eUz9PX+Vkdc+OHXXa^Ur?~EbuYJz3nVqm4kBN}=x6>5WLFDWH^#{zYilRtfBvt(!1PHXf+v0gm(ZE6 zQ_mT*0l(m&breFfs1)Fl;4YbuIdi6=>0}dS{awSzEahg<8ypnI#e5BU#BB#%n2R3n zpug=n=vu}>S7iag?lAt&`&T$xdjRv>mq0Z+Qt8@)x=Y*czV8}y(4{N~-7y|6rGw5= zml%qJ&dBL2uc*Rb{P{NtI>$2+HNHLc^V~yuE{rQYp9*G8nUYpyXz08_^yYCAmZf$afYq8ZpBw$cma~xiPFeFL$P|Cpw|GOHOOW7 z^XHrnVzL>Q;Kr=^>u6kd@7YI8)WZ!Z*`0t@JooJVc=+MFfXGp}g0In@%(5NcVGplB z0TT}2Wr=1e-U*mKcQsC(Ig8^*8%I=&$c;2!hV$Gr_v7xnw!-TA9bD0miBt{3K;)-` z>q_V!AqY{s0B`9W%$Tr*#VVPR-<}iHFkXT2~5jy0!qUf3xUY* zCf7{D4}b6yiac?k<5eg^WPouUqW+vfj3vpT~aU2>tIRU zJbdqa-zMh|U9UOBdIQbXp`gDw^L7lfb{b6fW771s=;`Xj@#BqTQwqcNCYjBVv2EKH z3ea%qHF`dDY{iR#=LvS3KPwE`I0w;NgYh-y@HwX`Iz0Z0G8MvEB@zK#8mg(Yw7E< zJ)+?zxS35_@zU2Gr}ktBAH)>jZpx;x9K$?|xJs}yA1O!B4l-DMo!6{yi9}4Z@P*Ce zaL49xh{SlWRi_OE27{2>^)x)o%iB*p^4Np$75GrjcA!EzMhhq3ds8SLA@u~9t#e;p zne#ViB30ovk0N~TU2MPSMyy(~kYFsflcEfHfO$I#?&y5!i3bVhK0$Z~K6V;bKO3E` zE6Z`NISgFLH?AoIU6$dF??j?|AHMSJ{g^SW1_nL1;cfby#rB39)?wS7w?dW-j5Gcd zqS@sb=6UKj1?1>O&rj$dVZfuuF5Yr4_#OnK6;D5XAF9Sx5bSYS2NWkRiW|85o;$F1 z{aSd0Aj*=zqV^puMTXKxSLVR!vjbuSpdkbWMP3W&`VGoUR6Kb9t?(82ZNi*kh|Sb1 z5ur)l@|6S;E{wlT8KwR*QKIv_)2j5hu2R1j-6(MfV065Lh4ZH3-g|DMk_>a02~^G* z!Qs-k+E?EgB^c#4Rd&u$2yRP!+mHL^OS67bC@SsR+LbCk>Y}&XCx7@srTFVSA zE0+-tkuEAO$HR|4h)Gjw;R*Z#F7r&kL9f2LX7+%5^M&i*kYwq5ZT37vL#JS_^^D6M`pTNydV*B>n zP*=AE(WEu(pbAI&j2l;hd+xafqTUK6^p2h3&2}QPrh<^3tC?{fa9xQC3cV&g(chrV z7sBITd<@fP%tSmf{A@pWGM6l#gNGiv1A5P1sL@Yhv$^H7*4VJu72o&#YB!{wH&9*W z!IMuviITEPyM5cR^yJWH8Mkk{9k*@U3bFewDB7`pjoq|fLf>_j(KR>w#RJn`>jYep z_c49?WW4awSIIEvXAb9-$raJ|KX@ypZ0DSuNEOj&5|4lJQ7m0j3!(FMD6HLacn8om zOE0c>?{Uq{4#}Rc$(=;r$Xhhs|IodN#f)L@0gUD(Z%_Cq|Lr-9ukZq0ZxgDlUtRO) zm0DMM&sL5w5G;6NJ7{mY<@VdLdhHrS6XvjyWc=(a@cZ%YZ$A&8(gk$?)^X1Bdlt5? zEU&Klub@C=VW^>ZQS3|LzK0&dwCT0vybf20z;fgJ6N3j&q*>o`wF_RbEDU zfzD_isC7l($M~v3Jov~XC@L-^LfT=8AR-boiK+eJN47)jcpp;yxZ|AXAEn$qK*-WH z@12pZyo{vK_yps}mEfsopCS^v;RPz}ghC`{;E5;h#rpM25jp#xkU0_HVC$;Sxb{P= zNNwdLxU~ipvICe@Q-enzdw^Orrq}-<0fp?UINs9j>)&`9^JY~dbmmu%bDkgNk@sxn z^H=QelAIGmM={$CHL(wimaV`;58Vw(aSz*O8LsrN>ktBA`GPqq=QO+8gLhsM4QxGd zC)OUj0lKKcq&?u;@@1vluel7mjGpdJ?7UnVbfhjZSO%R@JB-a+*5KiX?m#rui7Co& zNT+6OrUD;RDP zhz9A~_q_sN3$fSG86r+7BXDy#9{2cJ2P{?M|0+>mp* zeYo%5J1}F`T$CGcqd+*9H^XbQ^fMx(3F#$h*QTLMn}mp7O4(u}T@p3Ae%~O0NH96x zKBRQwa)^?Q_deK_RpULFu8jJymX?*_frsuxWkngP#W#sqC7-cl>uNyL6?E$p(V3i# zF1;Etqlm7>H)};q_7g=HsofP=660&v5e%zg{|UH0xC-wDzslh zWHGyALGP>4Z+hK7bZ+yhJ6i((bC#A zteQy1}}W`TPPBaQy@WbkQIG(wa6fd8pY_*#-lx1gP>l8gynaLw+w2hmT#_7 zeo|{CHsTrcmg3!aKS3-SA6EN4&VtQJ;U0P7NfgF^3s3SB$H4FVey$65JR*7ty0mI^ zBx?}T%b_tZtt+ml)XyHk=PN0BKY0$`eCv0_1TGF)R{`OeK@QKR8*V^BP31SNXWEXxO`tp!vK_S9VW#a*~-u>n%HwVmi+G)|xO5zLeYOjsK!8dJhP1ADJ%1p9uRQw@ zZo6$WSl|;VMq~anz%j}-(?cB_Ium?vtwu0ePVi{no1N<^62p6T^eOe10ZDI#Sh^A( zPXP|>KZtO67zic7&hkF{%){8Up$=B}hfs`jc^#gVvzRoz2u4{Yyv`BN%}F^ zElu;C0TKoNs5ZTP1!P6Wfrf+7lCi8T>cGNb_=?Mir=NKg%NI|C*7h67Rxt0l(!L@v zBn&TtS_#_Y6VMqShp16#kELZm6^(Qs?%rd<9aK^FK=#j~b>Gm?V6V6#4y$HZ7&mS_ zUU>0IOq~Fjo$ooN8u`wv)E-cXaIzR3iE4DkE0HjL5IO3OcNI|c*=06AjbgTf$>op> zY9KNLd+Hk;g2SPm0i0-U*6bPh+DlKPSUnFhw5wl8duq+ZO&@}ZQnbgaXN1u43R z;Pd%W9*p)Q-qtXt7m$u^v55#KieQ>Lz*_`LqFri`M^|n`^OnLvy&7}o&c)Fq$8fso zjPo1@mf>d5Q+oh!tr{~5Xr8vmCn6LRk%)BJAx@V0p9zA zd9Q0uMAp{UgA3gXg02mSxt7vF&z&>39K$&8DNHLkfKpcr_3+Lo@q~%Rvx~5HNjVzN zci4*}9Wl9I741z*6NyhdVSRJe{hmFs;sWv**1rlY;R8|NZ52zc*;A(qf$hc3Td)rkyvONa?5!)KI`3A*g8Q&$%@WL-ITfc*pMgsmTvvXDP&kS0 z_ie(&Nt00`9)-&|oj3bJho_~XE6i{xv<_Wtu|uB4oVr+sa@RS`@b5x}yP2m<`UDgR zB@jCX#We#rY*~jLJL(Y*bq|Tyh<{crmc+BqKZL?UABu#dkd4;7SzbCA^#sm_r{H+> zM#NbOIghE&;l1w1dm1s#Uyl;CjSS1)Bf}4Nqx&-ykDE*x(36d4pd}+iBMf79JFUC6 z-%ZYn$2bI$vb^3tFXaYpH0i>bcpVzUO9>&6ibxZQp`c@O!C}-E)WatSoaZlOT}mWI zdaY|GO2*xV?b~m`Km5Z_ph~G4|AB?~*e@xoz~(JCz$-G%+}Q|`oFci)Mh{^Tbp^hrb5 zXc^)OgUSxptX&HaYlS;`upg9<9m#KrO+{095!&LDohNTMA>s~Iq1ug^MSC#8+el6t z-=BJY3S~R>;Kx|GVhxtBSWe|sg#|-{d&d$wR&Ush=`*H7)Xqam9?p;!WvR@A8GM}1 z#cFXPP=}yao*q*;GoiwB9@7gOQ0X~G`)%)l0$-bM{RCKSKQ?aOf;V4#6X(yKgx5W^ z%oKliixrW`tw5eK9DxFb zfn+((L}uZ1XbyBIFpJb4AZnQ8Yr@pRLnu^x?0|JIT?JD^LHq+){s-~+6JNy3-}){< z&PguWXg=XV+JXWRfPynjMoV-uP6Xy7m@IQfGxJ$qHHxY3 zk5E&5fzU{O&=H)MB6$pM=@50zc=Ok<7_p;-3woa@tsXK~kIqM}I_>kaE?1E34fOQ)-;*DSb z8a-X@4p+k9VpC5@?#9a1 zEAa8hyAk0er##`rSl*xl?a$87dB=hmUVH*YJ_E+t-GG!Y@nHv(dlKb16_`o-n&fob z_PeErh(Uj9@fpmRR*s?~FO{YCzNSa$gik*JSH(7L+O(PiwWbjtazJTFqwi$Q+hXH! zDmWW$kqM5kVF!v5?VmshypOrH9!#w%h0m+z8Q1>A8OuCCJVt?ZcC8`X(=vKb=z5Y7 zOa|^OuV23$b7oCLJluwI%JTMg&UuC}9@lWPu^nxl2}FFiBkoyFn+kWt_@=E}Do%&y zV^_z`XpK+J%1-tb4x`z;ZYCC<+}3m zjp{`>6kLb;?yb}VUCL@1l6vGED(qvY;PU{t-nx$3uGw(UfhPqI&=mL!v2fvhc)W!u z5s%YYA*w05o^~hLG^?xXTA-- zDVUH^US5tR%U8fJb-}_9;qrp}7&zv!}b=AqFYz!^NryX~qGdamI zF#7817tav#VdJ`G@OpVWlA*PTlFMh4Qp1_*=06tD7p#+hhDU30cvM2fExK7 z8Bdv`Ei;d}5pg823_IIzM_X(%jiZ#Ft0p;T5xoezJGRn%=6hFP5g{@Qs&)($$NN!N zw}{52ufvf~By!LJ|M`@k|w_VrR~&a$QAo6k6{iPv$#=! zJsq3T(6x?OxpUW*X$M83Q}IdLEjSyQPOa=xLE@D2%jcWQI;j=oxT;djnmxNu(6K+^ zHmSd`2oF5+2=u^S$cdvspLHeBe%qC(!e{L_;&@;&t@l2A0F%%dnuncjH=`pyAursS z!^c(QH2m6oSX|SN1+$7^8rqP$Iv7S0b7z)e+iC-5%TFN~p}bi>KCay1{j}`{G)HRF zD74JFGLW>~IMTfY_3axe`_%|MI!kALl5480-p*5cjSd&ix%PtsKw|}Z^B3WL>xYP z-bOz5nFAt`&lcb$s;jH9e&briW7?2{N&KFsOr3~@b&FvHcGL68x32iJZi`i8SIc@F z=~_$)BOWYI@2jE(wQMPx<16vr$LDamxihaL%Qg3k?GTfvFmJ(P%$+kGiDa_R>vG>C zP(q8hES@#17Bgl}gW0nadAcy$r3(x=6RO2$7dGHjaE5cX8fje>cOlgAci_NjAKv@u zBs#hx6d>q(Rfa;T8KJI5Y}tAPs>W48*GCWM&eseN4mJg6Vpr=1v_z_DPNdfrH2B7? zhFP>3AO8LvcI-TjXk5>u>p&vdNw;g%5${jN9Q5JHh_myI2#o3$&qZZr8C=N&c2DxG z-`jN>0zrzJ&jnx^VQ2;G5mgr0P`zF?sQdsA8ztD=c>_5>l90bwrlx6_H-8=`Oc>`F z5d9Oc*sWqL#1k>xePb1-6&}Gj^+3YjmdF4AAOJ~3K~&z%IfvCmV;at#4^SJjux}d- z`1(X<3DhGd(UlyBechW8(aZX@qTyh;;TJr=7M4b-8qruf^j?E>fEnApVnj#to0nL871uWtyoQoLQEfwk*b zqo~LapKzAgR{I!{ft%2ih8tySVp zDE1jxw0JJn%MDgD%}Zc-0Bp(fr4U&HUe-uthP}679!Ss<5gcouhE8iCbv(!$9C7x5 zfKiEto-K$NB^12tEvl-*3hhTlxfgYd=fE^D=v=iJBWUyDx+QQ+oEYg;Ufv3>YdE4| zfA?xyE4`m<`gI(zCMM7xpG>+EJeM0FLdKZncj!_WShyaOCskr`-6ABl{`%Brgd6b1 zrDd2kXD;=DmW>vwX-$n%MpuUB;A9*LtgvCsdBzIP9>B-7IXW8$de-F)((sHB)whTC zV#(4vOs%b@?im9MgJzhRP(2YfQ>IY6AAyJ=bBhT1bLGa)p`KMZ8C;YOA^?s+aliDZ zEC1cGz!G|GzUMCp3box~(MD{&ok!*K*Tn+h>bA`17f{r!?8COa>=aIq7hI>3)=|@JZAPY;VNkY3$sy4~GsPLb>b@ zQC=%HBb{U%Jh&Sjah1pSHQFIpZ%VpcP9O6S2u*b5)&T=E#eKLuGr(L04!$*%nkmNS{`yJR+0D*vq9y|`KG!KdRXX=qJYy)HrFW-*o z{0?4I(I)}RX)S7Th#kT3LO&)aXI8>M?_b>?o7lX~3(!;tcOJVF0X@k3vXwJS96O0b z91lKl9OcY7B&V>Z#YtEV{;H;qOG|fRsoV>-?p&>kZ6FZofzkL-bwA7w~=!wUs)0``OC-N@IXP^F3w zmy^Q;YteywVFmW#^w}xoa;3(-O36J`pqsKnrT1G^!$fNrm-TPm0F$Ri&@Pe%Yk zWwPlVw^;7O2MhP0Yz6t8*9)~bNOAxjyFP_n!Ni%flPHyqhQtRYZ-ZhAqA`VdM-R4d z8-#ER(^r~*CkHe6?YNMaA2DAYb<%3=op^4KY7$}%gjO6ZcGo?-5 zQ&ECAbZD>FQ?rq#4s5H2?zo6OoulZq--2e(G+aEKNT``uTq?0KD`|J5D)f52*#1IJ z?_y;uCQJK0Te)5l>KUhXiB#Xho%<9xX4MO}nk!6xj~)tO%a%b1<}#wvELSP(btMQa z1--#?sL(s)zu}6x?VWU90k748EO#9qu8@|7ZV#*YppY<#QIMO zo!-6yM4T&L;9ajP7(J0L>L_Y=d&!^X@4e!A z1{exo-+}_qR*B_t^!6mM|G<7!s#Z%9M%t^yRDbZ$5y<7s95_35{1ddUm9l{=*?YXn z3$2a08zk+*RB`W`=fCovA}6gRuAUsg(9jT*a&9aFs#TK_Gy_|<0HrIQgWCB0@ZB_egRTB?>_!!U5m8uio z_|N*!wzObBuXEg!*$ux?+);y$>8b!27|$#({+6F|6Nn-~F(v zOHl0ThBk~9;-~BR16Z#0H0Vn2L378~2I6D`@{5$w>T8|ubxTkoo zycbh5DQ|4kT9F{yC7$O_>)PAf$JORmx*Dd1ty>2Xk4HIiDv0Y_Xy7FXinTDVrjKxP zu9dFj%gDhYOlEf=nIxEX{k=NdaIiGX&OIa(w4A9$=pAuGK8YZ@F8(>G$tfsua>J_>9<^=o6m29X18D)7l zszQ%9TeZ2+fuQR2TzPxb?6qN<*u85j6ty)JmyF@Atsw+elL>|VdpT+5w1YyKdjAxZ zq#Yi+d-F?A@SL8h!U1G!-M)?oIZ;GzcISa;8yARMso1g23!?23_d+&QBSauqG(box zQyJvm&)3IW%6{toW%_j^4tZc@c>`?f7!-%s<)nUf@{id{R0IG~V)k{9$g>YC2g zVAvAM^4_+3h1r;cdQ}gscOpGuMp7$-fu1;qhWfaYzmd?o2LeR87U3$ICgd6%=@rT3 zsxXB(isC-5TD8=b;DcribLHI)mkwXdk`2emaDb)<1M4~i{lu~zL?U76!7#(nRIZ%V zehJ5j*;Ct0Xq`k6M~)tWU=?^| zQ$4hm1K4UW7E6P^&MxUrL~QklCTiD7S9?&bN==T7z>`8ku^uF1A(-Y$aK8S1m`2oA z;n)I#x`u7rhByJ}k2W%~P$DwW=mySiqtNqMsO(17uza5`k&sb9+0(xT(MXJ2t~L^S z{=I!Y=-;vhM)3xdcs3%FY|IpQas}1z?rA2r6h|^2;;~6Lt9@${YIcE1*a&H&sI5m% zF=Y6_K1Abj*yTyz*AOaYGQS6=t+tU!0NXQB(P7A2kV<8F3|wO{DL_Mt_Y}2*xk!nP z%e~|)+nwoI5euN_-l#68) zij{`SG(CS6MW8azjPCJx>vLsUHoChz(be4rt9Xr(1%7u6t!cK}(UuJ$z9Kn(1d*_U zOeT*^ro;%>^}0&Xg*2R67JK*YVbZmqg^1!ORz|PWA0W%`g_{z zlcaWf>iuC@s+0ABin)$P)!?CSC<{YvkC~zOq@H-QB@~Y^&_KEUW11 z?uJp#At2^`s^`R*>Y!$c+&f$oy4s$xPM=IwY2SY%*p*d9C!BTCDZ{NHqh;YmT60rbRaQ&*RYsI!4baccx z`9Wkz%@PTelqee-3?adYkM?x68Md7@yL@}hMN#6<3eXYN_z=)o3cg+_k-65Aa2iW9&jq? z?&)je+IOdN3=Q@{A%-R^@ALfWIR=m_543j7>VA*($<#VHDE34B2oy|8B14>8J%9Jk z5YXG(!-;RfF8T(N6iCo>Z07L#L+Ra0R;Ju+Hobsl^%E#W|26bTKdPqeuC)keJf`Um zt22+OQOQ;y2Ku4w_;)BNM?HktdZB$r?8hsN@|zJ`N+6f3aGz`4yK;anSj*_?>Elsk zt=5&0Jk)>O+1UfDmIIu%>vpppV4*nJ8j(}Cri2`*N!w5?mb~>@`};(KRRruJ1_ri3 zX<6-e$;P_7yP)ej1m3GFI^NWiY&cb=o59+BHFX5YS`1ZF;TDGV$pkJrK(-e-IXy7A zrHxf^b=|geJ6B{Sr`SlCO6`zFnBmRM3NDR`+Hj-@v~U9XT*7U82_V#weHuAoOC9;Xha-U03+SYb;M+~Z=9xiO9Qh6UZw!p2Wj+sF$MkpGM{iltD ziUl-cv!kOEc5S(7Vtb)D(Dwb$qV^#i*7@uchgGAs7N81wSVn=91BCj!mHTk5aAMO| zd9SvYOms=8<=_^?V;X8zgMWS*pEs9Z2I#HiXFy6oMwu#-1aWrEJTuld2*EI`F4UXm zK(|pmS`|8cw6aCse3v^I)D1cExa*aH{60+@s!}F>$L> z6+7(P*UlmUL9KN)$~B+@uPIl&;X{-sxK&oe6q)_fYBGAQnUFCrS&i(f?#DZz7?Rf2 zZlfwG$`S`ij&1p7#RVqxvq8yX(~@8{ncv%FDR{I+*^2l+2fFZdRd8DzTD=t~lXS!g zE@+qhM_ti~8pDQZ3+vd$+Y-Tbdda!>uMU{d10pm{ZJA7=-zKMw#%u_7sp*R-nPA!y z2S1y+4Cs4N52zbRH2y0GuApnSw<(kUKnN2-^xL>PCBl!HDzhiTdMUyV* zrZE4`;>7xiU?0lYxY*DA@pFDEA8_9lOeq!LH6OuJmmbNHEWWEJ0IT zq*1e1atp#{jQ>q-7>ex@+xY~&)Yjn`h(seT_Lj4TYQ_Cup-EE9?PJ}%cSX)}t{Q{E z$(=@BWjoKP2R+#O`8%G|PIiFzjxTQsRj}J79c=hjRI5eAQcQV z*=iNImsFOaXev)S5!Or)Sbb+&8(Z77i?l*LL9Kj#L}3JT7px-mV2~4`t@gkQiiXZ$ zv(c>d?5Q%nIa}qpi9bQ+%BQFO+Hc~aoNR=GAr5L=?^hrY2)LkQ9(h>z0>QO8n@!Nr zXRB&}ld=9f2%J!+gj+ljb$yl%^Bxi>XgfM%Zqn3euhN}EV}A{+*8=j-_ki;H4lb@ zJo%{A-AVy`P!I6;vdn5zdqlnRn-NMTghJlgb{t<@B?(p7b`9Zh2%>Zgwy^On+5gK| zV{IeTcw&pHBOK9rMB&dMy!yG8Uk2zK$ji()E`WNk5R3<#(oo#Pb-K~V+EkOt~CFVE(d}Q zH!AD~Muh6F8UkRX{F5UaNc~v2b>Cx^6r_#ZIn6$mC5CbP5pJ#g(X<2@Cc)Cn?JFs` z6(9=I{Vq!8J#p4P|K{S32oa$uG;3Yju!>EUX-+tan}bUUYkJbx>AA8Dbcu_tE>g$s zSr#QIs?^lkb-X@h>Qki4d(+h(+S-oO;J@p)fY~0V^Oq#(=T{9^|6lLB6PSdsb z`uTYNH1+pe{^KJBH{PYbL~Jm@!dDlpoGbq%gdn)w1A-*B1=ACG*So=+ejrL` z7HDB#*F0}wh2hulyVL$qHhK0}epmA5xBH)e>X)a!Q%YFLlFb!0!LG7BV$xL#+EL{; z6bd{XZ^WEylk4}RL9mOegaNOd)TIb!+*4cmuWwVF`N96ID0mbs4GrpSsAby$P%3o|CEC1*w zw)inP_3tNmXztB8p8}&X0*cM8NzHVy9e3Z^j@d?=%gX3U!QHcVlQti|$2XTq(4;Iv zn!rJ7^Vb0ZP4NQsR@HtNMdSL7^zB3`c4P%K+8i&K!yl<$1hdT}oj zli^!8jgzx_eTtIG&J+h&JOQY!<#eT2*e^rW{4`El|~14ou=%JX0tgM zwF)dD?0fmrSEc~IRxLuPEqXy!dqOCWfLvfwDPNX$LE}EbTrSt59l@OkUn!UPI~tb% znWl?dlvSAJ1;AY9pt@~csgft>npRyLDad;@zX~gDE>sCD6^oplp@f0oUR6Ywo!YL< z`a*R#6amb(?3?_d%8e31E>}PypYvda{`%6_AU5b?vA`r|?ijd6T`AdM8QD!I6INKM z!%Ef%nPBri732^~g#s*d1E`+h>1vtWFKhet->(E&M4VNg@SWegp{|a=jQccmz8V50OewdIdNLOwIDkDy(*O| z1SRNeH<^or#-?sUO}Bz+BCah!QT!mmHtR}$!g6|<&&YJi6A)M?C1^Neq|gl-NQt>Cy?J-|EA=#h@RisrmmDkjL2!| zy3N6)pPsymVt^;Fl*ngl@z(V3m5PDPa)t>a9Ur6|{asKlc~g1X(N%yVln|m|G8jNG z81QKeaS@?3>bF`cGhuE0NWO-56-AWGRX$tP&g%HR-T}gDwhbL`N?e`eN`EjMghrEF zd{Z1h#>l!6m4A1i?rMk}PhJfY~^a z{EHyJ4AAT49|3bgteWX`2ASm?1UceWxf+d~t_dg>t0 zsJgVqiS(d}Oy*`n(mF6VpW*)2R;51bjhdV-qg1y14Wr{$jsprYhE{oe9L=3%VvZI8 z1zox^bqTs$XqsuH!#cBAX{#VlLC^gB5?47KA<~dp;hc7;)1LTOqYz6USqOwAPTR0ps*z{WkG>OZoM&TM@EVPyMa#;&31f*gUCS?nP z9AzeUK3A<09|G70xP(+eFZgyEUZWE1tGeis9c`RUTdS+Yfn>UAqCk}6%tb+cpDv20 z`TO#y#d4WR`Ur08vSQciD#9gj%6|Zu#kP}4ya!++DyN$`N)jwFj#9bE35`}`SZEGE z>uTFDh%MV^T`BRUt2GFvkxgCrZh&4xOj&AZA9BeVgK(r6mX}kUB=ScZtbI2d*=!b- zYK{Aa{k}h$l9)OL$0}^%dUl_BNKPTB6nvZ|+vN%oG|bP>a{{K-I*^T@T`Ztx5P?Cc z(OyAagW9Ih_e$U_V!@jK{wCyx7{_utg~f#hMsqb^S2t)dYTiAdL?DRu+$|L1 zOX$#&P^Ho)s(k`i=@asGW2wZ`6!+SV>i2+v zZhfw8c&jTm&*auMA|q9N$Y9;QO3$%S$iTKXPSy+F$k&C11r!SvK#uv`f$qK25m;;+ zoxl?XgeX*Q5 z6q^ekS%kGLR82!TympGo+9ZX<&#_u5A(hH_Q&O7iOIHN3*U!x@0HW@-GOm9X1jX(P zP4g(oR@^qL-%XojKS$N6GOhUZ4p7h=0F*cigJRz>pqQL`PIYzF=@bSx%mUU0K{P zprC4OM_?XXg5%6ky7o(=@HmeE03ZNKL_t)zeTgarDTMKB)2JCnvj(MAA>%%ute|QN zjaAV#zZwoo2BTsR3-$>C`2q|v$G7P^9n zn)W5TB4{5$pNB_hJQ!eWLzgcUIOwTa8f>XC=pm#>e|Hc;Ifn|bsnu4S3pq-=V&}by z3w7c+JT;+ERgleOdCgimz4V$=p@ihZ9BN`OY@sojq~89meL9dm39FiHGnpWA(u3C3 z|GC->eYXT1g?yfqG>!eF>;FjAg5`7?`D_L?d20hJGXIJoVjxk0nR>^qu(p9rAzK=g zX0a`J)`N04s$n6(@0ZWFLVLJtP65f)DjO0IEi2=1lcG1Ldj<0QlN8uV{+21G`4tG;?@`$8AWQj2uteseH9@Lw}!`D$aYIz zU1UawGR_Gvje6UC5{2}dq7~)yclGjc8%yBu9=Uko5-K$bmfW-cTnTP9Tvtly4bH5T zSvGt}H#kqCSG(elTT`3e7dC3>LakQC$jCMJLpEFif`pqUMn)$gQX*PRtX9=mglu_4 zT}DrEmS4Zoy7D9gM@3Iy1W`2!Nzs{zxV}m%c>AO#4kDLLV}5R-r41kxNz+f3mX@G~ z2O%o4hIS^}t5Ge3SYWy3?MJWGr5t(#*SKv(RTZd;-^>XLdUXhDFD9;E$1>envbbS2 zn#PJv-I&At+&tvacJF>~)F=^HLYPLzZ5a3p{QQT47Z8xk+}p1Q6ezOjCHL0;*s!E- z2ucE%FAu{oT2I|sk&V`i$l-cIv(V(qhPpDmUNA8fzQn~G(pA$Wv@-9%=px>%I{v)< z{I?@?F)yXkSWKoFZf?j!{+nF__G}9=nNY4Qqnuwre(HJHHG;Y;tLAIvhYo}$7qC5a znW2~s2E?IJ5nCVxdU5&EFb9bn1w9OUkyI>YY%CZ@aijJia@H2NXMD}CQ6Lf0CF~js za-fngODIgghFbQ5TcKaAV%_{9_U^bkkAdK*mvLWj%;_`ALLW-Ohj3s16$KI0Vazp=F=!ly#U9mtm!LTt1H;??hB5iOPg+L zo+y!#%_MQ=>@YO7ogQo(b8|~bEiFI^5le5VVaBz^1bs5P5(>|N&d;AlY2h7)7YeIM znwz?k(@4(2U~m|{f$KhjG&yEEI z?QqaDI(m((s5xhcZ}35WV1Ji}U{JyG%n6iJXI#Bj9rg9PlH(zXH4KF=AtYyfbT!~; z+uwKgZVZalnk0wk8&|3ryLuTlu^$y-r~$@KXg^BOZ5s%| zNS#12dDiV67901e*LlZD0z##bu6}lif>TRBh`EJjT)BK1T2p89rjYZNN~JJ5dyG$8}tXRVn^f>>%CrVM(jAjgBZDb6|*z5 zP?S15)nK+9cAl?~PhfWD25QRQretk2MWaVNhy3)bZjbwFaMXCF=xl1v0``R8L`SH~ z1f%QKFi;Z*-~_he%7ybTWV8*Zh=QK8@1J#(#nOQW=bYA56cudksUhyXhf;2qA^*+R zl$>tU5z!%>#h&;Ts9NJ3UedKHZR0?D_{tTwL#+~DZo8(9GpA2OP@<@bTNjvvQZq=@!P8bxrBqACt+FSf2=TM*Xzo>+>j_ZS6)X@tsxYYeX8fQsX{2* zG1O``%+AiiG^#CIawwT}ZEOt5bOB;`x3^w(@9YTZ(39AcxX8Z9&H4KE`_%0tG2195c6A@5(;L6o;zBf14Rp4iOZF~Z@+yx~x z0LO0Ro1k^v8XZR>kb-45Kl_|S(ypLKy}&_bG$=KFu5_m0!Buzd*gwd3l$Yg z#S%tG#!*8YkRx8teEm1Fv9IGI@7bG#k@aU^fhrcUEqDUD=#Fd*2b%SkJKS1HV-`n8 z$2s{fZeUzj+6t<*8YU;F;i&yg2)tH9cr8WL;;=7q(Pb@Z&~;^>is)2F(WPGDRuBU4 z1T}w-Q6{L=IuMM+aQ4iFx)F!%h(8eCMa3>-XKa}Dyx9_YbDvV%q9jzXJ@_^hJIlxn zO?LR_XHz}@d5vKmZxrdz8KT^QJVfPtkM)5uC~x;X|U`7Gm>^_vp5ugllzaGv+3GMEzM&gx$KcyZM?LU)m&Iy z;_SH+*@i0Ob%B!m-()in?+s$0F9_4IQCxTvmBqJU^O}mRC;gbV&Q;z4eH4e{KW+lU zcG%gp1A8zwegjKOX*S}mHoKtGnY-9eO>$B@7A z0!)IDGs9G1ovyS%yTWI2Ao{K^@g7~Mmeh%wvXei%kju0VBm^*=>(y6(!U>mxu-kW% z0jZOS$vA#n43VIN-1O@xFP`Awm(eV&t9z~tTj%k42V(DHXZRcw?=`%iS%a-@gQX1O z?Add$t!nG4q~MaNoH}&|vJybf8t{^C>(`Z_y<56f+`c~sxi*dT__L_x#^9J0))R2o z)pi0fEfG4FaJ1u9bOok;YyjA)a)P%bTMpv=(`T7QzSZ+*cIHYEmoHsHxu&6H_jo~K zqpp;syKTFS+QKWyPQMAOlJeG6_nvUq!d+jL{lNWhS1yNt!t2T75V9MqK2DQ^T z+VPg}XOh!oh%pF>dvNjmS&WZggQl$6cTM~rvH?^Tq=3#8J7I~9qY>RCjf6W62GQx9 z!1Bb4s1z31F1xzAYf8Gpsv%^L;XwE$Y)zz@dAnXHNn4e+K#A#x3wd^XD?A~zO? z5l1&BZ(wn85jAN5mXz>KC`Q8p9Nw~kVD5Pol9yrD$`FVTg!U@0tIm*Bp201=%XdH| ztiq4WOLPoWl>M-U2!8y=n{I;6X@lFuF>!r-9I133HFXy(G1jQ7<)FJWggue>AZK4g zae0b^20;pXdb(>WI8_9#5e&*d!p_bGC~CmR;iVCKHB_`?SXfBnz4uNrT)PzsA^8DD zt&EZ3VPt8NSYR*PoqBYF<%sBwq_Iu@0i66LR7wSY?yjyH2g~H3%l0z5oVPKczK@;` z*}r-YHxXIWk7M}q1zf&-)ouA{A(VhF7xTDs=@K&K2&&RnKSnb)76YMc7*c-%rH}UYU%-8{NM~y$s~`eYbA6ZEwhH< ztHY=WJus!dhUd?1K!S-Ku@P(u4#TRI8DhM8{)wZ3f-`3k37kQn@H)2~#zOu?UNkkP zU~l6D=J2KS?1!`-i|V#bm5W83I`shreF!xn)=*R++o(uY?CH3O{_qrx8c|CI)~u<{ zdBi$#F&{FK{Ijg$5YpU33bPDgG%lR=Zql&ODLQ|UshZeHJVW<*4&ub``iftw8 zY3k7B%i|axorN6U$H|NO2S>%sw>RDbd}hWPif;CK*jFjM4MSH;PRC*J}*BDaXfyVUGWj@ieKeB z$mF&-`U&xw)~#_2;ssvQVzJC4`9iAQR-(A2{QSn|{L_9z*3Yy2BL?TL2+#u(-g^5z zj0}Ga$M4*asw$XX902O^q)o=65eqnEj-+pzuTyOUudLXc-(xC%X>x)4HU z&~BbkpdfxZwS=?hF5_b#e*`JvAj0-MB+*(|_2e;Unuz<4gwPeYFp~z-sZ*$xW}rp3 zK~iJvh{d%U`eV!39lOAZ8o!nSCWDFGj>+jI{P30c5Dm$m!@F_joPv$9@kyLLdlA3> z>77`%_n}`p)li`)$2A@i@zLWET$(U3ot!~#`bB8by-F*m!w zq<5|HjRODf)YKeir>>#5uLpT~J0cim`0-ky!1v(x0K&S2k*O4Br=NnO?}Zv3fU1SK zav4;L=nm$vEjEGf;38^v(C1tkC=2~4VE}KwbrPx65(07?RUYcCHEWohpkQ(wq20G3 zhRaZ#1y1;^6{;*9-4{kARKe)f2`pS6hZNb%2{R%*BZncT7SJC_VrTq1GYvOZq+NSe zRc}MC62RH_&m)sgqB9<7OIIQ)Ja_H_9{k7z!rMQLfHm%-haj&0IuqMT0`9*ffsSi= zj7~p?<>lQ_Bio_r)VC=^7OIHr1q{VTu(c!OI&MBO329qZ52H}9aN&awP{?M`nec2y zQ*~F!*Brd__D^u<@ncXEA4a0^4cK+nNeX;p5e*L=mvCX^3?}Etk(TyA3nuva6VfUm zme3teVOw|@oe7nL;CjnLiB(Gs!w4M4a;kuHXV1Z`6`=-OUHil@VZkv3y!y&(*uDGT zq9osrX!T{Uh2W-`mV?2*2m(q0mnMFInfU<}rR~rHI!}V29{!+Qz(8ag1CbP>(U9*9 zZgS*mVjqmaA+|l2FJ59op?2CPB+2Ha&X0ch5`O>pe;3ut4g`(!u-8D@SMJt5+v5o7 zmvQ;VD3Y^#UZ2^PfN%SOS=z7qn%Inzxc{|F&7R=3E=4!vvM&gTv zDx8-uUdDUxzJ*`=_&qQx=b_kh4YpMjBpljdA~gL5#*#fqr8@yR%Im6%WhSud3QV9s zmPSV+4ozt`n$<>C-ieA8<0QuD@Kpo@tpju>9Sy2@`^~rT8^84#?B8||9AlJG4&Dpg zb>%4*!0kiV5uTmK^;ADHnGU|UskMlR0Ch2i{?H`4qB3H!AQaJm&H$krO4y2u700>L zr!YS^y*}~PL{mCf1ebl~hd;t6KmF?v)!PvsZvmb;KCO0J%= z#dD%#(iplTCB!2!M&0;NvvK&mE!TPw?;F6&uY8V^8E!J6RXdsu(=zbvcb~<_KKiGy zwS7>lC)fR&M)l^qs)S z;#SNpStwL&=yDCRP(%pV5DBE9#yijv3nA2W{}E(73`5-uBb&mr&%T6Es6BoQRdI0b z`VG8)_7aZ#!6#5D5I0KN$9@Rt3(Z36dkFh<^n4H4x2ku67YM4j%uH9%Wf$#R% zC^V^tv1B(==?af-RFQ>_Nl3yhD&a6X;xQy565nrrdzGFKq08dE`|#A0Pheqgo{@Av zD`BEM(ZGSO4-iz!m`nzd&y)Z&2US==$QedOv>}FL=xh{&7(Y=%nsrQDQX>;V0r za4!&1QMpvc%RhP-2M_LrrXPV_8@*{L*XTk{PftQZG%O*V7f`4OsG0^G>oRo3MkJ)5 zGi>l^F~e@m6bjxvb31f|4Lc6T1gf3kKdh^#Q*p z&5jk@=xw85`O@W4y#Cso_{bxVpfIxwI?lS6)mnq+xUW69RmPSs@MTx5RbZQ!Ac_|e z(G`RO4&r*5d;XgR=PO#DAI{;Ovl+-zkfE3iZQ5Wz(LF&n@tt?iV&v)tbobwm{PHm3 z;$*{jr0NpI{YUr6*j@zEc@dRb5{@&^Y_gPr4r^6J0|t|nHS6a$#2#4TyKv(5Q@DJ2 z1o5!c-bfUI;L9?8@Y36O@S%Gl%6B4aPar6!8XQT}a&^6HpNt*-GSYbyHRA#V!G$PC z0v5trnPFlkSAYG*)^|gQ--EZG{4TDIjvy3h?*gF!jU2>ped~Grpa1a?=8Lx@BF(ZB zQ{Tf`GaYnAB_s}s*q(NfD`jDrKjHlz)>VWw15vHaRe7G%-k>ed^@1Hf21~yUPd)XY zkWD8UR@RPCcD-20;rZ{si2vn({ok-q*n?1DhJzD7UAOfq=R%?s4_h>GmZDpoWhRXzmJTw4_!#t z*#K84pxnDHfc`EObE!Pam6JTJg7#`O2!zx!A|aWf`s8>vJVS1Q(U8|4K_*kcH~-;r z#CU8`d%dl?reJJj6z9*rkDk6yA}Ak5*m%F;S8b0p^63632Kx*wE={6pPB0l_K$Q{G zs|W^cgo&}&X%?J2sEOUMz+#fSBw>X1Leu}GgH0dFv z8wl$H!l3|ECB%EhPfxN-W$g}_azCE=&exF5EVoQ3uLuQE6-w0p_)UD`lb=F|elIj@ zlIK1~WOPW-SL$9*0(X z(?kB;6gNm$uy4>rUvwA?%NA&04F%4+Vjx1}pMpUS_}MP`20S)H{xi}&7`<{1@1Hr( z=pR97r+rL-CR5_$0)Fz&N&Lzq$6;9`kSdqClDAd}hE4G9g9G#E4_(Jnmd={ZMS@^J zKrj@Bu6H03RM>v{?EtDQ=dl$fLjj>O|+Frz$%EjhSR6s$9wOO2sBV3HE_ z!C(jhy${id#w~WFtKY)PsA9%?5NaTd6K|d7*0s(~y)8eT6Dei|-~axP@W6-fMt|rI z$hlV=UgvnQZ0ehiDbtvfYs|SLITdc}2FC2tSV%c zX2kdLnTmu1%q`=eNU%_)q=$YKgqoA&_uJ9QzxK?Ao_5MYbU)%uwpFB}Rb3Glr`q~M6>XQ%S;Qk$`Xh#vO zo?u8&y-*cRq2Aeqi*?}n$c{V5kZ0c76ht=pD9Z4o3tI0(_}-(>;OzNPggI;38ZJmM zT-&iBi4tCX>BqSDLl3|V?Lyj|K$kMYBu@2)E9mjwEKR%18sRd}70>QR6uAX~BMzmDO;X6;ig1hd%9d_t`-^C|C{VB}m@53(bB{ul=j)1Ex&=m!`W7NCm_7{qR z!9l5Q>oA%wi_3xuEEbWfMC!s{ur7NR2b>akWzx#g7R`0|%?HzXn zQ(Z#AupCa7Z0Qs*&_&LI%g#$Z=Uh3qgBzYJL)pr@zVg!BID6(SWT`bHcKv%$kNugG z@8ZzycOYrbp+~;x_2aH5%c&U-v+i&2lel6-ff(;q(O{SxAzI8PdzGNNMg2b5@dxqz zH=e}&+ze#jHVA*A=T@y%@cOH7VgG@HICA(Hg5n~A)|js&NV@6)0egpZ4s2E&8-mo^ zPRQH8z6-)mU@r6Fr$_{L+8qnOVi5m(#prK8?^!>r=_ z-}?b}?%D&j^P}iCXCb1}kfgD^y*kjN^AG)*Y%@7}q8N6^N;T1ytLH)#mFTB2b^SVi z_|hw=lylrq+nxxF?x8^Wxu?I2|LG6^5GC~iDAu!{4Oss^6r@w{@794Bwt5K$9_uLu zymRF=4R{GIUX^#C61Wc+&!59->L+)MO}S{YY~#w6D|qSo=kVYEoBt7|+AzY^ch>~I zH{XqP)if2mw|6u9zv(Ta%N7l`UCnhZqom!3tl5tQ%$Z2Q`VLMndr%4_(@ z!w=!3k35V@^)doRBN-v>DVm5D4u`Qf7UAAan}Qo5|`2dkvVVj3Ror2 zBOBJN8ciG}S@CWR4er2`Pdtrt?|;Dl^`-;hHpUavElQjT(J&B;PzzqvD~t)=xpH;= zsba5Ru(9H#Q$5b8hGx3bUL{>u_9{6Sv>%!lqG0iB zDv961R8qy`k3Wgz!Yl&ygj+3jr7?C@eEZ4oqmoaeARR%{*v}OlU(lE1?Nx6&ntQG` z)|H^0G#aat_-%~e$l~cIpGH2D;!4|QgrKm6+%jH%=|`McN;>x-@9gxFQT{f7)|A$E zb+3}Hc5{fB;8akS_n{K`6o!Yd;n`=NL(?0IEP$zmI-|^l}k1 z=0{n1781SwYhSUS098Cx)&GDox_XIzsTqfKi-RtB%lho zHa>!%y!#U*mu)Oczs9|q&EAKcM@lL%M-#&!U0s_7J5+ge3}p1rpepUa+i$*!_fEWr zSS-+DUVo!dQs;xS=kTMKU%_%Yft>zHuNT>egvoJ}we-U-5+OMFT=|m$t>{WUtGUo` zqihE8oo_#Z56+!OP~U7m-eD&D*Is=cFFpT#l$66L=nr`TkB<%T_NrmJhmwLbP9j*% z$$%(1V@UnTM}7;bOc`H)^lMmJSU`)x7!5)}pktQtcLs7X39C z(x8_>Zwz8dC&RGe*zTILy|NrHVdwkpccH1e;`Sydff?h& z=|<|0)pN=kYD9tu71ebfvxNCK2ET z=5~{L*A6EVidGMnaW^^=I{x%ezJR49jab~w^B4Gz)-@4dfApIeo5(=z{Wu(TfLl`h zWaVz9b49wke!xcd%Hh3~v$n&I+=XH;jn94V>pZVr_HR`8)l>8)saUp!zx<0YV|r15 zkoXV^Rkf*~ZhL+pJR~UlJeKXPtG}-FQ^YQG4BdsZ@4t_)eED(az>t0>&EL(1*3k5l z%luKR=W26%uR+?++5g;#^vU1+-T(M=^@SuE%jqSYc>4{WwaDV_V7ds}flc3vkdt=D zvAglHkNw)}b^X=9`8-!3MCs?dsMDX(i)P zu|lxA{snF<$@qW%xaI?(>6M_fLA03;Vm&1>s68Z>Uef=c9_01>veQ#yo6KslRdtSRfgI{_0IBN1P6w3}` z@(k0}`Hf#|PaF<*XwGmY{yWHvhw$XLpT=`fKg;lau`RgpdZBeqr?Qxyp2L0j-HD34 z7nWHe(g1{?{D+jKH4f1lXHAo(q1h%TM-nO zp$VDQieFpbzTri-YXjtcD0lt=7SlES@qhYbW{wZGZjbX7YR#FLn1&VzVC$~Eu(hqw zg+(Y_netWQ=HG4bCES45LP5I^wfJx1#*JD0hd=rcDCV&-tYpS`g7I({Y4dCg0$x%zlX9J#iM`wRlM=)8whC5EzRg9WK()M%WTRA4jx3P z=Qu<&1KD0^ZUfr-9NQ(ZBaVd7Zy~i@!WaMQ^B5Vv!VunD(UqX?3kyq3EOqGU-H;;t zAsMrf?Ubie8w{C#f9sfRKa1*JSi-%Snoi%DEyG%#F!eW>&xB?vKG% z`XL(=OjPAGz~$S2e@01&GP3f6NSOyPIy#0gec?-3P9?qehIZcT=6&h@uZ^+M38;#K zV;}wPwvuN3eS|H7j1Fv{XCoIQO4U;WBsC>1gu|G?(&t6H^&D_2I* z-QA15cYFdytq9SWcc*)_90l0?Gno|3i6d#!Zb>^6r53^wp1?T z(#5OTd+;a*c6|s&X%3Q|@rod~cDK5G=_kH}r=NNrqG)WAWgH&r z2Mk#sAD_hW`#+9&&mNei83<;|3yj6p*KTGn@O=dvS#vA$frpWZNARV;{yJWL^&KXC zTPOBf-Pe2$JySthV=o+@s=%?pBfpJstQTf+id%DT?$ynU$OtDOW9^36^>HR({`?od zj*}w7ojK$46BCwKJ*ao zx$gnUih%5Ljwd3t8gu;rXZghn&^?3j&l#YvTp}Z5)5v6VxbNO$umU?#C>hY4ls9*~ z)!|$p6i`*$wk(vyAqf5d26LGp{_=C*#Cs=CBBVK9hJW);B!~PaFfua6kmsHIjv{Am zh2WH-i_1)o)y}NewR%$(f_f>-%3)yO4=_4e#ApBf%eZ*q0vkHITqI$0Ff4eivotgH z%-InR(hnTI3-g6;2v!aOG3yzv&FH%Ry{RAc#Q6;V=r4vbyIApNc*4zi3!>N8=SE)w zRw@<#!3!l@v$;IZUl_w3x9>)L;3yXIai~~=E*8ACZ~xLGM_I5dsG46aYi;J$lrgAl$A%SDaHy10oNVN(}0jqBoZO5zYo zvEM^MJb7-WBPa_yxbhefGf>1*n?c%55uFPE zcUd`zLi~R~t{TH%{pIKJz3+YxiKy0gKX-$!9v=ZEKFn$j`wt#MN!Y>F%7Cy82_>&e z*+SPf7d`1pJ&Z-|K9oEDHCH1)`=@`7_kQvo_p9DYB4I^WlIz!}5DMv>P%6uN5s-=q zAjLtJuan+Xb(?jy#R&5Hufpp1G{(j!@JIjqzsKC{EOhPG;Z5X!ksZ8zWfWaq3B>zv z2Ld~wVHv8E@+y?gY=9q>(PUjsu^ai&Z^Ddx2xm^6#-IF`|B7-kuI;>ubo{kO}=RENwTw_uRAi+b?~M_my-D!TE}i zy`p*8RDl~B+JeNEdziODvX_}j+@MuA_|2f&YnGw?w&sEx#KrbH6%z*4w9X7 zN7in}29U0>khcdhYd;Jnx*r$L{sdq7@?%(x48QQ+&8JUiI_x{7dHSW?Cwq@+jC*}Dy|{NQCSW0Jb@4ZK%C5~XZsG?>V2uWEl z_-$_VT<5XMj#&v?kW=r2I{14yd43*W{Nmr?$FIN6n$ zJQs88t^+8Edr>h|$js21@nCr^=4*2m%0@-niM;k8r2gN;Yj2#x7eD_uIQiabM8Xjc z+=!9<*2E2b$=Nym{xEvFBG|R>HsqW=$dv>H#5@9G&bKFVBO%sZV!V9f#X0=(-;QH) zwuJB+7G!rkwZkrluwqOpNZ+uM?q+(4i0}OQG3?pVh5qeFkg5)$TC<=@1)jwT4^-9M zAu}PO3|ow$pdLpp{%KSL$MDQk-@)hq@(ZYy^9U$ET|bB5jj_2lF~il#qlb4O*nJ2~ zr7mXKSEV9U6ufWR?BcW8c_dwF1WrM{7iRbGpoBsE{i9#SSHJQ#Mkln#hQ5KWf{T(F z8NI;_=_V}i(;rqL=A3U#+g{r9!pb467Mc_&JN2ViyoE|TdQzVNxvcbGBtRuc&;Lb_7*?CMo_Jj>AbJum|YVIah95Q@Fz1_!JA zzkXfaB%$P#8FpS&??gHDD=?xT!HIX?#{d0){bx*1P9PlIc&uVOLN>l;)Nt>vH~Q=A3(@Hv|H-+n?DdTOe2FeBXTYjlR>sYlL(_S(zCJ4jg6>wdmybaBEW` zD6~+CW$gSysBZC8TUS0;l!;D&McWl-<4}~^gYokZ-{Py!r*hUz!bxZdiJYCzJ6pi> zdqYEm5Ru#+E_D(=13Q#evOcwigS_nQ60a_G3b!?s>Ib8!*u{OrbAFl2fnVjt#ZYAu zB*#~+z>y=zaq8q5goK76Dzz`%LL@td-AvAj@^vA(5OX6m}0uX=}|)PS|wTa1EmGJ zuRM&kKmd|9Wh>-~J>XEaz}{V3F>%5q96oda8dZIdRp3`qbwWvT3D&RM#B$fV{UE^9 z3T`)z$1CB?Z|yq3N78+z6ddp>f>A28#u)-H3rfMd)l2c^{Ce32r2EY!M555$3WY*1ghj+)>4IPJ*(YD& z#Ia*ATu48^U)@xdHv-qo&o9KTox2c|&FB=mM9ArUTia@RmtcRRIGa^4-co1P#u)nxIJNjELkOC^>f;AN==o z{QTo=$vMBktJN(#=zaTig3{W+4EhB)@l_o3QY#kBmmPF>g@aC$7xK*oSa)V6v zUK&67*F%8+%R1;A|HKYDyvoTrik-U-A|}d+lolO$97cgT1WwT)I~C;;*cO-A zxLFyKqH`%@VO3|stnC4JXg^p~Z7}PXMVRp61nks{ z%B{!|P%`k%-xcF>;;7N!q%<(@aab%VD9XB(5XE<=IBz8Lgw|*;anU&dYmU7BscGfB6}jt-Z+S= zFz%^SkukxJxQ|ySJG~x7C~TTGDA)IgE2uAAhPGI=U?C=b`WaR%TP|nL8|IwLt18cV z_F~W8LpYTyWvIgvI-taz1iL`IhV$qzZuwwGT;6{QWC#LWibz;B9Z+uQ2dAkwO56$f zW%>`8^x5awvvViHL$nv%a~gB4r5QQM)>xtNtpcE7d&r2B&g;*=!;~P#{+p>E_QtK&*niN z6bVgOHf%_QTayTd$^fO;3?*zb7@1e*)xnuSmof=vO%If7d%$7rg5xJkF!_^@@a@!T zaN5n#bJpb27z1SVkdsbR77Ft65FC*RWk_2%74dMZ<5`}SqJ;wn5|17~uM~9Pwi9hP zl&GaXRxSTtQxqUZvlfVJ5B6m7Ukp;8efH^aN#y4M2!I{%1CFlISyw)$cP8DtrhaFqC z>_F~`V~9&^im;?Ea4F&?r&6Jpol0w!b49$03L`w46qE?5aqw*0;g`DacesYyCQ;yS`9#KNP9Vq3!JRQhZciB~tE41rVK zlryFU?ly24vQS!_k13yjiD}=>K=HW(7!B(4W3AP2%4-W=i`?>5kY9ie>o&n=El2ar zUNA;w!+~gc6k(EMOO*kwsM?haLAW=X`MF4lXr?|A6fd87L_lGLD70=42z>9+H6k1pKbbuT{P%3!>PKhT4 z`K}Cu4f>sK|va{~0;Fa)z1SM=@G>W~=m{*sf9S6{tES!gT z-uV=(maj&z>EaOE-CiKEQ7XFk>Zq3_(=IS%^gHaX-l{ju8VrkKQjp*fA!;ED(s-qXmR-9K78=j%P<86@xO^)37~=x zgWQvRDMZPut!1ydJti;xey%_kN$l-qF=urXx6e7 zN=wSPH=Rn}DO;medl`^QP=`QN7xYR}ATbRjW5*+7I)w zWBYFDa#E`$r6^n&YVY~T>Gm>0cax?m=+Uhm1`izsy)g{srG-$z294SUgH~YhG@oIp zq*5(-I3wt`9LH}f4q*DCQ`mjb%okJbb0&R683qL#%?f{wrUcl9^MFX%ogOF@TBM~l zL*G8#(7S(M*qs8r&SGd)PUtjVXw@P#)bFU$!y^Q-qW20xa4W*NoO8jibFp;EGAUZF zQ}C?QdIO-=lj!5@b`Oj}!D!LE2?h@8hfZC(vGJlpDYPmV%PGyerhZ3JX@VDehzd2_ zq5&?1;`s4nm@{JrkNhbt$m2aAhx&3TA-hvVNJto3rL{o60e#S_O*TZYlY?Gbm52MX zDY!&En;u0lUxZ#lMi)%5yY<+;a~tN&`UN|-@8YbHQLntD=gLO}R%3T~5FQzgjEpuI zH24}Mr#6S+wL!18Ld)mh#Tj4*vm#!h=22EI1jB32t_kwJmmEE>S8 zSA^XqA}Tr#ojZ3xuReVdo0!D2T4`PN8mc&PvcpCCf=bz`x`ui|9byQI&Y7`!<2o#y zzX(T<9D|pPGHoEhyM_^sPokOYad8Rg+_fV*ck6+~q$H??au_r&t}Y>7DO*b83JCy; zre!!h8rVH1*z680S+ofA=Plsbu`0pEsK$ZtIU7O@0tPJ_rKF%oukPs3sSBcGBB57U zdG9synnLa|r@bd$Z7yld9+mr1zxnEwYjLi)h|l2V!UCd-DwW2B#wjUi-?0O(88QSW zqn2A0=c!UH{Wb93?2v}xG2b2mHsG&b&1Igyo#WQsrw z^@b2MY1#z+`VT!S#>npko$UrBf*#i^b$29iSO1z4Cc5>&;nuWc4a!^=s zwo=gZQri%K!v&av!qF6crGsb5Q$WENP@*+-d6cj_={-t#m7%cPtXRBoKGv;XivtG^a$5^!y)VbQ(z-a^ z3N&xg0s{vR!hpd;xYwClGnBAE@Jazt2D1}2{93x>94-w6O$bWP72wxdGqG*!HXJ^D zlrHj)J_ivK>%iAUI(F^^c;xB?nODJW;q12EMK+ECPLBo( zb+82HeBuCpoHi57mab)+g{C%KcrU+1bPl@q?2G4LegWa?44elf*r{? zcH$Hsec%!34SHCt6J%f8y{##p32W4g(J5J;rOV|bH&qgu2dUYqA6?Wb4rM04df342I zz)>0LEz!M4S7;64&>4&p%$?x-L?vuiD~=pFg0-vG;LxGNC^wfgGB7zimwQYBA#xJp zxyclanAj+^Y}p)b+qFkjYyvb|jXx02orD7Qt`+0Jfdg2*ay8DJK7(?znIr6)3q)(b z7^0C%H1{+pI0Uh@u2~sK&&WbVR5X{;`FQ1VdtMRw`T5A%o5Kj*#H-zA;qo!n6#z&f zUMUhE5*m(#gm|<_OG8$6HXlU0neU?GzsGM1OsnUA^ zNR-DwQcx*8A{+^ciAc}PM0!RW1O*5C*Hl9C7vOfeapue!?%$@dRAprpe6+BUbRoTl z7sabr$^^o$HNYtbAbA;Dbvq!4^FXB7;HcKp~eY}~Mc<-lqwhr?dZ zC3RJBe=Y+_W77mEReFSmg(5v89qCz_NKH+Zfrz})xe}!*9(0Zl9z2Mxo3~*9zJ06{ z+)gVrn#(V%9+p7`6iO}P;^SCOTc@`{a&j^hq}v7GxspZ}S<5ZhzGFMK{=S)kODX$C z(?TR?=W_EZ^4+D;=nu^o`ys1e$=Yln>NEQHbQGKg~KUYa)Hc6(4qi+wde6h!U@&YzI*FP5zlYY}~M($GzEXRv8dd0?w@; zU7TFgSs~r3P-zhq9E!9yts5@<0ATpc1R(L!;GBOYr9>xhRpDjt}ijqb)OA)qg-h!3O*CH=3AEm|T*w?8)vV84i za{$>LJLCR`?nO{g2)E=li0WyUlDyD3Q38z4%{_sCJoXgydY$B;KO;HlI=uqNj-15G z#VerIQ_||M=bYoJgMMk~QaI@F3ntj1P%71YcxhfDUCs)H3M#b*1qB5tD=n2AK#`}8 zGpO2SwsR%^m`4SmP;<0UWWQFyWnrXj2#hKsRKtc0u}3Jk0 zw@9Vh8aBk}@*u~8_#~OPS#69`YPVWhUPUg`cXJ8yl_oErEhQ8rgAkzAX%P|{%7G?w zek@ii3iAu#cDv49;*|5H#>{WC#@|7?R3!V4Q%u%I5=|-r6r}DTwvsX(O2?#WtpY@m&R0SAaWao z3VNfFdDZFlY@ihu6v1k-NO)H~ueFwQbp_a#=0%gys^)Ax-D$L*K3<&;2MY4@85cmp zz#tv!@+z`TAn_`VDOG9I2oDQ~(PVq>XEMt0EUWK5t;Gdt)8UIW4Fs2d+jkOH8RyefH($xaCi4~I&n=H!CIZev~@liC=KC|{Qd6$y}zUxk$$Yoton}fb=$r5Pw^_xNezeuV-Y9{z) zBT>8@6=+w4NCA+}Qj!vr0iqmMCr(?+q{A%_{nscZqa0TlxlqcC5pNEu&XanhxYt@D zv&Dn5a;smYd|5w*+&Cli}iByhLBCrhp6goeJ={94I(zk)!6Q;MG5WSG;J{>xL3%A6Ry!aXU_% z9eLK$igP6c%&BA};u6{~7fezH+{558#DvXkho!98zpe@yT#BVq@cv<{PViUDxY+0h zm0X)`u$YTkRv{znD`i>bVB8-hs|?J^c8h~~qs&ctsTJl@g}=O>_*BYsTZKRHTuF`# zofo?_ui5EDnWG$~#lCY@XEwGLU%odLzI7F)UfT;lSC{6weDkMKiC1!NPM<83Tl0Lp zigE>j2wdUdjGtHjT90%O$Y4KS1Og;pmGzZ@%W$!=Y85K;3X~MvQCuuY zk%mg=Nscmsgu*T9(y19bTd8RDe3$8RgfB zV!do3X)LCfZGBNtz~yiu@3gssSC#?a%qQReU%JRAjaRmn7vY$>;Bpsb1|*RaK+3wO z+Whsf;ryif>ph+Lm)J2WS|@VGS-K^USvm=qIQ&#s$AAu`+KN2$6d)W z{{xH(|NqJ5;?)Bjve-xlyC4T4lyZhhCC@r1hg8Ga02s#Of zsxA-_Kd*wHSEb(>ukkd0ibz!5yb4ub`A1X5xkA8m^=FCg`P(m;S6Np7^t{T(;w6_= zsjOGgU~o3U&#O?UUaf`KE56v3d98l036=iSFvcjOq`2T3zY!_uiVX{gVi5 z6<(|8t4pV=7<+|4Lq*7Y*AQN1w?`2`2L2Qa>yuTle7DxdXZ1hV?{h1YC>!k!(*u`_ z*ULkKY}3}XSuTLrD-?0|q4fCmm9pYD@-G_Bg(zv4+KU?M|LKD7TnP=(0aP{MLuRkd zuB-GBqC(^Urwbi>DqJ>M6}bwk_G%W7KN)aYsNPH9Mc_2VU&G%EL^UB3uhO5C{w$_= zWvVbB&;Lr%|EE6>1qdei?H=y7m0Q$ZT&7R+f7xX6&9e;Pr2C)Q>y&+cjg)B;v>fG> z(D*MzvHThLKM-Bz_0rS-?=^MO7!`KVJx~j-OZXM_{GdO@@?T0Oq|#(6WAt)4y;qt+ zUayv;`tb4pTV7pWH9Vq98d0Zk%NfQ?LH}R$RkZ*RgUu@8@=EtEfu&tKT#&!8tX?6< zypAuwq~A`Z^lqa?k?>j=1ttdZP$$11d-_-D)y6 zgIC4a0HpubYE>->w#z6x_5Ns4Zs+}9I;WS0{=kB>t8|tA7f3EE=b6(Eh#qH!Tg}l^ z?fEqgjmHryjgYJF`>xVex=L^p7!rfHDd85?JoWWLGZ0s)Dv{=)=^BJ`&n5q&3T{t* z;`LW`*7=Ah>3h}kx++2K!Ix!B!C#hY%9ymKDqc?tEOFnn_v)GkBwtD6A9!9b^|y1) zCIu8l$=Q|m{|d-}Q0>RZ4<}uu0&~f}t82WPj6)@QuM8S`J%|E`5-yMQ4Bji-F?*Hj zL0290tMvbtB!HWWpSnqo2Gd9;a?*XT=lPfQm@`REdS#$Ec{GP8gDYL7t8|qD93298 z@;ED%Ow-RgtYH)v-`=DKgD}t_k3J zm83QL;~jHc@^2TaxcjvKN~H*;N_lxeF#|Z{RbNBs|0?+M%)>ErA z0mo}K>PkrBmyf(&FPu&nj|rnF94jq_1a?MaDJ~VNWPQnEaq#@pK+8z8jP(XBTuvt= zrh@^ZXtaqo;5QJux636(J_)!-X9$*@bGh7ILgcJl@d|;#vXqg z6m1!eQz69e>a#&B6YaUv;pJyg$a_wxsh9H7qP?|RT>%q7K6`++Sfj0*UpMjVr1|vH z-=$|%$fH9VPIRU$7N=hZ0}-#4MncD~PIj9^iX_+d0iwh^oz)9nYv!@s8TbWqJHN7? zXNTm{VfRSSEJ!-!d~$OkM4#z$xnZ|?e0V>#vn>OcX|+nI)T$ctLcb?ooeodHoCkfj zR#%gELi=^QU94O*O6te2S?=cJlhz_&tW929Y421}D9=BDpZWH9V6(dA9(cfLYWNwW zwV*Yv>w6&sMrzI@XEegf=@2VqKt=0V_j_oK2#nC9ARG}lR0NQxlqR0o>@Gf|K3!xm z2G)zUaL(xGx73rrtV&?f{$B>0e{wmr&2^OZ3bR zyB!XP#2+Cr)1;4Dc0;m@oW!Rn$tdeVC9koPL0%ma@Ssw-;4?^5MSORUv~JpZt$}pD zJaVrtc!U}8b2*6j$!4$Mlg^((SFdMvxhwdrxRW)E`dyc7Sgls6%A*$Y=^;th)%;n3 zsG{;)fP>GJ)HiK3Y9(D;jff{gA`e8wu|}=si7-4ViJs3|&TGS9e#$D<=9O#_CF`8? ztr`8E_SSBfWLu>cpw}DEla(jqObfT0#_^Rg(!Z9^gQmv4<8at{KLjNuapVOikYds8 zUsnd&B~H&+gH(3nw=+=EVIIs@rr zAHQ^Gs5RPp+w`PcT`uWEjWj1ezk5IDGIZj0RP$3avJx%hO!uLTo}fGPBz8yl1=JjuXd@V*lPfvN2kh zk#q4xpJ^_0LaPIsw`hrk#AFzQf_S73DgCo&PT|PmgD5vUE{RclKH_Y+*NfhL`ywnd zl1IE$CjxpqbNVEX9X^2TMvXyOXc!ybMTG_U^_QP(U3WryZPKh6`VSlew^y3aIB(7` zIDMu7N|hW?p)9)Sty8&^bDEHph>WcEa5z0R3RuWVce!mm>VxLoA33<66()_Ys=R;n zXRF1D$e3`nNzdkSVKf6*lApuSY89-E8@lK8ej4x8wMQqu=xh5ta=Ix{P*_-q13A0l zaf@vDRCz8zKv|g`(a~XOp4J)>5mEf_G=gh?&K~5QDMV24g*XAV^GeU$wMQSGAuI+! zQ>C+Kv6SQR!TmUXO^F85IT47fRKonRA77y7GurDz zbh$>y#G!RY7Br+s0^HzEndh9{J5W+=t+AgTx0iWLNKWC=Hs0F!61_Nb=m3v7s=PjA zJm}Ok&P@zh@t#@ab zj6rN5ty{H>4ZDlgXY_qh(XnXRCWA-Q)r=^Jk|XGGBme9f?BBaj3chJ;o~zPQI}#G2 z&?-F}!KC{gHk>?h9D8=`3K)c{ct6;<^!jF2)9hKT7HzURAR;n~jXauFynXWq*&sXr z^HLy%5L}LTJbnGu@>)u0?U^2a-2MVB;Z|0XzWH) zFgkT>$0LYH7v~;7jJ-Q|L#IE#X~TM{)P~mSX=s(6#Q}q@o7V9x>FRq+cPhzMMpiq- z#3!)fNMp{99y)-NxyN`+TjldcGqWXB=&IjI@)sN&jP8B9NWe@YaQxUI@|2U43hL#x(V9K6}LcPGxAIw66sR=kpRv)$%IljhCQtVJsxD_dMt zh(iZ*aOTum1O@A%;JNu1F-}krklnr$BBEpXuM{xYxpfolcB^y-YrcWkw%qJQVsac> zw$6aj7zDGq6o>Zb;N*#uFq*WNcKj4gIZ&z4wqsX5e|*ndE!eST1FubO&+H5MSgcMY zB*aU6nu6Fl^y%ZWG7Ex&Y9B>K_G6dseRzaht@pdf&7WUZT8!M|M^RKz#5%LG+*Id^ zob#s5)6lX_Cf^HNHm-rWtm>KaeOK$u_O;kdJ_k~X{Jc{*S5&}z6dfDSGDHDW!H<9B z|3tP$=)No}%*Vbxd!W;)*qN-A1W5-)M#my8y)ECd1^H*ObKAyRZ>HEYTD@w!z@ zVY8N3IrowdE=O2I7}B#kAd=1}*)}D`ICk_9a*yZox&Qx4R~_^#PSVWuC!c)^*NqsB z>~CuLI4Z~^hnsG`<7WJAofJrHTs;2s$(Lx_s8PVz&73<258inTZochq^zPo1|LtsX2^KG!$1^)C zD;-i+q~ve=`~7(I;c@nM;o$y5Fa>GlzB?}*4i^RuyB2reaWA^`>5njj0c8#c z%g;|gev6;KpTfp1%^_|`?<1{eN|UCTH1#Kh2Zz);{hclu%FLWOnTu5`m*MkIKSb`) zL;l(Sw3fx^>=-n30PeWw0d(rx6LH}Y(wdi);`jBdG40#0F=xgM1O;8ZjMBQ0Ve;Qe zQ_x5@!fJgc0Hrn?w*S5nQ$GI;b7%bsole6J9?e94=flZJOiYB!6F9Y}S1GZ1+g3b3 z?tYxkJyGu{FF8W7v2mC(eV*UZto|)dis;+y$Uk!$>(;EoXa9MN9f0Z?C#%)TPSEg? zqtW}Cp@=dXQ0n&J;NIPsHRDH2nfMVKX$`Gjp-dkcwjX^t4dGgKtug=}2nH19=iQ}RjbUIhr9lGGd&wt>GgX$trf9Gtc%f$}olKFG-`GogivswLy zF`uhqJFdTRG{)R=2fFm^j|ja67SjEDbFgsE41Dv&1e`0(uQTgKtLlp{QKd{)t8{$+ z-7Lh$MuU!x^eddo z!WUk9A1zz8g2Po)s+1}PmM>a>7oKy#Alb7|^3Duifze-LZ4qCZ6T&Bie_i&0FEYaZjObr`||ungX2w z6qh@(d&egHI%@`g{AMD*&S#|i_NeOeNKQnz-UBh|tMB2EGo5ReFT?HE5A^HII#-y- z>M8Nwgl{mYPft+(@%AwzaQx^A1O?T;P83v1Y0?6pfAce1q%_8n{1S}5rVGp^#Zc5y zH3kk$I5BYWHF)>4?+_Mdf=&S}Td@X@-1RpUpDPTI39lep6Nm~t_{2-N=eDuD#!ozW z4`xjJ3M&81J;^zz0NU;MJcQA=-j1wx9iUYJXA8@)Wy4xb{`g&NTDOt|#TQy($bn{^ z9v^)*9SO;a{BEk0x@lN%?AW@I&tP@piXBnJ*gNmSb)(0iedoRi2~wlD)Q%ln*5c=H zzrp-DKXIV0?(HO9D<48&OlUbEXVupHVeiK?umVScU6%sdD-CdxY$0qdCct? z@wdOBZHGPx3Dv-62lDgIV%@4G_~O&?IGD4$R{0`%eC4f=(XvgNRCQQ=|D0~VlZpz? z;=sP0STK7Q=Fa@iUo}#FCu}ww!onl)@9~o{pl4^6&!K(0W6#dbRn8OzdK))sjt@Wo zu~sYr9w)3(;{7*X#!pkHz!aoM$1c6_pNU_imb?q=Ou9d;7Awx2I*z4_=HmOWCZMFa zSk4;PB+}vcJbVXU{MW1e9KX(6gnMot0-et15cqtaLb(!;@*4iMyb8#cT>RH;dH=KZpNYgJ1~3tPnbXZ2i^}Q z%TvuYp)>OGTN5zk+JT_@l^0%m3GZ)x4dD?LwwAffjMS#han}P+qVF|BkeZsvHpbc0 zMcBS&J-+zl18iEiqFRN4mmTxh$A6C0rj5ADraDo;nAVr>lWo7R!PGB5!>(<=%W_cj z^^~AXOlpkDUrj^H7R}l2>d~$Zj+d1}rLMTc$T`36`WrE582J!Akdz$DPhOZ;f<3#o z;Fsy&VfN2cpi(z1f%CsgR~_^#Ok`NU_Rjlw?BOS>d~v8wk8Yj1pndyJh>D8F2k-qG zT8&UG%3MKo>5vi|Ir?UN@X;h_D_xZIr}WmXk>2`MBqTM)>n}bHbJ@8|c9D>BbvoP_ zbIWabQ=2YU)X}p2avM!#>gndM@FG-W;U9(XoV*pdJyLdPH|R-7Vp{- zBk|EklMxYKvF^cIExL5q3GDHCmUyr z7tH1I?1m5-OfK0G*VY2EL8}p>*P~z0-pFd-iAyzq_+|<;S|#*G6B?(aA}%bfrp#1w zrb(t^ViOoa)_Z{IDYIX2S13YDvvTM&61PhsO4k`Je?S|X1?n~qP(`0MHJ+gl^QUN zS{2+{6(WM0qD|ALoTYp0?we6qkXLJ)1sSHX@zHqVpZ|tNsbJ^ATvmF~JXR*+Qy~wt zr~hawttmYVm4&*YMRaH;I%Z~~d0HDheCKHYCs3Qj^*4>dyA!@bY>>ep@S}amNNa_5 zY5zo%rY-Q?6Zf#uTAxfQIZWB@x*#Ps8fEe$#wW((<~tt1C*$9g0)7FAWXw`-$B^Np zFz)$RQR)Rk6jIef_01+DG^tTzq-A8GX<}Rrc@X3?u`?d_UY9;ph$UCsKZbqNg%$A3Tn0o}7R zV6D_m8e-C*SGVry*r_WcAb&C8J%~z0z&o1^?8xY7j2v@2_kB9#HE!Fn8xk9(;Pj~z zPy~3dk0_)2;v4UxU!R^ZlLKe>aK%laBkpm#SWmt5=0`|P*vMv&001BWNkld?J;#6OZ>l_8i7N_X-Reo}I!J9T|-4h7M-k@ysK4V8!Akb?$2*K6>^W zg2t(da7ja15E7(Cp8?lm|K6Sa`|8MQE@Q1Fs#$RRk58Txs2;o&y2bT>CeS|7arg zYJv3t=@OL=&^L-ji(7Bu4Do$qhvDSOV_Z#Ho#>wSJwB;Hb>$05M|YeGVd1H0(=ru3 z`V3-_vxUFTsBy2*S*Oo`^2N8&wP$A(*`+djPi>yR0JQDU4J}%x!tJeiBp;DZByAHM z9Of^3Rw>o;C|~LC6kAeMa%Cw2L=|zd@uBF{ArsA7rs3tMA7CfA@|l#X&#dS>us800 z@In55YBjZ5%oSr;eN~aP>wX#Fs5NlS56cv`^seitN0fPs^<^`I7@Ti!{e~^_YGLFWGR=1*G6=x=z@6Ty^sCQ`P>C_@XOCXa0%_$Tkqlv z<<8sgz@oV`uwd>yn1UMqtWx&Fi|cP1i}&CE7(u2W|7E&u`xfS#l;Oa^!;q4Y$QMRT zco_cqueWgeEE9u_BniWft zbLarlnl^_)t;UVF-i3L;%tmEfoy$>UVv!Ub&4wgh8Z)L%h1Fu?K2Pa0o$$D+*GMbR zO4o9atWXPZh%Z9`4ngt0>{C^fKKqEvNFh5Irl26sGN+}r=KUKsXb6^#7=?)wKH$%f zi;u;G314t&K7G>9Gk(Nx3x370k=JABwZr+sdg#H2v2pz>ESfu$%R?LDpwV8FVM*WR z7DX&vv;bQ+uH`5*l{`{Zzf-rKXrGbA>(ena8}~i(54`qIDF9V&^Ww%^Z)4}2o_YVF z1Ni4tkMc$E(BsdbXU{%}2@b}64?m7Y^JdFsp$+5LEAP|nd9$%;-70@23Vm*)l%^Oq zYBbA8gh7wn?|u;TX3c=jX5pPWcrXX%*f_Y|RWB2A2pXq0<^82%!4*s9$c7!j4 zxR=h?%t*5I%XF@M;2u;#Ku}N+I(F@jjLf#Y=6!ng!`%-*j+dVr$E^dj7fqYD#N*Gt zj9`Q0n5|s79N&LE34^X1g`p!yb5wuqo%dkrqIuZ4bu09ShMhOxnTMQt`sTZ@aqP$e zHbA5{2qTx>4H)a4SCj@7waFEFvsKjcB>D!R`@puAqPhefhtG_J*?C z4WY`iT2@w$SwDS;g1obQ28d5-ZF?fCZClvAz@Xl}(Yya3%>3b-8gfUUrPmwq>RTTo zD=iJ>UOD!5iK2@v2ObZ!q5_45=P-ZH&)gD38AM(f3Xx0N?eEKmv{B;o-(a|x{ zxbFI!*s!DR_VpVN95NCU#=jZxZ2EeX?|JxfJo40w+-pdV5EQkq7qv~a$!rIM!3Zm5 zzFZ>g){3?U`VQ)KG@H!a&k=J5z14LV*LlPKP%?_yo89 z{eBRP1!D#TkVmO!*NynZWW4;=$LKd`07@Owe%4opZ8kePcFaa*`_6oy((*VwK!i@q z|2BWljDVF2#IH)J!hMfEg{NM42^ymbb_Xi89#uu)qH3G_AA1(Qj*le^7h&O?pYgYw z?nL{}-O#FWJVuVb4eM8}s8@AFWun*LeAoRflfEssyMWxz&e0t7WSeXrGma z!Pkw(l*u2|dWN}r!6P}F>({L3?6birIYXq|6A~MtYp($a4mQDP(&3>eU&3$mW>$QF ztjnkc>gBg5VB`&B8Pmbn3tyEgQWR86qp)G^a!mbv0+(aMUv(;Cfv+Zx=MwtSH{FTO-Mb(uISK!G{&n0lb|^dem8+U)ZRonD zqp)%PMl4%2mu);Eqrrs6O`D^AryekwjA+&(1rI*?0v@~PMs~>Qb9_9IOujyT68a7t zfOE21m)58Pd5`P@N*?|F!G9n+%E-aLQzy@0!uzkGurMF@Jopr{J9L6xr{vdc-n0dq zHf?Ia>H6QKs}A}VBm#9AIp!v46jFcMilvM3;NAB_r*&iFx;0q5b}Ql{qYxJnj`Xay z_-+0Y1d18a``ct@bMFj^{)*Kr@$9&VkbC?jR;^fq*6EpOo7Ij1YO>pR#)_qjF8E@r zjpz_3H)@QJCww7+{{T38^a!4M?0)Rnwu#F~NqfBc>hl=)%s=tK!%y<3Bt}JH?Cp1A z-Rk9hi0j*9e<4H{X_KbSd40)QoHq3 zSHLHr&!0HqKRA2(6!XO;V}gK)sAzmX^=D*fw`V84O-3e6!J+WDTL~DF-w> zq6RHmXCNUW0!hg!NNCi8D-$jTG)@#fGOyCc(EqPnvld@`GLcK%d>0V~$qpYrg6Cd( zmCLiDaunYCZ~_cU;Md<4;gb(O1QaR= zDowp}=rsRSROtQuIXrI6{P8Eu{bd${f`jGf@N%#7M_+!8!F~F&Vcelhceq3)bP5A3 z<)v(RMTUp7@?N}hCGNcG29%eZv1Zi;9OB5>x}rsB*Z2*;@}DW zebkTv{5x7-s?ZP=(&!}4cBqUOJUmC@Q^VE(tu1AZfB1GP@2jtOn+$KtV7~UwcnrJt zTGkPRhL6U=`3t$%vqCota5`=1f9(hiAALiO46i8YAqoy|Yq_X3r7??;c%o6xREGJ( z)NiqU%Vsu+6mnl_bj&AsZ^A_M@7)tN5$M@}C}z)^&Bkn>0oNctu@M|zFHYs2#shcU z#yzLMEm(}$xJI~cl(2VJ**c5c{){UzjC|JTJv7&&+O`D?6 zz~NZ3XufPXR_qQLkj+}O#w%}*NB16G8DGFwN#zNGh9^~sg3fPz+nsi_$?A;IuwXV` zXa4XVUV3Jn)YC}4kqTd>hy#Y8&{`4D?M?@}^tuKqG2v{CvV)+JaOgXA>y3m)&5?WJ zSk`aDRB^j1={8sx)d`H*y3Xe&T7gY}Jfq(dMYmv)Zp)NVig;_lB`|;?4&iMp9x7 zS0Ypjhsp2JSDE8noh&vx`VJa~X3bJK!$@mPcZtOdj2Lq(=FXal9a~9etI8IYEcY7F zALE{R5iMJ{fkCHWeg%KhS0jJ7WPXyYj~p?UtC^^*eff&jc>ak;aPs5{oH%g?U;i`* z7L^jc`wvEku6?j()p8h32LH3vMfBONGTNalc-OhmvQ?LoiDamM))s-o5)v`=`rGi+cV9zYX}`RJ3Z~#Fq-VBd$1U$nKE9g#DSqFu z9-B68hQldh(&UL8z@iF*nLq!?$pB?#dw@JsS&!)zU>!96?Y9sa73l{tBb)A)JMP6Z zFTKuX>ZEsCW^}^tUEBGyi1)#xM&ZflUPWS30y}t)D)Om=s5D4t%EvprXx=(Yeyt0y zz3>mr{ONnX2P^9Uo7IA#@CXTCNPc!I3d}oO#P;2eZJQa`jZ4ctZhSuR6MQ^rDze(8 zv*X{ndw+cS*{1->o5zdP=FM>T1CL|qh>^6q1uuv2o2Be;|eQ z_oGk0jP@Pd@iq~rUTygcDOeMO_8q%(d#P5V!Mp!{4O1q5z-8nm=L*p#>j$oAqsqb1 z@Cckam0L65Dg(-G-MAM2ed`T`N0|K2K)U+jCtk!qo_-2tHlS;dew?5n2c2{S>6|fR z@4+4SJ%+f1D1RWKHhu{Mf?9o=wQ9q<)ogQP{2MP|`uAV4Z$KDP-_Bf)sMrW3H*U=B zYa7;YsPhc{73nIl{uLyHQOSL;k3RHwy!-x}nEKUZC~a%0qZNC0?Sjp2m(kKyJXe=)Kf2JVhpV)-6lJAl{By4G z97lSedf{c5lu8^qeH!n){yK_^iZ~#0;rz)FYu{{NkI1}vcuhTA3U=gJF81!)$>&SK zsK-WLOGY(TY0$P~CwA}3JzlI>x|G2RsgyJ~_XO@5djq<)%SMZ)sq7$Ad2Yk^U#QX& zN0%|nfXB;g>U6qs=JaW7T)&=!2K26y;u8KHjT0mpiBCvEd{QHp-E)P7D9Fp>a!8Vm zf`USvK6MJE#l>Wx_-Nik4a(=gg>seI}D%R91%Yk&RXl?iG-G@U55AvGQ-g9rHDDZhdkduRF z9(@pRz4;a<{O3K%@K&jDuB05LWu^R?Ub%Nr`l>p35e1gzv3J}H!ZQk00bfp>fNh(9 z=L~jqL@2HuaXkZgRepZrHz+6^Pdxhy2KVU+ol1p6M{;rO$YJ<=OwqqDzVB0l#3Cv> z26}<+4?72sDfma{pMWDzo;ZQRf&#uz1feFs)EC_*y$w2b>*X))|M>m4P+o4~;6nFK z?HPbis)DI_AIT$C!TkH3kI+87HD|&0>^+FGk`g(C=G$LM7HAI|r#8p#?OU;J=T0pA zZ7JscGL!E<0!yP3O#*4+PA5L62D#6-_I0LneCwU}!Qlopf)}5CJRXM#f3R!JCLaousxH8iF=qwqG!T8rZ zAEINs3|uNmrGK9S{m@x9o69l!=Gzex90cl~`hCM%%=qy;E~BSSyZ_ODNE216$e9vtGTZXA z(6jH@wiQQ@9OeBhEG)pxAHD^(ty@H3z>wjrDk?|Y0VgBUfyy45SO zc>b@@Yov_kz-vc9sO@=a*1kuY-jR1U4|#cK`Hmo9Ted0XS8`>Ms0grTmF`Rtd?$Ih z8p+E#lLCl2dv-C<8}UMCvYgH)lyEqmXw^CsPyh4ZXx=1&o##Ubj=^j$s~Fo=%NeG2 z%O=fQ^5+po5&@z*2{g^&L_vN&PMFrOYDpKku|&TTtz>f|X7 ze1Z|uDS$40r^D&Oi?6+h8*aT3!9iLaK6nDTCvvNn^!smTk2HqT>wxI7!fv%=?B5^4 z$T6eg6~MMZz)BR(!fUGBMZSs_j|{p;fla!52tbc)Xy1vTYEP~Za5=e$`_2D+fzF-V z@me0-cZ~I9ZA5_*Y8{z0;axob;Jx_v%dfF;_H+iJqaXy?<4Tz$`mEZjg{sJbm+m96 zf?uZ#XYv`OQP8ay|>Pw^q2MijWQql!8|JT`=Hf1u3iwYQ6#bi?Am+8~+z++FM zMM@Kxv|4oP(hVQ~=ObD9irfR96rae7&F*w!^Y7~zl|Cf2_L5Nnl9TQgw47~_=A0`b zb%!}>yq+#3yPcx%UcTID4cm2W&!Bt0dt>jeZ7`RVA}m~w@bECd+Ak|B=00oE0|K7dWwS6n2K=bgfN;S3grxLRn?|$?VlH=nzTlw9Tudr_Q zYD7eaUoe-V?3Vl9MM&{Vw;CD9{&!5NTew0z9Y+Xo52>*@@ znT=~#qg(f`$j-<_xx>!Y6k9iKko(G10nzL)l;_GsdrnRY8CkT)l<}Y`4%dww#Ref= zDl3=&hLUsVpw_6_Nlb2>f<_5(T;)P2+2fvl0U23Y?2xZoz6^^O%tOweom{4PF_FaT zd~(J`ln?@>KZ`s^IU~C*`VSn)eA3CJ0G-uZE(K~JmFUs?ULXGf8pp>Vuf&X*KYowl zqejE13$OHTHRY`#ypkMHAV8t0I9IfK+O>sAOUTll zk=eE_4(!W;UazaPu3oODadW%PEPOovT|D;GvuM_$Nv&%|RScBHAwWh!{tTKBKvg2) z;gJjwxOx40mLGB|RH~XFdIWx$p4}E5+huWiIt5<8{`^x!$Hw8FyYFH>G+^*BF8il| zXXRc?sskY%Q&?PrNuN!`vc(JV?|1);n5Znt*_UNSlo7R$A3K8Et{)~j;5xlDQ9vh+ zaic6}^Ok8`9?#h=yA2MTv(~98Bv=s)OM z4&W0;iqCNp<;*N)r%vS;VA{9e;j2lXVD;78m6)D$T3X(=mY$| zel6B+*u>dyR5}y2IT>{P%FSl<=-n56d-a5c$66`y)x?h(A-i4rbDWhOJ@$4i_;nV` zq7UCjlxM(G`(06S8K!;zJ*Iv01^)TkJ7|>Hhcoe&zn_Q#_9>~&{DBTa0VjJ!kbyO+ z!YrjpDz6AlilHhKx?ckI`um7R@P&niaSIj|Qdk^rtXQ%L2lwyA4Y%F_lSzwatT6OT_~VVQxcS1sQ{Kaa;mwNN4z+5+T(SzPVdpTKTlq8yS!ZH zOm^ZmLx(YVYF670Trs(8+h#v9IaS(}loVn8+KsrTXD6gIO+~)}gE42;bbfBqS!4_l z#^Rcl%TZQ(jsXU%9H>fv7EsYI?wh1RXD2K?9Q_9kMRaTgZxEFrQ#+2JkXsfgs23WJ zg5pw4{qk#UShEtZyfq#Xk--x1Ts2vvwMtHI%=aDX8*%`9^}7b6#*F2=`pBV!+`7l&j^+7({rv` zxgM`R_Y|)C+i3jb$;V_MH<9s!Aj`0CRjBGBEh8O&zxN>y*zDeW5IeVS#*h&=pax8y z!iOeO^;}8G7rX2rD|lV0>Wo?s$WEgIr<|i_7z|LOmE@Z27pf>IE-lBRdB0-(>o4H@ zIV)jIN~|G6bO)1De;{Wka&~RQ%xP1g*Xz0MAhmf6`VSt#m>INZi%$Y{s3>j4($y77MQVrAXxPWdIdBj^e)BbU@7#i)<}8G@mY4!z zKCN1|0Kd(f%_Hh4xJfMzO0^nprxS4r@oWnai&mG&z{&p~>8gW%g~?}NNi!g+k8U__ zz5Ooq9x#}lngl34lsh>YsI{4zvFNS6lB&9=BCqeTF=Y|fEzFqIV-9A(We z_1HH;o@~)Fje(K42U(-Ru)){*f8V8jNB$wy{AVA(pAS4Ko}$7MY~HjUsf|;i76hbc zw?lTjH0;mGfl4J{?CtmXfi_mGUxOW6euv&rw_zX%G}oNK<5V0?QfNWtK~bb2 zUwrKy9(Mysb00}I2zWW%cgpAvsefl6st;U*7>+$9*&mxE}5O3`f;`8(B zk$IJ#m9C9ZW5yseJDb;^&x%rkgoH%2>(GJMXVcDYc=MHKpisCZW3Tcu3DTMB)VUq{ z^dHF1T+WFTnEcUrK9>}PxllKf_CchGyv!v91Max*KJ*?qfY(zx7hYtwZO1@wbV1Hr zFc*_Qeh)g0z)pNjbOc|#Zu$I=7=1lPTz?~yBBjcalSSw7!?bVl^=BXBH9Sdg9fatM7P)Ml6c|{gH^7z9T+`m6(lfL})KUlM38OGl6 zclnz{KHJjI#RWVGn?jJ0I|yx_T3Q}`>RCozR>?DQ8QY;tH?(Y)%1bfr$7xtN_a|xO zp6Hh50IMWWNy;)cY1RTyKm8&)^cjHYups1>mf`aW|HYC8GdKWDdl85zvomD)EeHt- z<}%lnzyFRsJ2%2wZozY}z5#7)B+^0e9|uq9C)(2@WrPe z;)8cyh1XLREuS2Sh|nN(?a_y?%aYy2M=NP^l#96z#xPK zY1jel-m^Q_ul51liBKsigLxJcKYRzPmoLVOB})(+A6tRuFJqlZYb@zbof!Fm+Csq}dRjvU;HRZC5H;>oAr zQmD|eeI`;<8>6`3l>9k#Ht2@aVB&{wV&Cpv`1O}xkklxFE75%4FY)T|f4AtibAXf{ ziB`^9UMk&^>5#fca|Y&8fW>UZT@O5rsOTup{O&)Ni$!yPLP353Pr_;2HXR`$MhqKu zJytJYj;LrKNH9=bcpC5i`x$6oc@wR(JK?3*-$mbnLl7AigRcMA-g$sWQFVR%KbuYO zg+M|L9Rf)pBtU@Bd#}=@sEF9b-a$|)O0i+X28alXfKsG4>Am+(5=uh)rtI$boHMhV zO|qdSe(>V?y>A{h*`2v_=gysb?m6dw8iupj+_L3=;`g~Tk(-lVX!D5PM;2q0K1*U{ z?|(GaY8=r#MCHwzHgCh8`lQ4gnDFjs7}64XQ`14oMMi2OzL+u|M-K1D!rvC5X|u+h zV{N@gUPl z(gjJ!k&N3XpL-dJ*RJyWg3BB_IU}}ZTa+aaZVoVO<_xS{`Wu{`$iO%7T4cpv3$XCl zpRjb%Je)cmhoO&+uz40>q1<=egmI>{2q=T+{f=&n&&by z(=q$I&pDlJ)$)ZLUB!``H(7Y_J#o;h>8EBho_~EDm(dHW7r}3w%^TL^-B+JxPrSVf zFYLX~1)8;NhY3@h;q2_n>pc1_r7|^W7zG2BZHvE(X%pVkD#hsG04Tq#I1EpxdiwAO3Gzz@IvQ z0o(rB41<9Ll1j#VUbR{cHY^m)Q=5{K!iyMaVN~AUKIqxEGcP)A>yXnTi(aVfSFga~ zg9qX4Tr!IC7AUH^Vn`L&+y0~QNg)&!?AhO zPWXE3@bDue^Nkn}4>w*g-u?5CtNp;b>CvTq2Y`MGKx5(J<;$4*(T9k?l)!4L^k#B* zbHYCxw`217xA5cqKjH1_hE`3R@|Su1WMyI5pNsI%#+?WVaN*jy`3jqBAf^jTWQretQa=XUq@UA*~0HR$v86NSfT=U~8)p$G{I;_v+M)u-%*aC0T? z1v|>Lw``+Hjj+)AlU{ngI(07eIg=J^5tk5;FQ!gH+{FZr*f8gs5ELB51{aMF|5By! z%o9)XwVp{xK-toz5$x}Wm!5tWK3<-9{kbQ2@mn0d2gMQz2`m)ulkeqS@Z8~;?hl>+xSFeiklRv@Xz1un0 z^G<~VZQE&L6?9kh>)x%%cAmR%0bfr42-mJ$g_oBTkDv6^EJQ~|;OQ4%gPXGxb{#%~ zDIbhSY|G{aj*_byVz^5KU6tHYk7NeCeZ4TSZ=XU(GibUR6y-5}(tFw%Hx_!HbF*?- z{HIs1UOW~^0PpOXGhC5^Hzt(aA~!^7CeJoxW5}bU*to+vX}y$_m4VqaKL=G|^YV6t8;jA|o{Pr3S?eza#++PKtyT@? zDyVt{wB9_Oa2<#D?_oWP;NU>GxjEw57hlA+gp2t4vuRu(*rKeQo1KN4wQ8eppFT*T zg}NSCIPXUeK|OYOFZLfefbfVgxVX_`y$y~W*rkT5D(WV2;z@kMpOGW761H*_d&6cZ8!p zZ=`V454RcG*dReCN9^7C4>qn@!y&|8?s?Bf-hDUOjHmoiA5&yN?}0;Ed7T7R=gj_Uq8c`e;&DKtoPmLU$jDIh|LI+@df8(1?B5^RW}s!e&iLiWFL3nOMO3L=29G@P zoK?4gW>zX;tJC`PPEn&eOzfZ`WqG>BvnMIa@;LY3o*i2dTDLBooOEc`qBUxTR>S3s zr>!L{X*|+cTC#XCYKKL`)zuN*yR_q$kingtl*}TLmoHsr#c=RFxAmImwV5(l>Nf~S zv*>W^Xwibbk)EZ_u}c>%z~TkJ!qd~4?~jvShxkk9Fm2*E-Z1cXxA#ot=6j}cbFw)- zg`z3Rkwceq>})*Fojr-Lh-elytx~xn-uYlE;x3)$C^1z$Q9ULtE4{otF>qjCHT}ot zhs4HcxKLWe_g_wdF_$9K)J+M}sQBTlX{_K*k*n^`uoGdHKa8FtM@GHyCc56vya|?1DP3F@bGkl`3?h5>Dq>kcn$#`I;7^PqH&wot;flu2jT2ev?dAlZ)C$r zG;0)@&zj1HDvU>^^gf$15!?USWEHa`0oxs0H)7R_KjEO$@tjkzRBBOJ^6|+gqG;PE zN575%4-aDDM$(O4y?hZ4?%M+=XZyAMA7m@N_*R>6SI|T2>*tH}XHQ|)oFB1m_YT$Q zifw^83s)dCJd#UP-7d7ld*R$!{Qk!R?AW`Dk5xY`0>3R?hc+ELawv64c&#l9XG{34 zZHWoW1EP?xSKk?jvF}a5yYEltpLfPj!q{;W@%lUOb3NHCL-ETL6@sP!XSe^&|Q{ z)SU&msKXEL--`|ZY~U7D2?@bhKm3fj3+7?X)&uC=r3Z5IonO&Hu!{SmV%CfsOR#>H zP20J2jjt~zfBFqZKKHzq<3x2iv(V?E9vCxWD%_o&dC7I~*irVHry2~bRz2dW=P~-# z7m$%|D6zIGnt_vP=Lc+PI%DAAq4;Fxk8t<&);5#!j+35|ic&;Dy)TK(%sZ`98cgdL&ZQatbMd)92M(`H~r@JL3ULiHHhoS!zCef(V5 zLw(D(7WkphC*Lrj_n?7zf9kjJ^Yel$g{vPrf~g<81(Pw8y-5YXmyuz_fFUDU{h0cA z-@ya;>yLTxa8o!9WciZ$)*94NG0jmaq>`rNp?;sdc;s#L^eQYqXRqC6t*=OYt|&$M zn_VaUzjC!&s2Ng@jfl8}MC{qQg*|~J&b4Xn3jQ`3S5$VZbWmCC-Imv0+NhyEF1o#W zed@yATJ>{u4x_b#hWZ)Xg+7l&pa6?zy955{r=03 zICt(cf11XAul_@jo~HG=qQgHMS7XnPT`(#@?XWO>KYt~@|9KwfEMAYWdUauGB1hMe zm9O00JV4bC8a8Q)nzh6EST~Y0@z=s%cs#qfDwscKCazw+&hsc$AZgyZ4Kg$Go(Jl; zeuE#y^DjKln;i70Y~OtlyZ0R8Q&739NuPd+wjDch9hBZICAh1u3x!|8Plhs zcZVhz{lp+V+^Z#TNYXhg1o@yt*S_q?vdx)h!7`fLGl3+VcBU9qMi1@P?6tLtgMP<@TG*szGcv z8Z=LT!4UWSeQN1fx(>Q$&0Dp=w{!nOjoNipfk4gSMf19sw})2J_x9KC)D~agQdqxw z8D{-F7grLlLFed%;Uk~M#7}>)df4sWEk)hrNHW;8*FY&eY7-nBoVk+3TjQr_IrC=g zyTIMu-KzY4C$O$fPA*0~{R-Y5^B#0Mb+cpl&RzIq@>qCydf9!?Kj?^oevhC~mDH3J z%=qLZy!PT#7}BQ;)~{Q|`6w-7V({1#&%oKmkwZRi2XAj@%$PnI&yE_7e%;z(>f{gL z;p&2#l|wM*gO6AtG$-fg!gIHRUIvs8W+?%pXW={deDelPD735QNO_SC4y-8dtk?5T zN!4Mu2YKYroH~IYzxx_v-*^cNfBhLL$;rH+yOEfJ1#@R1{%Qh$)5pgbG0kFO$WlWV zDGFfKvL)7|HjQnC%2g_JjYc#PI$&dh7`2Nk`TV!`tI0p=Ry6s$ffEBHnxZ73|u-hiCR$ zRjQ$1?|!ITvo;d0B;Z=&HEZrV2}hMwDuG^8Kp*qQ%cxVOG-B#i#SE(8g5ZPO_9@7@;U-+meC1_LUUE`w1o zyov^mo3JQSNkIFiFx>-46iB=lO>x*r^}PQ46R2Oc3}Wk5L-Tqy(4lF4JpOQB9N51X zp3W|as8tJ3jeZ>wkE?qc{UuJ!WKjzO>z3Z+nXwSpHH;eCA3L^hgO7(Bs#U3i52k*FQh{ZVldYgfpNG)5XCJ=bpG^J$ z#||Hae}JbNB5nhPS9(y*$`Tk0BsLXy=^`E<)B}xbl|#$OYG~P@IyyItz>`D!u~=X! zUoS*P*2maMpK<+tqs==(^*&IUwN-fi#V0YecUOEqrW>k{&E~2EhxAw8pbq3mO;yNG?}>H`wf1C z%ifWo*xtQ+coE&WSqoLSf#!2-6;WLeG8=^9HPw4%oG03(8lh%wErijT`ZCFUDWz zO&o7uA9U%dmRc(M+(oy8K1Uh?W^GYH;l8w{uoo?^@OVw*G`U+{TDHNA2907-qe2-D zcc%7{$XQIYR%jC2l0)iAIE#icz0(^uZN(c3TwzA1Lvm6g#=iOt4(&U{b-%;w)+G3`u3if5V``#Z;~MDHEEI!#w#L_=PUh0G<;n+Pz|awR z>CK5&fmg-4IdOYXTFbYee}uukTA@pea7>^04ie(d;o6mW?A^5uKh6A%z40`nA|e}c z)gasXi^d2E4nH-#H=0LQLc5rn=-4b2z1l_N#V3bw8lb0_8)93<;*D|B;a{o@8-LL9 zx^D-I_x!E#)8Xagg2cp3%$xHAt|nYXV3|NTYTjHkw@1%4%qb|eVDt<$Q8vm8Z{MUg z|Fny#g|4mYVL;aw_YtKK1 zp}pJU!0w$0D(#0p1BPPgh-d8D77Evs2Y&x`7NTpGv9`HKn_Cq(Toi&0D#eXoJFG)gJc5pyQ*|MnDpdo73QfrZu`Z$HRr=}X==YR8h!Z(BWaFzU%;>C*>S?td; z5nsBPfW3S6BIQO3=FVRXMXyI_)#|7p)euJyALNal-P^aJOPeMb`q(J+>@$EjL;hH} z0DE_D$4~PXS&w}s{xTbJB~{Rl7CDzMU&Q${SK#HNiFQyJ-p+l9i@S)gfBF^GD^`Y| zj}Q6}dmNh{AB9d`V-Q+5f6O;<{;A#i7i9`lvr7BdTw4-$+ zie60gA}Og&CTdM~u8{@v&Ywwur}uUB4`xyg-h-nD_hZ(=<)~IE1i?XN(4|)&tlzjD zXHT7ABiYy84atTq967L`b55z86g_V{wroWIhllZ@N|i1RFE2M1m&?nSD<1Ux(#BVk zCIAOkY`>1vC(p3Lab&|7ln)MqmzxWh`kOIr0>8l1(z0MOX7K#v>E&o0?`CANxS>JY z0Px|GIwjFg6N}L$B__ei*^%2w96fRp7tf!;_rLyyGJyf`_xC}YPTjC_=^_jm{sfGQ zT2Hu5$L?s>vb|bA-OEcY&q!_e^ul*@m*DitV|e9R@=mAN&E>mY6ixK(^2PJGc>WSx z-SS?^yLas4vU4AQ`4fUmmqLZgRnfdn2QKwRx!+lu2gcdOa?NHAC!O`p=XhxFqi`-4 zjH)$jp;d=2`0k6Z;O&#YQMp_v+Yi-4!#LcU?BMFPLos*pDz#zSeK2b2l&L!4p&^fA z(fprrH@)fysyH&DM)-SzH$`(nZ;Uvr5rx=Y7T zp2d^H`r_E({YCagYDx|U4jYKdm8)|2HtiMACRB^I?X3Mv{a~p(PaSN)b~#v`eOv-qO3Ba6ZDv2;3|Ja$O!pB!-cRlk7J zICcEE^{5m;K>~3!SCC*IiB?+1*}k1SI86G(X*1#L=Ya+d8=+J8e)#H>kJ)p6+xI5R zfL86h^E!e0p2E7@cItu7JqL0-t5#RFCn${|CblJhoc9N|ZC;NbzM86ST-c0H1xQXw z!lesm^PPjn^!~luk)4%;SI3M&ayBqv$OtU`;};x1a*(6t?x0Kg*(LA0C5nJb5z@Pt z97Fr}?8Vm2>(DqRis!}F?YiOXPbL+P>(a`pUB8lmi{}%Nk)C2b2jz($J-C-QsM~dD z!)v&1y#`^?{5ia)z8fs!fsa1*GG2N6UG;f%1`h2zg2x~3&gnn2j<@Gx_%GP&`jQVe zzPA)dv-;nL7LAb&qfxGWMSfu%I1r?rqrS} ziuGZrT_+4>g3F>zsX!b)au|De@3Q80r=_IulV;LhdcOVv{PHgjG!fHo@t&RA(7JVd z?&lUQ+oD{BN;rA^G`zfA5Fd9LW8Zw8Zvt&vMnu*@*Y17TK>xR(-9~zdn>KHZN);-? z#myDFckjfZ{d;(ULoaCB;k494rUl~Jv!`HL`_OfrJb4_ucke)>s7BmpZ@o8xL$-(|(Tr!e}GhI6wN+nrq-Xj;zo+9F9alR7$(O}4B@0_I~0O=Q~3$wdvuYI*~Y9_VWnwp{LaOIj>&dCBP4*U4| z;qrwvKyPLhT@tZs(j=D0!uf;*uFnp0ar)AJ8}0U|vmQqdA4gK+btsiWSX_-fCB%uN zhuLV;p$v=TczSxPFJ#M0+QzzNVLU}wLhUZlX02aU6g9v1`c<4ga}pt>cn_dbi`gi6EYYVEezgS1Ja*g0qM+o>Lvyf5*WFLFD}1qN_CL#k9| zVKYxpPxj=K_FMfrq1FWe=L%{@D&@dNhSugWLknXyI^j;|g(Aj*uHZNTjvqb9n@Z(M zmx7btk>4G(2^khq3n5i%!qeNE7cu{ASjBna4Zf)jpeQR*jmv^`lX{ZUheQ z+r|B3|6bU;hP>aC!hXkY-7x91nQ-^?;1K$~hYsMm5kqk7&|XbdyYO{eo<*t`T*}8C zso8+1Ghi>3lx|NNZLa44J$m)S{Mp~Ku~m5U$6g0nbW`Gy<>ZXlB zQkkw?wlrd5+hEnQ73z8`CmV)L66H$6tZzQUj42=Um^1R`T^o?*Zib0UogQJqS@pTS zlQ~O4M!FHT>()bbg9e<_PMcMBrGgyQG_o`U5K^u**N>)>mUOzxRcr7#rvg2f&YwkE zYBJAdoqjnhl14{Gn&!0Vsgt*Jvri+=&>p?TbDN4X(vXqLnH)kp~YbOPI zM+clab(}Z(eBi;AjY^d&4RsHt=<6=jRuXg5sZJhBYb+D&hjL}x=H+AOs+&9XLn4S_ zRmyTy81Hk;EG}H+!zk1?Q#*j0e(#uGVYL z9|rhudTwvGO;m1Z+{9^U65W`8_s#d;;)zE_z?%e$GJvQ?P1u`DQ)7JGMO?iSr#>Wl z2e^B9T0@Db#1(n5`wbe3M@K#b4@XBVS+*2|`*h)4E1HbU1P8;Yb9{n2LdG$pkC#8b4CmbCW7N#SoU2KciJVE@My|0D?nK0tX z=g_lj5B}ZXYgS`$-_A%$&fn{%szbL^a}< zcEz>a410U(xX)8fB&y!L)JIZPR(obw`V>D>gIPY_*X}EqZ2|B$q3%!_Ngtt!s zhwKw1hLV<^35CRFZc*Cj=4~|Pzc%(*WFjL6$SKgDUAuMQjW5d>Ou3QDUXsgk*SWl! zscJQN=p9fiES$fW!O@cTZ2a=oEBp6N{}IH^M=0f~$)YYSpc$ zmIX6|%X{f)zPQ6Npte(QUByu3NJ>gNlF|Uj47KHbWl&t-wkHV|JOp=wThq8(aCZwD zAi>>f+zA>a1lM4V26wmM?lkW1PEY^u%)9s1`!rSaak|c@uG(jpAXqMICs3% zcmoA^96Ha0z}V!gRU)mvGoyVoN$9-;wC6SE%SB01N(Y+T->zLeHd^m$EP$pPK$n~b z0J4d;@O=Da4E8cjnAY?YrXQ|Yh78qaQ1Opa1*TZ?jg$nEzb9&E3RweYWRlppZQhaRi6A#P-wxe5H-rBZ@)q93~=q+)Bm? zSdGG9@}^bsrh@&JPOBAWI!TqPn0`j~5mpdPn4jzXkS-&S9Sk$;Vx$u#t>(v|Y2 z;8z?kOdo0BCQ-v#HhqsH8QS!N8q=<=ZQCh2I(Eb3%}xog%`7>$goQKNEsR~0dzSO@ z9V%0BzKqJ|^0vJo94 z=_B?(eN;>B5l9kiXPP`;sT9rI=yYwG2Ya9Oc=$4|Fs%2<(6C%Co66 zqtNz%Jzeb3mOf`=yHSOjF|`-983uVQUWeAJ4U1wD?AQ!jPP%Ac#I=!o)W8Cv`1ttm z%EC{jO9+^_O7&=aV_AEkrz*RK#pszCSDKuV?Kb^=fb{zs$n#uC>NT;ql-Kd2Fv>4rX2Tc| zajm{~(vg~R^j5L8X~%eo>;)-q{hFJ2uEc6F!}K?UJIf`NZ$BzUcGA;;(kp76jrOL} z3+vw4msRi%3v7ltjexybOX?<+zF-7&r@dR6yz7$0XgyY@^2 zkNY0Am>XlSIrEKcVh;f6b7tce5@kX}vusF}?c7;fgDRPV;c{D$?h+h&m?oWo(A~9V zmMX~rSD%epzu9XBg<65N7VFy2d;t8s9VEhKo1GOKSRXXYoNV&2rZAanNG~!_wLz`Q z_?rX&r5&!N9`-TfTz|+dwv3s{AHCpgw6yrmtSzM6tt}Ydp5~kBRoLwQTph9swq}pp zQZz-C)2h5?nI=Y@@FN4T-3o!_b7R026i{HB^L^D0(wJ-`*TUD*Ni`|K9rz3IImDkD zE}*~nDN(d8%oS`lpJ#!(4`i3Sx%Vys3c)^M1-L>+mr_c8EoS8whCw9lnBQxmw zI8aSR#Gzc`Wp7ie(Or0_0zuH0*wVMei6$(OI!xpd0fyTNYqDq8~-V)lRrg_ai#RXI81g-GGlGdc_Lz^ z#l+wmE`!! zu&M7vqGiFn75nNGS%b}O3YpJslLodv4&wpnQ%f*gaX&p#sxYrpc%&MFUoI)>Qwo+A^o1EigGgs&obi*ojzyqy=CuLfJxi zW3iY9n0tQ*$jw4mqoYapNe#}Z7Gj53!M^fLlWzh8Juk|gGI+-))eL$dC~pehzMpMG z5o&F_ZyFmM={1hRuK_(t*85fft+6@d>8 zsL;FMHCPqCYCGlREE#iS>82*BrX&Y6c4XYLx2K3;j440FoF3catQFypntEazRDPlv z(kY9j4#(WZ+S#5wOakTw;O`#h&3|vJAqqpEBYby#Wun%ry!y1czmc!odae_~3$xQ1 zP=p0eM3x zc%XrwqtT-cry{fd>jCY2FK?}}opY4mipa`xqL{YZMq5I!BF*OE5lv+SwkBC2fPoO4 zIp=lfHxAUOA8LG&(R(r|I%Fme3Mr5`x$4twSx{2 zFj-XLB%7kL(jG(kLx(Eh;29_u{K@W0W4s+s#sYZ;y*yk18)G47vw3>XCB4pNS!7&K zpF3D#uXx~6l)&totWue1?dZM65 z67!is=OaSfBi6Sa>!rrm(_t09-bDkk-~gUlVqUwzQ2$DEEO*bgW=qm#@*mk zBhSarZls0gf0Rd;w3sK`#wGUWEa0l6t^HodPL_WpBy=GypX6p`PZ3zpmc)?1Al0ag z@aOu!Zs;p!a~Wyuj@!^nsi+GIy4l5zu;eI@f{Ss;V_@5!FbUUHS$W0q^l-sE*q2-J z-dblIXU8^&6|m!mJSYg>%k1(z9;eZh9n+k{*_CJ54_WsNLu#N_sHCO9{ zqm-qm;S6SZ4~zoodUw1OID-x^co@BOVdp0^-oA-0EXy(US2E-A1a+*Kscqf zf`1w^G#^SvNcgwMvzh~bGAH-U_9y^?%>&Cckq6$={Rn=nnBni4>_Z91B>$3YV#Mo+ zqC(9KW4&-}|FM9<-KfhDpnH!$Q$#L=$-R@12C?;dkeD*T>auQ%DIz^nAFXfRI#3`a zvj(Ru;Aep4hxQb-%fwf9&>S0kGzIj+4Li~T;JrOy<&)2Od7Z3`+iPMFdF6OSCk(?h zYzep)Kfu2Cg{a(KE%R4TMyKrBu{nW%aZ~+*+;H8^p_WHk&z3qrqMdj>^V|)*-8hLH z6^*K&aB-=@HmDbp?zj+70uAZr|&Fg~`$bl-7fDfK*|203R`6YL{Uh4Fp;K z7u@KCTuC0!Z`*t|;b{a(jQuXLSq-Dj0<$*7vAB0S+n;t7NR24eWB`9B>!obCY**0b z<|{AI!a^2&xVG4Iys>OoZ?WoMYTmF`(2_D$FgQB7^&X$K%d`!K5zhFth0|jk&r=w- z+y#Z#;E3+mlIpj)(-ta`BYR*K`2ew(g!nvmx%`aJ(ZbNxU5HD5mV_xjzaH7Pd(cj6 z_JM3o_t#CN{N_Fg32xOKEVO%}?ctJ%IwNHJJ|JfKZOXkq?dw1~s|KX0*x25mE=fKt z=ZRLC*AZXpeee=U{=U-p7lmxOAsBvX@x>t4J=ue*v-RPuk1$n?C6C*nW{(+pO0rBI6WbiS|D>S$x**FcWNl*>q{F zd6N&)8k|-rVZa~D;2-r$u2>Av?OPbJkC3j0ajlyQ07&c` z+F$s+t#D&jvaMh(&jB<&)8kULDNVgP^_?hk$o3frE0biWreUirDO1Ey1T&+ckj7Md zz38zR*1n62CVd0ri3$l=;|kpE|CKf?fuj)77B}Ufi=*htvh?u4I%3eE9#JF(8vz*L z7?Y?HGkdIrUf;BbrloyjTR#u8KMW7O^m*OB0&X?M_e8a0@j&g-h&Vb%Uf+}p zxJo7#%fgP2`t-NxHz(D`9cP0&#fh01aJ3KbEi-K z{%7K7N|8VG>P(52+zyb89e6d-OQLTxTQ-iy3%e&_*5#&sJ;fUW5|(NaYhyOOOm zZu=k+78d}K3un?|rWDG1!&9OEts%}%gUa3m{jk=CLEbZxsqM#MM`F}l9mIuN8?1VJ z$UEamQidPo>&F=}J5kV1iQq75h6Re*(j-Vq(k&Z z?Vi}pw}+T2KrA7cswd&)ej*H0SgQxw4w{0ryVcQlcF&vp|8IiJ&Ry4TrR zk%g*wdQ7HS;pvV%BrcA+NKFrnt{bZq4lw@nAuP_P8{}T2?VMESTrJ0kCEMr>FA8OY zpZ~ClhLVVXtYaAHSMZdUloXNefByl4gjdQjl#>;CEJy7@qobp_08qt1 zIj2bknOA6xD{7lUt2+izRQRnKy`qHWiNLv|hm7o^vk>Jp2WOSXnGp1`2PWtKty&<@_ zJsfBiVm%<<{{pWceteAH`ZDB_;k{aCVXUPDnM5f`C2Gt{iJ<7n49qt7`)gDe1Ot9E zCOG^yeM$SdztYYLT(^4EYq013P-)m^gN?3_E432o=WeDB`R%K|FWsE$v~ip*|*A&oIJRc!$&c{Vn73i728{NPpBV88p7&2F;dEvupg zpxV0}`xuBz-)1y=^Jm!z2bzL`06t?etNH0hM8!5+*(y-#)Ypn z#Of8CB=L?rOd{Dlh#gP?m1*sX3qsvCA4VAZOi2iOX!Gvfd3Z-9ulxgudfBqO@80JA zI{*9qLlMPg=qrSgOJ_>AAT*8mG^Ha~Nc!OAi}q1@JMWFz^ZAL+O3{q6H=12D7MIS1 zlZopWv!D2nG_5+MQvNs%-0=MdGTe6%_Z8;kJHj2?-OZ(+Husl_CAw@L_1qchR0tv< ze-@HfvS!!7^cH%iWI&IM+~`Q(P4AKCQ^DS!-Lr27kNxf+l_tftz*-gs`?$e@J>F1* z#(>I6h-a?U-uEq;KYp`o5yfhFR!!z1QZq7QC1M6GX*mGd__O=kH!|bO_JKnmuTOK{ z8(1%U;}qqXTiQVsOALiW1{|cNd0>{pp*mS)p)e<#OH%1{DkU@h?r~rMRG5D``b3}i zLdY5@9#P>j8`yrzRj_*SIapLk z1&8pEh@gD#=fyI-cPleWeI~GD!yHs+x`>|?-YjP z6tnKroq(2QWF9f9J^H?@5W)D%1<6bnANKt8C=6JK+O;!m20hJ8VSk~nKzL7#Kg3Ab z4*5hHsmQ1%I{Ji&GtmCm?BzB@!j6hgkuEkNPd!DB=x{-|`YQ%(wx7EkxN1m@27(8x zH^-$StTZX)KAX>=Lwf)N3x~Rwwdb3q&L;PMF~uf~k+%azr)A>%jcYaSZj~XAcr2UWaQ~ZB6z3A&?^cl|6Z#8G)B=O1W0kUd8*G)q zIWqbhl%GsGQZN|6GgadUig1`Sz}05#C6ondq3+|bRzQLULLFYNb?3$hW{eA7C69hj z=(9CE50jG2lgWN9HYgAnLO?9R`Rb1EU1-S*I@nyhYIXF`P1qVc3;k|PSL;|#Ks0Jf zSIg-9WzD|y(zOe*VDwim-~P;Zg>*#@4i0%mxnFe0@*lPM5TcAIZ&e%Z?FCpfM2BgU zW&H#CgZ0XkLJ@3NTAyLwIRuhYGF@wH*|Xri@uyJX(yw9+eYglA$s`JB6%mg&bu$Rw z{Ql-fT+`#P!YxkJjB?zycJ#_Msq}LKCMK4UW^U`5vOY9`-jCPED^i%7RM3F?pC!ex zI-@wfTsKXL;dXU2;GtE#-}RtLJ2I)EnN3p4=*sI-Ztin;K?jA1C!Cy|T%QW|#!{~l zjAtYj9~Y1}i{0*i!xRoA<^b4@KoO%h7K*JnxvcPqjf|E)88?9N<|>}kq2?D8_{e7V zm@-3}WrU{Oq$i)yR+DCMVVIF<-acLK_D(`dpyfdhWpBN0-`#igj%j-3FN+C%jjk6# zhh8ni1gu^#C`f5wn%iL&?~0Kh6H3wKiX^r|ZI`SXwh%95JENcU=1~qKMdVj}au|$E zdbPQ4ziiDz^!YfZ75O$qaF+ecHlo?)%@GToymTV1A@doZxe-F>Z0R`n(BDp~t?O)z zql>G!wW~WcKjbua$pZ#W|3!7>h|B22#Kb6r^B>sy`PvNGQLzf-_nFHLRe@i8{RTOU z=c&OaW<2B!9zIW^&?@;32s_mD$CA=G(dZ;Dk0KJ1*ZuA3LLjX_%X(j4-+Atpn!HS? z{6{?_D}meNh1lNSUaD-leD-kRlEA=k3mUFB@^9VG7Gg6pSdN}m&XhrS(lc?p#YD~X z>AYpLy-B!Pl?QF|cSGt~UmU{YN5e~zGB(dGM%eD zxC(@^esnhO+iEkQ{TkiobZ~gw{juZsfCPV?D-edqBGc!o3{FhE8YS2^uPVy8Hs9y> zaChzs^c8e^+?Fekl-f8;85k1&F6 zRR6*t$7RCl{;uF^uU1J0=hsvLn03}>-sGbiag+i9u=6j@KwV5*H$J<}bM&=8DT| z8C5R!P&NB(tXO66xxb4A(YIGhv0{!`%ZWr*=XmsPzw`njCCCEc|h!&gS(e^T2Vqm*%krOCKycNl$oKDpQk%QHS4FHv&cDq-=|? z1Pfh>xU8qt-Q>TKRJl#-#ab5DPkR=80DWWD6t}N$d(Hj&7FiiF--SZh2Mz|Ukt}a^ zyO^A*RLwW#Hjs@Rm;>nFXP)N}9}dxTQW(Hz;#+a856T(~`NwKYGmdK%rqp;5;ywv2 zjZNjpiGKf^Sg4C}9fn=UXWN_;h-v2}W%^#zwCndl=MT$NDXSHHklJ~W>hjHwkO29Q zdZTz!R-oyOJPV(|K`p^xCO8Um&{rzxMWZZ^qf;mfzmt$^-T+DdGt z=2?9UfK;9|uRu4A+R?J~x=Cji(A*$jK_61gn>10>(`W($P*`+R=uykAgw0hs5Bt7u zGW(ZFwj3w@4=)NXRl;W(h&CXUx+{EN{i;#^C90ry4NLe#`{lHBjceE6QVI+W?3iU{ z0j(tFI1O>U2lkg_%QkP16!=!3$yI3(GsC;l>!5{Ah3g(8OXetm%aOE(vSN0V)O?K3 zNPZMkE1%Bf_4e`0@|B_tqRyGex!uPMi;cOYJh`8>iU9X$(ptrltI7PL9oWUh2e*fa z1kLzIb$XW$csAGRJC@e>rJ3HQSIi(*XS>IR#W4`&8mW4(FGIvmQ%y9ZjG%9BtlUjg z>#9iMlSk>3X=;(@hKdc&KzcOyqpdrSKSUiZZ4N6owjpi$vU|WvLPijm^mFv}F3Itn z#V37rrzcXDZg7*rhpjhCMug3>5P{Eb{h6xlcj1+)e?H;j}8F;9LvM8IB74t(D)n zlOVy4+Mk{^q<8ieE6&mBIy}I849Ld9t^lGQ6S|QAsaakFn3)#i{whMa|m73_7;xwr+1obPn`bEFgP+Kr7@s+Okvwe zD}STHOf(63B75=go0jXwq$w8fw*C4W_+ZC6HGMVH3fNfm@UZ3F1Jka`ZbA!>Q+uyn z$GCZHzzP4PK`B(cvT>+)JZ$RPHTvRsH~bMgdkg6*!E;fw=$OZj{F!kr!FZ$orjmcf#|rW$cZ4U%R@_Ulrqe8O`PX0(~Vq^ijpW zZBqEnu(uK&h__m|^(cw{j&=*sFl56X_1D}_`GoBy!}vfk_vFBy>L|elSq9U!c3<6Q zYrG-E}g6?gtIrsYEl zwWH7$G*A5Rb4T%sNeDnQ)@vG?{mr+*E#YZF`XTWZgj%0ue4RNm2I1VD!)W_cTo!6- za$3Gq+OX@PTM*z}W73cx!b!x!BYh=eQ(ERK_CddIN+l79euT@4L1$aWyY_Ze6?wSb zgBnz`5gqp-Olq&58QOYUK_5r$c!!BF zU>pW){Ea~}M8K>i?bCGm@RlMHE!Bih0~7PuNd^S^JcAi0^TUHU?OXb~688}|^-Ea= zYOL!4%6P!crd;?7)_L}2j=ricA1e;G^*rFur5rvBH?dTo!Fz;H|6CzZAcO2$*CdJ{ zPg#FD^6kg|X*6bJ3>kID&qJ@se{q~$4H%Fq@8ih?i#y1DaFWDq zolY>}61kT*hRVUO1{D|;{;N>1T6IG?G%27X4=xc|{P65_IIpMBcbFk_p}~_8cs*GG z%e5$$kE0fixgMRVRgaEiBMg_;qgvn%&)Gx1$zqgShgAgV(R}=Sbwuf@6{bKok4#oz zdIo7>=5hh`X|JvAG8f!1{BW**r7#=eSi!Rq1D>15XW)mmkI5M{T!`)YmvG*s;7L#N?Z+DV9qEa1$@lD_ap4wk|cH+e< zoo9uQ`PLXTb1?yvJvD>lYpmPs<3nRzvmrDz^hMO%wD642D%8&}TaJgC__4=v(j`+? z494siq8seMLI0)Te@#gLH28T(?B;gJHq7EzqjF#|MYoKE4fipFlz}esuwZQTll2MP z^X(vm>*pr)omkTDx=TFnf;%e7`4Mx5&q(`>vPR#{S%rpci)xm&=tH1QWJMvvKVBT zUkz5D*#4xVtlWJ{b`zhtgH(`1)spO*m0l`QmxfY|M-1D3geI$e7TW(O_kUf`trUlW zeV){HM=W#~G@9a*t*!9e%-GV<$Eb;5oiEbL74X&7*U+YfS<@V}|BM2rDAMt?I)p<_ zP0FA~b8Y{1yCBMy@QA>FmxuD*-5Zcv1kV5N-+x-zJI-?g@n7Bi&wm>tV&ek0|Gq73 zv_|iLiu=##{~op5H-PXznFl#iP$D(|x4_8%Bk=ziY6LDr`FEu5HW>$ec*FnmV8K#3 z + + 3 + + rtthread + + ARM + + 1 + + C-SPY + 2 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 1 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 1 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 1 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 1 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 1 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 1 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 1 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + + Release + + ARM + + 0 + + C-SPY + 2 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ARMSIM_ID + 2 + + 1 + 1 + 0 + + + + + + + + CADI_ID + 2 + + 0 + 1 + 0 + + + + + + + + + CMSISDAP_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GDBSERVER_ID + 2 + + 0 + 1 + 0 + + + + + + + + + + + IJET_ID + 2 + + 8 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + JLINK_ID + 2 + + 16 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + LMIFTDI_ID + 2 + + 2 + 1 + 0 + + + + + + + + + + PEMICRO_ID + 2 + + 3 + 1 + 0 + + + + + + + + STLINK_ID + 2 + + 4 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + THIRDPARTY_ID + 2 + + 0 + 1 + 0 + + + + + + + + TIFET_ID + 2 + + 1 + 1 + 0 + + + + + + + + + + + + + + + + + + + XDS100_ID + 2 + + 6 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin + 0 + + + $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin + 0 + + + $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin + 1 + + + $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin + 0 + + + $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin + 0 + + + + diff --git a/bsp/stm32/stm32f411-mini-system/project.ewp b/bsp/stm32/stm32f411-mini-system/project.ewp new file mode 100644 index 0000000000..62c7e09b99 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/project.ewp @@ -0,0 +1,2257 @@ + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 29 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 29 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 34 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 20 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + + Kernel + + $PROJ_DIR$\..\..\..\src\clock.c + + + $PROJ_DIR$\..\..\..\src\components.c + + + $PROJ_DIR$\..\..\..\src\cpu.c + + + $PROJ_DIR$\..\..\..\src\device.c + + + $PROJ_DIR$\..\..\..\src\idle.c + + + $PROJ_DIR$\..\..\..\src\ipc.c + + + $PROJ_DIR$\..\..\..\src\irq.c + + + $PROJ_DIR$\..\..\..\src\kservice.c + + + $PROJ_DIR$\..\..\..\src\mem.c + + + $PROJ_DIR$\..\..\..\src\mempool.c + + + $PROJ_DIR$\..\..\..\src\object.c + + + $PROJ_DIR$\..\..\..\src\scheduler.c + + + $PROJ_DIR$\..\..\..\src\signal.c + + + $PROJ_DIR$\..\..\..\src\thread.c + + + $PROJ_DIR$\..\..\..\src\timer.c + + + + Applications + + $PROJ_DIR$\applications\main.c + + + + Drivers + + $PROJ_DIR$\board\board.c + + + $PROJ_DIR$\board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\iar\startup_stm32f411xe.s + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_gpio.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_usart.c + + + $PROJ_DIR$\..\libraries\HAL_Drivers\drv_common.c + + + + cpu + + $PROJ_DIR$\..\..\..\libcpu\arm\common\backtrace.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\div0.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\common\showmem.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + $PROJ_DIR$\..\..\..\libcpu\arm\cortex-m4\context_iar.S + + + + DeviceDrivers + + $PROJ_DIR$\..\..\..\components\drivers\misc\pin.c + + + $PROJ_DIR$\..\..\..\components\drivers\serial\serial.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\completion.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\dataqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\pipe.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringblk_buf.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\ringbuffer.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\waitqueue.c + + + $PROJ_DIR$\..\..\..\components\drivers\src\workqueue.c + + + + finsh + + $PROJ_DIR$\..\..\..\components\finsh\shell.c + + + $PROJ_DIR$\..\..\..\components\finsh\cmd.c + + + $PROJ_DIR$\..\..\..\components\finsh\msh.c + + + + libc + + + STM32_HAL + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + $PROJ_DIR$\..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + diff --git a/bsp/stm32/stm32f411-mini-system/project.eww b/bsp/stm32/stm32f411-mini-system/project.eww new file mode 100644 index 0000000000..c2cb02eb1e --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/project.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\project.ewp + + + + + diff --git a/bsp/stm32/stm32f411-mini-system/project.uvopt b/bsp/stm32/stm32f411-mini-system/project.uvopt new file mode 100644 index 0000000000..b53d69d5df --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/project.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/project.uvoptx b/bsp/stm32/stm32f411-mini-system/project.uvoptx new file mode 100644 index 0000000000..6a1ea8c919 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/project.uvoptx @@ -0,0 +1,967 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + 0 + ST-LINKIII-KEIL_SWO + -U066CFF535155878281155143 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Kernel + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\..\..\src\clock.c + clock.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\..\..\src\components.c + components.c + 0 + 0 + + + 1 + 3 + 1 + 0 + 0 + 0 + ..\..\..\src\device.c + device.c + 0 + 0 + + + 1 + 4 + 1 + 0 + 0 + 0 + ..\..\..\src\idle.c + idle.c + 0 + 0 + + + 1 + 5 + 1 + 0 + 0 + 0 + ..\..\..\src\ipc.c + ipc.c + 0 + 0 + + + 1 + 6 + 1 + 0 + 0 + 0 + ..\..\..\src\irq.c + irq.c + 0 + 0 + + + 1 + 7 + 1 + 0 + 0 + 0 + ..\..\..\src\kservice.c + kservice.c + 0 + 0 + + + 1 + 8 + 1 + 0 + 0 + 0 + ..\..\..\src\mem.c + mem.c + 0 + 0 + + + 1 + 9 + 1 + 0 + 0 + 0 + ..\..\..\src\mempool.c + mempool.c + 0 + 0 + + + 1 + 10 + 1 + 0 + 0 + 0 + ..\..\..\src\object.c + object.c + 0 + 0 + + + 1 + 11 + 1 + 0 + 0 + 0 + ..\..\..\src\scheduler.c + scheduler.c + 0 + 0 + + + 1 + 12 + 1 + 0 + 0 + 0 + ..\..\..\src\signal.c + signal.c + 0 + 0 + + + 1 + 13 + 1 + 0 + 0 + 0 + ..\..\..\src\thread.c + thread.c + 0 + 0 + + + 1 + 14 + 1 + 0 + 0 + 0 + ..\..\..\src\timer.c + timer.c + 0 + 0 + + + + + Applications + 0 + 0 + 0 + 0 + + 2 + 15 + 1 + 0 + 0 + 0 + applications\main.c + main.c + 0 + 0 + + + + + Drivers + 0 + 0 + 0 + 0 + + 3 + 16 + 1 + 0 + 0 + 0 + board\board.c + board.c + 0 + 0 + + + 3 + 17 + 1 + 0 + 0 + 0 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + stm32f4xx_hal_msp.c + 0 + 0 + + + 3 + 18 + 2 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f411xe.s + startup_stm32f411xe.s + 0 + 0 + + + 3 + 19 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_gpio.c + drv_gpio.c + 0 + 0 + + + 3 + 20 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_usart.c + drv_usart.c + 0 + 0 + + + 3 + 21 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_flash\drv_flash_f4.c + drv_flash_f4.c + 0 + 0 + + + 3 + 22 + 1 + 0 + 0 + 0 + ..\libraries\HAL_Drivers\drv_common.c + drv_common.c + 0 + 0 + + + + + cpu + 0 + 0 + 0 + 0 + + 4 + 23 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\backtrace.c + backtrace.c + 0 + 0 + + + 4 + 24 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\div0.c + div0.c + 0 + 0 + + + 4 + 25 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\common\showmem.c + showmem.c + 0 + 0 + + + 4 + 26 + 1 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + cpuport.c + 0 + 0 + + + 4 + 27 + 2 + 0 + 0 + 0 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + context_rvds.S + 0 + 0 + + + + + DeviceDrivers + 0 + 0 + 0 + 0 + + 5 + 28 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\misc\pin.c + pin.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\serial\serial.c + serial.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\completion.c + completion.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\dataqueue.c + dataqueue.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\pipe.c + pipe.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringblk_buf.c + ringblk_buf.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\ringbuffer.c + ringbuffer.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\waitqueue.c + waitqueue.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + ..\..\..\components\drivers\src\workqueue.c + workqueue.c + 0 + 0 + + + + + finsh + 0 + 0 + 0 + 0 + + 6 + 37 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\shell.c + shell.c + 0 + 0 + + + 6 + 38 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\cmd.c + cmd.c + 0 + 0 + + + 6 + 39 + 1 + 0 + 0 + 0 + ..\..\..\components\finsh\msh.c + msh.c + 0 + 0 + + + + + libc + 0 + 0 + 0 + 0 + + 7 + 40 + 1 + 0 + 0 + 0 + ..\..\..\components\libc\compilers\common\time.c + time.c + 0 + 0 + + + + + STM32_HAL + 0 + 0 + 0 + 0 + + 8 + 41 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + system_stm32f4xx.c + 0 + 0 + + + 8 + 42 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + stm32f4xx_hal.c + 0 + 0 + + + 8 + 43 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + stm32f4xx_hal_cec.c + 0 + 0 + + + 8 + 44 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + stm32f4xx_hal_cortex.c + 0 + 0 + + + 8 + 45 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + stm32f4xx_hal_crc.c + 0 + 0 + + + 8 + 46 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + stm32f4xx_hal_cryp.c + 0 + 0 + + + 8 + 47 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + stm32f4xx_hal_cryp_ex.c + 0 + 0 + + + 8 + 48 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + stm32f4xx_hal_dma.c + 0 + 0 + + + 8 + 49 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + stm32f4xx_hal_dma_ex.c + 0 + 0 + + + 8 + 50 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + stm32f4xx_hal_pwr.c + 0 + 0 + + + 8 + 51 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + stm32f4xx_hal_pwr_ex.c + 0 + 0 + + + 8 + 52 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + stm32f4xx_hal_rcc.c + 0 + 0 + + + 8 + 53 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + stm32f4xx_hal_rcc_ex.c + 0 + 0 + + + 8 + 54 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + stm32f4xx_hal_rng.c + 0 + 0 + + + 8 + 55 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + stm32f4xx_hal_gpio.c + 0 + 0 + + + 8 + 56 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + stm32f4xx_hal_uart.c + 0 + 0 + + + 8 + 57 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + stm32f4xx_hal_usart.c + 0 + 0 + + + 8 + 58 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c + stm32f4xx_hal_flash.c + 0 + 0 + + + 8 + 59 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + stm32f4xx_hal_flash_ex.c + 0 + 0 + + + 8 + 60 + 1 + 0 + 0 + 0 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + stm32f4xx_hal_flash_ramfunc.c + 0 + 0 + + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/project.uvprojx b/bsp/stm32/stm32f411-mini-system/project.uvprojx new file mode 100644 index 0000000000..0e2d3e3f11 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/project.uvprojx @@ -0,0 +1,731 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F411CEUx + STMicroelectronics + Keil.STM32F4xx_DFP.2.14.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM)) + 0 + $$Device:STM32F411CEUx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F411CEUx$CMSIS\SVD\STM32F411xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + USE_HAL_DRIVER, STM32F411xE + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\libraries\HAL_Drivers\drv_flash;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\libc\compilers\common;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Kernel + + + clock.c + 1 + ..\..\..\src\clock.c + + + components.c + 1 + ..\..\..\src\components.c + + + device.c + 1 + ..\..\..\src\device.c + + + idle.c + 1 + ..\..\..\src\idle.c + + + ipc.c + 1 + ..\..\..\src\ipc.c + + + irq.c + 1 + ..\..\..\src\irq.c + + + kservice.c + 1 + ..\..\..\src\kservice.c + + + mem.c + 1 + ..\..\..\src\mem.c + + + mempool.c + 1 + ..\..\..\src\mempool.c + + + object.c + 1 + ..\..\..\src\object.c + + + scheduler.c + 1 + ..\..\..\src\scheduler.c + + + signal.c + 1 + ..\..\..\src\signal.c + + + thread.c + 1 + ..\..\..\src\thread.c + + + timer.c + 1 + ..\..\..\src\timer.c + + + + + Applications + + + main.c + 1 + applications\main.c + + + + + Drivers + + + board.c + 1 + board\board.c + + + stm32f4xx_hal_msp.c + 1 + board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + + startup_stm32f411xe.s + 2 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f411xe.s + + + drv_gpio.c + 1 + ..\libraries\HAL_Drivers\drv_gpio.c + + + drv_usart.c + 1 + ..\libraries\HAL_Drivers\drv_usart.c + + + drv_flash_f4.c + 1 + ..\libraries\HAL_Drivers\drv_flash\drv_flash_f4.c + + + drv_common.c + 1 + ..\libraries\HAL_Drivers\drv_common.c + + + + + cpu + + + backtrace.c + 1 + ..\..\..\libcpu\arm\common\backtrace.c + + + div0.c + 1 + ..\..\..\libcpu\arm\common\div0.c + + + showmem.c + 1 + ..\..\..\libcpu\arm\common\showmem.c + + + cpuport.c + 1 + ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + + context_rvds.S + 2 + ..\..\..\libcpu\arm\cortex-m4\context_rvds.S + + + + + DeviceDrivers + + + pin.c + 1 + ..\..\..\components\drivers\misc\pin.c + + + serial.c + 1 + ..\..\..\components\drivers\serial\serial.c + + + completion.c + 1 + ..\..\..\components\drivers\src\completion.c + + + dataqueue.c + 1 + ..\..\..\components\drivers\src\dataqueue.c + + + pipe.c + 1 + ..\..\..\components\drivers\src\pipe.c + + + ringblk_buf.c + 1 + ..\..\..\components\drivers\src\ringblk_buf.c + + + ringbuffer.c + 1 + ..\..\..\components\drivers\src\ringbuffer.c + + + waitqueue.c + 1 + ..\..\..\components\drivers\src\waitqueue.c + + + workqueue.c + 1 + ..\..\..\components\drivers\src\workqueue.c + + + + + finsh + + + shell.c + 1 + ..\..\..\components\finsh\shell.c + + + cmd.c + 1 + ..\..\..\components\finsh\cmd.c + + + msh.c + 1 + ..\..\..\components\finsh\msh.c + + + + + libc + + + time.c + 1 + ..\..\..\components\libc\compilers\common\time.c + + + + + STM32_HAL + + + system_stm32f4xx.c + 1 + ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + + stm32f4xx_hal.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + + stm32f4xx_hal_cec.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + + stm32f4xx_hal_cortex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + + stm32f4xx_hal_crc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + + stm32f4xx_hal_cryp.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + + stm32f4xx_hal_cryp_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + + stm32f4xx_hal_dma.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + + stm32f4xx_hal_dma_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + + stm32f4xx_hal_pwr.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + + stm32f4xx_hal_pwr_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + + stm32f4xx_hal_rcc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + + stm32f4xx_hal_rcc_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + + stm32f4xx_hal_rng.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + + stm32f4xx_hal_gpio.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + + stm32f4xx_hal_uart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + + stm32f4xx_hal_usart.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c + + + stm32f4xx_hal_flash.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c + + + stm32f4xx_hal_flash_ex.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c + + + stm32f4xx_hal_flash_ramfunc.c + 1 + ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c + + + + + + + + + + + + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/rtconfig.h b/bsp/stm32/stm32f411-mini-system/rtconfig.h new file mode 100644 index 0000000000..0c4e40cec2 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/rtconfig.h @@ -0,0 +1,170 @@ +#ifndef RT_CONFIG_H__ +#define RT_CONFIG_H__ + +/* Automatically generated file; DO NOT EDIT. */ +/* RT-Thread Configuration */ + +/* RT-Thread Kernel */ + +#define RT_NAME_MAX 8 +#define RT_ALIGN_SIZE 4 +#define RT_THREAD_PRIORITY_32 +#define RT_THREAD_PRIORITY_MAX 32 +#define RT_TICK_PER_SECOND 1000 +#define RT_USING_OVERFLOW_CHECK +#define RT_USING_HOOK +#define RT_USING_IDLE_HOOK +#define RT_IDLE_HOOK_LIST_SIZE 4 +#define IDLE_THREAD_STACK_SIZE 256 +#define RT_DEBUG +#define RT_DEBUG_COLOR + +/* Inter-Thread communication */ + +#define RT_USING_SEMAPHORE +#define RT_USING_MUTEX +#define RT_USING_EVENT +#define RT_USING_MAILBOX +#define RT_USING_MESSAGEQUEUE + +/* Memory Management */ + +#define RT_USING_MEMPOOL +#define RT_USING_SMALL_MEM +#define RT_USING_HEAP + +/* Kernel Device Object */ + +#define RT_USING_DEVICE +#define RT_USING_CONSOLE +#define RT_CONSOLEBUF_SIZE 128 +#define RT_CONSOLE_DEVICE_NAME "uart1" +#define RT_VER_NUM 0x40003 +#define ARCH_ARM +#define RT_USING_CPU_FFS +#define ARCH_ARM_CORTEX_M +#define ARCH_ARM_CORTEX_M4 + +/* RT-Thread Components */ + +#define RT_USING_COMPONENTS_INIT +#define RT_USING_USER_MAIN +#define RT_MAIN_THREAD_STACK_SIZE 2048 +#define RT_MAIN_THREAD_PRIORITY 10 + +/* C++ features */ + + +/* Command shell */ + +#define RT_USING_FINSH +#define FINSH_THREAD_NAME "tshell" +#define FINSH_USING_HISTORY +#define FINSH_HISTORY_LINES 5 +#define FINSH_USING_SYMTAB +#define FINSH_USING_DESCRIPTION +#define FINSH_THREAD_PRIORITY 20 +#define FINSH_THREAD_STACK_SIZE 4096 +#define FINSH_CMD_SIZE 80 +#define FINSH_USING_MSH +#define FINSH_USING_MSH_DEFAULT +#define FINSH_USING_MSH_ONLY +#define FINSH_ARG_MAX 10 + +/* Device virtual file system */ + + +/* Device Drivers */ + +#define RT_USING_DEVICE_IPC +#define RT_PIPE_BUFSZ 512 +#define RT_USING_SERIAL +#define RT_SERIAL_RB_BUFSZ 64 +#define RT_USING_PIN + +/* Using USB */ + + +/* POSIX layer and C standard library */ + +#define RT_LIBC_USING_TIME + +/* Network */ + +/* Socket abstraction layer */ + + +/* Network interface device */ + + +/* light weight TCP/IP stack */ + + +/* AT commands */ + + +/* VBUS(Virtual Software BUS) */ + + +/* Utilities */ + + +/* RT-Thread online packages */ + +/* IoT - internet of things */ + + +/* Wi-Fi */ + +/* Marvell WiFi */ + + +/* Wiced WiFi */ + + +/* IoT Cloud */ + + +/* security packages */ + + +/* language packages */ + + +/* multimedia packages */ + + +/* tools packages */ + + +/* system packages */ + + +/* peripheral libraries and drivers */ + + +/* miscellaneous packages */ + + +/* samples: kernel and components samples */ + +#define SOC_FAMILY_STM32 +#define SOC_SERIES_STM32F4 + +/* Hardware Drivers Config */ + +#define SOC_STM32F411RE + +/* Onboard Peripheral Drivers */ + +/* On-chip Peripheral Drivers */ + +#define BSP_USING_GPIO +#define BSP_USING_UART +#define BSP_USING_UART1 +#define BSP_USING_ON_CHIP_FLASH + +/* Board extended module Drivers */ + + +#endif diff --git a/bsp/stm32/stm32f411-mini-system/rtconfig.py b/bsp/stm32/stm32f411-mini-system/rtconfig.py new file mode 100644 index 0000000000..8c0a3e1281 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/rtconfig.py @@ -0,0 +1,143 @@ +import os + +# toolchains options +ARCH='arm' +CPU='cortex-m4' +CROSS_TOOL='gcc' + +# bsp lib config +BSP_LIBRARY_TYPE = None + +if os.getenv('RTT_CC'): + CROSS_TOOL = os.getenv('RTT_CC') +if os.getenv('RTT_ROOT'): + RTT_ROOT = os.getenv('RTT_ROOT') + +# cross_tool provides the cross compiler +# EXEC_PATH is the compiler execute path, for example, CodeSourcery, Keil MDK, IAR +if CROSS_TOOL == 'gcc': + PLATFORM = 'gcc' + EXEC_PATH = r'C:\Users\XXYYZZ' +elif CROSS_TOOL == 'keil': + PLATFORM = 'armcc' + EXEC_PATH = r'C:/Keil_v5' +elif CROSS_TOOL == 'iar': + PLATFORM = 'iar' + EXEC_PATH = r'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0' + +if os.getenv('RTT_EXEC_PATH'): + EXEC_PATH = os.getenv('RTT_EXEC_PATH') + +BUILD = 'debug' + +if PLATFORM == 'gcc': + # toolchains + PREFIX = 'arm-none-eabi-' + CC = PREFIX + 'gcc' + AS = PREFIX + 'gcc' + AR = PREFIX + 'ar' + CXX = PREFIX + 'g++' + LINK = PREFIX + 'gcc' + TARGET_EXT = 'elf' + SIZE = PREFIX + 'size' + OBJDUMP = PREFIX + 'objdump' + OBJCPY = PREFIX + 'objcopy' + + DEVICE = ' -mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard -ffunction-sections -fdata-sections' + CFLAGS = DEVICE + ' -Dgcc' + AFLAGS = ' -c' + DEVICE + ' -x assembler-with-cpp -Wa,-mimplicit-it=thumb ' + LFLAGS = DEVICE + ' -Wl,--gc-sections,-Map=rtthread.map,-cref,-u,Reset_Handler -T board/linker_scripts/link.lds' + + CPATH = '' + LPATH = '' + + if BUILD == 'debug': + CFLAGS += ' -O0 -gdwarf-2 -g' + AFLAGS += ' -gdwarf-2' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + + POST_ACTION = OBJCPY + ' -O binary $TARGET rtthread.bin\n' + SIZE + ' $TARGET \n' + +elif PLATFORM == 'armcc': + # toolchains + CC = 'armcc' + CXX = 'armcc' + AS = 'armasm' + AR = 'armar' + LINK = 'armlink' + TARGET_EXT = 'axf' + + DEVICE = ' --cpu Cortex-M4.fp ' + CFLAGS = '-c ' + DEVICE + ' --apcs=interwork --c99' + AFLAGS = DEVICE + ' --apcs=interwork ' + LFLAGS = DEVICE + ' --scatter "board\linker_scripts\link.sct" --info sizes --info totals --info unused --info veneers --list rtthread.map --strict' + CFLAGS += ' -I' + EXEC_PATH + '/ARM/ARMCC/include' + LFLAGS += ' --libpath=' + EXEC_PATH + '/ARM/ARMCC/lib' + + CFLAGS += ' -D__MICROLIB ' + AFLAGS += ' --pd "__MICROLIB SETA 1" ' + LFLAGS += ' --library_type=microlib ' + EXEC_PATH += '/ARM/ARMCC/bin/' + + if BUILD == 'debug': + CFLAGS += ' -g -O0' + AFLAGS += ' -g' + else: + CFLAGS += ' -O2' + + CXXFLAGS = CFLAGS + CFLAGS += ' -std=c99' + + POST_ACTION = 'fromelf --bin $TARGET --output rtthread.bin \nfromelf -z $TARGET' + +elif PLATFORM == 'iar': + # toolchains + CC = 'iccarm' + CXX = 'iccarm' + AS = 'iasmarm' + AR = 'iarchive' + LINK = 'ilinkarm' + TARGET_EXT = 'out' + + DEVICE = '-Dewarm' + + CFLAGS = DEVICE + CFLAGS += ' --diag_suppress Pa050' + CFLAGS += ' --no_cse' + CFLAGS += ' --no_unroll' + CFLAGS += ' --no_inline' + CFLAGS += ' --no_code_motion' + CFLAGS += ' --no_tbaa' + CFLAGS += ' --no_clustering' + CFLAGS += ' --no_scheduling' + CFLAGS += ' --endian=little' + CFLAGS += ' --cpu=Cortex-M4' + CFLAGS += ' -e' + CFLAGS += ' --fpu=VFPv4_sp' + CFLAGS += ' --dlib_config "' + EXEC_PATH + '/arm/INC/c/DLib_Config_Normal.h"' + CFLAGS += ' --silent' + + AFLAGS = DEVICE + AFLAGS += ' -s+' + AFLAGS += ' -w+' + AFLAGS += ' -r' + AFLAGS += ' --cpu Cortex-M4' + AFLAGS += ' --fpu VFPv4_sp' + AFLAGS += ' -S' + + if BUILD == 'debug': + CFLAGS += ' --debug' + CFLAGS += ' -On' + else: + CFLAGS += ' -Oh' + + LFLAGS = ' --config "board/linker_scripts/link.icf"' + LFLAGS += ' --entry __iar_program_start' + + CXXFLAGS = CFLAGS + + EXEC_PATH = EXEC_PATH + '/arm/bin/' + POST_ACTION = 'ielftool --bin $TARGET rtthread.bin' diff --git a/bsp/stm32/stm32f411-mini-system/template.ewp b/bsp/stm32/stm32f411-mini-system/template.ewp new file mode 100644 index 0000000000..31de0dcb40 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/template.ewp @@ -0,0 +1,2106 @@ + + + 3 + + rtthread + + ARM + + 1 + + General + 3 + + 31 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 1 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 1 + + + + + + + BILINK + 0 + + + + + Release + + ARM + + 0 + + General + 3 + + 31 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ICCARM + 2 + + 35 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + AARM + 2 + + 10 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OBJCOPY + 0 + + 1 + 1 + 0 + + + + + + + + + CUSTOM + 3 + + + + 0 + + + + BICOMP + 0 + + + + BUILDACTION + 1 + + + + + + + ILINK + 0 + + 23 + 1 + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + IARCHIVE + 0 + + 0 + 1 + 0 + + + + + + + BILINK + 0 + + + + diff --git a/bsp/stm32/stm32f411-mini-system/template.eww b/bsp/stm32/stm32f411-mini-system/template.eww new file mode 100644 index 0000000000..bd036bb4c9 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/template.eww @@ -0,0 +1,10 @@ + + + + + $WS_DIR$\template.ewp + + + + + diff --git a/bsp/stm32/stm32f411-mini-system/template.uvopt b/bsp/stm32/stm32f411-mini-system/template.uvopt new file mode 100644 index 0000000000..b53d69d5df --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/template.uvopt @@ -0,0 +1,162 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + + + + 0 + 0 + + + + rt-thread + 0x4 + ARM-ADS + + 25000000 + + 1 + 1 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 0 + 1 + 1 + 0 + 0 + 0 + 6 + + + + + + + + + + + Segger\JL2CM3.dll + + + + 0 + JL2CM3 + -U30000299 -O207 -S0 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8001 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO15 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 + + + 0 + UL2CM3 + UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/template.uvoptx b/bsp/stm32/stm32f411-mini-system/template.uvoptx new file mode 100644 index 0000000000..60c8676254 --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/template.uvoptx @@ -0,0 +1,191 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + 0 + ST-LINKIII-KEIL_SWO + -U066CFF535155878281155143 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/template.uvprojx b/bsp/stm32/stm32f411-mini-system/template.uvprojx new file mode 100644 index 0000000000..1a494d842f --- /dev/null +++ b/bsp/stm32/stm32f411-mini-system/template.uvprojx @@ -0,0 +1,394 @@ + + + + 2.1 + +
    ### uVision Project, (C) Keil Software
    + + + + rtthread + 0x4 + ARM-ADS + 5060750::V5.06 update 6 (build 750)::ARMCC + 0 + + + STM32F411CEUx + STMicroelectronics + Keil.STM32F4xx_DFP.2.14.0 + http://www.keil.com/pack/ + IRAM(0x20000000,0x00020000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM)) + 0 + $$Device:STM32F411CEUx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h + + + + + + + + + + $$Device:STM32F411CEUx$CMSIS\SVD\STM32F411xx.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\build\keil\Obj\ + rtthread + 1 + 0 + 0 + 1 + 0 + .\build\keil\List\ + 1 + 0 + 0 + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 0 + 0 + + + 0 + 0 + 0 + 0 + + + 1 + 0 + fromelf --bin !L --output rtthread.bin + + 0 + 0 + 0 + 0 + + 0 + + + + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM4 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM4 + + + + 1 + 0 + 0 + 0 + 16 + + + + + 1 + 0 + 0 + 1 + 1 + 4096 + + 1 + BIN\UL2CM3.DLL + + + + + + 0 + + + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + "Cortex-M4" + + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 2 + 0 + 0 + 8 + 0 + 0 + 0 + 0 + 3 + 3 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 1 + 0x8000000 + 0x80000 + + + 0 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x80000 + + + 1 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x20000000 + 0x20000 + + + 0 + 0x0 + 0x0 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 2 + 0 + 0 + 1 + 0 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + + + + + + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Source Group 1 + + + + + + + + + + + +
    From 3ddf6c96f5be8da81b22b023e25f235e7406c052 Mon Sep 17 00:00:00 2001 From: greedyhao Date: Fri, 28 Feb 2020 17:01:57 +0800 Subject: [PATCH 2/6] [bsp][stm32] stm32f411-mini-system edit kconfig --- bsp/stm32/stm32f411-mini-system/board/Kconfig | 23 +++++++++++++------ .../stm32f411-mini-system/project.uvoptx | 2 +- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/bsp/stm32/stm32f411-mini-system/board/Kconfig b/bsp/stm32/stm32f411-mini-system/board/Kconfig index 7642096bbc..9f43b41b8b 100644 --- a/bsp/stm32/stm32f411-mini-system/board/Kconfig +++ b/bsp/stm32/stm32f411-mini-system/board/Kconfig @@ -41,14 +41,16 @@ menu "On-chip Peripheral Drivers" depends on BSP_USING_UART2 && RT_SERIAL_USING_DMA default n - config BSP_USING_UART6 - bool "Enable UART6" - default n + if !BSP_USING_USBD + config BSP_USING_UART6 + bool "Enable UART6" + default n - config BSP_UART6_RX_USING_DMA - bool "Enable UART6 RX DMA" - depends on BSP_USING_UART6 && RT_SERIAL_USING_DMA - default n + config BSP_UART6_RX_USING_DMA + bool "Enable UART6 RX DMA" + depends on BSP_USING_UART6 && RT_SERIAL_USING_DMA + default n + endif endif menuconfig BSP_USING_I2C1 @@ -108,6 +110,13 @@ menu "On-chip Peripheral Drivers" bool "Enable on-chip FLASH" default n + config BSP_USING_USBD + bool "Enable USB Device" + select RT_USING_USB_DEVICE + default n + + source "../libraries/HAL_Drivers/Kconfig" + endmenu menu "Board extended module Drivers" diff --git a/bsp/stm32/stm32f411-mini-system/project.uvoptx b/bsp/stm32/stm32f411-mini-system/project.uvoptx index 6a1ea8c919..5f8d0d72ba 100644 --- a/bsp/stm32/stm32f411-mini-system/project.uvoptx +++ b/bsp/stm32/stm32f411-mini-system/project.uvoptx @@ -73,7 +73,7 @@ 0 - 0 + 1 0 1 From aee731fdf8603cc6126365a50c7b0099918532bf Mon Sep 17 00:00:00 2001 From: greedyhao Date: Fri, 28 Feb 2020 19:43:47 +0800 Subject: [PATCH 3/6] [bsp][stm32] add usbd support for stm32f411-mini-system --- bsp/stm32/stm32f411-mini-system/README.md | 1 + .../board/CubeMX_Config/.mxproject | 4 +- .../board/CubeMX_Config/CubeMX_Config.ioc | 88 ++++++++++--------- .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 2 +- .../board/CubeMX_Config/Src/main.c | 57 +++++++++--- .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 67 +++++++++++++- bsp/stm32/stm32f411-mini-system/board/board.c | 17 ++-- 7 files changed, 171 insertions(+), 65 deletions(-) diff --git a/bsp/stm32/stm32f411-mini-system/README.md b/bsp/stm32/stm32f411-mini-system/README.md index 6aa02e3098..938675f9b9 100644 --- a/bsp/stm32/stm32f411-mini-system/README.md +++ b/bsp/stm32/stm32f411-mini-system/README.md @@ -42,6 +42,7 @@ STM32F411-mini-system 是一款基于 ARM Cortex-M4 内核的开发板,最高 | RTC | 支持 | 支持外部晶振和内部低速时钟 | | WDT | 支持 | | | FLASH | 支持 | 已适配 [FAL](https://github.com/RT-Thread-packages/fal) | +| USB Device | 支持 | | ## 使用说明 diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject index 8fedc8ffd7..8683581515 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject @@ -5,10 +5,10 @@ SourcePath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-mini-system/board/Cu SourceFiles=stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; [PreviousLibFiles] -LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; +LibFiles=Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rtc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_cortex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h;Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_exti.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_spi.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_uart.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pcd_ex.h;Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_ll_usb.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f411xe.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h;Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;Drivers/CMSIS/Include/cmsis_armcc.h;Drivers/CMSIS/Include/cmsis_armclang.h;Drivers/CMSIS/Include/cmsis_compiler.h;Drivers/CMSIS/Include/cmsis_gcc.h;Drivers/CMSIS/Include/cmsis_iccarm.h;Drivers/CMSIS/Include/cmsis_version.h;Drivers/CMSIS/Include/core_armv8mbl.h;Drivers/CMSIS/Include/core_armv8mml.h;Drivers/CMSIS/Include/core_cm0.h;Drivers/CMSIS/Include/core_cm0plus.h;Drivers/CMSIS/Include/core_cm1.h;Drivers/CMSIS/Include/core_cm23.h;Drivers/CMSIS/Include/core_cm3.h;Drivers/CMSIS/Include/core_cm33.h;Drivers/CMSIS/Include/core_cm4.h;Drivers/CMSIS/Include/core_cm7.h;Drivers/CMSIS/Include/core_sc000.h;Drivers/CMSIS/Include/core_sc300.h;Drivers/CMSIS/Include/mpu_armv7.h;Drivers/CMSIS/Include/mpu_armv8.h;Drivers/CMSIS/Include/tz_context.h; [PreviousUsedKeilFiles] -SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; +SourceFiles=..\Src\main.c;..\Src\stm32f4xx_it.c;..\Src\stm32f4xx_hal_msp.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;..\\Src/system_stm32f4xx.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.c;..\Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.c;..\\Src/system_stm32f4xx.c;..\Drivers/CMSIS/Device/ST/STM32F4xx/Source/Templates/system_stm32f4xx.c;; HeaderPath=..\Drivers\STM32F4xx_HAL_Driver\Inc;..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F4xx\Include;..\Drivers\CMSIS\Include;..\Inc; CDefines=USE_HAL_DRIVER;STM32F411xE;USE_HAL_DRIVER;USE_HAL_DRIVER; diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc index 9404a082ed..1468ade621 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc @@ -10,17 +10,20 @@ Mcu.IP4=SYS Mcu.IP5=TIM10 Mcu.IP6=TIM11 Mcu.IP7=USART1 -Mcu.IPNb=8 +Mcu.IP8=USB_OTG_FS +Mcu.IPNb=9 Mcu.Name=STM32F411C(C-E)Ux Mcu.Package=UFQFPN48 Mcu.Pin0=PC13-ANTI_TAMP Mcu.Pin1=PC14-OSC32_IN -Mcu.Pin10=PA13 -Mcu.Pin11=PA14 -Mcu.Pin12=VP_RTC_VS_RTC_Activate -Mcu.Pin13=VP_SYS_VS_Systick -Mcu.Pin14=VP_TIM10_VS_ClockSourceINT -Mcu.Pin15=VP_TIM11_VS_ClockSourceINT +Mcu.Pin10=PA11 +Mcu.Pin11=PA12 +Mcu.Pin12=PA13 +Mcu.Pin13=PA14 +Mcu.Pin14=VP_RTC_VS_RTC_Activate +Mcu.Pin15=VP_SYS_VS_Systick +Mcu.Pin16=VP_TIM10_VS_ClockSourceINT +Mcu.Pin17=VP_TIM11_VS_ClockSourceINT Mcu.Pin2=PC15-OSC32_OUT Mcu.Pin3=PH0 - OSC_IN Mcu.Pin4=PH1 - OSC_OUT @@ -29,12 +32,12 @@ Mcu.Pin6=PA6 Mcu.Pin7=PA7 Mcu.Pin8=PA9 Mcu.Pin9=PA10 -Mcu.PinsNb=16 +Mcu.PinsNb=18 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F411CEUx -MxCube.Version=5.4.0 -MxDb.Version=DB.5.0.40 +MxCube.Version=5.6.0 +MxDb.Version=DB.5.0.60 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false NVIC.ForceEnableDMAVector=true @@ -48,6 +51,10 @@ NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false PA10.Mode=Asynchronous PA10.Signal=USART1_RX +PA11.Mode=Device_Only +PA11.Signal=USB_OTG_FS_DM +PA12.Mode=Device_Only +PA12.Signal=USB_OTG_FS_DP PA13.Mode=Serial_Wire PA13.Signal=SYS_JTMS-SWDIO PA14.Mode=Serial_Wire @@ -66,14 +73,6 @@ PC14-OSC32_IN.Mode=LSE-External-Oscillator PC14-OSC32_IN.Signal=RCC_OSC32_IN PC15-OSC32_OUT.Mode=LSE-External-Oscillator PC15-OSC32_OUT.Signal=RCC_OSC32_OUT -PCC.Checker=false -PCC.Line=STM32F411 -PCC.MCU=STM32F411C(C-E)Ux -PCC.PartNumber=STM32F411CEUx -PCC.Seq0=0 -PCC.Series=STM32F4 -PCC.Temperature=25 -PCC.Vdd=null PH0\ -\ OSC_IN.Mode=HSE-External-Oscillator PH0\ -\ OSC_IN.Signal=RCC_OSC_IN PH1\ -\ OSC_OUT.Mode=HSE-External-Oscillator @@ -88,7 +87,7 @@ ProjectManager.CustomerFirmwarePackage= ProjectManager.DefaultFWLocation=true ProjectManager.DeletePrevious=true ProjectManager.DeviceId=STM32F411CEUx -ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.24.2 +ProjectManager.FirmwarePackage=STM32Cube FW_F4 V1.25.0 ProjectManager.FreePins=false ProjectManager.HalAssertFull=false ProjectManager.HeapSize=0x200 @@ -106,45 +105,50 @@ ProjectManager.TargetToolchain=MDK-ARM V5 ProjectManager.ToolChainLocation= ProjectManager.UnderRoot=false ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-SystemClock_Config-RCC-false-HAL-false,3-MX_USART1_UART_Init-USART1-false-HAL-true,4-MX_I2C1_Init-I2C1-false-HAL-true,5-MX_SPI1_Init-SPI1-false-HAL-true -RCC.48MHZClocksFreq_Value=50000000 -RCC.AHBFreq_Value=100000000 +RCC.48MHZClocksFreq_Value=48000000 +RCC.AHBFreq_Value=60000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 -RCC.APB1Freq_Value=50000000 -RCC.APB1TimFreq_Value=100000000 -RCC.APB2Freq_Value=100000000 -RCC.APB2TimFreq_Value=100000000 -RCC.CortexFreq_Value=100000000 -RCC.EthernetFreq_Value=100000000 -RCC.FCLKCortexFreq_Value=100000000 +RCC.APB1Freq_Value=30000000 +RCC.APB1TimFreq_Value=60000000 +RCC.APB2Freq_Value=60000000 +RCC.APB2TimFreq_Value=60000000 +RCC.CortexFreq_Value=60000000 +RCC.EthernetFreq_Value=60000000 +RCC.FCLKCortexFreq_Value=60000000 RCC.FamilyName=M -RCC.HCLKFreq_Value=100000000 +RCC.HCLKFreq_Value=60000000 RCC.HSE_VALUE=25000000 RCC.HSI_VALUE=16000000 -RCC.I2SClocksFreq_Value=96000000 -RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,RCC_RTC_Clock_Source,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S +RCC.I2SClocksFreq_Value=150000000 +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,PLLCLKFreq_Value,PLLM,PLLN,PLLP,PLLQ,PLLQCLKFreq_Value,RCC_RTC_Clock_Source,RCC_RTC_Clock_SourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOInputMFreq_Value,VCOOutputFreq_Value,VcooutputI2S RCC.LSI_VALUE=32000 -RCC.PLLCLKFreq_Value=100000000 -RCC.PLLM=8 -RCC.PLLN=100 -RCC.PLLQCLKFreq_Value=50000000 +RCC.PLLCLKFreq_Value=60000000 +RCC.PLLM=15 +RCC.PLLN=144 +RCC.PLLP=RCC_PLLP_DIV4 +RCC.PLLQ=5 +RCC.PLLQCLKFreq_Value=48000000 RCC.RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE +RCC.RCC_RTC_Clock_SourceVirtual=RCC_RTCCLKSOURCE_LSE RCC.RTCFreq_Value=32768 RCC.RTCHSEDivFreq_Value=12500000 -RCC.SYSCLKFreq_VALUE=100000000 +RCC.SYSCLKFreq_VALUE=60000000 RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK -RCC.VCOI2SOutputFreq_Value=192000000 -RCC.VCOInputFreq_Value=2000000 -RCC.VCOInputMFreq_Value=1000000 -RCC.VCOOutputFreq_Value=200000000 -RCC.VcooutputI2S=96000000 +RCC.VCOI2SOutputFreq_Value=300000000 +RCC.VCOInputFreq_Value=1666666.6666666667 +RCC.VCOInputMFreq_Value=1562500 +RCC.VCOOutputFreq_Value=240000000 +RCC.VcooutputI2S=150000000 SPI1.CLKPolarity=SPI_POLARITY_LOW -SPI1.CalculateBaudRate=50.0 MBits/s +SPI1.CalculateBaudRate=30.0 MBits/s SPI1.Direction=SPI_DIRECTION_2LINES SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,CLKPolarity SPI1.Mode=SPI_MODE_MASTER SPI1.VirtualType=VM_MASTER USART1.IPParameters=VirtualMode USART1.VirtualMode=VM_ASYNC +USB_OTG_FS.IPParameters=VirtualMode +USB_OTG_FS.VirtualMode=Device_Only VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate VP_SYS_VS_Systick.Mode=SysTick diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h index 5a9e6396cb..e97c78ec91 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h @@ -68,7 +68,7 @@ /* #define HAL_SMARTCARD_MODULE_ENABLED */ /* #define HAL_SMBUS_MODULE_ENABLED */ /* #define HAL_WWDG_MODULE_ENABLED */ -/* #define HAL_PCD_MODULE_ENABLED */ +#define HAL_PCD_MODULE_ENABLED /* #define HAL_HCD_MODULE_ENABLED */ /* #define HAL_DSI_MODULE_ENABLED */ /* #define HAL_QSPI_MODULE_ENABLED */ diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c index 27d1514281..a15413e938 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c @@ -50,6 +50,8 @@ TIM_HandleTypeDef htim11; UART_HandleTypeDef huart1; +PCD_HandleTypeDef hpcd_USB_OTG_FS; + /* USER CODE BEGIN PV */ /* USER CODE END PV */ @@ -62,6 +64,7 @@ static void MX_SPI1_Init(void); static void MX_RTC_Init(void); static void MX_TIM10_Init(void); static void MX_TIM11_Init(void); +static void MX_USB_OTG_FS_PCD_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ @@ -80,7 +83,6 @@ int main(void) /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ - /* MCU Configuration--------------------------------------------------------*/ @@ -105,6 +107,7 @@ int main(void) MX_RTC_Init(); MX_TIM10_Init(); MX_TIM11_Init(); + MX_USB_OTG_FS_PCD_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ @@ -136,16 +139,15 @@ void SystemClock_Config(void) __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the CPU, AHB and APB busses clocks */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.LSEState = RCC_LSE_ON; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; - RCC_OscInitStruct.PLL.PLLM = 8; - RCC_OscInitStruct.PLL.PLLN = 100; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = 4; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 15; + RCC_OscInitStruct.PLL.PLLN = 144; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; + RCC_OscInitStruct.PLL.PLLQ = 5; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); @@ -159,7 +161,7 @@ void SystemClock_Config(void) RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { Error_Handler(); } @@ -338,6 +340,41 @@ static void MX_USART1_UART_Init(void) } +/** + * @brief USB_OTG_FS Initialization Function + * @param None + * @retval None + */ +static void MX_USB_OTG_FS_PCD_Init(void) +{ + + /* USER CODE BEGIN USB_OTG_FS_Init 0 */ + + /* USER CODE END USB_OTG_FS_Init 0 */ + + /* USER CODE BEGIN USB_OTG_FS_Init 1 */ + + /* USER CODE END USB_OTG_FS_Init 1 */ + hpcd_USB_OTG_FS.Instance = USB_OTG_FS; + hpcd_USB_OTG_FS.Init.dev_endpoints = 4; + hpcd_USB_OTG_FS.Init.speed = PCD_SPEED_FULL; + hpcd_USB_OTG_FS.Init.dma_enable = DISABLE; + hpcd_USB_OTG_FS.Init.phy_itface = PCD_PHY_EMBEDDED; + hpcd_USB_OTG_FS.Init.Sof_enable = DISABLE; + hpcd_USB_OTG_FS.Init.low_power_enable = DISABLE; + hpcd_USB_OTG_FS.Init.lpm_enable = DISABLE; + hpcd_USB_OTG_FS.Init.vbus_sensing_enable = DISABLE; + hpcd_USB_OTG_FS.Init.use_dedicated_ep1 = DISABLE; + if (HAL_PCD_Init(&hpcd_USB_OTG_FS) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN USB_OTG_FS_Init 2 */ + + /* USER CODE END USB_OTG_FS_Init 2 */ + +} + /** * @brief GPIO Initialization Function * @param None diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c index 747ab74f59..97a4cad91d 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c +++ b/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c @@ -278,7 +278,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* huart) */ GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF7_USART1; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -319,6 +319,71 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart) } +/** +* @brief PCD MSP Initialization +* This function configures the hardware resources used in this example +* @param hpcd: PCD handle pointer +* @retval None +*/ +void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) +{ + GPIO_InitTypeDef GPIO_InitStruct = {0}; + if(hpcd->Instance==USB_OTG_FS) + { + /* USER CODE BEGIN USB_OTG_FS_MspInit 0 */ + + /* USER CODE END USB_OTG_FS_MspInit 0 */ + + __HAL_RCC_GPIOA_CLK_ENABLE(); + /**USB_OTG_FS GPIO Configuration + PA11 ------> USB_OTG_FS_DM + PA12 ------> USB_OTG_FS_DP + */ + GPIO_InitStruct.Pin = GPIO_PIN_11|GPIO_PIN_12; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF10_OTG_FS; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + + /* Peripheral clock enable */ + __HAL_RCC_USB_OTG_FS_CLK_ENABLE(); + /* USER CODE BEGIN USB_OTG_FS_MspInit 1 */ + + /* USER CODE END USB_OTG_FS_MspInit 1 */ + } + +} + +/** +* @brief PCD MSP De-Initialization +* This function freeze the hardware resources used in this example +* @param hpcd: PCD handle pointer +* @retval None +*/ +void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) +{ + if(hpcd->Instance==USB_OTG_FS) + { + /* USER CODE BEGIN USB_OTG_FS_MspDeInit 0 */ + + /* USER CODE END USB_OTG_FS_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_USB_OTG_FS_CLK_DISABLE(); + + /**USB_OTG_FS GPIO Configuration + PA11 ------> USB_OTG_FS_DM + PA12 ------> USB_OTG_FS_DP + */ + HAL_GPIO_DeInit(GPIOA, GPIO_PIN_11|GPIO_PIN_12); + + /* USER CODE BEGIN USB_OTG_FS_MspDeInit 1 */ + + /* USER CODE END USB_OTG_FS_MspDeInit 1 */ + } + +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/bsp/stm32/stm32f411-mini-system/board/board.c b/bsp/stm32/stm32f411-mini-system/board/board.c index f28668a941..a19a49af8e 100644 --- a/bsp/stm32/stm32f411-mini-system/board/board.c +++ b/bsp/stm32/stm32f411-mini-system/board/board.c @@ -22,16 +22,15 @@ void SystemClock_Config(void) __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); /** Initializes the CPU, AHB and APB busses clocks */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE|RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.LSEState = RCC_LSE_ON; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; - RCC_OscInitStruct.PLL.PLLM = 8; - RCC_OscInitStruct.PLL.PLLN = 100; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = 4; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 15; + RCC_OscInitStruct.PLL.PLLN = 144; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; + RCC_OscInitStruct.PLL.PLLQ = 5; if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { Error_Handler(); @@ -45,7 +44,7 @@ void SystemClock_Config(void) RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_3) != HAL_OK) + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK) { Error_Handler(); } From 10b495176022a8d192adaeaa0e335e0d90103b81 Mon Sep 17 00:00:00 2001 From: greedyhao Date: Mon, 2 Mar 2020 11:07:51 +0800 Subject: [PATCH 4/6] [bsp/stm32] update .travis.yml --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 371ac806a0..4890ddd56f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -87,6 +87,7 @@ env: - RTT_BSP='stm32/stm32f405-smdz-breadfruit' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-atk-explorer' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-st-discovery' RTT_TOOL_CHAIN='sourcery-arm' + - RTT_BSP='stm32/stm32f411-mini-system' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f411-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f427-robomaster-a' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-armfly-v6' RTT_TOOL_CHAIN='sourcery-arm' From d96056a4f243a0462ad97a65de0de7fc2a983752 Mon Sep 17 00:00:00 2001 From: greedyhao Date: Mon, 2 Mar 2020 21:11:13 +0800 Subject: [PATCH 5/6] [bsp/stm32] update readme --- bsp/stm32/stm32f411-mini-system/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/bsp/stm32/stm32f411-mini-system/README.md b/bsp/stm32/stm32f411-mini-system/README.md index 938675f9b9..84e3413812 100644 --- a/bsp/stm32/stm32f411-mini-system/README.md +++ b/bsp/stm32/stm32f411-mini-system/README.md @@ -14,7 +14,7 @@ ## 开发板介绍 -STM32F411-mini-system 是一款基于 ARM Cortex-M4 内核的开发板,最高主频为 100Mhz,该开发板芯片为 STM32F411CE。 +STM32F411-mini-system 是 WeAct 推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 100Mhz,该开发板芯片为 STM32F411CE。 开发板外观如下图所示: @@ -29,6 +29,8 @@ STM32F411-mini-system 是一款基于 ARM Cortex-M4 内核的开发板,最高 - 常用接口:USB 支持 3 种不同接口:虚拟 COM 端口、大容量存储和调试端口 - 调试接口: SWD +开发板更多详细信息请参考[STM32F4x1 MiniF4 WeAct](https://github.com/WeActTC/MiniF4-STM32F4x1) + ## 外设支持 本 BSP 目前对外设的支持情况如下: From 5748ca3967974b5e4ec49309781fefb19a1d3c58 Mon Sep 17 00:00:00 2001 From: greedyhao Date: Tue, 3 Mar 2020 09:03:41 +0800 Subject: [PATCH 6/6] [bsp/stm32] rename --- .travis.yml | 2 +- .../stm32f411-mini-system/project.uvoptx | 967 ------------------ .../.config | 19 +- .../.cproject | 0 .../.gitignore | 0 .../.project | 2 +- .../.settings/language.settings.xml | 0 .../.settings/org.eclipse.core.runtime.prefs | 0 .../Kconfig | 0 .../README.md | 6 +- .../SConscript | 0 .../SConstruct | 0 .../applications/SConscript | 0 .../applications/main.c | 0 .../board/CubeMX_Config/.mxproject | 4 +- .../board/CubeMX_Config/CubeMX_Config.ioc | 0 .../board/CubeMX_Config/Inc/main.h | 0 .../CubeMX_Config/Inc/stm32f4xx_hal_conf.h | 0 .../board/CubeMX_Config/Inc/stm32f4xx_it.h | 0 .../board/CubeMX_Config/Src/main.c | 0 .../CubeMX_Config/Src/stm32f4xx_hal_msp.c | 0 .../board/CubeMX_Config/Src/stm32f4xx_it.c | 0 .../CubeMX_Config/Src/system_stm32f4xx.c | 0 .../board/Kconfig | 0 .../board/SConscript | 0 .../board/board.c | 0 .../board/board.h | 0 .../board/linker_scripts/link.icf | 0 .../board/linker_scripts/link.lds | 0 .../board/linker_scripts/link.sct | 0 .../board/ports/fal_cfg.h | 0 .../figures/board.png | Bin .../makefile.targets | 0 .../project.ewd | 0 .../project.ewp | 0 .../project.eww | 0 .../project.uvopt | 0 .../project.uvoptx} | 0 .../project.uvprojx | 215 ++-- .../rtconfig.h | 1 - .../rtconfig.py | 0 .../template.ewp | 0 .../template.eww | 0 .../template.uvopt | 0 .../stm32f411-weact-MiniF4/template.uvoptx | 191 ++++ .../template.uvprojx | 0 46 files changed, 345 insertions(+), 1062 deletions(-) delete mode 100644 bsp/stm32/stm32f411-mini-system/project.uvoptx rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.config (94%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.cproject (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.gitignore (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.project (98%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.settings/language.settings.xml (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/.settings/org.eclipse.core.runtime.prefs (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/Kconfig (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/README.md (93%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/SConscript (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/SConstruct (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/applications/SConscript (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/applications/main.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/.mxproject (97%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/CubeMX_Config.ioc (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Inc/main.h (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Inc/stm32f4xx_it.h (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Src/main.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Src/stm32f4xx_it.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/CubeMX_Config/Src/system_stm32f4xx.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/Kconfig (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/SConscript (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/board.c (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/board.h (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/linker_scripts/link.icf (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/linker_scripts/link.lds (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/linker_scripts/link.sct (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/board/ports/fal_cfg.h (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/figures/board.png (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/makefile.targets (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/project.ewd (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/project.ewp (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/project.eww (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/project.uvopt (100%) rename bsp/stm32/{stm32f411-mini-system/template.uvoptx => stm32f411-weact-MiniF4/project.uvoptx} (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/project.uvprojx (87%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/rtconfig.h (98%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/rtconfig.py (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/template.ewp (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/template.eww (100%) rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/template.uvopt (100%) create mode 100644 bsp/stm32/stm32f411-weact-MiniF4/template.uvoptx rename bsp/stm32/{stm32f411-mini-system => stm32f411-weact-MiniF4}/template.uvprojx (100%) diff --git a/.travis.yml b/.travis.yml index 4890ddd56f..ef09eebad4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -87,8 +87,8 @@ env: - RTT_BSP='stm32/stm32f405-smdz-breadfruit' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-atk-explorer' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f407-st-discovery' RTT_TOOL_CHAIN='sourcery-arm' - - RTT_BSP='stm32/stm32f411-mini-system' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f411-st-nucleo' RTT_TOOL_CHAIN='sourcery-arm' + - RTT_BSP='stm32/stm32f411-weact-MiniF4' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f427-robomaster-a' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-armfly-v6' RTT_TOOL_CHAIN='sourcery-arm' - RTT_BSP='stm32/stm32f429-atk-apollo' RTT_TOOL_CHAIN='sourcery-arm' diff --git a/bsp/stm32/stm32f411-mini-system/project.uvoptx b/bsp/stm32/stm32f411-mini-system/project.uvoptx deleted file mode 100644 index 5f8d0d72ba..0000000000 --- a/bsp/stm32/stm32f411-mini-system/project.uvoptx +++ /dev/null @@ -1,967 +0,0 @@ - - - - 1.0 - -
    ### uVision Project, (C) Keil Software
    - - - *.c - *.s*; *.src; *.a* - *.obj; *.o - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - 0 - - - - 0 - 0 - - - - rtthread - 0x4 - ARM-ADS - - 12000000 - - 1 - 1 - 0 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - .\build\keil\List\ - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 18 - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 1 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 0 - 6 - - - - - - - - - - - STLink\ST-LINKIII-KEIL_SWO.dll - - - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) - - - 0 - ST-LINKIII-KEIL_SWO - -U066CFF535155878281155143 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) - - - - - 0 - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - 0 - 0 - 0 - - - - - - - - - - 1 - 0 - 2 - 10000000 - - - - - - Kernel - 0 - 0 - 0 - 0 - - 1 - 1 - 1 - 0 - 0 - 0 - ..\..\..\src\clock.c - clock.c - 0 - 0 - - - 1 - 2 - 1 - 0 - 0 - 0 - ..\..\..\src\components.c - components.c - 0 - 0 - - - 1 - 3 - 1 - 0 - 0 - 0 - ..\..\..\src\device.c - device.c - 0 - 0 - - - 1 - 4 - 1 - 0 - 0 - 0 - ..\..\..\src\idle.c - idle.c - 0 - 0 - - - 1 - 5 - 1 - 0 - 0 - 0 - ..\..\..\src\ipc.c - ipc.c - 0 - 0 - - - 1 - 6 - 1 - 0 - 0 - 0 - ..\..\..\src\irq.c - irq.c - 0 - 0 - - - 1 - 7 - 1 - 0 - 0 - 0 - ..\..\..\src\kservice.c - kservice.c - 0 - 0 - - - 1 - 8 - 1 - 0 - 0 - 0 - ..\..\..\src\mem.c - mem.c - 0 - 0 - - - 1 - 9 - 1 - 0 - 0 - 0 - ..\..\..\src\mempool.c - mempool.c - 0 - 0 - - - 1 - 10 - 1 - 0 - 0 - 0 - ..\..\..\src\object.c - object.c - 0 - 0 - - - 1 - 11 - 1 - 0 - 0 - 0 - ..\..\..\src\scheduler.c - scheduler.c - 0 - 0 - - - 1 - 12 - 1 - 0 - 0 - 0 - ..\..\..\src\signal.c - signal.c - 0 - 0 - - - 1 - 13 - 1 - 0 - 0 - 0 - ..\..\..\src\thread.c - thread.c - 0 - 0 - - - 1 - 14 - 1 - 0 - 0 - 0 - ..\..\..\src\timer.c - timer.c - 0 - 0 - - - - - Applications - 0 - 0 - 0 - 0 - - 2 - 15 - 1 - 0 - 0 - 0 - applications\main.c - main.c - 0 - 0 - - - - - Drivers - 0 - 0 - 0 - 0 - - 3 - 16 - 1 - 0 - 0 - 0 - board\board.c - board.c - 0 - 0 - - - 3 - 17 - 1 - 0 - 0 - 0 - board\CubeMX_Config\Src\stm32f4xx_hal_msp.c - stm32f4xx_hal_msp.c - 0 - 0 - - - 3 - 18 - 2 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f411xe.s - startup_stm32f411xe.s - 0 - 0 - - - 3 - 19 - 1 - 0 - 0 - 0 - ..\libraries\HAL_Drivers\drv_gpio.c - drv_gpio.c - 0 - 0 - - - 3 - 20 - 1 - 0 - 0 - 0 - ..\libraries\HAL_Drivers\drv_usart.c - drv_usart.c - 0 - 0 - - - 3 - 21 - 1 - 0 - 0 - 0 - ..\libraries\HAL_Drivers\drv_flash\drv_flash_f4.c - drv_flash_f4.c - 0 - 0 - - - 3 - 22 - 1 - 0 - 0 - 0 - ..\libraries\HAL_Drivers\drv_common.c - drv_common.c - 0 - 0 - - - - - cpu - 0 - 0 - 0 - 0 - - 4 - 23 - 1 - 0 - 0 - 0 - ..\..\..\libcpu\arm\common\backtrace.c - backtrace.c - 0 - 0 - - - 4 - 24 - 1 - 0 - 0 - 0 - ..\..\..\libcpu\arm\common\div0.c - div0.c - 0 - 0 - - - 4 - 25 - 1 - 0 - 0 - 0 - ..\..\..\libcpu\arm\common\showmem.c - showmem.c - 0 - 0 - - - 4 - 26 - 1 - 0 - 0 - 0 - ..\..\..\libcpu\arm\cortex-m4\cpuport.c - cpuport.c - 0 - 0 - - - 4 - 27 - 2 - 0 - 0 - 0 - ..\..\..\libcpu\arm\cortex-m4\context_rvds.S - context_rvds.S - 0 - 0 - - - - - DeviceDrivers - 0 - 0 - 0 - 0 - - 5 - 28 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\misc\pin.c - pin.c - 0 - 0 - - - 5 - 29 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\serial\serial.c - serial.c - 0 - 0 - - - 5 - 30 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\completion.c - completion.c - 0 - 0 - - - 5 - 31 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\dataqueue.c - dataqueue.c - 0 - 0 - - - 5 - 32 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\pipe.c - pipe.c - 0 - 0 - - - 5 - 33 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\ringblk_buf.c - ringblk_buf.c - 0 - 0 - - - 5 - 34 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\ringbuffer.c - ringbuffer.c - 0 - 0 - - - 5 - 35 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\waitqueue.c - waitqueue.c - 0 - 0 - - - 5 - 36 - 1 - 0 - 0 - 0 - ..\..\..\components\drivers\src\workqueue.c - workqueue.c - 0 - 0 - - - - - finsh - 0 - 0 - 0 - 0 - - 6 - 37 - 1 - 0 - 0 - 0 - ..\..\..\components\finsh\shell.c - shell.c - 0 - 0 - - - 6 - 38 - 1 - 0 - 0 - 0 - ..\..\..\components\finsh\cmd.c - cmd.c - 0 - 0 - - - 6 - 39 - 1 - 0 - 0 - 0 - ..\..\..\components\finsh\msh.c - msh.c - 0 - 0 - - - - - libc - 0 - 0 - 0 - 0 - - 7 - 40 - 1 - 0 - 0 - 0 - ..\..\..\components\libc\compilers\common\time.c - time.c - 0 - 0 - - - - - STM32_HAL - 0 - 0 - 0 - 0 - - 8 - 41 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c - system_stm32f4xx.c - 0 - 0 - - - 8 - 42 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c - stm32f4xx_hal.c - 0 - 0 - - - 8 - 43 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c - stm32f4xx_hal_cec.c - 0 - 0 - - - 8 - 44 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c - stm32f4xx_hal_cortex.c - 0 - 0 - - - 8 - 45 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c - stm32f4xx_hal_crc.c - 0 - 0 - - - 8 - 46 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c - stm32f4xx_hal_cryp.c - 0 - 0 - - - 8 - 47 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c - stm32f4xx_hal_cryp_ex.c - 0 - 0 - - - 8 - 48 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c - stm32f4xx_hal_dma.c - 0 - 0 - - - 8 - 49 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c - stm32f4xx_hal_dma_ex.c - 0 - 0 - - - 8 - 50 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c - stm32f4xx_hal_pwr.c - 0 - 0 - - - 8 - 51 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c - stm32f4xx_hal_pwr_ex.c - 0 - 0 - - - 8 - 52 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c - stm32f4xx_hal_rcc.c - 0 - 0 - - - 8 - 53 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c - stm32f4xx_hal_rcc_ex.c - 0 - 0 - - - 8 - 54 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c - stm32f4xx_hal_rng.c - 0 - 0 - - - 8 - 55 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c - stm32f4xx_hal_gpio.c - 0 - 0 - - - 8 - 56 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c - stm32f4xx_hal_uart.c - 0 - 0 - - - 8 - 57 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c - stm32f4xx_hal_usart.c - 0 - 0 - - - 8 - 58 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c - stm32f4xx_hal_flash.c - 0 - 0 - - - 8 - 59 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c - stm32f4xx_hal_flash_ex.c - 0 - 0 - - - 8 - 60 - 1 - 0 - 0 - 0 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c - stm32f4xx_hal_flash_ramfunc.c - 0 - 0 - - - -
    diff --git a/bsp/stm32/stm32f411-mini-system/.config b/bsp/stm32/stm32f411-weact-MiniF4/.config similarity index 94% rename from bsp/stm32/stm32f411-mini-system/.config rename to bsp/stm32/stm32f411-weact-MiniF4/.config index 0fb195dd24..75e4a89e58 100644 --- a/bsp/stm32/stm32f411-mini-system/.config +++ b/bsp/stm32/stm32f411-weact-MiniF4/.config @@ -290,15 +290,6 @@ CONFIG_RT_LIBC_USING_TIME=y # # CONFIG_PKG_USING_CMBACKTRACE is not set # CONFIG_PKG_USING_EASYFLASH is not set -# CONFIG_PKG_EASYFLASH_WRITE_GRAN_1BIT is not set -# CONFIG_PKG_EASYFLASH_WRITE_GRAN_8BITS is not set -# CONFIG_PKG_EASYFLASH_WRITE_GRAN_32BITS is not set -# CONFIG_PKG_USING_EASYFLASH_V400 is not set -# CONFIG_PKG_USING_EASYFLASH_V330 is not set -# CONFIG_PKG_USING_EASYFLASH_V321 is not set -# CONFIG_PKG_USING_EASYFLASH_V310 is not set -# CONFIG_PKG_USING_EASYFLASH_V300 is not set -# CONFIG_PKG_USING_EASYFLASH_LATEST_VERSION is not set # CONFIG_PKG_USING_EASYLOGGER is not set # CONFIG_PKG_USING_SYSTEMVIEW is not set # CONFIG_PKG_USING_RDB is not set @@ -322,11 +313,6 @@ CONFIG_RT_LIBC_USING_TIME=y # CONFIG_PKG_USING_LWEXT4 is not set # CONFIG_PKG_USING_PARTITION is not set # CONFIG_PKG_USING_FAL is not set -# CONFIG_PKG_USING_FAL_V00400 is not set -# CONFIG_PKG_USING_FAL_V00300 is not set -# CONFIG_PKG_USING_FAL_V00200 is not set -# CONFIG_PKG_USING_FAL_V00100 is not set -# CONFIG_PKG_USING_FAL_LATEST_VERSION is not set # CONFIG_PKG_USING_SQLITE is not set # CONFIG_PKG_USING_RTI is not set # CONFIG_PKG_USING_LITTLEVGL2RTT is not set @@ -430,7 +416,10 @@ CONFIG_BSP_USING_UART1=y # CONFIG_BSP_USING_I2C1 is not set # CONFIG_BSP_USING_SPI is not set # CONFIG_BSP_USING_TIM is not set -CONFIG_BSP_USING_ON_CHIP_FLASH=y +# CONFIG_BSP_USING_ON_CHIP_FLASH is not set +# CONFIG_BSP_USING_USBD is not set +# CONFIG_BSP_USING_RNG is not set +# CONFIG_BSP_USING_UDID is not set # # Board extended module Drivers diff --git a/bsp/stm32/stm32f411-mini-system/.cproject b/bsp/stm32/stm32f411-weact-MiniF4/.cproject similarity index 100% rename from bsp/stm32/stm32f411-mini-system/.cproject rename to bsp/stm32/stm32f411-weact-MiniF4/.cproject diff --git a/bsp/stm32/stm32f411-mini-system/.gitignore b/bsp/stm32/stm32f411-weact-MiniF4/.gitignore similarity index 100% rename from bsp/stm32/stm32f411-mini-system/.gitignore rename to bsp/stm32/stm32f411-weact-MiniF4/.gitignore diff --git a/bsp/stm32/stm32f411-mini-system/.project b/bsp/stm32/stm32f411-weact-MiniF4/.project similarity index 98% rename from bsp/stm32/stm32f411-mini-system/.project rename to bsp/stm32/stm32f411-weact-MiniF4/.project index b1bc357d5e..b9bfde6b48 100644 --- a/bsp/stm32/stm32f411-mini-system/.project +++ b/bsp/stm32/stm32f411-weact-MiniF4/.project @@ -1,6 +1,6 @@ - stm32f411-mini-system + stm32f411-weact-MiniF4 diff --git a/bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml b/bsp/stm32/stm32f411-weact-MiniF4/.settings/language.settings.xml similarity index 100% rename from bsp/stm32/stm32f411-mini-system/.settings/language.settings.xml rename to bsp/stm32/stm32f411-weact-MiniF4/.settings/language.settings.xml diff --git a/bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs b/bsp/stm32/stm32f411-weact-MiniF4/.settings/org.eclipse.core.runtime.prefs similarity index 100% rename from bsp/stm32/stm32f411-mini-system/.settings/org.eclipse.core.runtime.prefs rename to bsp/stm32/stm32f411-weact-MiniF4/.settings/org.eclipse.core.runtime.prefs diff --git a/bsp/stm32/stm32f411-mini-system/Kconfig b/bsp/stm32/stm32f411-weact-MiniF4/Kconfig similarity index 100% rename from bsp/stm32/stm32f411-mini-system/Kconfig rename to bsp/stm32/stm32f411-weact-MiniF4/Kconfig diff --git a/bsp/stm32/stm32f411-mini-system/README.md b/bsp/stm32/stm32f411-weact-MiniF4/README.md similarity index 93% rename from bsp/stm32/stm32f411-mini-system/README.md rename to bsp/stm32/stm32f411-weact-MiniF4/README.md index 84e3413812..d06461357e 100644 --- a/bsp/stm32/stm32f411-mini-system/README.md +++ b/bsp/stm32/stm32f411-weact-MiniF4/README.md @@ -1,8 +1,8 @@ -# STM32F411-mini-system 开发板 BSP 说明 +# stm32f411-weact-MiniF4 开发板 BSP 说明 ## 简介 -本文档为 STM32F411-mini-system 开发板提供的 BSP (板级支持包) 说明。 +本文档为 stm32f411-weact-MiniF4 开发板提供的 BSP (板级支持包) 说明。 主要内容如下: @@ -14,7 +14,7 @@ ## 开发板介绍 -STM32F411-mini-system 是 WeAct 推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 100Mhz,该开发板芯片为 STM32F411CE。 +stm32f411-weact-MiniF4 是 WeAct 推出的一款基于 ARM Cortex-M4 内核的开发板,最高主频为 100Mhz,该开发板芯片为 STM32F411CE。 开发板外观如下图所示: diff --git a/bsp/stm32/stm32f411-mini-system/SConscript b/bsp/stm32/stm32f411-weact-MiniF4/SConscript similarity index 100% rename from bsp/stm32/stm32f411-mini-system/SConscript rename to bsp/stm32/stm32f411-weact-MiniF4/SConscript diff --git a/bsp/stm32/stm32f411-mini-system/SConstruct b/bsp/stm32/stm32f411-weact-MiniF4/SConstruct similarity index 100% rename from bsp/stm32/stm32f411-mini-system/SConstruct rename to bsp/stm32/stm32f411-weact-MiniF4/SConstruct diff --git a/bsp/stm32/stm32f411-mini-system/applications/SConscript b/bsp/stm32/stm32f411-weact-MiniF4/applications/SConscript similarity index 100% rename from bsp/stm32/stm32f411-mini-system/applications/SConscript rename to bsp/stm32/stm32f411-weact-MiniF4/applications/SConscript diff --git a/bsp/stm32/stm32f411-mini-system/applications/main.c b/bsp/stm32/stm32f411-weact-MiniF4/applications/main.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/applications/main.c rename to bsp/stm32/stm32f411-weact-MiniF4/applications/main.c diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/.mxproject similarity index 97% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/.mxproject index 8683581515..30e034ac98 100644 --- a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/.mxproject +++ b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/.mxproject @@ -1,7 +1,7 @@ [PreviousGenFiles] -HeaderPath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc +HeaderPath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc HeaderFiles=stm32f4xx_it.h;stm32f4xx_hal_conf.h;main.h; -SourcePath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src +SourcePath=D:/Files/github/my-rt-thread/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src SourceFiles=stm32f4xx_it.c;stm32f4xx_hal_msp.c;main.c; [PreviousLibFiles] diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/CubeMX_Config.ioc similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/CubeMX_Config.ioc rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/CubeMX_Config.ioc diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/main.h similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/main.h rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/main.h diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/stm32f4xx_hal_conf.h diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/stm32f4xx_it.h similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Inc/stm32f4xx_it.h rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Inc/stm32f4xx_it.h diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/main.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/main.c rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/main.c diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/stm32f4xx_hal_msp.c diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/stm32f4xx_it.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/stm32f4xx_it.c rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/stm32f4xx_it.c diff --git a/bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c b/bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/system_stm32f4xx.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/CubeMX_Config/Src/system_stm32f4xx.c rename to bsp/stm32/stm32f411-weact-MiniF4/board/CubeMX_Config/Src/system_stm32f4xx.c diff --git a/bsp/stm32/stm32f411-mini-system/board/Kconfig b/bsp/stm32/stm32f411-weact-MiniF4/board/Kconfig similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/Kconfig rename to bsp/stm32/stm32f411-weact-MiniF4/board/Kconfig diff --git a/bsp/stm32/stm32f411-mini-system/board/SConscript b/bsp/stm32/stm32f411-weact-MiniF4/board/SConscript similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/SConscript rename to bsp/stm32/stm32f411-weact-MiniF4/board/SConscript diff --git a/bsp/stm32/stm32f411-mini-system/board/board.c b/bsp/stm32/stm32f411-weact-MiniF4/board/board.c similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/board.c rename to bsp/stm32/stm32f411-weact-MiniF4/board/board.c diff --git a/bsp/stm32/stm32f411-mini-system/board/board.h b/bsp/stm32/stm32f411-weact-MiniF4/board/board.h similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/board.h rename to bsp/stm32/stm32f411-weact-MiniF4/board/board.h diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf b/bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.icf similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.icf rename to bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.icf diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds b/bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.lds similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.lds rename to bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.lds diff --git a/bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct b/bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.sct similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/linker_scripts/link.sct rename to bsp/stm32/stm32f411-weact-MiniF4/board/linker_scripts/link.sct diff --git a/bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h b/bsp/stm32/stm32f411-weact-MiniF4/board/ports/fal_cfg.h similarity index 100% rename from bsp/stm32/stm32f411-mini-system/board/ports/fal_cfg.h rename to bsp/stm32/stm32f411-weact-MiniF4/board/ports/fal_cfg.h diff --git a/bsp/stm32/stm32f411-mini-system/figures/board.png b/bsp/stm32/stm32f411-weact-MiniF4/figures/board.png similarity index 100% rename from bsp/stm32/stm32f411-mini-system/figures/board.png rename to bsp/stm32/stm32f411-weact-MiniF4/figures/board.png diff --git a/bsp/stm32/stm32f411-mini-system/makefile.targets b/bsp/stm32/stm32f411-weact-MiniF4/makefile.targets similarity index 100% rename from bsp/stm32/stm32f411-mini-system/makefile.targets rename to bsp/stm32/stm32f411-weact-MiniF4/makefile.targets diff --git a/bsp/stm32/stm32f411-mini-system/project.ewd b/bsp/stm32/stm32f411-weact-MiniF4/project.ewd similarity index 100% rename from bsp/stm32/stm32f411-mini-system/project.ewd rename to bsp/stm32/stm32f411-weact-MiniF4/project.ewd diff --git a/bsp/stm32/stm32f411-mini-system/project.ewp b/bsp/stm32/stm32f411-weact-MiniF4/project.ewp similarity index 100% rename from bsp/stm32/stm32f411-mini-system/project.ewp rename to bsp/stm32/stm32f411-weact-MiniF4/project.ewp diff --git a/bsp/stm32/stm32f411-mini-system/project.eww b/bsp/stm32/stm32f411-weact-MiniF4/project.eww similarity index 100% rename from bsp/stm32/stm32f411-mini-system/project.eww rename to bsp/stm32/stm32f411-weact-MiniF4/project.eww diff --git a/bsp/stm32/stm32f411-mini-system/project.uvopt b/bsp/stm32/stm32f411-weact-MiniF4/project.uvopt similarity index 100% rename from bsp/stm32/stm32f411-mini-system/project.uvopt rename to bsp/stm32/stm32f411-weact-MiniF4/project.uvopt diff --git a/bsp/stm32/stm32f411-mini-system/template.uvoptx b/bsp/stm32/stm32f411-weact-MiniF4/project.uvoptx similarity index 100% rename from bsp/stm32/stm32f411-mini-system/template.uvoptx rename to bsp/stm32/stm32f411-weact-MiniF4/project.uvoptx diff --git a/bsp/stm32/stm32f411-mini-system/project.uvprojx b/bsp/stm32/stm32f411-weact-MiniF4/project.uvprojx similarity index 87% rename from bsp/stm32/stm32f411-mini-system/project.uvprojx rename to bsp/stm32/stm32f411-weact-MiniF4/project.uvprojx index 0e2d3e3f11..e16b3651e2 100644 --- a/bsp/stm32/stm32f411-mini-system/project.uvprojx +++ b/bsp/stm32/stm32f411-weact-MiniF4/project.uvprojx @@ -1,10 +1,7 @@ - 2.1 -
    ### uVision Project, (C) Keil Software
    - rtthread @@ -19,28 +16,28 @@ Keil.STM32F4xx_DFP.2.14.0 http://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IROM(0x08000000,0x00080000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE - - + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512 -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM)) 0 $$Device:STM32F411CEUx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h - - - - - - - - - + + + + + + + + + $$Device:STM32F411CEUx$CMSIS\SVD\STM32F411xx.svd 0 0 - - - - - + + + + + 0 0 @@ -62,8 +59,8 @@ 0 0 - - + + 0 0 0 @@ -72,8 +69,8 @@ 0 0 - - + + 0 0 0 @@ -83,14 +80,14 @@ 1 0 fromelf --bin !L --output rtthread.bin - + 0 0 0 0 0 - + 0 @@ -104,8 +101,8 @@ 0 0 3 - - + + 1 @@ -138,11 +135,11 @@ 1 BIN\UL2CM3.DLL - - - - - + + + + + 0 @@ -175,7 +172,7 @@ 0 0 "Cortex-M4" - + 0 0 0 @@ -307,7 +304,7 @@ 0x0 - + 1 @@ -334,10 +331,10 @@ 0 0 - + USE_HAL_DRIVER, STM32F411xE - - .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\libraries\HAL_Drivers\drv_flash;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\libc\compilers\common;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include + + .;..\..\..\include;applications;.;board;board\CubeMX_Config\Inc;board\ports;..\libraries\HAL_Drivers;..\libraries\HAL_Drivers\config;..\..\..\libcpu\arm\common;..\..\..\libcpu\arm\cortex-m4;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\drivers\include;..\..\..\components\finsh;..\..\..\components\libc\compilers\common;..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Inc;..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Include;..\libraries\STM32F4xx_HAL\CMSIS\Include @@ -352,10 +349,10 @@ 0 0 - - - - + + + + @@ -367,13 +364,13 @@ 0 0x08000000 0x20000000 - + .\board\linker_scripts\link.sct - - - - - + + + + + @@ -386,66 +383,92 @@ 1 ..\..\..\src\clock.c + + components.c 1 ..\..\..\src\components.c + + device.c 1 ..\..\..\src\device.c + + idle.c 1 ..\..\..\src\idle.c + + ipc.c 1 ..\..\..\src\ipc.c + + irq.c 1 ..\..\..\src\irq.c + + kservice.c 1 ..\..\..\src\kservice.c + + mem.c 1 ..\..\..\src\mem.c + + mempool.c 1 ..\..\..\src\mempool.c + + object.c 1 ..\..\..\src\object.c + + scheduler.c 1 ..\..\..\src\scheduler.c + + signal.c 1 ..\..\..\src\signal.c + + thread.c 1 ..\..\..\src\thread.c + + timer.c 1 @@ -471,31 +494,36 @@ 1 board\board.c + + stm32f4xx_hal_msp.c 1 board\CubeMX_Config\Src\stm32f4xx_hal_msp.c + + startup_stm32f411xe.s 2 ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\arm\startup_stm32f411xe.s + + drv_gpio.c 1 ..\libraries\HAL_Drivers\drv_gpio.c + + drv_usart.c 1 ..\libraries\HAL_Drivers\drv_usart.c - - drv_flash_f4.c - 1 - ..\libraries\HAL_Drivers\drv_flash\drv_flash_f4.c - + + drv_common.c 1 @@ -511,21 +539,29 @@ 1 ..\..\..\libcpu\arm\common\backtrace.c + + div0.c 1 ..\..\..\libcpu\arm\common\div0.c + + showmem.c 1 ..\..\..\libcpu\arm\common\showmem.c + + cpuport.c 1 ..\..\..\libcpu\arm\cortex-m4\cpuport.c + + context_rvds.S 2 @@ -541,41 +577,57 @@ 1 ..\..\..\components\drivers\misc\pin.c + + serial.c 1 ..\..\..\components\drivers\serial\serial.c + + completion.c 1 ..\..\..\components\drivers\src\completion.c + + dataqueue.c 1 ..\..\..\components\drivers\src\dataqueue.c + + pipe.c 1 ..\..\..\components\drivers\src\pipe.c + + ringblk_buf.c 1 ..\..\..\components\drivers\src\ringblk_buf.c + + ringbuffer.c 1 ..\..\..\components\drivers\src\ringbuffer.c + + waitqueue.c 1 ..\..\..\components\drivers\src\waitqueue.c + + workqueue.c 1 @@ -591,11 +643,15 @@ 1 ..\..\..\components\finsh\shell.c + + cmd.c 1 ..\..\..\components\finsh\cmd.c + + msh.c 1 @@ -621,111 +677,126 @@ 1 ..\libraries\STM32F4xx_HAL\CMSIS\Device\ST\STM32F4xx\Source\Templates\system_stm32f4xx.c + + stm32f4xx_hal.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal.c + + stm32f4xx_hal_cec.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cec.c + + stm32f4xx_hal_cortex.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cortex.c + + stm32f4xx_hal_crc.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_crc.c + + stm32f4xx_hal_cryp.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp.c + + stm32f4xx_hal_cryp_ex.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_cryp_ex.c + + stm32f4xx_hal_dma.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma.c + + stm32f4xx_hal_dma_ex.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_dma_ex.c + + stm32f4xx_hal_pwr.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr.c + + stm32f4xx_hal_pwr_ex.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_pwr_ex.c + + stm32f4xx_hal_rcc.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc.c + + stm32f4xx_hal_rcc_ex.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rcc_ex.c + + stm32f4xx_hal_rng.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_rng.c + + stm32f4xx_hal_gpio.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_gpio.c + + stm32f4xx_hal_uart.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_uart.c + + stm32f4xx_hal_usart.c 1 ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_usart.c - - stm32f4xx_hal_flash.c - 1 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash.c - - - stm32f4xx_hal_flash_ex.c - 1 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ex.c - - - stm32f4xx_hal_flash_ramfunc.c - 1 - ..\libraries\STM32F4xx_HAL\STM32F4xx_HAL_Driver\Src\stm32f4xx_hal_flash_ramfunc.c - - - - - + + + -
    diff --git a/bsp/stm32/stm32f411-mini-system/rtconfig.h b/bsp/stm32/stm32f411-weact-MiniF4/rtconfig.h similarity index 98% rename from bsp/stm32/stm32f411-mini-system/rtconfig.h rename to bsp/stm32/stm32f411-weact-MiniF4/rtconfig.h index 0c4e40cec2..c159ea6b39 100644 --- a/bsp/stm32/stm32f411-mini-system/rtconfig.h +++ b/bsp/stm32/stm32f411-weact-MiniF4/rtconfig.h @@ -162,7 +162,6 @@ #define BSP_USING_GPIO #define BSP_USING_UART #define BSP_USING_UART1 -#define BSP_USING_ON_CHIP_FLASH /* Board extended module Drivers */ diff --git a/bsp/stm32/stm32f411-mini-system/rtconfig.py b/bsp/stm32/stm32f411-weact-MiniF4/rtconfig.py similarity index 100% rename from bsp/stm32/stm32f411-mini-system/rtconfig.py rename to bsp/stm32/stm32f411-weact-MiniF4/rtconfig.py diff --git a/bsp/stm32/stm32f411-mini-system/template.ewp b/bsp/stm32/stm32f411-weact-MiniF4/template.ewp similarity index 100% rename from bsp/stm32/stm32f411-mini-system/template.ewp rename to bsp/stm32/stm32f411-weact-MiniF4/template.ewp diff --git a/bsp/stm32/stm32f411-mini-system/template.eww b/bsp/stm32/stm32f411-weact-MiniF4/template.eww similarity index 100% rename from bsp/stm32/stm32f411-mini-system/template.eww rename to bsp/stm32/stm32f411-weact-MiniF4/template.eww diff --git a/bsp/stm32/stm32f411-mini-system/template.uvopt b/bsp/stm32/stm32f411-weact-MiniF4/template.uvopt similarity index 100% rename from bsp/stm32/stm32f411-mini-system/template.uvopt rename to bsp/stm32/stm32f411-weact-MiniF4/template.uvopt diff --git a/bsp/stm32/stm32f411-weact-MiniF4/template.uvoptx b/bsp/stm32/stm32f411-weact-MiniF4/template.uvoptx new file mode 100644 index 0000000000..60c8676254 --- /dev/null +++ b/bsp/stm32/stm32f411-weact-MiniF4/template.uvoptx @@ -0,0 +1,191 @@ + + + + 1.0 + +
    ### uVision Project, (C) Keil Software
    + + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc + *.plm + *.cpp + 0 + + + + 0 + 0 + + + + rtthread + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\build\keil\List\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 0 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 ) -FN1 -FC1000 -FD20000000 -FF0STM32F4xx_512 -FL080000 -FS08000000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + 0 + ST-LINKIII-KEIL_SWO + -U066CFF535155878281155143 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("") -D00(00000000) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F411CEUx$CMSIS\Flash\STM32F4xx_512.FLM) + + + + + 0 + + + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 2 + 10000000 + + + + + + Source Group 1 + 0 + 0 + 0 + 0 + + +
    diff --git a/bsp/stm32/stm32f411-mini-system/template.uvprojx b/bsp/stm32/stm32f411-weact-MiniF4/template.uvprojx similarity index 100% rename from bsp/stm32/stm32f411-mini-system/template.uvprojx rename to bsp/stm32/stm32f411-weact-MiniF4/template.uvprojx