From 49d9effa8509aeaf2045ebc3fcd1df27050d82ca Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:02:18 +0800 Subject: [PATCH 01/19] [bsp][gd32] Add minimal GD32H77D GinoPi board support Use SOC_SERIES_GD32H77x_H78X with the dedicated CMSIS and peripheral library packages. Add startup, linker scripts, toolchain templates and board configuration. Keep the default configuration limited to UART1 and PIN. Select application sources explicitly and provide an Applications menu for optional examples. The minimal firmware was downloaded and booted with the UART1 console at 115200 baud. Check the CMSIS and series package bridge directories under packages, consistent with the other GD32 BSPs. Verified SCons dry runs in the source BSP and a generated distribution project. --- bsp/gd32/arm/gd32h77d-ginopi/.config | 1519 +++++++++++++++++ bsp/gd32/arm/gd32h77d-ginopi/.gitignore | 32 + bsp/gd32/arm/gd32h77d-ginopi/Kconfig | 16 + bsp/gd32/arm/gd32h77d-ginopi/README.md | 172 ++ bsp/gd32/arm/gd32h77d-ginopi/SConscript | 14 + bsp/gd32/arm/gd32h77d-ginopi/SConstruct | 74 + .../arm/gd32h77d-ginopi/applications/Kconfig | 3 + .../gd32h77d-ginopi/applications/SConscript | 8 + .../arm/gd32h77d-ginopi/applications/main.c | 37 + bsp/gd32/arm/gd32h77d-ginopi/board/Kconfig | 787 +++++++++ bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 17 + bsp/gd32/arm/gd32h77d-ginopi/board/board.c | 147 ++ bsp/gd32/arm/gd32h77d-ginopi/board/board.h | 63 + .../board/gd32h77x_78x_libopt.h | 104 ++ .../board/linker_scripts/link.icf | 40 + .../board/linker_scripts/link.ld | 232 +++ .../board/linker_scripts/link.sct | 27 + .../arm/gd32h77d-ginopi/figures/board.png | Bin 0 -> 2586554 bytes bsp/gd32/arm/gd32h77d-ginopi/rtconfig.h | 453 +++++ bsp/gd32/arm/gd32h77d-ginopi/rtconfig.py | 222 +++ bsp/gd32/arm/gd32h77d-ginopi/template.uvoptx | 205 +++ bsp/gd32/arm/gd32h77d-ginopi/template.uvprojx | 406 +++++ bsp/gd32/arm/libraries/.gitignore | 2 + bsp/gd32/arm/libraries/Kconfig | 5 + bsp/gd32/arm/libraries/gd32_drivers/Kconfig | 1 + bsp/gd32/arm/libraries/gd32_drivers/drv_can.h | 1 - .../arm/libraries/gd32_drivers/drv_gpio.c | 22 +- .../arm/libraries/gd32_drivers/drv_gpio.h | 6 +- .../arm/libraries/gd32_drivers/drv_usart.c | 22 +- .../arm/libraries/gd32_drivers/drv_usart.h | 2 +- 30 files changed, 4613 insertions(+), 26 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/.config create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/.gitignore create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/Kconfig create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/README.md create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/SConscript create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/SConstruct create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/main.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/Kconfig create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/SConscript create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/board.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/board.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/gd32h77x_78x_libopt.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.icf create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/figures/board.png create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/rtconfig.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/rtconfig.py create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/template.uvoptx create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/template.uvprojx create mode 100644 bsp/gd32/arm/libraries/.gitignore diff --git a/bsp/gd32/arm/gd32h77d-ginopi/.config b/bsp/gd32/arm/gd32h77d-ginopi/.config new file mode 100644 index 00000000000..b90d307bd01 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/.config @@ -0,0 +1,1519 @@ + +# +# RT-Thread Kernel +# + +# +# klibc options +# + +# +# rt_vsnprintf options +# +# CONFIG_RT_KLIBC_USING_LIBC_VSNPRINTF is not set +# CONFIG_RT_KLIBC_USING_VSNPRINTF_LONGLONG is not set +# CONFIG_RT_KLIBC_USING_VSNPRINTF_STANDARD is not set +# end of rt_vsnprintf options + +# +# rt_vsscanf options +# +# CONFIG_RT_KLIBC_USING_LIBC_VSSCANF is not set +# end of rt_vsscanf options + +# +# rt_memset options +# +# CONFIG_RT_KLIBC_USING_USER_MEMSET is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMSET is not set +# CONFIG_RT_KLIBC_USING_TINY_MEMSET is not set +# end of rt_memset options + +# +# rt_memcpy options +# +# CONFIG_RT_KLIBC_USING_USER_MEMCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMCPY is not set +# CONFIG_RT_KLIBC_USING_TINY_MEMCPY is not set +# end of rt_memcpy options + +# +# rt_memmove options +# +# CONFIG_RT_KLIBC_USING_USER_MEMMOVE is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMMOVE is not set +# end of rt_memmove options + +# +# rt_memcmp options +# +# CONFIG_RT_KLIBC_USING_USER_MEMCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_MEMCMP is not set +# end of rt_memcmp options + +# +# rt_strstr options +# +# CONFIG_RT_KLIBC_USING_USER_STRSTR is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRSTR is not set +# end of rt_strstr options + +# +# rt_strcasecmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRCASECMP is not set +# end of rt_strcasecmp options + +# +# rt_strncpy options +# +# CONFIG_RT_KLIBC_USING_USER_STRNCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRNCPY is not set +# end of rt_strncpy options + +# +# rt_strcpy options +# +# CONFIG_RT_KLIBC_USING_USER_STRCPY is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRCPY is not set +# end of rt_strcpy options + +# +# rt_strncmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRNCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRNCMP is not set +# end of rt_strncmp options + +# +# rt_strcmp options +# +# CONFIG_RT_KLIBC_USING_USER_STRCMP is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRCMP is not set +# end of rt_strcmp options + +# +# rt_strlen options +# +# CONFIG_RT_KLIBC_USING_USER_STRLEN is not set +# CONFIG_RT_KLIBC_USING_LIBC_STRLEN is not set +# end of rt_strlen options + +# +# rt_strnlen options +# +# CONFIG_RT_KLIBC_USING_USER_STRNLEN is not set +# end of rt_strnlen options +# end of klibc options + +CONFIG_RT_NAME_MAX=12 +# CONFIG_RT_USING_ARCH_DATA_TYPE is not set +# CONFIG_RT_USING_NANO is not set +# CONFIG_RT_USING_SMART is not set +# CONFIG_RT_USING_AMP is not set +# CONFIG_RT_USING_SMP is not set +CONFIG_RT_CPUS_NR=1 +CONFIG_RT_ALIGN_SIZE=8 +# 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_HOOK_USING_FUNC_PTR=y +# CONFIG_RT_USING_HOOKLIST is not set +CONFIG_RT_USING_IDLE_HOOK=y +CONFIG_RT_IDLE_HOOK_LIST_SIZE=4 +CONFIG_IDLE_THREAD_STACK_SIZE=256 +CONFIG_RT_USING_TIMER_SOFT=y +CONFIG_RT_TIMER_THREAD_PRIO=4 +CONFIG_RT_TIMER_THREAD_STACK_SIZE=512 +# CONFIG_RT_USING_TIMER_ALL_SOFT is not set +# CONFIG_RT_USING_CPU_USAGE_TRACER is not set + +# +# kservice options +# +# CONFIG_RT_USING_TINY_FFS is not set +# end of kservice options + +CONFIG_RT_USING_DEBUG=y +CONFIG_RT_DEBUGING_ASSERT=y +CONFIG_RT_DEBUGING_COLOR=y +CONFIG_RT_DEBUGING_CONTEXT=y +# CONFIG_RT_DEBUGING_AUTO_INIT is not set +# CONFIG_RT_USING_CI_ACTION 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_MESSAGEQUEUE_PRIORITY is not set +# CONFIG_RT_USING_SIGNALS is not set +# end of Inter-Thread communication + +# +# Memory Management +# +CONFIG_RT_USING_MEMPOOL=y +CONFIG_RT_USING_SMALL_MEM=y +# CONFIG_RT_USING_SLAB is not set +# CONFIG_RT_USING_MEMHEAP is not set +CONFIG_RT_USING_SMALL_MEM_AS_HEAP=y +# CONFIG_RT_USING_MEMHEAP_AS_HEAP is not set +# CONFIG_RT_USING_SLAB_AS_HEAP is not set +# CONFIG_RT_USING_USERHEAP is not set +# CONFIG_RT_USING_NOHEAP is not set +# CONFIG_RT_USING_MEMTRACE is not set +# CONFIG_RT_USING_HEAP_ISR is not set +CONFIG_RT_USING_HEAP=y +# end of Memory Management + +CONFIG_RT_USING_DEVICE=y +# CONFIG_RT_USING_DEVICE_OPS is not set +# CONFIG_RT_USING_INTERRUPT_INFO is not set +# CONFIG_RT_USING_THREADSAFE_PRINTF is not set +CONFIG_RT_USING_CONSOLE=y +CONFIG_RT_CONSOLEBUF_SIZE=128 +CONFIG_RT_CONSOLE_DEVICE_NAME="uart1" +CONFIG_RT_USING_CONSOLE_OUTPUT_CTL=y +CONFIG_RT_VER_NUM=0x50301 +# CONFIG_RT_USING_STDC_ATOMIC is not set +CONFIG_RT_BACKTRACE_LEVEL_MAX_NR=32 +# end of RT-Thread Kernel + +CONFIG_RT_USING_CACHE=y +CONFIG_RT_USING_HW_ATOMIC=y +CONFIG_ARCH_USING_HW_ATOMIC_8=y +CONFIG_ARCH_USING_HW_ATOMIC_16=y +CONFIG_RT_USING_CPU_FFS=y +CONFIG_ARCH_ARM=y +CONFIG_ARCH_ARM_CORTEX_M=y +CONFIG_ARCH_ARM_CORTEX_M7=y + +# +# 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 +# CONFIG_RT_USING_LEGACY is not set +CONFIG_RT_USING_MSH=y +CONFIG_RT_USING_FINSH=y +CONFIG_FINSH_USING_MSH=y +CONFIG_FINSH_THREAD_NAME="tshell" +CONFIG_FINSH_THREAD_PRIORITY=20 +CONFIG_FINSH_THREAD_STACK_SIZE=4096 +CONFIG_FINSH_USING_HISTORY=y +CONFIG_FINSH_HISTORY_LINES=5 +# CONFIG_FINSH_USING_WORD_OPERATION is not set +# CONFIG_FINSH_USING_FUNC_EXT is not set +CONFIG_FINSH_USING_SYMTAB=y +CONFIG_FINSH_CMD_SIZE=80 +CONFIG_MSH_USING_BUILT_IN_COMMANDS=y +CONFIG_FINSH_USING_DESCRIPTION=y +# CONFIG_FINSH_ECHO_DISABLE_DEFAULT is not set +# CONFIG_FINSH_USING_AUTH is not set +CONFIG_FINSH_ARG_MAX=10 +CONFIG_FINSH_USING_OPTION_COMPLETION=y + +# +# DFS: device virtual file system +# +# CONFIG_RT_USING_DFS is not set +# end of DFS: device virtual file system + +# CONFIG_RT_USING_FAL is not set + +# +# Device Drivers +# +# CONFIG_RT_USING_DM is not set +# CONFIG_RT_USING_DEV_BUS is not set +CONFIG_RT_USING_DEVICE_IPC=y +CONFIG_RT_UNAMED_PIPE_NUMBER=64 +# CONFIG_RT_USING_SYSTEM_WORKQUEUE is not set +CONFIG_RT_USING_SERIAL=y +CONFIG_RT_USING_SERIAL_V1=y +# CONFIG_RT_USING_SERIAL_V2 is not set +# CONFIG_RT_SERIAL_USING_DMA is not set +CONFIG_RT_SERIAL_RB_BUFSZ=64 +# CONFIG_RT_USING_SERIAL_BYPASS is not set +# CONFIG_RT_USING_CAN is not set +# CONFIG_RT_USING_ADC is not set +# CONFIG_RT_USING_CLOCK_TIME is not set +# CONFIG_RT_USING_I2C is not set +# CONFIG_RT_USING_PHY is not set +# CONFIG_RT_USING_PHY_V2 is not set +# CONFIG_RT_USING_DAC is not set +# CONFIG_RT_USING_NULL is not set +# CONFIG_RT_USING_ZERO is not set +# CONFIG_RT_USING_RANDOM is not set +# CONFIG_RT_USING_PWM is not set +# CONFIG_RT_USING_PULSE_ENCODER is not set +# CONFIG_RT_USING_INPUT_CAPTURE 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_LCD is not set +# CONFIG_RT_USING_HWCRYPTO is not set +# CONFIG_RT_USING_WIFI is not set +# CONFIG_RT_USING_RPMSG is not set +# CONFIG_RT_USING_BLK is not set +# CONFIG_RT_USING_REGULATOR is not set +# CONFIG_RT_USING_POWER_SUPPLY is not set +CONFIG_RT_USING_PIN=y +# CONFIG_RT_USING_CHERRYUSB is not set +# end of Device Drivers + +# +# C/C++ and POSIX layer +# + +# +# ISO-ANSI C layer +# + +# +# Timezone and Daylight Saving Time +# +# CONFIG_RT_LIBC_USING_FULL_TZ_DST is not set +CONFIG_RT_LIBC_USING_LIGHT_TZ_DST=y +CONFIG_RT_LIBC_TZ_DEFAULT_HOUR=8 +CONFIG_RT_LIBC_TZ_DEFAULT_MIN=0 +CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0 +# end of Timezone and Daylight Saving Time +# end of ISO-ANSI C layer + +# +# POSIX (Portable Operating System Interface) layer +# +# CONFIG_RT_USING_POSIX_FS is not set +# CONFIG_RT_USING_POSIX_DELAY is not set +# CONFIG_RT_USING_POSIX_CLOCK is not set +# CONFIG_RT_USING_POSIX_TIMER is not set +# CONFIG_RT_USING_PTHREADS is not set +# CONFIG_RT_USING_MODULE is not set + +# +# Interprocess Communication (IPC) +# +# CONFIG_RT_USING_POSIX_PIPE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_QUEUE is not set +# CONFIG_RT_USING_POSIX_MESSAGE_SEMAPHORE is not set + +# +# Socket is in the 'Network' category +# +# end of Interprocess Communication (IPC) +# end of POSIX (Portable Operating System Interface) layer + +# CONFIG_RT_USING_CPLUSPLUS is not set +# end of C/C++ and POSIX layer + +# +# Network +# +# CONFIG_RT_USING_SAL is not set +# CONFIG_RT_USING_NETDEV is not set +# CONFIG_RT_USING_LWIP is not set +# CONFIG_RT_USING_AT is not set +# end of Network + +# +# Memory protection +# +# CONFIG_RT_USING_MEM_PROTECTION is not set +# CONFIG_RT_USING_HW_STACK_GUARD is not set +# end of Memory protection + +# +# 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_VAR_EXPORT is not set +# CONFIG_RT_USING_RESOURCE_ID is not set +# CONFIG_RT_USING_ADT is not set +# CONFIG_RT_USING_RT_LINK is not set +# end of Utilities + +# +# Using USB legacy version +# +# CONFIG_RT_USING_USB_HOST is not set +# CONFIG_RT_USING_USB_DEVICE is not set +# end of Using USB legacy version + +# CONFIG_RT_USING_FDT is not set +# CONFIG_RT_USING_RUST is not set +# end of RT-Thread Components + +# +# RT-Thread Utestcases +# +# CONFIG_RT_USING_UTESTCASES is not set +# end of RT-Thread Utestcases + +# +# RT-Thread online packages +# + +# +# IoT - internet of things +# +# CONFIG_PKG_USING_LORAWAN_DRIVER is not set +# CONFIG_PKG_USING_PAHOMQTT is not set +# CONFIG_PKG_USING_UMQTT 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_KAWAII_MQTT is not set +# CONFIG_PKG_USING_BC28_MQTT is not set +# CONFIG_PKG_USING_WEBTERMINAL is not set +# CONFIG_PKG_USING_FREEMODBUS is not set +# CONFIG_PKG_USING_NANOPB is not set +# CONFIG_PKG_USING_WIFI_HOST_DRIVER is not set +# CONFIG_PKG_USING_ESP_HOSTED is not set + +# +# Wi-Fi +# + +# +# Marvell WiFi +# +# CONFIG_PKG_USING_WLANMARVELL is not set +# end of Marvell WiFi + +# +# Wiced WiFi +# +# CONFIG_PKG_USING_WLAN_WICED is not set +# end of Wiced WiFi + +# CONFIG_PKG_USING_RW007 is not set + +# +# CYW43012 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43012 is not set +# end of CYW43012 WiFi + +# +# BL808 WiFi +# +# CONFIG_PKG_USING_WLAN_BL808 is not set +# end of BL808 WiFi + +# +# CYW43439 WiFi +# +# CONFIG_PKG_USING_WLAN_CYW43439 is not set +# end of CYW43439 WiFi +# end of Wi-Fi + +# CONFIG_PKG_USING_COAP is not set +# CONFIG_PKG_USING_NOPOLL is not set +# CONFIG_PKG_USING_NETUTILS is not set +# CONFIG_PKG_USING_CMUX 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 +# CONFIG_PKG_USING_ZB_COORDINATOR 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_IOT_EXPLORER is not set +# CONFIG_PKG_USING_JIOT-C-SDK is not set +# CONFIG_PKG_USING_UCLOUD_IOT_SDK is not set +# CONFIG_PKG_USING_JOYLINK is not set +# CONFIG_PKG_USING_IOTSHARP_SDK is not set +# end of IoT Cloud + +# CONFIG_PKG_USING_NIMBLE is not set +# CONFIG_PKG_USING_LLSYNC_SDK_ADAPTER 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_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_ERPC is not set +# CONFIG_PKG_USING_AGILE_TELNET is not set +# CONFIG_PKG_USING_NMEALIB is not set +# CONFIG_PKG_USING_PDULIB is not set +# CONFIG_PKG_USING_BTSTACK is not set +# CONFIG_PKG_USING_BT_CYW43012 is not set +# CONFIG_PKG_USING_CYW43XX is not set +# CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set +# CONFIG_PKG_USING_MAVLINK is not set +# CONFIG_PKG_USING_BSAL is not set +# CONFIG_PKG_USING_AGILE_MODBUS is not set +# CONFIG_PKG_USING_AGILE_FTP is not set +# CONFIG_PKG_USING_EMBEDDEDPROTO is not set +# CONFIG_PKG_USING_RT_LINK_HW is not set +# CONFIG_PKG_USING_RYANMQTT is not set +# CONFIG_PKG_USING_RYANW5500 is not set +# CONFIG_PKG_USING_LORA_PKT_FWD is not set +# CONFIG_PKG_USING_LORA_GW_DRIVER_LIB is not set +# CONFIG_PKG_USING_LORA_PKT_SNIFFER is not set +# CONFIG_PKG_USING_HM is not set +# CONFIG_PKG_USING_SMALL_MODBUS is not set +# CONFIG_PKG_USING_NET_SERVER is not set +# CONFIG_PKG_USING_ZFTP is not set +# CONFIG_PKG_USING_WOL is not set +# CONFIG_PKG_USING_ZEPHYR_POLLING is not set +# CONFIG_PKG_USING_MATTER_ADAPTATION_LAYER is not set +# CONFIG_PKG_USING_LHC_MODBUS is not set +# CONFIG_PKG_USING_QMODBUS is not set +# CONFIG_PKG_USING_PNET is not set +# CONFIG_PKG_USING_OPENER is not set +# CONFIG_PKG_USING_FREEMQTT is not set +# end of IoT - internet of things + +# +# security packages +# +# CONFIG_PKG_USING_MBEDTLS is not set +# CONFIG_PKG_USING_LIBSODIUM is not set +# CONFIG_PKG_USING_LIBHYDROGEN is not set +# CONFIG_PKG_USING_TINYCRYPT is not set +# CONFIG_PKG_USING_TFM is not set +# CONFIG_PKG_USING_YD_CRYPTO is not set +# end of security packages + +# +# language packages +# + +# +# JSON: JavaScript Object Notation, a lightweight data-interchange format +# +# CONFIG_PKG_USING_CJSON is not set +# CONFIG_PKG_USING_LJSON is not set +# CONFIG_PKG_USING_RT_CJSON_TOOLS is not set +# CONFIG_PKG_USING_RAPIDJSON is not set +# CONFIG_PKG_USING_JSMN is not set +# CONFIG_PKG_USING_AGILE_JSMN is not set +# CONFIG_PKG_USING_PARSON is not set +# CONFIG_PKG_USING_RYAN_JSON is not set +# end of JSON: JavaScript Object Notation, a lightweight data-interchange format + +# +# XML: Extensible Markup Language +# +# CONFIG_PKG_USING_SIMPLE_XML is not set +# CONFIG_PKG_USING_EZXML is not set +# end of XML: Extensible Markup Language + +# CONFIG_PKG_USING_LUATOS_SOC is not set +# CONFIG_PKG_USING_LUA is not set +# CONFIG_PKG_USING_JERRYSCRIPT is not set +# CONFIG_PKG_USING_MICROPYTHON is not set +# CONFIG_PKG_USING_PIKASCRIPT is not set +# CONFIG_PKG_USING_RTT_RUST is not set +# end of language packages + +# +# multimedia packages +# + +# +# LVGL: powerful and easy-to-use embedded GUI library +# +# CONFIG_PKG_USING_LVGL is not set +# CONFIG_PKG_USING_LV_MUSIC_DEMO is not set +# CONFIG_PKG_USING_GUI_GUIDER_DEMO is not set +# end of LVGL: powerful and easy-to-use embedded GUI library + +# +# u8g2: a monochrome graphic library +# +# CONFIG_PKG_USING_U8G2_OFFICIAL is not set +# CONFIG_PKG_USING_U8G2 is not set +# end of u8g2: a monochrome graphic library + +# CONFIG_PKG_USING_NES_SIMULATOR is not set +# 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 +# CONFIG_PKG_USING_PDFGEN is not set +# CONFIG_PKG_USING_HELIX is not set +# CONFIG_PKG_USING_AZUREGUIX is not set +# CONFIG_PKG_USING_TOUCHGFX2RTT is not set +# CONFIG_PKG_USING_NUEMWIN is not set +# CONFIG_PKG_USING_MP3PLAYER is not set +# CONFIG_PKG_USING_TINYJPEG is not set +# CONFIG_PKG_USING_UGUI is not set +# CONFIG_PKG_USING_MCURSES is not set +# CONFIG_PKG_USING_TERMBOX is not set +# CONFIG_PKG_USING_VT100 is not set +# CONFIG_PKG_USING_QRCODE is not set +# CONFIG_PKG_USING_GUIENGINE is not set +# CONFIG_PKG_USING_PERSIMMON is not set +# CONFIG_PKG_USING_3GPP_AMRNB is not set +# end of multimedia packages + +# +# tools packages +# +# CONFIG_PKG_USING_VECTOR is not set +# CONFIG_PKG_USING_SORCH is not set +# CONFIG_PKG_USING_DICT is not set +# CONFIG_PKG_USING_CMBACKTRACE is not set +# CONFIG_PKG_USING_MCOREDUMP is not set +# CONFIG_PKG_USING_EASYFLASH is not set +# CONFIG_PKG_USING_EASYLOGGER is not set +# CONFIG_PKG_USING_SYSTEMVIEW is not set +# CONFIG_PKG_USING_SEGGER_RTT is not set +# CONFIG_PKG_USING_RTT_AUTO_EXE_CMD is not set +# CONFIG_PKG_USING_RDB is not set +# CONFIG_PKG_USING_ULOG_EASYFLASH is not set +# CONFIG_PKG_USING_LOGMGR 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_MEMORYPERF 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 +# CONFIG_PKG_USING_GPS_RMC is not set +# CONFIG_PKG_USING_URLENCODE is not set +# CONFIG_PKG_USING_UMCN is not set +# CONFIG_PKG_USING_LWRB2RTT is not set +# CONFIG_PKG_USING_CPU_USAGE is not set +# CONFIG_PKG_USING_GBK2UTF8 is not set +# CONFIG_PKG_USING_VCONSOLE is not set +# CONFIG_PKG_USING_KDB is not set +# CONFIG_PKG_USING_WAMR is not set +# CONFIG_PKG_USING_MICRO_XRCE_DDS_CLIENT is not set +# CONFIG_PKG_USING_LWLOG is not set +# CONFIG_PKG_USING_ANV_TRACE is not set +# CONFIG_PKG_USING_ANV_MEMLEAK is not set +# CONFIG_PKG_USING_ANV_TESTSUIT is not set +# CONFIG_PKG_USING_ANV_BENCH is not set +# CONFIG_PKG_USING_DEVMEM is not set +# CONFIG_PKG_USING_REGEX is not set +# CONFIG_PKG_USING_MEM_SANDBOX is not set +# CONFIG_PKG_USING_SOLAR_TERMS is not set +# CONFIG_PKG_USING_GAN_ZHI is not set +# CONFIG_PKG_USING_FDT is not set +# CONFIG_PKG_USING_CBOX is not set +# CONFIG_PKG_USING_SNOWFLAKE is not set +# CONFIG_PKG_USING_HASH_MATCH is not set +# CONFIG_PKG_USING_ARMV7M_DWT_TOOL is not set +# CONFIG_PKG_USING_VOFA_PLUS is not set +# CONFIG_PKG_USING_RT_TRACE is not set +# CONFIG_PKG_USING_ZDEBUG is not set +# CONFIG_PKG_USING_RVBACKTRACE is not set +# CONFIG_PKG_USING_HPATCHLITE is not set +# CONFIG_PKG_USING_THREAD_METRIC is not set +# CONFIG_PKG_USING_UORB is not set +# CONFIG_PKG_USING_RT_TUNNEL is not set +# CONFIG_PKG_USING_VIRTUAL_TERMINAL is not set +# end of tools packages + +# +# system packages +# + +# +# enhanced kernel services +# +# CONFIG_PKG_USING_RT_MEMCPY_CM is not set +# CONFIG_PKG_USING_RT_KPRINTF_THREADSAFE is not set +# end of enhanced kernel services + +# CONFIG_PKG_USING_AUNITY is not set + +# +# acceleration: Assembly language or algorithmic acceleration packages +# +# CONFIG_PKG_USING_QFPLIB_M0_FULL is not set +# CONFIG_PKG_USING_QFPLIB_M0_TINY is not set +# CONFIG_PKG_USING_QFPLIB_M3 is not set +# end of acceleration: Assembly language or algorithmic acceleration packages + +# +# CMSIS: ARM Cortex-M Microcontroller Software Interface Standard +# +# CONFIG_PKG_USING_CMSIS_5 is not set +# CONFIG_PKG_USING_CMSIS_CORE is not set +# CONFIG_PKG_USING_CMSIS_NN is not set +# CONFIG_PKG_USING_CMSIS_RTOS1 is not set +# CONFIG_PKG_USING_CMSIS_RTOS2 is not set +# end of CMSIS: ARM Cortex-M Microcontroller Software Interface Standard + +# +# Micrium: Micrium software products porting for RT-Thread +# +# CONFIG_PKG_USING_UCOSIII_WRAPPER is not set +# CONFIG_PKG_USING_UCOSII_WRAPPER is not set +# CONFIG_PKG_USING_UC_CRC is not set +# CONFIG_PKG_USING_UC_CLK is not set +# CONFIG_PKG_USING_UC_COMMON is not set +# CONFIG_PKG_USING_UC_MODBUS is not set +# end of Micrium: Micrium software products porting for RT-Thread + +# CONFIG_PKG_USING_FREERTOS_WRAPPER is not set +# CONFIG_PKG_USING_LITEOS_SDK is not set +# CONFIG_PKG_USING_TZ_DATABASE is not set +# CONFIG_PKG_USING_CAIRO is not set +# CONFIG_PKG_USING_PIXMAN is not set +# CONFIG_PKG_USING_PARTITION is not set +# CONFIG_PKG_USING_PERF_COUNTER is not set +# CONFIG_PKG_USING_FILEX is not set +# CONFIG_PKG_USING_LEVELX is not set +# CONFIG_PKG_USING_FLASHDB is not set +# CONFIG_PKG_USING_SQLITE is not set +# CONFIG_PKG_USING_RTI is not set +# CONFIG_PKG_USING_DFS_YAFFS is not set +# CONFIG_PKG_USING_LITTLEFS is not set +# CONFIG_PKG_USING_DFS_JFFS2 is not set +# CONFIG_PKG_USING_DFS_UFFS is not set +# CONFIG_PKG_USING_LWEXT4 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 +# CONFIG_PKG_USING_SYS_LOAD_MONITOR is not set +# CONFIG_PKG_USING_PLCCORE is not set +# CONFIG_PKG_USING_RAMDISK is not set +# CONFIG_PKG_USING_MININI is not set +# CONFIG_PKG_USING_QBOOT is not set +# CONFIG_PKG_USING_PPOOL is not set +# CONFIG_PKG_USING_OPENAMP is not set +# CONFIG_PKG_USING_RPMSG_LITE is not set +# CONFIG_PKG_USING_LPM is not set +# CONFIG_PKG_USING_TLSF is not set +# CONFIG_PKG_USING_EVENT_RECORDER is not set +# CONFIG_PKG_USING_ARM_2D is not set +# CONFIG_PKG_USING_MCUBOOT is not set +# CONFIG_PKG_USING_TINYUSB is not set +# CONFIG_PKG_USING_KMULTI_RTIMER is not set +# CONFIG_PKG_USING_TFDB is not set +# CONFIG_PKG_USING_QPC is not set +# CONFIG_PKG_USING_AGILE_UPGRADE is not set +# CONFIG_PKG_USING_FLASH_BLOB is not set +# CONFIG_PKG_USING_MLIBC is not set +# CONFIG_PKG_USING_TASK_MSG_BUS is not set +# CONFIG_PKG_USING_UART_FRAMEWORK is not set +# CONFIG_PKG_USING_SFDB is not set +# CONFIG_PKG_USING_RTP is not set +# CONFIG_PKG_USING_REB is not set +# CONFIG_PKG_USING_RMP is not set +# CONFIG_PKG_USING_R_RHEALSTONE is not set +# CONFIG_PKG_USING_HEARTBEAT is not set +# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set +# CONFIG_PKG_USING_CHERRYECAT is not set +# CONFIG_PKG_USING_EVENT_LOOP is not set +# CONFIG_PKG_USING_THREAD_MANAGER is not set +# end of system packages + +# +# peripheral libraries and drivers +# + +# +# HAL & SDK Drivers +# + +# +# STM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_STM32F0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F1_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F2_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32F7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32G4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32H7RS_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32L5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32U5_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB55_SDK is not set +# CONFIG_PKG_USING_STM32_SDIO is not set +# CONFIG_PKG_USING_STM32WL_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WL_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32WB_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_HAL_DRIVER is not set +# CONFIG_PKG_USING_STM32MP1_M4_CMSIS_DRIVER is not set +# end of STM32 HAL & SDK Drivers + +# +# Infineon HAL Packages +# +# CONFIG_PKG_USING_INFINEON_CAT1CM0P is not set +# CONFIG_PKG_USING_INFINEON_CMSIS is not set +# CONFIG_PKG_USING_INFINEON_CORE_LIB is not set +# CONFIG_PKG_USING_INFINEON_MTB_HAL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_MTB_PDL_CAT1 is not set +# CONFIG_PKG_USING_INFINEON_RETARGET_IO is not set +# CONFIG_PKG_USING_INFINEON_CAPSENSE is not set +# CONFIG_PKG_USING_INFINEON_CSDIDAC is not set +# CONFIG_PKG_USING_INFINEON_SERIAL_FLASH is not set +# CONFIG_PKG_USING_INFINEON_USBDEV is not set +# end of Infineon HAL Packages + +# CONFIG_PKG_USING_BLUETRUM_SDK is not set +# CONFIG_PKG_USING_EMBARC_BSP is not set +# CONFIG_PKG_USING_ESP_IDF is not set + +# +# Kendryte SDK +# +# CONFIG_PKG_USING_K210_SDK is not set +# CONFIG_PKG_USING_KENDRYTE_SDK is not set +# end of Kendryte SDK + +# CONFIG_PKG_USING_NRF5X_SDK is not set +# CONFIG_PKG_USING_NRFX is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set +# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set + +# +# MM32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_MM32F103XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F3270X_CMSIS is not set +# CONFIG_PKG_USING_MM32F5260X_CMSIS is not set +# CONFIG_PKG_USING_MM32L0XX_CMSIS is not set +# CONFIG_PKG_USING_MM32L3XX_CMSIS is not set +# CONFIG_PKG_USING_MM32F103XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER is not set +# CONFIG_PKG_USING_MM32L3XX_HAL_DRIVER is not set +# end of MM32 HAL & SDK Drivers + +# +# WCH HAL & SDK Drivers +# +# CONFIG_PKG_USING_CH32V20x_SDK is not set +# CONFIG_PKG_USING_CH32V307_SDK is not set +# end of WCH HAL & SDK Drivers + +# +# AT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_AT32A403A_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A403A_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32A423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F45x_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F402_405_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F403A_407_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F413_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F415_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F421_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F423_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F425_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32F435_437_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_HAL_DRIVER is not set +# CONFIG_PKG_USING_AT32M412_416_CMSIS_DRIVER is not set +# end of AT32 HAL & SDK Drivers + +# +# HC32 DDL Drivers +# +# CONFIG_PKG_USING_HC32F3_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F3_SERIES_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_HC32F4_SERIES_DRIVER is not set +# end of HC32 DDL Drivers + +# +# NXP HAL & SDK Drivers +# +# CONFIG_PKG_USING_NXP_MCX_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_NXP_MCX_SERIES_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC_DRIVER is not set +# CONFIG_PKG_USING_NXP_LPC55S_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6SX_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMX6UL_DRIVER is not set +# CONFIG_PKG_USING_NXP_IMXRT_DRIVER is not set +# end of NXP HAL & SDK Drivers + +# +# NUVOTON Drivers +# +# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set +# end of NUVOTON Drivers + +# +# GD32 Drivers +# +CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER=y +CONFIG_PKG_GD32_ARM_CMSIS_DRIVER_PATH="/packages/peripherals/hal-sdk/gd32/gd32-arm-cmsis" +CONFIG_PKG_USING_GD32_ARM_CMSIS_DRIVER_LATEST_VERSION=y +CONFIG_PKG_GD32_ARM_CMSIS_DRIVER_VER="latest" +CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER=y +CONFIG_PKG_GD32_ARM_SERIES_DRIVER_PATH="/packages/peripherals/hal-sdk/gd32/gd32-arm-series" +CONFIG_PKG_USING_GD32_ARM_SERIES_DRIVER_LATEST_VERSION=y +CONFIG_PKG_GD32_ARM_SERIES_DRIVER_VER="latest" +# CONFIG_PKG_USING_GD32_RISCV_SERIES_DRIVER is not set +# CONFIG_PKG_USING_GD32VW55X_WIFI is not set +# end of GD32 Drivers + +# +# HPMicro SDK +# +# CONFIG_PKG_USING_HPM_SDK is not set +# end of HPMicro SDK + +# +# FT32 HAL & SDK Drivers +# +# CONFIG_PKG_USING_FT32F0_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F0_CMSIS_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set +# CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set +# end of FT32 HAL & SDK Drivers + +# +# NOVOSNS Drivers +# +# CONFIG_PKG_USING_NOVOSNS_SERIES_DRIVER is not set +# end of NOVOSNS Drivers +# end of HAL & SDK Drivers + +# +# sensors drivers +# +# CONFIG_PKG_USING_LSM6DSM is not set +# CONFIG_PKG_USING_LSM6DSL is not set +# CONFIG_PKG_USING_LPS22HB is not set +# CONFIG_PKG_USING_HTS221 is not set +# CONFIG_PKG_USING_LSM303AGR is not set +# CONFIG_PKG_USING_BME280 is not set +# CONFIG_PKG_USING_BME680 is not set +# CONFIG_PKG_USING_BMA400 is not set +# CONFIG_PKG_USING_BMI160_BMX160 is not set +# CONFIG_PKG_USING_SPL0601 is not set +# CONFIG_PKG_USING_MS5805 is not set +# CONFIG_PKG_USING_DA270 is not set +# CONFIG_PKG_USING_DF220 is not set +# CONFIG_PKG_USING_HSHCAL001 is not set +# CONFIG_PKG_USING_BH1750 is not set +# CONFIG_PKG_USING_MPU6XXX is not set +# CONFIG_PKG_USING_AHT10 is not set +# CONFIG_PKG_USING_AP3216C is not set +# CONFIG_PKG_USING_TSL4531 is not set +# CONFIG_PKG_USING_DS18B20 is not set +# CONFIG_PKG_USING_DHT11 is not set +# CONFIG_PKG_USING_DHTXX is not set +# CONFIG_PKG_USING_GY271 is not set +# CONFIG_PKG_USING_GP2Y10 is not set +# CONFIG_PKG_USING_SGP30 is not set +# CONFIG_PKG_USING_HDC1000 is not set +# CONFIG_PKG_USING_BMP180 is not set +# CONFIG_PKG_USING_BMP280 is not set +# CONFIG_PKG_USING_SHTC1 is not set +# CONFIG_PKG_USING_BMI088 is not set +# CONFIG_PKG_USING_HMC5883 is not set +# CONFIG_PKG_USING_MAX6675 is not set +# CONFIG_PKG_USING_MAX31855 is not set +# CONFIG_PKG_USING_TMP1075 is not set +# CONFIG_PKG_USING_SR04 is not set +# CONFIG_PKG_USING_CCS811 is not set +# CONFIG_PKG_USING_PMSXX is not set +# CONFIG_PKG_USING_RT3020 is not set +# CONFIG_PKG_USING_MLX90632 is not set +# CONFIG_PKG_USING_MLX90382 is not set +# CONFIG_PKG_USING_MLX90384 is not set +# CONFIG_PKG_USING_MLX90393 is not set +# CONFIG_PKG_USING_MLX90392 is not set +# CONFIG_PKG_USING_MLX90394 is not set +# CONFIG_PKG_USING_MLX90396 is not set +# CONFIG_PKG_USING_MLX90397 is not set +# CONFIG_PKG_USING_MS5611 is not set +# CONFIG_PKG_USING_MAX31865 is not set +# CONFIG_PKG_USING_VL53L0X is not set +# CONFIG_PKG_USING_INA260 is not set +# CONFIG_PKG_USING_MAX30102 is not set +# CONFIG_PKG_USING_INA226 is not set +# CONFIG_PKG_USING_LIS2DH12 is not set +# CONFIG_PKG_USING_HS300X is not set +# CONFIG_PKG_USING_ZMOD4410 is not set +# CONFIG_PKG_USING_ISL29035 is not set +# CONFIG_PKG_USING_MMC3680KJ is not set +# CONFIG_PKG_USING_QMP6989 is not set +# CONFIG_PKG_USING_BALANCE is not set +# CONFIG_PKG_USING_SHT2X is not set +# CONFIG_PKG_USING_SHT3X is not set +# CONFIG_PKG_USING_SHT4X is not set +# CONFIG_PKG_USING_AD7746 is not set +# CONFIG_PKG_USING_ADT74XX is not set +# CONFIG_PKG_USING_MAX17048 is not set +# CONFIG_PKG_USING_AS7341 is not set +# CONFIG_PKG_USING_CW2015 is not set +# CONFIG_PKG_USING_ICM20608 is not set +# CONFIG_PKG_USING_PAJ7620 is not set +# CONFIG_PKG_USING_STHS34PF80 is not set +# CONFIG_PKG_USING_P3T1755 is not set +# CONFIG_PKG_USING_QMI8658 is not set +# CONFIG_PKG_USING_ICM20948 is not set +# CONFIG_PKG_USING_SCD4X is not set +# end of sensors drivers + +# +# touch drivers +# +# CONFIG_PKG_USING_GT9147 is not set +# CONFIG_PKG_USING_GT1151 is not set +# CONFIG_PKG_USING_GT917S is not set +# CONFIG_PKG_USING_GT911 is not set +# CONFIG_PKG_USING_FT6206 is not set +# CONFIG_PKG_USING_FT5426 is not set +# CONFIG_PKG_USING_FT6236 is not set +# CONFIG_PKG_USING_XPT2046_TOUCH is not set +# CONFIG_PKG_USING_CST816X is not set +# CONFIG_PKG_USING_CST812T is not set +# end of touch drivers + +# CONFIG_PKG_USING_LCD_SPI_DRIVER is not set +# CONFIG_PKG_USING_REALTEK_AMEBA 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_LKDGUI is not set +# CONFIG_PKG_USING_INFRARED is not set +# CONFIG_PKG_USING_MULTI_INFRARED 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_PCA9685 is not set +# CONFIG_PKG_USING_ILI9341 is not set +# CONFIG_PKG_USING_I2C_TOOLS is not set +# CONFIG_PKG_USING_NRF24L01 is not set +# CONFIG_PKG_USING_RPLIDAR is not set +# CONFIG_PKG_USING_AS608 is not set +# CONFIG_PKG_USING_RC522 is not set +# CONFIG_PKG_USING_WS2812B is not set +# CONFIG_PKG_USING_EXTERN_RTC_DRIVERS is not set +# CONFIG_PKG_USING_MULTI_RTIMER is not set +# CONFIG_PKG_USING_MAX7219 is not set +# CONFIG_PKG_USING_BEEP is not set +# CONFIG_PKG_USING_EASYBLINK is not set +# CONFIG_PKG_USING_PMS_SERIES is not set +# CONFIG_PKG_USING_CAN_YMODEM is not set +# CONFIG_PKG_USING_LORA_RADIO_DRIVER is not set +# CONFIG_PKG_USING_QLED is not set +# CONFIG_PKG_USING_AGILE_CONSOLE is not set +# CONFIG_PKG_USING_LD3320 is not set +# CONFIG_PKG_USING_WK2124 is not set +# CONFIG_PKG_USING_LY68L6400 is not set +# CONFIG_PKG_USING_DM9051 is not set +# CONFIG_PKG_USING_SSD1306 is not set +# CONFIG_PKG_USING_QKEY is not set +# CONFIG_PKG_USING_RS485 is not set +# CONFIG_PKG_USING_RS232 is not set +# CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set +# CONFIG_PKG_USING_SGM706 is not set +# CONFIG_PKG_USING_RDA58XX is not set +# CONFIG_PKG_USING_LIBNFC is not set +# CONFIG_PKG_USING_MFOC is not set +# CONFIG_PKG_USING_TMC51XX is not set +# CONFIG_PKG_USING_TCA9534 is not set +# CONFIG_PKG_USING_KOBUKI is not set +# CONFIG_PKG_USING_ROSSERIAL is not set +# CONFIG_PKG_USING_MICRO_ROS is not set +# CONFIG_PKG_USING_MCP23008 is not set +# CONFIG_PKG_USING_MISAKA_AT24CXX is not set +# CONFIG_PKG_USING_MISAKA_RGB_BLING is not set +# CONFIG_PKG_USING_LORA_MODEM_DRIVER is not set +# CONFIG_PKG_USING_SOFT_SERIAL is not set +# CONFIG_PKG_USING_MB85RS16 is not set +# CONFIG_PKG_USING_RFM300 is not set +# CONFIG_PKG_USING_IO_INPUT_FILTER is not set +# CONFIG_PKG_USING_LRF_NV7LIDAR is not set +# CONFIG_PKG_USING_AIP650 is not set +# CONFIG_PKG_USING_FINGERPRINT is not set +# CONFIG_PKG_USING_BT_ECB02C is not set +# CONFIG_PKG_USING_UAT is not set +# CONFIG_PKG_USING_ST7789 is not set +# CONFIG_PKG_USING_VS1003 is not set +# CONFIG_PKG_USING_X9555 is not set +# CONFIG_PKG_USING_SYSTEM_RUN_LED is not set +# CONFIG_PKG_USING_BT_MX01 is not set +# CONFIG_PKG_USING_RGPOWER is not set +# CONFIG_PKG_USING_BT_MX02 is not set +# CONFIG_PKG_USING_GC9A01 is not set +# CONFIG_PKG_USING_IK485 is not set +# CONFIG_PKG_USING_SERVO is not set +# CONFIG_PKG_USING_SEAN_WS2812B is not set +# CONFIG_PKG_USING_IC74HC165 is not set +# CONFIG_PKG_USING_IST8310 is not set +# CONFIG_PKG_USING_ST7789_SPI is not set +# CONFIG_PKG_USING_CAN_UDS is not set +# CONFIG_PKG_USING_ISOTP_C is not set +# CONFIG_PKG_USING_IKUNLED is not set +# CONFIG_PKG_USING_INS5T8025 is not set +# CONFIG_PKG_USING_IRUART is not set +# CONFIG_PKG_USING_ST7305 is not set +# CONFIG_PKG_USING_TM1668 is not set +# CONFIG_PKG_USING_TCA9548A is not set +# CONFIG_PKG_USING_SPI_TOOLS is not set +# end of peripheral libraries and drivers + +# +# AI packages +# +# CONFIG_PKG_USING_LIBANN is not set +# CONFIG_PKG_USING_NNOM is not set +# CONFIG_PKG_USING_ONNX_BACKEND is not set +# CONFIG_PKG_USING_ONNX_PARSER is not set +# CONFIG_PKG_USING_TENSORFLOWLITEMICRO is not set +# CONFIG_PKG_USING_ELAPACK is not set +# CONFIG_PKG_USING_ULAPACK is not set +# CONFIG_PKG_USING_QUEST is not set +# CONFIG_PKG_USING_NAXOS is not set +# CONFIG_PKG_USING_R_TINYMAIX is not set +# CONFIG_PKG_USING_LLMCHAT is not set +# end of AI packages + +# +# Signal Processing and Control Algorithm Packages +# +# CONFIG_PKG_USING_APID is not set +# CONFIG_PKG_USING_FIRE_PID_CURVE is not set +# CONFIG_PKG_USING_QPID is not set +# CONFIG_PKG_USING_UKAL is not set +# CONFIG_PKG_USING_DIGITALCTRL is not set +# CONFIG_PKG_USING_KISSFFT is not set +# CONFIG_PKG_USING_CMSIS_DSP is not set +# end of Signal Processing and Control Algorithm Packages + +# +# miscellaneous packages +# + +# +# project laboratory +# +# end of project laboratory + +# +# 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 +# end of samples: kernel and components samples + +# +# entertainment: terminal games and other interesting software packages +# +# CONFIG_PKG_USING_CMATRIX is not set +# CONFIG_PKG_USING_SL is not set +# CONFIG_PKG_USING_CAL is not set +# CONFIG_PKG_USING_ACLOCK is not set +# CONFIG_PKG_USING_THREES is not set +# CONFIG_PKG_USING_2048 is not set +# CONFIG_PKG_USING_SNAKE is not set +# CONFIG_PKG_USING_TETRIS is not set +# CONFIG_PKG_USING_DONUT is not set +# CONFIG_PKG_USING_COWSAY is not set +# CONFIG_PKG_USING_MORSE is not set +# CONFIG_PKG_USING_TINYSQUARE is not set +# end of entertainment: terminal games and other interesting software 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_LZMA is not set +# CONFIG_PKG_USING_RALARAM 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_MINIZIP is not set +# CONFIG_PKG_USING_HEATSHRINK 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_UPACKER is not set +# CONFIG_PKG_USING_UPARAM is not set +# CONFIG_PKG_USING_HELLO is not set +# CONFIG_PKG_USING_VI is not set +# CONFIG_PKG_USING_KI is not set +# CONFIG_PKG_USING_ARMv7M_DWT is not set +# CONFIG_PKG_USING_CRCLIB is not set +# CONFIG_PKG_USING_LIBCRC is not set +# CONFIG_PKG_USING_LWGPS is not set +# CONFIG_PKG_USING_STATE_MACHINE is not set +# CONFIG_PKG_USING_DESIGN_PATTERN is not set +# CONFIG_PKG_USING_CONTROLLER is not set +# CONFIG_PKG_USING_PHASE_LOCKED_LOOP is not set +# CONFIG_PKG_USING_MFBD is not set +# CONFIG_PKG_USING_SLCAN2RTT is not set +# CONFIG_PKG_USING_SOEM is not set +# CONFIG_PKG_USING_QPARAM is not set +# CONFIG_PKG_USING_CorevMCU_CLI is not set +# CONFIG_PKG_USING_DRMP is not set +# CONFIG_PKG_USING_AUTOGEN_PARAMETER_MANAGER is not set +# end of miscellaneous packages + +# +# Arduino libraries +# +# CONFIG_PKG_USING_RTDUINO is not set + +# +# Projects and Demos +# +# CONFIG_PKG_USING_ARDUINO_MSGQ_C_CPP_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_SKETCH_LOADER_DEMO is not set +# CONFIG_PKG_USING_ARDUINO_ULTRASOUND_RADAR is not set +# CONFIG_PKG_USING_ARDUINO_RTDUINO_SENSORFUSION_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_NINEINONE_SENSOR_SHIELD is not set +# CONFIG_PKG_USING_ARDUINO_SENSOR_KIT is not set +# CONFIG_PKG_USING_ARDUINO_MATLAB_SUPPORT is not set +# end of Projects and Demos + +# +# Sensors +# +# CONFIG_PKG_USING_ARDUINO_SENSOR_DEVICE_DRIVERS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSOR is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SENSORLAB is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL375 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL53L1X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VL6180X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31855 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31865 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX31856 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX6675 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90614 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS1 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AHTX0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM9DS0 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADT7410 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME680 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9808 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4728 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA219 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR390 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DHT is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM6DS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO055 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MAX1704X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMC56X3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90393 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90395 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ICM20X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DPS310 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTS221 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT4X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADXL343 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS726X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AMG88XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2320 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AM2315 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LTR329_LTR303 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP085_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP183_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BMP3XX is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MS8607 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MLX90640 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MMA8451 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MSA301 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BNO08X_RVC is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS2MDL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303DLH_MAG is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LC709203F is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CAP1188 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_CCS811 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_NAU7802 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS331 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS2X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LPS35HW is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LSM303_ACCEL is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_LIS3DH is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8591 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPL3115A2 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPR121 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPRLS is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MPU6050 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCT2075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PM25AQI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_EMC2101 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXAS21002C is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SCD30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_FXOS8700 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HMC5883_UNIFIED is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP30 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP006 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TLA202X is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCS34725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI7021 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SGP40 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SHTC3 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU21DF is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AS7341 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_HTU31D is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_INA260 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP007_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_L3GD20 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TMP117 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSC2007 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TSL2591_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VCNL4040 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML6075 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_VEML7700 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LIS3DHTR is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DHT is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL335 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ADXL345 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BME280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP280 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_H3LIS331DL is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MMA7660 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TSL2561 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PAJ7620 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VL53L0X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_ITG3200 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT31 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HP20X is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_DRV2605L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BBM150 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HMC5883L is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM303DLH is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_TCS3414CS is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MP503 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_BMP085 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HIGHTEMP is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_VEML6070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SI1145 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_SHT35 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_AT42QT1070 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LSM6DS3 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HDC1000 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_HM3301 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_MCP9600 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LTC2941 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_LDC1612 is not set +# CONFIG_PKG_USING_ARDUINO_CAPACITIVESENSOR is not set +# CONFIG_PKG_USING_ARDUINO_JARZEBSKI_MPU6050 is not set +# end of Sensors + +# +# Display +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_GFX_LIBRARY is not set +# CONFIG_PKG_USING_ARDUINO_U8G2 is not set +# CONFIG_PKG_USING_ARDUINO_TFT_ESPI is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ST7735 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SSD1306 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ILI9341 is not set +# CONFIG_PKG_USING_SEEED_TM1637 is not set +# end of Display + +# +# Timing +# +# CONFIG_PKG_USING_ARDUINO_RTCLIB is not set +# CONFIG_PKG_USING_ARDUINO_MSTIMER2 is not set +# CONFIG_PKG_USING_ARDUINO_TICKER is not set +# CONFIG_PKG_USING_ARDUINO_TASKSCHEDULER is not set +# end of Timing + +# +# Data Processing +# +# CONFIG_PKG_USING_ARDUINO_KALMANFILTER is not set +# CONFIG_PKG_USING_ARDUINO_ARDUINOJSON is not set +# CONFIG_PKG_USING_ARDUINO_TENSORFLOW_LITE_MICRO is not set +# CONFIG_PKG_USING_ARDUINO_RUNNINGMEDIAN is not set +# end of Data Processing + +# +# Data Storage +# + +# +# Communication +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PN532 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI4713 is not set +# end of Communication + +# +# Device Control +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCF8574 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_PCA9685 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TPA2016 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DRV2605 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS1841 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_DS3502 is not set +# CONFIG_PKG_USING_ARDUINO_SEEED_PCF85063TP is not set +# end of Device Control + +# +# Other +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MFRC630 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_SI5351 is not set +# end of Other + +# +# Signal IO +# +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BUSIO is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_TCA8418 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP23017 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_ADS1X15 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_AW9523 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP3008 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_MCP4725 is not set +# CONFIG_PKG_USING_ARDUINO_ADAFRUIT_BD3491FS is not set +# end of Signal IO + +# +# Uncategorized +# +# end of Arduino libraries +# end of RT-Thread online packages + +CONFIG_SOC_FAMILY_GD32=y +CONFIG_SOC_SERIES_GD32H77x_H78X=y + +# +# Hardware Drivers Config +# +CONFIG_SOC_GD32H77DIW=y + +# +# Onboard Peripheral Drivers +# +# CONFIG_BSP_USING_FS is not set +# CONFIG_BSP_USING_ETH is not set +# CONFIG_BSP_USING_SDRAM is not set +# CONFIG_BSP_USING_LCD_MIPI is not set +# CONFIG_BSP_USING_OV7670 is not set +# CONFIG_BSP_USING_USB is not set +# end of Onboard Peripheral Drivers + +# +# On-chip Peripheral Drivers +# +CONFIG_BSP_USING_GPIO=y +CONFIG_BSP_USING_UART=y +CONFIG_BSP_USING_SERIAL_V1=y +# CONFIG_BSP_USING_SERIAL_V2 is not set +# CONFIG_BSP_USING_UART0 is not set +CONFIG_BSP_USING_UART1=y +CONFIG_BSP_UART1_TX_PIN="PA2" +CONFIG_BSP_UART1_RX_PIN="PA3" +CONFIG_BSP_UART1_AFIO="AF7" +# CONFIG_BSP_USING_UART2 is not set +# CONFIG_BSP_USING_UART3 is not set +# CONFIG_BSP_USING_UART4 is not set +# CONFIG_BSP_USING_I2C is not set +# CONFIG_BSP_USING_SPI is not set +# CONFIG_BSP_USING_OSPI0 is not set +# CONFIG_BSP_SDIO_USING_SDIO1 is not set +# CONFIG_BSP_USING_CAN is not set +# CONFIG_BSP_USING_PWM is not set +# CONFIG_BSP_USING_ONCHIP_RTC is not set +# end of On-chip Peripheral Drivers + +# +# Board extended module Drivers +# +# CONFIG_BSP_USING_GD32VW553_AT is not set +# end of Board extended module Drivers +# end of Hardware Drivers Config + +# +# Applications +# +# end of Applications diff --git a/bsp/gd32/arm/gd32h77d-ginopi/.gitignore b/bsp/gd32/arm/gd32h77d-ginopi/.gitignore new file mode 100644 index 00000000000..cba70a2178d --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/.gitignore @@ -0,0 +1,32 @@ +*.pyc +*.map +*.dblite +*.elf +*.bin +*.hex +*.axf +*.old +*.o +*.obj +*.out +*.bak +*.dep +*.lib +*.i +*.d +*.uvguix* +*.scvd +*.ini +.sconsign.dblite +.vscode/ +build/ +Debug/ +Listings/ +Objects/ +packages/ +RTE/ +__pycache__/ +JLinkLog.txt +JLinkSettings.ini +/project.uvoptx +/project.uvprojx diff --git a/bsp/gd32/arm/gd32h77d-ginopi/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/Kconfig new file mode 100644 index 00000000000..c2de19e5b68 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/Kconfig @@ -0,0 +1,16 @@ +mainmenu "RT-Thread Configuration" + +BSP_DIR := . + +RTT_DIR := ../../../.. + +PKGS_DIR := packages + +source "$(RTT_DIR)/Kconfig" +osource "$PKGS_DIR/Kconfig" +rsource "../libraries/Kconfig" + +if !RT_USING_NANO +rsource "board/Kconfig" +rsource "applications/Kconfig" +endif diff --git a/bsp/gd32/arm/gd32h77d-ginopi/README.md b/bsp/gd32/arm/gd32h77d-ginopi/README.md new file mode 100644 index 00000000000..066955213b6 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/README.md @@ -0,0 +1,172 @@ +# GD32H77D GinoPi BSP 说明 + +## 简介 + +本 BSP 面向搭载 GD32H77DIW 的 GD32H77D GinoPi 开发板,处理器内核为 Arm Cortex-M7,最高主频为 600 MHz。 + +当前 BSP 支持 GCC 和 MDK5 工具链,默认启用 GPIO、UART1 控制台和 RT-Thread FinSH/MSH。示例程序每隔 500 ms 翻转一次 PC4;其他板载外设均可按需通过 menuconfig 开启。 + +默认 `.config` 仅启用串口和 PIN 外设,LVGL、文件系统、网络、串口 DMA 及其他外设均关闭,仅保留启动必需的 CMSIS 和厂家外设库软件包。 + +## 外设支持 + +| 外设 | 支持情况 | 说明 | +| :----------------- | :------: | :------------------------------------------------------------------------------------------- | +| GPIO | 支持 | 默认启用,使用`GET_PIN()` 访问引脚 | +| UART0 | 支持 | 默认引脚 PF4/PF5,复用功能 AF4 | +| UART1 | 支持 | 默认控制台,PA2/PA3,复用功能 AF7 | +| UART2 | 支持 | 默认引脚 PB10/PB11,复用功能 AF7 | +| UART3 | 支持 | 默认引脚 PC10/PC11,复用功能 AF8 | +| UART4 | 支持 | 默认连接 GD32VW553 AT Wi-Fi,TX: PB12/AF14、RX: PB13/AF14 | +| I2C1 | 支持 | 默认未启用,SCL: PH4、SDA: PB11,复用功能 AF4 | +| CAN1 | 支持 | 默认未启用,TX: PB4/AF4、RX: PB5/AF9 | +| OSPI0/QSPI Flash | 支持 | 默认未启用,板载 8 MiB GD25Q64ESIG,Quad SPI 模式 | +| GD32VW553 AT Wi-Fi | 支持 | 默认未启用,基于 RT-Thread at_device、SAL 和 AT socket,设备名`wifi0`,AT 串口为 `uart4` | +| ENET1 | 支持 | 默认未启用,RMII 接口,PHY 默认地址为 2 | +| SDRAM | 支持 | 默认未启用,板载 32 MiB、16 位 SDRAM | +| USBHS0 Device | 支持 | 默认未启用,Type-C 接口,PA11/PA12,支持高速和全速模式 | +| USBHS1 Host | 支持 | 默认未启用,USB-A 接口,PB14/PB15,全速模式 | +| RTC | 支持 | 默认未启用,可通过 menuconfig 开启 | + +UART 引脚可在 `Hardware Drivers Config -> On-chip Peripheral Drivers -> Enable UART` 中修改。 +I2C1 引脚和复用功能可在 `Hardware Drivers Config -> On-chip Peripheral Drivers -> Enable I2C` 中修改。 +CAN1 引脚和 TX/RX 复用功能可在 `Hardware Drivers Config -> On-chip Peripheral Drivers -> Enable CAN` 中分别修改。 +OSPI0 控制器以 QSPI 模式使用,CS、CLK 和 IO0-IO3 引脚及复用功能可在 `Hardware Drivers Config -> On-chip Peripheral Drivers -> Enable OSPI0 (QSPI)` 中分别修改。 +QSPI Flash 文件系统可在 `Hardware Drivers Config -> Onboard Peripheral Drivers -> Enable File System -> Enable FAL filesystem partition based on GD25Q64ESIG` 中配置。 +GD32VW553 AT Wi-Fi 可在 `Hardware Drivers Config -> Board extended module Drivers -> Enable GD32VW553 AT Wi-Fi module` 中配置。 +ENET、SDRAM 和 USB 可在 `Hardware Drivers Config -> Onboard Peripheral Drivers` 中开启。 + +## 默认配置 + +| 项目 | 配置 | +| :----------- | :--------------- | +| 芯片 | GD32H77DIW | +| 控制台设备 | `uart1` | +| 控制台引脚 | TX: PA2,RX: PA3 | +| 串口参数 | 115200-8-N-1 | +| 示例输出引脚 | PC4 | +| 系统时钟 | 600 MHz | + +## 存储器布局 + +启动表位于 `0x08000000`,保存栈顶和复位入口;应用中断向量表与 VTOR 位于 `0x08010000`。GCC 与 SDK 一致,将启动代码、只读代码和数据加载映像放入 CNVM。MDK 的散装文件保留 ECNVM 作为额外代码区。 + +| 区域 | 起始地址 | 长度 | 用途 | +| :---------- | :------------- | :------- | :--------------------- | +| CNVM 启动表 | `0x08000000` | 8 B | 初始 SP 和复位入口 | +| CNVM 应用区 | `0x08010000` | 1984 KiB | 向量表、代码和只读数据 | +| ECNVM | `0x08200000` | 7680 KiB | MDK 额外代码区 | +| AXI SRAM | `0x24000000` | 768 KiB | 数据、栈和堆 | +| SRAM1 | `0x30004000` | 16 KiB | ENET DMA | +| ITCM RAM | `0x00000000` | 128 KiB | ITCM 段 | +| DTCM RAM | `0x20000000` | 256 KiB | DTCM 段 | + +## 使用说明 + +### 准备软件包 + +系列宏使用 `SOC_SERIES_GD32H77x_H78X`,芯片型号使用 `SOC_GD32H77DIW`。需要支持 `GD32H77x_78x` 的 `gd32-arm-cmsis` 和 `gd32-arm-series` 软件包,源码位于 `../libraries/`。CMSIS 软件包负责启动文件与系统时钟,series 软件包负责厂家外设源码及其构建选择;RT-Thread 驱动仅构建适配层。 + +首次编译或软件包配置发生变化后,在 BSP 目录执行: + +```bash +pkgs --update +``` + +### GCC 编译 + +SDK 链接脚本使用 `READONLY` 段属性,建议使用 Arm GNU Toolchain 13.3。已用该版本检查启动汇编及启动表、向量表、LVGL DTCM 内存池和 ENET DMA 的链接布局。 + +确保 `arm-none-eabi-gcc` 所在目录已经加入 `PATH`,或者通过 `RTT_EXEC_PATH` 指定工具链目录,然后执行: + +```bash +scons -j8 +``` + +构建成功后生成: + +| 文件 | 说明 | +| :---------------- | :------------------------------------------- | +| `rt-thread.elf` | 包含两个加载区域和调试信息,推荐用于调试下载 | +| `rt-thread.bin` | 包含启动表和 CNVM 应用区的镜像 | +| `rtthread.map` | GCC 链接映射文件 | + +使用调试器下载 `rt-thread.elf` 时,调试器会根据 ELF 加载段写入对应存储区。 + +直接下载 `rt-thread.bin` 时,下载起始地址必须设置为 `0x08000000`。程序代码位于该文件偏移 `0x00200000`,对应 MCU 地址 `0x08200000`。 + +### MDK5 编译 + +可以重新生成 MDK5 工程: + +```bash +scons --target=mdk5 +``` + +然后使用 MDK5 打开 `project.uvprojx`,编译并通过 SWD 调试器下载 `rt-thread.axf`。 + +### 硬件连接 + +使用 SWD 调试器连接开发板并供电。查看控制台时,将串口适配器连接到以下引脚: + +| 串口适配器 | 开发板 | +| :--------- | :-------------- | +| RX | PA2(UART1 TX) | +| TX | PA3(UART1 RX) | +| GND | GND | + +### 运行结果 + +复位开发板后,PC4 每隔 500 ms 翻转一次;启用 MIPI DSI LCD 时,屏幕会显示一个文本框和触摸虚拟键盘。打开串口终端可以看到 RT-Thread 启动信息并进入 MSH: + +```text + \ | / +- RT - Thread Operating System + / | \ +msh /> +``` + +### QSPI Flash 文件系统 + +板载 GD25Q64ESIG 注册为 FAL Flash 设备 `gd25q64e`,整个 8 MiB 空间配置为 `filesystem` 分区。系统会创建同名块设备,并尝试将 Elm-FAT 挂载到 `/flash`。 + +新 Flash 尚未格式化时,首次自动挂载会失败。确认分区中没有需要保留的数据后执行以下命令,`mkfs` 会清空整个 `filesystem` 分区: + +```text +fal probe filesystem +fal read 0 16 +mkfs -t elm filesystem +mount filesystem /flash elm +echo qspi-ok > /flash/qspi.txt +cat /flash/qspi.txt +``` + +复位后自动挂载成功,再执行 `cat /flash/qspi.txt`,可验证文件系统数据是否能够持久保存。FAL 块大小和 Elm-FAT 最大扇区大小均为 4096 字节。 + +### GD32VW553 MQTT 示例 + +GD32VW553 模块默认通过 `uart4` 接入 `at_device`,MQTT 应用通过 kawaii-mqtt、SAL socket 和 AT socket 访问网络。Wi-Fi 与 MQTT 参数在 `menuconfig` 中配置,MSH 命令如下: + +```text +gd32vw553_mqtt_start +gd32vw553_mqtt_pub +gd32vw553_mqtt_stop +``` + +## 配置 BSP + +在 BSP 目录打开 RT-Thread Env,执行: + +```bash +menuconfig +pkgs --update +scons -j8 +``` + +修改配置后应由 `.config` 重新生成 `rtconfig.h`,不要直接编辑 `rtconfig.h`。 + +## 注意事项 + +- 启动表位于 `0x08000000`,应用向量表位于 `0x08010000`,下载时必须包含启动表。 +- 当前 SDK 使用 Serial V1,未适配此芯片的 Serial V2 和串口 DMA,不应切换到这些配置。 +- 如果修改 CNVM 或 ECNVM 起始地址,需要同时更新链接脚本、VTOR 和下载配置。 diff --git a/bsp/gd32/arm/gd32h77d-ginopi/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/SConscript new file mode 100644 index 00000000000..c7ef7659ece --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/SConscript @@ -0,0 +1,14 @@ +# for module compiling +import os +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/gd32/arm/gd32h77d-ginopi/SConstruct b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct new file mode 100644 index 00000000000..f47b0708313 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct @@ -0,0 +1,74 @@ +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) + +def bsp_pkg_check(): + import subprocess + + check_paths = [ + os.path.join("packages", "gd32-arm-cmsis-latest"), + os.path.join("packages", "gd32-arm-series-latest") + ] + + need_update = not all(os.path.exists(p) for p in check_paths) + + if need_update: + print("\n===============================================================================") + print("Dependency packages missing, please running 'pkgs --update'...") + print("If no packages are fetched, run 'pkgs --upgrade' first, then 'pkgs --update'...") + print("===============================================================================") + exit(1) + +RegisterPreBuildingAction(bsp_pkg_check) + +TARGET = 'rt-thread.' + rtconfig.TARGET_EXT + +DefaultEnvironment(tools=[]) +env = Environment(tools = ['mingw'], + AS = rtconfig.AS, ASFLAGS = rtconfig.AFLAGS, + CC = rtconfig.CC, CFLAGS = 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 in ['iccarm']: + env.Replace(CCCOM = ['$CC $CFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -o $TARGET $SOURCES']) + env.Replace(ARFLAGS = ['']) + env.Replace(LINKCOM = env["LINKCOM"] + ' --map rt-thread.map') + +Export('env') +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) + +# include libraries +objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript'),variant_dir='build/libraries/gd32_drivers', duplicate=0)) + +# make a building +DoBuilding(TARGET, objs) diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig new file mode 100644 index 00000000000..479fe88e7d5 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -0,0 +1,3 @@ +menu "Applications" + +endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript new file mode 100644 index 00000000000..6c4043abe14 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -0,0 +1,8 @@ +from building import * + +cwd = GetCurrentDir() +src = ['main.c'] + +group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) + +Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c new file mode 100644 index 00000000000..2cd0618801b --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c @@ -0,0 +1,37 @@ + /* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-20 BruceOu first implementation + * 2023-03-05 yuanzihao change the LED pins + */ + +#include +#include +#include + +/* defined the LED1 pin: PC4 */ +#define LED1_PIN GET_PIN(C, 4) + + +int main(void) +{ + + /* set LED1 pin mode to output */ + rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); + + + while (1) + { + rt_pin_write(LED1_PIN, PIN_HIGH); + rt_thread_mdelay(500); + rt_pin_write(LED1_PIN, PIN_LOW); + rt_thread_mdelay(500); + + } + + return RT_EOK; +} diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/board/Kconfig new file mode 100644 index 00000000000..0d6f8b49ee8 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/Kconfig @@ -0,0 +1,787 @@ +menu "Hardware Drivers Config" + +config SOC_SERIES_GD32H77x_H78X + bool + default y + +config SOC_GD32H77DIW + bool + select SOC_SERIES_GD32H77x_H78X + select RT_USING_COMPONENTS_INIT + select RT_USING_USER_MAIN + default y + +menu "Onboard Peripheral Drivers" + + menuconfig BSP_USING_FS + bool "Enable File System" + select RT_USING_DFS + select RT_USING_DFS_ROMFS + default n + + if BSP_USING_FS + config BSP_USING_SDCARD_FATFS + bool "Enable SDCARD (FATFS)" + select BSP_SDIO_USING_SDIO1 + select RT_USING_DFS_ELMFAT + default n + + if BSP_USING_SDCARD_FATFS + config BSP_USING_FS_AUTO_MOUNT + bool "Enable filesystem auto mount" + default y + endif + + config BSP_USING_FLASH_FATFS + bool "Enable FAL filesystem partition based on GD25Q64ESIG" + select BSP_USING_OSPI0 + select RT_USING_FAL + select FAL_PART_HAS_TABLE_CFG + select RT_USING_DFS_ELMFAT + default n + help + Enable the onboard 8 MiB GD25Q64ESIG in Quad SPI mode and + expose its filesystem partition through FAL. FatFs maximum + sector size must be 4096. + + if BSP_USING_FLASH_FATFS + config BSP_OSPI_FLASH_MAX_HZ + int "Maximum QSPI flash clock (Hz)" + range 1000000 100000000 + default 50000000 + + config BSP_USING_FLASH_FS_AUTO_MOUNT + bool "Enable filesystem auto mount" + default y + endif + endif + + menuconfig BSP_USING_ETH + bool "Enable ENET1 (RMII)" + select RT_USING_LWIP + select RT_USING_SAL + default n + help + Enable ENET1 in RMII mode. The PHY must provide the 50 MHz RMII + reference clock on PC12. + + if BSP_USING_ETH + config BSP_ENET_PHY_ADDR + int "Default PHY address" + range 0 31 + default 2 + endif + + config BSP_USING_SDRAM + bool "Enable SDRAM" + select RT_USING_SDRAM + default n + help + Enable the onboard 32 MiB, 16-bit SDRAM connected to EXMC + SDRAM device 0. + + menuconfig BSP_USING_LCD_MIPI + bool "Enable 720x720 MIPI DSI LCD" + select BSP_USING_SDRAM + select BSP_USING_GPIO + select BSP_USING_PWM + select BSP_USING_PWM1 + select RT_USING_LCD + default n + help + Enable the two-lane MIPI DSI LCD using the FL7707N controller. + The RGB565 framebuffer occupies the start of the onboard SDRAM. + Backlight brightness uses TIMER1 channel 0 on PA0. + + config BSP_USING_TOUCH_GT911 + bool "Enable GT911 capacitive touch" + depends on BSP_USING_LCD_MIPI + select BSP_USING_I2C + select BSP_USING_HARD_I2C + select BSP_USING_HARD_I2C3 + select RT_USING_TOUCH + select RT_TOUCH_PIN_IRQ + select PKG_USING_GT911 + default n + help + Enable the GT911 package driver on I2C3. PH3 drives the dedicated + active-low reset input and PH5 selects the default 0x5D address + during reset, then works as the touch interrupt input. + + config BSP_USING_OV7670 + bool "Enable OV7670 camera" + depends on !BSP_USING_PWM0 + depends on !BSP_UART0_TX_USING_DMA && !BSP_UART5_TX_USING_DMA + select BSP_USING_GPIO + select BSP_USING_I2C + select BSP_USING_HARD_I2C + select BSP_USING_HARD_I2C2 + default n + help + Enable the onboard OV7670 on I2C2 and capture QVGA RGB565 frames + through DCI and DMA1 channel 7. Camera XCLK is generated by + TIMER0 channel 0 on PE9. + + menuconfig BSP_USING_USB + bool "Enable USB" + default n + help + Enable the onboard USB Type-C device port and/or USB-A host port. + + if BSP_USING_USB + config BSP_USB_USING_DEVICE + bool "Enable USBHS0 device (Type-C)" + default y + select RT_USING_USB_DEVICE + select RT_USB_DEVICE_COMPOSITE + select RT_USB_DEVICE_CDC + + config BSP_USB_USING_HOST + bool "Enable USBHS1 host (USB-A)" + default n + select RT_USING_USB_HOST + + if BSP_USB_USING_DEVICE + choice + prompt "USBHS0 device speed" + default BSP_USB_DEVICE_USING_HS + + config BSP_USB_DEVICE_USING_HS + bool "High speed" + + config BSP_USB_DEVICE_USING_FS + bool "Full speed" + endchoice + endif + endif + +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 + if BSP_USING_UART + choice BSP_SERIAL_V_SEL + prompt "Select UART framework version" + default BSP_USING_SERIAL_V1 + + config BSP_USING_SERIAL_V1 + bool "Use Serial V1 framework" + select RT_USING_SERIAL + + config BSP_USING_SERIAL_V2 + bool "Use Serial V2 framework" + select RT_USING_SERIAL_V2 + endchoice + + menuconfig BSP_USING_UART0 + bool "Enable UART0" + default n + if BSP_USING_UART0 + config BSP_UART0_TX_PIN + string "UART0 TX name, such as PA8" + default "PF4" + + config BSP_UART0_RX_PIN + string "UART0 RX name, such as PA9" + default "PF5" + + config BSP_UART0_AFIO + string "UART0 alternate function, such as AF7" + default "AF4" + + if BSP_USING_SERIAL_V2 + config BSP_UART0_RX_USING_DMA + bool "Enable UART0 RX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART0_TX_USING_DMA + bool "Enable UART0 TX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART0_DMA_PING_BUFSIZE + int "Set UART0 RX DMA ping-pong buffer size" + range 16 65535 + depends on BSP_UART0_RX_USING_DMA + default 64 + + config BSP_UART0_RX_BUFSIZE + int "Set UART0 RX buffer size" + range 64 65535 + default 128 + + config BSP_UART0_TX_BUFSIZE + int "Set UART0 TX buffer size" + range 0 65535 + default 128 + endif + endif + + menuconfig BSP_USING_UART1 + bool "Enable UART1" + default y + if BSP_USING_UART1 + config BSP_UART1_TX_PIN + string "UART1 TX name, such as PA8" + default "PA2" + + config BSP_UART1_RX_PIN + string "UART1 RX name, such as PA9" + default "PA3" + + config BSP_UART1_AFIO + string "UART1 alternate function, such as AF7" + default "AF7" + + if BSP_USING_SERIAL_V2 + config BSP_UART1_RX_USING_DMA + bool "Enable UART1 RX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART1_TX_USING_DMA + bool "Enable UART1 TX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART1_DMA_PING_BUFSIZE + int "Set UART1 RX DMA ping-pong buffer size" + range 16 65535 + depends on BSP_UART1_RX_USING_DMA + default 64 + + config BSP_UART1_RX_BUFSIZE + int "Set UART1 RX buffer size" + range 64 65535 + default 128 + + config BSP_UART1_TX_BUFSIZE + int "Set UART1 TX buffer size" + range 0 65535 + default 128 + endif + endif + + menuconfig BSP_USING_UART2 + bool "Enable UART2" + default n + if BSP_USING_UART2 + config BSP_UART2_TX_PIN + string "UART2 TX name, such as PA8" + default "PB10" + + config BSP_UART2_RX_PIN + string "UART2 RX name, such as PA9" + default "PB11" + + config BSP_UART2_AFIO + string "UART2 alternate function, such as AF7" + default "AF7" + + if BSP_USING_SERIAL_V2 + config BSP_UART2_RX_USING_DMA + bool "Enable UART2 RX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART2_TX_USING_DMA + bool "Enable UART2 TX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART2_DMA_PING_BUFSIZE + int "Set UART2 RX DMA ping-pong buffer size" + range 16 65535 + depends on BSP_UART2_RX_USING_DMA + default 64 + + config BSP_UART2_RX_BUFSIZE + int "Set UART2 RX buffer size" + range 64 65535 + default 128 + + config BSP_UART2_TX_BUFSIZE + int "Set UART2 TX buffer size" + range 0 65535 + default 128 + endif + endif + + menuconfig BSP_USING_UART3 + bool "Enable UART3" + default n + if BSP_USING_UART3 + config BSP_UART3_TX_PIN + string "UART3 TX name, such as PA8" + default "PC10" + + config BSP_UART3_RX_PIN + string "UART3 RX name, such as PA9" + default "PC11" + + config BSP_UART3_AFIO + string "UART3 alternate function, such as AF7" + default "AF8" + + if BSP_USING_SERIAL_V2 + config BSP_UART3_RX_USING_DMA + bool "Enable UART3 RX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART3_TX_USING_DMA + bool "Enable UART3 TX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART3_DMA_PING_BUFSIZE + int "Set UART3 RX DMA ping-pong buffer size" + range 16 65535 + depends on BSP_UART3_RX_USING_DMA + default 64 + + config BSP_UART3_RX_BUFSIZE + int "Set UART3 RX buffer size" + range 64 65535 + default 128 + + config BSP_UART3_TX_BUFSIZE + int "Set UART3 TX buffer size" + range 0 65535 + default 128 + endif + endif + + menuconfig BSP_USING_UART4 + bool "Enable UART4" + default n + if BSP_USING_UART4 + config BSP_UART4_TX_PIN + string "UART4 TX name, such as PB12" + default "PB12" + + config BSP_UART4_RX_PIN + string "UART4 RX name, such as PB13" + default "PB13" + + config BSP_UART4_AFIO + string "UART4 alternate function, such as AF14" + default "AF14" + + if BSP_USING_SERIAL_V2 + config BSP_UART4_RX_USING_DMA + bool "Enable UART4 RX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART4_TX_USING_DMA + bool "Enable UART4 TX DMA" + depends on RT_SERIAL_USING_DMA + default n + + config BSP_UART4_DMA_PING_BUFSIZE + int "Set UART4 RX DMA ping-pong buffer size" + range 16 65535 + depends on BSP_UART4_RX_USING_DMA + default 64 + + config BSP_UART4_RX_BUFSIZE + int "Set UART4 RX buffer size" + range 64 65535 + default 512 + + config BSP_UART4_TX_BUFSIZE + int "Set UART4 TX buffer size" + range 0 65535 + default 256 + endif + endif + endif + + menuconfig BSP_USING_I2C + bool "Enable I2C" + default n + if BSP_USING_I2C + menuconfig BSP_USING_HARD_I2C + bool "Enable hardware I2C" + select RT_USING_I2C + default n + if BSP_USING_HARD_I2C + menuconfig BSP_USING_HARD_I2C1 + bool "Enable I2C1 hardware bus" + default n + if BSP_USING_HARD_I2C1 + config BSP_I2C1_SCL_PIN + string "I2C1 SCL pin name, such as PH4" + default "PH4" + + config BSP_I2C1_SDA_PIN + string "I2C1 SDA pin name, such as PB11" + default "PB11" + + config BSP_I2C1_AFIO + string "I2C1 alternate function, such as AF4" + default "AF4" + endif + + menuconfig BSP_USING_HARD_I2C2 + bool "Enable I2C2 hardware bus" + default n + if BSP_USING_HARD_I2C2 + config BSP_I2C2_SCL_PIN + string "I2C2 SCL pin name, such as PA8" + default "PA8" + + config BSP_I2C2_SDA_PIN + string "I2C2 SDA pin name, such as PC9" + default "PC9" + + config BSP_I2C2_AFIO + string "I2C2 alternate function, such as AF4" + default "AF4" + endif + + menuconfig BSP_USING_HARD_I2C3 + bool "Enable I2C3 hardware bus" + default n + if BSP_USING_HARD_I2C3 + config BSP_I2C3_SCL_PIN + string "I2C3 SCL pin name, such as PD12" + default "PD12" + + config BSP_I2C3_SDA_PIN + string "I2C3 SDA pin name, such as PD13" + default "PD13" + + config BSP_I2C3_AFIO + string "I2C3 alternate function, such as AF4" + default "AF4" + endif + endif + endif + + menuconfig BSP_USING_SPI + bool "Enable SPI" + select RT_USING_SPI + default n + if BSP_USING_SPI + menuconfig BSP_USING_SPI3 + bool "Enable SPI3 hardware bus" + default n + if BSP_USING_SPI3 + config BSP_SPI3_SCK_PIN + string "SPI3 SCK pin name, such as PE12" + default "PE12" + + config BSP_SPI3_SCK_AFIO + string "SPI3 SCK alternate function, such as AF5" + default "AF5" + + config BSP_SPI3_MISO_PIN + string "SPI3 MISO pin name, such as PF0" + default "PF0" + + config BSP_SPI3_MISO_AFIO + string "SPI3 MISO alternate function, such as AF1" + default "AF1" + + config BSP_SPI3_MOSI_PIN + string "SPI3 MOSI pin name, such as PF1" + default "PF1" + + config BSP_SPI3_MOSI_AFIO + string "SPI3 MOSI alternate function, such as AF1" + default "AF1" + endif + endif + + menuconfig BSP_USING_OSPI0 + bool "Enable OSPI0 (QSPI)" + select BSP_USING_GPIO + select RT_USING_SPI + select RT_USING_QSPI + default n + if BSP_USING_OSPI0 + config BSP_OSPI0_USING_MDMA + bool "Enable OSPI0 MDMA transfer" + default n + + config BSP_OSPI0_MDMA_CHANNEL + int "OSPI0 MDMA channel (0-15)" + range 0 15 + depends on BSP_OSPI0_USING_MDMA + default 0 + + config BSP_OSPI0_CS_PIN + string "OSPI0 CS pin name, such as PC11" + default "PC11" + + config BSP_OSPI0_CS_AFIO + string "OSPI0 CS alternate function, such as AF9" + default "AF9" + + config BSP_OSPI0_CLK_PIN + string "OSPI0 CLK pin name, such as PF10" + default "PF10" + + config BSP_OSPI0_CLK_AFIO + string "OSPI0 CLK alternate function, such as AF9" + default "AF9" + + config BSP_OSPI0_D0_PIN + string "OSPI0/QSPI IO0 pin name, such as PF8" + default "PF8" + + config BSP_OSPI0_D0_AFIO + string "OSPI0/QSPI IO0 alternate function, such as AF10" + default "AF10" + + config BSP_OSPI0_D1_PIN + string "OSPI0/QSPI IO1 pin name, such as PF9" + default "PF9" + + config BSP_OSPI0_D1_AFIO + string "OSPI0/QSPI IO1 alternate function, such as AF10" + default "AF10" + + config BSP_OSPI0_D2_PIN + string "OSPI0/QSPI IO2 pin name, such as PF7" + default "PF7" + + config BSP_OSPI0_D2_AFIO + string "OSPI0/QSPI IO2 alternate function, such as AF10" + default "AF10" + + config BSP_OSPI0_D3_PIN + string "OSPI0/QSPI IO3 pin name, such as PA1" + default "PA1" + + config BSP_OSPI0_D3_AFIO + string "OSPI0/QSPI IO3 alternate function, such as AF9" + default "AF9" + + endif + + menuconfig BSP_SDIO_USING_SDIO1 + bool "Enable SDIO1" + select BSP_USING_GPIO + select RT_USING_SDIO + default n + if BSP_SDIO_USING_SDIO1 + config BSP_SDIO_CLK_PIN + string "SDIO CLK pin name, such as PD6" + default "PD6" + + config BSP_SDIO_CLK_AFIO + string "SDIO CLK alternate function, such as AF11" + default "AF11" + + config BSP_SDIO_CMD_PIN + string "SDIO CMD pin name, such as PD7" + default "PD7" + + config BSP_SDIO_CMD_AFIO + string "SDIO CMD alternate function, such as AF11" + default "AF11" + + config BSP_SDIO_D0_PIN + string "SDIO D0 pin name, such as PF4" + default "PF4" + + config BSP_SDIO_D0_AFIO + string "SDIO D0 alternate function, such as AF10" + default "AF10" + + config BSP_SDIO_D1_PIN + string "SDIO D1 pin name, such as PG10" + default "PG10" + + config BSP_SDIO_D1_AFIO + string "SDIO D1 alternate function, such as AF11" + default "AF11" + + config BSP_SDIO_D2_PIN + string "SDIO D2 pin name, such as PG11" + default "PG11" + + config BSP_SDIO_D2_AFIO + string "SDIO D2 alternate function, such as AF10" + default "AF10" + + config BSP_SDIO_D3_PIN + string "SDIO D3 pin name, such as PG12" + default "PG12" + + config BSP_SDIO_D3_AFIO + string "SDIO D3 alternate function, such as AF10" + default "AF10" + + config BSP_SDIO_USING_CARD_DETECT + bool "Enable SD card detect pin" + default y + + if BSP_SDIO_USING_CARD_DETECT + config BSP_SDIO_CD_PIN + string "SD card detect pin name, such as PE10" + default "PE10" + + config BSP_SDIO_CD_ACTIVE_LOW + bool "SD card detect is active low" + default y + endif + endif + + menuconfig BSP_USING_CAN + bool "Enable CAN" + select BSP_USING_GPIO + select RT_USING_CAN + default n + if BSP_USING_CAN + menuconfig BSP_USING_CAN1 + bool "Enable CAN1" + default n + if BSP_USING_CAN1 + config BSP_CAN1_TX_PIN + string "CAN1 TX pin name, such as PB4" + default "PB4" + + config BSP_CAN1_RX_PIN + string "CAN1 RX pin name, such as PB5" + default "PB5" + + config BSP_CAN1_TX_AFIO + string "CAN1 TX alternate function, such as AF4" + default "AF4" + + config BSP_CAN1_RX_AFIO + string "CAN1 RX alternate function, such as AF9" + default "AF9" + endif + endif + + menuconfig BSP_USING_PWM + bool "Enable PWM" + select BSP_USING_GPIO + select RT_USING_PWM + default n + if BSP_USING_PWM + menuconfig BSP_USING_PWM1 + bool "Enable TIMER1 PWM" + default n + help + TIMER1 CH0 on PA0 is exposed as channel 1 of the pwm1 + device and is used by the LCD backlight. + + menuconfig BSP_USING_PWM2 + bool "Enable TIMER2 PWM" + default n + help + TIMER2 CH1 is exposed as channel 2 of the pwm2 device. + if BSP_USING_PWM2 + config BSP_PWM2_CH1_PIN + string "TIMER2 CH1 pin name, such as PA7" + default "PA7" + + config BSP_PWM2_CH1_AFIO + string "TIMER2 CH1 alternate function, such as AF2" + default "AF2" + endif + + menuconfig BSP_USING_PWM30 + bool "Enable TIMER30 PWM" + default n + help + TIMER30 CH2 is exposed as channel 3 of the pwm30 device. + if BSP_USING_PWM30 + config BSP_PWM30_CH2_PIN + string "TIMER30 CH2 pin name, such as PG7" + default "PG7" + + config BSP_PWM30_CH2_AFIO + string "TIMER30 CH2 alternate function, such as AF4" + default "AF4" + endif + endif + + menuconfig BSP_USING_ONCHIP_RTC + bool "Enable RTC" + select RT_USING_RTC + default n + if BSP_USING_ONCHIP_RTC + config BSP_USING_ALARM + bool "Enable RTC alarm" + select RT_USING_ALARM + default n + if BSP_USING_ALARM + choice BSP_ALARM_SEL + prompt "Select rtc alarm device" + default BSP_USING_ALARM0 + + config BSP_USING_ALARM0 + bool "Enable RTC Alarm0" + + config BSP_USING_ALARM1 + bool "Enable RTC Alarm1" + endchoice + endif + endif + + source "$(BSP_DIR)/../libraries/gd32_drivers/Kconfig" + +endmenu + +menu "Board extended module Drivers" + + config AT_DEVICE_USING_GD32VW553 + bool + default n + + config AT_DEVICE_GD32VW553_SOCKET + bool + select AT_USING_SOCKET + default n + + menuconfig BSP_USING_GD32VW553_AT + bool "Enable GD32VW553 AT Wi-Fi module" + select BSP_USING_GPIO + select BSP_USING_UART + select BSP_USING_UART4 + select PKG_USING_AT_DEVICE + select AT_DEVICE_USING_GD32VW553 + select AT_DEVICE_GD32VW553_SOCKET + default n + help + Enable the onboard GD32VW553 Wi-Fi module through the RT-Thread + at_device and AT socket framework. The default AT UART is UART4 + TX PB12 AF14 and RX PB13 AF14. The reset pin is PC5 and is + active low. + + if BSP_USING_GD32VW553_AT + + config BSP_GD32VW553_AT_BAUDRATE + int "GD32VW553 AT UART baud rate" + range 9600 2000000 + default 115200 + + config BSP_GD32VW553_WIFI_SSID + string "Wi-Fi SSID" + default "rtthread" + + config BSP_GD32VW553_WIFI_PASSWORD + string "Wi-Fi password" + default "12345678" + + endif + +endmenu + +endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript new file mode 100644 index 00000000000..533da139b1f --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -0,0 +1,17 @@ +import os +import rtconfig +from building import * + +cwd = GetCurrentDir() + +# add general drivers +src = Split(''' +board.c +''') + +path = [cwd] + +CPPDEFINES = ['GD32H77DXW'] +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) + +Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/board.c b/bsp/gd32/arm/gd32h77d-ginopi/board/board.c new file mode 100644 index 00000000000..862006df241 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/board.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-08 CYFS configure boot vectors and display memory cache policy + */ +#include +#include +#include +#include + +#ifdef BSP_USING_LCD_MIPI +#include "gd32h77x_78x_misc.h" +#endif + +#if defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050) +extern void Reset_Handler(void); +extern uint32_t __initial_sp; + +__attribute__((section(".ARM.__at_0x08000000"), used)) +const uint32_t boot_fuction_table[] = +{ + (uint32_t)&__initial_sp, + (uint32_t)&Reset_Handler, +}; +#elif defined(__GNUC__) +extern void Reset_Handler(void); +extern uint32_t _sp; + +__attribute__((section(".boot_fuction_table"), used)) +const uint32_t boot_fuction_table[] = +{ + (uint32_t)&_sp, + (uint32_t)&Reset_Handler, +}; +#endif + + + +/** + * @brief This function is executed in case of error occurrence. + * @param None + * @retval None + */ +void Error_Handler(void) +{ + /* USER CODE BEGIN Error_Handler */ + /* User can add his own implementation to report the HAL error return state */ + while (1) + { + } + /* USER CODE END Error_Handler */ +} + +/** System Clock Configuration +*/ +void SystemClock_Config(void) +{ + SysTick_Config(SystemCoreClock / RT_TICK_PER_SECOND); +} + +/** + * This is the timer interrupt service routine. + * + */ +void SysTick_Handler(void) +{ + /* enter interrupt */ + rt_interrupt_enter(); + + rt_tick_increase(); + + /* leave interrupt */ + rt_interrupt_leave(); +} + +void rt_hw_us_delay(rt_uint32_t us) +{ + rt_uint64_t required_ticks; + rt_uint32_t previous; + rt_uint32_t current; + rt_uint32_t elapsed = 0U; + rt_uint32_t reload = SysTick->LOAD; + + required_ticks = (rt_uint64_t)us * + (reload / (1000000U / RT_TICK_PER_SECOND)); + previous = SysTick->VAL; + while (elapsed < required_ticks) + { + current = SysTick->VAL; + if (current != previous) + { + elapsed += (current < previous) ? + (previous - current) : + (reload - current + previous); + previous = current; + } + } +} + +/** + * This function will initial GD32 board. + */ +void rt_hw_board_init() +{ + /* NVIC Configuration */ +#define NVIC_VTOR_MASK 0x3FFFFF80 +#ifdef VECT_TAB_RAM + /* Set the Vector Table base location at 0x10000000 */ + SCB->VTOR = (0x10000000 & NVIC_VTOR_MASK); +#else /* VECT_TAB_FLASH */ + /* Set the Vector Table base location at 0x08010000 */ + SCB->VTOR = (0x08010000 & NVIC_VTOR_MASK); +#endif + + /* Reset entry (or a bootloader handoff) must leave D-Cache disabled. */ + RT_ASSERT((SCB->CCR & SCB_CCR_DC_Msk) == 0U); + + /* Instruction caching does not change the SDRAM data attributes. */ + rt_hw_cpu_icache_enable(); + + SystemClock_Config(); + +#ifdef RT_USING_SERIAL + rt_hw_usart_init(); +#endif + +#ifdef RT_USING_COMPONENTS_INIT + rt_components_board_init(); +#endif + +#ifdef RT_USING_CONSOLE + rt_console_set_device(RT_CONSOLE_DEVICE_NAME); +#endif + + /* Board drivers, including SDRAM, ran with uncached data accesses. */ + rt_hw_cpu_dcache_enable(); + +#ifdef RT_USING_HEAP + rt_system_heap_init((void *)HEAP_BEGIN, (void *)HEAP_END); +#endif +} + +/*@}*/ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/board.h b/bsp/gd32/arm/gd32h77d-ginopi/board/board.h new file mode 100644 index 00000000000..42177df32bb --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/board.h @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2006-2024 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-08-20 BruceOu first implementation + */ +#ifndef __BOARD_H__ +#define __BOARD_H__ + +#if defined(SOC_GD32H77DIW) && !defined(GD32H77DXW) +#define GD32H77DXW +#endif + +#include "gd32h77x_78x.h" +#include "drv_usart.h" +#include "drv_gpio.h" + +#include "gd32h77x_78x_exti.h" + +#define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */ +#define EXT_SDRAM_END (EXT_SDRAM_BEGIN + (32U * 1024 * 1024)) /* the end address of external SDRAM */ +#define EXT_SDRAM_LCD_RESERVED_SIZE (3U * 1024U * 1024U) +#define EXT_SDRAM_OV7670_PREVIEW_BEGIN (EXT_SDRAM_BEGIN + (2U * 1024U * 1024U)) + +#ifdef BSP_USING_LCD_MIPI +#define SDRAM_HEAP_BEGIN (EXT_SDRAM_BEGIN + EXT_SDRAM_LCD_RESERVED_SIZE) +#else +#define SDRAM_HEAP_BEGIN EXT_SDRAM_BEGIN +#endif +#define SDRAM_HEAP_SIZE (EXT_SDRAM_END - SDRAM_HEAP_BEGIN) + +#define BSP_USB_HOST_VBUS_PORT_RCC RCU_GPIOF +#define BSP_USB_HOST_VBUS_PORT GPIOF +#define BSP_USB_HOST_VBUS_PIN GPIO_PIN_2 + +/* Internal SRAM memory size[Kbytes] <8-768>*/ +/* Default: 768*/ +#ifdef __ICCARM__ +/* Use *.icf ram symbal, to avoid hardcode.*/ +extern char __ICFEDIT_region_RAM_end__; +#define GD32_SRAM_END &__ICFEDIT_region_RAM_end__ +#else +#define GD32_SRAM_SIZE 768 +#define GD32_SRAM_END (0x24000000 + GD32_SRAM_SIZE * 1024) +#endif + +#ifdef __ARMCC_VERSION +extern int Image$$RW_IRAM1$$ZI$$Limit; +#define HEAP_BEGIN (&Image$$RW_IRAM1$$ZI$$Limit) +#elif __ICCARM__ +#pragma section="HEAP" +#define HEAP_BEGIN (__segment_end("HEAP")) +#else +extern int __bss_end; +#define HEAP_BEGIN (&__bss_end) +#endif + +#define HEAP_END GD32_SRAM_END + +#endif /* __BOARD_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/gd32h77x_78x_libopt.h b/bsp/gd32/arm/gd32h77d-ginopi/board/gd32h77x_78x_libopt.h new file mode 100644 index 00000000000..aa911633975 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/gd32h77x_78x_libopt.h @@ -0,0 +1,104 @@ +/*! + \file gd32h77x_78x_libopt.h + \brief library optional for gd32h77x_78x + + \version 2026-06-18, V0.4.0, demo for GD32H77x_78x +*/ + +/* + Copyright (c) 2026, GigaDevice Semiconductor Inc. + + 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 the copyright holder 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. +*/ + +#ifndef GD32H77X_78X_LIBOPT_H +#define GD32H77X_78X_LIBOPT_H + +#include "gd32h77x_78x_adc.h" +#include "gd32h77x_78x_axiim.h" +#include "gd32h77x_78x_can.h" +#include "gd32h77x_78x_cau.h" +#include "gd32h77x_78x_cmp.h" +#include "gd32h77x_78x_cpdm.h" +#include "gd32h77x_78x_crc.h" +#include "gd32h77x_78x_ctc.h" +#include "gd32h77x_78x_dac.h" +#include "gd32h77x_78x_dbg.h" +#include "gd32h77x_78x_dci.h" +#include "gd32h77x_78x_dma.h" +#if (defined(GD32H77X_78X_SUPPORT_DSI)) +#include "gd32h77x_78x_dsi.h" +#endif /* (defined(GD32H77X_78X_SUPPORT_DSI)) */ +#include "gd32h77x_78x_edim.h" +#include "gd32h77x_78x_edim_biss.h" +#include "gd32h77x_78x_edim_endat.h" +#include "gd32h77x_78x_edim_afmt.h" +#include "gd32h77x_78x_edim_tfmt.h" +#include "gd32h77x_78x_edim_hdsl.h" +#include "gd32h77x_78x_edout.h" +#include "gd32h77x_78x_enet.h" +#if (defined(GD32H77X_78X_SUPPORT_ESC)) +#include "gd32h77x_78x_esc.h" +#endif /* (defined(GD32H77X_78X_SUPPORT_ESC)) */ +#include "gd32h77x_78x_exmc.h" +#include "gd32h77x_78x_exti.h" +#include "gd32h77x_78x_fac.h" +#include "gd32h77x_78x_fft.h" +#include "gd32h77x_78x_fwdgt.h" +#include "gd32h77x_78x_gpio.h" +#include "gd32h77x_78x_gpsi.h" +#include "gd32h77x_78x_hau.h" +#include "gd32h77x_78x_hpdf.h" +#include "gd32h77x_78x_hwsem.h" +#include "gd32h77x_78x_i2c.h" +#include "gd32h77x_78x_ipa.h" +#include "gd32h77x_78x_lpdts.h" +#include "gd32h77x_78x_mdio.h" +#include "gd32h77x_78x_mdma.h" +#include "gd32h77x_78x_misc.h" +#include "gd32h77x_78x_nvmc.h" +#include "gd32h77x_78x_ospi.h" +#include "gd32h77x_78x_ospim.h" +#include "gd32h77x_78x_pkcau.h" +#include "gd32h77x_78x_pmu.h" +#include "gd32h77x_78x_rameccmu.h" +#include "gd32h77x_78x_rcu.h" +#include "gd32h77x_78x_rdcm.h" +#include "gd32h77x_78x_rspdif.h" +#include "gd32h77x_78x_rtc.h" +#include "gd32h77x_78x_rtdec.h" +#include "gd32h77x_78x_sai.h" +#include "gd32h77x_78x_sdio.h" +#include "gd32h77x_78x_spi.h" +#include "gd32h77x_78x_syscfg.h" +#include "gd32h77x_78x_timer.h" +#include "gd32h77x_78x_tli.h" +#include "gd32h77x_78x_tmu.h" +#include "gd32h77x_78x_trigsel.h" +#include "gd32h77x_78x_trng.h" +#include "gd32h77x_78x_usart.h" +#include "gd32h77x_78x_vref.h" +#include "gd32h77x_78x_wwdgt.h" + +#endif /* GD32H77X_78X_LIBOPT_H */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.icf b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.icf new file mode 100644 index 00000000000..18482a8d58f --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.icf @@ -0,0 +1,40 @@ +/*###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__ = 0x080FFFFF; +define symbol __ICFEDIT_region_RAM_start__ = 0x20000000; +define symbol __ICFEDIT_region_RAM_end__ = 0x2006FFFF; +/*-Sizes-*/ +define symbol __ICFEDIT_size_cstack__ = 0x2000; +define symbol __ICFEDIT_size_heap__ = 0x2000; +/**** End of ICF editor section. ###ICF###*/ + +export symbol __ICFEDIT_region_RAM_end__; + +define symbol __region_RAM1_start__ = 0x10000000; +define symbol __region_RAM1_end__ = 0x1000FFFF; + +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 region RAM1_region = mem:[from __region_RAM1_start__ to __region_RAM1_end__]; + +define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { }; +define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { }; + +initialize by copy { readwrite }; +do not initialize { section .noinit }; + +keep { section FSymTab }; +keep { section VSymTab }; +keep { section .rti_fn* }; +place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec }; + +place in ROM_region { readonly }; +place in RAM_region { readwrite, + block CSTACK, block HEAP }; +place in RAM1_region { section .sram }; diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld new file mode 100644 index 00000000000..ff93ac14c60 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld @@ -0,0 +1,232 @@ +/* memory map */ +MEMORY +{ + CNVM_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 8 + CNVM (rx) : ORIGIN = 0x08010000, LENGTH = 1984K + ECNVM (rx) : ORIGIN = 0x08200000, LENGTH = 7680K + AXISRAM (xrw) : ORIGIN = 0x24000000, LENGTH = 768K + SRAM1 (xrw) : ORIGIN = 0x30004000, LENGTH = 16K + ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 128K + DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 256K +} + +ENTRY(Reset_Handler) +_system_stack_size = 0x1000; + +SECTIONS +{ + .boot_fuction_table ORIGIN(CNVM_BOOT) : + { + . = ALIGN(4); + KEEP(*(.boot_fuction_table)) + . = ALIGN(4); + } > CNVM_BOOT + + ASSERT(SIZEOF(.boot_fuction_table) == 8, "invalid boot function table size") + + /* The application vector table starts at 0x08010000. */ + .vectors ORIGIN(CNVM) : + { + . = ALIGN(4); + KEEP(*(.vectors)) + KEEP(*(.isr_vector)) + . = ALIGN(4); + __Vectors_End = .; + __Vectors_Size = __Vectors_End - __gVectors; + } > CNVM + + __Vectors = __gVectors; + + /* Keep startup code in CNVM so DAP-Link/PyOCD can program the primary flash region. */ + .reset : + { + . = ALIGN(4); + _stext = .; + KEEP(*(.text.Reset_Handler)) + . = ALIGN(4); + } > CNVM = 0 + + .text : + { + . = ALIGN(4); + *(.text) + *(.text.*) + *(.gnu.linkonce.t*) + *(.glue_7) + *(.glue_7t) + *(.eh_frame*) + KEEP(*(.init)) + KEEP(*(.fini)) + + *(.rodata) + *(.rodata*) + *(.gnu.linkonce.r*) + + /* section information for finsh shell */ + . = ALIGN(4); + __fsymtab_start = .; + KEEP(*(FSymTab)) + __fsymtab_end = .; + + . = ALIGN(4); + __vsymtab_start = .; + KEEP(*(VSymTab)) + __vsymtab_end = .; + + /* section information for RT-Thread initialization */ + . = ALIGN(4); + __rt_init_start = .; + KEEP(*(SORT(.rti_fn*))) + __rt_init_end = .; + + /* section information for utest */ + . = ALIGN(4); + __rt_utest_tc_tab_start = .; + KEEP(*(UtestTcTab)) + __rt_utest_tc_tab_end = .; + + . = ALIGN(4); + _etext = .; + } > CNVM = 0 + + .ARM.extab : + { + *(.ARM.extab* .gnu.linkonce.armextab.*) + } > CNVM + + .ARM.exidx : + { + __exidx_start = .; + *(.ARM.exidx* .gnu.linkonce.armexidx.*) + __exidx_end = .; + } > CNVM + + .preinit_array (READONLY) : + { + PROVIDE_HIDDEN(__preinit_array_start = .); + KEEP(*(.preinit_array*)) + PROVIDE_HIDDEN(__preinit_array_end = .); + } > CNVM + + .init_array (READONLY) : + { + PROVIDE_HIDDEN(__init_array_start = .); + KEEP(*(SORT(.init_array.*))) + KEEP(*(.init_array*)) + PROVIDE_HIDDEN(__init_array_end = .); + } > CNVM + + .fini_array (READONLY) : + { + PROVIDE_HIDDEN(__fini_array_start = .); + KEEP(*(SORT(.fini_array.*))) + KEEP(*(.fini_array*)) + PROVIDE_HIDDEN(__fini_array_end = .); + } > CNVM + + .data : + { + . = ALIGN(4); + _sdata = .; + *(.data) + *(.data.*) + *(.gnu.linkonce.d*) + . = ALIGN(4); + _edata = .; + } > AXISRAM AT> CNVM + _sidata = LOADADDR(.data); + + /* Reserve the MSP before the RT-Thread heap begins at __bss_end. */ + .stack (NOLOAD) : + { + . = ALIGN(8); + _sstack = .; + . = . + _system_stack_size; + . = ALIGN(8); + _estack = .; + PROVIDE(_sp = _estack); + } > AXISRAM + + .bss (NOLOAD) : + { + . = ALIGN(4); + _sbss = .; + __bss_start = .; + __bss_start__ = .; + *(.bss) + *(.bss.*) + *(COMMON) + . = ALIGN(4); + _ebss = .; + __bss_end = .; + __bss_end__ = .; + } > AXISRAM + + .enet_dma (NOLOAD) : + { + . = ALIGN(32); + KEEP(*(.enet_dma)) + . = ALIGN(32); + } > SRAM1 + + PROVIDE(end = __bss_end); + PROVIDE(_end = __bss_end); + + .itcmram : + { + . = ALIGN(4); + _sitcmram = .; + *(.itcmram) + *(.itcmram*) + . = ALIGN(4); + _eitcmram = .; + } > ITCMRAM AT> CNVM + _siitcmram = LOADADDR(.itcmram); + + .dtcmram : + { + . = ALIGN(4); + _sdtcmram = .; + *(.dtcmram) + *(.dtcmram*) + . = ALIGN(4); + _edtcmram = .; + } > DTCMRAM AT> CNVM + _sidtcmram = LOADADDR(.dtcmram); + + /* 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 debugging sections. */ + .debug 0 : { *(.debug) } + .line 0 : { *(.line) } + .debug_srcinfo 0 : { *(.debug_srcinfo) } + .debug_sfnames 0 : { *(.debug_sfnames) } + .debug_aranges 0 : { *(.debug_aranges) } + .debug_pubnames 0 : { *(.debug_pubnames) } + .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) } + .debug_weaknames 0 : { *(.debug_weaknames) } + .debug_funcnames 0 : { *(.debug_funcnames) } + .debug_typenames 0 : { *(.debug_typenames) } + .debug_varnames 0 : { *(.debug_varnames) } +} + +ASSERT(SIZEOF(.vectors) > 0, "missing interrupt vector table") +ASSERT(ADDR(.vectors) == ORIGIN(CNVM), "vector table must start at CNVM base") +ASSERT(SIZEOF(.reset) > 0, "missing Reset_Handler") +ASSERT(SIZEOF(.enet_dma) <= LENGTH(SRAM1), "ENET DMA data exceeds SRAM1") + +/* input sections */ +GROUP(libgcc.a libc.a libm.a libnosys.a) diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct new file mode 100644 index 00000000000..afecf312524 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct @@ -0,0 +1,27 @@ +; ************************************************************* +; *** Scatter-Loading Description File generated by uVision *** +; ************************************************************* + +LR_IROM1 0x08010000 0x001F0000 { ; load region size_region + ER_IROM1 0x08010000 0x001F0000 { ; load address = execution address + *.o (RESET, +First) + *(InRoot$$Sections) + .ANY (+RO) + .ANY (+XO) + } + RW_ENET 0x30004000 UNINIT 0x00004000 { + *(.enet_dma) + } + RW_IRAM1 0x24000000 0x000C0000 { ; RW data + .ANY (+RW +ZI) + } + RW_IRAM2 0x00000000 0x00020000 { + .ANY (+RW +ZI) + } +} + +LR_IROM2 0x08200000 0x00780000 { + ER_IROM2 0x08200000 0x00780000 { ; load address = execution address + .ANY (+RO) + } +} diff --git a/bsp/gd32/arm/gd32h77d-ginopi/figures/board.png b/bsp/gd32/arm/gd32h77d-ginopi/figures/board.png new file mode 100644 index 0000000000000000000000000000000000000000..ffec53224b1a297c99c9a54ca0b41703ad77cefa GIT binary patch literal 2586554 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

D3C2++@TZzmqXxvg=9z; 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

uB+Dn@EA8`vh#7=_h;&vn}4BxR||#e%gM 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

RC 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�^}&V zP|N}MqSg4mqNKcE3vVmUbl^Pw>+I|+97@}1_C=Ib)LB%h@g`hYR9L!10&`feRW`4eo|K0h<# zG-2SzGq?HUM|=OTIL{|1b%P)Q&t108H|-XvZ$UBz);)9e#Z%U4!X6mR=Wxc<)s)ka zD~L^aB(3p7AU?}{5%ZdCdYN6v^cGi$$RIZXp@}53YCi57O)Y0@s|-Ry1~Z*1_j|Q< z$RFiPaq9m{wnEVuxBQ%T-0w~OdPaPyJJY=-^>YhvaO-a7-+rkT?V`Hbf18`rS7 zP{guyrHpQ_)frXM1?Osp*YB6{6%locfr|~lqwV)^DE&QzAmwX2yNBvA8A^Y$#ZI#! z&?kuR2hSI3D6|p<7B$RYC0kd&rGr7STO5b5srvDQj@H!M`<_5bVPO)uY4a8=X<1tK zl3V^>~><$!mLTAVdpN9s}E}`kV?vIgbK56zw4TKe!21ed#ssG&4R<;Pf-u~FpO#3o(?dk zwUt6ctanK)1`YDU1|_+M4Ij{~bR$je0TP?Bb_NEj2tFmzbGJ zJ7EP01{u3(v^XRbRq@{Oe6p-J-o$0BsI7JWvEsnq%e`=JH>GZCy|v!ExW3riT3t*6 zLl@ivzQ(a3jCveM3t@J;E{zLKbI`z+RDwi>cICoU0)Mmb673vMVU=8+x{*i}CRzQy zjGUqdOi@|PpT;%~r&s=Q3K~vp3fmt{ z{?6tK;VtC3^Bz2a!pYxoCD;&{Gu42Un1AB&6A(a!au{Fp$L`dZ;QMy>{I^tg9fh4s zIzj{)`=z}I+7sp&!1-{+hn4FVyY6gre|(mvt@At*b?AE1KVU%akYg1(vxlwZY@n2@ zO5LSV%95+@Qmn44qG72cT|6GC%BWx{IaN`Lqh6$J~aA|Ro#^h6JDO226 z0z$&D2)inF0M5e0v+`MYorsIAyU{dXWQn{%Hg2ZKKGpeKhSK9Vv#s1m&NEo)?L=X$E)Z_Rt2^!fBua;dZXPYMcKgYHMo|+38$+WN~)_$$K(wW>gnj^Ptx#s+I7%wH*vZ`>aeyhHf0W)LLfm*p93eNq0 zd;GIEL-hCKwMQGWM_SW!W73v4>VNrp7p+XuLn10#Sn`mA!|%f+*em$bfiT^IG`6&4 zMPPPgqrM8~^Yb4zVPdgh8L`yGVrROh-0t44YN$?{d0`Spgt-}+h5RDGXrn4l8~|c* zw8e&PHcZ9R|NZARp{K)Y$;wMmoVs3Ok*M&}+}Z=J zA~^?QsaQHSZaj&kmxkEARFszYbU16 zCiVTKs$HrtPE3?C&_YGvc$-paj~-$(4JFp-Vl1b;laxV6NmiV@BfjM1py}wy3Jt@U zZ{z(z=>jiIXcH9s==W`2J|_ zBnE1O4s|9+!aE(W)ple*-ftc*Gx2})C(wQ2D44p|+wPiSY52U47&8$nSS~3TU5+g; z$s(nX45>x>{XTjqOEZ;uPJ;SV^=9MSzZoib|Gsap-@U%O)=0=pA69N_UKmO=jvw$V ztx5QDD%osB?u@7iT#n+>#mWCO8%DTl=wYv>MtIak`ljMjjUUN!m^E$Jevc}0pYmeny zOp0Ie>j`FX(_z#vOXs;$viq-2L38*!Grs;pOxUe(f(4J0Og+1nZ+r@jI4RVUSx1BG zFLFo6j?imI{Gxw0C0_VF=-JJ>k~@uVwc)kP$OV8SR2~~eL2Vq(;G3g^-b*6K*}40P zIg(ABS%oVrG)smPp@Kxg<{;w9sku-pOnd;6ue=XC?q@N`t~xFr3UG1R zUr8W#_pIJ6h@JXc98s5}r-q`PGm4#-@-KL3DxBRkEe3kXO-b>dP;PiaD=zpJrit_jltgPL) zI6T~TW{;|v(#sT|+LL2P$uYl+;X>@!rP%1O%QDl(Tfl}7*qD0c$h2jFo1T}ImpcpR z^ShVcB||g#o(2;&wsT2xW}adx36sZQ0C{*@i=zX&%XIENznCU@%grTnxcE?%M}W&m z5Npc5__-2A<=q}a(Y~^Htq<7(Phgn6Ji7h%H^3&Gt*w8x+SGuGa<+2);R^fK<@vkI zH+zeBJ?!f7Xkla1P(ewK8`}9-ozchvi9H7(eVsVDkaC9fZ%A3=XDP!=mf5U{vu+0^ zak+7-b+x+sO=b)87ikytcJ~Cm5C0gPP{ZR<-I)V{QXb_f=A7F2ZfWMyQ*!r4SHMp5 z&dhG33EaeBL>%eb=;{ivnW;WHIiAcT>&Zl#8yml~Numfb073fa=;d-q%`=Wtc0t$r zjq%*p)vv5$1=&JI6!BZDQRPw489`Ycz&z!2(0sY!cDV+V{ZrgUSj{WFZ7D1az9F{( zh%op95?1^(VRU3yt_E!a5@56|U@8Jv&G-HN$7|sK$v4x1_BhzBnwVrK<*CZK7_8A{ z;`d`Sm^@N9G~A{~wnxjy8`91A=A#Y6OyX%GbBV){Qi!(SU~AlOOnAT$USGdIrppoB z?)#gAdsOZA!_=1ZYCR1NBM0Z>{({Tn!%_Q^qQX0YMBTk7SmX|KBhCgU4g_J%s7!#m z0AaVLtjzgGv07>4S(1?+n|z=C<32v>8OTV+XYx~3nUuCH@fFQYwXYV)*Q?h=*lum? zphPsuvI(HcmRGktl?ZV(reH|fBhqs=XfQ)tsXCU`OFp$x?(+QfOl*5QJ3)AGF=7#P8ter@) zSI5S7E{FKJ+LCOkec3*WnP%M5ugw5Je*>3G{$E90M4l5w_AFc zvT`i%P+6=;FKz7Yhiu#f&BARcm7*p2-|u>!G^FiP1xjdW(0qCAhcwcc2Gui{Vu;!| z5*_{dVAg_sTVMNDhC-+t0wQ&NeJnw3?h} zLGdzs*oQp@W=&YsG=BWJ#`fax*SLa2ZAr9ol+2terAeZCVN1(fNWR_@Jsg5veKdpY z)YX9&TC+_nry$e}*Rw%d(!~q!-4?EaKDGxek=xoySpnX$a=DKa^(!}w0*Jv7-u0{B zOp&*~9^a4?iOn(kxiaxEOH0AH#G?DF;};jb!YmWDxabC3dBTD`%CK?)<9f@ogv!Z< zYMbQP{qG^8u--sN&hIp<7GPJF?OO(P0db`yZHFcpJBE}k(8#n>=gS{ZZc`XodX`eQ zLZ@eDZg9H68GH)mx;4&GU&258Qpik?rBd}_LkSz2;tusxlLtT2$Xb}}xWOBia z`u5LQ@+3PjO+uJ8e}M1*OaLJm<44aql!WCfye7X_z4Uj?%R==2(k8W$O_*O7@7;%t zHsm<8stAU^V~R+5g@Tggu&zKG+f<75$;Ut6R5@A*hMWuRBSTp--R2#{D;C=WZZuRY zNh?s)mw&GCJYD%h6UwPHC~`7;LRC`3)sR2K;v0qZW5O)YnM;34PLoSP5@H&~LA%GS z#Vk$niF)ZR;%OrWD#b*@=3pcMdr^xKkFG2Ufs(O@Q3cT!%gCOU*LL1oZ@=?vs`7Gc zsI@b`INszx351nP2RHflQuNAo(n=bh>tOdp zAfu5PxX1w#TI{aNz|%H2y@j_?bvL3&Nodjyr^csVa0_;%x-`xQI2Z)xn9FxXBEzma zA(=^mu4I1FCgu*TspLKvRV1xFg4P+57kajJIE<-5x9*peej>1)+7D6k#Ka~pPzT4z z`|xn@i-Yw0_wL2(!@LKQz?T>%GAR(0b5%KHqk#=Ld5{xZ5Ib*<4bPZ|EoYA9wT|E& zP2A{P05C6%U^|TmqVRbtZMlGW_=%SiS02(-2X{>$KM-5&_-C@)tiylQkVBi;8e3h3 zUD99+bRs0>r3zN&niv@;<$>wuC8236O-o8*V%GtNL{{I$7>Nv%C` zv~c$AQb4HL#oJ*6u>Mq3Gsd|iNiUTP2L?Hr3-Q~kWl5nKgX*Og=YnN@eaXU`zG5Y> z0~YaHKLlI}n0^d{n*)0Q4L`p(kR$G1Zw=(_Q+Tmpy&Dn9{C`XO^Les8`0e_5Z zw7|If7*Ck9kQ4&rNtsP@e5PJFUWq}*gBZX#k}4>uUG8;6yiTimHF$57=W1^YjI7Qt zIV6msMQj_+jG`{>fi{&CJsR0Nscvv#7vx!3CJ|#x zPzM2s_DlxRW+K6xwN)QWWWv60qS4{a#`t;TpO5t`QmHA}1cSf(2o!uwlSY%Cn`PC_ z7CkF$rOnR&IBISZ9CDQB^w!FtZ7BjRNqid`{vj|aizBh+6YW_9emImfV4rxEj)m$k z)Trr5l67!VlE6J3PBZr}_JTmwQc)bOuWz6_I)!NH4}rWpQfO^TCOk~k@OZJFqCp6j z)<@l{5mWDs-r8XTo!;`rq>?*@*+10~B(x6HzXe_<6_R8T2e4urDOBd21K(wsScXu)${W2bPp_8!Iae0<_@%gWb{~&o{90^$!eavc@sv2bk(r zht0YFO9ed-=8`-MT#lA8%hk%d`T4ZUS9|TVo(>KhD|$>99cz~z521nM?eW^B2dPwO z;k4`5YBdLHZcbW~BETrTe@WdFJL22+gei{YgO=2%F)QA(@Q0-Mi?4Rvy-B5#UM4US z`q6}nggxq(MM@S94;cDWd-(7#3p{zfXBf=@(OEzqtFkD&b~*r~0MSRg1)#=zOn~V5 zbUj*Nz=dq5`6LZ29*jni@Msn;-PEPPb)Xhz>Ej|8wBoyymq&??92<*^iXzfpK}79; zW&J>LgMCBeWrnz;+O1atOLe4Fb7e!iWSqlCgQ@LDoAbfw*aSms3h8dy#Jnj-(KH0D zAe1$7G6(*JWHXi*79vxhvxj19clQbc=V$1B_0>Fe2*_bpC}xucaR>QBhIJ@{_7lx0 z&%s~n*CAl~piHtbm+5`kgt4tNgzp#s5WR?36w9i@Fmh86LJ(l)DyRSN)vGn1uv9s- zmoI|xWaTg6Whl9G_X-QbINmnbmY+G;;`Qtzd2X;%=_|Y{_Sp? zztEQVl~3s&{dBp0raF=j> zz5M$|+0B28tXWg9A!PQpTc{+%qiFqWC=^0voIUnYcQE%P54fIt)0qj{ZY;m@RtEcw zhF`s@Uw$kyu8S5GY>BTNyevRXK{5HH&a7`-C2r9^PlAP!^cLZ9a^4-BCno()R9(3N zadElx^HG6%_kZ0LNBl;60l9p0gYwVl!}I&DjNDvYIh64hdP#Y-e!_q4_Y%c9qjo`r z#d!LWX~+(5;QaKjFTV3cxw4PQQk#G0(y};L79URF@K4QB<@Ar89=Caem~0 zQ*Kf%U4SSGU<^O0vl{jz==VII+{gAs60WzQ-4WDxfI-W!Ko=#bkSKGo z;mk${1qI#r_*HJu0H68!)S8xy?+egv<^<)cLT^^ygTBUfQJ}#}bFi-c3$@A4W#nuC zpBGq>iqkk7+*bGFat<=_ce=U5621%;{hqsSSG8#L^z>I91ENAgccg~D#Mqr2lPiph zxb5iMEwn-lrei<}JbBzqO;*?!MIU%Pwp4}`q>h6b3^0H#*s2{tK@)i|vk zLFZdvbMWZI|s)yF-cs=M5Dw%A&E?E0PqICR|28I|=GDJC~ZV!0Jb>fB?1fHEznX zYJPOoWAi)9Tv@zkJed@Zpnk6E#@5zMy~~!}`8e1?i@~r4fUe0Vj}!0=Q<5wOVYBxz z$hLD~doV1VfaS1O_T=cuw+Z>(PuLAQUNj=hfb5kC+q)4L(ePy$JFd7lv#qT@g`Xcx zm7QI+Kb|G<|DP8iA=vMIjLnRJ!Ibf%rq7?z$ms?*=pN=@Q&oF}%GWRWs9FH=RD(Ll z)x*RX&iB~=U0*=M~MeUm{ z5*lMz*N=TDo{xT(%Y}_Vei1&k_hL3lPr1!ZnLfZq{+H-^ocAoLZKF+v^GRegulQ^K-$HFo)(9s;hkFYr5&67%^etA&_zs5{VZhlld+F1*g_QQ%6cj zU7cWg*{pdrLPPL_1agm=mXs*O_#RUrJyR^;7JEVV7`rlY=3k@2%JjL;t8$T7&*NlobgF_ zCs<4twj)vTW@c&|V1WonV*9(DtUMxK-7hRD3P7E#CKhD25hFZ&0o)fJFy<-7lyZ#@~?M!y6xu zy*XYl!j&cEtqf1|F;-dz0)Ne-+zmOt%>bs#XZ?wGsQubANiz3weDfTd zlTg7%6eU}lth{C9P6komHlc*^iY5O)0`OYWx3afoR@T-E6X1%Pax6&dTg}`+L0sOj zK|6aW^zAQ2LL?h=$oNc`4XcvWR=*@m*A_pCxv?c5V(FgCQ(@M(d$F^-nYW#z z7H>urfRgk?()w?8;;=BT7s;R{Olu< z$(4h1Mx$F>OKSqKIIv*OTB)pK0xSoZbsk!=u>~U)N1vq#7|rmRrr+6szUabClhOxN z@1>ul@9qp(u|^Yn{pq-W-1rk3`8Mlq8DlU>nF+l1<|Pq87K3%KmGM7@&OucvxV2S$ zYPtN^0=UD-G+lP`wo7u_75B7QNTkm^g6zV!H5hL)-Y!DyuN7!$%YZ=H+1asy4foL- z>K?;zW1aDyC&%T(!zyK7JKt3yPWhql%B&0PWT11kY}H?t;XKGat9tQIfiJlU2E%L5 z<5lm8d3(-O+uV2mL$3r&C(r`3hXvp^+Fjey0O-E+-}f(n%Rg-Xvl8>-E+wU}+GzFm z(vs0@!o~F)B^-v=9l`nvFU0f7twMvyCw_@s`cq(Ty!t~gA*g?{`*!R5m-zd66_h=) zcLnTykg8y7ubPHv1(?BMNh~F$(hL=H_XO-0p%7C!de2!1q+eK^XQ3$YobT3`1Q{W^ zzspAZcqceDmz5!VGGiade32ll0Drn@!wFQ0T2_HKcem34ldntlEBq(Qz;YK)XSh5e zJ?fX_^4>ft^~|-utjHcm@Xq;AqQKR=&HkLIr%1%-7ae{5T4eo}rcVxvK)A z4byJjh5z-j?PL|1Tn87LbR7ov7yqhW%si^w?v0w5vuvuVxt-MQ`6T^|sp0UvW8b&t z`v}@<>nUR$&2sIq4xdN3in{?fZUZ`BOz3}KVq&}XJBxcmSFY*Rt{=aCeJae~a6X01 zjflsN!uT_Z3Br&D#DPG#3t5i?yLLZCOt6tOOI!l6FHYxsaa4gtQeh#AvmH(>zZd;) z0Tw2E#`RaQ|F!Ok`VuCiU?k>8wnYc7?)FI6lf&(4kiJDdf=(MuN!2w!q@8ZQFc9#l zFa0PS;urh{+o3yJbCF4(IkelP1R66*6h}z|idp&uPzZ)mbOx_xnrT>Fvplb;X}eW` zNr822*=p|J$S-nLM!GjUDHv74qPWx*d3my`#V(mcNekP$jc2OYs>J^*w9xJ8WDZ~U zbR#Ez18!OcSyHJhH#Hm?2&{xKqE+Smm^E5m@(p&}2rz}~?o!=LtsUO_Z1Ll?K1e=< z<*(pdZ^e6cAx^u(u(0WIMAiYIbka3%4Xj+VQ&-RHb}L$@8OW zrKB}9XennEhn!qpTyP|iDt?i@N5}8O32~ZFx~arms9%9=E>2ES>u9OX=%2TTu`!)& zG+enu-v;{ofpiSJOt5TU84+BPZRZX|m{P)D!>%DZgKIeZb#8S+0s)pge1O`G#m_obcgsdP63tx(g;Q#7#VDNba zDG54(eh1`-V44oDcCM9QuPCsZ{C5Y0bFLe_{i-Y{^rYMVqkq%ewTzAaDWfFo85ZtU z23f!MvKZRgzYQ6c0bZq}2Bm9B?ZR{GnD#ak<;@du69G(_RyO5)RNDb`vWD+{$?l7f z1{R9r(<|swn(TK!C3nUWE_ti_;eo(YZRYx~f*(?d$W9KO7v3!XRR228({*&`{Y&2P zr<^}D*?0~=OZpv{T3A>Z8D&CchdOH>x4U8=2RlbyNyFRAVv1$ms%Pp#P`V(%#g2z7 zesB6&LVTe*MveL;gGBbtXN&wOuO;ugQ+XsgDzd5^r#m6*_;&Q-aCvz#x7Oy-DU=n0 zAJc5I$_K*@i<(+KtR%?uGVxb-$w$#rrG34K`_@ADruVRj&u6~yy{S1mUwixc>0?qe zo8JG1-gDgNHyBN2jeHdNW75SS;q`9@30Xf<99riI(GyQ_k3Ng;toQ^#%Cdf50uvV( z-t@tz2skcLm~;w;4H|9T>OgjHFB)RcYl$nGh8fh^FKxZJJOwx~L?_#HN$y-5Jb+dd z00CcFc6@y?0+6(m;HUM1e2+#Z$OWDbz`j%`fFm(H(JAjzLRYE^b*F;@nF4cCYJ=m> z*-TOiPg0fslbEu6T{f&Gxmxy6y1t6QKwQF(_3iDu_wM~n;U0h;z8JW_KycUrOeKch zpj__A!ou67_QSUT>HT|h*|*!q;B9D_(a=C;BJ${w!^(U9X3zqg+|O#Y3Ovt7)6-_F zy?*Y;U9PoUEI`!l*2Utj403hS)dHsUebgXNKYdSx$nm5}>_|XB0DQKYL#;ciZT?-A zm7KTwg3;D*(57-KB_Y9_=T2lKHm5PNky^?(wqiQ}MMC}e(NS)J$FunUH`G3~Zn`=< zI|DmXHoEa}lZ|OG<>LLqpZD|g^MeJJ1^OD!93T4Z<|>XRlY5%ax9uRZ55_5KA?J1Z z7pJOy2Sg^|YEz6}8Orp)qm_*Yhji~xadzwvpku=O3%Sgn(B+}70cm3*6uc>dYak}( zEen8$=}ON%f?P|lTSQnGgeiYtm4$+L`QpEO?ob0@2}nO>X8mSQciW%)SLMDlGr~`v zT;+8-^eSzrj5&ZBG-AyM>T#>_e-lTr>)Wiqm^8V(;7-3FRmX+242-a_Hm8a|%*)<6 z8r-6PCFH@gM(rp}qvz;s|9VC1i8mx~&i4Mkg-z zf?f?1bNF(n!`bnST@c1o1R#fS)!`NicDP9}dzk4^7?rLY*-e5cJO*oF1%bbh3)CP; z5NOo;UYeH>uPs_q$G?_pOqDH|g~XLLW^0Fj^MR~Jrc9?4oeEo+R^PY4ci8`F(}WV` z%BV2Y+Az|7Zbs0DMHL!rXy8epg3;WJ$QTX@<^D)pT_Ysi>Lk=zpm8Efb-FrL_M?kI zj6PQzuNl zy-e@3SFE`Vsv}kHzom1#-|v%6D6I-b$-GbqeWTVUKQX##NXnoABw@~%A_MU+R zg0`=`sA~HAVO-abk@@74yS3-88BIB(7KMeOet5L34`N5S2)Zu+A5G^SPxb%)f7>D1 z>5y^gBnlzfJ3EA^>@8&PS?G|RmF$@jA+q<%>}@0&hpZ${vXag3^7-AqZvFMX-SR%Y z&hzzrUeD`#JnoO)@99cYp5uEV{@H;)C5HFDmFer<_^-;!&~0i`(9Grc%MOa0BUCOy zq8jQVXnlRvM3a8mp1j>qvN?pqpS{-l*rz zIvnut`^my{T)k1k=aD}XY*`zmx60hcS%zkxY@D5)r6V5*%~qW}BPbfSR*m^Y8)p9A zOTui2lJ2En3+pT8ONwNn@`a8esbz(BuhkT(G0?;Sx$z<1=+#vZ1HJJqcC%=3C?+MM zDEeKQLq55PHbX{B#l%X*@SDM9Sjj(tEJ`F_Jhu83=eaMuU=(y4x(pg))bdFJqFMoS z*Hx$$M+L=mRl?n!(l~pN0Y?jtK@v9~Kk8m`{XqW6lZDxvJsL$D(QP5{A*BZiy_9qv zzpX_@WLanNS6Ak>UF^KZOBDh#d$TwQ0vs8M+o*5dxEf-m59ev*ja1G)3B?p}{HB^r z7?~IkL5`)HV`fkE{CLePYrfSNe@-fduiEP3pB8BiDN9ERHNq%`;Pt)@3B2lQ`t@ghu z?)^K+_gp>5%|LOM`w3cnm!*Ic0zi+xzP{hTf5VGBfYj0R?A?FM1IDPG)?q8fDo2Ue z1J!9P=mSVGiHr;Cj7KOiT>W?9$vZqbvvjHLvdw>2&RB>hA*g&pbl<%%DFNLfq@g$} ze9*|ZNWhi&f=OLAg*vaFDH`K6eUkSdQ3VKW@h|^;$iF*$=3;zVJJRL3Cep0!t0zpC zipC%;fPpr2#5?6H9(FSgln}f$C&O zGE7v96~X?Mu(s+lQ75U$sYd!;MQzbmvV$2{SQj7ia>Sb_0*L?n#^7BiEV}Ve4vE-JvM1V2WalA(2;! zPzo*}y9N0`5H_>7F()G?MixI4p^&G01B6)pR`iPaV}p-*!W3LRJulG;I$)F0b`U=R zor{i&!eWpW{esgG;<13uv@>wC0un{w=UgjQYI<^GMe@y{zVM5ZYqSx~f4@NNm8rw{ z6+E@*Xo@<6i$j)pko_#c6ywL|zYuzP=+~3KT0iDH?$#K9I6%G+ssQtzSJdJG`!2%i zQow|U`=lebq-3pedbO7M`g$YZSMhm#NS`?GZn0y|j~AJPABm8SV}^+zU3jFK^;hzh z+c#jYy?F!IKG=D4WezINE@`LnF@RZwjR1|Ld^wzbE?%|L|K{0(UC+uE%N|@7&m0=N zF9R(XjWOmcS8jsI_uf7C)0y>`RA;|TpIfE>eAD{30Q~gL&Cvo3n1Hf}FDSDG*(`i` z2JLH@_;%&4lQ^_%7JURgLGmXR&}GCBkIz5|TEy1srNx}Z2en1z*9R1o?aYA5-%l;gyC8G_>=yZ~&xdY;doefKm* z&B$K^dI0Iq;)x1V@5~2zXb=>`HP5qY7G$meeoukK0a7|)1OqgP9RN98zuyd)yg}Sk ztpp&x+Y0$@wzER$dn0w0FCe(b$M4T0~D;>GK91OG|Qdd@B{TdO8;uxC&IBdQ3bPe(nmPEHc6qYh}twtafX}Psu`9zCKd-L?VIgC|nTy~A-mn)}BNz}q{ z^~CK&QOiG;%?n2lTvH>KlTC5w`$f|-y5`GT6{rwsCB}zq@#Kqf1V+X`qsWUYM6wd zTrq*Td6wko!(0Vtolqh!+{2;Uz2R|&lac(fPV3g5OHs$~^IV_SbG58)+UMIgUoI4l3Gs|}#9zsx5)s4X{ z<@`~f((!>OBmq4^auD1Q{E(3Qo7Mxco5FAyyjtpcyVcL7dHX@&G~sVj(9vl zchkP>i1S~z-k5xGk#ev~R}nwiM>@Nxd}6iQV3yKScic*2tlYE>BB|ok3L-yQa3+p= z))?_Yay@<2ix0M!RJWyih@*)DN^9zttzOQVW5WWSHGL>=_@E@|(@u2@9C!*8dv9=!ksPay>(<``rqjJV!0wC--D~msg7{%cg%IBWB&Rq{C;0t!sLxigw9B959jRm0D_>p zb@LJ-)6}X5&!C(69yUO+G4=JQIwu!rU8Xa2q5c1&j4&y0!#5k_Q@sBE%6uSk-AbRH zh@QN(*3mEPQ~i@EM0vO1ce9-T2R8wg@4`z`t8yJE=I^q?$V@J3H9ne^oJllkfntq^E)Z zA((2_dJhrNn|L5UeaH#avw zze8x6(Ga07lM|z2&VD|TX*!z^KHFzI72#Q2SXlV}`!)JW!L||?lbsL~?8osw)!23M z*d^^Xfg6a)@?6ql$_AQCl=^Jeuq(h0t~6 z6KZ+>p8xehu7t58LukH=pHR>NV1MrhKzb4Ci9wr>tsAEAAJObJ{&%=3JH#LOiY)n_F`G9_-Pq~@D+hUm z@*R$1rNJWUf0D0U+1SyMAzb8n3Zg}MXjwBdGnO2CTI*DAp6Ixh2eGQ6^!*m2E=Ci( zHF1=?Y+rR6%b$GI*B@sdhU7+wqM{Z^|IhlP{;yV}2~QR_uPaDAvDn1H<%9?;!ORxn zx^@BWUH+us(sv8j1&47F!bv~B?$KDb{&0L^zDxT2nBf}AFEM*=azJpvnOw-+{ND4X z-Ga@Z&kxEBu#WdVa8K$hC3;jIUeed&s4QM@1o7wCDj3c~6GmepjCRUw!GEL#>T~ft1%Ev#>5lN*yeEw z1K>!3DWpR$I6M#WI}oWAnTJ#eAjIlZ6ZO{Smdc%cB^011$5$8=5YJjMkAA_GuU5bj zX~FmAE`pbb2Q2ewS~7VR7#({xje=;=fsu3H6n1R(w{0@@d{%2Ig|ICbD6B_@q0ir|~n#I}^-1K=&^1zl+PIxl-V#TIY|(N{UC1_lOI z>eu53LZmIs%-SK{Sa6{UPc8FaU>h5X)QY)B?E1oFOmqbF6t9|Juiu{6e2KJ1JW#t9 zJTrNO{~Ly=mIh7UnxXjuSpL)%|62F4;EP=q{(3nm6C4BfY#8I>eCU1{B~(=Bm*80Q z?MiY7wrm6YsxEGmSzYS6bj>7hu<3`WbJaMIC4o^EE+7roMKH?2kLl_1!bHsF|I-4P z{(ta?0tfqGm9>72f#cqv*?z042^_vMlTih5LW;&f2QUDt`-gmQ%nL!DtC=l*(oRSP z+!vH2p@Baj08RihBMpLvsl@A+snI1R0D*%BwquRKWfO@#n6(YVnxdEnAVl{xwd=iDmrl3|#mKmhPm;AV!IW8`zao0nKp z)k&r=xiCPdpGtavehD%Z&rxfT6VbF&+jXAz{P*D2@%{O;Bo*{|X8JXLou3)NAF%mI z##Ce_C>A(8i+jBtJ6hRkR*ALu*0`H&9j0BN(;zHUggZQv-aLIlN+o@C>uhG#gZ0^u zKsZ4-QxGahX6ECOm(m!4@`t6+Z57hk0Yh0Q1bnac#b4btX#WLN0xbeWI@RP5baeK= zp=l$)^P+kGKEUH0gxwpW&nKL6ID~d86tfdJUXwQI%BLc>cfbY{fu)*jsINzo*#X$* z@+}jhKYNeb4#xqna0KX`W?W;aJbPk)hPbC1{ipN)IPq+Kf~(+Mb9lB^aaw|1?_SzE z$JrIyv5NVT{_1v;oOL#+nisJ_I$?V|{76qBY>P3BhDs4S{{zx*hVYbTsop>QI@{#c zV^QhX0@t|eMgun^k=JUjL&n$$1rC1hq9nL&4etQg6rexci)LvTi{4m+Puw-o7szk_ zECeR*jM^{|ha<&2MOP3H_{`?K9VRNJutLTI)L-WoT#)Fga0DXP;oM@gDaq1%KD0tH z?SZ)#s;@g5bQ%75I-88?si_A=&&9susyj$)+fC(W`MLf(IGsD@L-^M2de(-!k{&uiBt#x87CQO+)Jl zYIhLyJVEyS_+bSyA5a`Cy=W}IV4aGh*0;&HI>dij)F#|~fZHPFDj(wH_`BoTIQ>bX zj5p64%dq%%>MrK0%QT%Ts2>m6RT0|zA{*X~NcLC}OTRkrHW@0MuVJ?T?fE@e(9Nwb zfz~x|e=*U1=q>K$y5M&sT59;Jjw#PoM97j)l8!u*+WWd3oc<|&Pu+~b~7 z%#?H-;;|pW;n><*j`I^tO|te444kcXlnpYcNh^c}1V7=_*vUziPY9J>TG4li+* zoKi^RGdDAvKgT%9LudlK0yu(#3ad}nh!#vau6D&RdECB+t6*L87Bi){(JLL0 zM-`Tgh}oub-Xv!y`kb1pI5jyLM8Zu^9@=GY#$SVVY&ZO$kQ+8rzxA34YI&Gx7~sHz zp;>W{n>a}#Q0Yd_j3b6xllR#=hKpHfPApUk3zpY;p;k*K~v zFrO$Z^H2c{tUvuX;o@m)D7!+2^~o6sZa;t~dsckTo$ycjD8g@^fpGoOX|&rL;2o^u ziE7L${DpV>0s+97ryTx)(hkD*n$FiJiN*i?o>xK9;07C#E%x8;lrO{HXjhY$rdq;$qt^|V zQr&^1P*G2K`$8?p-QJCrmz2Qx=lDHWWL!;H9A5qpwE`Q)M>c%_U8IWXvHU&_1DA50 zx{Vd(fMG9V5VSm#nh|v=|L$c-oK)(#Tf1>&*kmD(_<3@T=5eTN55Xt^{DLtdIR=wS ztTRTUFT@u2&z^VgX!uUZKAEiLnX9*MQN%5*f7@Fp)mlY8#qZgXrgNAGy;wZ_-b{3} z5AlmHIPBv4F!N${1bbsvzZFM(IL~1064=A|d(P9R0D^qZLNj~RR9h=7Ee-dUN&6bw z2%>J8_hn_lrH-&p&CqIg9PvTuw-wJ%aIj)Pov3>KLD|En@a4hTqwp{U)tAPJ2!TAR zhflq{YA5_fxa!Y=o6E}uQ59L=y*F#m?dI_+R=&PlN5cVBu`x;?lbPo5+f=#ry;@AX zS+1w|&-nJT0O}`8N?LjdIVJ?mvXc(BxDd1&ex^f+aFPLhG<~?zn(j1-%{imj26@Igk;a;~?Z$ZYm z;eR$w1z~>`Zukxd?(w~Tn0-1_cR$N-Sp*WlAgNJucuuV0qZXG+!dD#AvYUSL^1;)I z*3;dJ-lZ+LuK}m3_t#MX2T@s)BX+^19`r`?xiD|!`0FCFP&Fwlfd_fcVAYxO#YF1~8dyp$nyK9#yjX|VmdmGLD0Cfr z1209ny+k$|W*&O+z=|OnVCn5ZJOb3v_H7DF509_EJ-wo1z~mrx;le$*jG-~zi4k$E z_}?Dnf8UY>g}IB+zs;^QCy#)ymVdjWWNLVDhsV31&7Sa7R#v`-hA5ww2Tht8J^<8b zl(i22!T1HOpB%VW|CO{h7e$7=7h@yA5LII!rA-f1E>qJz<45hq-yMp^py)ptgH9=o zNh5kJuHVmqzzC?`z+DXxOaRjQfvVN*T!TCB*N~xBz%wXJ5v6@AkvB=?+cjRR2BG+9 zbGZSlD98ZdkA_>#oeWLvmeJThW6>pRRda$rDPiwbknW1fMEKg-Aa(+2Ax)H@C~JYO zWsBVbe1QH0rWiZv&Q+mpMo-CMPvhPi{+|(#TiI6hHHG|9o6;djgv-a9 z3Ld2wT_F_@hnfGF5c^-suopSe9~`069M)wn&;OVZj=tBgFYz102@CHbJjJ#xTpRwC zTb+}4$|g+wAu{43<;DIq%4gdkI*!E=j)AvdE{RC)aYp)sySV|mk4yDXIIa&KBs8MT z>N%f?v7xw$iVGps1N)B8`jQa*%HF1TQH{MM&y z0QhsCEl|01+`x1${F+YE)jp+*vVF$QInmOQMl>N0Hrp7-Wv&}B~A2vDHIF9UQbEB@s`WK!u3 zry3r;Pl(*m&;nceI`vI_i+S~*j^c=X&3TAwmhzRczUO5wq{Y|WMG%$&hlCC+Iz?w2=7Za+|I51A4`t)z1f zM+>rr%|_=MBe)|w11`JL|0>0AA>1?} zU3P^=3xkf-@a#wb?SFUc-U+UHTp^H;wZ3@Ceb;a5H{+I7^O#f8&8HBq`rO|+HnhH^=Uwxqx2zmn1(z=p%r6~z$S)ubsP#7vtLKW8-X)fcL&xhtFVTnxR7-kAvM^op$6EFH4N=US&B2@L^1HX{gUrA?2 zN8aq=7X*~T&>1D^6riSsUV*I;oG-aOVJ8jn#yn8%bww_wsuzyi2a5!oBR^aRHadZH zdov!!t)ztD5^=3G*MvDC)pz0j@zg@@a3Y`Z_K@Jpt7s>p|9BPVh;`%3I!3Wh%qeO3 zw0tn`iNGM7>sp;vlAFpK_7aiqIs`FK3D6V zE^1>%0wP{MmsW779{#X=1<1`Mh@m_0Ndix1b=B@y#dPM+yKFu`yjwRV_Sl++t9ZNk z5e%RlVbn`x>4n&)Fmnf~421}@Tp5$loB8&FR+LvUq83O?Z4UBBMEDZrEv>CtgUbl^ zkux??7cRQlJr#I8es63m`E3b+GmYY;7DU4XtFU2q@tkc&aZ^r1a(eD?dVSy zNjjUsNG7JV^fr>yyB|M(1llNwcxrh71Pl0dy6XSVJK07PCy<=51svsi4)o8<8aZ4O*QX z178-pUYZ{s0T}w)Yqe{M@8(X|=dzHQfYv(P#cf)%4*;_gVmzd1wZ7JVLbnr=U)3@L z$;jpwrIlvZN<7VZVj(|MQrJL*xE6s*GUbk+3qL{)CQCb#BdrUZ>ZlS#$K zOv7#3h@b*AUdpH~{nxV1FC*_yX{}zS+b@{C>#K?ufMAU(1tAUSFi3mS$Tt`{ff#Al z>3r}qfO`t>9rtTBkfcBjaoVRWozQOu;R8e*!5k>saluq|N!BL_Ws6aV8&9=go=aSh znEDjlfCWF&N~plDluuU3B%8Sg*~6TBtL_|&Flu@ckz*T)>Kiv8OvpoNiPMuuRDH3n zzMc9R8u&2XW%JuN9~9ypV`gHqh}KY7r=X-H&|YNO@KF}etYt15yR*{}433h|Lnhn| zZr*eLbK`?=U|gNpZzI`T8F*yut?^{6AvJX({H@Vp|4vp^@!VxWbGctkELQx{G|Ov~ z`+f8CLAb^%SFT}Qd9dHAU>>tR6 zpd$=SZ748OGcq6x5LP)1F+v_R>rRh6VC;GPamwSjlMus&qR#mY`gny&yroqbnhme) zj9h>@DCChjJmi3W>Y*OhF7_-u<2t<5T?tm9EtA;AL{-kA~$B<=Gt} z5MZ=slw~QhP`rE?`2soYxa2z&Z;nK|V=!7=M0E`%B^>cW8Xs9S^u`q=uSLig=u|ph zW=?O9r+iNe)vuNQcMx^9nDioFB;~{H6ze!9w6x_@G10%WQ|aR1=y(y$Kkjxh_Vv4W z@6OvokExLb1ney)8xVd&f>NCGsH0UBppW&-g5Sl7Am}1shYINKlTxn8yXwR41X8R) zsq;e!T@%#=5960CWSl{`ZA$!)V7VkZcU z82sgdzdR=NUnR_;Gt~+JC*}2LrlGM>Qcy62+MO8(U5p` zi#z#p!8QnUWx}&`yo5oU7++g$aCv)XCS*xeqUU;!5v(z5DB0VOMEo8Wjls00Jc@)w z2e|~##Pn>}6iR7l7@~)u-weu;T(aaWfbKog=YW-#NTq&DbmLZ@b}#$f>4`(R^ceNB=M@(V?gnI6nGBzLZ}`s-NlFr}4o4*ul+#V_OF$SgM?G-ellX7<`Ye+@Y0d@3Z5~Bm+a|jyyIOWhX1$F&=D%I`9 z-Ca*TJz_cAI;?EUc3>NJoikB&B<%0hZgj^Ck(z{R0`yAqN9(=TnOwxKsgf&SjYC^t zg%S1tV~5pkcTU<|Zq!i1e7EI8MRNE_Ozf@q8us3m#U{)h+U+_|ACjc|%*T(kJz^oH zxQ=Q^aiJ_KCoNw|{hI)n9n2$vscKU3eBpvA-Z0i|1DBnXP7o*`UQ!a5artjwlD=iq_cOg54N4>7)BD-0Fkh^e(26hj-!E7z(C>z~{xa zu~iSy*N%)(yObZA9AiH4CfAM}ipLUWJ}(+e&CKKl-HnB-we=@{37^$rro8i8AAoJ8ApP zD|S8ZlHl_bzZ!$r=!kH3J#D$ae;!j>s?%5xeOPkA2P*0{vb(QIgf-`z$L;P!4(aPixf09~j(vT{<4z0aaK|AGv(777t}iba4r}POhJ_3p-pgJagt8{6XA5;URNchp7vT^+6X&) ztA7JEUbs6wk42ed6fF3Q?cv$ljP16Rn-5gY+%9{}LX?LCreC@)frWt{+s1Y+2&)O7Iax$WU%_ge^m!83O|Yu-MHR z?>055I{j$fNDm8kvcVDfb4$v6j^HZDc)+986TrpHZlN(I^kJ3YG=1X;l-?s@yzs-v z7oLZtR7P1DCZH8Zb9iBDGCX>9EUl15=2T>Ra|oJSAG*hD>$pDFKxvaVqCM7rG{ONuSkdB4*#=(hVfv(}|0aLwYr7q$y7Z9VNU)9vqz>RiH2y|aV;FyY%!^$EYnlrA# zIr~m1C=N0(MMaHnyoTJz6{Bx|J;X1z;?1{0QNJ>sAs|OjD0@Ycg@6dT-?iD&t_2q0 zugkJ6+=H;wg$1&rE^zVXZiX5#3Vw#a{xuXooe6;jB|)vD@RePsx+hE|G?;h&nf+E4 z`PJW@YSF6l(UzEi2}5I(smG?Tlomr!Iy{@w+IXbAe;&RSux&?K;~|D+o=^5)F%-?w z3Mt?Ad};oCtOns%Ec@;PX)#x1vNcReu(dBf%OI`p(RLu8rm2O~$0#`tZb>>@SX}R^ zH{y%Rb4b&e*t)uqvf?}IR5AOfu{?XYfQUy^UH$m*$+M+X%Z=^8Y;B^qS{fI38w=4l zB0r0+l$1bN*W4=IshDNCHM`u`zx>sF(F?8E<13fqM!I~;FL+y^GAOO8ySAmr?^VY6cMD?&NXAjg>- zpS(-|>?x5J*2OVkS2X8bYzfLp(#-2Gnhp;hD-P=SnAz#f6-g&t6JXMDmI-hVptyDjy_+;HO(@vn*40RFB zP%pF?C7N_360XEh#~!8GyZl?sxSpsw-+d`c5fLc?J=KGq6{waPXa4|gRV6ex2Yywm z(Lb=NvB3e!_H2Iv(#FSKdAj}vnkE$lcjRsS^L5|!RLIxvtqm@?buWQq@ax{Y4NFWy z1W{i%o|hN1ayuaI`Q|Omq3C}!2;D@ws81exccbf={sV8DpM&;Q=G)lXN>=&kyV7(k z&0~KQIO26V?DQG_jz^-E<;?}| zph$s;54a9pJHr{qBp6z@0rPb)@T}r=@zyD*9PMC+>Ep8xwd9{~I2HQ%jk&Y$dvMY~ zQiq)OHjv%^wrm7$ylFdLKAQ72<$8N9Z;3$uR<_^4{?-zlp2>FKy|9iDk^%Mt{nEQ4 zAm-%lqK_Gx-!v0q3j2@vt)SKz9wmixP97J3@I5pwa2YuYcoO@ApoM?oGU!HcwE$H8 ze_CDfg%9LLrY<@Mn=fT3Bsxz|{ITnNJw9N?3k+--w^vR0@mRRmHXz{moCg5zM8Nj> zNo5Z^Ck9TB+& z%c1Aj4@ux!*hbEOe4M;|_>3qjYmPwAUh4`zgSe0o5k{(y=w}9Q_3z>rg16hPo1GUb zKAF-HnOj)oVb{q+g3$3zeDkRbE}|)Vbn>E$!2}Gg`LM}=UfF2N`S}qxM#&N;*yHxQ zzo*8^9^TAmYe#~Y_*$Z>*+rto;R*H%-b9dd0IT|UL(&&8=<2*nQdftD6aFJ+lDK(d zdwqtWm7o@)`qUBPPtg^s_#%q^$)+=r&z6CJj!9@(Q4E!Pwam_ zLN`jGU%%#kIw%8~us!+5eeq2>Q+O6Y#hxFX6%dDQGmq=f)JNq9eI zeE51w`qc6-^%BuwPS_Ta|-E3oFVHuYJhLw{>aqRcz|C=;YVY*I~ox#fT4l^&GSPapVtcirv)fFi{gp|+`FS=nNIm@k#8EM zMa2tR=xJexK{)~A$ZLyyyZ3O`W3_?}@2&M&3pUsH)IWk;&w#hPzR(VGK(x403R6|B zsc9*?MBzCEW~Ub5qWF5i(FQcha*| zXYj}{5hFsVTZ~IZ2vDcAKOGj1;5*v&{(z*SnB|B_S%N#fpi%}=4K z;U*Om`+4?g%MZ6IvTj5cyp)qDLDoSl# zIxgPx7Aqk94Y*fDI(A+B6#4dl)hE^mJpgYsN+o${``nfA5e$ZLxJ)0F2AM+dk*(rld(5raR#-yC2QT?u||AF%AICkem6=lJ*Kzrskaty z9S%n;=f8_%ov8V+@zJT5pMp?;#Q8BbQAj*mHR*viJrHcL2I85p3ePd$H!GS67#YGV z)%i%hrF;YlcPSh$*w;)qxUYZ~`24|1IJf2N-Z*Gwi~5uzZ$9@Tf%Yp0e>j<0g4v`i zBt59vRX$cn(*lMY1n?AyZ{NNF^FT25Gaw#7;N!8XQ~4NF?^<-7EmY1uJI&w$gEAgl z`@btX9e=5!_WA9^ajc3*%lGX^#%>=`2GE3}%;K#X39vy7u4C@JlP)2j%N!$v%B~`h zYhg~?Yq%R!iMyqo$eF&1g)%gM6qq8f)k@(C!Vo3*f+&VTbRIye=M7nCr~nVDlpP(AbW=j4>W)`;d9~PF2{NnSP=g5~WpX1WAmATLV{RcI!SQw3J!S=y1uolmK z=p`l7U}G9z+yD9%`jQh96Yy5SeX{6wWzCl_?-FmF!Hg5?ETD(2ILUY@3o)HUwe3gw zwKy?`<#B-^g(*fnnKv%jL7F836T}Rngm&-9JiKtC07cb=&IK3g>=>n`E!)N8g9|tu zPK!?@UBgVd*Fu2WQ&wQ5@z3$`@p;e`^v%e$U8t2ay_&#MP^xD<(W|VKD`*prYkUUS z8qwH9)k3)5?RO&!=+}Hy6QBw@9~s{dTzud?oHhaft*y#>a z0=hpBj}Zy?@QPU{=mhd9fbgKvq~eWQf!~-O{k7DAq(SSPpS1EIn`i}f^sM{vtZc#~ zy_&H<)bfzgY`LZ4Thkp+<;ltp+Zgu^PFk|Ly}N0JB_*=;?Og0M+1lBM$S9X<#KEMe zT$``FTXu}Y?5d~Be0WYzo*zFGPG@0cB=ez`Yv&$eqb^daAlzZupHE{Tf0;+i9qf_DrJs#&R8tbDk@3wD3snrfQ@S`y~gbGOjExsJ>ra-gDxZNU6>}1*UzQmr3Nn39`|5?S;L)Hr~^X|TQ0r6?s!!N7j z^0+7j*2X{<4N}+P6+J~Sqv4(6@=^k&+9ktSJFGCzqhI8*K4h1a+J{MR9X{r%Z8VX` z{1EJi^ox5RKUTDClgpo%XQ$q65?SH3O`L09fkW{d-WrKl!W#MwUtn{w>xUV=54eY6 zkQIyb3vky1c(_5WYD_w%K2f~GwHLchm%FD~9_d*RiP`q$eqZwtpMRgFRuJ@54e{<_ zX_$Fm6_G7uu)!NNg25{)htGY*Q7hAB2s(uYH*e>0LL+OpigvKJQAP#0uB4s1U@tw6kKNIYLZ!JLA zg}e!98%>O6(QT-qo0~J#IjKO}0CW0I}rOnD?sB_Ib!emx0rxn;~KfEXs#9) z>#N&5)mTR^hHLuQ6xKv;=W!tjb|iZmT2y!N32yvtH{1Dn^sE#cvd6ejEE_xc`!`R@ za91rOa%Z3f@B%z)^8%ELH~KD`AxWF1v9&O(7GfH*89NufLE_~ORO0uO3x)&#K$z_k zo1uvbLxei_#g~>KSD5O6$=6(+$RYKvG$e^!!MDm*ROFYt&18){Ip&J+c;=2xmXrjo~SObGqf z4LV4&VyB&QHR`EHb7v{vd~J~beG$?ubCaGe(q;SnuIvT&kDYzvAO9@0Dgit6>7dvw zv}@$M&zV@D)4y{_v&d}YoJ5YXP5UX%+Bhnm{DOr+(a;LMecb_TOk7?`Ajb=wpmq|P z%;r8^_BTJjh?g4)B?*_D(OwFEtPeel)$roNxy*#T#= zjfgl!i|3Fa1v~$aKj94NYdrP%khi5}3o9}k2e_jUG+D^JKWnG0S&qvJ%S$TON!&DN zfeB|K2M5m6AZ64=#ZmYM%)ZdA8}~4>UM=8}Qu*p7HTR_aF1M%HRYXKdxxKw8>##Ww z>StHp1|I;p0zo)^ZoYpu?El^UWUa=pg)fTsak1=wz#}n}YPY50 zQc3U3__7BqGjM2-9t1pdaDa?k2#07Fbn=>pvJ@ss(r!QcfP~UbwJirbK)= zgvZ`ZrTuYV*7ZYcYpe5I>-j7X9zt~Q66{%WGmJv43F!6jE#TUN)+J2UQA=0;bvOtg z0f^+V+$Cp*n+r!9ZO{Gu{Cs^GN$L=}rU$Q0`>h1w4h4b8r{DL^7BV*i zu6Ihyi84g_X6@}gKiiwzZ#!kst}MtvH*zd-p1+^wMkdVjbyj-kL?=SWH_r1k4cXxLS3a%MX&_!T)RF&#P zgtVYS(Kj@Nm0$p!ctsqT7%0kaWwZijF;M$q18Oqsf{7`H+NFlr`L3;n-2KI));zAy zJLY4`2#Hw2ElsoS=wMq+9E7Ww;nh5AE0PcV!s)S};a=aVwa$()n8UPqcP^*cmyLOV?-}UjMDnwh&REMPtrIO755S5QbG?u_tQy;uV>jAHkQEIwnIpm z^rd5AG|SGYRr2Pb8{eBNjEta225Tf8odnbRx6WN(jMn2yy;-|h=*z^k5@y+RqP zrw4;3M6QeIdpiR(ZSV!IK|v!c{bW)S5)Ubdf8t9^bnpirt&xdA0($j9_TksP=ldu3 z-Y{@0R)IwuGg^gf3^PAj%|0bnO)4td@IBt@_1>6%8J`kf^nAN>htk>){azVxpm_6e zbfo`R?wn-)$*W1J2>Tjs?P68^n5RcxT$1;$I=#Y#w{b7*UaPuH>y$ zi=b`Lk3ymjy8ryL>ImWhq9^ap zS8o~<6Eic>c+iS3=m%2+G{-NgxD8z0*4vCQMcSO!O~zn6g5?VkeB`+12hjzQ zJdv_=mzaC+B5Kky-5N5~d)Va}Mcd2Xy zp48L`L+0LvEK;MlW+7x)6*xeBgtZFbx+x%luk;7C24+LxnL)3n;F?+HUq8@7TrVYG zF={7Zj)zL`Ba86_zMXlJSJNy+19o)C^{HA2u||ab+nDqJ`T5>-7DJyk2AfRU6i{I?GblMI+WVr0;2s z`eiA<>t!UIc$$(FOzsT>PBRXaLeTYWTw})VF8(j63-Zr^At1!W8^>ewr9mm5krJF? z%GXrwg{N;0KCN}cl_&)soo`!tL_j#q0oovf8s7$h$r1#WBC z80<i&UlXf3)pEh z=kY7fbdO2m+d6XAAMym564*|WhY@x$N)v=DF7OdXGAuHmEmmA8Ls{@JMKMbUU^`BZ zuEuLsjNy?;7gSH+xJr;;tiN=vd-(?hWKahSC`rvNLa6S7%iAdj@1`)j28B2){R!x8 zFspXo&gzXo(Q?qp)8Bbpa)XxW*B9;r4w^#)xoFX%=!5g9R{N9Lxs%zgrCvzBr6CUm zEyVw{EnsQ|K{xEi@ZInFod6Kd-g7!r>Fy{fV*r)F!5|TM=<#tXT7jdEO&q`wHXi=e zc=$|GGZTEOfi=^GwFHu13X6))2J2dDz+wb2lrn}QdO8j@T8_^9rU6?;!!l>*$sFLM z*k6%3^UW#!`w>YN(Ypj*lW}{gqu(DPG4%|Fp}^%cC&b*I*lAYasI0C1cRoT~`xF&Y z(n-6^ay?5mTgp={?k$*yUU)LN_&SA_&z8iJqg(M=sD755ouH3eXAe(B%p~*6u*@5m zO@h0=^R^(>0~D zPSCL4C$^>N>FtHZMfmC_^UkPZB|3uiA|M53yG-xwy^bNRVCB=R#ndM#x$m|U^{pois!L~PYjfW`)voP8HMo#r zqKOa`@>k#Ls9FDDcJI!7=|0^2^4Y#Kv#~Wfx#gP19{X#?frW0dqu(cIXCf^}vmj?( z1QP);$(v@KipEAgSxlTUTkz>+BRBtew;7JDX0`0B4{5sl7d( zux)mzz7nW)vyRaLr+=ju*No3njB1*EkCKTXfh@fOyThDpg^uo}O&66LS*fWJA17-a zMZM1<+m^kt+>z%OhS!mW#jeax^uPS^^fu5an0s)Cyl2`qS;>wGE#Cq(~G&MA4J;pR-7h>~lVU|&jOCB7zsH}%OFksC> z&vkg;ysJF&lgy$8Xtjtunv8?qv5S)H++CPwi&4t?%=2at^p((A-}o*C%5MXOd7Jyw z&Zph-bE;VoSyvSe%X=%b@ZHAe;S2rh#%*rPPJuTOLV)W&xaQUIrT^=$cO zIqrMFq5@!Jt1ofWKng*q`@0fx`EIt@)}zcKjj@dEx%`sGpGi)w1(`uBl*$G*EkwN1mX$`_Ba#sh<4>R8=y2T- zb}TihXjyl3hWx6tN3GkhU$Q+D)uhv+*^u#R_sWdEolsDV)3qOe*7hj9J4F4RL~lf)Bqac*Mj(0{8f_IoLO8Jpz)N{P{>E?a)`x64m$U%N){Fpog z-WLgMYAYrc%G|``6vtzbA&wxJ@M5%teiHcO@bgjJ1$orApLqsBy7gi~+$xYxUOZDX z+4_?Ojie0);g=6IpO4hXexxN2bIS_hYX`jOz?%$fcfo%snR6(cE93SNt?GWr=c!-_fqE+Ll%^L1=TkH3TWoKo5uXE0xV?%U6C#to@zuc%H9P`^t z9KuoOz89SM@A;CFgEAY{PD_I!Uecx(9zUIMx6E#)UX$ zCmkH)QxrNRk#&s1vGtQdB`3)vO~xYm7PRnl%4GC@O%1R*U!~|xw<;% zdcR+<=eY03%@*T#^T#5AW9!n=MlgRTsTB^bOLk>Hj+bt`FSpe(H85l>`#4%P;l7u9|eO{U>sE3!!Rj zvn3IKN20Ed0{Lt@a3LKW=bfW_KY#njg})T94Ae?H6qzgImqcJP`IGijsPCi1w8fJ9 z5v@bft?!>!R4l9*>Z-5jiTlxQze-q}?`P!W_3`z)MZfEC{Pj6o%gM`r#lBB``&8eE z;$+uT^Uo z>g7=H>W=@yYi-$@g^99*m6uV0^>~eqSi2QvVzwQ=MwgV7lUkNNZrYlWE|`NI;aMah zApu0~dT?F-`xlt4_0D}RYV8m*zfMZP17ZTFD;SEv=|U>C-BSha{`Wc6`ci9^RvJZi zFp-0uOi(EJdq!?q=*|c zzZz@swY}dC%f~Va9Vsjyb}kfpK1&q%SJ_bG-N>~0jq%yYr{K`w*QIs@%D9e!bDpxp z`q#VTQKr(I3^+{G{qgyOg94dM4bn6jOZ}65P-y4;9QXY_}B6tfXwhSwjGW`XX!GZOJIj*{zLOyJA-;1m=Ax*ogvR&!JQF#>rXwq-hcIgVOwsQJ-&Y};m7wLs$!;n|HuG8f_{_`1p7;e*l&K#?i7^G!neDj*vdXLK< zSoT6icZcQRhL3G+Sqcb?G2Y9tuHDLge%l_;h179hAd7s|TPvcX7hN%}blHf<0Bv1= ze-fNACkJG)Ym0C)}M7!oDOr%ipOsp7JX56V^I}ii4DnPE`(>jrQREV0ekx zjAlItn9BTOu+wRG_3+qQD$Km?<6S4Bzbm;`kf!kiu4I0`V9&+$G5_J3e;3}Xue<*A z{Hjh>`65)>r*YdkgA)Kfxr48v-V6<4Lx%74x*W}bY^<%$gVA_Gqfw-UNqph5jpP0M z8pFa*pgEvki z-011OalMc3gW@rp#$9>#=w}=@;`te7qmxT?1Y7*z>Q493qY6EmHZ6ok5!Z{4m9t;+ zsdRM(b1mP#D^Iy!G=qJm@c_hEH7npg(AOT~jcEfZpSQ^hR)znv4jVrK+ z&6V|=$wB)kjhmZH`udmlKVPvz8^>nc|K#j+m8Scv-oq5qdR+JL*uOS9gSS?N*5f-* zUtV1se}6(1w5x?Lki4MBS!!ZvJSMRtc|{I!{s6vF)efjr$v=nvYPp1(fFLV;ft6ec zKO)4^!C?V(b+||f4z-?o@sjueRxuZtF?#yEL%(!D{$2RAz%J6#Y(%gxE-unC zqe4hMM&~@c+$LM@#3f;ZD+lLH>h%6|ov7?7Fs2;y8yXpjx&8S7n}X*0`U7~v1fy~k za?i^T_ViGDPH5>pW-&lU3#pe3CxI0CtRk}BV{yQ0NGPE34Bg(3?_1s73lHu;fKQo` z|4`>HRG}Z*f7%LBUhl@mv!&j-${{6;!a*vO(x1GdAU?LCPkJA6wMw6jN#PQqE7UmFygm`Ehvg}-ui5uGl1KJ!is zV-&kWPu2dyf+s1hWPWqsv~=2 z*$=g>E2cz}5;=vh4DLQ8ijpy6l>hYW*S}xCVANo0V)8_SiL{kQ^hY^xx3coB(4fmg zWGmzjI@ef!1E+Sbc9tDJXX#~Jq*EG<6Eha_v=^~MfQUE*tmdhwYqC-GWTfyIAhEQw z0gSr`Rs(A^;FqV1l74&#a+mUzn1V3*k?(&yehAg_E(~Vd>)I2}P>`bS(%1J4^=Sb9 zYbzx?nncFfGKVGnzOnebHp&hAXNWk|Vr^^d8CnV3#8&1ZuN7Rj5SrTC8xPV>EsXwW zVSSN?j-vn90_fM))EqTwa%AhR>>f61P_bug+svLj9&QdiP0p@)A;p`l8u~?}!K}#O zu+hBg`@cS)Cdg;^>#Ivp($+$UC)seiMRDNnR&Mr%w`W_Stru?a^O39Rs0>v;j!$YY zRF01hl&X~|8n%xX2*QTCQFnai@bZY4OwVn4X@+?t@H%U@cu(?fw3`4!hZdLutkm*V zzO3z1wX=7k%59ZV?8Kq28W&Or4v0l5tv8s@u2r9JT4eT^cz<}bVM5Dm;dS=O`skgL z!I88K>1VR^XG4Or{yllm`f-o5Vesz>3Z;mlv@r_j0H*^Q80mL;F9- z;C2+~-@^A6l-lD91Uiw7ItaP*s>9^+)PoyA)fWgP>r^$_f~|u7vU=s({hZ zQ@j+ybpn>YxN=pg^#=*5|B)jp>+D%%C(}%`13h$-jv+9-m}n`DJFx!OY>KfCT? zRTZ0)_1zxmcK3_vNn5||)PVZfS+t9V{Uymgj;0_ciZN%e1%`R32s4kDPF`|+SFio? zV>g1I{{CIb-MREbtIMI&5Ved_sS^6{?;)P>XnRnxJO2wTejkkrhhS8GVY@4_QP7U> zXPc~l6E#Tg&x~m+H{>JL#tMqAh>_PHt?qm?$gPISU_O(5>o#w9{r0zU(=J#In-&f| zoiQwT^mzE+$9AnWVvd`)>+lWWsm4n=CW zWBJvGyx+_xl4-AhReLzS3tEZ_(>TLWZ76YjI1H3>CjwUw`)iGRaoLZN#-^t0rWdXx zyz9$<#t86`hp;m2-1$Z#b+}qP<1kt>(Y-yzeXbls)&RWoixCDD_eKBP^C`hmAjr zeqKv|5KY0Qwf32-GZHC>7_+O{8{O66(w;u&uUj2;#}&Kq{PxapVW!`FqQ3-+Cc z==hV#&b}I_l-d9n{CL&ghuVwh6mvPA-sBbT+H`E+0fP9geh05H7{}(u)t&9w;d%Xi zqz9*6Em~Wn%UF5RLqxZzf(%h9z+N3ZtQ&>_3hd|JKY4^NFsh+?W;F78Eh3!29feD9d&D{^}8`OPVEi2KzHaxfShk{h3E8U5+-MV$!)5zf$l)36Y(~)rpP10>nlWX8lUu z8RaO*M7LBSd(!kliNEx>JzWR*kn*H;+*?znad)FqEfMT{;z^j37Zrbor*4Ew>)d_H z&&Tl0h?()nub!`tcpJ$JJ`)>BWs;k=$UQ;bp+e2ZMX}YN?ISW|Z)ULgQtG4Q&AK@( z#q;YItDFJ`SQx0zwrZn3#H@%s`1QFXQMbQ2kKoTNXjZG%uvpJ``L{;Z%X_$Cn&9$+ zCA2j^^?Z6h_jrk!uMnkUmk#Dd?y;4`~aPT-qzN5F1+AZo`g^{`l%?HnhzjEv!y;q+R&^%WEC(L?Lx+J3L2`ld%zg z{|WSe+QlY($?6l4AVSd@@p9@1)2|HDFe$${9H$q?v;7;DVDn^>|I;s({1609j&H-D zTqr{~eP^8shA*>u8msZyH(M{`l?7W=R8a_0IrlB&E?U(n-n}zKNFSABXUuvQnSBr6 z36-PxEAJFJ5t;s=6Y`UzpAiNlBEaE3ZrMtAZt!Z~R=mAkr1?n?n^9a$NT`Ixfr@#v zlpOx<`FH^Tf>6TL8_buh}KP1=^ z2s%*|ojCs1n|-Ov^=_;OM;Qcd_LPD_-frIR5Ajcalk-?+-EBKIg5c%3n`&9pYcQ_R z#ydKf7R%}L3+T01F3yjID^#l#r56;b(5q)3TiT8n6wSE1&9`QrJjTWS9xF8WZQXr> z%Pz00W6%G0Fw)%gKCnh~(SzGl*D6|oFBe?XC=W0&myqV$JZlR^zi zr-qQj#I%t@VEM2f{S`cyGOup`H5zgf{Xr({uII0$5l+sIEa3ow<(M;#q*hBqd=ieT z`zHE)IP5#=gPZM=-C#D1E3(N8X(=%}<}Z6nL&3@>v`OX*zZsA~z0 z{%NyLF@r;J4~%A^UI>h6x}T{_RLUm3V7~~$otG`9CcImWzRK#qa?3@TXOu#l?#W|R<(v5DYW&sB7WoVqia;@UtI~|kdaH& z`Sqbs=~v=`GpxFCQqoz*_DS3iUoxA z4j*bu4PEMB`&Q;&-MKXg{>&^wPKYGf z&?gp8Y-e9Q#8qHbr-4*7%yvsMh~i}9yM6--ALr(k8bB4E%s}g6`yG2;8BZ)hMlm)z zDem@5j+Kn`lPNQiF$DpWK*ud0c_&3^F1k)2uDm;*Eh>cnehAe*+0Xr$e$AyT9VwRO zEIjJ@NYV@36gb3@lGVQN9e=MHa)~QUCy_rFh?V2KJ>9wsa&y395v5G^^z=A6I#RHkCjYK4z(7h^umeB!%;&^wQ1n5U ze2c`rTJkjnX)M06tXc89=vp5r<=PW(XI!p&5nS}`myY?Z9f4-6$1{ifW;R&VVyMF2 z%KUa{Nt)6bNea8*!sGRGC&)K8TZY`28}{2qeSTGSfO;Jg5`i+I$KoL0;vF!h-sjxm z_48=|E)*lsi7&8?D%A-S6uBiFmPbmMJgrS3iS}{5w8)#~dML{TsI7(2-p1EkQ)cL; z2jGaz#h!h6am4F+CRTuz7UX@J>DZrs8FGtBY0hw!3@9-^>%c^@m0yjWsjKrF5(S^*0BnnX98y@MK`{ep@2i9O7MaC!KLSc6oMPqP7acHd3!uS{$>zw6Hmo0 zFzm^TF~CmH^DnrS$wjguoW_4|i!b z|Hm`GX2|g^@Q=!t&xOl2CsSPPI9Bh9<>Tv7*X*a{uE^mbO#a>>dm>Z2P^Ffae$Hp5 z^{{;sFk9m#L5{WcFkHM1N*SxgmWCl=Go>>Wp<=QWaZW+#ay3giv6q%M$sFA5r-ssc zPdl$|l_bv4FQFBo^5FyoJ5n+I3itT}oIZU{5k&nYO|txLUhjx-mUJ6h@oAiE{GM$ub+oCvT0oBMp?MJA=nv2A2xmau#azQJls9oss+;Z+VJDo6HCI(G)S`c z00Cj)YDkhzNpQg9_*LR7XafTRBq-b1C|gCytkd1ej0@NhZ5ZN^a3pR}_#=D&lorIh z(kCM2T+<7pD=<$ZS|gFa*ov0xr_+^`1?F|wxHjL>qDNbgBe0B!^TDKaIx2m8!y%Jq zBt2#VQ7BuVnFLd9Azjh2l^u`%rYyTLScs=&f-rS&$NWzDB z#x(jQnFHa5JZby(8ylN5z}wA#vFoy7Y%#$)02O+cJ?@MK!hmZW$8r8$pV_r9eP`Y} ztay~Y@-*EhFB?nXI>CttUtF+~iWHFPEDg{`ed2v4rich^b>k!VFk`I087*+IaIj0+ zr!}bWG;YA%7q7G_r;mzykGMzH__3?72ZXxylEoO-{US&9R@^#V(-(aR=!xAevb&0l; z_Yii^0lO0}y86{ptY|!6=(MexKlzSCAukj{<*1xZ?&uMmrEfova)jXtFETJHYuq4-6~A&-;{JzkR4h%D^t1C5A%as z`laS=Bc4QR{TZdnzXdP#wBf+s+1Y{nt*wnX@4C4vD;gq$uRNW7zA?(F@JnC(c+?G z-pBv;VRBw;$|u`i)7VI(c75RD0$zW-CarhAw)tp<4dMKLqq7zQa^P};Jes%y5uKbyN1vFJzD+@&bF`u@{cJKHete1@0`RL zEx?{K3))y-;_gZ{^#y+sW@;9b@d<+fZ*K;wIv2Zskk3Op>KzP98t=f=+4qg%LgmyN z=-s((8ivNl#)ut^y4`%dz4ALI+hgfJ8Pj|#;&(>nDFsP)YBus~i2}|Q7TQ`ym zK{YQf&On!kG`&2~prDQF2=w;0Z}`5~@%*2Ak)9tc%Hd({#KvAXd*ZffcsI{Z8}01m z^zbNc>a~HxA?+Vo(z3F${+=G&sBgc$3>Bs&!d8gGd2x}TLZUq<+EIw46&hgd*5EQy?5OC`9wj&0h{3u8l_sC8^WNf0}tg!A_a)#@eOL zpux|-~?;m#L=1O3c2nTT4f_M*hf353;pi{cNS?zq}E$V zaOJ(dynfhwZ(fv$-uC#xJ6tYh0odPRoj2|5cO> z=E}2OOjnzvImyF014lGOrh3X6MY`P7WXZ>Z@CC0l$oJCO{`USygGh?X2~|$v1Z8^ z!eP??ggaAoNLjESJ`o$;hX_K2D{+=YRCl!BnvzgVxX|7vib3v-nkE5hL7)CYT7k0? zUp%%T($=gIFh{f>6N!rl@%OCd{iNr5(c*Sa8S(zMTO8_{{CJJb(go7i7grQf z@?t(aiBRA_8^$fgO1O}xQtvUpCctv8bH*IiN2@;~U46TTd|W-W&*@(lyJo6obP=k# zwB{dyfiGyFu9!(O5Escor+oR{yChjE?cwshpNfkltrH|4OWs_&3sV|u0<>me0#u{!l_8a`_pp=Ff1&qop z_A}xP-S$f{EYRw}O#<_ob`>&NmpujGG~0aad6G&j`RyO)e+%aktzps)_6t9Fnb|*# zV)e~cC?Xx5Q)#`s>Mo*pO!Nn_IO*xags6##&9OBq5|i1n$!)Kaw5#3a#X2M&9h;#k z7HY?36GYel+W%!-q4%drz@i2%iPfm{aGjIJJ33_$a-6W|)umJNJtf!wpt1xs; z9q-g;2CRzp)fFv8#*eSnZ;2kSoPb3bK2l9(Wer5BFvsMf5NFtLM|^V4xV&@lb^B?u z?Ooo@@Nc`&u2yX)?mxO!agLG?X|2Zj`T2hGzr`{Oo7`rToot5-&>(T&+3u9C=%x{L zUq-kFgB*ZoWI4GnR1AnWE9ZLRGbqhzeJo4`o&Zi50mWIFmGS&{k z0(@!zqvENLrxi(Ss{eSE3PCnHKHua45*XJ;S5mC$I%QDEvXWAi7#SUNl!<~wB-CTmI1r3dojGAquxgsLiVk*U?%@1E-Vq(I^ z8Wv@dv!OBKTuUP>NS!;fEK`pCSd*WS{va!4hG~XL=hJBW73Fv!gS2iRHcc&WlRbg! z3pBnF8J|J6fl$bO@!{SbtpX)E_u}U|MfYI-9e%37+s%074bJTvkpR#j@KZNKhAEJO zdi(k&-Man*@Ej!h42W6OdoGn7|1P^2^lt-}#Zs&#E-ngoc^Jyq@4)7MN<;8(%pf;A zXgYzYg>z&iorWc*R@{uy@XjIF!R$0YKMyOXntCJrZTJmjixR?4Bn@aRqd|vh%}r1z zeXg@nu`AN^KOCQWbm}2kZYTX|kwbB5>C%Niy;AEalo?z{ugn)<2j2v@Z>#KK#H&eg z4h!j*fMGW@ZW*MYUI5tIo%GRc+S}qoScWR(R)D;rU@2cU`4^UKj(V})itfzdoA#fu z&QDBC^ls?=LY-izl>@H5m6G0=VR~1Le8Ou20mIz+ZfHd&Poxvu{RQ$#Ti?%b5m`KL zsxaldruX!v;fPlV#bAP@Y&ZyQOD+C@e(+FhC^Ck7TCoR+QhoB$e3JaVY$bB{k+lyLEngikSjMkBeS+& zDIp(D7_iC&pS8aEE?>#r@;ebCQ}LD+#}{mc=ar}sHiY=A@?m>ByuB^F5piuiq{LGE zuj?Jh4dTGDLSVLz206yn*HdeNUS9HqlAT~LgLHIq4AErIT1LbA9gXFPO@B1c3f^`2G{_( zJz61njf&ke5^5dOk(eCnB=H{Ur#X~d@Z_Z_$ZK1!5;1gM@V!E=J@NdazUB_S5;5UZ zmw^^(ql%30%32R2#q7AuIqIGJ>wjD6n9|>RoOzLh?BC*-iL`oWhA)umBgO^;&MOo- zkhlA1+y}B2tFYdtjM~-X_5de))I4P?)RJ>UT^Bd-PAd8Gb9dk2k323Fj}ih=vIbiK zyC=I(uJrkC5ozkPX=a+0TUqv6>}ua6#Zc*j{#>8>tuHIC-Vhh?e_TZro)`B}p4$Kw zMitKSD%9#~V~BeLL-hKxfyG`mYIkJ9X|u{@vtqvY`rp#J^Mel8#9v$$%odVITw(V` zv4?VG7bO&A2VZP5FH0++a1oWGRQK;_?lYumO8#_1qx{uY@pT5%XzkmkT%?NHLd={p z)8nx(ZanIgL(4U-33BD-r7I7;MHp}o-nw%mx!BZFewe0RN61X2C*^b_mbkT{?mHZr z<`HR5lEL)Q>2h$oGiJb+tPp?wiNS z(gt|N%C`^uXON#sf|ZlE_s+tj)rH$zsr~niyytsT;VcI@)@ceh7+H|-g#-n+KsvAm z8Jv)fQ~tspFA{YZ;lH?h7*)FP#4e*^FzW^)sG8TQTvt!-?e~n-v@Twy zObg82emJw$E_T`7QJplzgs%u0VtLaj?x<|B_G+!AXH3az^~SQRfLv?&R$IAbKL^-2 zVrQUPDjc_meY*4e02Sv{=D#ADC;t`#CivP$h18{q;<4ddDS{00+RY>2^mDEq2YqgG z4hE>YA^yZYQQ4Id(Klb;wYtCLXI?hm?0S6J(_;NPSS_Srvdl<)lOBPKtlBWjDfY(S z*ULxGfX}!YR`+eaF7-@1mBosG&{oj^J0({C*w?4=;6WE3!^0`fhf^g6z(wIRs}HTD zwu;7dgjz-m4--vR6SSk<@Enm3U@yj_&k^FGjNp0^N0}{`k1t>%fb=(*ehUIyo&<5T zv4A@1q1S&Dp(xVA28|*s^ilQ=CLJ11)zln2kf6ZVtr*Linvr$_D6aCVn)?itFD^Nn z)#+e{H8XG1sLRK5fc&c3cm+B-_+3~!5OueZx;=boM(25un4Bvl?z_&$PI{TirD=bD z(AM*4dn6NNMCG)dXgUA4-pul4Z$Tbc*OZO<{P(XXNXUIfa66dD5mAxp^d{fA&Cds8 zy8V)`I4Bq|N9F<)>ELUTcY|4p0i1=pWg{Rr*{n|JuL%kXqgf`65|cyv`bx9YzEKL* zYBbNp;|ZuJNOpy($T#%ki?*V6BuS|=SQwP8Z2PzTNA#9_k2X$`Qu|T5$J3(HWy)+n zezFBgrMs<064b4qX$fji%M0vu?#fdLQNV`#-KhvOKvH!b5; z-SOg!@2N(iT4=?ZIn)ng-0OvN6x!cLMpz`E4I`f+dED0W@v|GN?45VgI-emtPgvN7 zx%0&`Z9~nB@678GY;5*+n75J=g*tC%iao&!Eq586&Z(S(a31$o*DWG&v~cuwRZ{>q$DJBOvya+Z-YOz3X=i>X!b zlSQecLWA0^mVl|P7?;2&1Qq91$||Wnn`8W}gm>S9o=*wk4EjtUwdsbHI&K(h29$Me zGY0YR*b@84qmM?{$4PZ$TPUgu`_q(6HnWTMN&+W0=ZCM=*jPYnf_+53yV7)IBLeC( zErbda2={Be=FF^L(_FRlBU4|uj>`R+R=8=luF*BEY_iTmS zS-ZT<2)`fK=HAKmM0Og6*_yXL8hw3W?CX?_xz@Rlr(@@cL((bJGJI-qe_V{ICJJhG zx*EDzpFwWW>i>B2RYlLvpXhvP4YHOCam7#}K~4OqSxQh)pAV|CM?-0oLQ+zhoZLBo zKX*Jk4Vn7(4XBKDo;LK0i&}rz@T%;ch8g)j+gisF$zO?7ajis*H?R>D|8>4ISdfq6i0{_pUJ7-t@o+CTZ zs$7r$B_3!V9L#!d5&RDboxWdw$LMU5CYf=Q$8b=Mp#yX{*V}g=CfTGQ zx#dvdRURJE6&c8K6D!=N-%3^g?SLV5(KFcy+6k3>;;)OQJtQfHtX(jC8n&lrD|4GG zBxs{#cA^Wk`}~q_s>Lmf)t9P1tujQ1i=lS_zXMbb$n$tVXM7rgqu)w`U{~hAEkXu( zb^^|spYAf6_WH>7{JiC8_!pG&Q=wjOR+3-JoHB^8!H-*#BVG>GD&W>}`xUxeAN@c% zUWw@f4lzg}gSv*&?%V(NjUgohHqV>0%C4Wj3H8=EjqYXHmQ!D#066(K4Os*%gE;el z*u51o_y&K#Sym?D{??#)#nDmD%GN&vQuJ0^WDqkXfKh)rA=DcdcGgl|He~^#@p31= zI9*|;HuqmTC2(>!Ui3u7mBPOYT}{hFe{i^YcnGq_2m#4p+gi~DR;aUJpvp_IN+6zC z1n`E|mdsz&!h3_VhEkUNr!!arU?PVlAKWbK-m2JLCN`C-zxnuVmYs0|mm8~YVu?kX_}Qai>gEuoG-~*;wQp-ZpEPDS@5@*NVC6Mrmfzr8QC=azzw}V#g3HIT?ZysvJ+F_Su z10(CjCZ8tA#*^9tfaUGOKmAP$w~}nYP70V_U*p0dBU4jPGaoCfR*zfk^6>?aU+s_| z-OYZzJP#DlkyYv({xcQn%k})skHzUP8lXDx1=p|l`DI+iit4GeClDy}zk2-_io`~R z{1lvZwT#Bd5VP}Xv&unRV`<2i;Ks!1mSp4H$^t`C{+>PbL(d{tD59%b=m393905ZQw3`OYGksaKS=~Npdc%flzptT30$|W9aM=WdjG1#E>hlhkZ z;&EeQi}!E!k55jTLxe8WL5oy1wY9JUBfvW(d+{O$F}g}l?3jHiSFhUX5aif!40`8b zK7aWF@#*b9Bat`JG)SCp@)7MH1JJUjBwiS+t*xbLPr>7V#mfkS*ku7?TU(czx+<0- znl4O-nN+51b@z$Gzt_c*31he2_v2l@BBCP()&XhpA@%V zA{z%+!B=9{r~J&Cf#@d^nGyzVvxwD;={4)-vKSOsD2hS;1>rY; zXo!y=3`hCVJ$-#`c2w-N1 zj%QzLmX?*Zb2E_!qlno_nfe}wx0*ffhYCc2uH@%8O8PhQ^ zc`w?HVO(BQ_c{iLRlp(K6EA%JP`+t=dqUrGP2b|5Rqd~_d2gLm&a&*TVnP%~UitI+ zFRT$-JfUCJ1Y<&Ag$Zj;HPUx3VzX(AVVcwyA5Idi_n0f+BCWkBcAA=Xm;4P79Hm zmc|krs6R|Ef10QkQ=9&N?ZM>!->QB{QK~N;cdnhm?yxehkfqqzQT|Bc?LIiV&1$l* z^2D}^bvx`@&jT7bu0zBZBoQHOvD0qSA1}CGlk68%_ZV1i9}h)-5uzc}k8pWsp zj)=<38PUn|p#F|T zk`XSw7L@);a<7mL0kf{jqt#3&k+gE3dq!k7^~k%RHqpYgD5u&m8Isx&1O$bbv8(et zke36Cxk7v|*PknQ1d@?BRyS_WfyPd@ss-34Je<99scwHhjXNKBh4dm>Ch1#38kAve zJ3BQ6b_u_L&);2nGl`Aj{Brt(5J9qB8o5Dm(o$TWyIVBA0tjzG;agHt=cHkfM;oXp zgOrY2YHPz4O>;+m`Rys=09MDoSIv8n{HECda1Bfy&mmO^AR4b;y#kH~;wf;++oJ^gLjO9zk~Q183(3)to3Dypp5qE0`d6K*3*rzM*eeX=%Vua={ zUq=Q}0?Coemjz*<)`le}&>^EN36u^xFy^YNiuT|W?$vrt=3#`nCrq$u$P`Fw!}716 z*$z1*3KGon27MpFox6x2_<~IiC9kXh5X;)(hW`N07}t+yf^ObSK!i`u2je4_&YN28*^KeCNemq~)^!4*Fh-?mOaDW(wxHzsPbkCVM z*Lh8!JDGPm?%ep}?{qMq=3;J~ZeeO_YG~-Yl%HHG<)3E^`Ce_Rp_0PNq0>;|flR-<&%!YxR=sE1kCExF@g03~E&U z|78{{aTP`l+b6oM9zsZ=q4s&sBN<@myO)SJ@Sg~-y*oMeZ(t}je*{(@#<*BUPi@5d zpj6~L^Y36ftbhQOtp{py`Tpe{|Ec{+-8FyMgP*hvU~$ zHGXyka%<^%h_VOnfQ_8#bP7H3Gwz#!=z$N$I^loSz?&I?1;FljKn0k5FNIm`POEm1=t`8nW{4sZGG{1(T zgu&AzZ)XpW3*SgE|3Sp0+GX!6%jUwX#L*jG%W;=>l4KsF;^3!IL!*qC8qmS4;dHvs&zG{c;r8|n2=@$BRU?Di2^%d2?$#RKQrttga&;$VG zR8t%k+V;|xrJHdU354hR+BOjW0ypo^V&SMZ)u~z zt_j@Jhaaxq-uSm`u?NYXlK^u}?*4Q($;PHZ{$>jEDlDO@cIR8&G8SG<2L#>;f35INE=^noC z+LCN`V43bWE4eWy`Ldz!zc|ZK0lvg;km_l1guX4$!9)vmd59@YGZI~@D6oq${ttuZ zceo(G0RbFcAZ+mX&iiH-prGs1t>csaijuF62cKuYp^r-DyG~0(bK}Mhk{2e(P>0~5 zw5`;O+iNVu!;>76&HH=XKF!mLE+$Qk(=A(Q>)TsX@4oHQcsGm2E<5|rA5*fBU_DC@ z$v1>YJ{VL(sQW!5{}J-Z6Y`*S@)Yuo*G)||1-X*3~3?mod2fRe})Zi}S7?-gzZ zP}8a1GV{iSX~xRhy%;)o7fqSm!D2kCkO=izn#ff*G6IYS_~0;E(7hM z?N&zdPDA6Pm<~FD@fxYa@BODaY0(vsjtB#T>m-&bV{MveWYz!|0foRi5CZ|gygo!M zO+RKm;B-?;%ck1UR5MT4;aYd1|8+Xr>gyNZWh@-_Y&~IXX-R8K@%ZvaR9GFT!7%2p z;iV#52e3A3$dRktH=@1$7h~igp7n-ly(s2GJ)_RstINwQ=#QxdB(#n2OPT$^+jqsjcNi%JWxZ;=R+%Uy*L4dS z8w9xeqV2y!e#b?5*VwhuiuOw05ijr|0WJjiW;TU-hc5+b;5Qc~pL zv~e1GJC^RDZ;(*V{LZ{&Fa*hK#MLr;E+oqwmgZ$3m5J<&mAjk}rNwP;MZ?Zo{@8<0 zD_g=S;;kAE5gozW1sNLuOK6)_R;I(`!#6vuayIJD$cAdZ&1+irP4X6TWgYj2_N8Ud ztvy>7LXm1q>+9>#(hS1#{kX}vcp_5aFGO7Z-QA67|LJH!TkocFw#)18pkbXk(vP^ZcCyY*^ZE4jc`jqX?^;^e!;| zk5eyWsEK$AeW)jM!5_0OYv0>iT`hzyR-b2;y9L*(4#y1|{sSs^^buRRx-LZ+YuC~{ z@2~`^gLWxn)B1lu1|LL(M?g@ZoU%%R&O+ZSU0J--c;NxWGWBaNU}6Ele+`@{SA5=sA)Wf&w_MT=3gk#){o%tvPsNjCxe=DTBv z5v^WJ)7tacSOY@-@bEA$TUtPa>*c^j9|z~x4mMu}v@ZzgqvVI)#(r#8?fYZrNkQfq z<5K6{aA{H9uMmR4doUdn-;!NFXh-~@{Tfc&5Nwv)L{bK0h()uX)T9E4zw6Qn9esUD z>dP@(91bens`bEBp?c1(?CtfbRV5TT<;6t-mfBP9m97 zvavHt@tZC@S*@`e@ithV|Hc*2&*Eq6_~J6ddiBf=`LntgLuw~@@|VxjwBEbrE?6UP zN|J`SpG9D%lON3h{*Kx&l-PE@|dS# zC~IuVn!!fNSv4`m$j5(D!?MP6aI+dP?JjRCAbt6xhI5&JkzR?a03>P079%6<-31@Y zsziRcz};RR$wm>PMEdzW1!f^shey1Wq?^v0l{(TY)B6#aj!ztHZ87VCeI%Ckobduu zuH@w8knfSNGge`(2%|$i6*h|C+834pnrlDbyG7j24UBGI8)(vNxceE-12t_zrj~^WFE03NvsBw~&{g^4Ji) z-c$;7Nj9MP*5k1;VkrM&DSB4s@p)*YEG>!nAGE}@pgOHv+s{b_E^XeeHhu*aex~=^?uo^@sV(-$Kv1rhPqUsqXj&tWzM`_UOk>0Lnuw1KA~eS@T(~fh zo!y(|9p^(Cf_y5cHWYd$-VR^h4j{0Yon!{GIHM|!nP#^o(9!@nB?ylYPxzC=~ONjb1mm{rV zZDDcgZ)s>844Y^uNKp{)i;Zo4N|}&)8Z%n$z=(XD3$j&8(8UWehkcEL4WSwriH=%3 zKfE5GZZ#J|Q3fxxe);mH`>F=*xmYb8Y{pBKeDAeMb#7?CPAP2zs>q+i_WIhWAt8DB z(AJ9!fpGU|-rfhqsH>TemzTbF0;GM9Ih3`gLdF*)Zyp{V-s(!kFtM^m%jYV_{&UPV z{Bc|0XCd9jy*7CchG!dWuSHo(S0XDpC@#NU=6?(5y)$R7`w|Ps+?QmAgW%IWI0KOMiey{Aj=1A{@t#MZ)SrUOSYj*@_v#KDAKe1i0WKp=TXA zyxnlb4GGb(qjW<3+aG^KYLw@F24`VZ4(t$D#%tkFudWtmo2oIsj{WiTddS6;{o9Q1 zhF&Y?h|56Yq-$x{OA1I>87FqS{yrwre)#PhJ&_Bv5gv7a4*bs;v#}izQ=Sh8Y9~}pSl$eHp9Hy z-O<@eR`sPflqm;p!;4a3_?GwTo8RBnXs^&c>mXWi5gAX=x&EduL)Gr8<5M@X!d9-? zX9At)Z#jPNgo*9t7ryhU4~~KV1>_pBSYe^lA5Rd~t7)#87#aCNQY|AR@nG z+JBbwMgSbbMvURv!{e#px?^Bqc^IKzJ!}ureyIifMVb!@-yQE> zhV%#=>G+nc%Dai1W>U7bEM>iYoPY{0_c9|FIRug)#&Ue)dUsUUB1(ObX7&*rVAywM)y^;Dt3dGy5Mx+LMpUgQoBQXgcqBs{8+q z8wbZegpNIvWJb1dvO|dMJu$;xTLvdPn#;jM-4Q|Y5bqYrv;_}x-MZKVs+9bofEF)!fb=$M} z?om2~ir^Sxw1Z9uVQMgVHIIZ)X{CMN2>|yalhs}W%Pj4~Ti1^R8F|uPptF+DE9ejL zwqNfmr+5u&O@G{@lp1VX+1wu<92B1>R>Q_exJ}0y@UnaXZFssiz9h+|zS5a#SEx-+ zZ1-#2h1U7ntA83skEg`ql)W9?Or%SG5dTwh$NLiYxay0cXy=ESy)FDsd`;0#yK+Ms zOM{@gq+WF6v>Poc_-YEn9~q_!4CwyzX}v7p`{(8VdjTF)Ui=b&Ui>MQJq#YfMpM<+ ziEHb`c7x)ZF7^CmFAVr6HvIH>fbSDa_w{mtK-Z)2=e1J=&DKQ}_GH5}CFoyF+T%!u zPiucbkgtS`uY!nmUMa(;kIS`1ueLv-Fi;QHz+^xiMjKiFYEdeOE36)f`UOp4^mp{2 zO; zQdw?I(T3$lgd@4@G>w`&Z;{TN}jZljr#8h`d8j z=hsCF)@52=D1P>tg&@@u-J^)T5OJj&$vq%ZKoOQc?q|^#g7dSZVU3-Eq0Y2Im5T;R zgrFBX$W@yCDV6++A9#dgvCetlJdIHqnkC)~o#E$w!((dfz@1D{UcexnfeK-4*-~3m zqgQcv_Yi15o-F-41k(+I14^r=PGlvq+%xWtq&2eU?tOS$1g=HNU!!VLLcd=?7KR>t zX%yki(4VLLl&e)Y^>ej`m4pE>t!i}N{v+wT@}^j^CA{#mbsg(5rNzqNXT3CTviaA1 zWW3f?pT5OYQ&D*jM{wvG5`98-(*THy&raX*u3koio7Zr!c62faGRJdJ4|PybXN_|W z^muW#SUYl6hu5%5)NjPPJZOH;G_OmwPT&?T7CJuHnYAe)H&Ss|59O5SzfsZXlIQ=e zn~1LjMP1;8)uXGv*E%EPA+}Rq?m|V-7gRHEso1n)@Uxu{M_EuAnQAM}1cpc$coS6g zii-G{q8-p6ex|A`kNfuXlHYR_60p2R;X2~Z7S}7KR>W7%zl@F*gqL;{AKDzK@{lZ& z?fv=Mzwi5wly4&BmQ{=C((g+IeG)zC1cN>7KK9dZpQ1SZ2Lu~+HN|p2!|NIHW8dT- z+&3~b#QoJ8XJKSCvoxbe*gy${+rXeBu!FR9bbuj8gX!j^M}C0*qpV9B`aHC-!6PW; z%rJyrk*7NFMd_q2cwwIi7#U{f#l=Nr;pOMSzgKUE@~gaQ-3l(R+!*pN@1eiw#P`}( zlc}QA291&@@&{ZEjo2{yJg|S`dFb@h2Lx&2Qc|n3?)9duXduHf9`2-sQh4P=aQG_x zs{GgHnvGP`pq6CsikQY6&n!(`INew(Y@hmfdiyNQ4%JsayTefVu`+nUIvgloiGKe;mF?mG8Yg^yy;NEu`ef_{sFJ+wYgA_ zF6FUa%VXihPxLA+fqO0$ck2YMG9*l$4^jq(nf8Yd6b|EHwF+IvMwSoXxip^sy?Rz* zAV9!E68ytlh-9}puB*&Hs7hW0 zkFgx&+Oix#+tf&l;CSrtFdzV3tzBTjiG{reU|UO_J9gu4e=WTuWHf9cMWQPE!QR{1 zxlETYEUxB7Y^Mq|B&1!!`CZZgMi!akIW!39SVo3^AictlKKNJjO2KDlCZ@o@Q};sV zM@q$Lt{Ys*Zl&ske(a;aJ20pEx3Z@6Ul-I8#Wxh$9_=isg}8=%4C;K&@PzQkhXqm#Q)2$ySEadky-Zr0uV@w5}Vg#e}jpTj#5D7uLfSas}DAbv6YWcSou zC+!6gnt>(sZRQZVa(g9l0TL3QG5 z`Lv7;!MAaHFO23d4S2VHQGYp(=e63xhQPNAhT+HH3V@hLb{Dwe1`e$YP}-A}wAMoP zt94W?%!yu)2 zy(*nDCQlNT8&oe7ESOS+gOEQI}&-Lc00y4ILiBr3$283zCLIYtFY(NH=hE(7b+f*MA4_7vsr%8k$svw0c7ahLc4 zHEHW)=mG2D;jS=Ss56`amJ6Yq<)Ls!;GD$g4u>Cj4?~FMe4h*`sz?}+XA?T|S-m&E zQ=Icjke(_y-t zSj!-{zwhft46oA9+Xc#;K)hC$<2z83z~?J$y!Q|MMl;>HvRiL=0l`J&h+j=Xr!uAQ z+wBwC$=_S0WLf>LlUv;Lsk;nPDywH7EZxU}SJ{%3hT0k$7)V{=*i6evSQ)lzX`(~m zmlQeY<@(a{Tt+#&n=&kIbSu*%C(NXlB){^7-P?kGp5i&6b08?}U0g16F8w)nrbBQv z^rA25A?}mOnEg5$E`3VzqUyS-pVX6Y6l)EXVFN@;3m#t;5zk^!wDj+G<)(ij{abQx zLwQIS2|Lz?PpbgE|E&m-kwP~4qiOEHhH1APB`BGe9_}1P^>IC+PNVfEAijKCQY?;> z_=NOH^ekJnQtf-n@1=7sKCa1E)t+6%TVb@*BJIu*!;0EqAG1BUj6rtAcE2b53jL(t z;^F4KpgP0Cy?{I!inO`?c7p0&toYVjB z&nb+kRpsY}hCR6vueU<83wt{ElSQ#|k@3uxq?%gI-q z%ty1LGhd{MiqQKA?VZr4y785g&K+ZAnbn7!_L*GxLxG@74~L6%`C6aB z7mjt(5)#nVdc{-v5xg*H;}AcC7wB&$QvRVW;EAyAP|-w_4(R3KVhr(;~Ae3RxktMsVbrPGe54bt{xm5%*@O{ z)l!`~vRN~Z3Aan;6-wuc=3>Nq=9E%sV^pK2%k*0>z1 zsRu#mIzE~D%GKhJ|8!o9IlX@#DFGcN+UALTkUyMt@P`4u-Jss|y7n&Q+DYY}bDhSeg#7u{ zx|RISwsOPrZ9t7>l?O9xq!E7JRZkq2t!&nvIl2&Ri25~OiFc20tq9Y7`JI^rY60-T z#kIo%S;k!?@;i*pEFck*^$}c}vH-UIEO_U#&NHZujuLqRC~*;SS`{yQUzXkp$*=bn zQ+5Ev4OKHtoPXd$6YZk{%2vamk!8@tia`F*udnr2p94LpLg92#A&bWuoHc+%)V&&m z;Vj7i+E7u(+3&@n?c(ceFws5KkUH>!av-_Su9JXPloo-HcynU~LEgeZR!$Q^Bsjw{ z2?eRoN9>e|`1QEBbT}5Wt!X*VlAa9DYQCpF7P7=5Bhpm#G9+AJM4Xgrse~+v3TFM! zpEovuk^O55*329krB0J(1`XQN{T= z&G}k@j68Igk}qR%aoPy?#Zl+kD;&hE^FG+4cuTwu)0RMCOTz5TG?Rlw84wWQ>pQa_ zQtgcYhq+V%w<5Rqj1YZ8t#1-m0WcfGG7~BhZ8X;)d59_6<8&+i`{k?6F^1i|w^dPPe|$MG6$wC|L`9Nb4^M}ZRQ@%>(--Z={XI!MQZqr}(Z z`NPBI{}|%d^fXen#{qf?*4vV_0H|b8Dj0Hfb$1`$5Ah7i|61=862e*v6P*f|T?7XU zd>y!qAN?J?4d&6dlje3f9fJLqUv0{~v-4hvz??-L2?eFFv;xZ%`MkNJ)T^e_`zyV29@RNJ~ zqfQ&!Yf^HWm-I-ZTvSb{t_<0J`*|28OWo%8ZH7RLf3}mP^2Sf8(I$UF=O97_(LOfv z;Cbp}SLsU@M#n-)b*^s_$1A^8cYaPq*?P&Bs@d)EDOZ`W>^szsoi_1*1ko4~&h!b% ziNE`W9GWf%uP$3A!o{k~0TGHu;NJ_rwb9BL9aF#o-y*o$Zus>#_%uU`HQnK%uP>d5 z@x$~*{&?H+30oyazIR3M(Yx~0uM9QP?vL9(>O?Q%r}JnSVj%k>a?BKP<2NBOcX2`b z&-jQiPM)h|7bK*y=v!&N@Y&poSR!KE9+V~%*G~VBXP{P5gkI#qiA%-(d`Br3p-jz9 zf3t}<%3L;im3;A!F6)N*zbg?b{A;p87okHmhZz0mJ>1&dZbmlF+)6bp{hbFX)%OGd zSxPL>tDx2-wq}i!&MMyUwk?zedmJnU2-NXuV}?nb;3d^b!mpvvmFgr;G5pZV$_h3L z;7TjI0~OU08`;9bV1}UJ^anMAI1mnarZq?Gm| z;i51>3b7^WX!b&qA1jG{+Y`~bx(ls*m#R+)=hgDl1OH16%a|+A?T9W&b2Yhx^*5(g zipLPpB9zJ}$OxzfzAPxhsFXG3HREStgjy0@kF<=N+}LX|YoAP;Z+-WWe0JfW?cHE5 zEx{mx@rZ?CFi51&pEnA)IyevwD-ItEC62Yq1>UCpPq4Kiw4>$bI$wU!8;=`m6c_YT zYZNI5yyd5B1q4Q2t+|Vy-D{jKbuc*$&Zng#vr#IAUk?#Bte%q-u}$5F=KQonm5%qk zAFVlVTG1y*-TTHui;p1zF2m`UZ~tAsmNiy{uxR()S-#M3Hq^qEP-$nA$U5j?u{E%q z=pW?fmSn@CPlxABIWV}gOIb|$Awh8?GJ%!2LJwwEzQ-AG|MgMm2>aU+QtT9{2p+B=0nbo=GmE;2y#dNf}H9x{|H8Z0YSkoUg}_W z86m0eFj|;VS9Ul3r)%5b>8Z8A zK_~>Yr}M$bZ2sR}72Pn6`u6toE=qHui&Qb-1KX%AhG$}C=1HkD41N$nD>KM@`t%(-bRA60g?V&{aG%f2?n+nO8mGZRuGMS~ zO^xsm=4yc_=-t&@aJFA6s%~nMl9e?ppJ*u+POQ0T6%28{d)F8b#KVOj{MCA7ZM^`$ z7npU<>wA7l1)#V;J288jcSpV0kcn-CebRO@`xy^yoE*3{WlQ@UOw7$LbaD~+30%;t z%3%phmYmziwDKV%c;b{$9LXHQ25Cgv<9MOO*XnH0LHwiarpGU0 zL?J2HDwa!;Qv>#;V}8vUdAy@$BFwv?tQNxC{Avh;D`r(A#6JM~Dqd zm_r6BVRam(b7- zWg@I@>(nQ|5Ll5kxRKn*c94D@h3dm&dO&?aDk(hTbK85=#`Wqp)y54W90Y3_IFwM| z;}FWfF^af_1#4)Gda~jztw&cr!EcvH7E!rT5D`9&|17MLv6zxrq?!^IG9wp1jt_Ih ziDItAs@!xzvRwEk9Qf>FlB%JhTfUnJN0?0eth-o>O0k{=d3h~=Om~_93Jc?b6ss=O zqbKl-Pg* z-j0svc09UW;NBnjb^Yk)qcKjs#fp3Hhi<1ZGtJ^A0<74#r;jx8uj60X5}G3?Xh{lg zFK;LQQtn_<%j1i?-N?J9gR;iVKFvg7q{!!_mIhF2v8JW02fE|lN*rh(lPv9?IdPv% z#+zBo^?8mJj#xT6vJbT^zX|4R$xvKKpG4U@N7BhlB896rC?7w- zCv^u8!t)V!`9OmdEQm3%wS&K=uq(8~`D8AXJ+gAAjPB=9fZPo^If`mZtkLy+ZH-j= zD6;tDZ`7fXW|{VZ*nFzaOXw(sZwDNR-JF^F@zN3$Hz$wZw=jCo9#=zNqsQkQNo7=p zgOwosle@xiJz=H-%)2NH1B@*8OJbpa*lFXG+bm-kWeR?IZW-}s!t0a+`*@|IvNF2o zn}4gI-nYNg9%twI#Ldgk6wwNQC+%Q*_zI#<=+4YxRme$4Oor#B=kqll^XKqhK6BW> z1K}gkxWr5=-{Y6>#76s<+!T@M?R@NtBzuQyx7eaZE7SbGG;JW}jr;H+)`zSqTLi$C z;zKTmw@U0yDkogRoi$UDo`qH+dte#B6PMOpgEISG zNYcgua-v|NbbL){E5YXm?55T~m#MKmw0CxP_Vk1S`M#HzX!bz2B@tr|59wp+Kft!x z?`}>wTQr*w1n|lY&_??fcSb@_cRNm|J5C_Aem1UfatDQgnm9OlpdZWL-rmcL=AUGb zNTPo}8NrN@A`^asfRP?vN|e@LNcxpexHm6nfe>wNzt#eQ4ETjW`w%p^uC6*YoA;rC z;C9|*3qep?TLfpuK*>BD+#$R9^RRg5lwFdddSb3{Ft*>Z0|~PQLUv@t!lzG{`n`A` z{Ddv^g1oG}y!I780yRT}9+A!=qKtHFbzS~UaXqSFD~1w-Ym901CV>5T-0LdmqLd-S zwAC3S_D*~#mLdE#6&`h?+ca?|yKg2+kkC*V<^1Wx3%BX>tJ2caQu5Q*Z^99u55d$A zy_6!MDtdC`8(;9m!SgSkx%}m=>>D1%rXdV_nb&evOUkjmCo%tUX>d=ER@5u1fcL!*83s#*O&`6*^Dt>emE%?LePmU3R-L5FdY$OkCUpS5v|pfo|xUrD4~ zt5)RGJXr5UiElK+(*5d+$amj&U>{N&xW^hZFWPLk4ux0Ji5LK$(h%uX)9GuC-#5BC zW#Dgr|Ig`sz)QaPSFfD&{(dL#AAYVdf9>my1n@2#eKGS;k?#^*z~PNIy5FqNM9*J{ z?9HVP5q|8@V%6E!Bb9#1xuEK~z81>cqJNjAc1S(>zwCwM-s`NeX23BB(Yj0VFLyEOVd5M|xhggTln0z=iA5 zZ@*elEm%H1-MNQL8o{Sjd6_VIUsLvd9mjvKn8tcWFKMRnAbUj;VImp+9EU6rfaRIH zJC)cIotJfM85=5>w3vtTT&ICqez%-Ri6aIRZPVF88NsoDO!&m`zLH#l7W1C>S)?eh z2-D=?-fXwKgS^*u+@s|e({<*qA&hF0icyK85mi1$1S(ujPn8;}O`U9ZpAj`_kZC+x zkd6k>2zUl~)4{!gZG*1g4JpO@Q0nxQ#cm+t^DnU1=5#nqdo1-vtApn%N-9QCiV7XJ z^`O(IPlU65B?|Tlvz_}Y8W`lmO6D)(BEMR^$O&DUyr`}gCj9%$r1+;H8^_T1gM;)1 zzKC>$4Vm2y&t-yP^UK?!`!hqUB*T34Heth(M-P*2PU-|32HUD#9*mrJcxAQRh$$PO zjgUc6k(gvbMeuYPeS$b0fzd4}dMe$Hgt?)jrt6|E*j-?rr1wrNm}m{gJhd2F+!(Z1vKD z>f#gbzD_S-CE@2%)soU+&fz4wykqn8IH%8&67dyZVqZlsc;M3(JDXn1#lDfKE_7)U z)JQWGT->CdIjeloHn4IWclmVZe46O(?FAYhxDaZ)IB`Z?2vus&N`KcB2+_cq?E9l6 z+ul$fB&Msvq%OCe|KAJH@mi%gdC@6Vy~3PKrTA{KsQC5065$Z%tv~H>HB+MHPK`|j zY=~Q{Q2%7zYxw(OVs>w)<15Qwk+oQ*jt0n`uH6p(2io3{svT5+&*X|hK>f zCJjo8;Jc+h@$7%DX!>jl#oRCCubVF(wVjplbz-Q1ccxIb; zDXj)z!VncKH>!HH>1s6~Ecnhx+VfUKIT4fT!r!pB{tq7>ZdjfDgM<0WkmI>?KxYkgxQXf>TW zWUt(6Q`H>Sr~z_w_r(|D(;S*%F1EF`b#vPU{%NOMLjU5jw=@!r9Ssv3djkmx3*?(Y z6fD~!eFZ1FhJMi32`!xerbZq?k3{~EBMdl#K*9mlxUB4H=mAM+0MLda8(CS=!> zoMDU4;Xr;`6E_e8#=^zRO<(_uoIhAvvIip=5i$FneEkB|+d4WCta&TV3){|lKcdJl zoW!BNtB1 z;Nxu%k+uGj#slYM7$fH^MCBZa**zlG#?1P3VOI%9Bq@r`g{UchK=DWC)bVlmgZ8sX zkZRt&Q_*ym8ib6Hgo46Zv%=}|O=@|pX#3t5Gw>32KwmxJoGnr?YO{X)>qI2(|9)@O z19ujzz%chf74G9HSOE+_lOI6)us*k7ALP@(NV19KYnQ)b@|cRAIyI+pjyj3b+0$Wf0 zb*#QAeZnSTxxjKpJ`rJqerKzP z^GkFtGfl;iHT@2=tr&AM&dU5?FE?^CwyE+6pdn&xDS+)zP{W_EyGLy>0UrW*m>b-- z9ac9sT1(g8w%4v{i~NhXvxJEm& zgtG?-PvHAxh4KW7KrYW8!dG9rjE%$4b{q^2@*fQ&G;S;Mt+|QeS@2|N7JZkZik&yd z-AgoFr{};#Vy?4LMY;`s{79y*5=MeZ9#TR*)-HU!_0U>q2pzedZ|PjK^)Oac02!x@ z$#PKQneDr+$1}3a5pgR`8LL}k44#uRUt7T7(Z+FLVV~V8XP7aqI#BbPDqA_N<;4H8 zBQdAu75Ynh>p-pHi&tKC^J_T~;as5i^?CJ8yHKH*)GiitOcp&N!8rW) zIBN5p+ipUFJn`@MJ(NR&Ms+Z9xG49-JiMluAG5QWIkeUeJu7_iTz~qia0Wel_$qSd zLz4QjL6WyR39ye9i3|;IzM{C`X-Mfc3|zexEzmI>`n_IFxO6hA5?n-neM9%FnoXcQ zf3{^x+tc@i&xL&MR^Z$AR{J0Mwk~F;zmihZXC)~$iQpD*P5PoSwg#_vB!W*PZA;oh zOwjtCV$YOHh|Sx%>E~w~As*TC$tW&kS~`t1dlQ=f)R8t6(#e+xuGzh>0YvA0iRsO( zH7U05@5Q@_a}U~6t`uf?C-SZ28-)rp#&GsVbVjPUqx<46T-JFa6^@3ZcVUI#=G@)# zOm!Z%fQ9h#t41gcG?&E^0=W#nnz>q~mQ~zXrX=En38lvSXkuLjsE@IO>4+^2vDSb4 zWc!?N^zE`^oym4}CyR7)58no{5FCDCiY9KHo04xZeOZyN{#y*~J&K36$*-zlZV&^lqXUYvodd5Np z!#BVjJk;N@9PagU&#m6HeZ+z0K~FI$C&J=^gS!`H_y^aE(B|G#hV$q+`t?60bwzfb zG}*Jk%{9*-WXrST=V!a;tEeVhXqR`ai{NN#SUfs4>i9RY*q==L&9lPv-3K1ydrC>j zE_B8x)#4qP1KN&10iQI{&BP;UBnYImSM}FWX@yriYboB5j27WtigX3CIFQZkpyMwX zPF#S;NbZ3K6Z!F?CCyA16w>a)k`Vr@o@<{jZL@-dgJk8r29LfaL1(p+?)Te;!Q8r? z0R6O#@s}%fDoM&k$U(vc{+0C4({p8F;ylj_O{^{S!P=E1;qe2P!zm zn3=l0|r0nCs{c-kz5*6OD`SzjZJQ z4OLJwX1LUs8;-h{NXtbQu@!WF+%u37ln5XT64GyabEPWo5eElDoT;`53}~}}e$R4< z+JmW$K;*@St#|R4i@&7t=*4n@xwo4eNkUDFkz;7WFaP{M;|GsOI7}z+zN?ly7-#jM zKkZEtQXlt)?9Z+owQqclP*m6sr-okz2%rk@t15r&9)d(5lRXf!8cFSv2UYDU=dG#} zIGty5Yi~@AdddTN9MKFI1ZUcZ-t|2??7Iu!ZM7t|Zz7Z)i})KaaQ*h+mIE{x$8RNO zil^(Pe7CG)!*eKGXtqOkLK)kKdSY6UrLKCVB*}4cawq$4WhGNIXRLl_QWnj7TB`C?z`jKm zS<;n&{0_SUEnbpz?`pcQJfi-|5!%$5bNYCG?~nirph0{Cx*EqN5I)d)IWr!mm-IX< ze-kziWYpbn)vsWR{su({Amo8P{nfe;G1VN9w5-_J*`ahClzMhGDMgmo-9J{&|MzmA zwOYW8d?Sr-f?0=)jTcEok()&>77H;AC{5i;GA^MOgS33vT|HR%sbQ z*=ZuZ?lW`pyyA*wwKw_u7EgqwNfw1!2*`kiI0hCS=~@E;D0A|Q4iq+85`tnZBEMB) z4{y+5b!z(1-=F9*k;WJr`dQ$1Sz}3c4Grm>QHUC23LRSEZGa13DcMo>wYKh*_~}^J zJO?DCOW9f%zSca1viAiCq>R3l2TkFP?pguzBE$)F;wnFG`HpNLtpIopjnqmvZ|7cM z|5raj6p3)T&c-c~6*)zGI~JuM4=z@|$j~n=_KZ$OvM?4-ghv#X|NW`T)g`5h!oo6> z?E?G+oQUR+BEFs$*}I*vizO=2AA2CLCG*#jRRTYTP2hl@`xY3BavbtR2=QtwIpX0$ zFm&%yY|++H8eemAU5G6gGGckzVVgT_YyOjr|50Zp2iU2?l3NE(OXch}WmYSh?kbLu zc3FcM?Dj)S$f?YH{sNIof||n>ii`h^QvUFyF^OE;@KDc zqe-Znbge0QM7kTHq^E@7L3SQuo)9J0g>mvdBIRUBrOMBPjA5w?+RmuT zG6c2~LQmuqkoaa-kngb?EgVQNxxg|k@bu+vLrn+Gve)k?yop3Xo=ucC%0RvAt!HHu z(WV?IT9U5Z3M_SQobH2(49>Eeizy+H_=McqDsaSF| z)tsiA3W~AZeP}gS41sy0ZYZAMg*T^#2EW^2CkH`HKq15K3GUBw@CDif%O~hW)zyy& zmN^nHKOeahaeC5m)^@Hg_XXqnGddL}CWv)4l@#lnnhxMce6Ap$!gD242jHS0+kWtg z+}YW2tYaMODYyrf6Hj){cpGnPX(4N|D1Jl!yi$j{Da{K1^?IDRwruDQ*OCmudt%4W z$U^^edVRxKn=l5b9lf0X;oCPGz7)Qamdco$>xx!T7n!Lq%`#?SSax?H3Nz>RI{1+x zuAcnjF#hc;xruk;Nr?ZYeK?3BU-6aCQokh7pT@(bk*Z%NAtJ)T|2^e-AQP7B+v6WC zr~B=@C-wDvG3=*p%5uxac${!Pfu|NI$5x3+N$-kxCXV?Zi*%LxIXad?LafN?dVa32 z3#`Kc(KF`s*-zdnq<9R3VRvz+$_>cVEIf!S%F(2aYS7YwXrHpqcM8H79#@Xxt z1YoL~FR9sYytU+elQ&dy)dBcJX8ffi4li0d4HM6N0AwGU&prakoDpbgW?_uJWL@;? z+eGGawxtXVL}$y>^X?Lf0dl2lG&ujf3W;s<^CmUWQ!+_Q8d}}Ur?!VuhX|97hk*0u}>h@&P zRC`gT6k$Q3ztmLqL;g}MHCnLT|1mLM*KA&CE<_%YGtg%i%}RC!$%!K*WJ1VKLkn_= ze)!1|V5)g&MR9wql0Z|$)SJo&Sj!+EZ;@o^bCI<#1`33|;8Q|Hgk=vbLlQ-U); zw`11*-nHDavJdax4U7^>G9@+s{JME`TyAx;K2dH2S)z>=c;YV5Hyd2(fVwD+6o+`E)eR?p{3Ybx*jL2+@>3k zeX<+#G%hYO=Et>luCUp>znD?2cqvC&tgq9lWqQuH)24G=N<3ysHD0L-<9BP1G*iAL z!(HOK-1ft;;H5jY&Ou+C1CYE=+)A&8qi&)QDtav+DrXsGf;U^->nx4Vi!)zW{vaWV zp_hJRDS&t){cPGvyt1;AjBcZ4n22=U*W`xaKgr=I0ODDg6S!z#<9J}292f>gFL$7 z`1Sa6mA`aLvo(@YMReo@srE`~aeVq1^omlaTylgm7uE1&sq=a6P0sym*2+H`!B-oi z)vtFWU5WMN-8Sp10#d5_{RXWufr1L|{PnAIVO5v$qIZM_ZChU1@d=7+b7x!|P~}rB z;?m4O^)?B|bKS)6E?`tk3}32os#&7(Sy%6FR(ryZ`+C3ce8B6N0s-rCm5l)Ya z=POA(OkNaca_ci**yU)-;_TPsAS-eR3QrLEjwDS??ersz{nQo9l~{vUNrv?q7DeA9 zuz2qCY|vhD90nr1Eg~UtKHj-n*L^XC1FFg3F#1bcJJB&Q;Y^f!GF^ef?$Yg~)f3=2oH{64qA zHcWfO@TebT-Sj_Hl)HmXG)g0UFh=zs9gWNFqS-M|~KV!D~Ai#8@f`nmo2Cd7lj z(?{4xsPrOv5fu-%Gl7B1#lh$DveJ^0ptCWf7oHd~Cpp$>T#Ae3Dte<|_C`yLHeos8 zoq6Tf#GNYREHM!gagou+8ohS!Z%-BjvX&2S?1m7(P>Zd7Oz#CgU9L>{@$70Q!OL-8 zRW|M3>SkR{ok6b{B)+zt+t~^CF3XEmd$iH`Xk)VG^rGcK6jK`O^!-MrB1M*d@chc| z|9t!QZQ76{AsxCwRJwL?b?iC&q-02c#e@6Ivl7yx^m;uCK|iJvRv17&4`q#W;WT_Y z*Ku|kOh>;52m2LvNRtC#7P_l@r)R>u%Kcl>J^1Y^Fm8c`y*Lu*7ZW(3WuLwjs1=RE%Fz}ejD5P`KmSbe@Xe` z+08wr-#C%RV#;U2Q~#JM;c8PHqJ|-yz{RTe+ErY(N5}qfO8Ozc9+7UA*?8z61+fX@ zRjp4xaXF7$m zugdysmx?vFOkiTYwcI-vD?3hx8x;a)QGv?~J*x09(>{XE6Z{JT z$dl3Xf0jb&F3n)WxgsWUF~Z*3aC!OwIZ#$(I|^sMT%3M)+1XSIR0VbcjG}W&=tKcWM4!n)1J+qr9OOo7E>V zXzo4&O)r7cMpNx17s~}QY>nb(sEh_J7Hp+h6jB%AL5f9iy{8V5cl^vh;mglyV{5oE zW&YK%-IVt2oE1VPVjw zA$nSGs`E))Zrb&_`44UkO*Jio%j!rtbT^zjxWIt_B)jSnumW}NmV`wmFB0D{qW_5L z!q6Nf>T6abe8fKQ{0x_&rycg?ezdaF%F<7IQ)qxLBEi6LYVtq4F+8mYN>5agUB=3H z?*X&W;W`!tW&jry;=ycSD~gNtwt2Hu$W~msqs;Zjrh_ksb-Cu$nRH0*kae}&;JuWZ z^vL@FUjE-pq{ELfWtAL4k5`&K1E7J>#L|-ZEmVVac7|1MWNHd#YiE9(fB++q2R)3} z>}P7)u+DHGm^kG{Z#+yB7#SMbnh_=bM8VN#)fRjyRbA??Yk;-qN^;HP!dcnAt+$(h zp(sEUUobEvd@<4p0YxJXog>M1f!MjP%*`>Yz^su*_ zO&D1XEqh~WbKUcZqHW%*Tn-|(3C~$D<{*xG+8Gc;$|pjrT>aM%pR^Q7I2;g$(l>Mq z4lb&y@`OS`p7h+zOnQ~E%~Dq;UQDbymV+gru<%_ljvI5A=lV8d*Qc-R|KJf1>F^IN z^eE6T|0nR+uuNp~HlJz+1;w6NZyZ)yHNuBi>N^)5g$mED2-Xq86nCx*oxNdQaw7no zsobpQ;K^Z%rl}TrIuKZR&xCv82vs$%UuOtt-!M&5l}PVl!GWhA6wZ3T;j;8Owaj9xna+=-% zj^Jog+is7izDZPP?BiI+p)T_rl=77=lu{3eVg{{- zEk>Nluv4WbXZRsHp`=ITMFxyAng+jvJskY5Fn|*s!Y42QZ+}-6pefIyG)z_PSCyj9 z&c1k);jRm_svIx&{j#^u?m(@;t+b!S1;-S87vl*?{n1iV9RI~p+=*H+NWGE@{qBz? zeAh~SZAi89!d=vnoH^DJ^tl)h({5!X4dU5s?fns=8+?XKx}E}hDlnVIt;t+OUegJy znPPBS{RbuVLfMdhB!~(v(T4|4LfdC0c?TAL6Pf2pkuNTk@@yMJ`xTWJ2PQP#iX%wh z%(iKkJkcq&=jV)=<>0C1Df{eiOw!n>_M7!WrS>}23WZm)$YsPGey_QP{50exxLEDJp=9sTbuf1U=qur3>fZr?_g9d8hjcU`&l;l|d37wDL+7$H@ zV*-yDme!Aif2u%)q0 zPF+nT=KPq{RZM}qz=@6RMB9A&d*3dxxe~ZtsDQDTVeabvKKAKvzO~?Yp>2LP%Q^f& z-c7Z>#+gWD9;?MaQEQ%BNNxn=dn$B&Xdt0~$h>BEu zaPro5(RcxK%On7P6~jC0<=0gdfbb zt@73SM6-#qNNVg=3>S@(u2=DA$9CN!MmSSr7XrE|jNb=S|Kc(ha_X;O8b0d&#MLL| z*vC4ef|#x(G|tms-$B_4@YGtCdk!-$=2a?wl*F4bHg9CTHJjrPu+VSa=g^MhAN+14p5nJ*K@)u~?y~3DriAD;xza+{XU?U{S05VOl9DNc9^uUqmpb40{hm9)XZO598r-==*wM-D z)tzT^N#1)3$1!ICTPOQ$kLFXU!R!_aEO}8WDZX3Rln`jIOih){Odx}UjB(yZcR8h_ zqgKzhy)pFc6t<`3IQXV#%UEj+?#q|cbyusCRW*gc)ltroT}b`$6&_Ku27^cqpAltWzNq})-_ye7 zuQcsRV~wkqfggdXjW|-q*_PS!KGiWQheq|&9oYB!Kp1{%?&rUMrtKXMJUu-jeV6{f zP?tkr*l4~w50Imd{{4&Kz}w38Co3uq*Sp7?9?qd;Xb8ZR@wGplot@_bANU(|UUHi4 z<+3Y~e|JlyN#yRdCY(&ezEP_m{Xk_LE9+P~+fF{)e%(yUx^mwCkDehtX|!mxs6n~& zGTiU4UAnd2yE^$V@F!Tc;Lf46$%4S&m%c#o8zZ6w4D7R!v!m>6p^o$q_Rm6hqTr%k zu{>F3FT*Ce*aBN~;ylg+;RM<`bS^_N>iXK6p1r;RgGbxm7YP3Z@3+op@~nY^ z%*@0JK|rWK(uXREjg6x(lI_i|D@y>z`S@;6r;zjlbjI|GuKdS(F%qF-Y|Vq;2Q#%Y zjVkVhnL9TBtHFk-ad8={+wZu3!fzP0Vte1WJMr>K=OrZfoRAGECoIeto^WD-J9}D^Rc2iLSX61p-mW3cZMeIGM2eF%nS6c z@D;H>@vnD-2-ax6^2HbF#X}NyFxF>SetyqnwGKriP)7T$*I$6UG%1xGHQrs|g z8o!Q!274vb!KBoHq5B?77k0%_Rc-5<8=jxgs4w@~IKe` zf!0sxp^_!Sd@zVdb%W&Lm54wp6Q=Cokut^mujr*I(kY_tY@n3cBS!8@lOlpV+|z84 zg8ybBYUN3Rf0nQv#a9NA=L8?+KNF5U9TmKp^sGI(b@#`8ezJ!IKEk?7s`m`jVsm3Z z)Y2t5mpb=-Z{g8MB+3(-aCxF>Z0O*bNlo}{=QGaQJkIzQl?seU;>6nN`yxb^?iW;z-hWt7VMs@094?3aS~w)hl>}8cgAK3G&ChMn zE;kMJ;U#FMh9omMg`hH19nb#z%=l^Ir?{KR7|Bu^_eT;O-CLx3f*@tA7 zl_+~_o|kQ1%L0*~to738`#{Y{Kv5{$4+S-1mLm*L{m~KIi>@jpy_6%;DpY ztRwBlbl;e~mm!C!w5o>CFEIMTOkIa3_$!t(y5jghQHf|~Oi6egNtn4y zii=z^jQLnQDbPa{sLOpid5lt2c*z`HyQrdK*4O?}k=WYC2+|I>9h@?sANGL6?BZ`2 zDUWhY1DXnKTQJ^Qg29UC=Jyx(3XOd>(tr%jK}B?fv<*#=ULrtxmF=!5k+ltrRDYcV z5^_&%RDM4yg=oG{NLW}7zLb)ZBE#B)<=0W^eSceb3$9o9ddw;n*ph~pSliN(Xrgdw z{AELM=@!}mfhMI7zO`~*OdfdapfKriF{{idDG}&#V~BLa6B4&}tLvAmS=stt_bOGH zLn_8KH!rGdqprwglc&F`q(su9jT)@gusc0CwXIz}W=guM{9y3o?*6CmPbFz_LvSyn zs7d>{s!G7ZrDeGYU3^?t;o4!$`!rQh@a1u3FZEX?-+SvZE9Sl|!0K+E|EZzkCGC=A zk`hG5)4aE~t6i;@@#joa2{vMMkB}9J=%v*k7g33R6BnmW8XqSfd_&+dS_64Qfg@m(d9^HA){U+JiSyW*GlSaVr7Zk|X#2{uKA zhK4$ihvaN9h6pI4B14|@Tv2ZdM<{b97wgzs`jBxx1oI3s8~bnXD+w>|7^(aAFr#QUZ9F zxvbM}(U!`(I)W8mNbbFe8L6IPU}Pi2_UqT@ zli>CM#25d}%-YEr1IP!UeAD6SYEuh#(tY9ZM1&JhF^|1svjn%3>^fn4 zXZmDzZ#lUIAa~oR9W$+(DXGHfNaPNu4T*92!xNLiQsCT%6MTC!XKlIO-E7Mn&z~Ku zO^hT23&&AMKgm*m6r#musureT!>jY4S5;J9`+>#WsHt+85m5nZJ-F9JHjed5l70aM&^G@qwEA1p|QdnzJKS?xsOvA*Z z$HpcEn}hqt$KQ~ftCm#g!jOhotyy(A@e3i%Lo|h_Hy=Wg+r>aFw)!Wmmpk zZtePQEK+j@f(4mMhSg5;TJf(+LGH{Nb`}F3@;h(IIcD%uD0lBTREvhYG2uyfD``%1 z+M?LiN7W#aU4&E~u^2r`9FvD9hl*VRpsDZYNfWLq(3e`EYWb($UE_EK$Q*g`4+U60-=a@U)Ss z`}aSQZcOo29Rhfbyz@WQGs2vlk62FA+z#{n#}d6R^+hjmc8Pk2?)x}1GLw_K|AD9t z{u}LVHZ!+`vmnt~OjI-yHS>cpcD}x(P&LjO6xQ(~hC)1ngM;KlP^=4cby zgR>a(N|-H-ANh2OYdz4{go%F3GvwFmsf(ZMwD+zw&b{cEJQ&zfb7~dC0-?&m&%*=s z)3{p+AD!o0>K!C3T1raT?By)@@vhZv^O%Pros0GL^?`-;R}wQ_djWT9J($>BTUlvv z-u!m~3J5&MoS#A#_=?0P1b=sT@IsX|)vp@qb^`l6c~2jwKF(0q57+uE?q?Vmn{ZH8<$%k%z?ndV40M{A(l zM)Ee*?$ut5`%LaFhhwLXjMT2xU0>GALUf}@d1AZRmL#(_h(dBktb2t@MeOv@0I#&K zksN|-JHS?983W+6iJWUQ-Lfx?poL-{@5>z%VJR^&L_1qz2azhzFNbfo5bP#0L=qHr z#nLGxo8v3T-2>0Dp#(_sC1;pzc>mJv%Xazzg*MK*dyfl&BFV)8dHOdN666vVdrQnX zsgmTMVNSA{y#s<6n;bs%YYgGL1U>h^@g-rSCgK>390s1$g!9vb_5fKd5S>2w_k%`du;k%f_vdKZu4um=uayMIpHo@TO1!i; z;e_N6SWD-KK9Z*CG;tuqUxYTa_MICxNscmnkZL*r&i7rwU@o#BuMA*~L}+pk!$?VG z?|P6Em{lHjUvXj-bCyL^!iaw;V80s1I)Sq@GkyoN*Dk83^)MR^6@XJB(V#Mi&ie?W z99}4Kz^t7*8uF34%phg&v|%Y5D5K&&e>vjZ7<(#tNrq2~wclQZV?5naXYGW41_$$Q z+VylxMse3)l|4)+kmJ{eI_bL~@O5sE`B@KZ#X@5XE7eaa!yW}ZEG!x|@P zm8<6@Oh1eYd3XOR5$ni`h7!vOAusk5reirsf@1xJ-@@Df>-f`UrWc#ytc^cbuH7b8 z!i}NJM1~NWUi3I2MyXgwDU~gLh_L?TgHVS zWQrDDMEOBgRTWI=nyKF3gX&@z#qfxfI=*@Up}3t1`?4@`WF)TkgES2~XV(d9a`_6L z%UM{_<}?o$X8Pw49QJpmhpB=nf;9ywL2vQ(vC|e`A?HwwQ%Epik zYM_MBlY6(@1KlS=D~qTb?@*Hr({DXKsIL3{3+p*8>ea@T{DF+c5pBAN7NnA<1(e9# z+7lugjXWiI{>VdP0sfz)D~%;<5vHgTwi~=(`h*zinH>&J5UAepl0pxOWnv|>CFE&* z)8cX6;|C6RMIIxDW}gOcmVT7KE*mGvfrtD(@7LDSbc%4llM|hIXHap(N`*2a+V>YO z&b60pq%Ou;yY^3S_Ktb{`Y@YIVC!jdXF~Dw#*yS&=5fqG?-G9}el6h#6H*F_IRH;4 zbI7eBVq#PZT!GdOjc8dtPaHZ6xVg6oh{M6=GbTI$rq3o2I|EA{*xMu4ZKI-q002e* z-o;42Ov(?9p~o%Zj}(}CwTt2t!uh| z6H9qgS7+WF*VwU)*s_Kt=DpeRi4ty$F#Y9PYrA*x+{0l@(r*BUTm@t|O2_a&UG_Dq zXq{Umf~woz-w$BrkJseKHU*#j@;<@-Dp;xJ;yUQ-eiv37eXqk)tV8S~4Tc6mL4Zt@ z>YgkDXDF%C<$)%qaq*tY3P`~MfC=u-1_V5v4glt*;}+Tg1D|UcPA9NTYjAOufM^5G zByc3dJdpEM0s{iFt-x~r{5m@7QR%JQw~1Tu8w@Ch@h{zZk(r4`@bU4Hk&{DZYynfa z*GFHTc&golyL>~8JVUSU5u8GS`%eP9#n0~t?gzqu%ZlFBTVI&_cX<9!;=JSqkgW;<`EJPx|m{} z)mL6WAh7Nz<$TZhbPdc>pL*?pt@uLi4|rpMTo1D!I(qsL1HYq%53G2j*_sn4f ze2*(+E@Nov?%hc0Xa&xczFmuNG1qGq;er$DhIC61)ZSH8DZJS>aE|I1K6 zZp*C`QgOFJDg3deyZe}i<&9sU`2uy@j-+#U$n&*EIBe;c@N54}N!`6f;OqN0U>+K$%5BEv_xCox8_rHf^^l>G zzD&3rmI z1>30nXb^wG?Suiqr)z~UKi!h!;%;**`&OjM(~b>c+NcwSaod`mI~8wt*7Fl68EJ9E z6Z%mAc(#hjEQHl8dl-n;u#!S5Ut*eu8$;&4S_^+~6BVhI>Lih$6`(49v(%{f00;x~ zdWI9&9qeHs54?Z>*`m*Xm{ImH3nC~aoEd_W9_5c<9nmeryy_4bw^e|AU3NzO-L71K zY|>>g@j>84{jBFZ8~Pvy`gp|#g9y!`GQ%e5py|{{!5jRxWOaM7$5KB4V9P(e7s;#> z+Wfx`=6o(>^4}e~;lH8^T|fh1Hxd}cg=A!gP&1R0L03qvBvQXZCk>w{J<-ObJoWSE z^UG#!}ZDP-ekdu6Iqic_*)!>3fgU(VOuC|!3u6XnGG)MK6K zsve=cVdNWHHl+J|ERUHwvcB{Zwhl~4=&zSEbzS0wcEb))vTOgm@AnK+cS=A-!@oHbErb05w{?SJ8$W_Edq`jS5F{7yR-sf6HF z9{DbvtQ~TfTymsM9A{w&+A^@&gXe(XxPiC^r^iL;g$^$*bx61=SJExgVPU?k0U%t8 zH7jV@#ozW`byZ-`v%y1Q{j-lQi@xoKMi?J{AYt?%+;M#3M9f-b8fLmo^nn^;w~m?BDM)t4xfv zl59z+R9pUIk;aZXQ%&aR4`HQ@U}cTE$$^JcyLaORXOifuT<0YU{YkQzJfr)+;u!{h zH1V*-IN!DXzSj|kG+~y%f6bBJWi;q5?qAoOXr~!k-U=j{Y{i?kMqazj!Xu-K#zy*Q zSNte8pI>F%)u%+R-c#&~B4HJ1Hxciy7dLdMbZ?nTEkBW}7xrh{?ML;z;vd>0a~z9k znIRYyK+M_G#n#;rj*DH8^v-^(BD7nP*IbyT*b;74*>^yzX&im`nG@kbo};H)7QTN< z@eQu8v0Y!G%uj&}qvzS{s2<38obk+Y4w3)r!T5EgPEta%*o0F{_4;)fk)8h?xoi2r z|Lh0|k9$^b*4}!WGy%~sSb=Hu?~TL zDcpjrcj59WQz7li!33f*~M2+S<URZY|UOQUO zfA+(3#sN%@kckKYb7-y-nl_(;6UNwKj1sL2)5|r09IUt>C!|~h(#|0Upw^%;me~BT zI3PObeueCD@?*YhqA!7J1m6+f@(y_bxJP&%UIz~H1t1YLHbdDG&y_gfq~t0H zW$y@zX}6FemCsAs{Ai$JgK}*vx-j(sKLa8+{@ervuOgx$dv;=uIqZk6%f`hGwpQNy z!?yO;=iiF?!N}E(4Ry<#vso!NnYn9sczYD{7aARPMCB=Q8MOy}0M)Jg4(yhV5t7m_HXw<`%Zz)8lMAwDtPv-4+ReLsMoE3R9QHcX= znL;n#gn2sMQ(z+%!V;82G$c%zV(Lj8_0w}vxMq4hX&_{SUk65~wzaU^92K^!{k*!$ z6BqGx2wNgZhvyFPP@suqnO8{WcrED799N;hVf}l#@yF;WyLN+~K_&0?tUkQBN)6r{ zH-LSJy@~JIR8o@60Xgqh)h`CD+#0?^hi%ULdWijvy1F_MYryg7>*+dw2yR6S2rsf) zz1QH~&JL&lDb$G98tWpCwepw!61sy$ z28q{8E-}#@wR91)4|rL+xtNPyiOO3H?Z~Q5HLp9pICme?vGMDb$C|Be*Sma9>rBZ} zP(S`GZy-9#8Q+~6iDt0^^!0==oIA2nST#=IJ%(#If1pynzbeP4@%Oqzc1OZI#&FQq z;;^Q`V&;rflu5>;fwp?^MBz_;SfYxJxw8dgkTlf``2^k}9sOE|CWtB|{VqHJz9g$^ zrr55(QsQAqil}RN(}8jI3w6ksljb-}v;C;?L6jC`=Bgry;j5x@U39o;EwmLWu4eY_qXm zDX}H>T8^3&;r=3@J0Rm@+Kv}gqzZNnZ9`oziLng#79ig7XCS~v;vr9d9}UI{B3R$P z8JN98dPh-r!@Y<HX(He zB!|5fWDa*NM%r(7=MmDs{4Vh6aRroPp??Y9_+%CmDS-J>QrEdH9L<`f1PspQ$>BXy zrKI+5OEI>s+Vw{*G?Eo0F0!jfV3kh1sU6w-1lZfEX~(^ZY-7eU3h!&t0qo- zG~dur27Efd+e;q@BSVlXI&1=kF<)-;FIMFtLMYL!q$s5sGP4u)rh?0!)rjAlCr1&6 z$(z@HwnlD!KPAhG{hI!S_*8q60V6keV1(JnkwO)up61tTCcQ84>sJW-?z>hBih7(d zf;V$8Bsf1&HTL}<#|v`u_WW88{IZwS@81Vn)r3dz5@$cKqGg+Lij$c<*vw3Mnt+zW^11DG|6p9+rE1qDC7V8+(%F z<2CeTs+w=Wnc~~B=(p|t56CDbB}+R#89yUfo6gTp{Cs`ir{f!bxiIN*0FLaS^&E=h zctgK^V7&EUJ}f3!2o-b1P~LQET_l%5e7#zt7Ll56NKn-adH(RQO1`iMIKj(2`dSzSFaG}xbx7)!ig1%AOp-_&*Dp{(M|Hu^nOAw z@a}MFWai$E%n2b+^VMFv9)>XeGpysz-dt5jjC%yTq&Hf{AT7Qm{=9#s5%@Kh zFQm^YWFFs0_u%_h^f0C$ zwCxwDB>*l$gji5(s-^zgZ`V25^TPy2cma*MoWoWJIFS)oc_3W+39^utckBqG-7=E&j0gTyiM3IN3E-3+@;9 zNaCC$9hN^NZBWv;LCLDc2YpH3o$Jc{0v1F!2 z-B8DJMM^?wR}TI4KT7q6h2ofy+8T-K`liQoWD!k~F^LK)#WZP)nnk>Ecng1D6pD+9 zW%OBau;bt3dFS{(b<=SglLn^Pq%Ih zF~wNPVs48eXRo^5T_Amfa+eyjc}=W>Z%{~HdGmN??avV!(OdC=!}?b6BM#CINKbrL6z%h1(4wGt@+j`|TPk zcP@YE68+?tB(pUTmr!T@DU>Bq0NajDg&WeBE&Kn;2;tp(QHW`3bBg@71rp}4VCb>| zE~P#StC|Lb!c=f9|8{)={`sNHe~+HB(LTH?PWsQP^q%14x!g2Q4@z74tB0YtH1A3> zN2P`UEm|fjyw#n<-aQ@lB#d%wnAdcjGE1&z=61Ejb6tf zVKgt5xD#%om+4DBAWlXjuY#lGP<=3|gdjC2{E7zyA^TKk@t}N6$6Bi+W49po50R7#msmo?70(8OP#@oNa3d%?qWY^EHF-p` z_}FP5(%kvvaF;?k86MuP`sR=gdtMz8{ht^9Ply!q@H_SzR;<*jGO zSxznDP`OHWvmo01FQaZi*=$rEYE3O>n9~LaZdl%rA3p$tJ_0xe4 zfkeY@BN2(%fDac@0F?&%LI|cZMn~p@smDN7rX)k z&tW$mlnzk1GJ_T%N|SXI>F@yYCIu|)>JO4lpJ5*zfHeV$H)XFoDy&pg%}bJa#kvCa z&?VzM-!&`ruE*dotPJu^czQ?FhZkYBlul7RJc{6Dv6fXhq!W;>p88UFGw?7n@B_RM z&_mpG#QI#K!vnQA;H@PQwHfW96$Ygy{ANTu!)LgDh5O+lHwK1`Tb|N=sA|DnGwTMB z-9>W?b$_}4h8>LZK`hUM@`82({_SH#F0i093d2p8oA{H6&`~E0v^r?S6N7P`qHFWh zzju7}(_y66K6he#X5#FOoMwaG*R#POp=S|_XU$pMG(uK|36BR4MD9F%aH+HTrQ3`r zOt)$we#zz?q~*pBJ$N^mO5Y)9V*nu0-tYgg5K=+dS4#Q#AJ3AF2 zz;q4VbbH-@VAUX-ec43q8H2bhWXoKCSoRduf-6^00;G$b(bN&9Uj_#QcJrB~wu4h- z50($nwM#FZX9PGK5dm4gpL%_l8oyGrzd(ND_L))Cf7vmQpk>B-xzWI%ZaBk=cNbOY zha%aTM3lP@3dS0k-Xg1+j`Tm>c3(k@rsa*y;tZO$t&)ZWu|QiX^a2L_p7w^?)AS~D zk!gf_RmeQRH7`gk#K_yRrzLx>Ps;UHJ5y_^a9dJZ;!3L`1vv1IuFNL1- zv&rV|7Ps)rYshs$TV5z}ng0CG$={NakXkvwKh{2i$dbXk(tj!Aw&1$9a2)vZg)2s@ z{2^ceCp}(%{xbd>E`zh_zs2t5KLRMai%TVZG|iSAm+4iLJ2S37HP*U{j^gNVW5`YY zG*TbUH#>SM&UBC>rO|pk#O`u%Jm32Xcb=>LRcbjNRIY=#BZZA7Z1QfUjQp#F&i4T2 z!g>x@l4J$E_Az;~dlV950QBSd^?OH3^Norm)AOrSp5I$qTB0^S68VFUPuzaWxj~}i z$*$_QcvA_BoIq}d&>#{mhYE^hYiN;;+&0e|9&6}xLSOsy$}#jqOD7s#ld|P*SnCk0 z5=0Sf7r%gR%L?U}olpzITf}}(3X3!%?(vjn@=NZ+Vw~uT(&=7DGtU|o`^z{6kpe;c{{3GeMca?L28MVR3E64k&%&skd=|gGRbpwc{RCb zal2srQaDesy&|V;>6AuMUKhkT-W0z5bx!7k*SU_tv&RYH;!HDwoPB>+eJdM`QY~JP z$XyaIyMmRE+FYV>Y3l`lj`E84g~&0T0=}&|cd?tSLJF zm?i#EwmWOA=BJp2O(@EUGv`h7k7?H*vv=JmTn-^(`D8D+`$|DFP1p}wDLly$XZFuk zaT<>caLs{EkL{{o@wL)n26OoBDg5kbpDwou2nj(3+IA=?8Ys@@DdshW)u|utnOs`* z$=>qcY6^MGjCcoZMwiDWC56m*?MKeVD-WlehO@*EyVk0T`YYbd)=1_*EXfo1}~B z=8@t{z>rcx%pJg<;*&t!N(AOaR(fTCjZJ%|?rmYAYlBggHd`2YKF&cVjT4#N8o1AF zTRROIhSgI~Pd3~@sc?SUb2bmex7%*}9~Z^opsDz<)|ha$q{kfYptUW&yAbl(#zm_w zC6fViU9vr3YhIZB0O6za;CIwz;&6~1_gDRSvIK3`i-BA39&{c8S{imz)aXuhTn-nOqhpyKZ)4eY>XMaJ zSRWG*;{xf(8^l~D!;O$3vb(HVqzw$+jJ<1A#d_UJZ>bTi%A62N`>5168*t3Lh14Ou z7gNF2+UwL3-Bd*Eh{Q0WozUDf>=(nu#oQeNzOZXKGJxQnoo|oZn9h&v%I&H`1hbul zBO@b9##g7Ory*<&yYDr$<|(dXdyAGiD$3`T39o3Iq+Ee(2) z1aQgw2FKz?oJT@jgc8XnR+(0i|2akS&$~%{zRgHl-wu^kx^LCz%o7a~N88acUF zyH-@YKYdi-B9#PP^SCWXGLigfv_gv2&q1^?Pf}+p&0l{|4c+*-g$6&2u`yxQ@#^ZT zLyx1l$LiRHa#5w=Z}sa_*b4$O3ZO`QDSf?FPhnKaWdXuq&J<n>TNUB0n$fz)*sLnK?3B6&3N@)yKl3b2tr}K>#t1 z&YkVo54{vOp8+RED;YN5|5Dqkwk~2c-(I^c#Gwh16N}!=hi!x{`?clR9>1qv|4Y?6 z1|Tmk>qR_;48Y#u6IACQ@#?sx89_3ruY?!9Zd>9BpDAIsNo-lb1Ux z1yxm5IB|2YTld_0T%OL!cx^JEq+OUEfwF|2R263X?ss%A%;i{u#6pcZigS~b!=&0Q zK)2%*4k1p8tCQE662_vyC*7Gz`O+J45Ro~AAbJ@xFnHfDZ1R z=t7%RAj89$DyEA~XZ63GkzluNEquZO1-0V-NHZ0T)Ox)8Kj9fW+Rv)ueYhGw_r3n1 zw#ZDS$Q@=zrYRW_5&xA}dTJgF&$NCW8qL}kY8B_`5LjG-Ft`w{#FM{SlzS@qiexaCc22-@maQtO7K)zXiy~UT@*JlHv6SJN!$ftEb7`n zUF6eeJdG>%up$IWVGnG^#?V7>dfD33LO#cOKniI`NtOvtq2|`pjyK&QBCcz1wc)ec?$XTACOt6lnHpW z$?u8f-lvC#M@Bi{(R0#|c{9Cc8Dh=$f-|bnBcA1vlb-Yre#G12jklMCu=~q7l<_nN z8-g+%!a4*}MMP-6lRd>+eb*(zIZaSGpMf%TS$VE=#tlly!CMT^^1{lka3@%7njd#YV{8=#cc$V$K4G>%wJ{E zf^{Lls$WQAU!#i|0fi&r&uRW{!zAx~O#42gOaMcn8-jK6hKRZU0>%YI12aHnACNf`^k!U#j>RU1UQ{huEW2YZeC@Iv9=w8@_5X&~HZV4~{+El``u8(9sn?^pyJ2lzHO2cY0X-`B z%_9aP+mUJHyN08}J4YXF0FUVA<3q=3HR4UUPM0HxHLozS2f2vkCvd<4&5FP>ii881 zr#D(-@m-BGC7FYW1JcVNX_g*O&dJFMHtR5GEv)6Wb8*=|T6zsZXPe4H!O;<5I53P?n`cW!X0+7K6O)CT3W(y?`KzRp^fWcvw+ys!>!A^K`~*&d{ci;;0(tFpL0@S}dnCcCGjQ5f`5MB5^fA|2aF07P`i3%1m?Ti1YNdoXCeM?gM z*7}h>{E{#N2AzpjhRbQ^2}Tm&w-6k6@wQx4d?vvJ!OHMi3OHPdgypg{s|FH}D(z}a z1_#{DuWx&-!nD@U3( z8BWs=1n0L}#%Zh7MLus!^(KiYDRJyTKxWeIS7RQt!qjr}5@lpDVyvChkE#v$B})ImDwHe9b7R^A5^Eq% zhKU-^*B)|&T*V%W0N(q$wbuT#y>~NGUHi1MUW)wPddLtKeZx@`i!hfaZgUir0QaR| zKf8zH-B4UIZ7U*LYDSdK!3~wOS*5;y_N!NnC=^z*PVdZZW&QNfL|}XTEE?6Ge;G?o zkWdwGV#e&+jY{EYGv_!y!O*$-*Pt zC6P=t4QsM2B)-On&_fEK6Ddc7YSv*Jdppde`>B5V;ndC__Zl zI~2ULC+r`YqI!k8GKdF5SaNi5q6+Bfg-fT&`%?dI_GRSYc+|Ez3OmOplD7QFw)MmJ zmJh3DyzFrhjrDeRU9$d!hHF{csX`m;0q$nyX0fX~>DJ)muMu;5Qy*Oz{TNp+6RB{e zUGmQ4?T_iAj>#)3`9^n%#rh_9?zF8qJ(Ypk?%hET|hryIAQ^I?NTxvQzx!Xx$UJ()2oGIKi#6T@s7M_?h=A!vL z?h3$v42GhkLXQXVNA5!SP2|Hi{DzIfQc| zGPD?O)lbK_gAuW1wf-avY*>0bSEp}(8gn^aND@?f9xWzgit^1C71O{n2So_^lbNdb z5a$YOt%r2B`quZF64=oZ$YT(}nxQUGm!cvf9*`IXY&|q$Oi-2?E3*J|0)&4M{Vu*7 z8X5vw_kDHs(?O^6O_*CPZf9Wpe*bM;tSK|_S$Zq;o1NVpBybn2F^^019d!ej}Qx6u7@YiWb%9B3Zem3WEQi^>SEGQ=F z)JZAW-*Ixn*+^H#xyJG~R3_43Waw~Nwjp>ZhaT61_WLU2!ThK;Du=`#ga%}qX-QwIOgHL!_7D zT}8%;qv?mOpM8q@KCiE@yA3s)Wd4EM{Xcx^tpN-E2@=!LR4w&Uq9ps7J^#xDpK6t8YAJo zHT-${GnAssHTFSQx02c&>karpfN3Gr;CJ8{w+$z6);Y7E6D|9cM>bLR#^ynHW)fY) zLs~myovWF#3d(P|`jUBTO>*U$9O|e4ASzBxT2WH**aWkkB&t(7ha; zpU;Gtm_fJ@J~aA@h&vWmyCt=1dh&<$}0a!(6g$6s}hdze#Pu;A-YM zKUN-1)qGUb!g5v2?N40ps0k9Yxmi|T-jU+Y@OE^?y~&Ve7*^1Z%1C{@HxR$&38;0j z53t%sYNV^iZC}{cpk9;N?xeo3)?&p&TKI)*AD#)UwM4D`6Da*(y?O;qTzFO?a2f`v zK4y8EaAuzn)?porlMu~6Mds%oi=4k-H|U}NJ))MpW5i_R!>2s zt4-$Zt35TP4GrQmbp^>TG&VYzJzuxco0rPR95H5LEOuVVaFO=8@-@U$E-vx?oOZ9@ z;piEn=T`#oj6{}RnA#>fCm^XpZYs)=rCLTKLo^iV(qrE0CtC@w+p|R0IrP`;E+j_1 zjT7t;C{PGxp(iCkE2%{l+K9|}G7y%rtFd`gDm;})_H`Pnx$9iBWG-B&F$=bq`j(S} z*FSqm%n%A=XD=UHk;bR8-&4t6Qc4u%s>vyU*IO`6G;bTXdnL5tp+?=F#>=O?g6+4KjOShnp1x2 z$IWzyR3f^gxUQz+tzzjWSBwaC)N{8}&An24pZeK50r5u*ag{Q^Zp}pH0}ZJiCcXLZ zt=EB9s^2x29}H4%G;KVLrM8v1dSX1Y82atN_+Ky)lUI=+q1*EX&D$@<l^dhMj2X&z+_iYa7Q4ZaP)9Bl`-Cw^r^sWax zlkBE!MIN6@zacw?L!V*S4+c;{F;gCfTr{?|^pZnhgS!SrTKDSo&X7#t=Jy82`s-p| zQsr|S{-~wbE1P#Z9Bk5IE*2&w~AMr*QW9Eg` z-P$jG8va23Gs;aF;cDpR>%01-{A0=5G0fa<0;Ot8oEc8iOJ88k3z-==meX{;#{kmV=`3K%JxSi2Bn{DV|Nqr<8DtY2TawKO+xoJfDk zCK;R=7V)Cdu=l$)|6?)VKSOP{(SziVTnk2CA`*E#bzP>vinI__!AE2N4pvK3Q~F9n z*{`xsAr9zt4tDtE2jz2*9)n03NbQ6SJtY%%*-OFHoHR|cl)&;Qq+kkrn%hG($|*b`SG2=u3r%b|8_&XY(W=xxgTbx1Xln1UEmG ziaj-yEe6v`g$b9K%|4#PHJsAMkf+@G%_vvf^@%H{f152sRgN3qbj?up$2Q(WlYf6n zm9DBxcnrDl^?&7xD9uk~2<>T)Vo^!T6EMb=lS@`G$tsB^qv8bcHkw-GaG(HRsBk)IT;x>L6#F7s|sM3T-`?M@8>-dI}qg8^?QR>3(Ex#OLZ52d&W!^l2{Y)K0pII#V(~o=pCj~97CwIK)_wyt+KJQOX zZ?JYeldod&ygoVMWur#KT|-c@MMEca#l! z=qAn#zI_R>EAt~7Jl~sdVXkR8|M@IWH^52Z2FtCxn&7;=APTa>Wei!p@7?8I88Z~= zr=NB^{p*Grmqscx{9(qf&46J}TLZtlUpDw{MvBIz zhTiGEYieo=4XCKD#^wDifIucYPL+hTCM46X0@X zJO21c6mZX^l&HD6&_>18xgMvk+F=HkE+iokG;lNM7SF^v(O{&c2SG5PLpymsx$(-OsOS*70#+pLpQz$X!@N zB><*>e|<{(?LGDT_gKPG>FeCuc)|)n6(DuIoIkFmt|BfXGHxwAzY!wxr?ITi2F=3l z#QZ4RoFWg4eDBjF9qoSUk!QOA{Rw8lQmjp>^5yV-qz$e@XNNSs_GKK>EYa?%3Jxbrj2c|fi12`t7Q zdA@=}Q1pj)KH}Nb>?{-vzy-&;en}SZ}GEP3S&c6bpbsTeyZP>fXJ3`zQXx)`H#e zN=!S}Q=;n}AS6gj?W>rbFg-lqKQ0zeQ!g^!Khf8HRkW5)L{%s}6qc+>HIrVN81nn! z{7#Nq1RsLNjF{Eiur2Y|OXJo6f18yc^DD#eZrr%hF*9y|ivlz}peB_aBK3$aThpY0 z)Y(p#rx2P5G^&|8WdYwci2VC2^f3n1%TV?|{LIhm(XID(6#K7jG6&Gn`JVT86&1{3 zUiO84F&rBN5K&@7|&amJrM>kyg8JQCd9xJKJ%2E`)zv9#1T= zL}(@LY&%^~zb){aIJOX{f4X|+nRWp2l#yJNNn8QLumI^vDSQxxgYa+BxGND6rO&%w z?s3V!YKjWtlU$M{4K*qk4T}{a-X5EEe2)C(lbyTPY*c*gf!}=Xz3hu8a>$HK@|@SEs3aMz4@?0vADa>8=m_?Hv)^q$t}4!Q=Ul(@T)L)0 z(VB~!fllnw7N!l9Jh%2W41I-x-VKicOUxY8fuuc{oB{BZcXZ~;!@M5eD*m#8 ze?#Ur2DQ7V1TwOZ>HVzwJO#Ldx$x|Jcs*$zSViF z<(-7UPYGjkg7{;`b{%JbI&%Y+0fCY|-zRQ2Rj9=HM6~Vs>&8 za(YcKQcglO_UK3Y1(Ssah&8E*xg);&yS63skC0^g*zCn=dgs z8S4!HPEoRCf_aZicNHO|Mm~bYaSy#%q;InkLysnn`nPMhUy)n6`})!w__Q-OLEzcD zafoC2w&r2o8tRPf5!Bv=%|7Z4e8ak?CX&xJM@L7-M`^~zIwfUmpOP?*jto7obOD60 z2V7U1OyA#MAw7B_qoK0y7!vfrgBp-Gu||oekB=x@1FiU$BVaRL=^; zHTv+-ytE1q~JAdbR`o03LVvyJx(RFPKbuEyeb99hHgD>3k$wztlXu_+UIe9P^w*vt7`U^Z_F5J{`vdV*F%pM0()@q1T>t z|4;UkgOgJ$z!jQ}FvIO9kVVsH3BDc{Y?5rBWD49DLN6{$aUjXtvxr%I^?*1pz9eoy z(jgF*nyQt7ZK+>ZQGx7nN&lT*3~m*lGT;{Amwtj~6sw}y=*E!S|Iu{b@l^Nm`_Dc` z9H9=k>|{GKvLYwMG2$d;WhI%}dpl%@>=g=8C}eLLB_onJgsd{Mvcvb~_x*kSaX%jS zAKb_7oX`9Hx?b1yyn5z|J(uBB7V3puJ)cT;TnqRhR>viC^&S|I<7O(YZ^0W9%Rdvq ziPsZgYF(DPdKI1=v(oYPG%xAA%7GBmW|zCTJ0w5sKIuNG=@cWz<%J5qG9DD!`s)Yx z7QlH?y+UKR-^LNX$2@w4I=i+>SWqP^yjr%ys=%xw)^%>`BD-L`CSM=5b74{<(wKDX zVA2uJUKvrLpJowKD4JggBYfdt^J>y(jfyOs6wnfo5Xk)S4)pG*9wd zhr_|V8=^;Z@-)>!cDXh}8e7s)JX{7TGyW7PAM5xp4W%PyC#;+S`{+?mp&UkqLCK2| z%~*c)T?!19n?f^i!oaF)kkaY>ZPml>J(PJSF2d%_j)oUVx99-7_p(l@ZSTe1u4&>l zQ3)Ln3^9oMXB~|c+b=L* zc0=LZC^e;~xmhN4!0092>5fh>vZNB6`E{SRFC}SZh3QVLebrjucc?vm@KB>+8Dp5j z)JZb6D;bM{- zfwtzV2aVVu)zjIA2YVNNO_MO^xbJDhAP8CG(J8MN!@pY@eQ$~EDl%+O-tziE;zaUdc404w1DS4^_S_bOQ3~586 z+{5oW<1-$5jCqXYjc(Lv2?LO3gj1V0lgkmD9-f|@A;!ZJ=pRXH!J$)dH%;Wp$jkwQ zae3qBCn$k#vJU+F!lMCXgRXloYMyza9>^?_GYXE_x;r{Ly0~n@TJ!ndhszO#;vEw9 z6mfA%S$r6+Vc7h)e*dw11PwsSQ&}GA}m>VNbtzJLtBl&|Kr=lUYbsL zXaEW~l5~2D^2o`vh$K7~%fHTR72^&AaKmN%pak@MmW+&p-gQR96kuhqOCdBvFL{9k zS>M!j4Mn3lx&G-=jB_FnOe|;Q&&q1@rI{hmXr4l7EK7 z_+P@GNoh7W!e9%RqjVDHLzPHho6I#1`_BA@<~SS4O!1bz=;w#CC(9?trBerVmk2Te zf4wSYD(mZg_BZF@^~ztE9?Y>aj);I#0=`k%m_*mr+E6@IOw++FA~_Fu7Nhklx);I%q7r?2T{ZC~HW>Rx8)Wh{ya z+Ppn15rRP7gzX2as@vHfFh@;i3UZ{KEgY-UT?@n}wkYDi8w1trJxf|EnbMiDG$SJ; zd^{+=-Oie!y5kRGY*;48Y~Yp+U>_7!P}zO#*zY}%EMYn3%t|6kFR<|Yw@r*Q(d3yn zBDF~D*-<*3JK{MVXMai4B1b;F{l(05KE2V7uKKd#i#?h*KN|E+4wWox>62LWvs5Bm zinv%0#2JXI)rcp}e;KY&f*Muq)$xO_!x~|hsmmCqq^NZ}oRYLhDM}LmogPy%Qc|YN zxoM%$iFzmWny`u?kr5LEiT@eT#*t%2p);yggEwudJ^;oDDER>-5=nRYtE#j@U2Fo< z^NH?{z+bykOVn%k6NvBlk+W{{b!2N_9*|DFk(D9_^?RJtl6(HIk@pt7e=Kh&^8C!w z$kE`BOq^Dv>pkc70{Z(Z`Y&FKWMzfr)m5#?e;R;7io+d zpV#Zh(Y~E&6K;FW?&TX(Z$bYdKF)Se&Yr!R{^`w*= z5yFS9yN>5DxoLI{fxF*dmxRF@2qaeu38r2)9$j@a!eK{+Z(|(@Fdc@3iYA44o>{8O zf76Z+7;0mDoH5veD#Kpie z@;wjzoogavIjRTub+%gCn^#VC_U3J-D+7OwQ>lh#>2aMcwpB$mYl^5HYXh1IHq^fx zopeP38N9lTt~tIrK-QI#`UVa4=Z!LWW4_qFZ})ce%2CE$bq`Z+xqu4)_M4|vpBjPB zoee8g>yaP$@K=w4(`B~nZ0{AfrbfcJ$Q57MD}QG$ywy99ObmVvY`ICQJ z1A)-zd^82+mHk`)>eyS}4m)ZM^rOO+_-;_mdy6Ert6Ai`nOxwS8Xq5$IQzHY@~s>^ zAMcxZxT0I#5F>q@iY!@2HTdms2A*U-R)8)q&}527m$BaU{Xv}>JP9~r-6U69ivMDm zz%3OBzrM~N*et6Tjo`-K3KP(r%$?P%?_;-hYi`gCLk}cK>IL*$6#v{0Lpf+}WHUEp z?+ms7oO|Hv>w7h#J#ki5U0*oaVc@-kkwsRaP4}9ZCOCcJ3p#!_W0QH*75=q~B3>pM zr<5eaS`S-VVl#fQK%SZp!lkCH)@`$HqGdK8PPOH*1S)jk^+o;yp=2R5p7up0ebP|x z0>(>-X+b{GGfPD==fZFWZl8Em?*SoF@IHU9YiHP^w?P(sBJ*I{9q1FfXgu-bhht5> z%q{A;cUA`8IbAjwWVMiB>?~Xz*Y@w%C24>QPKh~%>Wq0e%RzyXk9EtGVq=wr_*Gxn z%K)S@teb7W)*O}WQs;B{T zV1774>FBr>j4fI~Sn=Ljd4j}%`Uz1Wa@*&N-thO7cbX1zAk-IM1C0zc@iT5lDP%T3 zSj?LwI#Hv7cWw`>^ov=AI}&YXZ8GWr50Hacggqu5!D-I;Jw@&+;q#_>KCkqzU$WP{ zHy^NegY{79jN2}p1=Agu)$?s=I3Hw?U*c1jK~!@_qo%>D7BLcBOg-WLhyd;ITH2#g*K;=}CRo4kki(>-o8l5i`V+@h@Vn6Qca}z;bZUf}2)(MBfHI;h#ClhN zd2Re4?uF~@N&8~=jOm~!?ktsOczk{m(F`MJP9Zaf%0*Kwe8}{Mnlt};#HEHO`qvzN z^dz)p27pGW4EE{BpL|iIi{XXT{YpQV4;7S9_E~%d##Fr(kY%oING~i-;={MKuCglG zVi3-IgSs*A;2z(xy*E~W_Q8yC zXhD8}Is_TK)FuW_`%u0C*FxrqK@4$}m_9d~CnKc?(NN8i~n)$yw7gP-j0Nf zr`@{Qvo^9u_1|908h`w@=u<<~q7Y%8nXYB3|7qkgo_S#8oWMgras1+&|0B->N8h|_ z!oT*OW~Mx|O4r+KzHw7KOWtNouAd6#T+*jY=nQCqz(6#gjYO2F?s?cBorxW zjx^-vFu_}fe{@jT?ipV8=aHX!E!VVsH?Y6#H6vzyYBjy{T88<4d6DQL=sXt!k=VQ& zt*ETOZG*(Yl$YCCFfLv_oL3Yyv59Y_7s8O{64$*RE#=wJSnj>2;{53S?a^0CP6Qq0 zb0|y_W9=Rkl8sOi{Y4+eI-s5S%2-&PC!a@IS?P!9SIv8g@_k5*`nj=c8N^}hY5X5c z^hZBp2%;5=W%{pCui;Mo#)bKN;~*7?A10?o;bL8Sqnq;VA9O3nvNGn|I;j883*fj^ zPb(vKvK4sTviu*R-n?e~^?LnFF7F)c5RDY^F3m8?;ZPnpk_f*KG8-DI9jHZ$78mJ+ zFEXmh6c!j2I;3UT=-{tb*Rc7mUvTSn(-e$K{O_th-9_22HoIr^P12sO0cS4~ZHXSJbq1RoGAuLdBBs{RSDUq4+h$rKGVnDH8NcguaG%v&Jzm-j8*lK3U zI{UdEed`*x{V1968LwF(ug^28nHBlSPVUoByftx5afNh)%LY}vyjU0L*+$DofJf1N z-s5#&_%2QF#Ms!7Fhl=BSZAk8oxR~V$U!Ci$h}aQH??-9>!)5wtX7@z*$!!S*D$rT zmua?TcXy7Ob!?H{JVoC98t*CF-3S{8*A%x83m4r&*oF}2=DL<*VOfBSHH&(|Lp95H zt1|KD1oKOK^CDM09msrwSP-i}-S;`^SmWBa4_U+p^lxD*NwX^pwPy3Tp zTKRtoPpdsV12>T-Y*}L@Tolo6z4pSa) z@JQ^Crnp;-WXsxJ!Fis6vs%5bA1PCDDGrZ|M)E~e5n~yV$W0RVG!~hG*N!rXP;QMU zw89tV!G(WIoPd7ryKwXB;)Nt+@RXwa5;VADBQvkw6*2K~g>kU+g6WD!!l&+mj7oYO3sH3A{2NO4IclQTX2*=7{>W}&%+xH6F#kV@m z^+fK}>W!8OKQaHSc-%cT@6D$2z@^g(=-TYybYy3oKD{_?$! zv@S~Y_X(svEHYvaG zy(N7nXBM1)BYf{0v2XBm7IXPC=jprBaKxNu?iLunMJTd<=<1re^%*TREKyzK2_A%q zM7~~9OpNYz8$?Hn1Al@106fm3G|F+rtJlHHjrp^(GUxpeMV@$0P(|#cH*C@EJKo$W z@y_Tpzqix)@qlzOODw-9Uh*s^Mmp{VpR>s*bi9}iuKxX05al4Fi;}C3j(8}iZC7*c z%PaAczJY<0g}^FFVwiUh~T?&R9k; z@UCmVOq#sk@Ffiqa($HfpDv;L1)qya4Pn(o_F@Mbv}0w~wp^{zZKbQP*kw2?OxKMR1tmty{G{BpUo2!RCLd||l4vHy zRtP&3b$8QWan@Vp0jdjqIo=>VU7LRfYY|M@fqA98;GI+C+%98{0#%ET3FDNb&L4@x zo4pjr+eo!n$t-&J2P0$97P840+C$|SWT%=1KB--eGjd%G|MZ;>4y%a>rX=N5<|G<5 z9oDq{6;m+~uyp(R{=_1B_#hNXpJ6p2VN)u$@f!v{5G1HcOy>*|dBUwYdGh(Bw8YhM z16yF4Ja#yebIwvLme9I@`BhKUQ&;vMg0pMdeZ#p;muURLu8r88IUG8aNF(mD48G$6 zV-Kd3Qw&~(GD`e)az#&)b*gvL8~~%m;%N3jdskmZ0RNFA8nG+DgXoeR8!RWL|yDg)g~%ds3g8p17-5myu{jN^2Nb?Dl);6spPpqIu2Q z;9IRoX!13zjl9}39;I_Is|D;Y#LjjwBnFnnTuPE@?9DKq}!W^!Y$Z&WmbM+I@m?!8cNdt1;IUKh$*JD3P8 zvHW(i;|pEF<#THMxEz=Mf}im))^*bf9!=Z~7dMS%xJw<~W0q9*J>a+8LOr1)`R8&p{=V(&SHK<155Q*zFF|u-lzDSiKe+B{6*PmhN6{l7CP<|Yq)2#U_TNJlvS zFdUX}2nY!9b$xAEN^TR*WLqOgXfRUYbE_fvAN(###z7X1J#cPT2~|Z{1ssi8%xSUJ z>B0J`pf}FSO8sE&*)5Rnh;8Mjc273gPd1=7KpIH-NYc1jKN$YWOkZVx`!lS#*WI$$ z+rq>6p5V}1LCdaSPk6|v0tPk+R6;9y*yKJNEy-s*cCz%ZTk;^xyIo^wuh#&u9UlVSyq*1v!LI6}oj4WVT} zvjv9HF#u20R@V(LHU8TKo8ci?(yGVhV0MLw4=HP_E+cI4AZqzY;5zZy{qL>Jk+af> z5FYg?Kl*h_yBflED^e*UFGh{90xmsqMs1*b&Vr>V@4-12B??u6|Wf=vPiP&6wVxe<3NC_0JYel z+~+L9i{W^(ynD#e7LOxUitl=7j;gj{%xR6+O;Xn7Ed4xmZG$$;#Ib`WI^L}x5&pic-SK;527}q!(bm7){i$=EpmRIie4^I*27;(O8wdGfxDQBb zi6(#Awsr8Zwe?^9*1GG^AtCV$nN(!M8m>8-e1_Ep!6p#KSHL=XX+odhYE0@aDx9W} zhsdqB>YCU1^bZQZ=R&;_!yyx1>j6)WFAum5xGV8k5UP{pd#|*)Vvx0JF$1Q#H-{v& zKAGDtLz)#84&o<*7_CAAHht-M(`03_fvwW*vnS1eg7?EDw2Vr#J$$dKC%TL+dpMX- z)G~^N7mzk0e+^nbxUce6uB&!uLYYjiYMRcK)^}YrN5Op>lCgvBGk8ama;|nDkT#r7dys(6fxI zntk4tU-bML;8)(7cJ0-q+!yOO8AWdXwprF5&KpPKoTTQm*hXB93|AU|bYD*qHtjVYQmIU%P z-o!~S*6X8w2gUuh@X&dAJyy=;f(Ye0cOj)p$b%S}^Pw6o|G|fG`pY?1;+5-zN_zZB z1@f#P_)<~2CRc-nZz1krk?n{XvbREW4PT`M{O(e95-jTu2g(~x9Px;UNjhoPe3xz# zUGXKv>W)8CW|x)^T=!~W3*()`AwonaGqizPz%g{|WoBDzXJc)q+4IqRzv-m|B=`xsM0o*k&S3ufR1wMo6za)XL zrj?o0i&i~+Jv~Ra8sXH>t+L60y;ji4*$yXv|4DvtM4nNNV_PhwOWNDBdM+V8mKoO( zzokKB$}En!)Q!EN4wgr&db;;k zpT_iOR?>jtpEemg!0b}hB`yAvVg(>wzoT2t$0Owd+pX=vJQ}T^B5>pOQjdj1{|n!! z95t0YSrUX8yKTQFgKGKxmac;JP=zipU(dyb@g;6{f4nV?P@z*&uV%lE?a@GxFA$u9f>7Y%2&{-X*XM^> zYo5arf3{`KQgRA^--a_t<77dDr4t-x0g(8)eusA6^7V+JfdQz{&i2P0P<^K%+Vmh} z0hR`u8YjPRnR@@qqtIqkjHF+Xr|#fD`1Ra}p9Y(DP6L6uX%e#DD_XbJ?(|jAynWL? zM>*$roi9k~JWl{U<}F6P_sis@g(_3WWXY4G>CdZ63{8sZPc{(JEPd1TYCna$@vHfR z-XZ=OYlrbyI#Hol+5dDWU?j<3D2=)^x9Kv9NyJDK>kV$nw_-XZ3cd=lI-a>nEOHC{ zX-vQ1V1$L5RHifQVE~w{p~Yw8r%KpMD+7>Z4Z0L}db(S-OCQr?Si4zhEc(3@7Y=Df zx2x^H?{>MLXS6hVQJ9x5EAC#ntcfjN&al!;E;*BY;WL@^qV~s;bl$pk)=^jE+gFW8 zv!7?Xnp~yn;EAo9jmi?_m;59&$=CDFAfxXex%Y{U10-rC~6LvxooTO;pmn#AyUK#r~D%&=3LAUNEXrCsXSEN3@z0sn+SaxNmKxgTIg3z22M(L0A)u0VMV6&IX9#N2kL2@2 z3}>OQU2yKQYFOT-NLWp=W!UCG1i7gqoJtw`WvYl#=A4}kO`=h2Qw*`s7HypE#Z*-% z4jXf;H2C>PdgrgqrIb&O3&__5n@`v3zt<<j?0@p+C#>=tH_oLepQ@_7AK6!BHYVhXq@Cak>I~?}MnDhCu9%O<3 zTose!`XKv)JQGGovsE|{wHFhQ4CyxG z=|7(0(5;)qOWA&Jcw2s;vuAn%c0KXcOxDF#258=Xb+&Nx@=*p{iA*jP+; zjCn*W-!te@M)2ZWYgZBFu#7+c2XRPP+bx?9rdvlTD z4tz8>)IuTH;o(soL`5_m=Gu#Yv4`Hv=?4!&*A(hGyK_uDl2w-C_6 zPD&(1zDJKO?uzL7lH*0Pw;>$|0_}Bd8qdu+_u2&4L9q?h6dk* z5AP_yD_=P0tUv^2R#?$&M4X8?ejImiKmnr1cbxf#mwO@tQ^=snDeJDxt0X z-l+RqQx=s>UIvD3)fdgp@3XDOfW8?c_UCMS#df3xJ*ZM|- zbB-c-c^u%IhlG|Rqp977Ns$;%2>3^d9j{IuJG?Rjx_vA-kOAz{N_uBY*nu^~6 z_cl=9APXA!Gx9PxyG(%s3HCuqs{>qv0w84Dqo#oyofjgzKFwdrJ*~Zf@}a)p>IIBm zHaILrs8RtgJu7Ph>|@^z!75RR&M54327!e+d~y1&PvP4$yGaC zRzD?v&30>x2n*kD^rANd!JKRv@>>j;NH`kdi>5@|KX zApZM@Yrwe2Y8v2q5H@{n_>V7l{aRbuR@qzhgb$oMUpFBKiI0bUC4GP-k3o>Qux7}a zy-CRT7#j;EW8ne-izCh|4_C=3E(}n-++1A}k%?XOmYSC()DwN006T3*fd7ZB^g%{! z7DM3ha3C~aB!9t(Ch48u{O|!v`WP^u`-G90kX&_seXLk4vC?d>>G5V?rX6^q*A7G5 zIQlDS)Os+D8cDO0=W=eAP__DY)7_Rfh4f4fq3J#yf5Cs_;2_=EDJ-;sUycqUCdZS>_Qpj=TF2FOlvpI8r z&s&zKAgJ`brwuWy5S!fay|D|0rV?6IA5ocUX+evo#vG@BoYid~AYxK7t0W+e`Ne;9~`i=G9gty?j%fb@S+QY=gsg{Uk(;r*_SE-ZeG( zgF1qy(I^;#)NNnp)eiIvM*gr(d5VU-xGp{S!kUeiY2;#mf?=$h6Tu zJ6Zm@LPBenhY^FypslAtT?4zn5sX&>MbyFtg*NFuQD3LNd=X8?-qIcNW+>7DuP*G4+SDLS?__8IT0N;(ri`eZ7>F#0?Y zKsyO3G^d{n6-Mh2L>E1at<8nsbFml9K`e(aCo;-r{b1^ay8UL)Qbp_vtB+v8G`8#(;ddmS!Giy z2|wOn+l5-}FxtE+_LzG8Fn(A0RE~PZb8o-%br%V*x1?B6Lj4K_F&m9&+YWhuWV;&c zw;YG@S%ULM4TL#A-;N5);8D+d!19H9^!c@6Rsh8Ipb?8*@Bm;`fhXU8gk_*d{&JIr zJsCVLCLMPn`UX93{a#S*B9(b+R!Ijk8sMInDU@D(sf9YxM4qx`aGwV?LrKicdiVjV z$|3%cto|2l48Z)$ZSCN2R(1}^ndD0Ak+=NvzdYhA(9V(GSi05k;9yVu=B#4o;{KmM zA`&C8K7`o!@q5$5_Y~~%gx{niB^Oj9m0uYP-d&zg9@$nrP(0ZqOdVI-WSrJC6o6Ol z4{$mUhFbOu0u<-67(xV+T@o*W*Ar6E16%s9-A@rGW7h(Y|COH{l#dEX){ZHj><^qm zN5}4&Kyhc>Y?WatU)1>O&cVR}`|%9B6ie(W2=f$Bye8cbaJTB3n&AC4ua}0U&6}TO zdi+g{jQ-m%yL8%M+Hx>*`Q(&I+%R<{QXrxJvztB851y+)(E@-dK+_a~Cop5OEl(#9 z3Wv3*u<&Hy$?-N!pHY@d2@YpGcB=-jsO@bf7H7#A5NVdLj%U0E|eeT z%7&R)+s!yTa+?ogHiSSXBaDqvhP1vvi;xXjy|92#Pjr*L_zO>@@xf5GtofZ}!<>o}kk`K%x8@QfHsI`D2=nTMp-H7fgP7#l+Ac-F)Rug=b0IGa zwm20?(;$NW+CAKz3OoS@pFlFz-yO4smv)B0cFzW+5i>W0;jmQeWJ3Cq=ttq&UvX^@ zMGA}oZn|@y|9xd8H~t=c85;h~f+rKY3mOyBx;q>K(I^O!D8)^KS(by6nU}k48OpsS zv|jMFp*~wCBR8MB-e`<%v*&!mOk5uIioTIN>51wK-O?1!0dT*}$y^}*EgMdMc^H9o z%1tqg(fx$T<9K`%GUQsr-z54Z95ATGE4{U|(!gZ*?ys9R=2Aut(-)deUZ5TNIgx}* z6cZLnI$P5aC$~{^G*;<(#?I16D^IxI?y_s<3ni2aN`kuep#?tCS@-Bw$}^b(rSmrt z`UpX8d10OZ^8)BezYF$ZwzN-|r5S{)RZ2l9-zV=3s7+NbKw2gux#lCTgx=JqSh|Rw z5c6P#BoOWsNX|k+LVL|86O{w{nU!&i?Mdd+^9eGRF}C*e3$dWze3Ta*Ejh;$P>5d8I^r2EAA!ok5Jh7~$IrT1Aw)v{t?6Gul<(Q! zvi96g(W`-tHHQ{-8jg+Ofs2Luy9di1T9(RsoOq;a)cLy>20_5X4ta<9|BIQMVy-Oj z`W+c){w!hd`jPVvw}z4AN0cq!%ahQ0#uIWY&=4bPlF6X$aMtn~B>l_&#mQq~sSO?lKcwaUE;v>Qx{leC{Joc&V{ zZ}L<0bU)-8W?kz1jt<c!Xk&nkf@Ifx=2cj+{F)D6pr8`#>RDI2jpbAm zv5FBE6(w1I?Crh}6*;AStDqpw*(`Y9&nXPL#sUXD89RM%g?;zSr16~9LlZ(ZJr1Fv zjOKh%$@)cJ-Bs?%{dc3w*TDM+ZrrRbNY34;`6%<`AV%!Gvbm*81+D~fiM4lwWNNE% z>ac0b2o6*elh{O*$R$2D$;rRi`zYl@12JE`IyZwPM6N(Ap}lqMKi@Nj6ee76zB|WQ z(Ir!>a$cthqL)m=KW&)&? zU_;^eFop~HP^RD1nwzX~L}#bU)NZiyIxGeH`}(edxv-TO=*MS>Iq;D9X_18a3;Kzoz1hWex5YmSZTm}pOx3LZ z$kP!PkH?dew2}W;$=oPfAw;NnU|^)twC2Av-xMfcT8-|)YYLpu6!Cr1H^A-w-fdjl z^39n_Bxd$QqZ*xNFapU3bI*@VA2;qC)NfyXg}t-m!=IRylXDEEk!Z31-HQTt;JmVACt^yXdm z0di_Y=v>-x z^)Jw4b_x-PzaOit+bf-(I|7&RgABLib%oCV$HMZbepv*Hv-~zxBA$u}jzA#`#IF8x ztj&Xce6m6NV!}l`tA(V*SVG0S0o*$BP6}6ST)GRf#e^gTX=CJ39%T4}Af@>zx!U=|_5Z?lAVbC&Q`FB&dJA>Yh|)r4R{y zpqa;(`=BVR!`qsBDaqPJMC;#E!jKmC^pT`F)=(|Z7v1{ov5id|3UEH~PKWRIQ+WRI zLE=Xq%~&3FE`EUowWMCFC=L>$mcq<=T-)-tDp#Jdh&78;zFLNbm{OvImKeyzB2YFS zIWfdsShfrRR7mT4dF??y0NSEPO+3A?RS4|^8k)(WC={g}({r00R30^US-4mdm)jYqa;QmlU8A>$mac2GjL&!E3c z!v&r%%E}=AE~%Cv>hQwWrBM&*I6HfL;L)dLW`_Qf%qWC%tg{^e-9>AOv(nmSNXf`h zhnmKu9z1WM^V#xMFmN9jPHUAEF#T9_M71cTQq*K&u(Hw}75^n>g zesPuM<5?+1G->!S;}G?AUcEK`L>{7fIj4@+cW;eFED6E4&j%0>Y&{ZlZdQ=JPt{1I zcmopzsvKxfr)_L-DNLBXd0OXZT#J^Gp)BhZ>J7)_sqtWtc!c$M@Q6L~((yEHXTqQ5P# ztblfMIun2-C3j71AIgAZvRkI5X}i%CLN_K@2O_~C8-~d%EiHX)@N^17*G&>ixQMs! zqTgvelXzuqE@h-2g?%3-RxSLZ@`Zzkhg3q^qVyk_(14v(F$Jw?kUQ*{L04H)=+gok zQ$O)#ULI$LWrwl!`N-|Re;YT)mnHhH(ArD|BOznk&FDUnu(1Jo|2}wyM zr!vq-AQ$I^(g$NgSj;b%x-2yw@Lxk*H%XJ1Nrj&&`Z{yG@;g0&y0{K6|2oZYqP{bP zW!n29?Lq@eqgf1lxB|bOiAQDk9xXq*U^M{6vmfTwM=S2qyjd}AwpjVO*E6Q8b@kgD z1K0Jw8i9FRf%Gnsb1J{5+qh3BuBoAKjXv8Yl6Kz!a@pVCPkhn>udulIqq~VtGD+qU zj8t$4UB0B`2hBTByEiXATv>TD?&5#{v9q%=k2U-I@|`oN^jL+1vB=t*p*Shu=6*Tg z%|wm9c@ErE09QgW)N+?34X1w|`=YCIr#CrjWy5j2Vt?bgg4lo0mzS0pui>twGb)Qb z(-P+S8D~cpqA==SRCxI{Rz^W_x%L}|E2po(KY;m@PTcJI^FOJnH?RdC&`EroGfr^W zJh;;S_3Pa6k!as%P0N+<)y&b7(s2-At~1Wc&OWcwTv~eRd~_Hl*g|Y-Xy`!(JYUD` zS$=V%S^5^EH@q5aYErGnY~NF9uGHUqQMM2?|Gvh#qnW^Yvb#%<#Kx#ANxo(%!{<297e2 zHX_rR%eyektU~W!opBC`l*f>vo}Had zoaR)=iqlL=h$+<~WKdiA_xKq3!p&3tE}>`_qdT$1#;(zqbgq3`++}EOVL+ZEeW&JH zmi)W*agmK`$~A@Ox01ZdN2w3Z-y7;DQK_nJt`APlNvFJww-X|glI%lk3=3giIy5k< zCorzc_6(jS)|Kd7su!VR!>f-f#l_O|+C*7B8g-A)=L^36iuTF*F`T16c?16A6TAC5 zkDq_L53#hXe;e=vn*ZYTM#dTLq`s9EX^+6*LlNh=M=OFm>W~tp!ea|rQG_5mXSJrL&Q?AmRtJ$6xQm?Zl+vy82|eHJ6sC? z1)N+~*r0r>h^KtH#G;}rG@wfZuT`bTeG&wg&8$ZT`kr_1Y6Z;KqhutMNZQ?4DLxOC z^G}z&c3N(GxXv~+U1(F!Mr$fQ<;hB@mTRadQ~K#m{}5eh!$4|oAXTMeHgxvHTvKSt z($>&))Oq?NaXD!S2Rgt=faw>0YVn4%d)J*KpBg72H{sH??ciNp(X#ApE6|B#f+V3^ z${)3H0jJopIhRjF0 z2*c+G6+)Ssya^6)uWSPS2coZATdu&qK|vui^GbVrds`@lsqd=f_e5Js zx}9no0Jtk)&mxn-=p>Mg2#M#RtgwYHf}V}_GEiGCi^LhFbfPuy@Za!)252nrv(wB1 z{46o@sW0mg-%pz_Gi^DBr8p~+@K9s`PPDe3{H7+8#FwWAFz($W{=X-P#FsWKx-T6F zWzl?5>xW0MWrj-U3LzC;RQT9i^U&pbsE}@>U^i}la{{I=(bdWSo_3pyo5;BVX_Fw- zo5=Ig{J9bzssQOHa~4y~;8 zn9Lf7Ca@>M3_wJ7H0Juk`sTpeRLk@HR|Lm~)n-qmC)X}QM_x<19`#kRgdpVT8yFVih30MH{-o5alONWONcNK1q!<%06a9ft| zICxM#u()-2l#As;v{wmpNW<{1aP)VWhvYuTpX!S>@Fw&*Ji=gZu&}UjbQD1%CO|m^f#9`%>1IUEV!+|VC{X;b zbD$+9lQnrQ-+hO+r?K&IAGo1U0`*i8MmSKLppv$1xk6}dvf(N#Z3{RIX*%|f0`A;_ z`;@r6JS&2|?(JqsZBDYOVz7e>cRpQ2=6Ht}6dOHml6;hD zN!s5r=EAg ziiFlaOthxwRldy9w+UD{2Sl40(wa5@a1SebaXfm!skQ|xb}-dtkei*i3|aJca>q9s zr_8r?8s2dyPS~DV8Y-Rs)PKG9d)*Glt}J)+>zM3vSCaCID=v1nQZ)+gP3J<5*VH-i zCKp~gq&(yZx&D=@OUSsSq(VqTTw*;G-6f#~<)taXLKKB;C8UZ>{nE7>=vIT3NAznu zS;We3Qc3gqEJDy)&*o)Xrsx>FRCLuemGl8>2_o|xq%06{1523?nQ8TNX;x?tzK^b6 z^|5R2&u+9`qWAcSvJ@I|#2`VB~RuX&j;@t$at|7vii__3vKEW2VNn_K2T(NpRB1Og;c6y18`ZXI<#zx3?m>3WTtqMhk| zJNh#`!%jPh(+le?I-{V=G*Vg0al#9pkN-Vxq{ljC6kbTAEHx}(K5sY~Ubw*u9G)*8 z%DR8|{o*wYhFR{=YhqmLSl3@kYLT?CntgAVXwVZdNKtuKwOkKVBcaN9xTlA2-O`-x z_;jny@O+O{tz~n+F%+$$%X(RdF##(oA=!z;@TGRvH$yyYJ-xk&`c zW##17YL9jxx$F;6X%gus%Wm2pE-tly(7K?O`1RYj_KG)!uk%~w%3c)T$uNHumCv8T z^XU51V!fzbwP6V(LqmmsGjyJAZV~xvS70MQ6Aoyik|)2Y*wm*B#9vrDtiUbZx%1PV zt*uC`L0iOMpCb^FI+Rd0IMTMEuQ(f>CI?;5QV#WVvx5Ecv>vQA3sO+I$sYJ`7OZLc?y?11U2-&hn*&#cWy@^8h zD0`=jkc4D~tjf;L@Amm!Uw?HqTsr4oq@Urnz z?Ub@*(t+L5QqE|aCKfdDgJp>6m{)xH2+t}BkC}_>Z@xom3Xa#E5fJAMocsT6_Ty{X~naG=awJYHaW=;;rUg5b|tlxgS!Sd2aAGImT$v@OUk|F%GA}-$#Avg9~ zx&{qFt;dQMA|Qm~5|<2!H@I%OMnHb!k$;ZNi(>m-54V9Dc%~I~v$C?dmfQgl09`!y zgNL8%NtWn1e+pj_s4VrY{CvMN#<<_(uF0tRoGm5h%jeHsyQct#1D5Lp9aM)L6y0zz z!Q?aFMBW_+gb)+b>H5wV9NI$=tm+ znyv=@SqLN;*CH%m>a2cm^yt7Uf2ijwEGwI?8HDdsUsor2eo6*uz8V6F4P0c+2+q4> zo)q%(2(fr>L{{m#?QlHg;d?vcaxci|yuTCVL`lN8P26Y1^1m{PXKi`pSvNkqn{{ zbbh!!(b>PRJiGPpFkG-(4xM+s|BNcgf4tOS+1+?TNS2l{0>&M9WF!LCvF_hV27dTU zDEYuZ}?0LPbrNGekyaOla#CR1s8c05O7V5&S04QykKp zVMKWmO^+bR(zI@T=Nrgj-G(5Dxu7eNk>|Dg?6`z;l6Kg8!=S?ro zeK36K1x86&#)uz&IW~+222U`zeo@tM-KKSe^pT9>RPGHTXTr4HCrtj*_gu|-YJ~6V zplg7B?!Kv+xfrHbLhjfX(Ah74rJ2%adGjN(of^4L_njE3JC z(*D;6yHSbiM0T54F}lx$H-HzlF`l)|<)I1t-05cHEd#2dp1AH5o@M@!T|^ z(|zHXMxe=5s+0g0vHPR%5ygJ!txz3S(Jwfgeyuy7B^QntC~q2~(S`LZ8$%J6iBCwpWJcG+SIN{%r$XpK!8vUR$JL2-l z7=VF7nzx|B7;G@cwGSv>FjrxGTW8@9agQmjqC-Xm{Uyk)DkmYjQugW< zF03k_hOJuYXoX~3o@pu;>Q?y>w!2kb4+*<9LewQ?@9Ydw zft=NlxD(Ucu|-ESFj`+g!I9J?e(&-)^A7kKWBizbHK~gW9zJ>M_3jYo_@7Vv>!P}x zGTlG**^2q+Cfav!EOT@@P%g7`UtX3PTzf7{5TZhZd5R1J#$$Q+NCg{)G=a!XA0MCm zgp28Y?VBi)k{BO1qqtEfFH0kbBUw936!+UF5W<1=OF{zX)9OXMh{gwNME3l&-8eHs zCG2pk{N0?pB`xjZGnFUM1V?2%bdp_+{4i1+0n3Fm%$?SZ^A%Ex6-AjTV_I-Zu{kS# z5m2t>V33}ZlVaoNy4=6i6U~AlACHu&*iVwg`DO<^vE+13iB(4i2P>T_ZMo z#Q5lap`i?~Oa5k+cV=t-TJ|<1hpm?IHbm1kSR{R2{rv&{*l2>>ywrhYwQF|`G9@G+ zqoZQu7_wH4%kNy2{6Jk2uy7jeFk|z-hb1Fi&eGQx^`&9NRufBe@cnGTCg4iM$G!di zi)6^yYmSqEMF5`03f~?s8P?WKZHugFh}#|=?c{?7CPr3PVqG>wl_f>T0Qi|@oShvX z5Boo(uDsIQ4p<44+f!Y%{X3{u=rWXto%;U$@JVO z4eg7LIcs^SG}=2o+Wp{GILguIHsy3P^AksMe@BOmcqSMVOH1!?(#g`mICBBZIXc3t z6BcS~C%%$gU~MZy|)(M7wzF_FnW`}Scj zM>GsNP@Cgo@7T5&F9GztoO}NDuVF|5XQV})Kt!mg^863( z$86;@GBIUlWf3rw5p#;>W;QH~b_;3BuXVd+^(`*=(KFwNP$jPE1n5GI4K^^KAP7yM z@BlJ7O-x=JUiB;f@YKHo*{U(0-a2$_)!I^}c@&SW?XC=8BG`s{X?dkja%_~{1;E~4 z0ynzUBcbOX69|4EoH$SaSzYyouw1}L;3|K;aeUEr4%@5b&WEc206c6vVvnVVipz`) z6F~RjZ(UOjeO4pATR9xb_kKRK!tv+eFMs%L>D=K5wOCDHOQh*zs)d|+F28L;@b0s* zT|X8#+uaB{lUnYa$ThzSu>W`{h@c6Ohfcie^ooYZ1co=pW&q={26vDQ-V{ zCxbTP0NSsvZ_#gm+z<-H$UIkj*XVUcd|a7-HGxIhg7R*$$Di+tvXhrc!(E!z*eATu z@$iWkBp)9^Qi_BH{$1kL&X#_Pq)|}PrOmPR96H8l$(GK2Q|eG(+SL(d$uZ&OHA724 z={{gOG4!Bz**zJX$Td*VbAlft-pT>MTwI){wsx~&%bDY9CYD+O-y(HOrDoBn!jVVo_dJ;`Cmj5|E3OotJF zzc$PaOFg!VKEN``S~MQI{+8{YDLdIA zV%RD#Dra1oUjdW6_o3=uh!bb-FjE93I<#VA|zsRRux(;#)mM$;KD*KFJGvjy<)1(59 zOH8ziQx$Q}Ow?F!v!@E5l7~v)3n?I`Vgf&nNYyz{S8IkLL+Y+Yx0vij*ci*?RI`tLmW=r<~| z7T8}_9pM@nXU^d!Lr~9aGe#-YOtEbt1Eh0{uLri@o7jg>UPVO(99pg=zV7h0B33;_X~uGgeh6Iq)2WfEQzSOwVae(9-uv zj_3;@E1wEtQAjS<79(6YTktWyNDTlrJeIb)WzaxCr;$y zJJ&y_U0p!wk}C>e39~fvUj9!`Gxzl?$V&c0fJy}p2m;yD9}Mljf2V8#8f<)H+sHLg zM*I{qLLaQaWdNJZ@7c$jgs7u$8xLVySy?<^yyWxUjkwP(T_c(ycw4^nPNvo?`Odr^ z)kKvg;9ed=IV-3OCn}8bHGSUw2dqw_x z1KOPW_>pL|pl9~tq)Z1Z$ng&ditjKjNR?qJgNBZGqCX3 zWk`GfnjC09D@P*UtlqnT13?p2X>yUk8es`w>m*Fj9JDzBf2S4}ELEz=pLREz{sFP- z-|wEM7s^tFL~y4-&r+?is2pg!vOijXtuT8GlLTa7bt^;{z@0oEn&HgkpN#Vd%3~p8 zaBye{7~&BjpcV2#<*Y11j`LgRM{up;O0T z@c@Xv9C2SCkQi4~@K_v9G&*4YHa3~ax!i1&3W@&uK(L=qC9}M_nkv|Ez#qr!3 z0!2Pe3V+P<>e>wopEYg=wWw+m1w|qlbc|jXa7aUx6nS{@&z}&kTMkcP-cBI2?aA9KTW}B=`dvlS|W4MEyq15i{*b$1L>2q+!LIns1tb$wcZ3 z%mSM$w*o%%kw*&dsj#8k?uF;26t_cjXp~K-1yYA?E6pw=zW078nl`4_Qyer(oy~~E ziVYfU?`Nz&dxLZ8fP=xPXE!O)lLgnw-mpcsq&z7WZ4Zyy0z1IA@4T@8*6xGZ(=s7Y zn(S@ZkZUsMZl2!Qzj;$pEWSk92!rP#$wYTqW8jW~^>lIR9nAgU0#u4kzDVB)v%ClG zN2B6${rdaWcGGDx!kHw~-XwVZJB+%u7Okjcey5o;{FT#2|Y)LzutBw2t8g`ln15`(H zT1G~+0$ax=0^&FsG!B;N0PI8B|Cd#?P7jALhndIZOGpfsD4Hy63AkfjP7t7 z5?UD=7%VmMwG$>dq2BwnpUg~{Kc+AmiOAHqm;> zg*XD7yMO-7!qYug2W0YLIIq7O2pW)$NWMcdUqr~Y?Y`^;=_JSIj- zv^#sXsq5AYC6d2+cBN02+^Vb;Nh-DTp&Lrx`>c)MqnL_8cGd`}*8i`iCkY)H8-uA; zH2&k{W3MF=?C`j zm|L{c3~IPeAOoWo$l#y*B68tPRaLI%X9ov+d#_8y1qHj^OhFz7rvXpua~nni(501> zI$T!bLkV#K=N#Mt$~^c)AK6s)EkYr>evy6+`K3p`Tmz)cRI|y*4*22Z@{vofA8MFM z!{OKh6;IEuKN<;TBXBhVLgBx=FOOA)@{j$>8+YD}2n}r>1T9@BN zA)o|aY*;e`k9PLv=PlYG)031-DOhG;tYrZOg9{u5V5)}8(dhn)R+_3(;VAg>?wze0 zg3lbH1&b;+kRPG`a%@egue!o25o^pz2dmok=$%KcYYOx)KJ!4e``S*C>gd(|y?t0m z7*pI1R}+D1Q$iA$(}?ME(8tu)dH@B(qRofON=vKaDtlWQ1UT5^gEoC0Lo){AC(?GG z(u>PENQVVB#rDm<5OmTTIlc)k9$4Ityr9=u1NKIt6kRG6GI8ig!$EWD2c$w&6v=d* zWfL5_Y>AQ1(-$4{;@ReD879q^-528H+1c3(AQMWBL3R`_w*W?yrsb5of7(te{H3V~ zxFaktPV$RlX45wgj9Lwvx?jNi=IryGbO1lHIZ?$L{xMcH@Su54%5`3b{rUFEnG6NY zy?PC` z)RqR9mZ7Xv6OdqJzZ!NSL;tp>R)l9wtfL_t$<7@|`*@w`2W{gwfai*#-{T7W#Q0 ztFQFol{0MaS23Fn3oiL-(JDGg#4pO&HnFTyydhSh!(;NRx(D`zv0sF$`8S$iJFVd| zFj#1tYM@Ab03@|JFOp3`x87Oea$J8+me#9hEp7+_!<$Z%e4?UhOln@q#$E8r0LrIoIoAl)yDFG0UbqsDH=3Mn1ymH5zvTR^69iKRp zdhKa6K^}(Gyn3jSKS%mYQ-xH=V7!5UAj!Ov;pKiF-jKBb&{_We-`x_p$VyAcuh^I} zH1pIrhgHdovJdP;63I(O`fgY9ZXC%x4${JmKmv_R z>rW*#_0p~Tb?S?Y*;8z&T25=MrvHo2rMI5?vJX7cV<1Fe1#$dJIW*KK7Vp8)U-KJQ z=O{U-Y(gXR?3>C<(ruSCV0Fm4EYl#_RZPqt1>M~$5SH}z z;WGs`h?^a>7U;ClNm@Gm-m)m#@EaYAbk`UQjYsy?rr0D8*i_}dv=^r(ctSTaOes=&mSPM90=TQ-(o(2X6TQ(mUqDM+_ zzu!RMseW#%n0Q){a2sb3t;l~p$=z()ZM{0^LyglUKIS$lABKEzBSLkbU}jFS$zRj; z@!743p?m8>DMj^P>15g8N3z*xC{32&(;=#P>0=Q7zl<8l=O{C28nIgB1uahc2PIu! z=q4AN;(s@x5+oW8sWlMTTMLLuO1`oGwznsw6A2|7&TnUKii&cm>YIcF(xE8uNuKU5SmIHU=31` zY>5MicP?A5VMbtIy`q-K3?#`>mtB~pB?H#KEObA;b9(cTtxwS#sfL)a0xdFRlTqvH4PVXu#fAmRW= zjsy1c+2_=@FLQIbLk|L^S>M0Y;pn+vUG(Wh{hl@&3Fa)cs=L4cDf9xvQ&(+79@)oq z(;}A)qAuw9935|DUE{l6WY<(uV(-2#pqd00zjO^EU!P8ktzYSh&->yD zLpv4NE|x-5cE^ljxn%qJzeoOPqtLG=GixH5LlNBzAdLac0d$w84rnA&QMc?ea0Sei zPgwAsBn8uBv8o@fKYPsp9f<(d#n!^ut6{EtZB7<8w^Z5M=d_cSK79C)E@*qxWzu5W zn={$L*}2I67~bykp`jwZk8W9ZLJpH(2P)e>fBPmbRCihOKvDOly~6{C3@nLaIl&Xz z>5NYd$I11|d7sW2Yr*!pQ|ZIQ@~roMe#D36DD@Kk{;O)`zn#7OY>&TX36XY~+)$hi@n3 zbxbF&AvDH3`rM6!=A8n6@iT98UhZa%uTKNn}Q`eF`ZI&WLCQM5FpT zHz_sBlA(DsX6sZ-BEnHmWbP!d$UcHyBYGY1Ye?9+a132IDAl1$wH?X@;b6bz^C#=S z%dNi~rsun}!Ibq3eL1d6gNd2Kc^a}i08~h^i7r6JDFI*dO30T3Ey;YC6^c$Eh%$Rq z%K0)49`^qdIU?j(Cj6L?*N}>dk&AXIy(!@oV=|FQ!jCn-^u^`TahNtmP z#X2wjE{idn>V$W-{e0)Re5pympT?D)BevnYLYlUMy^epB+KF-4RjX>0YX(E?Zy{dF zUc&W7eMktAK?BstpEkULPZCivjlgvCsqFNVhhcG>@Bd=^#THtu@{~NvySmcy!BtBLq%i6uXCpb+Ib7uYg`U)zZ25JZ`3jO~?-b;F`R@NGE4V)ZQT-mq}+%Xo&sqF>sIWS^G(rs zD+yY~wI)g(R%>{@8ud!{4h|0f{)M1a4NXnl!p{xAL3fvNb6$Q@dmU4NRsEJysBbW4 ziqpVHAhg=V5+kgd1SwMV^hxBJXAH`1>YQwd$wHZD{e0vK_41b$(Qvr>mzKU?+=kQ! zwz@jI%ih?&>IED5JduQFkauA)F67+J=fq?gtAb~x(GhP{S(4YluQ^@AJOo$4 z9e0y&s6J_k(S7WI=0VA})oy%ipy0gc zdN256CtQCG(A@s>=L0)Ei&(}KFViKqCA06*g)S z6=6xU~l)LsY@ULLc?p7Mk0fF_P1qp%F_Qro$ZnFno!ZtIPv(ZsLg~vfS0k_@- z=EnFp7cCg9jUUdu{ql&AoE8CYPE9aQdY%0JjmSSb@=NHjskyG2)RBkxbq_2rMiDdw zqtnw6lftX51uh(jItJfJh{-&NVvk0iN(%}5FOJ|J5a`w7 zkx>Rem)HK^x`qY;<{JngF)lpyKAW><<)uNpBIm<9bOETv%OO(@AT4b4wo{>Bf)748 z423)o4*lBz^;H@1+bDnA@((>II9l-dIabv?_f=VKnI6xTTW(+Y$jx+t$kR6f3&|zX z(T3kTSaR9;5SjVYNx})Q|6Z}nC#u}cTo(QF@ZVfJ9f9ng3Pj-iG%}|tS`h38=M1dB zusE;&`UThs=v#EC3^?gB7A%}qlJvPVCpMLMXSNZcRT?o39EU>rkF;Km&HIohnXFcQ zb*kg&Z*X=^2*p*Gm+!W{bz(fC2%1h@1a6;7!jHO}^)sGhnjLrHP`I!sftnXqX0QUw z{wUyx235gP4}c8pw-<+q9bxcDsp< zaJi8hE?Fd7BH|?h?ti85i2ayExijOq2L`!AJD$RyEWx_q+1dG`oGRHTUpwY*@RMofX- z-3sL$P&2>ADJ{h-bnoWlh+s!_wYu=`JX7^e!Cue25h4E%6aoQ|FF`_p2hzy_7$7dj zpUzHM8JBtA7X!=l-Jw*3ADlwbGUc#zQ!VMl%)~@&NGWvlCfkY{ip6`z z&bB$c zs3tORbzd$GY@gdqBn&g{7Px!2Aj;Ys{B0kt-8W}b^Eh5IE=_I{h0JQVqpl{&k;~(z z5$852PX2sXK}6u|DvN*5Ckcz;fEnkNo>*7{ny<-aTqW7M{J`+Wn=1;V1(s6{%f12b zjruY%Bulp2<4+d&mI~MtJ655A-;n3 z$`y)mITqtPw1mxJ^V>bPD*!S;46cLXm{HEaiaU9q98*VwGgEVdRZq>E5{G$30w0#k zmK|I7GGdK#&-8?Aif~7Rk>*7kUt8$`6EY*dge|uJ zHlmr4kD#$+m}<3T>x0>GMWuzvg~y?+%GTE|uJWc*h9JF7?*V%BJvrk|l#*X^(`i zB7?8=E%>phoNVcI3_raL>BT>nQ}6xtmE?a*w4Ci6B)H2E(M%bOW4SHpUH5uM`@11hm*QX0iLP9SjX8APkM%I?001 z7gj>PRs8Z(1EtHZvMzVQ6X(bUjI2fbg%2DwlqZLMx7zMck%o=52b|BD2c3E8(srui zX>sACZ2S5zmnM%p&>ee>kUx3n@fv(HKT%)nog)hT{{;_UmH$NHR9Uru;@<`ftV8`V z>^FpXAvrlLaBuIt(kt1D^&Qg`@$&S9QLi^66VPOg0E8tvoPO?^8uh@(#|N3lE3E49 zt@AFJ?tLd_B(AA`cu*T*`3BO+U=|?nUK;S*LM#}6a?66sL5F2dS!6uxtw2~>T}8PN zAmv~1CBjCUPnDIF7H|~#cP?)C6pZEzJ6fP0tlr^UWo0%^SHW^k=P?Q-t7&N8Gaqg5 zQna)Cz3#*lumY;Yq{=+dC@vaFrw-c)FoLizo+2#NG6?DWDkhMGXc0*ut6x^yvAyXd zEN4ml$`A~uGbshH;ei3TyRN=&aB%48>>r@6_p6O~+d3_-GgCqz$x}H@uq}x0X`(>- z3(lpG+YH0I(z%t*&C_nwG8+KJGfVm+U9aRVgN|lPvJ$GuQLvnc$ly2)l7{1@(G`uY zfvpczsU;;Px6a0Hg-g;|_<_72>j@tdqmumNlizRWaz0xB{WHUaAo$aIFbnR}7ElC% ziU%;}%$ywaT9@Csryp};V`Kf{T-Uu}0L@;F-(iiklBZ>nnHB=QvZh`}0S&>zwl7T- z!SL>=-CnYxxtNFd1q4i>$$fWrvxz6o9vmX%L{cozmPJ8C3_5A$_%e=YXOl@ctnA*A zZ@eX0c<3EfXh7ExD6%&x(YJSSur%_V?+AgeaM_#@*!{IwZ_SR5;g=KV9mf7Uv1UnY5V5M=YV8tWsV1-Blti5lPlY(O4MG5o0gylO8a#t}qaE z){x_T1`(j5QOffD3K>0wafQn&FyS{S-%s*!(LK5^w|);Ed1|3dXf$jGWUh}_GVlkl~5bMCB2Z2 z{pfU)iS!5rcuzX#VP$SHujGh^>Evvn{d54(cpX~EHx1ah$aA8W0~205{_C|71)Og& z7bxm;$>Gk|z@}W7U1JpE3oKJ%Wf34xvB4$pc-66c+S3!}JWW9n;;srnylKUVP#ixl z9k*O0npuYf9p(i503k*$#X3w!@p@*8ADj&3cSVGSMS50jxzx!B0t&DUWc_k%R}o$7 z<7KwCivWj!DUQl68Kh$!)gxzIFVs`Q86%LsIYm$uab;lpV@`a-S3s4+bV~F{h@Si| zcLrfTM*5zFsoCIXaBULE5h&5h)(GLRPV|Ox5dI(|ISdXKq@s#+LBTUJ+2WP?Yj=FC z0nJ0k9k1#r@HiAqvh#k?1u&zOCiibtwy2GPAJyL8d0byGbwH2nsETbnspVx}%*8ikz=R~nQ zUqavl10!GpZ~s?^3oqpHw<-iCKE2?+;<%;+cZfKyF$n_0Q>_rjL7T)-y8od3PVI9N z0|U&SB}}U@cUxIqI&a+4ZcGVpt`NK-tSP8DQ=`$%ClkIQO1UB#9SV+Up2{%G*A6n9 zOC!Pf)N2{UsLw(Vrf=@~_|H*wA1-CpQ^yrCuLML(4TCB^y5MEp7r*+p_G_7&Z)Mw8 zPA7dkw%$jVEjO@zs!*r3Ocp?4(uyIg};wgTEkg{9Hl3O`I>FR@0<$L}|)yk~xKv&T`sL|(SjJV!w ze3PIq?sf6wDJ>Ff{7&~@~z|lt7T2z&!?Gn*UQ5q3=6J?msiv8!`=5J2-1-)MF z)Cozfr@(I)BYQMcioV9c_9KZ*gPN+4196SPV@$B!|1dFGo#%cmWIjNGxbmvuzaUU$QBdN7R+|cA4bR%ez8`qJXCK^y zGjAoR(LRb|WHdJ8<`3sUaDN(%xKN7Ep>DsAd@*@o#?v+T?pm(;6HJernb}0XzJR6&fV-uo z(vMfusoMR2K~Q)EW>!;VMu?AZYc_Lkw~+M|1ONa^sbDQ`sDbIolrrsU#RgvWQOTlWPHl0NN-dfs}o2c zRObbZf@xZ)&dZzLdkE>TCN+$28?V+%B(-@bwm+jEshj_wK87GMQU!CZD^&eDVG_+% zF8+Ah_a>xG95k{>oY#K?7$%9i=NLK#kKV}fD+#4*sD+f(yQ8)|zfqok;3L-*4vR$@ z6mtAX)EEA0$kZ7F8X~mcQXpZ=#JQpV$wNl!JyruY-N;bJaYR$p(r@+8(m9 z8#h#^Kl#vIOi!6EP1m1)1VQtjPtbvnu;wPn6GdaouJUc?WMqY;vm}LC$njA#H%gL+ zq7ia^Zg=kVgQuc~APMq#M^kNIQEc3qa@8!LzcGLB?Ns|euMniHQJx3M@OhLOPEyvB z;JYdN679PZzzD5^-mczc#=G+?q=gxp`xWVMNN)FB3feae+6S)m^s_o|c1}(N2|jA3 z8=CpqS}y~%jPm{jXb@3LO2vEl3c>m*U&o_z+9AV1CC8b8$MT>kd) zQsn~=_>@WIte6Fz?ZZhDbT$zrB`D}<9A#4Om$Gr+XXt_#Zl6f<37#7zTn|ft zO039YD3AB5_i0(o-UPRWMdKary80Q2T=o|C0Zjzx%sC>q$8!Je1-zYwgymGN;ZMOq z%GmG%j)>Bbj}EIxkMzp*IoU`%m+&yOMACJ9v#VRN*WwEjJU)s&i$mT02BKP+SK)$5 z)8iyCF*W-A$DZoRYg3*Z8tUxNqZIHS8SFnY3&V67k>d8y6xbs$I-i&#syz-W9@H|1 zSz>ZGfB()#<%Z7f+|#>qoii>o0Cm-F%HvaC->{Av_W+Q>r9|ol|0(Em4aqOCL|`yN z*$oth_5385E*;VklsxJxI4o4(zeXbR^c~gO+2f)*|2vc*kd@)jf1x)BdGxwr1g9j9 z9mhW?JQKIi&K~?)eT&n*VtqG<0c912rN^rbFIz|%&MmeFG3@^b_(*1SXp79t!UG8$ zrP*qPZ`+pyQKtzCstFg{X~@2C{Y1!MgowCnVj6t6S`e?pJ zu#)|OF1eD|8gXeWM0)+e{X)atIK=W5>5*{Vl(Brpp~1$oEi-P^mOz;OWpIyKFYbq2 zlzm2pF>lKu=?dm$43yxNzj^Z=bS>ah@|*wDoNT=Vh4*mxKi6Atk`@ryiFpd0883eS zGBz`p3CrVqGvN^G5zeoMDEgwsE;X$FN>6ZX?B4nDM9|r!6<4C`fK8Z=v!9rEYs954 zF=F-X2~3P|L&*!8=ld<~`!70DzGU$$T_-&ua{@ZcZ>DEu{TFfA9#Vz;Ed{n_rz*px=SK38%I6VyNDbAQtC{5hta z%j-Pdg4xNMN>^ne%wYx1uWwsnIut>SE7cny!!WUt`PZm=svsu-#szKOM(f-c1(lUP zuCBZCRA-XUKSF+8PEOl$vcZjHu(m*z?zj_=58Ti9yr*m?OuhC2v&j87Zl!&`&VMz# z?PrE#MdNX4ypyzhs1uv!RsXF~{ISC47iMl40+Kgd9DWQ=dfHre+dK7mdSK?i*46cS zsb`N+qTy^U*Z*>`8Y(!_LZO4Zl4el zrKYC7-Tdyc+Sn~W?M?17bAKw`T=AUseAf}iR~YiofrA%%XJ18s6Ul~1G-cmx?A#r` zbxYF!cXZ{-RF84=};e0QI@RMDggy-(qdQ@JuasCd_Y_0bC1c4cYh7R0 zk0>*6fKMhM9k%tRjW7qa9mPEi?QnOvzrG2-?EKdz)$IKYs-T=%eyy)MeOV7Tm5zN^ z!W2==J2(X1YshK2<$I3*G&d;Uq}=2|L0OsObVELR9v*iww;u$tqz}Q@UOpWGLk^+hJayI-4|3%Yh;TgQDNzUBA8;q~~X$soi-rx@880Pb0 z`s8!IEdjyABIHk0{D=NI(iSL~TVLBtPz&9L_e4o~cxl(~gXBdUo0puCf7uBpm4*z% z-1j7|MYt}clla&2eX|#KzbuZ9{dJq@Be07ui7$-$T{W3n?r0~}+cCSR1aO8YB%!OK z{mfoZ8plaJ@Tes_3t;Nzdvj+!B4^Tjig3a#=(mC4?^_-Z_7_F%`3+Jt8~hvwTTK6(L@=9Q1eX%mm=u^8Io zh^?j-AV!5Q3mX`8^SLq;TjCN-fF!7*g3@f_26)QNEA=_!7u8~g;$#=AHU~UPiV*ekyAGky7?{`+F~BflM~bqf|$A1d^@k z85o{Eg#gdJj8Cf{7-OsL{G`yaMYMYFrT+UK?ITaKjeZfrUfp3tbDe}OEFrRHa`xI+ zmTphn;$~f1*(P2-7lIUpnvW^tf(}J*bk&%={!3IrH8sw2Sq{F*qM(dvaGuzJ7mEAF!ijmk zNqTxVoBo&eqN1YvJgLo#2Z4rG{d1=?bN*+JK~@Rh=Y+rY0n)lkI-A*0b4ba-7@$AWuac|9GzTR`VIY58wM={%Y=f)z1P7 zbU4UeSU6Ks&WDEsBODyM_~`n%1grJ9Y-){Pfh(o9tZ$|h%54l(qN{AuR0VZ!7@nG3v8id>(Bz^l zORci5G}Nvt!uec zs@w;O+3k3EQ?1#qCz2Ps0#?pfbJG1RXg!pSCoLz_%-9&W-7yWv)Mv&k=wRsKjK|z? z+iv#eyNYJu|1Y3?P1J*XhPGbyraa|)2YWocyt#~GQX*2dUaqSJQje9NDw|FK?Xj`6 zw3OPmR|G0+SP27uj^*kb)SFj2W)Mvff08dBHM(wy@zq4zqlnT-w(E^Xi&q>olnl6& zhg9Xx&lZ%4w4dQoy#m||_Z&6}z@tH^w`O2*J&?O6#2Vhmp*}B8Nd%FCJuf-3_6J(;9X(%%OSQ`f{BV%?9Ak5 z=D1gYo!x3ULk^%?cN^*mWsza#LE3MN?IVg0T?9!b!+$t^)0+Nzm_Al`HFIamQ|x(- z1{^fJyq{JCN=(_)wM+u%*GQl18eONm%9Hx@!B{#u)u~25rT@YBgw{=_`cI$!POUL2 zyxtVMv}mi>pvWPof`+IDEyNE=eS_!xa@Xkv)NFqZRKEM7Wn7sfIX*r8`^1t~(G*cR zg~M-Yd-rj^jtch8r+CU@j!3d-ozEKcDY#Jz2sair)uFJ84f`_fC^jsc)^#>mvmN&P zp*=Nh-owKq`H?eVMvo8v1S};gXT+zf6!RyJjNv}ln-RLbCS*gd2%NyfZ|~MVNo<0% zTDwS3l|A+%B+uLXFE~iDbMM+Y4*d1>c>`axF|7gF2E)s?w$$8))@eU`|KjrD8{7JP z*Q3UlHWsUGP z{LHp5$%qX*;oyn6D=@c@x3PP}aQV@~@?FW;JSCK9(An+t%sj5Wi3TcUskxh25|9VX;>-==WhjESr61G zbP@D6>P$o$jj#v}dtZ!y`@;ibLt-?}Weu?q1n01b*S3`VWjW|AbXaeSCwJsk+gD)0 z=!|3l_eG3GjOY4KBLpA*13Fq-hlQWw6*?bKGgz(R&qYOV4%LukMW?V)NMkc|eIs>B z4om^I4}|#RuDO1uMG;`Q_Q3Inh)`lNbW(&u?)OeA6(?QKq%)MLZ#A&RxM+jZ9 zlOIxOhr2fiJLkt(h_{{nqK$-aOU}2f^6`;_T&w0eg;^ z9$0cLq}VMDXB~ZqKIk~aCA7dPI;T6Ie z%@;s1MPv99ZPX~F*%5qU=eTK%thMknj78w0={q506=%D3WpW zuQTl*94Kx6QX)MV3CP{vJb1X>K{r&C=&z$m(C14d53#zt|7$cd>*3Gw*B_gH_La2k z4Y*!~AmZa*olfOggsXZURklLapI>c=Bg)Ii}K`_0U9zpT6 z_GODJ&#||r*{#fr41O0i|DZ4|SVTvk?_n8!*H=I=MYaYsjXtGoGXfoaP9Nm>aA;~v-?01T3Y{e9lAxrU-AkqbD0l!4ib0+XrWeHZjMo89F3 zBhU86>%V;*zMgN>Qo3H|+k9{I>y_@2XPVqcKMaPrCg4EidAM(&wA;?uveUd~Up3yc znh8t)F7BJ~|3cLD$93=nA^40&MK9A(1zF{Nc01c&8Djd=pIc5^4@cTVo*su^9j}5C z8KPeA1t6(ZP=iB5Fd+cDb7%|;CdPKLAElby6HD28)RH!|z!{TdiT>Vu`gsxnJm3Ss z4-ouL@Hr9-kOqkMJIVbUPz{H>srh$hzw$h7O%EbFaz3p<{>qi39}*Auz)9fC5z{Vq z``;glV-FBrrRN4T`~UfV0jijrLQm_#mH0dHhumPlMC%lwjAv$U2uGln;1MJnhWMX* zJ&52-(FR50Pv|9+@EvcIp7)2gD&@;L-KyiGTqqUO!O7*%?nc)kj+6}y!#0-sXrptS zW%}h`Cfg04$wO=5MDy0_q~Z-z!t(71B$kUAYk_y*b@}JpbTK*y_9-9>6h=$mtDb=F zSR4iyX1BSEjns|IN1s&+mXpmRhoz@ASh&$W$!nVstD&Rc*g)&)*$;V7j8}JOA+S3G za+*fH87}Y<>gJ*^z#3Zj$tl@;_7^gIxO#P8hVhbc-f`S;ZnRpyG-~GAZT}oLmnTDc z2uoWwIv^DW@rvTk@9g+^rlC#I{^FY@rIKU{k9$9uo)-W7Snqmw2*dR*w9AIfXlSj; z3|qOr-82*3g7Rp{D2MXG;^R44x3A=ZX#jb@56ZF zT8UHDc-H)JulZ-R=Ne+`7P}E#rzf`z@9@v8JI*GxE^?IhN(!6yxS`5JZN>xIzC3Xo z+VecZaWB)1K6Kk{04&9TRNBCOK=h6~pS&uuu?o7j*47{0(_#9dxcA*)^UffzIm8f> zr^zy&I&~`S)meJQg`Yof@Lc|KsqP2(sCc+IcnK)*;hk2Uq1>2UTDsf6$ue&z+7GXBMl`fA351q2gmbN0u>$p&uaRJJDkK5n(ucZ+E9` zQ?YZf*`_F`-~&9bs%qNgBwcySe(^Ku{vVYK{w?hM0vL^S&oKSP|Cmm(MZD2!h0)8W zN-r!@5Me7IDHLUOO`gfBIByXcWJ&f;VA-a0@mI)5A}c9QefI;2)fv4+Gsr%{yPSr^ z3Zpt6$!!bPJXA&K6US1O!~&X+1e*92UBS=hZ60Uxc(-A`%16hYk}=kc)*j@*4h~eG zpAe98N=1fCFm2oe32=qnqBYYT~;Bv#$H(dl!>z@%Q;8f9E!BrNY7_Ts!W{gtet z>%!)v-dtR_W7=AybF^^Z8t-3cd@pY=ol$YG8sf1M6AW;5NNjXef1M@a5kWjMQA^{_ zQA{!x`AQex@nhC(tR@ATx}rpv$s#ZC++%ti910-By$@FbX9?*`R$-A&R7ooBb)?1S zS5`7BJkeIr^r?&ukr#Vr>W}pdFvnTuKd z(}BY}zB8Lov;KX*ud(=3ha8F-;!jf1VFGY|cQK z=hclzH$q%Wmm4}eJJUBq2hz%#wWBZ@W`Jx-tY} zWXrcmPLKL20B=;f&uf^}fUNhLN#EJt&==}_6nLWu{hqi2DMuCc>=0j@Tc@3|(8yTb zyg-P;W-oD!jfW~gXhJ*p?0#8M8vH_tA0LZ16pGE9R@VoBH!5=G_#fQM&$i138G{y8 ztvHB;#g&!j#hk~{-TZ2nK#l@X&08`RKwJC190oV82gufr$Fq)ZNu^LMTA*3)w;pZ7 zD+y?3(g3b^H~+J|ZDK+~z7mn&4HtZTe7r~fZ%UOCk(X~S{m?+CXn#p%C}f6fh9idR zZ3Pl*l>ysq`GvS%GM!=%IHwr^48Qkz2}mLw!CND+ zX^SNiPX-mw%_^VZ0}j8_jC#X?l&yy@6AizNklt;teTu}FkDlxbPHHbO8KT9-f`KD@ z@bO8o9jd3|xy9j020380m&;p&hgLIyYQzYRV9PsIx11+oXIf0FY>EDDW&8ME?A8mz zzN)f|8(e-z6qh1Bcei@?)z8&rS}<~&zO@#s{?oL>XR-y87jSwFzJE_Lcn3zN+GFpe zr<|Uf``kiO^!IneoYcYZUTt$!c*Y#NEeT6+HaW9}rNgzbADk40t{*XBz48Sbz4FNA zd*i!=rmfuP+OXXVuXEKCxeCIVlb@{|3IL5<(xhLodjApBZDUdj{}vZ?%9Z`%X<1p8 zW@d!dY-^NsiXp2#9I~ZXhUCkWE{r>a|NT6DP=6(44WvHf|Iua+ocZIYIn z?ruI>Ni-dZ&{Q^h<7bKvZFwx&L%|m&8MADN#pEMw$DO}i?4k-^<)!E9Ei&xS|5W)* zyM2bRLc(E`_z5BrISPwUc>2LB(#b-8WhMBZk@2$#J{3IyB&KQ9Q6J~Y){vd`}R+b6em)hGmG-KMmz%o*e5r@oI8?&)FQWpVCFIS zG40HxEq&vi-*MnSotNprur{f)Ma!OYoT~jA87EdjtrDHH7#WR70)LryxWI4<1iyKS za5l=foh!K8H}S=D_0%7YZvltVvzWU{R-d1I`EDAb+iszc&@VOSi*N)gFZ4PfU?4gr zpPZ=xngj(!M+Y<7!@TyI)8j!B@`rqs?+G+~)uu4PahZ=C0I#{WKmt)RdB3=LsiCYm z)f&aGHm~DpJ|BKvI6msd5LttJPx7)1OXL{}Qi_ucucWNu?)--jUF&Y3z;&ql5EC6= zvvvRiYy@AgyJ$cBTJ>(7iF5~co+5(RgHJ$RP%;3 ze!D#zot@2!xbmtT>)Xy zjlek;P`U!Afn?$EBn7VC^L(K1WbDf9ghW0B&5U@%h!0o^RpsT3pN8hl{>b6cGWe@& znjvAl1$rI5dtYi>DBp@b?~4KQ7dQ~go5&tgM;XEN1Ay+=z{_Az!kgXB#aJkWU?OR& zH`BG8oCS$w#3kXqM=a;3+I+dFXWL;UMGFeFsgs0tZlErn&k8&t2!m)EL=&E#o7Qg` zuLe6Ve_46xw$Tef?oMlME#T*&P;ICgkA5-gQ(T}-f4IT^(0%W6nOmCf?FWrfe%X2- zypQ@Wlta)0Di@@_Au(UU&D8FnELl@oX*0PEP-e1x?;@^oQOo;io zJC_7~n+@sfsXu?DW*eZH8ivwX>eb+D3Z5$gK%0DnFH!{jQr3R%jq2K3VA$6$V1&aY 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 z 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%0DbjomrGy2=_(^F;sHSpP= zZRJt9Q{0|E9yyZ94L{s>KTd*rC|Z1V4b3RbPeV6ygw z6f8U0kgZP12?e#${p1v*?TlH&W&JCk$%5+W#G2UA$^ps9S@5e!^Oyjm3 z+}-s2pf`Quvoa55c!1ufN?^}mkqHLHksm;>t~wlIBG(B1x_)sW1-j+FpIS=?95hct&v<@rI81TATD9EDr}EKvVtKgSbfAqg`e zcYa@{E0&QyC=4Fjldg`LkhYPGk^^2Nuii%=0rLT~7o!3Lmt@yT>393`&j0rUlqo_G z-;=7tOd|@GZ1hU8l?Ei!-2QCID$L$y#9hycl2%s+|Ec5TGV4hhN zQyH#cX8<*H3gL&m`Zwpym^Gn?gSfca&AhEsU?u>(D;f1~O8rXuMsT<67q6KG)&u-p zz<~SEHv#H6KoA8mmyN2lHIH)qH2{u5Nm%~4fx0>J)UFt zgY`kFrUk7LP^tE&j*eUa%QuuKKkRjch^QzIv*oZua&kU^Z2mBheR@%ti#+9-ta+BR z_m0-uuVRGl=AG{W$P!Qd?leJlDmEJ1k~LwzM%R^dXwsvxp~LO$de)1t)BILDbsz*O z1**Xa3!oMNL<``=0eu!d_l5jYt>1UTS$4m^Kv#jU4EZ&=c4Fl&9xd$Dva7SBpw{Y4 zV)=jgbJ*jK8WWSHf*$f``G{}AIq+-#{Jx3Ps0p@CwVRP>)wfM$(<*js=|$(>0b#T+ z5`bHY@e;x987p-v3mPkapGzn>n8!=xD$qfsl*@)Bma)9t#7g*banPqPMA*Zm<`o5F z-hBM#Jg*jQq{jWNI+rYz1uNzi`N5&P(W;-sN9j}`xtXCFPYr4fXW&jEsihD=r`4pI_~--ktUJ)mf(1u{y?Nd!3CI?#uy>-4I{Y zc!bNpiB_t+({8}&05nfI)`l$YmE#|{@<@F$iS+yzfCa{o0IJS8v4hQF8Vm{$f;Z+l zwu{c2pIa1XelG+M|ItN%Z_>P?oIcd6f<`x!(wJ~zAc2gl;{c!D_%tig!X_0~J3cbq zRZguScd6*uG4z`u_k{kio%i=j`=fnwMYZvKDvNxeJw3xQL9HB8=C41&QEc4{FPa5! zj5wn+JNOc~#YV;VGR;@Tr`-#0=2)Vs4R^ZV3cd$XMIPV;5sXQgd?#6cmWSv4!Ocw| zf;KhMf8hBf$HT7U;}Nh8xZifWqyI;&9#4JWKEFSbA1`wvH~J@ztO@e-YVxTZOZs5A+N10Z{pU zJJ9RF9@n*Fo8pt_$_j+0$f}Qrux-_qyDR29YJ_+4#^~{ATk2ou#;W)@%0T>?l667{ z@0ONh*fDj{(aN{3BUP}#u#}ly{$hXPDTx3hT@lUYeWUcd5DaQzXyrRZ;`Um~Lr7Q1 z&1;(x`Cls&88NCBZFxxR=m^y@g-zihkN`Mr2ONjoPkXO`vCR>fJh_@PtK?BIg3>y7 zLPBa02#-s?h{H}4hL6VT;3$&AcDnD%zKm;*C$anNpAhfv5rI^0d50bt5BJz6IHH

0+5QsxeziI&gW&~MF1nrvhbQa-!!k3;sk2NQuN#jqRTR6Sv zWU)D07g9MLbb_XR=$R(fxPH|zY_~#j#0)bNl`VrAV1}4vfdBHdWZ^J0g&&j=4>#ln z4I`)-)v;z2fuw;ZGEMnt2rcWY8Q!-r`h4uMI`HxWf!V2jmvyg`PGGJECd-4s)J1?= zPKD0%_#>jFV^IsSYI4j&9&rLB08*0!ZVn78fT;>nk1XSnSm)2m7RH3vZ&VOU@I)_W zj2{MbUZyZVu|D-Hlgoa8@|e%~3EpYI>B5!*CTZ>ADM3CiAYN5<^ zBcNoTZuCCwya}9A4}q0?L;d;B$OM1?35`)I3QAoA0}+>tYmmA7^0w*_#60|R)x?2| z(LKBB5UeEuUREwt9>g)gJM&peioqgL%?P7xK42HD9hH?u)YddKe6>n{_Z!TAbn#&* ztPrH(R5VF=h~adSW!mT6n=acG9Xho;R7t21BDs7j0d@dFjIg;)e+Uj}yv@eIS4*~( ztf#8M)EUQ&hoGy>H}t7-W@vL;5p6rD11QsHrHB4m|9Mp?ia@S}TrF?6vEsf|D{zB2 zDNBD$C^tbvJ4ymf*BWe`{+ihj-$*a@>Lmq1hoLIqn`@WrRb~tOJ^=FZwAkY+7&7^P zx`5on3Ygh9M6SHMwXq~zd*J$pMn#EF{lSGA7_h$j`g(v{te8hkk_4Q|MJUg+0BXN; zD76_w0%86)ZQ7`5QC|2%}wk~}JDl3Qd|Rt8XB zU}`0mwXf(UO4b--3akR;aQwqyB19qZ-pL*DGqC(2c=`{xFqWjU9cc2uos0CG*J#<- zO1wtxAV)$`g_vTUu+;sei;mDJE`DHhV9a#{;~tK~EzD0CUW&=Qyx~pg8@`T8VG< zkT%Zt1G_le0&nmIgw(2>+YP0;6LigLD>|zgx+b=Kat)5TnPlF+LT^!`?)<64E`T)z zlfi4N?(Cw5 z*E^`fwLmErxJjN|gDv*J?={{wW`uXai;c{~4umv~Qa_enK=wQbd~`8jc>d;G{Zx5y z^*?$wcpzMQIG?ukY*IRHpJeE%9-m9D3YVBrIc2ta*qoRs{b@^?&@xa*V;L%sx;B!{ zazIV&!X3U-`K_dRHm-%r*t$HW#P-sH?ReZc+p{0VqLDj;-f?UC-JLQ0j z1PV1Pxyd`w0qG&QK)V}--y+J@gL+op_PP>GzsHl29P{N=lR93RQT( zw*hn1X9JlE7-9xMrq=Vn-?IQY_#98<6hVeivJz{YYL6UCs(t~46oa5EP4v3QPC}g* z%3#UW*R}Y82mHPUt2gkFC7Y(7W!;FqKmEGIGtdiIi$c&2kt41@meQe}Jg??l$8$_n zev%a`l9>u~@el54(B+M$XqhA9(?%g%NTM&}^E|pq_%Di8vp|)~pPxqp-Bc6AzQz%AD8qF)L8 z4qkVJk5(=&$r}GgRee6&xjcYG#4qrn+|I`O@Fa{Hb`C=EMhCKdrre9y*6R0`-}-tr z=#_?=!h5q^+*+c>?FhN|}78 zrPatq(vtwPv`w~(OmQ+T{mk*HD#hOG)eF|C=6*W}$p}t}6#-k*Jd*%@=9dZGYBTLn z^-yERhDrf+khwvXHkgXpQphMK39Ska+i3d`axjCD=m`4nxc!JFzMdLM>`4Aa3&IX8 zA)>pe)Ml}(MngmuH&P0shU~IUi2eOxuEqkSllr}>Bx2$T8yBT2`P}-h6LFaB zB2aAuLc`&uje|`5T8El*2t0>DOse0WyjZW&EJ{mu?kW2ExfPqUkMma;vU7YiWlT`- zuTe3XIM%%QkiD8c^Tpp{me22OD-_WF!$+qE63kb0O$?4clXQk?4^#&Y_O-n?m{ceq zR0YsCKJ=L)9RcR{s0VRwmqZQYYq>GjT`aJEg=x1hNI~39sUz}BQ~em@zbn_!e?3??Rw1?zjzeK^l^G%!mz`Ob6tXIAzery{+= z94{f8f|k~bEtnAje_ZU(0BGef2i7eoCz$oWq$DDabs@LYTsnp3bsx{-`Mkso?E^44 z^cOq_&eoz*0w(9vn`gLGVjY+1N4ZmensicOWruGGjEsVb_7lhkUXV>7^p_xgV8re> z`PkaUsg1~ooR0hFA?k`bG3roajQ8pck?)$|JnfsnKt@U?-`B*ycb)E1*d2UhDv-F5 z!oVq7#a<`;>i$HdQ7e+%PXu|r!Ds{OpSL*O?fMBf?n2L*_lYuPsCz#5|0E0grx4b{ z$JG{NMq;=$>OMpKagEUA%l+Xki-4yj5v#%+NPv`_OixU#dJa=8d;Mr`* zPpt|k)fZhkdK!_Zo>gQt*;0X?2Q1_3zCX|9G5hZ3Whi0o$uO4i4jcLQ;zj6$55JR`^`OTvu z^Wi9+c^@}K(xbJD7XY$u$woWb(s0rA2bmpk+VzvLDG+dog2Ij*$Aa0u01jSWU_Agr zm+eYOSTulT+x+Yx(ZJ~AAP`vOMJ1i7x%wU;{(JXjhSK~+A28+aq`l91N~2;+A36!4 zY=dIO`(7%qvGWea!p|4K)z`1Up_x*4^YnD)`dV&kX=@AVy(Ww(D6Poq=-tN_fs2h> zpZ)e&F>BJ@St=?)*WHS3fhcuSITS1!O9Fh5*#iZ z>`rEYSx@Nb@AbgI<)ZN?VHMUG+FE=WAV}M+ODdk7&0lli z_}CtL>M+1cShSMZ@#6v97O`9X($RQrl@UIaS979sWl2N8wgYbHe zf&39BEoVb5tr;D=^{)FKf8-24XrKN)i{%Y9I=&S{;M?$#mIU;fMdg`zh4^pISvGva zA|k92`4y!>U$W;b^1pI3sl$NPQARRo)8fZlbr?+)ghm}o9n>@RB1w@b@}|C6b$WVw z@$fP)FAul?LQHik`Dv`Q7kH;}5JViO_&=>gFpfWqtSc*;vyz0it+5d(n7T1SkS1pk z^_x~~37>y}!Xjmh7lPflb!JdiTECEy%g&CByaI*GniwzS{<~cs?@yGm-wCHEGhAG7 z&N5%MYo=#Kcn_3D`#^gQL>x%_vo3$fqLm|$?DvHl)LOET+Ax>)HIUS_;j^SgD#Y+m zA9e%E6B>X<(tu$m+}Yyy2F6>mV3Lb(({|*-lESj;)PD&ukSId~ z4w-;`E|~Mw^5^|-w{L&Gm@dt4^&g0@14;SN0~}|5VT0(+q=nb|a2Pyf)~=aic&Squ zbYXC(Ve`l<&6875fUpUup#dj!2?>&rKOh?edR90g0n}kIEm7~k6NAAwpfD%{7a&@2 zLD|c@`Q%CPZeED~HZXt^#nH3bu7o||i&P!&}!~}PCFyE&;;VDL7Z6)A{J!gEDOND;Z`H{Pmb=2@h@cc)_ zyboVo+6gW!!{|x=yJimSKiJ}fdZ7}IS@<%C==_Otn&V8J^TBzW!|r<5`hCMJ==*Do zE`k8XCaHK;6{#&2$@O2=J=ZU>r8&g)4Gd(WM8UiIYSm@sd!@e68rw)w^6Nri-a5Gc zvkkzZfR?2m65a!UPECV9I8)5H8Iky_ZIQ%w5X?y4fDD0J{HOczw)^V-3P9mjnpTef zz5#=BA695Kps`Q@Hqp<{cBAT*rb_+Y!+9v)&@!^Lte zEb5~nIM`n-I?wNGdJ!-fj&0`R$)Q|2Qzr1gZ+M`4Y5Xk4h^hNZQMHAj#AuPC5^oE@ z5Fce$ZOVfrH%k1JEPJktfik z<=ALI4~#;*+CVP%2xCNknETJE!>Sc92=BRri*F_lv|gb{3rIoG+UXQ<4Pv4Azszgh za1y5hYIX6yAAeV|#0g~g$BiG(K#@%S)w1Z`RHn1ddmD?D+n-lrD^0*`(!M4JY=xoX zcc##^vxj?K)(P%52XCM53^1@080jJmfF{1*g17@ObtVJJ^{59 zeC*(Z`X*}f`RP9NsQ&}d7-Z^g;41bK>o#DPWV|8^*yGPVnchV_e;w%K(K((`ov`_^ z%z3&%hzpg<+moh#DFxwXd-aNzHukq#*Nk;zk1gYcmqL6*s|W)24DsK0Vu4W37?RB?*NFpdyANnMSEk74&@MKWrRh-b!pWq=QIq&`iZq zo9M>8Mh;RQfyYCV8~aIh(S%vr*hD$DIUjyk&R{@v`xSwzrRB~3HIX*4CWgNjd6i+wQrfh=cpBlgm_duT!^P?BczKjn4?xrI4wS>tq1!?d^nj zn9f3mvhy$fN6Nn2xb%fN+sMyPj+R;p5Qk7{mtA&P-AHQcRobkzIRmo9H()rBqQRC9 zi7PrBj-m3s3l(?!FH{^**M+4@I7Gf4{wq?>06FXeY8WaPC#O1d%Holsk>#$X8X-(S z%ql&3PUbC4IBRM!@)-_LO}OexdR~g|zv2D;kMNPB=JaxhsCg?iPf zx$N4HlX(u@`i|V(M=qYu&I?V#U>@MVcJ-r`gUQM<74QgVM4+usp%J_ziT%BqVuY6Q zulo+<*Dr+EY4STdI^5$dG`_D>(qf~pDl$Y1?-Jw)PJ|d6qQ2p zW1v^wu}~?iAgD}Zqz-{h9ETjLltFcQ;hRtHQli4Pwa}k@Ot4bp7{C1n@`>wd-Y2VspHEk!++X9 z(_zS21cRslYdXoqa69Xr1Ln9OmF8$@q)r&8d@4SzNmM@L-H+ji<^uWH34_!)83iau zK_(|={d5Gac@$$L3N0JkWUQ*q$nM;DApwm=|8G#{^QV7<{o!m{{M`5fX6m$V&M~1nAYtLDJWwhIhVo0>55#h2=AXj8b*i+1Ot9X>iY#?+qx&J8nNd z^IE^^c(OD0O-$URr7dASvs>ZzBgP?L*rXw3hR@ymX5^#B@?pQ3qw}*vGZ_`jNL7y=hJdm3%p2uD6sJ~3 z*-R-?5vjxwnnJ_~0UQJW5t#uV2?)13v~NT{Gcu%0K$yi^@0T0S^mAY;koEE7efeA9 zsZ173Ur%MsPaTM$EJ|FTIq9j?Rj$1C*yr5aSRJMi@Shq62QoIkvWi`LdbVBTatpl|`7Bst z8fdB~VFu3sLvCqx|wp1Lnz`u81%y7&`Lh1$~;s86wvw zH&VEyByi`tAYcz$k%%tY7b8cpbcjh9n~a(;Acf=z?(I8yfRWl1dJ!_(|0P&`LUS)P zB4%466!qZs^tm58ZU91%HHQu*iX>akunsFMl0%10K|?I(nJj+Dzxb|-8PpkPQEWh^ z0s82d8v00-j9q{vXiZzfA>&h0QIS&*5)|^eV>Gt`LjHm^7~lgxw9fBa)VBg8vTpK% zP17@CV#TDh{{ifaEOj%@qdLt@;7{m|N^NAKz#^+$ZgGb#;0VAC*Z{N<6H=##J9phT zc$6YKjM&aL`tx8?%>l3+gWBBbNjY_%CR1{AfOiK$G$0g$({_we_nWCUH4>*Om7dC!7S2KleXpE9#VQKIrY6O@xtxB!AI3g?5?Dl~{} zyY2c5)XGqsZ&dFE+4|^am>7ac%k*t#;cZ!fT{BkV$$$T`4#Alei|5^e9Mb)mbz-70 zX2BJ$82o{>Fzzd3Je{m0H9_TYeP}eUpXpEXO#w_R*^b8H1 z1-M~>|L+B`mDki-Y{K7rmFP5Y5e58;*f`Od-S#RPMpT?hlkfbcDM?8K^e;eVwg3;0 zCL;{k?x@HC!7m9!BLHP850OX2fc)3c?2cmx=Y=eCjNMzw%D4IU#*2*|Y`!b5qWLWC zN_ZM$fp2!aMRUby=DPVdxijC^R!|HsU6yU$sK9~~x#R|w82E+S@-&%y-QI$)(3wDD zUb`IJ2V3Lh9_^xBJ$NNlc1vQHyZqgPIin!u@6w*7ND@)eTUK@`q$DdCV}8I~fS>uU zhQ9U+rSJ}n%eVZLK5igsXvOEd=j!v`%JK$Oo)s8v+^Eoq58!+MimS(a+~zkDyxRu% z5%gIRzp7>Zl1G8ZW*=%0sI=%h(NDg-n=Jq$n<*T?f*)t8?q@-1tYiyCFWDfij6iNg z{@rP)xYx?c&nC-p;#6LJL&N)J{;r2YcJF;~$w3PE*L)vAH9%cm9a3{63r@`)p6b6Y zU=i7&Qil&RHF5?c)xYrO_W9FCF0A@j`Ky5}Pf{jtM21(YBQ3=L#P^8B*n8{GFupw4 z>>b@-bqYr0dldf50azCHY{5w0B+rM^?O|04afe|;*W;!3D}dxFrwdOnYpKE_Or4S4 z&GbEZljHI4&v3Y@2sq!JfGqPKA;z}8R$;yhb9K?hrFIx@%d%BKmFh2x9L??C7&-Lp)mEA5ZO~4xsdhAO41+)a)Kt)^W9PH@<=Gs z9?kT5K4X4VpBchAA5n@4 zsQ;dONR@PnIs2?;A_Je@MSx$O8WaVz5{-ESfM4zk6$yz0`CbT_U1~-Kq3j=^dgS_X zDLdNO{5KFz2t*3N13?FY+g4l0VH||e;R!gkDk=Rqgp&P7tr+?D*FDK_^Tn(9pg?d& zeueOhdx+K}jSGhc#eH$q;`OzA^GY!P0*|tKqD}`+k%!-ee-EO?q5Dt0*DL71(B4g% z{*H}`0u>*~jKOI}T3Xu<-l?=9s_$2t7{`$$5u-aeMhdxsj7lIA(o(?~&)Q%7g-(H% zb_e?_NQ)oW3FroK4CT^if!xsBp{Pwc{-a1HyXF5vN&=F2M=AQS#&+pZe7YwRu ztgH_+PTF%gcSHRxi^A#VIDi@HP)HrtTOyL`)~l?)cv)J?6qbs_OldB{$0vu+j*F*| zk0its5=RX+31oUt{fL%!^?g#G&*q2yzyEZH;Hy^>_>v3?+$NQI#3Cwa!3~kn-%9Cs~9}_cz^Vzm$VZ zR|%<6HuXs)n%u*~Rt`Ul@msj}U%d*!? z%ZYtSbJ8F}>D!Vl>$QJ9)OA>UE}N5byQ4Do)+A3B->`S#MzMlHkNpqh5-!>Q(RAMN zRQLb?KlULqvt=E1$R>LpBaW;?WeeFWTlUH(qE;HGqki8-yWN$+D{=Iy@x8L>e zb=}qf! zxdH3_b0Pn;eUtsDhqN@Sne)yw>iZA6Yi3XPu;5H^W~EiBR9o@d)9L>$vqA^3Cjf?=N(0T^p?pjPKJRloB3v z>u{Jq%^3P;^PrEmkp7oQ^Na;3YaO!_Dz8010fC^a^E+EWvN<>rz={UEj6eVfI;+m7 zAd)+wT@BBN1aOALKfX|Ezh)rbY2FNVp&Gt}Lu`c|`U^BShOP%k7J3Ec_8Pe- z(evd$LP#$Y6r`XtaRNsgrTO>{7^N=S{Vv9{+dSQijC8NB=Wo?ZOH1>9+Wq2s5=>${ znE|bSZla{UdimFTAmfi~{kB_53NU4?xed4)h(`u7?Q;!)Z$9wC0+@;jD9Z*Z`HRW+ zVNxDS0M5N%VNNYHSRi0HDe1O0*!<`4BM?eb?YUn)@vGOTXD~OZ@*VjI8n2D}S8DvI zL1G(`E7Q3_1UB3ArwKzJ5lV>nn@eVTLl5EJ9O!pis#e10aLcb{H2 zju%T`$r67j9()3n_q=}X$H1*3(RbQ4VBoC7ug0mSwx zqMMp@C5+MUtlt09gP1|A)~u%jpzD#=V5)d*`L-#R>Wm2r@=T!ht$B_T+r-oqQ_u{6 zaTdl$0&e{r_3<&u)hD+>OQ}K#{yGyBWqr7&@Az&T%W)#Ls6qM1Jz|~V~mmqK7|M3arN&opBR9LZWq1!1PXw+0QOh);;0pC!_?)yN+Z<^aU=-Og0C z_g>@YZQQCXO^Q23?@qCtIY`8+IOl7*|q zeGG4WCOppR*SK^m^8niwol^*9tkU6(T!JfxyKqF-N299Hk@Z?Bylo z*&p9@&Hqz6xm}2|22}}%YeP{{Q45^EZNB6j<3i{NzC2+#l?`JKA!$)7L`A&Fs!o#I z$)>lJ!rR`F(zLCiR>gf;*~4c{J3E_aW;u8E}&BKnt>E^l{lukN~=qpS7G6`{(7 z<=|U5Q)jMADUUf;u1r^u^REZ#S{z*%QW# z(J=6_)0XpKAU6BY%7#MW+(#zewT`u_A5!UQS(@bzTG3=TOde+e|2_Oa<1;PL{7zH0PwO;ULl9no@Dja*}ULXrYn9# zxxPkX>VE|?$+qn$wtx^h=U@r$!NPN{%b@Sb5;>xcj-f|Kwa1@o{b$wu02?Cy+6 z%TQK_wg(o=5!y=m4R*6bdz*9j%;MYVBuZ zDu8gC6-yLr5TiFYItYIDomm!;qTa3O&!7Lz|KPXx18|}-DTBWzxvhQ;ysn>r*8^Ch8}nN+EXGqitp0riPGT8 zf9>eMU=J!t(`_q6T{lRcGpLXSY0kKc5w%{yBPrg0BC`=SX;`}%5h2D@3zvbiU~7hU zgh#RbQpi+JYpi`SX#OlLGM$qzmRFGlkpSD7ZQEV*6*dy_I5~<~9$9e#0mZ2XC*bt~ zyYq~!tX6Vrx&@hb8oX3Qehsn!B@ooKA@nlXX|b z75TdU*_tPuuoEIgtcUxyB#2WwvCeLiC};sNGs#Hn9p=Qu1VQOzsZC^FYWjVon)JSi zT%J5E0$R|M=Mw5W-xCBUDfwY@FDO;bQm(%_OHC|;kybM^mZ-7lB3%-dDUdm2aYw4Y zlwx5~__lKu#5s`myh59OTP@{vJTrIwo9Jp-A3f{-0YT7f;BkGs0}wr3U0r3*Vr7sn zJ8UQ9Q6Hq%--wJZDBgFu8SMjiE@x+c_YZOrU7KwLQo2*etB})yaBix3Oa;MDwbSY{dWTe12l?=(_P>O#tM{*Ov1acg(YKP3IXh4`j^3cgI-Q4Y+@ zP$Sbc^B=r#B|Mh907TkQSGSt;9!rtxcmbLv_Kl_~=BBD>1dEjY@6d-rF^vzZOkiU z-v?K>IYii=Itfb7EVM*0T(;@nGLiD5_ugz9r;|N8gznEP@@O~41==ejo#p}${jWdx z#Y^|tmQf@5Ph?3_i~K@OvM|P*HPG8sZte9Obf{0;Ry5+e{)?`LzdIq{`;Nn2cY0O132|Yr2I)JB+DlL z9sL?w=gxdZu?pthw?68>RxFxL%mpguveGgdk3l}=#^3)6R4W>(rPyUZw5D%7NKTEn%f(&Ln%uF%uS3p`(bQq@M=%#%GE9b*9_#% zq)wMXAuH&=272nGAWJ0Za@4FBuXfw6yuGMw-!|OCoc=xA5hN3CuA2ax&T=nA{h(0R zEPyjn^97N3_JziOAdxe8D^{*nj5X852u_1Fh_Z#^~~Lzol!~h8u{PI z?jMI#YzN1_C;a@fEKsS^7xbcnU=9N0-T`=y$Ed|hhekO81So|iBqaFxF?qo}?V?Z<+$rAMiyICu|hthsm8$Zlg$Y{(+^E1bd*g2y@UMnYb^b%V!-K~zn zvLfc?IFZkj4Dgrbj|YV}gq_s1G{ffq$d}2*J^r?A7G<2wy&VU&e3i7l8%mJ3Qxy1t^4|c+A`Go`n#o+fS8ybcZzLU*pli!OJMPDWOv=44)5NIE3gOpgO1*FOpU=9NW&zjL(r} z6Q(ugFD+A9jh`FOE3bi>%b+_D` z1BO@>7elD9nWOWVjyguw3kiFiwvNTB(n0TmyP@!!`)eC7Q`04I8qQz*s=wd%b^{c^ zfC%2*8(i7AMvLej93<3!_%>9A!`alnE&3$F)>vnK;fYN8Ll-4h5I#K#f24#Rahykg z5Q4k&cz_iTf4yMdj*)gRQ59SQhAi&A$3y`C$M@-uDw744`}z+*utnurc{Iy+RrhNr zzy?L2YY!CS71)1GI&DP%*Jpc)U7a8!-)b4CNTLWWbd?*g)oXpw&agh~-r}iEP2U?> zfYUh$k4%2~YJ8edaKPx@YSQ`nxqH6#%*mJLQ|i$8FJqx5O7bBiY<+n!6V4+mmJuR) zP--bm*a>2tS6V%Jr6H|Bw|6i+XcHy5ueUN@drw_tj@k;r%L<~FF% zCHfs`prQ@UvZa++^r>FKUeqX0Iw12WzZV`=8~KWMEB6Y1;#GerV&yC=_!SuVjL&bU zy~p9A6^F=uZxuV5#+Sd^u;6yH_~99F%>paU8ZKll+(X628aRBa=iK!L(hod0d_A95zZvARV+P9q+nLUmgU6Bsr#>VR^TN3^v~59KUScg zOn6aCZ7N=|8t64+0~LFKj_7yVw%@UL^LJ12qp+yt@hqSQU+s6^ap^R=jX5dDF;t$v zQHn6`)}d!hFsKn%b7b4R9K`gyZ{uTO;bMP0_ykbqLBNIU+~?*jV$bh-+t?p0)ZLxT zr~9X;nzCjD+8d`qEP==ea(r6yZoiPB=iR|~Dy+$437%t(4Og*}&O^%j;+>0;Iyd)i zj=$7u@62BeC-qIt*`?J7U+t=X+QUC>6RPppx2+Vw^L)Bjd|UT`EkqXArO2fYuvC(r zIDsJgxBd3!_9*)%=ZDoSXcKPRGYfI7*4c4yZlD2)DDYiDm4NW5kbr>M%=;80FKb}V z1=MC=-_FAp|4RYTa;$xU^^7kRdS4NNUdhZ=esdu-c3*E^nk^+GE$#d~`}UmCd*3%k zF<;klqe%*AD4djThCQO+?$%{M%&oJZwE5!Rd=02%SHd9hEl5xH-!!D<^+V^3{0&|Ip$> z;O3@vrh&e$?l;mZ?K6_7v;SN1Jkye}bWllApjT!O{IN&AIy1jbZbDOJzlx4SA_sU? z=alk1ZA_g1Ygf_1x(#tr|cl9Fy$btsVp&p6_Xb|HGTC^$b^vOyw;;6 zApN1h`XDy;!v`}?RZ#CbVUu1oG@>f_EX<7{xg@`bNXaxP216FocHeg;YOGZU`l61tk02 zPp*MAgLwnJlYCygFFLtZ9=DiV^`za7R1*33DQBi)6qh@2z#v$o*QX_>RW>oI4kxm4 zr(XxbCFO)@^=LI!RqOPZm6NT!y$O#~==tB1Ab_KSm(aWQqq(k*!eW_6vtfu1bw_Lx zxJ(Sttd-aQxyT}a3{sWK*h0qV{jVMZ${jFZ++Ey(X2kV}%jU~(;K4|MiB0A)N!*lE ziLN(UA9+a<)(Gz!P$*O@pyLq0rh{eMDz;6h9t|Bej;sH!q@p2h z{is2(qyt{<^ycpNyOO3_f5NmL!sD^Je{K85~W{@k>7LX z1c#|okgZ19*=e{CJLmeBlX_2{hhWzHY=22Nf7T5$Jsf#T0z)Fu zR1@ff;BKN$6jDJJg0ybx6TM9Y_cGx2cqrx>v)wf3P(QiddiC!K6;EdSCBt57X6E2h zt>E+Ht!dttl|ppe-eYBc!2c8y3dM5Hw3+^|gezV`->PC)Ah20<)WS&5p@+~W1<&pt zM#sS)m0K}h<`fh^A}|4X9P}&Ml!LS$QrCxa1k~OJc@pknCK#B8kI|?ZjEU@6TI@W) zkcm_|6B19$#8Ek`Y$#1?3UOpMbNPZ3WbrY?uhL_mf%FF@^WWHxxt&fo!<}YOrRUXp zb3Wqlw|sSuC;cy;_&SR5uBi0-Zm$8J)ZDO#9Y!vdlbvg%732~I5E;>^WtCBn%P0rm zY-BlCCE=?l^H*!aM5?#IYz-`%^Ot|{?w&sYcTi-(KrD;=B4j9L?tsbLTs*A`nvUbJ zn*et>lZLjoKbx+jvD`DabGssC_N@a9JoUTMd+kId^WKu5+{gPIl~26vH-v2)&PKxb z7^=2W$ikI{77_$|F*?8D1BzDhVVyxfoJC&T>u3YmE!!%6R-b?%&7`rvZ`lOM9wQDP zztQMl{Reg^pam!K?5EZ|XfZxK^ma4MPD^XN{M!tQ21a|dp}8;zDv=!Q911V=8-bDi z;ip1E;N=@?*~I&ss4fYj?@#$er?=fI8c*WvXND}u!~eVgYLxK+EKmWn?%gWO`s`s= z(gaAYgpk#_SBeYrXAaCT6kBd8T7Md|dMZ4l$};iI_Pz_E6ZR;&&fAbB$t2CAb=Q8X zK#}YTG{~aZ_hd&`nsAJUZD3^(~s;c%v85^Wzp(Z3}S!x5XC9+4NU|T=@?-l-kFF@J%Pmy`hHyuy8 zDXQ)1=(M4_KTL%q^Az*%e9u4?0d}(gnarOlDhk<@<<5+Y05`MFOs=F|6J9PWqZoBs zQJ-5~OIre5m*XYSj>}$@0h78z7d4==f;s^gdJW{~T_&g+SQlUJ)<0A3)#(cVNT4hG zi2B(_>_A=49U%JZ=uFi+X4|J_sih#1?2pl8k+D6RXn6#bog9&rHqdA^;^rL^hbZw} z*k|r>YN+7r5LqWw;!ZIO$^WonL6PThI0U>jJ3BjnB=41Nmlb_yFRs}3`dGXT`19J! zMZlj2h@Qwoq*V5^2qS>|q(FX&X(IV|(8GB98FaN6aIcGiVcrV6W-k9hyn6AtY##pM zZ1db-fH&YM%tYr~T}GFy&K@PgK&IAJ($U1k&)xkwa&z)m4dxuzoOzc-YC@7Jb!|t7 zu_7DjgXil;j1YJ3-%;u4=)Bj`EYYarm?7szkQP1#pTFjcsF&TV&gaFTZgplC>{z`| zcD}tRfEp}4#(gd61ElK)>*-Gq9^_k4GBPM)Az_@i20D^Esbh1CEVbfNAnGh zimq2M0-HQ2_Yu|`%FSh#_+Dha6`~x^MBU4h2`bAM0l!WJ#A|XjzFsW?m1m9@lk~(O z3>EvtfPMAEp!i4Cqepi(^d81b#h=?4g)-LFsOvO<_NkwBoBa8cqF)e*>p?#MRk+VA zYGG%@zF2kx&&KE)-lpmfX#lK5!9NmvOlM)Y?uGuSLUPP3pQgJ;j)U((1I zFZZmty|XddXnAujS#@1aUk|I2fuNEy@H2y!JzlbY*MxW-Sq<^$q|fGPC=yy~roS$kbHz31oep1UZ`U1|jKnA!#IE|>?bKQSM; ze1Zg2#q+Y;n^(VnP2Mc;UH5?6v-y4U+(_+ zHH{UU-u8qr*C6erh1S{go>cq4i#{XQncc?~M!r>a+n1+ZV>8`sy=Avy&%HtZ8~$i& z^B${oBn#$0uuSg(Wu!pkatB9ZfxF~L^IEzs2xO#*48NmLpyDwCaEi!004gpoaSxY_wBtFHbMkU&zPeGbUN_z4#x#{_Gj-9 zH*E{>_>^KS_HJusz@hB;{C02TSx?Wyi@xm4jO=I9gPG=f$&06%YQ%6(o%%YWW zAesDZWHFzE>^0+@HZqDfMdvKD{r-WRp)crx!}xl7Exy-s2+G|A1!J_}E4!q5dd zA{mipi6Z$8Kz{{WZE(#7eqiUu=;~Udg@^CPe`rNjN}SFf0+>RqL3`=pIwfe@ zKG~Z$uAI~_r(C}Rsjo}oUE?WfM=CpXeOg^imUkzw(DqO*1=iSyG(JMxy^g>VAn$I1 zB8OFr@?UmBF`0$>kHoMXjbW(?>D)=Ygu+5XZ^d3s9v>Vy(UU4GBiIX;|X19KiDnU6!1(Mg<{qQD_w<$%@aU>CS?i-wfYgaR|itr}XK5OR~Mrlum<+b{Gf+K`kNi0)jf zA5hxwxqU7tw|N9uKX~$rjs%J}3LV36F;yZhK1cK5QatYDJ^VUddpbD{rb%M?bI!mr`n@uUtMxp31j3CHmHdL}fz{@$WJU$u8~XBH zc;T~o*MX@sc`rYp%?nCOwl=jDh1=EXhw!3>Hkuwj>$|vU+7gPDjy*3zKe*-&iyl$~2tF}^r5cDcYe3|Y8@Co7hnj4NK;b#qevhwIUE z_Mq=Uj^eOCOBjhbnbw`~dm4dcgF?R({4*3U9s20IiIZUXe;2=--sNmt$HyS$J5z`5 zk5{*!>o5u+qx!>x#oh%2IW_Ebqh#qnwR?9GWXEghh9qTTscj2Cj z&sOgcV84JF0uvb%6Vq66>EVCs0alexSz5)$@hBs}oxfYl(Lc^|g?4J-mpH{{$yYdG z_|mN~%$3(H51}>YPqV@4mR6DmO64crUcGv?zP`RJ;s>HZf4oj-s@7AxSO`0B&IrxK z5%Y7%{r}p;*iNc3F1``_X+Q((t6r8RT{v4_Vs4i7Mb6X<64g^%6?;^_Vi0OXiXKpg zt<>+f z58OvFLP(TZ@HG|)_hfbFE^|yCi_cMxKSgeWeJpiok$G+&3>xH6*&~{rnVx_WN+0sc z-JeS_0%yj4@Yh2LPHV7f=?6usOxjBqYPmXHz4ORM2~kPX_a@YM)!~DgveY_t>;-eX z?pa^^Xo{>;L*kTRxlq{N`^MgnGEvv2(DgQ&n|wb30!8H+FB{>tNDvd2;^n$d-h6I?2s&> zA+>?c?dP~S>5>LylqesX6w`fiBZ)`3b}D`FbDYlhi_u6q#Ss&q*W?aE2p`kA|q9-jZW%PE{s+`=l~`S^Bjx^8dN zDSa{Try$4~)x#C7T5lvHfBJ4cZ`|n@(<{^vEs1m}Y$YU?VZq4Bu z)K#ZU2`t(73#S~c464Bt%@^Y|{B8pe5iSB^ASi^h;WFCEuo+vR06PcbToqD%g~`4e zAljPX3(u8jZ|Rj$R-j-GkPJ`NK;kEo$>5i08^^QDC&(j_2#QWUwJxXU3DjuRyP5mQ zLSASH$;WM6lTS_$d-&L3k!Dx;me0p)WkNEy>lD~|3r;WNnGyF1cygU$)nILV0u{xA zq{y6VkT#+a@G@NSC@HnyADO0gF}V-Iq}s>7O~7U<7jAjn>po32)^b z?SA=A4(KM!iUzr8M8c~$Rr2);QU9*vT+#*XJ4e0LUWMyGWvQPE&Q(1(6kso`ra(Y} zJ!iRAj|(Tq=^=Jti7tg{%SsZ$O)QDOaWOO__Ms##cKr4U1kQ{ckFM^E(CONBh~kR@ z_8zd$Dl`RtW;o&Dc?)VwwVwW97NXCQWmNxX>JuT6Q-1=CK!SjYXed%ao&wGik(c6+ z6S?+JhKyZ?gBb@0Gn#Uzg@lEm1E$>nJwc;p&aO{h2|OtgD0$5^m=iV2pDCh?qBV6H z7@Xq;3l5w_UI70Ekh@Zj6M=4L79~j2C+oBc z!eL+csmV&wc`~p|){stAp^)rCSDbowgERrMQK4(=$){bq5 z!(hMSw=O;}`gY+f=zB|m+1lDpb#`=f4=a;(vwf0BY>m~kRoM(|^RwyC#WLcS&Ryh7 z-}o0+7B6}F4IP4{nj(U%I1_H?e$|{bNh)J&X_%k@wN={4|yrS$*rv@ zPuPLa0u=02A1A`_h29>X(=&&V=0O+H9Ei6gIP4Rv38q(BTt;o1tYrpg-hA2em~Vz( zU%0)+F+4e*2>9z@v(80MP$`ypr4GG7A;;>=Aq6M|2lJ106dWJj#qupQzrv-n%AiMm z>0+hpDC~Bk{RVV#o$Ysi_$cZNJcJDzRT!VP&py(vIm3??^hcBnzMJw~+dd6iB2)<|4bY4(>d%YV!I5HmqcnL2>5WNKe&YF86ya?W!c zGzT5zOJC#zYx_Opo3VMHbCvc}@%F=C;(w<=8&b(DBR=Ox0bsF3!&+!63x_TPbEX#3 zS6Yw@1Wwc3hwov{@wf7h68YM=TX;E~$T6PpgT*&^=u%$33RMgR4Y2oVbD79e=LEtE zpRQ%9^kWCW7DNCvtmxZvf&VuxWLTLQb^uAk<#6-Ofd9E&{d5^+DX#DmFTb0l<4mjj zz|W!MFB6&OJ82oypC*@KWC%iHVs$k&ETzZm+NG@J7I@*Asp)og;+iCNGeZD71Q?%= z{{h%sITjuzOFXZJ;xPDoR9e$OYEbODG2Kh&pOejVp8d4X>!GyVSvqjj}u70sbxzsV1EO>ZUA&u zUJu&sg-Qg{ZF$lUeEf#*|s#YQIRx|rVVJ6!J&xt|FCT7xo^ zXUAdDB!ExG$!wesB$2T&hggMjqtVLGsfm{T63IeVGJ{cIkGX+g-P8mc2jatkT$pU0 zn>zlJ2+3~pn#x&+=q)1XYbR_bGuN!eCIQAo#!k-io(#2~$={dSO`VHo4bViw6$suX zf-|-%v_ItafgBn061?`gnY#ro#>~$ZY_mZ(!|o&Pt!T6b8QUuA`>7lWN`MF#Mi!x% zX0G?H)9WH*WUbsF5B9j$fYVKX7hr0e?k^CFs=Svk*@?=J#m3Hsy1WD;E#~t9C2`rUisYa z%5xR6jXH73Nj^bC0U!iF2n1iWcnv1>AyafG5aa}@wO{flhrs7g3!g&*Y$?K(Q!8lD z+vmLDPgUjiKp)g=YQ?e%TEMc+{buF9`pzf;mK;BRNUIs3A!V5sS|kwj;Xb&9MXQD& zxF5@s;uKk9%W70{DwfP|Ya-oZv=rr}c?nsSmy{G6E=kq$VMlT)B$y$ZifnsI&9&S|>pGkq92>CtUQuHcfIf z<%C*su1vlI%*sjx9#T~Kjh${Nc+;E2#!I?IaFoNt(Zy=EG`5~;|AToTbNCE{I92t=pjk&IUoFN#Z zlqJB#ubej(5keA8%DghF@y^pzY4Z4GS^UYQYZfuYUfL_tIqT@@1iCPA=1dbJ!;WmI zs1|&s952saQV^La(g#l_pZ+kV_KX+~$(6?>MZmB!uHtU~ne? zu%|n9TH$fs`*hM^{FCDv*Aq(d4_^kNw-#$!;2U8DnvfWNe0gOy`R5ow2}JWinOi=Z zWhA2$w$ZFZPacr4VGBKw#o+B<5ci# zAWeJxQ}u_3qh%|H2M?+>AIlz#8D{Z^lNG^U@E>7yf-^ctn@^P-xz)tI6tXSKWT5nW z7pLfj&m?g>2>3Y8O??6tjhY0p%MVoKAg=E27YpAyfpO`52T29ZWMY%%Cu#+p910je zZU%S#U zI>lo4ERHV3q9V<%K?%1Q!|*#!GA>6gCS-{cOqSl{bN}vf9=s+>0dn@MzU{dGNu`LS zho?`AQCZsg730k!;~)Rq>$_4fFdqTl@a<7lyC*0#2eJj&9vA)u47FH#QA~*cVIj}; zMdh`l^yQx4-~BIP!`ae~x}oO4t^~&nAyJTJXTzOP!wMvqOAp3QImj-R+LdO;Rco9RekGQVoh?Tu^m6 zy6`Yeh9-n1j{;s84Nx9WG?46Sp2miR$or|9h1$ctCi)*C@yI+5;xD*XoU=WP>3@nJ zVaw;DQCng?9!W5!LNTYMkm$q%$z{O*ObihOuW@%(9@p?E__6w~3%HY!fom~Lp&2Sp zlL^h0fxJMI^+OX8xJD${M(-L%UBr|VDDIsjav_k9>o~G9p9ruj=d3{%#Hc=|!cnou z>Zv$TMu3^alVOpB)yr$KM0S&NScI>8ChH?M|LeD%AVLQ&hOa$6sbx$}A9Cf_ReINhZHY}yi6Ui+&Q2COOII7X!tq-?mNOf$|!FuyO ziM%YIvC_m|LnOQ~y_-<(S&R(r)6A@G75g~Urro^kGj;_Eh}bm>f&^eI!f}!A3w5xTaq7vOK{ve2AF? zC5gkN_{Wyw`{K=dw#%?4YfLk@8hL@~%@G$f_6y+RW$_rpwLG-unZ61t$RTx0BmD9~ zU7^&m-3}aN28uLRgemi1-}3$9U&fk#MdgI1?KYxSdf7jEoRw2aPpDxa=J2WgA>k|m zB#$C?A#c-6`o3th-dN{*+e!oOjJjPBwVfu=W-Beno|T#^^7i@|_?R!p)}^I|o+gc~ z``@1Ww`+6ct~`EP-E+@4UPW`HvV(==Q*3O@`LOuyiLLRrP=-1HKP-QcFrBJ1p>{6; z`KUHPEa-NcwXTx_-G4-{`ceJ7vurJ@_PeL7O-oIjxXcHtmmx{=Yv5seb2w1*y;h%j{EP*dLTSUNt-N~#EBk%9QM6K<9vUAQEt-fW7wa zeD`ww#;~sznC5}U^z=56YiZJOs%4c7z-qwL3onCHMrl%fnc1D5o*q4}dK{BO)x#S9 zet7+G_vJki|84#G(rs{D0Bq$@0}yHc99MWeh*Bv0+32zkx%1y}0q6!WGQM|+`?wAa zNy}e%XXbBC07LfQj~+(bI{n+u9x31?dQJViTan0iNSiYx1B_o>SA?BkX#tVR;&U3T z4+JTIWDhg|X>su~G{69yEiJKlB?AfqxEp{U`l{>&BsDelY!RIIfNj!3OcUw^(8s{U zy9*qzL~=L~$)1w?No4p_dMX9`onMb7JK&JPy=j-jcvi58Ey~QzkKV(T-8i-Mbt6*d zVD1{+;naHse${t!m{X5^_F0!BJ_ZV@nt$i89sVc@?#oy0A0#f`a;JFjdGEC^hHeKj z@p4@+hPAuj?BI0pw47ZzNm?puVk7ts$(4f;+ydG6=tru!*v)ssATq~oyk`r6SdNW{ zYOdy>n>RAA*C`Xw+P2*D;HAQJr@%A^S`Evz80t&zQSmsJCL!6-Z3Ugyl_u)g0q)H) zuN|G8u^EySB$fB*!$fd1LDI43Cx&bn4pD_jA|_g7Xnj=4I@Tz_@a0 zx={5#TVA#Q?*)i@q<*FpM#x?myJvD8BFIT60nfE=s4cQ4kb$RlC1BKZBB3#6GOhub zu$j6iN&PD;E4{rMmFr1J@VRwD+4z!KFBXN5rC=fwz`Q6rhgMlb)%$5gP^;~~l5cvl9TH=>$=@qzW2^2R%~O$2@F=ICdJTf ziiv`hk=6TrFoHy`TXSK16aRWVtk-3S8W%#N!_=~Zh0!E=RL4I{9+op+^v}#Gktw*t zbQDYFHVgzo9uec1t)8=tZoXI#4sM{LNfwnuGa|IJfLq;jpxRJTLD z5>61Af~dlj8ap#n(sQyjyR6@ZX#VtpH1Pzp4Vn8gReu;-_>$%M{t}ORl()M|vh=2K zC@-lb`&q$~g^>GOGFsJH!8Yg}xyBoTBaby$ga^01Zu{A6jcGk+hsrjGW^{bu#xe?v z?^SOx?OxwOb?c!E9UYz9WHs04wkEG4O+3|Lkw>AVo(}bMV%`@?!Fa@=lJ31M2|3u- zcU!R}qDmSH*?CEv_jFQZC~(FF5?S+Klq8gtlz6pPY+nGiCi>!%T6oBZ*>aU|(k&%9 zg<~R~VWe5;^%`Dfs*!n(Kcg&n8F7>nCmXX29FBt>PAjuCFqtt}=M0M7RkaBEpoQpC zY|9;<8H^eUn_ohr-x27-U0!~XA8}s6hOsbQABHy!1r-fxo=LJ0Fg0v!4^-WEYSVAJ7Pdg4rc(}PAN_f5n(>btmOxP&1zr(#)5-ut-`Ii2Y zYa{Szp#5s#t~Z9)*wWsfDA5tHZc>tyB}VemU?4TE-e__FbUD8(ksuTd1FSOUHeLS$ zw1vK7s{+PU9TB9g?CFX>uN9u}2h|zi6I7zak$wGJbc7fLs+baC-wu|8vVf$koG|Ou z!vNkpAnyGSbj`l{q%yPVZ&UD8R91F&YSvxl`B}Y@kBO_Rr-enRi-X?9%%77wrhTB( zD?$&lAh`;9ZN(YQX(PE0$WJCo&0cf#fj1Y(0D`ow4#K3ESSm8T;16v51<-2TO2q@o zdkzHDC7bJ7+|L%Ct~yWGaI(phU_)Ndxc85}q3lZ%dWzm%+~-Os1MC`gb#*K)!1H;$ zz3=RakV|0)TOIIbNOK4}W@F8t--L%XjY(4gxT{;a-0!XrXaYzK3 z>>Y6dd9`q$daMMmWmAbR`fY)tn;{Qn6l9@^yFbqrKo@vb1(X9wpg~IGu87ekD(c`P zC>uT$Bb*AZaH7-gWH$p9WttdRSF1zn1u!0fb6YWu z@jWDf{^^C;-h8to7>-?B$Ss}bkBWpBdz9s+d!X(0gk1VX>;b%#$}G^;B3bs|hDdgp z5~dS93Q6;rFkJDe1xX36s{jy!+y)>fuD5ctedC~ku0uX{oxN?V1 z4yBmeVz;aZJ((hw%V7LkCaBtAx>LL$uWf7yyahe+^NAkR1SwhV;p%#rxm~Drq@BOW zblO#~$O|>ye-QpAy&4CvD0E`;Ug0&xV56%2*YUnFuAuG#pCq>Fn56H=(WDM3Q#l#QN5#{mDTZCoy9vjK2c!_^$o*B74w}tT>YKIwiCSIaJopK$B ztvja|ks{ucIAucPr`)ALr|ugH1vLLKP2qFs;`!o<5g8%>NWEPP1(d)Jwb5)&^_%GE zui{jj&G2CvdHXA$n=(p(#< zw!Q|>n)kVB9CbQE_yLc(yF29^l;jnZS;W$}9#u%aj5rYx8lzSps41N& zwVw&Q&j2)CaENqWT!{TS8D*(Km9$*_8#wlwjM!OcumJ#KtHCfm9bNPBFZ~bxmtfKS z84&$5wV00qycKxu|C7gHQceI}9vEN2X>;{azx3tkI#VPIr++7}{5N-StO;eD`xtdA zZya}KKktN75=4+FC)f$mfi%7M-wgj#D&woG%RiTGNhkfrx5vgQ{|Xm#;}_#KcX$er z|0YLK%6no!Mm9HB7_W_pSp121&pOXX>cij|Shb6;U!DvC*nE#uOIus)Pum0oXBTDm z4K9xwy9Y^b(tpW6BRJl7Yg6Fdqo!)9tGVd7$K!M4fAvmvoH`$g!Tgn4311Wa8j4YR z{ex0mIY9&;9}n>&`Jci@Mvaekjo^)sy&D5H;gO~z77r*8t@zqOn>GF{dt+~q6hPVPK^);~W3E^Ogv(&8W;pBv9baRfo8VFnJ0xPW!d}qG7 zs=<|c`?SuN$a1cw{?Ou8mARi`!{}`t&dBrtulP4VoUKm=+~f$^A23qvRFhO%Je<5q zH+C${XbnUFJ~Ni|{h+j5oT9U#7f2@D7w1UX#QmzUey z+aRez>|#o4wy+Q|pclPN)JK{Cy2F8)fuMEOnH17J$HtSKUAleVk3-7g`PJkfA!Ky- z98?8`)BrH;GcYxs^Lki&a{^`w<@1N&`m&cQ+jiHe^#Q_NQxGDOzxyK)G+0=$5Hsv| z)(H%>lIi%CR$F^4>2aGvZ8bnQa-ysF|5?!>I`dr|prrshT?3oa{H0+v1`_E1B9aLw zK|~3M>``W^0ZTgh+ku^((h3KlDyuns36exW4JCi}%)q!kgs{In^)hgs3pmePZ2^iJ z5|uT8#iaaPHMMUFJVt;iZD4P6cv#`W2)h>mErK?mC)HM0_qnY&HUbs)6}A2ppKbOI z$ff}PgO?%#2|j~}{sI-!KhyzW3k>W>h~Me8#z2Aw+_nFVh)SFt7e@_~YXRp#-hBh~ zgkJwr862|(#03XKgc4_ty}_ca!#i4g1R#+WnG@un^t$@_-FOt-8JB3bZf6+DR`p74 zvplr{(8M0$Z-vXV2^Hf5&Ujm1Sg>orZB;F^B9kpKl#p3JIB+bRQ9#uTTo?B`02*M- zr)GkSlN)7OLBQ9y7|0l+UO;CE145A#uFo)3XzYEkt=wY zo4izs=M<2THhd+)fv`TGd*=>u=wI!R^PbwW7~TymF8?OIjH07}2?VMn=+!ldw$J@~ zx#s2twQ>ylBJ5)$v>G#SQZkwpD>N&T$8l70W+b6tr3{A6K+TfGL-vg7Ipy=F_*TtU zni9af*aGh4z_XwIAlgG%IJQ9zNaEdcfn^6oi0uJSe|Op@_$q@y+zZg#|LhenCv)=i zfeq&-fU38o?uZ0_A?Nf_eqLF{ZlUQz8d;PDnIXj>Hkt_DrQL~5*cf{e(RVj`1K=xIYd*U1P%5+kvFJ-N=*@~Btf0Xng>3G!RB?*UjU%_-~VDM zM2>bevOcjR z`kt|af(Ema5WYI$uS0c|QJmIf7&Wr8d-67rTDb(`E{T1Rte9hW5cpO@(|Fzz<~k?x zUrS>4d&)RMbaE?D5YF3$AhtW;EJr$-*Pz7EJcEo>hvDKoDkw%Vi#U62~H{N z8%m$5t5sB0584ojw%dxo_XR*-c!D^r0XpG7J>O)e8i)5Q_7|Ut<0k*m&~%s5OZ(7| zAJ_7)mx^?t7zE`=h(e#^J;>0xTiqP|yO;F1*At23v*x$k)6_!E--Ca5tM1|i1}9O*}fdn!Jr#Z;)2=hFt7@64+L%h4;6fZ*i8H{O%vGf4b05s z);QT2+6v%H)bQ@?jPh+8Q@zO-oZA=W{MM?>}?~Au6fg;YUuOl zNsy2v$(L1Ut8e?jIxSXkc)22Lb>2@ns1~s6OECyAu>WY2+2cD|ymq>Jdf-|Enp$A= z1WUYsXFRa%Yn(p}ysR=yM=`9P8yizD(H!1(2lB>2nB5j2IsAKptC}?(o9fB@CA0uj za_Z14oaQrIl`%690GY!Tjc3SsfQftyNBF1^_$mQU>)4wbIM%=@EAZ}*MFIek%evSx zGcY+CL|PUmylZo#p!=)KM5ImD}*D7S8L5iiOe=mL` zvCyv7l&)ELbnKmjoJ<>AJOouolbG@LjGT3EHKCFGJUVmupB7=I_$Rz9ZO4+d7@p++ zJd$Ufn@GP3OMXM}di*8jA+a$s(u32pz_3+b#T?|&TxG3s#WlMJYa%0eE_WQ=KV4&? zPT0D5!{qQTlBYP>Z4`ZgZxnv>i=->VSuSg)3S(EVRn_j$a_QMI zGL=|tF)T}eC!-%?(oytZZ5kwlNk_u$mu~xUyv3*o-H4)Y;Gs-EF8vjVq&1|OWz1|6 zn~`8e$ziGgk@kMIK!R0+EG_+`c+iBk)u77H@9)I!h#Kw*n~YGD%{w#+zRI~Yv|4|RY+m)5Oyqhk zsL+}E)uQlNs@);!=uPIO&Z(Np>3s)c>Pp~H@S5%Sff%Vtt&`>m|M*5OPn1Zo^7^(L zTM-ipZE4yo@)ey5A5dwVyuiwFPay6$FiIhXzp|2p^&Ynl1pzioaPAM4UYt zL+i=+0cYvoj$VF#4h{}ryfJ^NPoI8}Tt2VmM7Ar6D_WeH?3kfxDeq5&4&G%(>m7m` zi1>{sKF#VzcBQB$+Pu`9b9e?wtAIrq_!ocxRLcfE6L+LCm2>E0Z47`xVi@d;yzi>a z9vrtYRhy$x-zpGk(Ew%L-^T|xidqi#d86^jz&ipMSi6G&?Y{@LkB%p6k?wUU68I9d z_I^$RdV7eRwmjG>{@~fj$Ostdm1u&*2dPQB2=9ct05Q&zcGn*$iE6v&H@a0aOp_xy zX2&q$`G)3qpCtS}Jl=UErg8F&f#}0&IqE=QxpQqHt+Q7&*z`38t8Qorc+{&X`K)lL z_mJ5oXpUg4YC{OXRL{vbMVL(3uC``3!_a#P^COY<_2E?ff_ZU+Jp1fVDk zNU7FAe;>hhCHpajet2uk`d=IyB|v8xR{sK+5nEf?d9R2(O_mwH6h(KFvT1vy6!0qt z1yQNArfIh3#`X@(I_gyRT?HDSTg}$_e|0thrE}~b56!d|jHKIIT6`bxZ$Lpky!Lh(TYTP(j1MEoj95K2tGC#ll7KaH?T6i@85oXVVC zv5qBfP>^;KZLxmfo|Qv19Ns1dqZL!oK1zD){rn=h_=hV&>?JDz&tvcoL$aDS%30^b zwS6_X`~Z0I`di!+G#p32Hf;;SpN_*dNPXwo+3K;57HRu<>9aU&bBfXL%} zP|0Z=`Gv6AlhoTHSkmYbVGAt-26Fh+wU1%5G!yd#uGSK7bB9P#o zqXY@t)wwZ*lWx+fNPsJrrrFDf1xr_q)I1PUB}04ggHD8MVku6KmhWhLBQ|eFp4m3f z{*2=0;hwhV6WX1@#LIu_rO3S9$^o%h5P;D?l}gmU;b>;b=5|DQ9w4VBYa=r*BO_@c zp_OZDDhzE&!Gpyl-JGpmIh7jxetRQUou5!V!)5-yw6p}CgeO6R9f}N#?3SZ4?@Ly_ zH|foM*ltl7eAnP*X3qqdnp9#k+#3|}Uqj_I=o!LvD3O4G{Mi7v`pC5An|O!wL{3;k z!mX+mW$m*)(`Q$|!j#PJ&dn%)>70gN_@dqhty5tya(14g zzkDAbaFP!Ojb;HGW(RE(p^eKn*mdd@Ls7@Y2F*-RcCM(?telEOPjDIQpwBAPGId5Q>W$$KIj9}ba@*pMDuRro|(4*sw zQ|U=~m@Yy;p}s}xgJhM)0`m{ppV+gJ0Hg|jre3^EWhM9}+$a<)Y7QfyWz!qkQBdr# z5JdvqPXdk^S;~g#v~)}vD*Oim=dTrb8M3e^pxt3siIFFfu=Cy!x`FHw1r|}f`z-iC z#72TT!BYMP6#*_R>@x)GcY9Z*0sin9*(M^1ewYil%a&{tB+meMak2)@z~|x*@OCOEinIrkzy1UytvV<8y3W2v$t4wt~)H`B? zVsi$RcQJ3=wE^I+%ATY^W5UIUNo#BvN2fd^&Gh6S7Kwrss?Z5y)IUW!NV8PYGj}CN zVi_~g&$x`_3_zCEq_cC`6Y}-Kj4j0?b6}^M@Z-r!D7F6a-)GCh6EM9_QI)OwI3=mxbG3nEoS=lF#6V zpHql{EQijcrU(WCehZSMYGeYztxsw||nCVWCI$z>v&kpLuc1sk!E zgr7kHpLjAUwdThMNjh8AOm)74gr#-IyIV6fkU8ZCr5S*hq*e+HS_gDusc<`6PH>@d zs9lHJ!_NOOZU~pJBObZoX%dmFOY3TV^-UENp^!-1+)ALFC^4-@Dd2?Q$74BJ`_+lb zK+%{W&;k97k2-;C8gbtyK16@}t5`AqPDn)YOZ=BL7ENeN9?BY}Lnsbr_4R+p19cZVj=RXnB zRi*4Q@q%EdtMF!YQxCa+_wEb(-s5Gwh+*xYdshePnWN7`%W9Y~kgo&*lt#wx8wy&% z5%K@l7ei&((}i8$aEJPToZcJT4yOqjhPY0Pm;HSGUsh2yp^!MlypFJK!R-~^oXE*g zGoqDD>7LxQq}qXD33Ev}?U@UFU69&kEPN6x?2ef4?M5OBGa|}j1?YAGHPZL@@Cy(p z4T`pp&y@_RiDy5t-Y1if7tO&Q5VfEO!&VLTp2O6v>S3tM=WO z;o;$c95mG(jtToJ13Ak#a{dK~O9%S^V`eT^&S)y*inBu6ZX_RtRJI60^9-xK0RT#m zC7trW0&x%>=lHRwsFKfL9K?)&h&;K&6Td%QYJ3H?@Rt)~z)S1mp~Op= zu<3b6KBz1R6wcTNOB9&2nc4ccACf9F+A_=}@!$f|nqAAM0zFo*I=$a`Bx$u-XFfFb z8{sR?_PvU-d;og`4*^O_ljP@M9#J*RGA53?&Q!$R-~Tniqsg$m>qBaYYNZ7kAO~wM zEiXS$%5k;J4qngmz;ixH>M_Agl%N-NZpDOg!26)iPni7kNpDqrz|6n~4kD2EuvBJ% zhi}Bo8jO*1hOGshR~BYxi90|pguI!V8B00~5jGfh<~niT)LD-;Ir*A=SmYkyawZSN zF3&)^kxIP3|3*zil9`2C8O@#EmMS1@gz7rjGhrmPptkcK+-t*ye z2rEQF>Em=riKUVAo5t@{bVRLEGWrwe?K{2!qo-1kZeOHorU_vyNxm{{hX1TWsaq0{ z{Sdv+;s!TYO*$YRid%_Ksj-Uo<7i(+(3($M)ulP~X;o+gHwiB4Q=Tv4OEdg*U+abC zcnsg1G6t?kA9L`Chm$CSchptVektX{!}B{fs)`{C3_JX&l+i*OkiHxgxv7_bLy|en ze#ZUHbx(rHdD$DNR==ak2qX2&_8OjIN0MxX`9uR&Pql909Hx=v=UP1?^rPAzls#Bs zHs;y3)?d-ljnPzgKlMUxCtBMqSdprn><#7)y<{{1UaSQdLlQ{|2!Od>7;zC{7DgJm z#4j>NS|B}7`RBhzMdNoZ{jiHJNAP<=YI2^)Daco!zCI5J>oX**>+GekVdg33Ym6GN z6b)k{%G^mGiHlX>4y)6Th&*Gt`f85vP08_XXyvI0H}+*i8n@0QcM6oOMxW9ze$ z^=SCc=Cm7r`H*LLS>Ni5o7h;}pdk7AZf@0cNeY5b;YuF{2n{jZhK%2)K zbUX4##h_&>G3P)!fsw@Xo18H)i&(}LafMo_!cye5S%@dk^MfC6%JKsU+!Bdxj+Yt* zS6opqJb)ru(%jx(*~P!THxf6MTAjU7F0H%Fn?eoJt&da#!m+y$76wg+ZIM|&`}&kS z=BB>r)8=dHn6QPB?Y8uFtce`+hfU7+|D2GNtNm>oMBHQ)PfXwf`9cDBjoR^~Hq|>@ z89;4b9~tHh*l!h^{3+^tgCTqO_-*WOZH7zmyUW1yGufKO`OlK~ti6khC8-YC$&N}Z}-Et^lvyT0v%IoqtGm%BeXPAK<;Z9`72|9?Mw&P5r8HkC2pA)M{=yaSeX z3q}C0I9sJR@5rx^N@I{VluEBqbD~qF0||nnwAQRTZ*pVahOOfXx$d<+%~uB4-c%)y zXJlmh4Yn#3+Dia8jUDFQYvk$djE(veeSsprA7~!`KAZ&qwW7Y$Z!~mT$SA7d)?%F} z-*yDEOr05Ff=sB47QRCpm2kdMGdcK#mX@^Xpsv-0hK4%m^fxr5N>|RZl=gY&oeg6x zdr<}djs^V(`@C_Z^XgJW;p0YV@LAy1V%{?y2{Vh8a{88Rqk#Xd^4<;isw?|)L*Ck&DXse6%^05XsBMDV zK>gwoV6NrqN;l9e@V?U;#fa86h&sU3UIdfl z4=3nuI<~g6G&eWzuiOUD9esfM1%ZyZynoe(YoBsDlP%X^PjW05>~CdeCqB>}-#VsvaIA1eHKV?DzM z`z-i#wlMh#NW`LbpA0*Z8l)VcC~|vt-g`DQd zb^DU*bJ{udO9_J7KR+B=n1&5^8bzNs&LoNQLC2W>94g)0;rjYxFL7v5`MS%pz>yLX zBs4eS=sn#Ae&fQ%MMWhxAAe?6w?#xRI{M26G!96h)MT_`N5^T{1mxZ&Cy#$Ow<t62l3`CDg_%n&=}EK3Tw*c$zGjt!7`K^}%_4GxhCi26>}PJTE)w=f!)lUi zbwrWa9dF5@jTy?*MEz&VN-ROl2BiZ|J+EY zeFoqS<51FN*XKy97Q!-%tJ5N(FDw$U5_NRK_uV9nr+VU1a7aYWYU{UUzjAcJ4KkD> zE&qE=AmWgYkpe*h4bt)j$)6}9LUR#eq2?1ZpFqrlB>d;y&q#} z0kjj_xxT7Ary?;pSlmq)YsD{=C+)BELut4Jap zytFDCBgG9OlVW~+!#5p@es}o63#+Gp1pW0|Ur#sf&brsnC+35}Hq*)5Cw@h0{P2SmSyENRA=L z$iLFQ#l~VOI{5hbaJZI;jwvbY(XUab1%di2-Rv`Yt%f~0D zbXXV+GVit)^mz(uGZg#ymd_NVnSjkDKn$;2iEQ)VNfiLF+*@r%-NE~CSN8fvJo zFQT#%v3rN8J#4G2gmU7#Rh{{YW+@UY_D5L}ek)MTSzTR?viM%Ltyy7BCfjJ3mz7m9 zf2bbt&xnL*-d=i@zxJoWR}=xlM`3;GdZt*p&s)$WmA)GMiCl5ZwPr&&&Q>NSCIYoj zrpMa+ydD#g=p-QpKAa}Y+t+u2Pi5ZgO@*3r>XL~{>eEEckx22WNRmzznmF$d}o2ZK34FkS~jcXpGu zFZyix0FOw~-(ApdSPgd|mU;Evk)Lgv=>^t7yQj!YAtA8t<1d?d6^PcZKZ+qQuD?8v z-2RW5fI^03y9s_YNSI?Ib_s8qeOFA+n~<~68;ciTRAOfHcaimr7zS;?U4$S+TLW`r zcn{u+?i#^+0BN=!blcEJCi~1bdi4O-7OSgI3TO{>kqDl0y$a@?c8Du)D0dF|NTi{u z9^X41V~uj$$E;msL8b_Ds~GnZySsp>MyqThWSK*L1WPj8w!D&sD~w7~`${VIwE+nQ z?X`oph#bv}gLx#ir!Az0NL;;mov0rualaJN;bFGsz4+qvT-A+@1o*&rM4o{(Gy(FA zlRJ%;6lgB=l=wY9LA?e1PYc`Vur+}I-{+WULEHc~HmZTlL%_u-IKj zNei(@XCgp$pJ*+voSw%&Ac3bTmP8_fMRr(GP+}tL2Y#WTUfqul*+s4<0!95u_f+(T zG9Nsj-fsKWurdb(p9nBAr5)i2;93v&@1rhEWwN~`tNt61(az} zPIK%}PNWq^U1xifHrkM~i9XPMUf~M(y1?$j{fBC0;-eV)E`@jNYZk)Q6LU)VF%@jU zd-26Ure-}2K4xMmSnCF_FHLj?<(#gOW5(W)NMuT;UFJ89)VSh!dvlgC^@6gkawnyG%J#s(>YmPQVCN<^eYO*o*F^ylj+-X_2 zgG%A5kd&hP^}?qjyiv5LC>W+wFTFI&u$QNVi z5flE%MV9(9CFJwGgLSFUWos~&lwYo|(~>LH%;xB*MutB_lWEyk6&oW z@EBT=-Gi{&(QTftLST+Mus?0h%V)nvBta5wc|$rZ;>Ri_v1TvcZBdklw|)HzBIyD9 ztrMh=vY8OhVi_IWk|D00&kxg(4xb2!F)B^A?&;W0%HsYSl|n7d%uUQ<&; z_(D}bkzK2@(w*bIL1)lIr4B2IS>7TDo#%+)LcUg}Cn$k)y9U0j1(#ETn^*w|Sd@nJ zZ=M01NI*aU#n_kMHvzOMAt-R2*{O3I7B4SP+nKCPiye32WT#sF)_P5j=;?Oa^vdlK z;F=$qB~?fj1p*sx?jLtz_mALDhbH1Rhdp7T1Oo4dB^s!Ii(4Bw1F-_^qZ04`BO-xJ- z)c6k^n3@oMB6y5rCjJ@{*O8DZlxXwJ`c7HT8qKh3j`lRl(9m8YRpXBW+MgD4XEF&A z4tvkdGa+j|#&^SjApv?MY1+a=kq<;0O1m3te{g~k#uSg(`uyuYn`hUluY*PMKo9Ii zxvKtdxOh_^40I)-#Xtt?jtP%2b{Lr8b~ch$8eCC*}-#ZioKkL+CrySm^|CWR>5MVL6QZC2O`7Qi>v23s{ z%+LBl<@xEKA>$U>4b-027_`Y;D|L%5%>-?Nc(3QAR)IfCk(jubV3KpoHHsmJ+~g(s z>!!IbhtTv#jW?|1-=h;*is+p)>!l5#bDuCQjpwv=QiWy1a1!yYaC6`7ihA7nMc_QS zr!3mV>xKTD3&BciKP$9>I{i*j4b^06Boh2^8)blNGT+O!1(A$1`i@SR+i%1md2uFe zr3_KX;NC6vLhG?j3fYUA9=q#D#t$P*Y}v^CiqQI$##qXjl$0wSL$6seW!2Ci1Bc)j z2OOY+Z3$*7MaS7QsNSj#il337F|8|5D(P?g?TTs{m@|@rd7~? zC!`BtF7qLgC2sOP$t8_IY((Oez|!2hv_S;n(dt*hbjAI)M6&bePxy13d_j;5 zNCA7fiegNV#DQ^@v;DNE-iDO^-LNqSX0z!GUns6LoMv4v4epCu-hvJX_nTFErU%V&{qq+XtdH2=7gDT2GtRVPDB&oU5YOBW!d;cF;pxt@T zW)Q}mpPxVH)uCGzn+#J>ESb^$n4(aI{LwJua^w-UO3x(i@F+Vg3%SvwZw|4>X!&uP zDP7UL7X3Bxck24NFDe+4G*}eF4}`Ais}8R+l0yt2#Wy1NSWRlo(`0n3Mw5GFIN!{V zsK0q1`DMb&&mwhrBLLW`9rA05_VqE)M9K5v&lTaiX6?yC&ucC zp?YN|2fQ016pwC$u1Iq@q|ZQU_!B&sD@DFkKD)SEGHOUf9Z(-F%uCKZZY(FxpM9mjc<^Z#>lJI8q&%AK+3d}FxoZ2rc4vIXm7W;>r0Ex@`|OE z+38l3K#Qq(VFGK!Eh%~J@pY@;W+_g2-tN%)&QNR)g~aoqM+W_MvuX7U&dXQ6$P>-| zw+O7j^?>#i%6hXciO(S$HVgrVQ=zS`^Di^fsCFK3 z(1F^6_lspe*zI@d^J!KLMMO0TBf_llt+gc%z_S|6!nttoFmAuT@n@NJWXZG5jm~w5 z`h_l5TI@HgMeup*JaEtr4fa8^X4a8u&bkgXS@X4KlVstYhKK+^5GM#U-ElY^G!e>b zYA4IhCtw6M&F3_p&2QA~d@1@OXB_o8psp?g>+5?vB?z5zti?geViDVDb|s(VqiF?;^kwe}Pi!fKm+< zCSe~ks^f9=B2L}d~vWGx|241AbQ+g~mAkNT$jYLQ1ZNDXZ_;PEr+O<%M zE}{AJ0ErJwHU>4iz57|iz#*+zqRloTlBiXY5n&G2t*u+B&46yS%hS5(C2)rVGUWEd1z=e$}`H zyb33Gta>#o^){mivsJ>ok?_!H976KnwD3arit>tjdWBqc@Xk}I!@hvA+HeK3u*KgT zV4eEn^n$Wj{B7~o+KsBj1~{b4T1#T%2zfunXNgF*rbX*LzUhUe1!dOJ;HEg?4CMj& zEFq!RrF#dL2|!RbH~WCA_Tk|nR$ml?(wBq$bvihiS9#KhC+X>?WuGcfisz?+i>(WA zBZ0ZM5gmJaN;v1`5rd65-TG3fzzSbst0s=0jqcCB4HwCe6B4 z!2j*u3L@aU#6Nxg`t{>S)IAj$4YJLYZ^-`2#|amrb9#v=UQ5);@nYP0uSML z@u^qK-mS(M&p#`cpyZ7-zM793lM^a&$hL5F-E+LmF18>47{LS&tNT1%e%>XQ05c#7 z>t+8||H;3jlu416D*TGMs-DBM#Ys3Hd~(>+C)lX2R|zi&pDYt!uka)klh3-V2wKK! z6X53_9y3V)K~0G%TiR7wdLg>|;*ZR9ZEdAne|*5pPQ}+RE+#6tOi7hQ&Bo8FD(tZw zpI-zvBEP(EvkUy_R|mNj=*2g!4szBzkZnMOL6!IYs5WvvT-&mff=Ky3k?fM59#37Z zr^vqwKCk`7_qddm6#Oy$oblp8?b66d)NPpM~fQY@Yk8PLwaBRXxf{BRtCn1w>4>JP~vOJ;Vv7B+V=Au_V~QY%vO=-keVb!u);| zavmT@KI9=&s_dH3Qp0K|r$#M&F|xO{2b5hGW7b3WAeLvj$!WCy;O;SwnDrv_rr||C zg{i>($mm^b*S5Qk?ss3&d}YQ^Y|wS6Z%%y0@}N)d3Xt5y9nwKbKyIjyD{`eL!-EdQ zu_@KF2{ltjo3jm572+%XpB8}UTvVThix|Vhvi#Z8Z(|dY&+)dlZ-ct@Q6BL z7kOIm%&$zhxGV@w>Yre+zDA}2!!$XxO5G~Z20F)q^JI2mI1lNU+hp!n1{sx=aV%Kf zNd-c;0O&I|F~MQd<_YHdthy$dll{hcd7{ERAUAo0^^Ph1&6}_1HxpdAFY#^=c#dW* zk}PcmJOd~L`XOkg1S#dp%+<4warAOAL|uN+ThP_FvyCpkZmRl9M-m@t!32%(e;deo z61evR^FI-hwVMf_8WW%CX}UoWYAcZA6+qgdX#NsOF0@F2_hqS;;;XkyKYB6C>=>=; z7TUak^=2nqvtmyuv6OYz@unM-`hL!*v%&AY6ok}^gPW=H7hOU)7uqcA=E|k0iq5iK zfkbf}e)aqz8S2~NXPbx@F(cKoFg*P6pD_s)e{X_2U01^cHcc3ct z6bYQw(eumq*%{0F2bR3wq&DmDzbsYBS^J&Q?CI%go?tQ`j-#tH=|?BW6AFot+p&m% z#znG?Qr_ei4SoD*_0Mh%auEX7)k+9hbwBC1y59f{1c=f^TvopU?K6191OPGWNE{nU zW%{!7v*XOTGTvtfIw+HaXgQjygN$@Zuhi5rJOf@vt8QU)Eu~s83-gmEK}{t`L1|fd$=(WTgc2lpAZ=q zaSpW_5w4vjf1ygT++cT7XC+4@Gvh^UwPgR@cz$xX0RT}Ls`P4iP^2c`j}TeVa~0JW z@81e{H_+^gq3@VW$)KSuvcI6f3gZIS*K4472TBOZYE&n!d9Q+?13M)Qj5*^k-rFPT z$<>sxZTPfsb1ph4N^g&SAt%qECS;7xqO+du5cq{azO#t$b@Jw$jro53^M@(EORvK@ zpezUi0hKC|okDheAuU~D(CLW`L8V}Y)bj6|oXw&G_cUL~Cx&Ort`MK?PDbx!)e0(> zGnAP$hQtF;5ZWA#ulMV{4(Cn0hi~&A#Z+S2R*PeZWsu*YaE;9<6PAAXVW>rfjuDnR zT)g|ABorEYky)Yc;BI@{g?OJt`JaIMZ@vvD`NX}GlYhdr_qB#z{pmT`_u?4gGKJi;8`EXZT zSn!#p#MzSo*KVjB7gKkfHNWs``Vm*dFm-#Oc4B0Lkk=z|a#31J zc=aCH*&7*3{~U|fw6S&Co8D~OzIh!&OWx{KjvU@AZRFY-qL&oqG7-2tKA1Cg6^wJS zyd-60+Ja`4@QeV*G$Q_(*?KxpcL@7FVH7)^m=M**MGr~+eB!4MkT z)1$x?mLV_7i4-_7NlWNB*Fd%-RM~jlCd?|KwTm)u6%4Jj?_UY7#Ndz6TQ;x%c^-{N z?d>F|#~=1tnqkrnzYy}H%Z-_l4Z;xj%6s)pm{b&U>?mblNa9*%$m#O1uf{dd>D~KQ z3}>awBf!Vg^7Z5zDRt1PTrGvDarNBav$f#cy!D%oiJJUShVaRgwN1>U$d_;M;lLxU z`{h?Y0<@$p&u{|G(urxv=x(yYy_#kT16m3N)r-8)Ub-nK8M_&d2b^s{9vdD6d< z?NO?Is(aNkI}IIQB`jw*$gn!gv>?k&{WzG^iolF$a3-&>>=OAw7O5P;M2`YvfrSPP zaHl|b}xe5uka~q)D^kp+WTE6id1zM~*baPfUw= zL?}D=p9AUP@BQSJ3DBel2BJzr)nx`GC9Ja`AuF(fOiO!rLH1x918-40`iGzmtTCn8 zZ+m;?w8JNDk0wBY<(dNKC<+A3x|J^<0!dB3{K?oH1gi9#N4$W&kJNX2I(kk5n^D_* zpDgKs!!p16KyfUgH^vqk71xDbirDqbpHDye6WFQG=1x^Qv$$!s87pnMxN-V>n^d02 zEtFz#lwL~;H4vqciwHm-byAB1&f?8PefO^A#BVhW+y)2b-c|6WTd!ZWO4Jwi_-*A9 z(pKnKYCG0tS{MK`5ZHkw8V!xpgvq5wIIN^vyV2m=&4I%s3YCBY-m)I7d+daj$&oOam`3;sgYB zE-qS%(dcs0hZI(1AGS5w;6334F;N-YX)OJym{&<^iB7G54!|N|rRjNvHke6k zD7t)o(4F_94mj-wv}3cE4`W(?H-iJtdKwQ+{r5|Ny3MhXMWY|*UZ0JsrM`cC*955bznom&7**&4 zfpNMaakiE*M4H*fO;Y*`_J0WvG%D3a3+K?m9^(=jed$h%={Ffy#H zOoL7xkJf)0#)kEsz3h!?P3*K9^=Cb;9ny)h2n}@3SAD`Y?kASB!-N?$`X5!`%~>&u%uk{b~SyP_@z4NRsaG4 z0W~>_(JI)dvsi&f3ycUZUq{EDc1Kecix)PpdN0rFnZ4yc3tX?KFwi8{`7K&o(FD=> z+m&kAVQugPZr@>wN@h@@4J1V7Jy#F;`HA4XEq2-Pf{~FiuHRCWYEr%xh;@`1jT#Qp z6=%KjhKKioX_8uQ@WsD8u!O#cL$>3HpRdtLcNTlhL&eD9`cbpCDCxxtHDi$2v--M_3D$3%Pc!@{R9|^_NdK-FryHULY!^-veUrQw8q`Nup!M0 zZ$$nLKQr2--TCQHE-X3D7$`v)A)G5#UmYLaUQV&5^~4S_qPB4^Mmp8r@_@<{F-dyE zp{oA3hlRPxq&Wi7N8wHkrLqIQfDG!>IeGx89swl3n4H| zzsaZLQl#HZd}S3ED-G#JP?txAa@Xh{qFuun=qb_Y-Jg2Y=Lt9Py-17$u{Yl-6g-b682FDZ&~M5ufX!1nQ+2qB>Nuc>8H3=UqOHEN;|4WPjdi~tkk_z(gG4f+WU zsDCa@N5{q>w%@YNcIVvBWd07*9}_dfJ&H>@u;CpwW>ZW()?7`P|~TKf1G}l zfUpp%pHac4r9hizsX+TycKp0Ow!$scPficf+_`(R`ZZ{`lTrr?1JP~|dvf9#HkYW> z*GMpHkk&Bb8A&CuH!eCk%Fqy3sl=1g3x#pulk-sD$j^L9z7aj89AtK*@O6KFu6av|wMBe(}4;n%p?dE*(ot-;(!O|J385nr+y z!>pu}rHMmcX4v@Y0xZ-k*<=VW6{;cXLZ|&VY>e5WBNF+dE0h9FtSzqA)zf|XV&zm(ytmka}^-mGlY?qImZkSi= zx^-Y&*M^DZa?=mHGr^x$zEb9f$I!v_W0E82N1I|LfaC?R41++-QzR6evCaqHx=2DO z!85gPu<6%IYlA+EvHLKCo=Kx$Z`A0W|C?L?uNau`*FZk+yy;!yY!zocMG^~7PqFZ8 zMh!*g9Tc%3z6KU%9{YU!?M8ox^~XTezz0BrF!{!JpRA^){A;<{#oN0{v!YLHczg7{ z&!s1)QB!+aZGq#69$-f(RtF5SpUAD+zjmjstvJ<2#xYsL(c5cm+UR zK|iZm@ojc?c76Rss0P||z5+Zl0PzeC{H5Pw^M4_fI9l1LX2kxO1z&;2U>c9w*L9{; z<>5gIR8D~$bj3K2h^f{riGj$Xax#rDhIJhD!R%6_40MsS05R(L{aHhP%6K)>QtJCN zHMz-rZxbUOFU9??)b6X*KZtk^!@Km_;7fq0SfLL7!u7I=T{HlX37mSiIw)CHl1 zL&DJD(&h^_LiT9p`4m?70DyrZIklQ~vcLb#u->yta}7Kizz^7LH@OBcOdhuOfAc2z zu37wkSS{!`7NN$ZwBc4}AFVaSMc$26p-l{tGp) z$yc2`=UF@glr@o@%@`bMsBF8z2Elj7-Ffm$u<4$Tod(i_%qG3r{mMqJx9G7}Pti0r*XWY6rqSJ%u=_J~3#GkZp;WaK7Ec2;Kg_B+0h z$IoB=(dFLveZSA^oacFt2$uSzcz%X^VYeE*AsOi0#J@ec{~M=;vxv=< z{;9ITv!m&Qme3r-ch>2C<*bqd!k~yHz-vD6_1Dz6`_>=Do}YzjkKI7PyD=3!1tN5bJlyRXxb&sE;W7~* zl=`_FQCbQZHKc)G!RE}kbFc|Z60?3mO4v*j65()2-%Etk)5we`n^AaaoH=>= z4D#&YF=o$zCdT2{`;z8nvCU4UM#FmA&z5dJJ_blUkfR&%Igi(Y3VqTCs|uTjj2qWt z3X|=Zawd#xl}IdN@T5>gGGv`b$k-|xY}tr?p%&J&_ElLV(gU1CilIy}wVh5(p0$zC z@wM*^D+9nS&@*C4L%#aZxZxLQ_J2~SiwB*b?!zrh)}Zs4)uYace_#R=H)hZfx;B~ zi1p((r*xNnK0p{BH?ZhtbFH_nau_J(sHlwSn%F3QtTQ7i1 z5U36O+?f}`#)3e6JE+)Wo*jwf9-4V)yoD=lCPgd0auL7D$v!ib9~e6%e`w{1Beu0m zh|wSGjM4lSDp(JFiAo87e}7VX(L|MQU^d1zSV0sXNFh>Uu1WKwEv=jQg<60yhzQl= zHM#Bf7f^w50?OQFGL2=zE;m{f0cf1`PN@HZLEQp}A$a1&kySJTCi56t{Zhhx; zAp&KqT_z>g92a#T-d3wx8F5j97W z=H&4GZRd_9GGboqv#0TcmytnROEt~8q+u_0-VsPYsij>EDALEtvE)odfWMJcO2~5M zTMgZ08X}|Ks<)S~lF7AbRlMl2`EX#UneutrPF8c)_0g>z6{qW^u+$6GEeh?&xwH_{H0aOV;kW^4>&J|Noa{X&JP3GUoQ04|M(`!){e4^CS zAFc>lKYb19%Wz54unG0y*$uVXqj2UyEVA7lW*-A30^UOQC+u%fqw{otvUIOrfHWfI3A2?G;o{Uq|3Xc^l;I$CGs-w&n%KSxL12kYBt ze9j`*4>Tn5oP}sz67ag23*GQ)@;~BEJ)F?^P^^mhhQ(4O*hxiQZL-@nW#e5uXB^Od{}h+MSE8_Qi&__3lpB~>bQd*XM!^VIoa`1#6H zrjzNaSFB>7mbKc-Q0duzkRA-DhTw|@ox&lp{}#ogIN|Itk(ZAwQmE2*7>{2|kUTqp z3McT0(^OgpdH=@#>Yfc`UMCm@pY8^q$mjjAJRLvZeAkvc34q(6+MqP!H6w#J*U)r_ z4*7Z!mb_GDqbm>v-_C0w=raH4raC*hd;-(?Iz+=A%q4)a&VY)_rzS>GHF@>X=jsx^ zSXGh0zX@l@X>B`&gXd%Cr^oH*$LHG{>#0_aMx}fvZ6}3k`_Mmqb*HOf`MR>Sv?;z( z)yufDv9a;DNkO}onK-Cz%|g(s{3dzI|EX;mpthLN;^#z~a+c^BaD6!vq zyna4Q-HuX!9T5>>O~}4^J1V=?7a3uu!2VGm759NcTGYY}b@e90$xx)k>n|}S%k%bD zqvgg^hmp>X6HT=M->>f2Dc%N5iLYTgEFs_zYu4o1p5(z($%EqKHkhyD^FLUvj8E$+4lXfi z>eU_aAM=C-vj_bmtd61OI$Kr`zAGUCKpA#T&u0g8}N9H2!e=e1cEA}fxdBOiIb;KK-IqHr9KJ2RHD zzIJasUwqI?u`*y8hHnWDnf=LQb$AR!(SMFsD$e5`Ija|H4T^8W&JY4|If*euXdPJ* zRSRAF7xQ=bC%l=^e-^TwFFQwpZ>A2nGQ!o^8*URfH?7pH8=YPZ687#gPdNO?yDWg) zw0Hb%bXzsyvGPIOeWF;&&F*0LZw9k>;xB(QsJ4g#YOoL7LBxp>jO#)oS z8L7ki2L?Jm`d8`Wt?2PvU~k7EJJXT$?h*XgO+O_F2ooEpTJ^d1%~uz2M$3e0j0yES z$b0$u(S`_FphZ7r78&qSQ$*ug9MoB3r=nqhpAX~%9l9%S3Fbf7|#Aw5MtiatN8xB>QC5fF{<|I6XEWVwW$F2 z9~X1^ZpV`3uz6VHt53f{wraQN4E73 z9+IlW8jaoyIB3cNT#z-UqcwTPppI=vHhzn@kT4(rl>dci&aLlQY#K<` zK3j^X5_j=aJtH9{J*NLGI75H!nXc(=sow~4S`WTbRhe&Z^GzF6`w?R`$Y(h9W&?+? zK7069UkaItqT9Vky2Cv!OOPZC4p0zeYid2`n`@WpG6Y`UphwlsKo)$CDKEpD8*;z1 z*tSR>#ywwPWk7C6%g}8u&;znGUCSFeYBvo8(^ZO&kB<`=?<^b#-OYi!x7N_Y+WIm< z^4e;(@fCA6hw(i+lFffkkt|CAl8lpEZS?DB~4ZtAAx<3^xiDpavY-{h}WsYN(yT1BXuMC_b zf?a{LsU9#(0n0IvG(@w=(1<)0S@>~xvDN`^PX7Z$Mr7sWwEpX%t9NLG8QsErV)xu> z>P$tPF`=8JuRJ1O9r4++22PmgR=$>hK2CU_pYDnnE&5Kv6D#uA*9ut~;>swD@WE6NAMQRMVl~d~5ezgCHPW>G%Z^awp(XwjP@yDu_S zmls&@Y)athA|)nPQK4$v48Q3B>vMaD?+R?>%R)UrNq>J?T`gx2i)WHN99F&=xL1>R z`bk~_Ea^^6;ljZJV4GvMVD9qgvXJTyoeI4&LiE;Q3v!kN+W57ppta8&O!BebJAZ7h z6IMr5p1?K!e=Y!K_FuyaJ{0VSU3+JF?MHnVy-}aZ=@)JFd!B2xqt=3ra<9;Msa6L3 zSL-+34cmm5$~eEk zXD86~T%2}egD3kCq8+^U#N>FT{p?AIip%GhzJ~(UyiY&l7>UX!FbJ!Tjq@PsGw zY9M4J`c8*l>FJdRLH6W?9Hvju+ri(*9{`@fS{7|I*u>ay#fI1U=XcN3= z^RGc%OpGWW8^P$@>^=SCO4p@>$TSkC@wzntYo3gjccX~d;H_TtQIq?FQ`F@NuZzAt zwDq+qEAA^C1^~1evSc4k`EM7W9bg|Z1?~iH1h?~kcH((`g*FFvG64hYV&wOv-7P`- zkR|LWXz5vJbTorY3SZZ5MxJDx0Hc_@-0*vT#9(}E_B~H~504#@$@2>f=hF+XlYNok zZ4rooPZ)jo$Y#8*v=m{Mp;f0qqspaPjLlu47xQ{sR<;86z+VfsZ>unGux6mowQ} zNIx8t(AtA;wYrb*B9graetLUpEH1`yU@iiY2%H))*3j&8FE>pBk#S_SdFCBmWJHA5 z#$+oSKs^=cy3)+BxkYo z^ZON*aRU(pZkM$37IBMI?JQj2QLR%{%mFC5L>@$aOdbE|&q}-T$m?k5ymvCI_p|2< zn@*d?#r4{U-n#{Q%Jz3EmZG3?fziH=(&pH;TP6%l4c0=TZ` z^bQ;mn=|-y7O@U<_-4M(<8C~8sBFJG2~b$=0l^3$%*ZXqqkHJ`4AFls=;>bf* zeEAa<%PlVV_L~fs&J6MfODtO3|CsA(rtq!w-AQ|6vCM=QMA;kkha$pZyeK^~2#G(l z`ZX!3b_HTSK!ylUkv~-96i1-xLrNbfWd~l{m;=xgH&6Ck69pXM4uSgc(8#qL1|$RS z-41`8m%sRlKP50@P)*_N8$a<7|7A-2L`f9^mAXkxar|Gp5;YZ7hjFKCc4Olm7j9!C zuw8owpSDozChu41B|!J$*7#K?Q?1yz7rgy5RMt};Ir*9%KgixD4VcD-HsjywZx8VO zv=oHK*W^x%IaroWi)N`6FD@)Fi~RdpWdY~LQ@!tl9(gT0*b~xgDLb?~r-de#2FV}W zN#C}u{%w-*!ZjWGynO??9Ri+eD+)>>nUyUjh_+|>;t9cRidZ&m7u)YIzg^FmyLXRu4k7!ySz9zk_CcRv7C3c7qztEfG zq)SM^lJ-`FKzu=n`_7A)*T_a#(b~G z=OW~3f1~~U>=@X5y4H+hUc_4+9ib{82<6G24Wvl-enHF~na61vmg$l*Ni;Z)|8N|y zQ&WFfem+cXV_ifb8#G;)r7M$YN0&QSYp7Zzi2cswe~=V>5LpqlS0NGnt()2b?$)57 z$Ldy%GRe>8pAmihYy5`PI2x2EJ)w3q{npRT-FB9~*?6y+>lg@#i{BHN5z1=Ypi3>G z^}Cysn~`z&&wcQJl<#J*{;`VjCih(m7;MHG{(XgnFU;po>1*VIIiJEQg;cQ~6CJ4S zsFkM2We>CZ7r@J8YBNH_G=5l47+c7K^BhrYH)OdbA5@Nlw+KNe+E zS91t-<@J(Ly4FI8;+ddb9uXI=v%lE9;ERCZ-QcqyK=2CM{ZbY%6{llw>2&oiPO~rH-;{#{hE5BaC6( zK0j7JJ22kx8wDriR;%q)zVZgI?fQZTsH(1;jZqdUgcw^s*jtw`*)Hw!%bL z*MbX3NM4W)MRc>p#m5J7ObF3C^1(auFbOs6u)c+U_Rkdrkxb$XCEwir0}C+~?8U5H zZHFy7h7VKl?B-;Ht2SkCF4LRRFFFh_E6U5Hb1Mr&&K{y7+U9akn{H?#xzklt)g}WM zjW4Dv(g!kJ^-o&#_?vWBZD+EdO9T@>Bg`aFSdR$Fv=hivL8^-IHjeTE05%t!r}K^v_jqB zp>_d+fRbn)O7`ii_R}ep1^Kp<3=%`0s|X7#E$?a@bNi6n+*N0 zuNtU&v#33l!EK;~Q~$lq^Tb(nJ9aV8-|3?96=_vdie`5;eyF=#z4q^8>e6vga4;9~ zseNse*V?ZSAEdBC9j6Cb@Wt$}pYth^zvfiXL`apE;$>4v!|^S0_wLcRm7rtjF znlJ9zk+L6fo~X4@p*Oh;IF-or`G-mLleM@BVI8qK41ocQzL>;bM*r2+M{UBwenQWA zt}AxFvNbc4>JjL)_3-#kbOLlm$3>?n%{j_gA>gfJII>w4)jqT$&=X5<9-t!~0PGCB zcdxb3yd-!N@Tlgsx^YJT1GA5JAbaX8gqUS4}^&i>=U&Fl39=m>k2ezl8svJq@^3pi(`LfCpT ze=Mh7Cnr1UbRR4vJQOkZ`39stCZFlh3k+rG7%QZWnDNb>6SWR2;G29f-i%a?D2Y7p2ffkoglxBThc!42JIoIy?XCI19XR zMzTn_M}_yHhh&8SJ-?L=CX!FRn(^`E@)JQAn!ETYwY9QRgO`df?uaCKd-T<-$e@e8 z%SfrNySqCwHKX4eP5I1RmopqN&zLJ5)$i8PF4D`1#iCDTGosizS|>` zCPpfsMk*nKNRG~kc&)eG{~Vq1%udeVP}kQq&Noau4xh+#heUbDailOV&aI!tsVxuG z!_pCGTZO0NjF;4YWO<=NFZx zXeE7&9n#^J<&q66EB$5v{n@?3ktY!}x}IJ7Z*;hco)PM@%SnIYkC&EIvJniWz8+?S zz2oA0SF?{U8w%6}VaSM^YX zBe!m3V);d4d|YL9%E0j2SXUzscac{!$$WSz-6mJILjMc$0n|`0PF_R@-ivMi9j@-u z();BlNJY=8;qmci^KNF_lU)DxJF%{9?ZH)sarE-FcbT+Nu(i71qS|OQ3E3xNQ-=da z*JZg#aIV+}#0rQKMYE%kQZFZZh89EvHZ_oVK;arUt~jl&2wdx?HbK!b)K*hjyk%zz zC+nfqwMqZv)yfd@pVrXnRQm?(^E>{Iu%-cjbcVIJ>r<~xxM{MJHi4S=B~6V9oafG{ zRoJrbJ=pl113~AjHJmXPopf=R&A=*9VM`(T&r%XA!s3C5*ZRS?NQs@SE2K=n!S3Z^ zwgh`FSUZZvTWrQdwSS-hv$V&3%zff9Y2KEmmx5r0KIV`cxHlFjHwTpGBe1o`-+zI?2}Rx}X3blS z-U(!qP0Cff666ByM0j|3KUC!X){Vf~&%LANkBQjC-+XMYR&n8ax{LEJ8>ZpWm0h5D zsj0+D?)|iYt}*;Eiu3_v1j0gglwkQi=KicJ?C@L9es4?eK*YeR1yeIX{g2ysf5WTR zCxRi4RCIF=TiwRo_xp5p8#M=ik0%Dw0nRV76~Q~#Dz@;MFB*fjNAsl*AkeuhUu51y z?5&m?14=cLb+h>-;cSs37wpjHdQ|-$Vq#tDGm8=1R;Role3uR@4R4j~w4EM1wfvJq zuob_=!g>mU>?DM^>^DVR?0&P+9P2IH12+R^YL54q;9p|rvp3JA5g*d2I6n8?$(F`N z)M4R`8a8>Y9{j{56?XxfcAt0)OTiplKh-(KFak2EOOgk_pQ}%LU{xWtkz*1c{s}Sdi_^ulcVR5{EIX%)%C?Wu}ve4`f}?4LAcG9?ppx4HH+_{RLw! zsI+ZQ#_C!d8XBCZ9A169$dZbWV~|pmz8$AU8=fCE%N&Dbd0ZCGzt`mg<2-QeAe>{$ z2M`1`b#-9dnWq{BD~B1 zU$_6X&7f-~eLa3|HSkZq*m}cU36n&8<&ahezl$bsNr6oKb8bqb(RV3*|C1g=Q@oO#=QWci3;{cpFv zSEQ1HEq>SD|4e3EURw*7slUdf2fDkbi9QYv4zTXGxA(K1H>JD|(N@p8;Q%-t%R3!2 zIh!{rf86Q^t`0{={DM6wcSA?*hoQO4Uj2A!u~op6gap0aj{L4&zt+bU@|u**SG6eF z8X>aU(Ijwp$=4-|3CMHNagqvB|EQ0s4LL7DsS31OkFnr@-?8 zYr&Ft0G=($i^7Y?=T>jnUa;VhwNwBM{y}U3nk1nPR>qB>JM?W7BZTP zg_4X9IZICT+SHzgD(T?ho4|P8hkN7{-<|51ncw@ZHf$Wj1kX=gN$LoJ(|#26GBCwJ zOhl^tK%3=DQXU;M6|84DXRIbZg<4g)eYlaFX37w0GJj@n4jmKID6uixp-z1NJB2#q zU2*#*zp7#zTbKFFT2|-Nk+KF#|GhP)ymZ9Vmt*#5u6vRnW7i~o4oVor5=$4{8ezN% zbs+vZkv4FoRphZka7oQY$m^E>r6_4~Dx;I|5;FMXf0b)H3tv8Z zmYJ^{TRLL@Y6No^;)DDjUm7-9dd;SYL;i!0nvhq1e?YNN3qcUe-ZNZH%r^_12jFjd z++7pBI(^YQ&NE|TReGF76*S){Npa!jo1o?{m@5Fk&Nam;FN~)nWm4i#d8JSe7Mz!# z30WFkmhN;l1gO@=?dTcU$A9P|Z7P3CNgvTR?!XdTfRfd;OfOx;WEAwH$_7RPr`mU! zoX@_R1eUkA|G7Mq^v_O}BZUj4JYd1qh$OhKWriX8h}voKMIA}Ab(@20$5pCqK!(;k zLIdT#K+vq+kI0AbGBYz-Vmf`_+8H9{ja(-9p}o6Ej2sMJC&HU)-e_yqScCpAXv-6m1CqrDRd)eE`uXfP9pM7uLiO3xA`2jIFdlK<+lf9v=rGfhMK2 zU@QBjj_sNnu%}}!(>ovCZ#{pWcVY=vsLRVU*^y=lMmIB5*mri~2SYktuR9>7(QzCw z=qp!YMRp5#QDDu^5`!!(Y->9l8)G9*O3AbWlN<8<;vKJ7fyZn0d60$zfbMMe29Qs- z`fk?quE=N&ESHPML;NGSITd<9&?8J(Cg;V$ortVVM*PqzFEZ((BQ z7J0tBkVQrvQ_d0evh$=SCDRU#xz7-iK|6X1-uLhIo;>#YT$pe&Jp&aE>ZEA=6}(lh zfSX3Cc9})d;pw^ATlAxjVx$rW(-*OIH&xWpv2z{jVVBUa4X73g*j1{&UV1N^BJuw8 z*!kz)(f{VBJC8udrf$MzV6W?eoz4#mUuRqm>bG`xaEN90{j-_xAbk9Zl<}^Isbs48 zR4(=H2l5EBx19tiS+WEcjKHvdp_UXP2hhulKMDwSjnl;4beedUAeehcEz>nDZHK&%bhIdbkDy>l4ivG)QRCoPRgC zy1BUl<)s6@(eD%WQY+sX*e@j_{>rSR8yBB?`3i)EkQHVYAR(wL*0=LH zo*~(VkPVz)>)L{{>hi*`?h9;wKjR<>YR@=WI91-eS8eotd&hQ&psUzOomE7I=2_>+j;}S2Y zk3M6sGUI9iT{Q{LPwSdSx9*q;5SeWNmjJL?`rq|aN;dZHR(Nu(rB}C>`4Ny;q={;H zXB0d&G&H0tGO@GSMY=K7o~QK-iv8{#^Q6e2gJD4eTOqw zw@GDt+}{5e7LvvgyK<(pn5Qg49&~6hl_uUM?(4BcT_LWH4hkN7@ivA0<``tjY-)M% z^FDfOYWu{#wAAib6{~#v)(g6#>m2ot_rzZGe;piLbZ>;fMmHFs52f>gXkUE?qk**p zE8TL#+Uk+NY8ZSmZ~+GHg-LM5T;18xv%K?d$@6WG9xD3A@^LfoaApi56mvhOfJG%= zo@D)+y7<5Eduyb1RAnFe@fJajxImyp&i2|Wz4q_yJCoLu3Ht!(Ss#fB3f{fj1QwQH zW|?B;ujcROwgp>_`Rw+M*7HKccdmoCJZlmM>ofb?vesBXV`&KzsghOQLv|_@DhNLa z6#2Ew?Ol1sAZ7CY>-T)R4kFL4tqSi?_hPg9ucO~+a9R#8Ti4JW<|3s(So*%ARE$Pm zM!SlrlX?juKL8)F$MvN1Su@bXO-xLjoi`S02DDHNOFVXWpKCQG@!(&_9JE2|<@wSp z$pC;M9=)ToCF3d-PXY;_-yFU(8wSCZQHlflPHQtUu@6Ul3_5r-Y%z^0L&+vQ9d7AI zmz*GtjfxOoGu(r~k)hRn)@IO#b5X(MEf)|JTD0 zfmcpBUn6ev=_SdO+PR{m3k3VZKBoe?6i*5W(8P4@J9?PRl4Cos?#~m!UWWl_OcAFU zssO7>(n`P2ldAZAI>(`Y+;rxpogom;>@p$WB&UQMec$e_z%`$1OIBVlAUNI>p^8Yt zHf36A{C;+BB14YJ#D~vxXR|r4s~;R*~(EymT*&$4qqBzykD@|QJZXu3R10wlil6i z2^ce5DWof7yEm@$z43=Yi& zpM?6Ml&~q@ceqNEi>%DzJR}Z1!$bvvY|n0H5vUn%B5%HUurd(L+kh z{Za^Hi?=9c85hpHZSpPAY)O;SE@JKWBOps1Y&r+NuBh06ozVT8gZ=#g%XMt4-LTeZQ9DSIR*AC>ibL@D9O0p&N z#qr~RS5}@rD$jDo>7?T9*VPSooq}N1vrsKm1nh0(6Bs>>M}_(mhktr6+E^nCVe+E{ z_9x8$Lf_cO5F7W!^+?t*7jYS;IrT&j$(&#Jw)8oM3z#U z8bm(l)zodnO45(6#F?4?z*Ym8MM{gdBxOT1aqo4hJw{{6H%bdXn~bfXDadqi624@U z^tH2yTiu@-lA1i z6ACZX?w2tIbH`5%C(3in86>Cq`;01?A6*+@w=MU|tZ3~pgT~sn+x&x_zvG~+Rw+ep;1tm|*6VhIleUKwh8Obl3uBcetxfJk>UnKXYL$e-WX6fj~dwYkISC3rG_=gDXu2+kdBpx3szE&cc^8 zPHu_4KAYWcJ&y^q8B#JGGMR~=szXX+-!l_Xc4Nnfc|bP1Z#vg zK*QgEA7|- zxBVL|(fLbyJ{|nlq`h3TjG7Q%N#oU6%TBU#(8Y~p&VHlEZb@pz9K9T~ zqG!7%&0Ya+v$yij%G%Gr?COa80DE_nzgX3|F&nSjhW)3&s>m1&SV%ZONC0~c4+{{c z0ekTA)g$slr8kz1@^X>8r=(8?SEuD_vIEj|=_sP|yl)CfNL71Rt*~75V($)3ba2(VH z2X6d?k~iEvf>*;hV}MOI4Oa(s%(ZUF5zo-$;X*BDK zNJ=78#fsld&&s+e`MLM}jYglQ@k>gYl#Sdc*ghN#4w}oL6M;QA(#^qPHG9-CdNy4n z6~Wgy6mY)LDTJH(#9T&8V$3tIPY389AfLfAE+;34R03oI zPMdeXyuN!i6g|)`dbM23Tc9zxjkm}d{hTc$JNsCtRy0t%I1f5kuVe{FWZi|7Q9Ox~2maAeX7S{nHQ zlh_fC;9#F_>WEvLW zEEJp>(>WTNJat8dOKDV$FrJ<58C5Oa;Ug#KAzY+)4J}MTj7QKAG5Rqkr;q88N6hv1 zP=-V43JMCE6u$9r8~jT(Iqx*;e)~_?h!fN4mzR~Rsp|=>lP^XFGGx}VS}~leVVAfF zZ^ep&qn1wd<9b0Fh{r?R;Nx4^KD;#``pVGxpv~F-u8@H#`IREvFy^7O1=^QWgr{U( z{1-qn#2=6FLoR22aj)k@$2O-$Y0-^5WBD*vY2Yor%z608VW~+%?4Au+YrkZ$HgB$3 zPgh_OY&3!@-|T2Bsz=QeC&xxb1hRw!;OlSKz+w%k!|J3BYW!?lF&|CjG(~mT=R|t3>>^ z_4wTpR(Io{iUQ%^V$QvN6(?pzJ60|Akz)?a zjU+7`AJKXFrgER+r%4=&MJ7jSdDbmU@2A>-$IZW=eAtfgGufNlDh^JTWZEUiW9+*X z<$USC%p$uRgD(<$i|lfhAv=H-FuddO_OvQN?pGNecVk+fR0NLJj<#rP+gep!aJDBv zl0X{A$VKUvX)U99|61)2{of#LK!L%W+5fQWS_8y?aR(RFL#SMu8I!g`KxP#md@7er zneM)Pj86V2v}Rvh`pCL@0t_`HhL_;K9fIPt$#2(wLMWLtHzSi+dV|TiZ9X#LoYUlQ z^X`UoK-Z7a_W5@Y<;n+z7R1&|XJ+WyPJ$&*#|C9`D-7yXFr&6#FjsOD8a@@>itGNB zJJEc8cK*1cX!Xt7$qds;Lc+ zVCzS81;v<^-%$08WN5cK<Diw5ez=631WSd%%4%@2uKHcb>vO;!-GFI)dE-yUfbkTEiQVP=c!Nk+tUc_1xfxxbVz=8Cy2A<^IK)^@Ilw+v~j5SA|1k@R9d~MBZRWrvLocRKCfTsP2^tS zl)Ld}MKuX_XxA%C=!vH^;#KLiK%s-n{ARH4lrx*4fX=HQZ+#tasz|d$J1yVEcCn=r zs4rG`8%d~`!>ZI^+Aq@%BNdj4QxKy6Xgy=+uke##vVWZr`vu@0fn*CE=kwR6g>#&@Uj=8ZQCf;;u_peOng1p&z8!7Mp>--<~oj-mKJH%Az@jaUPROV zVGDcy+CcQ?XR3Gnv5irX{P5~qRHr56PZVjblpfq2>t;xKgF`YoQs6$oJ{!7$yY)x& z?HfY~(HR{0RYwvoCdCo ze;T*SdEBc;_sW_reJ_gDnv>iWlk~#e48?&i;Qm7C=1O1BAW8TDkxbB4IpzQ!6tbGB zVhUv61xiEhOP+s0$!f&94Xo_m#fj9|E}ce>K0*POcLgOAky<+VO2c5} z!fpRfk0|UCxyJZfT~Th37t#HzGP`76jx{zIBiibStntzz%zH zXZ4rU8|6PqbuphjuBAm5Z?~WR(S>(gM7<5Mfv)2`TTtqE|I&z*!tXN-b{G3R|%SJB9grV^Pk_a4G z%~g+I`=_7wzmea@AX#DwlEhDUuuNyuSAdf%a!26aty|bBks+u0nUv)L>zg@QTBDwc zT##s}RFX(QJj+cOZ9$;@LuZY%Og6b8?m7$VjdH0S^a@%f4wEguRlimt6Yx0EEH?bU z)^*e^HpTsCrC^#i0$Lm}@U+h?D!h$;&PGU}+r^LhD9V!b2S?NXO(u1(HpTNbFMp(k zs46rbqZR+cvGG zi^hO9BR&vPdrxdBJwTwJ<2^C-E+D*a&fnvT(p}_15cH(0_|Rjb`j`>?o&2LD!})BA zNVL8tKl^Xb{#=%y>gD=X=67l@;r`4}xt`SzU3@m%&3ivg{#$6>2@Y-}&QEiXS=VUW zTD;>PT+p>$RuFzxSk=Zngxga~@rK}=NohXc51zy=aNhIY-%n+ef54*$T=-N!|0%DL z7l#gKE9WP>z&3btpk{r|SxPCYNX~{tW3(cWGc6Vw87s?Uu&G$+&l2c)Jl$*N z0+Hr%2@I!@z#0hW&IR&}siJdk`3Hoie(GvacK-pkvg^g>0;p`7*w!gKD!^ZLHgKdrrTIuLXivB|2D7{eCY^m z65ug$d|xI%-Dw;`ybAtL>iEgfz9c!2XR{k(1#kmi}s zTpCK#imAdd-ja?Yds|vs{XHfEH`+ZuQAg+67e86ekjq~!1tE30=1N=JrO*%th{3TM zFJF0Y=-5Xda-Y8^)oO5X@Mf=U%CKHpA%BmGW1V=h-I0M!j+MT3`bSq}ud4&i0zqH} zXrGDXl#qXvtE8h|r?Z6JF0zPazn8zhuA><>Uh-X8cGYE;w&{@xybDD`H#CJULSuH0?*s1q6HiAv&ovNUEo-IQc9jg+n^y9hp{ zVuOy(Dt^$bu}|7K(qfzo9fyiop~~stYo<5kD&GDGw!_lmgf;!=%8$oRR>18ZFqoB{ zo|^@Hi3`&P8mtgqTtoq9+sc0i-)?NE(cF;Zcuyc2d&0c=O5cWC)#vpxubMRebADo| zKu8uZW9B`wLWbs>IG+4hLhnj*=BU96-Y)ap9V^sOVl?1v+TBY~RT1pr>_!kpvvuN_ zq1n@tKf1oLqy3b4r&ke#F>!8<;td6Zj`gSyGG>p*$rLUBX8wupNns|Wu^?n^+lWwv zMm*^=ShxVkj*m_KHDx-7VBY5&dQV~sz@Wpt?aHug6NN{|q>9Q9Qwa@C%C9KPNsr>= zCSodS&V0qY79w;cY%&mPUaTEk6&{YStIK7UB6u*3L82%yYzKK1Vf?8bYj~lfnva$; zWyH6{Z&_%4{9WX1^<6X;^$JCl{^4@uEljlII53?&O6wezxd6N7OItx$^8YQ>;gm9s z#(=u&)fkWuFruVS?`!IJvSJda#mU=Jl1*hbDS2g={H2gwrPXe>mBs1xHO9Xgb2mF%S*8BMJa zlIXoNeDUSa3~Pi$PKwq;T}3vumRoLz9v5Br*M-VUT&&ns>&74}hIibHL7rdk znk>SM#yXiTpNZdCefG5uH<>i5&~Cg4rL7doE6Z_3ty7Fn&g^cEuui{Y?abl#m0dPP zp&~aj_Yc>UgyKrLpUsIzhv%1RxiLm)=@K5UHjdYsv#F@=$0A<3J#5AsM|iMIM=dXC z{>QxNiaIKfvWU}6d)eWBzdlSRj9~co<<2Vu_?p*b_$`P9m0zd8!8Gz^WY^DFQ|P6d zT2C|{8Fy0DT;g_msXa0x&WngWiJ3cr0>l3J3-x_zC2lV5E>UU4i%^OC%xcy79_T*SlSScp=^IyeM;laUlAp!N&!j%udZtJ$;%OYE=pxCcBy1m z#@-lMoZ%;Al=o;(H!~))YzFA+`V-2A@q4`gmYn3w!E9Qx?PFg1*o(4du;Lo_b#gJyjy<}MMQqSW(Y~& zDQ^=s@5w{{0GtkH_Q=NHR&8IFtR6(CIwd~$i;?_~Fa}%Yd-LJlWNg^qw5yl$vL#QP z=l|BNHa~l)JF>1%^?G-2e>bFd>stF!>S^;n9Mle7U7rZ2neY{8j9>d{|-E`2+@fXJ%%=3I>8Dc6WB(XYyGPqYL}i zyuLiU9}#Fa0*ou~HKu@|q6q#kRN7q4*xv#| zxLbwSkS=_x$V#h&(kJ{^)8<4m%t)!7y&WG_2z1}sP5m-oU1V2h#~wz6_E6ovSHU2= zEd38eUaK1$SMYV@38hM`3|`_#&7rRQ{}+MAP*G7`zH)_>K|-T!Wb06zxc!6DoiSW; zR$l&|&^d6jP#t|RbzwCM>z79R5&K@d3^_mFEaC=}O2Vhn8Uu~xPxx<1-oB^FNtwFy zkTZsbkNovZ&KPs1LNEqKj_!tU-0FE#O2~GxFgLIIB*f4VD6K%h9e+sQgXf80LF0YM z8F^=C$d@Jtf1^~lY~b$7+ow0%LPUFG%|qw49D0U{^H=>w$Lqj-d1fBMKJM>WCaZdE zyO}cKR%>deG&VMx3ou2XWAlZ(DuqNvC2zsrMOSsD=LtG2s-WW-LVWxh?twfJyEnY- z(O3-(;GsA5CQf-*7>R>!T6}e-FSS!p2n*R+YY_@V%Axkkpn2!|=DXPHx}9OOB}yi3 zscqN0Ez^niBY|D-jJO(J!gG|5sT^k^cy;*YLbR-PagnDkD@H^5_~^LL-QAV`dEq7w zmrSI~12CV`Ez^5v(p)a){RM?3E72=EG@qGQdc1jn-;7~Xgkaxz?#?%TBsfJQLL`Ds zf`<+@KR_=2sLsKzd9Aw}pC^k0g9u{DVbuFEeER#t!qLfG&wr$8xER-kb6tZJw+JZZ<@-;ptJu+GYPAPv;#^^&hwYV;@BwTlP3+Co6js zg~;A}mc3_ILRMBr$j%NSWMq$wlCLCLWlKh6uiwjkKki?D=F#AMKJRh8uIqWlsXoAD z^2O{#n1D{GlwQawuf& zDv_yMFLiiRk8fC$`eycWSaaM^e8sJ0jY+MA3j!Q{qX^OctbHh}a8Fr`XpGg^JNo{l zXg=*Sm?%;AL7p`LzOkn`xuZLUK4Oa3A5*pFr`h7QO_f3gv~?U;3TJo^b!_;Z5VG0e za?b3yfQgM8hGa*bB5hC;6}UjF5B9sM*?{rU!h7B`SDuO@!+^0_)C2^W>TL#SYbLF^!|CjY$pBWxV`@B@9?S>C11pqYt_K@ z#4Ld^r>CbU?Uu2ZX>LxA*&DsNppAN0|6Sv@^XJube%*7r>z7u~GhUcqu8}L*bEm4* z&9dO$h}7jtha8a!cdBSYH{Y;LZ5`M}JUwYeeE!HFnZsDQ(r0s4+zc`t@p5ZTtqLY!X2|Dr79Ut@QbEa?I{_p_l$w4{a1j7+lK=Yxv=dmR+Uxy-cWJfv{KL;Sdi!L)>C$@-m%DOZt> z+dXZYDdD(DBr~c=tE-hQLZ+J!*F;2A6#4R23@bNWT1 zcY)*_Lw=>ho;ngM56>?-#aZqY^RDqJr7dhfvt@ zF;#5kl_x{c&nIjRw_u5=on%6Gee^Y@ipK3!LEEg($HI**bXT=V>(#C*dj;o}g!v+q zs%!1c(LK0e!d7K3EdLGRqpJ7wwetC2Obk{{`QK`o8SLkv(EQ1y)?shoYS~%m-x8Hx ze^cjlbH?LUV4H#C3Gzj{QKXN2!c$av;7~2BX)FH9$sn0CxCQg%!k`t={KL7iz5T0G zV;Ixw+D%J&$&pWXbrWWfoz3S$!xEwD)V8erx4)TiRw`*X^Q|Hq)u9!&q;1i73KfJR zoLJ#(I5xH*oOO2RPTpNhK~NiXQEMK&qv>`8T)e1cl-NRqS40fx;s{zuul2d&N6dv@y8+#8YMDE0W7K zgO>ms`zhgKOx7pyDp%^r;v~`dj4Ce@@#)*IySMMFjqMzrUb^-tZPQJIkCtTo+#Y{u zdx?%#&11QT__!dt%))M@$Y@;b zI`Fk6u)e_$T3}>XJl=50|kHFBFsP2~peC~RFY zqb#qFtXglQ!jqGY>Y`pS(NYD7f3g87bGSyCJknC96KPyL@ZziZ|RhGGCUpdy?l6|u8n*5p-e z!gICLv+313KuU@J?TtK8cjux=^}&hhP=oHv#--QLH%Dgf-b=xE^vy~5{+;fW|2SjD z*(mrAO`p_DOy|ZFgl>VO1WXsjWtTQMFchQzsp>Xw5UqNvJSmm8n6`7XSp;TlR*}($ zkFoAJ+;+30mY%mSJ+phI5L3K(#a|-ZC>di25#t%WuF`@>FnAgeTai~nmoA9eiQhrG z(>(w0=NDZ73i{ai`S<|Lt2--{KTXT4pNXISt%Of5LKR!4A@%=z0eCSOrdP7*85%a3 z#Vbu4KC$09AF%XM%ZG8tI8RkEM!KgAE?wI7oxi`WT6%A7y?{HKlKtcbOlBPqkd zUMlx^1ZRxb5V?{^(qS9a5)&5iq2Wc2k$=6Y@pi45M}eh?lQI_YG;gaqR|Qq!Jaspm z^sZ9L=hv`PVzq?wM^f`ashj8{A>$@hJ@ntfPKv0jcR8&c771J`D)|SszD>;@fAcj9 z@~(L~S9fv*zKZ>WGz)3P9>Uj71L4nd)KOY|zX)OY2F%frzXKP$U+!G@-e{|a>4{a1 z-{Qw4h>*h1y_D|3RZcS+hwqhtQ)l>=PwxKYEz{@c z6%qR80cU~N$3KyU;O%Vp1h%3~vv}TKf8s;#^@pfCbb;9Y+J0vIg6yE9eg-JmV{2a0 zxxD0Hj{*Lt6$&a`KkH^afklPnp_X4;QaV9 zygrb-dCz^A zJF93v{l|E|xn+LQ+b-ty(}L&4rxlNw0{AB94xZ%Wy(**;FF+@;Aj9-3@K}@h=Ds`B z!@WC<3QyRdemPqT2Aji|pW(E3CcJfZ6Bwk#B_vt`mbM{8Y1b>5wI?3K z(nGz{I{7HP?K)#=_5;|Ns&tHM9LA4Ua&t$Pe)(Wqzg-Gz+}!1OHx{L-n}!~MOfUyW zKVZRf;E2?E5V9(A^LAZgLIi(=0%IIuAGNYo$*qY!9qkYEF*nc0rshVqS1se7upnGc zs>Ym>(G~?)$x`_=i3L{Q=SGC9cNh(m0i~(k-@8|LWH- zUB-*U{>ys26c?uO4sSx{MSq5u?>ZCFs*UnV1fM_b1q4}Go zxizFk-unK%lF;k&m?#p-kT~~>Z_BSPS2S?-Dubp5CW5?xM87ATG{RcCx>)}iq~RUh zmCii~x`1TNRw-; z%<%05JHe95v+DL_6|gDc%t2J|KJvadZp?~*&u)ggqUNxjz^6~2%n!S$z;wmX?|xf* z>?#$HQ^y8PC9e#h)puKPS?{ z?t>F8SZ-=9Ib*f%mw7i}%5tbAVQiSq;@dFSr@u3Wq*H7)H6 zw7r`f3WfbQTK|)4TEKrjd@>N-xH0wKeE~pDmYU=cA7u(}t`dH|K>KZyPM!a8#K(z~ z0l)d}Ur%8xuB@yqDvI!UT#_N%W1bGX>F}9{$%u!`hrMsWxH;;W5CpuCNcb(gm432Y zEV!?HK6jFbF)1aJ6XDw$E~irU+itt{+hP#b%~ccJ6hhRkKZRm#;57sU{+H{o6!poMyNj>pWqY1~3wv zTOcx|r>mO<0gEK0Z-Zl~5danvNbNpK5MPU^T89=u-|15?=zdk2j_7nR-I_RI!$0ir zmwANDFSgeQ&>8p}TP-@nAmw)H{wJ2;JdbvxK=A1FF|NNGaA_DC{WI!}^F2_jX|HeZ zdq$w1dee7%-|KNTAtG|QW!^Gl?HB3TlDmtaturx0r`srbs~T#N(Rz#{Y+SGjj3&AjaP(?XEVq7&0xWR;4UQ`0KwVD3w?a%Lcrd$xh@& zP+UZ0FmC$6K~TE}r&2P&v%q%&V0$*x2{vVX1e4|@1j<(YA#gl0+VyK2E?->zq@iQc zd#}pag2}c|m-klM{cK?gny*3IQd>j&&jvw) zgR1e7_Tmr=EEBo{9)!%IumLlF)>rWFX_!g=|x$;3g>nBa?nMQ{THk-V4X z>Ozf4jm2ad!xcab{W;$X+JXq?-c1T7Wpx*ShhJgmv$L~`v6PhtHS!Zs*ly09dM-t;z5}5Lk+4sFna4WRHt6mWjYG|uV zV3ZL%ReF?JP`-1?{&t;h1p|>Iu$HgOoW8w>?D~EXBuDN~0GnzJ5dv}b8Ci4>2#hG% zgzs4CctY3Mob_wJ)VPzP$i^ia|ib#P!Jq* z6P+F%EX*gDScx1uzMgR?WVy{$a{IuXD%Z=?OX8@aUO;m zPaX*d08_%p$49(v_n&Jn7UErfyN*n+7&F5#wll=Vrkn@$0^PYa0^I0GvpEs=lgUn@0*p{5- z9oXZ*(B9|!VVx!y8xdONP^OTK9m(IYk@>pqS`7BXBx2%jWQ05_4F2O@etsSvwM9j? zqd$MH{w-{9ZcZDpmq)P52KEc`Stuz$3FU-KaDVIOrit{yR7pdmJhN_PV_O}EVJk7E zVp2Or7!!3Q0I|aGuI8Max!zo|!qAxUwYz#)VRCs-a#*9owocmau_-6oPP)@!b;oah zKEjEGUGPUD&7chjNIxMV?JNEkDRhYsOhh*;Y#-gkbh2`kHOg)G@Tgf4L2d)wBNLBV1qkE{WM92Ef zH{~e#k(xukb>ijLl6SF0@;$ykZ!^MDcp*?@>@1Hg-VeNX@{_|ozbY+rs zQu6PF*c5fk*9B+hmG3uWYTbTyt=0ThLJLSqox$J#JRyOX!GwkD3gdseYTbN96;?`E z6xNtQz&#@6<$9{@qgkqSR3x)hRaM)~WBX|lvvHJL0UlvKF>2F@RaYxcV{bxhO5Tm;3tYe8c% z5!%WyB{7s4CtUL`XGDj))Oi!{XyNNhAhKJq$!4mCXlLZ(u;-j}zx%glUbi7Bu&ZUM{S;zWC}_mnUqG>-s* zcp_`@Xv?wK-XT*!RMZb*rrus&oH4a~e>oV=8$-Hd{+pf@6HBVWtOM&b7$~g3bFwvL zprc#F`7?Ih`nTZCxwp^jrw_@KZIE4KBpK)5rw5XroX)pg({hJq-x3-J{k8(KWAt(E>#%iQ@&*wFGQ>5?igFKrVXp=p$!3R#BT0 zvpfr_q9#$qe}K<|j|=e5x$SP}UFG(V%3Y|7-za6$(BHVBO%8?h0;JJBfX|?fR+!z*nR?p!6X+V2(j($!cnehU$DBdiSz z4GrwJie)-b+ITfgHYgW$eR!2zFx>Jeuo4VX&U=Y9=#rSYhveer02pmM1 z1{$axm-uNAI2s!3aS%jfnS)D*F{;2WV^ToM$|827wnXDCjfIBd?iQw+z{y{2g0pC# z_}{De`0C()6>62A0HH+S`{&2e2iFkVE8pKaF(HX1WpdwR5fR|ySB0z)7jUMlESaC} zh-A}$DARdipBZTh1+FSZ_y~D~1_I@)XB#Lnh}fN)TIpLDaGgHz?ypbdG4mK-_C5Va zAcKn%z{LtDl1Hr9qiii^3|*T}2XDgVzn`OIe{+g4S|PBD>CH2!`Qx%cC{eRO$l-TD z+gPX_Utd=eFhK!&p0+-`WzHv-3b&W@Z)bCwILC|M4`FIxI&mHEPMUSKVcqg&okcCh z{a9P=WV9iL!j07Dnf95^&d#;$tl@U^MB@24J*ZHfWOO&5jUfZ*WMaXAa5M`FlFAY> z-{qYcu=;a-MwXji-Aj zBuwWY&|FBu`1PCI9pp5T;HZ;mc^ql>czid=bV8z~ne_4g;;!vPQ2|WDJfx;}0|#HO zCt4`A{HYzDKPrmj9-4EdCuCNQpN#IXJ6UJhblHh%GpZ5GLu~nFRcsP%DCUNjb%I#2tC8sO-BkDDZ zsYk{f36?xfCI5%l`3lH25P1kZ!{0d*AK-8`vJ2BfW8Xq*m&XZL*FB;b;6>m-WOii=C$H)-}Ht&sBywkWABK&Ls1e91c*e1B^|vD+HH>}Z6fQp zok&~nj5~fmhEMJ#u7`5!6O7+rB+NDOgaZrN-FUznPoJ`15<-D12!d)u*If!kJx zXi%MXK9wt+NCUytgPSOVa6NCtL$psGpPR3uJ9}2Y%bYEwGgB6h+FXP^fkGQ|uK~8R ztN7QhGg_iXBC7>UuW{g*+wsKV#lKqYHoZ3d6VoQXV~=0Lf4ePUCM4wP*qnij;C>@r z%s{T}okzIC+x)+Ynac?Rt{_-BEdHZwBDsb;SVU@tKyf4Io5vk_nh)pm&+beH3d2td zK|N;MNsyJ7F%j6ApE{+d#7USap~V&f;#O18!b|b zZod7^nUjiV!OG5$2g-FpsmM^hdmRtxQ3`fi*TaARVe3;+{^d$c$%oTX;vL3ym)fEa zVbPZGdmbt)Ec^WE0~)BV_A8Lkrj}b9VJp0_E(E@1`|(CPFRh6YX9|@4`NMhLw8a-t zoJ5SGJA03}TDH5cUhGu0$aj9}3_58)+j9karUhnnQb>gETKk5xD=jtk;WC8s*3Hia z#-~rS?lF+?wE=w%$voBQjAKBaxINqM=L(Iz>xVD^zjRvejz~dw%N!7Gc}<&P++N#E zwYpwHokH?``z&jzuM;70$HT5VeNwd3GRwYFUA&a~=W!Kv8-vH4{3tffR5N`lc_eC& z%eJ-ZS)SawZBM!lp+E;}m~uz9qX2C=BCIy%Ytkbto<_8WH6|F_Tj2Z>=j!prUcb!b zTg&cA$BCeWskx)kgy4Sweh0H%{AN{eELF8hQ!>tlD7#*o?bP1$Od(-$IporE)yzzG z@rEB!${>X%sh6&Gq9QA^Y3ltVY|02QlfG?V+&hY%l@%1Tu2b82n#E#HyYeA249{stBovgAu^@|}Ed(#-=V54hxC;&4e0<}n#nvBt2Fzl~Cm>*Cf6oNJW4Ng6AU zygk;m_b}H{Y<490?~oWhi1qEYmG$sOO{Dv7{9r@M`&f}8m_7))!ykZD2jb=rbc;K@|umfzYFM#;mot&j^>>B>{!Lx*@D zR6$G-!S6kz#Ns~osc{yZ#MAu}`WO$T-S0h@97J>)6Oq>Mp#r!p+>7o7aBo5PEfL2t-YsZH3aj(TUKmi1%8q7aC-mC{;;Kq^E`-cPbz>_rlGi+ruyl-GHPBUvFmT~3aic3ZEk zZrvFygy_ja?y-&_9dkpLN^wcuShlGth)MJ~vFV58tCpYmve#5$^l~KzrPr-H!Ib!N zsg>LDwl1Zl=J@R>KD%MKyF&6b`92RkWsi@ROtY$6=dBr!4ucMYytgW<@!sV*|A=3? z%R*vGe7cZ+u?7z+>>x$tD7*IeLB8s9p=gI@N)J_YUHPi+IRQ=0JK@-a;SQe&ajjG2 zCU9y=-_g^=vs3aI9k!GTU zb_PnJEKnL9oP`FIH>_=^Ix_!gV=JO%RhdX^31#hm=%Fd;4c?V%-DH#rz)*i}33x0p zxduX#wWe3;7LK0q%}yoJyo&qH=`&utm9)Yi=n*hb8!an)Q*1xh^kzvkncF`H2O^&ZDRSIP;StsvEoq#NGGzgbEXz!s8A7>peMq|!zwFxGNeRl6lv9BSg8rgWXVk} zrR~>V)~(U&2d^8?i3^L>Ch}b2VELt>aBE3&{`hNm*iWO#H}<%Nun5jP-ueI&HGx}W zcAxdP&Q^-O0?rH{ZUp-KLjS70QD(u8ecpOA$^sF(AznwwOKe{eDa%UmS@7EyDQVf( z{jgQighK^g-LVF~z8Zr!R$l|>4gzIJqd@|bB7ap@ZFk~5LLPNlm$i^cDpgUaItD-7s=nZ! zmt17pI<=2(7iXS>UhgYWX%`w@rD!IljA3#Mq;=;mQvM~hGUk2EEPs@?q!hOJF$y(r zd<}V*8mn#L8Eeh#W=>$+M^0jbJAWSqKAOXt@F9(cX4dBN)FE3Hsgb%{L!qdNa>~1; zxKS@QYT!iaHEqOHnwh4>O%c`!?b7Yz4 zGPz^7ezLsxunDc1hK?pJU2nEE9BJSF0~<2{+s`($Tr%4&p4j>?rg*Q@mR_U|Eh(^c zKDDmYV-0uP%f{b0$0a|Kxx09XqlnkE!15}(1TrA$U<600Ak&4?Y$qGy;K07QDj_W$ z{LoX_{r|iGP_s9(D|(+&Ug;rSfY?@;H4}dy@@kcOQxv~C1Gc=$_p;Fp5sLvHcOf-J zWK&iDg&&&quZb2Xxj+V}GaEBAfRCI67Xa8kjEs#53r$T;|9H6s*I|9AF6nQ5P!Y#} zH)F1&<9kDs%|J3Js*qq^+!+!%>z)hZueztBjEiu~e=yaM`}q9me?ugHco%n?*6jOh zoyLaM)%0U~h2U~MBT;<`s{%~?4eOPhpwICeycAdP`o52{c7Nq)KLMINqZEE13&HC~ z)4*sLnQSz?dq+e}yd-oBuKjcEAwZ!mFZXC4yX_K0J8yG4li(lGn62Mn>$Z%qk)*`Z zESxcBnc5dnPM%c3;7Mdvat2%(}DH=Z({?CrjA|UDyh1 zX~jA$om7vA_(t~Z(3Yr&#ZL_jFvN?()^UiRw+Dr49E*~fkZa4u17*XPleQ}nvp|&& zUb<;6c5%8Z>?FEXR$_JtG5*c(!q#u<>%CzL5lh9Jg60#_9k40(mZB!Yr%<#|cvf#O>{7}{C7c{QTTw{3T3ZLO^RY-+?DnkWDmem%~}Ho(g2XlIF5 z*a_}fs-$e`T2uAR5jiVj@z7RX;84IRALai(Pa1k{mPh5D77ZMcPk(!~(Dxi_LoT2h zBgxpMX$f*n6*}B-+td2--+zEl1qwVUA@s)Dz;zfz_$`e~J$sh$u{I8u2z)IFlod(< znZzU;hlOBZ<{0hbDoW{$6>*xDc()Z2d_0EedVGGoK+7|8*pt=|mc~>iQ99(KSgLDp zj2nxsH%stThqlLKICi3HtbxjwIG+%OklL zzaWk|`*ph(iY(z6IlRq%q<@a4w%+huX%iOoTKz~ezaxm zc`WTL!BG2_v$Ny3Hza5sA!kkUe)c}+{u<0sA+8mgg@n+61bvrAK);T%9RULc<`@N* zWVBqzw`z0Vn0erQpQY_Veb)K)O9}~`R%2f4IgBfz_b>aiYKN-6cnhW9q?ZY9)hQE? zC%dLNKag^r$%5n56mjRaChaFCd8|880@u7ccb5+)98y7Dy38Z)?ae@q0Wek$mv|YW z(GgUl0P(5m>41e>B6ELdCA#z7gw46fhbt3Y_ncfOlWofZ2Q%r_+ypoCiF{Eu9qg$F zU0p?lK^ocfyI>TlcinO%xW1uYGFDy%8c)@14r})_b`B1l@^8~$fBZM=K2txzYgFqu z;&@^f?EjFH{P#wd3>4@Dwjr6!7ZCV}>qW(Q+5# z?#lm^I0ApL!5N}W(FN4c`^3;w2d2_%%PcfGD~9!%OheKK!mcl6uzqTiCiZlu4(V^r zHA1DhRP~1GyGNs$b>D;<>#u~t?T?qdWG4t`_t~>&d!gr}2|@3H&C)=uHty1Xwr`cc zo$fmeJPK{?v7VmrDgrx&_H`l$Y}syGi-rotg_Fo{Gk>~dwf`A46|81rxDlP9l!BPC zS~}$0@{d<=k%T+93_Eb8CR<4=sfSg!;AF8ipro zFmZAhI8RCMI!%36eX#Gdce8fcAD6ITU0XAaZbXrk4DBSr-UqlT;+6Om6^ao7=czY3 z+?kXp+)e>{%$3?V$8D||*TVV8ku5H>f@)W&`{emZU_{nt&taUk@_FOW#)kI{vnIKt zP@&w%6;<4-w|H0)rIv3vx5u!Vf!EO^oR?>Tl{Tc&`PqrY@@Fv*FVP$7f9QYc z*QsI~a8qt=uDP3vppbuA^wM;uJe-FjP-)yk2wCae6`rv$B#g-c5(Mb=dapGBxkPv% zy>Ho2$8&znSK>=m(HfG?%o$LPEd2GukC^Z!e;*1D!57MmAi@@{_}=Asl^^pKfv(4sjjGAmt5B^=HLg{`%E&;myUQsviX5GhKg8e zi~e)UpSe)#KiRrq50BeDXLfv<*>OXeR{G}B4?YkZ?VN3F7M~C>yrt(zQgSmkeK5sG z^fb#yYjZfd2CZC+xf+Ig-b>5-YN&fBP1Ky*ijnoY&>v+&rnnlFqA*lJiqNs;P%Uvc zH6vs7xI?r8clr=TtYVdHqALD*F+mmE zn@F(JORBCDQ}C#nA)(*8hMKfjmA%_?77+@QQv1#@Si5b{!`d9`Vc8atl%zxA3OoP! z7i)gnRr?0SCeJ#`es=_Oc6RoX#|>uk=WI?>Ij^8?Bh~HU!~6GR*PCCBpY|_z-3}al zc>3=`TR}k721-ZTx>6Oz$YWk>F);rDvRn{o&zEc;U@ZRQJ)h^*!x;DNaU%<|?E@cMuWgoycc zue*I3GzB%0Sz%Gp@8grB|NUpx@_-3t5eJWT6vHk!8!FXSAkjhf9m$7(YbX)jyDK@d z$KMy{A8+mHeorp336+Fa{^iC;O$1I4HInMUemiBYoDlaZ9GSyWTYV=Q14*Q)3pxLo zkL3K#+m&l3od-doJ&{5>-D5?g$6+^2MFc#nqYJ)|j{Z71Up@S8{8>yQ>(gZ| zl?*ihDpHwxZ8kaTSD6fO#iFn^apSPYY>4e|N(aT>Ei~zltX36^dfNUxe%;fb8!Q-D zA`CO$GXRwyiaAUL*787Q!kk<8-sMRm>py$Lj;e*P_hs=BcjAHjRLq1#HKzy+c}N&)5%eHP3B(Uje5}c*D#S^>77pq*{Pm8-#h@m$eH7}Dq{SnCUy`p zQLz`#Ufvw5)?R+)ZVul%jFzBI$otO9tH(UnkRCp>f7t&j;wsf}u1tuVn})tExRJp^ z=f+8M1uure(LsELte8OFAknG6j{dqOiEI=?zI5}o+KuoO0fcDrGp$)YO$H@J&F0gc zoAC1QePm4l3OS5h!L5O2h{vq{-q`#DV+{jxTrBD|aFGJnn!BF+-msf@kaQ_2?vq&Q z&pADEF5|`abO8=i!i6@l*(50~j+)Czf|X1rWcIjj?mwBgiTqLgF820@4S`K)<&5Ef z+cgUrs*(JZ*PcE7g_1>T>~HCva=c#+jj*n1JG!cp`rC8lEO@2L^yz&nsIUAJFR``w zYTuz3rReVFW@sng;(2hhNX2<#Q-9)(gd=p2&>bZ|C~1fWHIAKzojy5cWcn5J7|(X0mvrRe^pnponwdX-fM21p-qCW2nt4Gx-ltBBcJBukXbR?e6aW zyLbB!ps5*L4}f}ja36~rf=m2h2Np<1AW-hP`()0fBaf;U3>zZ&;}xuMaALbVzjU`B zAB`{uaKa46NHEdG;YpNzW*=J!BJ3b&VZGBrLpKcCtHRK~I}w)TOqjtdma1Aha>+rt z9^{;e@cZV`O5}O6TzKJnF-65TzXykS`VmmazFS1q2orvD?<0z;bsk2O<9}o7A|fKb zzFy5$6$67`d(eIJ{nGo<@QCw<91TgC&YV2k_x177;{7SgGlsN6U|m5{;4WfW+*o#6 zON>+(Ao!NeZHG@Ycv>|?;QU0kV@Q=IG9M2+XXUSufXJsVq+$Fs#kF@U;S=7~))`jA z{+7=ju6%x!zHM>xjN`A&FB)3f3cU(4GO}9CNVY`!{eKtsY_>tq_@64r^;)%U#Tq2q zW~^_x_iCF?Bq2%U!QfTEDIUMj)WCEzj0xtdfo#_~yRoar9hytQ8^c^hewult?7OwNf-z~gE_ZIMVT0~KOxJ_F+@qG6D5dY`@PVc?kZ+*FR zV1QrpX;>>5#H)k$)_El_P610IN+(RTqEq%^GN@NshE%b}rI|CP!FktqOPTfb;-{I5 zPl?pYy8Ux!yWjwo-QnNC!WMlPDn#PY67aA5mvO`0FxSWx)y5+CH*ioaNLsz-*1&^6 z0ah#jE|c_7GWkp*?2qqDh^*tpiV3N4q_I#jnZ@PhE2I^AvFxNB-U;-QhmeqBg`=QW z85qsB{!?=uS=seU!>l-^M%;FyU(ea|Ce{r<)c8`1>E^q8@1Eoc^jgK+K97$-KNd;w zYV_Ve`1Hco-a~*aw%>UQXlNtgSRp6E11KB<0Tr1B7_-M4_0FEla7U@q7}n*cxb~y< zXV_Jgyv*5}dNmAtVXMVMT<*#V{jt6CT@hC)6qVUuj7^@xnDWT;@sROst@}cslQ8X- zh?w4aM!tV%IJNAO3$+KY35PDSo%!w&yU|y>i4OO6H~q*jFR#$AURII3^w0kI@#Ay* zcIDc#jws!=X9dJ%W`=rAlp+UtRJc!0oFc-K6l8B?eb(v_r7-LPc$HBlKJ%TFqqY+6 zWX_nHM}ICGhF&%7Kg{u8j-+*g8bs(ggihJGKI?iTVg${#XR)asQ0T}uU%=^***90A zRYv|iay@y0hk}jh*4-$Mq0Bo{7^ZN`N(E>JmIlEIzBKG7kvhTMI0E<(^-hxl4;~Un$U{Q6br^s=aWysqT*_K)20A*~ z3-PptcOR%preQv}T^Db0}sZ&09JoURd_}{9gnl?+)M}T_^WV9YF8z&DeYOA{h z9sat989JQV3KnUslp??8G}Ta9RCxzgAIdP_WdS}={qa-Wt_+LEEXP<%Wg*FD)a~$W zT5+cu)mSNddhP9NVLA3Ps= zSC(14J55WW-$i-%(ac*!q_^kliQnh}sV01Yx4L&fVPneYZ z@f#j%&os~&SK4KI4#zdtm&lI`1R%&StI+ILzx8q4z1nmNAi!r0!bQeL##1+}AqtdceGmMZq9C=J@{BxabHexX3Ns(1 z@vuxx4)}0$C}#aQU&Cf2vo87X*UcFT5Xe7MlPGFx7Fj%kFy6*YOSMtuHH=X$R4>Bf zQlckxxT=>VG_s582EFxraQE2beX+&6Wzy-Y{VzS)v$X87y62Gdz=y829a_jN-aFuZ zc?>ytBYd+Yk??%ZX6rEc015bjo+ z%`lWwBTqw(%WfkOdqGS%2t+Fc* zDR4VIpsy}y-u(xX8J8(f$-C&0rapat)7kzMFH|fwG&Df_nK%k5C?sSnka0JBQT_|@ zk0T5n**2k^l7=n?*A?$L&~n-~=ARdEK2Td}$^y5~&geac^F6q?yIu;cTmB=DX-GMq z-yrCN)i#}*V%{IctXxG#L_$g(0jG-w=eeB=D1vPZ*fWH;)|yDAU}vrU><@tLnHDcw zvq9N|?yo_^{)fk_7vXr{vqD!yKs4+XO7u1zS@K|r07n%J>`R~;^q&P(2qEa)jEbhU zza`X7hz5QWm4wPXDJgJdH4Cm{#4^b^&ebzR7IQdZi13uXTr_5zY6T_k)NMl}a=gmnTfYY&C#^1YpI@Zt@#suLevm318 z2xj=~84_?1W>bv`S_gPVqn{|=#C8h7dyf~wepmnxtYr4(@9tsmr?PP2tv6u6;b z&#?oa*<}@JjX{bn^R?G62FfkpH*APeCfmwKt$#-eEFVFCLXjAK zLjUf#gCNOV>(TEanD6yvxlTg05)|cae_t?upR317v-al?_&MX`a{1b_^>kBXzHo$V zX9=oZ#qUBA#uTIs*&1pMEpa1Kv~soD_39+&VmJ!Q{Ju`;MDa(s^$v~?rB?=QMy%un zc&t}5KGq?}O%lnh{gR?`@F{md6iSb#I3Jo-H)H%(|z6W(CK6-XUi*+ntS zbFD}qR7m=!BR&@P_(+ZH2HquPW3XgkUNRD*zIN1BvHD|4-?YhV>A#s4-_5xYx2;Y6 zJNb#l`0}Gl+^PTVS@4mo2#HLkaVXW6JC+wP%X!fCyH7g_Gk(KqeYy~U8^@18Z`wxi zGtkn;DzJ<`a&mCshDKV$x(1*Oqz}=<=;3GQ)49h#Pg>W%cuS?K+%kGs3i3U9ub*T* z?jLQ^*j^;F+uerD+!v7)#3e1eOdXFc!cp#o-`pUkThV^}5qx)lp`LmDGd(Y(!qq#TzNjNr>KHX`80zKdzq-(q8 z)oj8O6Xph(kvAqyK)r26CN}>3aZ+KAr#F_CmaZyy@VwvCu;C;u zQ&LxGmm$qufGI2IRwgCqlMUm{>9koTCm)GR=3^yNRexwY;jGdaxbxy*ad+}kW2xy6 zzAY{eNQu9)Om8hZyK*+$prokIs`s*WuB>=DyTuodFhuzNs>`OGvc2qhCkStT6z5KpH730FwCLg^$RqeI9a~+Ql{OU94+Uj z6HcKBV=D}$tu7paJ67(n1^$fgWr_`?Mk(2fI739hwopEf{?*-)*=q`bO%Lis8(AGXqm8$as6 zcMqQd=w(eQMgkdv4*P_hLc4^25q;Ct_6=qOe=;5RSKl(%-ntJbrDo{mWehmfPgN-j z+I&?3%5>V4OLk5UIO%^-GNZ|_KxAgBfh_vvLy3nDLA0IWDCnezu#f5(Zc6>TciTI7B~vTwI?qzNO?}W$_)Hm+2{g;Iw>?VP_Tm|2bhrF zs`xAo&O-ICfw{VKgt1jf;p59FABbU@aG)6RW{NbBjkmvFuzGTCJa_yJ^g0P@A{l5w zhQipb-@oUV_kmEIjE-9$bC{^dDhy)+4WBhEidKqGzt4m3WWTXJ$l?NeKVqkR-d9P8 z@o%Qwj83C0F>+r2eGJBvxw*M^5YC}br{7yqu7g^i_zntJSr?8tp@~{FNL{ruoM|>8UJ;uhTk#W_q^4sfcbZ%SuYs%wk!h~$w8mgs( zJ+Q{0yCsVEpC3H}4|5eF+E_gkqHSAu;(({Dqe$Ls)ztI1Lh=Tx10|2Gka9@PB3If{ z(p+_)Fch_uUuIafbMQ`w+qTYds8+OP>+82h%Xgmt-CxdV>)hK5%EiJ)z}*XyXq|ax zWjfT>VdW3h)aWJswpY(tANy=TTxbK}d%C)xD6URVIm20c`r>xhr=3SRLrd6C5NUk+ z#X-kwC0p>hfgJ)c1r~Ai{Sd6JsJNf}8sdH!%F7}b`J_j5)M%o@#molg;~w%loaD8bn>1Id4Qj$9JT2lLKYq+CKQ>9k98UVBDz zOwzcw=}@hhe{wG6R73K>+w%3vvVj{r3~b>R9VUaEMNLj}sBi-eyX+tBx!N~H_tQV; z%3S=esLsjEoNtvj)E3iwj%6|B(qsZe5xDjhrY!F&#<>e*fWT0j#}v+lTeV)6`Ed(@ zk;N#*jat?GJjrpE0B=sG?BUN}I1Ov>-Zhw>eD>we)Z$K|8_Aa*#SU=vypJI%kuLjM zKJD-5qh$YaLP-4ABqQB3Z?Mh-K3zbdpd5A}B3$ff1*?r8wndKBAnX)y+6iQom2tV$ z--@vU@Y=XT;JPC2>)~FfX7H6H7MPLuMhAjBK(wWMuD^J(Hd7*c@dRj@coZA+yNddz|c@?EC57$MtuQIOlx7-}C;w z-mll|IpEN!i{=9rKb9lFWhJIw;~S1uEfe+g%gZ2J zJNn7SNI&eGVEDn`-@cVE){@hWLp>%$L!J&nC2IKI#r@6Ary#&(2hqsR`f~Nn^u0l* zXEF%vAy1P50L_BMTrxd$eg~}kWhM4fe}{4#QX}hx*3v-S+o#79R{m5OSorOqf4zrUJxN|!SR4e(Rb!#`=h(G1jfeUlFh{n8?J*z1(O zzZ2wIh`)h_Z~5a*ZB@&kY)d#IX*G)UDF{*nH>|6Rb5>@iFTgd&u8)9yt+l%IRAT<7 z0|Zn_OZuPu2Ecllf)=|31L?782EER)5r0U?%~b1IVnH3a841FEf$Q$Wph+_9CRw(9 z+NmCmewaT5R9^bX!zs(e>2(kGya#D2>DF39_)wLUwZ|GZPJALygi9@5-X3jSJ~=gM zWisbC@rQ6$Vn_EDC7+-{7CIe!Ndtf~1Xbv8dis|}cTBm`gR z!CL(`h*|mHe=;>Fl4uGJA*(`nV^@g{}umza0Z*M8^l5q-TKS1}tMGpyf58LT#=}i`w z`sd|~zRthaF->o*H2$O;xJVWu`@ePOGAwTJ%KiLb$lSXJfhCcphp=yP-VCoGvII6` z$cO5ykKcF^Fn5E7oL$i00{-rY>UGYuwx3NNcs6sm2GLq7wWqMWiqlj6BRy2_+~Y2_ zXd8zW2bDF133fy8CFcHW{6?cQiG#4DTDDmBj4*+2jISUbP92xEas`03dS@nX=@C4gz_0}2#S zM|ITynSLw)ULv~$94?V6jWg_Wd`yV|TQ{12dxc44e$2iF^6KskQ9h2K@CJ{cwmmCk8eFORSi9VIeE=7uP+NWHR#lRksy%vL8Lk!YqF)5~fi73iTE;;%9^&;b7^%;CS z=lAqg|9BWQge2USw@4qU$TCvFtyVS3+^zgbQc@ifZ*$!K?X3y(iGK^bGU%pbNXFoq z$a5+SGjtoJ^Ptd&M3#gs1IO&@*DS=i*fLEevEH-rZF^;Q55)+6gtk^oNjL+E<%aE1 zd+Fr%&)1KC`b)KNwY3GST88hWhD7dcq3G`0AFlwE z&rra^AsQX;Ni8sj&}}Ux65u5wZTxThp&V)MPqhzfS}KB{WxIyC2V&>2KEPy^YD2XN zl3JcE?q8tviP!%GM!bUxVbQU3~nnm;I|$-F`7w0_bab>%yZ@W{TJG`n0RUF*h}-r0Su7pJagom)8-7{I zt?R}PeK9`PzWX`VwmtrZjbA!@7PS9N&Ji{8Sc6i4B)2R6Mn*|`eADS90Hts2m}f2V zn5gh8+8fc;p;LV?BAA}%^$}qLw{q>kw2GFM1?&-BJg9uPGJ5fD%k=dze*@exzNS0V zf`Rx$_Ro#6*HKW7yvJ$Q(<>{lQrH0>cHYIzxutf3f=6e{7r|XjcUr=1=ZJzbLX=Xa z1}JsJixu97*%Uex*~Srv^&U4%4H@W9T(NAue(Z;&bWSkgs%NLed_4a2I`9eoseUd= zp6BUv-h-r)2OVnn2hS-~IOQSuUdc;>6xN}3*e z*22PW8Vx?3eqwC1f}^cqls-L)KlKBCH2i1CarPufAGh*zKV*;n6KUx@c0!Ap?Nh@) z5)9oc=k9IH@{h$dc&=mfznsyVh5U1IxLNgLrzCx3zt8?`!v0h24<(-2pFG}8YAJ@Q z`@i0Ff|F|Pgz&dm;z(a{pe%U##rM)#+LTH{s%vW}>^1%1IUWA+$wE37abs?B`PNeO zptEU>l&|ALBu<8RjQ0KFl;z)r%;&w6%)x(qhYRoi-ua}HD0S2ejK^m?FU>vnV@fq! ze=7()e&oZashvY@Fw22LBQe%S-Dkc1{r%_17&6AkUD>3p@}Kag_)%v@wRs`$6|+lr zGP10VvP;tZmdP%dcD-}B!~xNBtgqA{!=U}FiJpF`SHfXzTWm4#7`Q)Hz{-%j_{E2@ zGEhOmmo^M}AxN0Dxe{oaBAS(#*8=jH((%D8Tk%U*5p~KbuP^CU2zere8uuOL=}7#I zgh!CCv#@GW&x3}Bzc)0WJ5S8~gC7Gg!#+HDO8WCYr=LZ<%z&~=c0yrRjsa$?8pnm9u zGIsB~f@z2UqB`SU&OrD>+-obVI&sT+dx8I+ss-W%v=NH>zf_q z`8x~}3-*tXoU?Eg+0e4TgJK>mE9@fmCo=bmL}>nV zwn*Xg8bp_5$A4VNLe_UfJAh2Y5sO}cGxX#x()74zm#B#_kwyht+86|b{Urvu=3x27r`8_FeNw)?NusB$D7O1u(VjKMVQ|QCl(FldyyV226r9QMIJoDH`?55L}~c8By|743h&+#|0pRRm*e3eZjMKf zj6US~Ph#j8u}|eE6s?%2AJ8(1!m}tB88=>xuKRp9yik<CEmQFv0uUo&MOY(}G1B4G>EwJ;(LJ`_T0ZnzE)`o2GEcoO?3(4T zzj^Qrn#k{&k#%}?EHP?$&h9Zoi^*hsY@Es+Hbt`0E)A0o6G6Lp&z3@IMs-xsr69>U zaX*%GNKxuUx|q?0?6?AMR(V;BaA&A1ewut5M22VNNNn5p!X^IX#Kg0;mk7c3Qv^EI z{fN~{fypTQ#J(}x>^ZvpNVBt=vv>`wTxbGryyh*s6=h)v>ppJY9CWG@qlr(MK5umK zk?tFLUg*Bmj`hgS2@Rij@o{i)nB?Fc5H6Od!3E`|en>9Rt|gS5s=e;F!GISW{-%1u za5b*)#RU+=z?%gvn|9(w?M`U~UM`5%BiBDuvB|<13_HZjFy-uhD;6F1y_83cxMMpg z*$A-Zv#hglwN-dNML<8Q6n+s;IPRcGE>d4>`?_)dGOE*%0ATCl-8(IwsvirIB<~y@ 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

-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

E< zk4{sSc(Ww8>$X(RDOzmDVi{m(dPC#+Cr|jy>QSPtt^FWZBsWVCUrHc*R*-HQevFS0 zRbJ2cV0KtLuQvP)t2RH5Mlw_!w1mw=e1*bwp?cXhowPi8Z>iQ#bjIUkkR0ZX&EyK8X5ZUOkXQr zN=l0EwMRVo8I#k}KxJZI1CN>}n|it5Y2V$EIGhw6`@gz%C0}=8de0Yk_O=ZaE3K;9 zhj@ittFH1C*&Md@e&+n~?g(wR@&F|bjW?X+3}p=0!LGFR=MOOL6Sm|n6C&S|EU{CY ztE;OO6%}{vpS^r}DB#f4SufsE?GY@2O3Kw@Bc}_b@57Ya-W(Cp(_9NZJ$7k1Sz_^`v=PV5D3J4 z^bJbu{_PZ&xVX6iH?fpVPUhDUgGM~lxdwv%TCpSt}P?+d%Bq3aZsYqjEX05pF_ zt`(T<9{268==O3%NHZ8~jY4rb)KlmrQU0M4!jziT=Ct-7)$QAmOXZJB6ZCL4HV(jV47kKdgU~Hyc1oj6J((dmL-A=w z%%<0u*|o35O5l%VKT%KkMdZkmabAmwh)-VRGK}EFPTX-(4^-+DxsE_!?w2Fb$i#~G z+6BHfDxEU5EhB^sX1cHOmkH26Qi#=Yr)tH|i>kvu*VYe>X=X?v)G`D{-adKCYO%@e zcbfEVn&d(CY0#MM^+KJ89M5ExB*Jy<#9g9fhl5&bgo)2T|8Pnz!7GxySE%#xh{XR^ zNMS1RmrqJW8W5evK6%7D@=^A?(A{F42eY5uUKcj8$({bi{dNJ zZyuOc;HMvN)@IBZf9ndOAa^_9*X~HpquWDn5bN>;8|@A{6aqp*AEgssy%I~4c8+d1 zl0at~>@74qH6^zw4cm)v^KA9TzwbE9ZvVaSgas2FVvh>!&y)!NY0p!IY|qtF9f4g0 zbl`{|%e&A!$;EZL@Sm{9O4}^(f{{Ew9mRBXk~1x#FWy?H*<*JJ1dihLSK#ivfzd8E z4P}rSrhU!S`TQE;(6Cp$OJnU?q${a}q!8w0th_ex6mu%XqS3O(R%22B&VjvD5G*cX!hx0%GBCt z2kWH7l=YRBP{}Nb)A5ZoBNF}M#bX7Y53VFtm%Zk}q!Nn1B&=6GxN9k{h&b7+ z96v_jAaJf2Y0=DU)u-?+Upz)rAy^}c&9rjs<7knw*&Dn>#nUK=bJm?GGNJZME&3{SBeH0;bCqgjOT$1-NUMDl2FA|a-a&vR5$jK-?2+q9G;e?|+?D{lLRw8R4=c!zhwsyHkPEL;1 zL^)%IQa=Y98rdqE^zM1mc+Y2hB7~v2IY@Mq;xA=>yCDC`u>9Wds>VaTV0e{2kT+NY zxy=@iSO?tsaQsFlWn?(H@k%M=)m9&O?s@}=5rhsWe^3B8cJ@nA6dB{zq1T!3 z!@xlMIid6j6x^CbQb153G8RbW6d-K!>K|~z2PCy_gRd;M6k;dkkJbv5)33K2OAY^Ynf0`4M;h} zns&lOE<_Rv8&mXu(VV#ph3E`WEJThxQFyU2Sq0$d|2g)7DKmW(ic$&VuX-8$_6kA_ zNoPcx9mpEkpD0KZ!AbXFKJjQg?uilOHG!L%qMmoPbz;L*@e||gidM&8*V2A}YvU45Zr)eQnPtKADV&;Ad1FAQTjX2m zJYbtIP=Kn6?>AIh3e*~K9y1lt;QD&=sY=zx&^OZKFx`pOGM~1M>(8HEJpQ!hU97i^ z&PpZzoklEJR6IEIK0xPPO#???ZNQ$svthyg+aDZ4l(z2_b&i*a#IZ8tU4IuL3r9=Y^ZuO3cWPXtLmM90}bNLGarn%5OB?qW07Uj1HkY< zu#>_9a_f4~H-G{m(=rbLBOa1aHvI-($&R0bTRZN6n!@8ZZ0xi$xcD4kJHd?4o?9N-92|+_RVQRsI2*)$cB-F+m;)xWxDGfwNm}J!Fji?$z5 z)PlFLx}0=7v3J;dAKw@A>GLp>yos=SbqHkG$yky-Db{) z@n+%H18mm&8IFg)qh=W8bkj*djS4o6nTckHj^5OJCRr=Gqs-(t6?~xaj?7#~_kUV| z*{9xrzCE!CYx^xP2zz$N5h737D`^* z+!T5$Sd=WObNP#^N{owOe!R>ig#pNcOQRS_o{xnuhJ>#KLJa9$q3WefN8X}O)}U&A zMu&NXO{ru}~4r)mNwPGh*ZxHvNxPUA{$o*~W!hjbqxuYNWdx8Xy5mzarG zJh}-%&%c**0uU=$os)aG#WNG-%{@K&<7D>(>#$yZ)zt{S!pEu=8=#0nhmjAaJe5#B z^@ZU0?rf4I%%BVAfd})m?6pzmupLNYi-?Lc zCVfEy!YLEdA!$Qg<>4@i5G8O?N=aSAyg>MaL%*cHK6%Ic4^1v}*jG8m-|||w1Nro` zv67(=54@$9Gpu6};qYlDOKTTZw{;`Yu|Iu`oVNtGc*QY^17`juGF6j>G5b4gL8v$vgq$H$M zQjqR$q{Kl&Hr*f$oznGQ{NLl@vs?EJcU*ZQr}kaES#J5u7|`{s$636T0HWUwROG`t0T?A$6Vu|f0~i!rJ<8c6W0&5pB=M-szU$# zE06q-G-x5Vc6Rx5l^}@52o}PwQ$T^Kql}U<@!2FwgL%T(n;qvHm{XLf#QnXW`f7Rm zxSp_5jSe$ir}O+$km)K@2_ZghCfh6ku=iRugF*`>NDFp+!Nd3=sLiyE{N0$eI$^1s znTty`VA`UIO-_~q)5XI>U=AGoc9SM2I~G9vOAQ&JrV2R+y=ke{a#$kZGPhG4w~wn= zl9m+vSDhmjT0Fl|c zlni1KV7FYzuL~~W?`pYVB?FEm;E+I0O|3J91UrS`_angGBOri3*AE^dS^NmJi$p~h zlxZ;87c2UyFR_sj*tuSVCEUS>=7xrBQBOw;i^aY3=}#fp$fW`V2(E9FmEO1kICiNF z()Nd=-IN)VGq>)Q+{l;UBLPr28v%Ye+$XE>LwpbKZ-qBu^A-NPnlo4-$AC`$(b5vd zZ4vNU8a?-P!p%c^SD*6Q;Cxp-a|;UXfhK;n2NrzDVV2dGAZvZO>{q>T0K^-R@v+q* z6+^!0I}f zO4>dUFN=J?dU=-DMU(gGy{eDGZ#SYaSN^3E|Abt|MO zC@Cx3Iz?<|tlqSZ>R$V!Ebg~gd5g3E@$W?L!EBe9hAB<_(8v3$jqZ;-FZmJ>ICkP?C?YH1={u>=8?b7*lbTj@uKQD1{;y_U_(R{g&=ab*u?C0oc zpq{M2#P-ZWnApbhDDg1o<&v1+@^S!ZQ0{c;yx)Eyaert0xBx#>kC!sj*NWAY_6D`5 z2qjo3sBxFWb#Ed!1h0+WYGXNlo`0!WhJ}LJ8l#*FhH+qHE-jbMB*mdbcg29n`V^IC~lzLd(lm6$J# z?3}vzZ#;nKYf(JXz-75M9GzoY=Ou-@&P}>>WF-q39GJjhm2TOt*BV940csM$wYL7P+Z2y!K zlZP#94vbuTQH`m-26meYJpYydo>CrQIP=GW+3WMbU7$n?9XEEp6^vL`9mKQjGJ$nl zs813zV1d6_1dLfkD8m~k3LGbQSURTQubDCZ*vX)n;W&S=rbi5-gg`8I!&hJ^_dR-p%#xhgwRRIzX?Q|(h;`ZU=Vid%*`>p<`kj*V=F48l==p?E{2(M2}* z$9al)%0@8Qy-2GDxnOVNm26#wf?HoDv=?|XlT7Of;1Y6|pyBprCpR;gvEFMA$F>%9 zu-etIq6`u(cW;`%CHgjgeLVZ=mYz#(S{-#%pND_P=-u>VxOCZ8E?lIXXE0yemS1pz zy<$hflnOM{1xMpIOD^tW@g=tt)WX7XV=%UWsdy5gRN`pFe7z@A*}to0|J(%J z(>gYL7Z)I30VYuqgCas65D`m2fV#R`?E;lFd`;GEqnczta}EBF`$S=k(hcN#3)NWF4o> zS4~_!J)7qj|NeP+cmRZ94jk}Z77mI#dClJ0xn<#c%RsIJ#H;1s4ie$zq5w$Ju9T-lkNDwl?787<0^k z)6w>acE+J0WKU0oAi#Fc9RuMA@#|qV%#bgzP0ASA;1^*P#_bo0Fb)79VEd*4tPG@3 z3`j4j88)P#i-Z&^Nhvw<8msDbG#vHcLl^>>&V$S$<~7d9K?q?%t3vIX*sGKW>B)Vq z|5E3ORA$aCU+TrpHwtdXPe zH=4C-+i)6-j#rh395YuufE=L*_MR@~^!6T2+$cFQaB2a79f+TJFdzqOB?J7w zbfn#UawaH8`VnTXkF~%C19-t<%lEA@1weU6qx)}mcKd^}bF-hN$It&fR#z>=k4}7^ zzv1x=h3X}c2nL6uY!^$lwf5v5(VWm%umB0o&I5?=C=v3- ze9m9I8zk5~SllOM9ds*<4nDxzoTYzyFFI>$Gn@Ox^-Je=YDN7R-eInu!NMrR3YYNg zQyZ{CwEq-t$jc#++D}Lh&Rj&U;HFu=^ zeX;>YML_{n@JZFsvVPB}6}x!u*xtE@F}Lg*6LZj@ZALM3D@qOtcN3~q9UD3wKYrZO9Q{Xg%gyjz2iJO;Qq=L7vjsWW3`x}&tT z4WEz+6QI47R8}2<&N)8fSKu#(I-65#&uzIa`(v(bx_-0MEQ#0 zyn*4rXAU`}%k{q;(BIh0hdk?XcQ>^*iTI9xV=!8l89htsSKzabpId4I9Vt=;w;^Kp1B5hbC6vQ`=PP`GM zoemBV5GLz5+O`Y8y-gz#XvAy}UZMZQzV$eY=Q8rrHExa7KN_w|Ct77}saEON4>lbD zdoEZpZEeX>2j3${fJ%qzuB|e#(o$YDy`M4-`1|X3s`HR0x9Y?my;Rz&vu)Lp@gE!E z@cj#XX>4P83}e58#;5cyDv6O9Gy;AN-sWKN6X`nc_Df|4kV=wj!A`OBpWDA#^RV%34`Rs>y52|xm7v5C;}4r#oPldqsi~>?nti1*ukoW~cBMg|@s}}* zCP2Fdm>lX6*Pr~q!95H%*xf6S|7ofLQ4R}I!1T+j`xX=-UOoWL{=^sbvm0q^s}qI> z3rD5{I41Y{Kel z{-(qr+;JX7J1A+D(XH?tA){>XYkplqflW(eBhu5%8wGg#=b?LsxwkLXMrlEzbR z6;ufhZAxQn{@m=Kj(5t$9(w!@TAYnducYbHy5TTWpOcg{>E1R+VPuTFk(U_eRbOTZ zQMqDfHiEH3uq_0MPby-g@>xX3!V4#KP5hiZ{ITg!^sFc4t9~+nQeY_9v!>5L6GbNr z7kp(NX}*(cg{MG@Gmum}u?A3FKsot&Y*#&#rT85khth*hgz46zmce5~UlTeM9L5DX z`L7s@z<5$+3F2dJZM_9vDL{Zv`rU3N06PUM*MEQY7&LGZj(<51xshUES7Ov4lcG4X zxpo-hgH|0nnR+&ovXX4oQfB7DQ5I!de$@!81iMT&m_adfbb(Xme{w%IPSWF?42XNv z*M#~dC5^xo8NlYf1Ztz|590pEM0~!-FSD1DQa%bN<;YO|N-0`vb0h)?-o$rm@jT+73sqky(hn4cAkyCkO*zBdyOk%bTy(IWd8^krp z)+Z^A{pLl#x%c4fijacz{u4Ch$tXd_<1bchSXc<8;lbQnsJ-tg5rY4I*eON?V1lj^ z3Q}lLx?>jt!YT@$#=v{?9ro_@fu zfYw!X>`WBY_nF(q9hh-t2^*S=jJz+Q#9=|q*|dJUY2_irrM=9iF7F-&k*si9D0Uug zE3Fe9ob63FhrnvSn6tqjp+{ncY$7n83C{fvwYMp6wRLs9bZw$^Z1cmykfiHkdy&yl zsJW2Ql7_tJpbpb@y&JF~&ROcv+D=CT%5bwD+874MWJsdz1fFNr;cgY>TO5(2qjrg9 z_YVic`EC8%%M#6FfBuwJx&FXexfDM->lo{EoUxCkGw*LXY7K1Xd?RSnb;J$B?QYw< zEn~Zlaa)07JPV^$2{FQ4x$JD>Bcbb;U$hcW|L{77G$x4dEjRr)zL-(c4Qy_b;$*Tn zG3`|dn64!gZxFPDI$n=Hlcp~cmtMSlsqR4;!Tky&gcO_0J&v?58!OCA%B=IQ87b63 z5KA&2JB;)Ej<3uT7PN(W`tV?tm3P9YA~) zn6>rXBYiw;qj#JJTKS)v>&w+e7i8%2R)qfTrB8dt%Inx6(#AJ$TH$UnLii;zmT?mw zMIZX~*tT9j9@iGq9ti{J%a2oyP7PxNgPWz5`z4S(A^W`rAXd(1UiJgv|TLhx=nhB2{)>Wjyv@UtGX6`|~WJxMUF?bBm%L1KJzp zetHGWT*^pEmuy}W>M=?$fR;pzKjGYiU|{FU`iCd%whLrf@iW%yM{Y3OwgC zb8n10wu1qa1Q`TDio7M!NBGeF>P{ zdmyl~-2LYh7O7w>icbZLzsZruD<*AkB8%NkWDv}u(k=ugIdhFrn@S^g5~YtPHjm}% zrLlkI;qWbtB8kA8jIsM`Q=oa}W_I$v0G{Vx|B-_XH?JzL#-X;;>|Tu=R7^qXs$`!oY9u8Q(hR5r;9` z#HOf)2^)~O-_M2FGf*qvhzno?=QT$fMFZt`qO@_7w-7jn`>4=bMJ~%X_@$z2_n9;F zV_jF;ke=;VY)+%zumoC+;EEt0sU`wwWFIZQ^eprt6Jn4T=^nyOr)v{XEp9T1qbd?s zuThE-0!ue<;oM)9oQAa?ifc&$%v z@;_cDbMxNI`)dD9Rv_tv+6EDjbfRM*k2MIldU>N_mu`jD81*M#de^zRGjqwME)XDo-i%#Pf_E(oq_B9;B**uw@thyRIBx?F2=gPiU}GA>eW6$@KIaa z-KVKP%|_PFF?>RDa4-{>VJ=E{9aY|xb~f97Ko30G`JVeQ^zmlp@#0?I90v{vOq=iL zxUgv>7#YFzJp`>qaSa1~S@@I^l&hH$O+0+9{?0un?33q^hbfOp!&`q&`Dh zM|q)_{Y=gYE<@wS_U`YC7$#{-o-2ZwX&&i&Y1%hM)Sz}G9FMW&r9o&2raM}&#Mf^T zY~{&jTRdY{O`C010O@bB!0(+UrHcG^0+dehl1tnV*W0|!1tWIu*lpLxwI8UX*8p4= zumZ#@AfZr}fzJgp@ecVm9Uk)IiVN9cKbZ?2;&_4O-@;XW6?4a#CwYr@McdJ7*D(^ZQ~~5u97J(w}18lT-wr z0~D>_f3@9au2r^WqnkF%v+Jel#X=Y768FY)@;IO&_Km`V>4qjI)TE^8rbbsT-H(1% z2Y@^wc~hR5#HR`XME~PoO6PO&c#+ZjlmRGx{`T#|_Usj_OV=~EHop~_X=-#|=!j)2f z##42Ywz0&d8ma{8#dgc(iNCJIpr0v9Ts&%W+C;t<=iLD5`bPJ$Gfv9&{Y8bq?VjL0 zP^@=CAWuR<;6=;Ps>jp^vV|M%D!Kod!;_7q`7%HR(b2b$ie7}6%~d$CVBCGT1VWpv9;~Sdk%Gs%Qtg+ zDkUY+N*_=EaSiw5)fk}qSD8nL&_-2~DX0LEPcN_4=+Mc@27?kc;NhY1KQjab-ak7HY_Q*Q8_Rx20mr@Q;3ZUKq)oWV z4tg+v#!4PXp!Nz+`t0m1k%5o=`H=g@a6dq#oL%4DEll!J1W4f#0x%wlAHEWM=gMkL>GngHLD6CV^SrWL!?u@esZiEH&eq)rfYQ!4|0+ z2H8*`MrH};-f9aJ{<;LHb)ePc&nXB@5}|-i6`BN zGz)$w&Ads;9ZsL1$AF(;#YY}HwFinpiBomUrdT{~P^CjS7ILl~wA!Y} zfR-PyDOV}dc-kC*IuZ~M6$gnd9-gFOOOQqdCD7uz5#Dq|ZsgDVE(5|8yxb;vQbXMj zZ>ga%X8ojn80BTc;^I&Cij=^IYk2oXWA(F;AhK#LmbT*kh2|r%qrjE^3nw6pQbOa@ zL4RikIFA)%j<(a36fr+9k!U`kCx}y*6-QPi0*K2$IUktCh`vc3`fZo%9l-JY&l5i!I3lreaKz6>cmN!al7d20n=eI)os;uuslC~V zW1)%a6=0C8>tUy~I((|$^9_S2848zI-Q!dr#php0;@C^z(u(1pctRV38{YH0JhG}s_w)&_lxl>Q`WmP#1JGd^V1E%` z{)Jj1&_hR`qV#g(*`OG`Ss28|+tJaHNrDBVVDI`fOu6vIhG+dwOV`mY$41u?jo5pC zS8rQTMq_cyztFUI-saR^wWq;yBks~oK+N^0r{P)h`!4=b$%VnL)e<(0A8}M7iEaUn zdS7#LoO#J1rULCPq~FNgMxnK&C{&0pl$K*Z1Y?{QATtcn1sj4~!9=lgYxZu&B;GEA zq&6{-5FgyIKGM*AT+&O_Z9iZFBv1zg5t7ktF|dyQ>p5fWbzDplJ%EIbpQiM3>jt1? z0stF9rtoC1y4?-%ryHE6tz5d)Syl6>&tA$>55t8n;Uw0;H)(aUmE|%DKa(rWc>CQ` z3~5A(kD($6nJU>x}Fi!|~hLv#i%15~c~W)4B6NT8X%&g&H4(_u!i zbF{X$Mz90*Z~eUxcOESU$WwZFYq-4 z1!$NH7f!m#u4>y0U^7xhcb~^8{gYR9TsSzQ9PU$B0RUNVRa5}i9-yJp^N3~Ld^}&K zDtKrZRi?cNV9U9!D0e)N?<{B)q0pcTMqNWJ5$8o7YOz{g94+0Q5$s~|?z-{T*Ei)F zU`~S>&=;54ze-Ao0wBMaGrSS<^137>p2oU_pv!JQrFpRf5N<~#IkI4?Z{KoMR;3p+ z!`?T(OR~~`+6_XcUPKp+{QkWJY^~sNpR&1`&u;isihJ3y*B#`9oG#jnEGJJ2ZE|`M z)}X+U1~cyP#?!HsEE_MY&|(2urT_6<7eJJOJRTOJ$4m(NH$6LzIFOZz8-_qzj$LME zach;K0efUYi_KUS=m;>%Zi6T?aIH751hz|-TIp9Ec;`ecSbmW)yn?*IVV?~SMqKd( z;9c5bD*qsLzmi51o`y&n6vQT0(&Zo>ok^~O3ETR)f1)lHw@sk$23W%md0YdxvK=zF zZo8ZoeCbc!7iT(KlOM*A7}a^7|MjUl5{c^z*z#GvT1_|4Ox6fm2UOWC21R9MWv=5F zusSRKnk~$bAnp;30_Pnw^dmer|7d!O@Ze`@R{9M8f$rjQe{qRq3Sb`Vwjz()@NNo) z{NZ~^{`omhoR&Qwtd2o8Rc68yR4DcYmBIB$c#V*P>CebY+L0NTo9I)}uLr4$oa7B0 z!KI)+g*y3-iiYN!NF0=B(8HL9loa7U#7aN9;6HmlZSA!waMg&qeAxN};sHBaudB+1 zBeNjV;EVFB)B$HG5T}30>b}mhs1+0u@%wi*0T2+fi3|y#jiSenTaY>B+e zqN`Hp?Ay&@YWPl|CP4Ff+5zU5$gozWI`(El;HGqD3nbHPUS=04fx^!*mKBR#9&xX!Cu&jy@- z)AoF>3TO>Gw-0~*Xz*tpv>dPI%Ui7db+?^YO4Q;=LzN<>q*NI=x9`i$$!TH(gnR(3 z-v03k%iY}_2!uNxncQd-qyrXs;_umrldQ>(ttzWnzf#Bi-?N(mDemd$ z9O&1bJM~8{5cIV=N%ku0_HN| zRAedY1ciRy1L@k1h6eh`_eB~}0~Y92ojCLeVq=;zsGpEVypEPD_u9-!H#K&^ru4~U z$Oe1U2P_S7+^-b>06qwa==Fl4?ER4p9zc4Y0m*()cW`cNq{FL%kq&LG!n#flf|gIQ zoC(?9ua-ok2vd|W?k&_pn+6T_jv8^8$lhVS8Q{POp#_k2yte}B*>lCHiS&Quio#xm z8=kaAcJmq(<(8hJNp1H&d)_sfpttDTkl8*d+)AXYG?{+Z*7 z(dblQrpiiJ7$gud{&-L2wde-^2iXmquyNpAa>W~(!ShX;-QM}jj^Huw-)m`}gKE+WU#x}@i5`7*>Z z{etddVbAE&Z&eDAUKZ?Sx=sR+aQqM%G?G9`2KG8&g@%GcjUlng%I0;HZ#^~SH9LQb zSxl{sNY3A&iUf-v0n-%%na`nyueD2cz$W(UN|3F;=loeR0z_(0liOraXGZu#T;s3J z&7vulSLpcUle}VM4*aTv<2^l)pS7a#&qBWKwJ|7WZ)g zLH}-&qLnK`+h`a>KaX?+yi{a2PHcIjF#tZ$s`82~+)q?U4x`RJ&mt&?!)RUZ%3S?e@;{M>!@86e<0H>i&EjE(PmUq}Q6_0-PvygT^rMbr ze*W>@Ce{VgB6K_ZV67JTJFjD^Al9lq@O*;Rjb;lay)F8)!)un6(3@{iiT3ImoN^Qx zc7Ky!iQab6L=Ew(wu|!EJp3n}Z9frdCqxQOy9SctDrj|XZfW4<=MS{o0-cLsNVT&A zp>II2f#K;Dl}N{>Rm zwSYF5rkPOeX#C?B2pwg1i*iT_d3Y2lVY zOZ=TXP6h*RFSEr1PQi1g#dXcUNCQtMQRSPthx6D&K)v zh!ErCn(-u)i-fR^%e=0%RT3p)CDz5;i18Vawz9X!q~qn{TJ>@K5a{O0l)LhpyVXw( z96VmGi`!J~DJSl`g>#43GAr3}q-k0vTst$6f07GjQ2dOA1)kPVvjs@lf&m Jf~h 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

qDBQ;kHgi9G)s-g?w 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

Qw3;boIDOuwBtC>pfg(-XGSmZ^Kn(Z-c0 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

qaBlpve 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

}(!_^_6Z)m9b{s3QMk8s*&ipN3(TbI%b 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

2CY?SdyhW@>bm=nFi;if!6eyKCdl#>JJ9mFSUE> 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νggC#v`yyX--c&&|kGGV#$4Xm-F1hr6o*jKg@fK!^ zQ-Aa5FP0m10}#{aT}Gc*TTO(K-4}he)Z%>zp2s0|jZd@D`CF86t9*%hU3@(p&Ou5f z=WFG=skQoEGL8BJqPK0Ae_d>as&6Q!d&8F(-?Uw+J(xrWw6{(xs^xFH9p{z3^dnMV zijva0KO>q&FE;;mTY`k7Mm_6Yl(=bznQG`;B#?j2&2uqS!&8YTo)4_YGdZnzu#@mY z3@DM5x?0Ft{N$+>6UV!NPYPpag7l{;>NZ&Rtkq5ar%AV&miR6ElMGql-6zMEc@U}~ zZ9+(7FcLw*K5rink$IO#O+iE)ZiT?p(Zi#t&r7PEVb#3k_<_Gnw*I$ByNtxiKI`dGl*w)X9(JDx z%(T~kB~8t_hKro-%E67p+S*!Lbr#h%f-kmwg;gAvW1;wmH$*(7t1;9PU2Tv!ZSdVHX~%k2Ev33o_aRNH|BJ|;b# zuFl+1B-1|NzX|z}m8EafBUl{;*yqbI#bia?@zaOiYgqqto#!+4ze*qKIZl0DFPxZ| zP=G3@Z}?WOA{7j)%%mkGnthIcg01LQbF2WBuC8v3@+uI-k{t*oE-S%JTD$ZkQ**J{ zO}Ko?i(DTEpqoACX?L=FnevoD&AV;S(#q)dZ3G^6=dKwXTV$ISYNaDewtNDpTWOUc z`1ToL(z!1=?u3D2Qiz4I0j*a?B}u;D=-?067+An2XlN`q`V9co1`~Bm;X=JZ<4mBr zCvw%x%F4>ZqNAp~&qF2vOya|_ak|~G(IK0IS-T1%Mb+CZ%CxsI$a#-$zM~B81u~pF zmf#nH9sO|@e?tl%tK*QFvf=xYKw0PLA6Q9(-5jVh-njEt)fAT*@Z4msraZlA7WA(R zmFZ8#F3tU<^cq-DFP?Jpc|Z_rW5IyuWC^zTtl=X1DEVJz!651*d%BhcrZo}wRq#Hm zqgVlw#5strN8+66PjX`EBkj{x~>>YO@n_-=_cl1=?!4A>Y*Z!ZSmea_`mB!Vswk1Y& zPLh!;ze`l<-fY#s4=LXJ&DZ6qsnb=hy!fdWebF+^c*XN)!|Avz1+ynn$l?NQ*qOsP z#9OW{ZOMr5%|teE&jKaiWZ$o^=-GKB!d&_5H$wM*b*>#~wD~1|sNbe68$%5zdlX^s z&E@EbzBl5sT7~)G*yq0V-`8Hv=C@1dVD5S44OCK>-?bo!+25C&mYa?jWFkWj2`Hm` z!%V1>@Akk=?Pd^Pv_G!^Da&08_=EZw$<-8v$dacK#^fOS2i3vwE5INzEP5sJ5V;RN zq*QZ+%>y(q1iue59Ckyq(Y zMv`_k48tN>WLbG4^tMbjY)+~A^tr}HRa4*M+ z#TA4jOQHPEl94RkHANWi7^cJVx=eDO~A26)`N|q#qrZwEH%7 z%ZnqqXxjZj3IEuH=Cb3i1~kE?F1`YBf%A=!078@Z~uPEVQ04169i}h_Z4)ZJ6n>oCCus}o72^4`yl&TS4Udcv;6)S zfx#L;G|1QH!#)EF7kK-)Hu-^#U)~t|7~$+Kg1Y|Mx(81u>I}-*#U5c;h?JF|eX@P` zM2iK(@&abS=`ABE_}{q&Z7)dY{sW8+nbva@*J)yGKqiLj*3JiXgrh`RNR%$nDbaPd z&n_;24rWrK2P|{4zazB3;sbjE4og-^#wj>Smo{f-ciK-pEV*TkA-R$x?l8VSvvStFim4hxaJmfL@KT1ottz=ScQlFZy~%1cve#aqrzCWJ!zP z=Kk;1KJqrNJcE*6%gv8G*gCT+)`3wQ?h)&eP>MV~b@*5J;%y3o5DGrhki~ak&UaP3 z**CuQH1whq0Smn?Ng(ISlXODSmAIiI(zEe*ggvXv+*T!->V;YACr0rNRaoxQ*n>RJ z3E|r9qHn~x{b^Czvqg8~VeCmyAxcmU;;$teOmilN2nkgb+DM1mg*jeY^OmqsSVtPk z2;rz0ox?LrTE>~Hm6?d7>tFU+%>BxRYllJVaN%LavB&b3!d_puJ5TNk z)aevR<&NG_0H@^7AfyxB2d*gOfH<$=;~E1squ}?t(n3N);^GmT&Bzik;W_!Gk(81;tL5(S6D4?>0VEF(Qe-nksCKd)P_D<68 z9+?D@GVBfiTZKmRDv^iL{LD5#`QZN)UIGa~R2qq}7kR+=8KrOTp5h`X@z)Y}$F7Gm zF1u_|V=WI&;rt!OL>i8BxYo)tXdjAllN7NKTQS}bn{}xF&|xom+uCV$P6M$2+N-?} ze?&w8bR*vYUXV|1r+8e*Yw+2>adAOY@w^c%)C12p0&f@cSeOnngunP>9;UfL z4Su~V0E>j8F1~oG6*0pvQ-gPh$KZGxx?v-JvUU)f@@L*VlJmv#O(wVBG(T@}It2&S zHFrz)q3^G1hkC{^V6)btW@a~{9Cr|jy0}Q@bDDMl4-qc#^uH?_Lq|BfanR)U@l8gr zZ#QNC2Ip@nK#ATp{lw#W^zpTiS+(9Acx3erP3vDSO5ohhz1Qzjw~BcmfT8{oKV|&j z#`B64md!7)V2VXPifJJJ0fMG9K;gC<@}%y4T#ZFwUH`6kvkoeAa6F=7VPQWSifM!7 zIrhQe%WXt@5dQR|KKz-DwHMQ-| zmG(j)Jw3hYGCv<^KYRZUft1#gTsB>9R%1rq^;QS}Kp2&4}M(2kZnfkYX_UBNT=jsK?@v_tGhb4^no=d&|+?=44 zsnGDUZCC=@Wb3C3{bLRaiQ%^A3cG1;^2bZA$MEiY*YPl^qWH zxqI|I49yC}{2L~>(zARR4_a15T2eNI=P!R^yoZbT&aX?>K-W`A(xWQiRTp-gjwa=G ztT$eFZAz=P_Mt!0Xch(UPnXv6npovfi{A2)H+y{w3`W< z_?-N>S+I$V*wa$$4w3BNWzY>jNYB84L8c7aI`PNLk#>JzxEX;4K7rI>E3b$#(Iz^b zXfcfhjYjUGK|WKnb<^lHHmA*jRBrwMG&s}y@2mx{n(K5B9@?tz(9}X+H&@DBzAr{a zDJ)l(z7n`_u=zdUOy&BnU7m_!WlAY?8ERW%m_~eZ?+%aZ3e#7mLgUQJT!yw{6dFd% z#?R>s_Drp<&pPFe&)KHbRm^T4IoBH-ZFf&{KrEgjaO20No{MxZD?*{loN^kf_#nvR z_3wAzEvzMlz4~g%^RRw#8YBo9sf(z=TLEW6_M~Yvz4#eVDt8%ocX(Kb(Ffb+KLd}e zD1yL(ay3RYBc&d=I>A49LB-oTv;_vqD=lUvVza-l*G^F)<)a&ihqZ4Ya(EfTcCM2E zX8?g?Q5gZ>wwukksCyrAurRVl_M+`&av##tg7F2Ix}P_`1Xp?~ul;W~$fZ7jld#qI zWW|SqfO2D@W~bxiYugI&pDj1OT9#DvH?n?(kiKL;%U!!fQ{0?nboYwqXwuOs-zwIc$YN}|AiW-m0SsIfK<3w7>L(Ov-dX~6$a z=1em|pb-{_A`4_O^~fGScKVBoE!jc{U}){e$0Zr*fMm;%nW)RGHyZoepu{ zWJK2CRzJMh@xtH#`gPnZ0dCv6wStzkKU{&_Y@gu)vV?nko+gG+V5S9==g>bB8S^8* z<&!60E#;W4V<78@FdYnmT;;aaSy0w(N(r@v*+t$LW&8h#{7FW=_5Wy8X$~q){}qfb zP5dc5V)4QtQpRwsQB*)oFb$=~id|YL%v2apc*teRv~V|u+wU%${>P$uas9wu{tYkx zvJOY{r#{TP$T6C$O!S8|QzZx6u7|3|#}tg#Pub}!vZcITmqFG9cnz2Q2qB8p>9O6= z-~PF2(?BOmAtTczdQ09uX+KRLL&RJJ5`3$@>%c5H>vZq@zYpfX=_x`_rp_Ut44fAT zN-P?~q?jee$?lfTYkaH(UAz(Ty?!!47gsbXH21YnY$xG;D6aZ4a+FNh-0i9Vi(YbHFeO%~k}9;QJy@`~FwJ0Puu$ zP`x{%fG>4WpjT>?6^$8O=Od+KZ890D;Zm5Rz(3@8$@A8TB&jKUz|B;v#`xp-_v3Q@ zL3czR?KF2cA9YA(F-p>|$wYIQO28dQGJ41tE1+?w1PLtAIUB%iJui|XHy2YMy@HID zb*5G3Na`G9%;&v6Zv6fI?SFR^e$*+mq;IaOBELlmqDcS67)27IeDJ9|#>pm?6rQdt zvJgCF9hP&_?I}t46Bssu%^y#E``4VIyKYFI*Op`F{)V^NxN-Ey%Eomz=|xlqk>a0* z9~>q*1Sbtz=Cnt1p+&kK(!UrHOK96oQiAt3PdwCDLW?ouv=eUr`JK+e_jpP|%x%0k z8uRy_Q&aQI?Vg{tIfIMMSNm_I;9=h9>{I<`f_EJHI)-aV_mjs?Mt1g;yEO3=c6L0z zG!Co~nW;`edhdqJ$u)?o6_x;7_DveLu#>dLl=C+3xk3R#0vZ#d5 zCGdE?vnx(UhE?{t*vwCZGw!-ROVg6Zl*! zTmQ^~_psAk9SS_6*FgmQjd!cQ3n|{=h1YWD{yA974mRva?zP-8O_d(i%_~Zb79f71 z(5~u^&kmz1;~Xv1WoPXKp$ffF0{to+Frhx^qobuYYV-4^R&rK-GM`BGk135e^%2LT zTb9kX60u4B8^y(Tq!UASrujA$ik1v_;OW4YbSn~RHFNLMr(*V77EpnLOqJi|FXlF4 zgIf6Mq8pt8M@*76SUU{UA?Dm)_wT*QN&4XQRqm#b^V><(#AU&hwNb%hnP>Xug`R@k zPN_(vtnXQBJK^etl9MJ$%pU{)WMuSM-4E>o?F@=9^Id2Ku~=(b<)QVzfBypI1<=f- z0)FaE+Vf2e*$4y-l5~%W47&sW-|J!HJ{P-p??CT@xUh8c;0qDwxjK)XIe;G0MF4Z? z!omW`7-Y#&qE!)a%#UXb4*2ZUQ0)OI^CX`;ejOQ9cTY7(5D}z}Pf(wKi#0Nx3u41~ln3fDyahwRL|M4>3Fil1*xSHw^B5PzIG6@Lqovmlh>m+ zw?NA)I9T)J#}6>Bg$Trl9A1mD)2}WJIFf)fV=%!mwmu`+GF^0Ge~J5f!`h+uU`^3V zx;jT}x1S6zdu|4}3q4GY6zuil>gJoQ6A5MX51apv-pHR9{OMFL-kinvb2B59q!oh{ z1*x2{d`}++Z9{L%hDrAyc7kEH#LPlZc>g4?h#3$-3y}liee%@6I`06OmW%2fPwE;l z%E*iE4R8s;CJJi|uDj|`C%@PrI=}hPAZkkjnFsi(gilwMnHAaQtVY0I)RBJLG(l7i zMpz)oZF;P+|5L%8rjFpGxU6mK?DfiGIP@N~+rcBQyB7YETUO4`_4wxYjZp;QwKq2y zE-Dl2jBgHb!q*F0+irO>T~I2hY}SVxuifr?UsWb;M448m*I!nVneqPY60N@siv)ih@IP*8LA<~4tHS=V zlj( zR$!1U$@rhYk|^TESv9cHk)Ku=_@2&u1v^fYYV8uej5bjzDX?p8GWn4OEEa87 z7kgl`I`seK6dpzR)R%MZDO&|^)N1)> z`k+yQ-px@OGnwZK2hTgapVh7THjFjmUY;DorE-NQ`)K78(Q6TPT5#rkpAaj8R;>iV z;7efwjhKYk1(9CGeRS20AOfZ2t^v9^T-~$KO}^AKYM+BTTeMs@4;`WzMxyF=bWc&l z)ON{`U5W(WOpuk7_{un`Jtm1RGd)Av=kGdA&N3i<4F=7;6uDhEx8TQ-`C#|q4A47E zlWC&kVx&+1t`?(SF12ilUQPrK(Yy((jMGy8=d`y(L(cHtfODo%O;~}tC*%;8lIK>e zgP@zBY5nfISNI3cLWLp7a}Jc6s`O}Jehf?eIAkrvMT5gvq0FSwWMSrv^kV6(-}Ik! zpRH|Rsq>48E6vW&^y9{@TFrySN16(&4~c7pequ-~X?ZxrMiSMDygewwo1oj+Nr3j8jc zV;73%oebKC>GqWOC)%Y zU+P#~tZO;}Wk+KW>_g$7k$g-;_M-4_CxwON^hQ>IG1HZ-XM&cxZEV(LP?7xj*g){M zg2m*d+pv&R_oRCFq?^SgKR4T!8onZ@ykd=PBoz?>?G%)dh!o0;+k(0uNip+hx1Ye0d zh#J{8`+)!YNHtlDYI_~cU!wg~v_Dclb;!8!^UFusxdHsqtla`l)F#C9?vT8#dZ8z& zYN62wzkJpTU<1wR*HTDBaW&HsSlnL>zw)zwX;-``Lr>If*`s5VZb17qZ|$wj!644` zD#x`#LR2<&*zO7A9fcsBN14CrHDrmo7a_`I!;?Z4I+cHTA7*D{%M)qVew_g?#p@~T z6P03q@isdC3whA^*auEben)Qc08eqW^(~*#i<1EwL2b zOC8fx04|&6j&h9W=&B(x#qm-ja{sPXF?xSjQmQMzS!@_Or9GX2B9d+NYcS$5icKF- z46&dmd$PYz15U7l!e6*ZL@_ zi}@xbQh!lC_AjIst9gr{>;*UlSXJFsf_K+F_-}0S04k$2=9`jL$8AN`cxpigVhAFn zM>BYc%!rbS8p-Z>5cf##pb&3otI)v80y&CTt8zv90*sk3i!jCIbE$6eGGuC6spe;zp`J@mP{ z+3;!^yt^;QZjej+{@uU4I1k)A3D`RmHTV2^^m}jdy!GwFv)>1&hZT0U6FW$Sk0Xg< z*hKs2H`({YlxeXSyE&GA0grR=cRF)QbG58cY{|E*6(@vx!;y;N1paBTbyAg_=QFGU zNzs{;x(tdJ&wF7A1=4+dS_;JG2lo_hg<#sw_(wwB(+8W{T8Xdq-o2b2Rtw_Sq+q0C z!OMHrDwBC8AiPMr_ZcpsuAmTf2La!}=x8>L&{^wHp)z{;{eR9g5HrhZ4K{2|ayVL| zYMwg^^-kk(^QI>YO&qu&!7$Qs7?d2i?7kNE#YzYM5|ug6#F?M`P%Mh^DBEuKsP3S< zLx4#n# zX^4GQQZ&CT@q{*i?|Y;`vKh6F=QA{t;HzA&N1pu)f9@)>d`xMTsrCgOpUhg8F7Zq} zxxWveK}}6?)?06}4FqKt6Oq)+YqPodxIwL_7o2KKCuNO+iDkJ~$9%ED{3BwP)I|ua zwhKN%TJdTYx4fgCys+YZ@u$5RbUl#1a5^M!k9 zZ8K<;immtNYdtsaM(ugyD)d%aRD~zB6)fayA62Rb;UyEOjNWjr<640b@oI4Xp4B}2ALl4#` zPY(VFl09hWZ}HQ6mq#q8GC+&1TXd)>FPF=Og<9R6WfljEYu%(sIZncfkJ`vp`k%zg zI&8PVn^j}NZ#iyU@m;wIr!70u#+)|H<#1T^>eT$7IAkW)Is+`rRTC#U9yRRE{Jtdj z|DX*6+8FSfPq>mjA(nso^}$zp?e$B%wvG=}ndNWth}jjX{+@ca9_}BGN?#`ZC!iW6 zFhI*n?GA@n`1`j`Y=QVwkBcJQGFrK<{ne=1K~&>Sd8TnUTibPzF?}hLImB1}SHd9E z>pbRFnVzEy!wuV5Q;f8KA2rRnm@34=&aT&e5sR$_*@oBBG*B_6sIWYnQkM+kPHIX4 z+vq6={cPQbY^(?h+s%cV7>`1B#T5)O=Uq7_Rb6b53p4T=S8~8^N~R#$3llzMbX4eT zC&}BadVZbwHw89s{&drfBQ6Ade&-MHm_7o832^O{Jsc7Qy(WKw2qZmf z9sT(t=gnl6BIGT_%8X_rn+sK=opVe zaPsqG7#6Tywroxn&l?&DU6nI~aY^&3kNx#AnpN6V`<+cyecm!_D;hv-&f6%u zgh*`$Pher`>r7p8Ysq&$N4?mHU7Kj*DB0SsfJ%RvAHts9xRhpl_gJQmre0}D(pARK z^o5dAUaDteXRfrVdI2OHzr@GeQW-XE#THUq7wQG@)>O{E~FwfVT2 zGyXeA1-TVXN==fQjXXbJS>8L2B>m%8wI}yv@7|B@%%*#4@a(xAp#bFa-L)+_ z^^Zi7x0dNW5{+ocjTCqCA5FV140l3ko%Tp-+xikw z^j_G%=V%gtbT<*1L8X9U>!!E^DS|%;>e>%|`5KZ8Q_`8#j#MNb5&s?yE2e}fm-I#; znP5-{nw`rV5ELiA>`#wYzUb5u?y4%$(Oh%)Pi@FN#|#Y1{y)GJ57?6ZXWo9%el?O) z_J)Ld;qe5l4g9u(LZR~XC#Hukk;nKDj- zeGyhN-FvTUMqE&|jGr;glCy{+#C0c>CRX>I94JgNKb}=O02!zzLR7F`)Mr@&;O$+6 zqM`&2H1BGC9_*89Ac8`b06f`th~S=kFkj~*>85q7TUSU!1nFWmwz4=>(A4hY@$ z#RG;x>*#8>4d>ZaP6~W9-X=B00HIu~5NKmdRKc?B4DVA}E3t$=j7ku!%)gJyQrWWp z+%9{U;TVV+E#fTD_?iE6KQ?sM1 zAA`@@>Yer@kiM7p|4Uc38iKEU3t90?!Nu7<*;PhbGK#y6jz|gK+3b+PfuX_{A(1#? zW?;K!=-aJ5&Ld}qmk=D4$8|e6N25$aTq8p@-`!EP?ArlBNyo}he||bvozC>Vl63z$ z32IIM1Clvp9-YYcyBl&gJ*-3Zv_H)IKfQrNe<#u(7*J<%-E;y%xovxaYpf4T49b95 z8l!BzpJP_{#_96jNyPB|kmhIiNg->t;@a^HFdz|T+X0wWH{Y0o_p0}x`j zv0;M}4L_*4V4a5``wZ?L8Kb7Z;P;sFbO%TS{g=)FBF9*V!)=io7tvf&(xE@B*b3$1 zd#OiRPh!2K64hmhxgRE6u!M-#m=%gF*R+W8j$|3WejxMvJ2w=+=;mOSxQRa-tLa`iTl>=Q#yh#howRTi6=vut;nYU zS%QSSe|<`##3kw_N`$KmvD-4p7)bBmGN^s?=hyhw1aDP&xtAF!Bsx*EtW*3d@apf? zY3kKa^VW4|(Ht@NaZa(9jTQU>FDuOWxF&?~M|0EC(in4%o;~Z=3#IEgpf!Pir$5R6KhhHgi`&PvGnN+QdNwb2$}Ue z!BIb8u|H0`>35?*;7Rp1ZFR5-Z{ksR9?h#FRTiY5tcGq|Q^7++x?PyD1RC9y zJ}L8B*Wer__B|}8@#745OI!~f;5{Q^JiPeHa~bS3 z0aq^oY@aoX9d)SU;^G8*r&C6)pYgwX);OU zGm$zC?s`aoj@TNme-farHCHy*J@Xo@=E3lELTH|^8V?YS3cdkr3t*b5(kBnKf@nX^Xx6PWR7!0taI<&EIac@Qn849A3!;_PfVUfh4U0_ptkA?>Hy!>fD zI}7v%3tB@1LpKea`{J<)vyyUv@`%}wmUozOv1BBD%IuaKD3G}m&q259 z;&fzBcjVLO@5WM_TbBmLPcO(-21(7Y5+Zhk)F+ij-llSXI;Ky7z7B$!E&(9T*ysx4~LWNR2HWu9w`LaI=5hj;^4@Grw$HO^q)gRo{x=Dhk zSVTOz&zi9H;K$uAqM!7qk5f)47xScGOi0V3oQPRcS}yV|)11%**_@VigG>1b`&Eq8 z?)QBjsVZt7(>K-VK`E7PZ3vNqvT?HRl`P}{UJ*qivH&H4jeaxC_tBXj;y~LAJ~eA= zHuc89`qguA;QDTrqk7GxtSZ~n^n~~F-)P{IlE#*u-l;SC^(@H!hY$OH0dd-0A{z#^ zdtoP$vUo=K(J~f zlH(OSe=RH=9Mm8}OSTqlJ}czU?{HYIQLEA0>aA`vE5eWe3!-oZ?cob<6B?LWKGOLe zk5)6BI`Eq}2j}8GH+elx3XZq^OL(~l{!>8XNK5kq7%8wYJ??Oa3Ld^}%%oco?EPgW z4-W+?qk)%=B>vUswS#J;&`9ZfgIEXWU!Vi*(|P7{PYuf%u|?$lzTX1_k(hCzVX;`? zGu~k6MD`kSB295gY_q_YQ_;8trfHpJ;BfGfe+?=*n4o<8Wkav#8$DkYewF*@heDNn zwKvk_*I;L6DdeMMhC`U;ZVA!HfWx$Leg_n71FfA2+6D~OG63#CD|A#KGy@^%;v-Pt z;NWmGeTw*i1n%wR5BjRP9&1c!zAM~519#VVAmG)<==%#y1HibPwcV70qErAI zT{X!cVhR*WR1i1Rq(ePO>wrG9_Qm>-Vv>?kv15sHDcPlrBm7^K7Pv^ds-AEt{P+~F z1d(p!?v3}`YzDMTOWGW9-%5irK>DMJQsNR(W4@%UFXR!nT_pXy==7xp&ra=BPKsCN zbh#5FBT#ie$nR~{mE50CgjAV}c?ln!14QnJWivZ&KWHT-JIE5XhQG425{l;eL8exd zlOTVh`HMuqiG;-$&*a@idU_V3YxDBq^87zB z4m4jWe{4kzit6z%0oyFad>}nG6xrS{?riD}?cl{?Ts0=tyG2N&-n`7PV|YZXqgMtx z5!PwUrTljnTp7L*@PO)pxBkl)xb}-zl>pmTtF}>u?*E;EI|j>BH7u3pxg`TCjIqz9 zDiac}qRWiTFS6T&E>J3@^-}h!CF?0zRN)n5WE58iR z4)TC9yw}*un5pY!@)AhPtMC(rlZb6p?%8(z zdbUlR*#A44uS*9p+h7W#CheA!FEt9Gl2w+Rj0&!pa*3U29Z!dMZ`?%Vr;q*&Cg_CN{vNvp|ykV816wr zDoG%S#03H<Ln}r%5eH^Bo-AU) zIjXiw+;)Y5qw8;CQ=Flp!5A&d#fAU1bhe9yP+1GIm+!N&x%r+C53`M*pI<$x;;k4!m zJC9gRQwfdiobd>`;6_u7h#72>bsL$PwSkHM;oq+p5P`=>cGa439jxpIzbLkZNuLx; zE6f4p3D^Ul>@G%WGy(4&vg8{&iiFfsNR_I9i8#cyNeYw~mFUr0qft8^_u)J>=B{Bf zv$qEuG2_2~yCAl%Es9nCJC2aCB-thk_B@PFr6l;|4-bF8D_8y;E(|>A+jIdsiELiU z;OGYyRFB;SZ*ba3fy%fY56Q@ae2#>Ic8E1yy*RVS zWa1$)s}CE+iSg-l+mc|v95k8y_uFbNS{4;^wx6Hqew?0Z;%v%F>_}QX#Z2i&oSrVF zawFVNAB#s%->wokNLHw1HV9$3#kyfzc1GqauuLpDwkfIYy#R?sjdJ^~S`%ZCK;r;& zA1X@<0EFJ=`Vc|VEWaHJiu0cW`?v-8gAOWHQuXD-Yd6Coe;IqK!)v{_)Pw-nKQSd1lYimd}ZPUxki zUG1^uO@s~-u#hR~z-|mXrbbGQdjeQeJUL~?cyPyM;kzgm6IZ%6icQ61THjIpn z!V6R=zcq(_KIk}fH*IvYE;soq)_w(YaAj5g7XXr~5Z;tN>wqoLN#ShzKbp=vp6Wl| zc9#!#}Gel)SJ(ft7r z)u!N1K*3>``TfQ#SsW0ogN_Gz`!?fEV59i(Bo0MK!j?$6~TcYzZ!ZlT1<`b3l!npd>RI9eY%}+b|M@R zVJVFywq+w}njdO#eKd3qFRK6`x9a@C|>WL%_6$h@`Xz%Ln?JLV{F-YuS) zntm*~=Xde%$M$&X?25Lu=6 znDmXUMd7^_LJS(;-rTO4oh-qZS&H8rkM;%vM|M)xvEg>@aX?3)RGeA){wa^ty;n)f z3)&I6YPB`<)`GNN00a{ z!B)XYR7|k0(<4V){o#}Kuxw6OJ9>q&FBnzX!Vo8y)KqO^(mZLm--6n<=4l4?Uc1}L z(&rji`?s&!TUwSPxwnq$u?}}gW*=od2xA@-7llg`aYt;n?}xd>LJ*mswWgLFzuMJ4yN7_3`nVqPmMZN`Ncl<;r=*zb`3_i}l{o;ECE zPzx~;hW9fMI-<<6_@X z0t79{v6c?_{q^R)kr}3pn(JvI_XO}W(9hPrW@;^TubAeceyjhGk?6M;6_8Aox#7E` zh7Lg5#6<&0eFoSzAMlF-1CW^w56PjeQx<_qON`disY#jMw~~A|6~H>4aulI(?RZvQ zqoe)Jw}+kgHl0x{=Z9zM6nH<=ET`|0^dNgdbJthy*heX6*7d#wm4`Ym{7ds#r}X=m z7yGRKL8Lft zDw6gjN9~@|RwsGOJItA(r)ShG_e}3Y$KjqXEr@(9qC%gn0_rU2}5O zqZ*zqz!&<(xw0W0QHI9^nh{tiH%;lQp>yY^)3sFY zDz~BuG5<4R%WR@r-0E=990Jw_nj)8-oiYovEaEXrKimgL4DZ-cogjC`YRe*&CT{R~UJpA~8kNT~2z?aJ~o*{B%uG zP8902;>yKf-bL-BiSF44W^DtAR+zaS^+Q!K5u6p&CV~hNvOo%i6+f}GmUFWsu`+iG z;<=v1LnC7&@z|-9A=n7KP%2ji83OZM6nm#$fzGB^1FZ;cm~0T$TLsAG`Qz#lpNuJI zQKwl3)ZNrXj+-xh=lKhM5=Xqv!i=8yuT)vr3fknp>(x27DiOdLOufg9&q|1EWXRjM zgju~8^M^~f-P0cO6N3X`sc&+ti&q}FmwX12P|PtCT?b_h()Q6=%?~1VxUf*xC_&hm zSj>_b=@Zj2x|9TSh9XoNvc9=F=7p=X#~t~OI7q|-kYYHwJO4__Q&Uw<18zHT&jN4d zYvhchNSy3(O4p{i(j&LH%;yMZCo%;o*hM~k71v^}Ej9nzp^Lg=71YPdsu3QF=?2F6b0zj(@u z8D@(NrAjjI)cPRU4BcQK#b{!w*mWpcv2V$7F$iV>WuiPh%@#`G}GJ%hJDL;Y~_He z!S`kImhsf8*bc|O)z^(zB{}k1-KrN*$65xn0ovOmlLKrj^3sKE&sMU-?_UQMgLXzE zQ`}NNY26#(J&YHCjSsXKAmPE=x!$?c)qn?+ONqc0A#ErD*+vO$U-OLQ2t`O8Qgorz z&7cnpJV;%T^f`ovX{W2-6!tcrs>tJLEJnY(4ivY1aIRNp^w@n(wM;J;!}5~R_Fwj2r^ z2pY=kz*gWwD%a!#L0@6!SmZvgbX<-m4+;B$v1${0MW#h`Zo_S!e|r8yrOnA?kaQmJ*AxHc0+=jw>})2={Tj>P$@i`S`u>>HGIxz;<|RYL8Fmw|G9X! z`Yr(lwAN-}q6TaVBxtHHexBb1!|W=9GRKc2FEaht3T&Eo_0+!##j}liI=MAgJDFdq zO|^J0O!$IhZ97Myz*&D1>=)kWp{AT(K4M%E?{fXI;QoVWqcm zoMiAwOs(c(yPXD;6vp60O=gO{f3Tmp_Os^07?7Sa99-fK|LUJ)ZBXBqhyOIa8JQNa1s zi4(ylgK3Ktxx`~1DWSW`)ay5TS-kB%mz=jOR;=51askjc5Id1n%GOvv^;dO9Nlih5(Gc7{ju0tLp2o@wE*l4!>+t^0Jhx3|Qq~1xyK$4vLo)#w;tt42vfL;W;Lx zr{_M(8#FUpM;u;@ERk>N9vi4v8x+IUoMyd@-wWy%=q$l|&c@4$-Hzcl=1)XcK0>)3 zg-%R7YqT?`1ym?~-TW~MIex;b?Z!} zTaXms7vLL(M*97%AmRcH3OV2pHYqh0hiOZnaLkM zh#mZS3Z#34_w$7-~t%$_LBN-G@ek zs^DfC7_Clu3V*OF!p9${j+4pw8hrHxmRJCiiXzJPe$;7m(S@07a3+>B5dwvr)X)=8 zy+h&-Yf%--PC^q^p7*M1Mk1m>aZvKP?s=%OW3+j5Of3HThxVVX_q{=C;m|<{wBJ5J z*}mN4#@AK^*5Y2?;KKs88wf}nw9-@95G9oGq1dnI>}fNS*z^0%bY|0y5SQoxtHTeC zBBwLBtfA5l%Rs(nsZhX1^(FYJ?$B_$<=@Vin^-d>?o(>$@{XHf48!ggIJGmV_Ld1=FPy zXaDAQ^!)SX1j)ij;$PZ>EAhf+Ji=4cYF@GNO{9sN3NW&fIie;c5Y7hCcmX%-*9d(4 z!>_D_={T9?vo&SZ$&+xqdK1B%7}$z|0L6GphO6^eb5V)Up6|S{{ym95|J;jp0i;eY zd)U4TPO!xC?h;)Eu7eFyUrhSs&G62?T}i_qS7Vc@gI`3{3ZdTU68f$7;M2# z6S0aPgUw3!d@njLGn(8qG(=w7zuO9CXiPN+}n%bWA96PwBOqMXIs;0PIVf*EJoXz#aqTE<0kF92W2OO zqN{=(O*$Kc7{_X?H+wkpQN7|dj!y`+O!bXT9@F5-(sPz<<+&0@8dQIUwZDTr?aV`Q zDNx0wZNx>iG3AlcPOwGDWsmPa3Y8=JRIYZDH32NRggQf*AXQ~L%m(BNaiF5zIwpRb z*6E7gsjB_3)CgJ}C(w50__20!WvokG{#_=S^#TAkx4Nhh#!s4|ZR~Q_3uA!Vp9OVh zwUh6bXD{8Sk8S*d2} zV7<$VsrfUC+}>9=lbK8}tITO*mcLi;c$+*vng6{o>G`?*Le+rSk1FiOami^_Q!L&(?jC1^D6PpT@JX#2%Ncd)n5MtGmSsjjbN~X2q zezb_krk0_BpP!C0zroh)Ee&_n4HaO_OT*cmVq;HNHvu#Q zxMf3_zP!aBs~pq8)r>22n|`w_Pl2ejvGa*%lcmb?sCE*ci;)o2b@(ir1D$Djxt9=r z{|dOoJPy0vRVWu%KB4IO=Fu|buVjBNTGTZ+>q4m>pMktDkQ&96h~UqZ>JtY%@FO2% zLahQFO3c3pr~e$??#(*W&@9iad{dGRm|aS2*aNGr@CSd(@&uoN)R_;S%huVLfaQA& ze_u=gy-~Oif+nJ4VvooKDIkFHYwK1@n2a99y?k|Q!S5-UL7{X$j!ltes zsvIfV_qn8>Ij`Mm=!hfDd7Ij&|CM7>|Az1^_3imDH;i_tNIvzQ($EEED)}Ge?)ufI zy3}^(V_X?htD`?hQW3HQUz=b-tU>)iOv%1HTa44fVRg;Ii;L8x_d`+_hhtF`U0mqq zS^M#+DcukOYdlhI5CUUk?_+L`BV}+ey8eMr)rKnt$?O-#F>#;WUkO0H+7`#!yw^~| zEzg2BlW}UFd6$Y9We(xf`t>`RKl8}eZ(#V0r5BefTmGnD3DyOtg{1G?{m6v*BNDFS3@jAFj-d#RtdrNu!NYH(UBo<9Ik2U|pZB5Xj_YPSdbAT-rw=q3 zb4z;eD^tC5GA`S#X@B;@twbZ{li5sQ&aH1J{&l>Xdim;_}}>0oU^DJ zB?YG|EiUz<+7jwA)bQKQ@9ev=e!xbD!Eld8*RgWtX(t2Y2dFnaWUBu#e!GGNO zGRv-+9T9Bfv>kZfigf{21l)eliYA7u%&n~ftI-F9!@c3mkjXs(sGN!e_W~-naW;-~ zOS~=aCJs*+5O(0SdKyQ)l^p7$^#+q%WG@&SOJ4mu_(WKYN^vqsb8i=Vx&1wkO{HN@ z#EC@TMUHUdM6qp^)J48}a^3qV!mK^?(n=0!X(bnU6A>}XpGz`qqtsNRv=I_>lOQAp zOj6F8Pnu4`?m3J3uXSKoD-!>FA3e2J8(XX4|BzQVZ|~(_x?CTv`&3j7#_r=m0h$Ig zeXm>ZxVbJcpC&?=pPNrBzsXQ91TnDIi#1jQ4pC)t*_vF5JbiNR?*dZaY~DV+A8v{u z`mF&!X-Ye5-i_GPxKjqUfX#H#T!gp`3Qbw!`KIxVE1R2z=Coy0DpUa0SWZr`jDENA zMrF!VBEWF@haj)?Ax;nlf!%Jeh?ThfVDO8#pQK6|YL8R}-JI?ZA9R0grlZ9dA9%^G zqdPeu*VOnqaI!(+m5Vf*9QfQgSkOHD{O5CgBXBHL5Bq%}Qi$xn#XB}ice`Cc<<6iO zD_rGHA~A#I81E$3BY7#0c%WV*M z5310#1AwCiC;N3q$~A}ab?ei3LT{rmbE^@J`AtZ2z=OZ7Hy;B4nOH{~5c6O$6ZUr# z5Dy74FE@t!M&{W_2bP4ameF=N#F4$i?YA105~ricp%zxI271X z?X+-GG+~eVhP7u`|AH+2Q=MZdNp$1Fb9(G;wkq{+r(tbV?VPTTJIVLC*VR8I> z0o2#Bp(?E{fP<%ukrU1$IisDDJ*TMfQc~VpxL>VA-fJjB@H-ND2nU5Z=58wEoM< zPG3RuH`zzK=sbJi57w~LAdq57RQjAwt{eDQD47{wOCSHzu(7q3_BrPt9N@H(pvhd3rWIHeoEHBA)Z&Bz^+Jex<`v{`ihO zZ_CGZw$WT~z-#tEvf(Eoa}FGq*jHb|$+DWJgkr%Ofq}c89&KitU6sLKYy`JiY$7=j zvhrp*&Q|kqgOQv1n7kc**YWd}t&MsR)#YIf@};jSFxQy{;J^T=HBfts+)7JMI{@V^ zXj%PT8Tfg48iD`#>UX%bABcQp5O@0q9{>{#U~(=kE~X0uQMYLpvLJ9(fGLF+^6pSV zSQwORy(zoo2-WrHwW8JvrM+)$1}xkG991VmWFBZoe0;7kTY(o>7ZYb^ zDa&FKUXCC-!2z)C{yceTeV--EipJ}v|27zH0caX1UfadWof?b^vfe%^(D9id z^L%y3X|{8B39be{G@yJQ5+uI;@0Sv>nV(;yNvZpwCs0QiETtUh2cG3GYbQK7?N%C0 z6R)VOv=SG|QB2;mc#P>!i6JO|>$gclQ$2f2@_tkP*27+@1H8JoDnbVx8*#rDG?JGt zEuFwscA6#WUiZbR;kF_6Q$@6QsA|C4+LNl&Xj<5GeBdYnF}Ji@-J(TEE(PAX8eV(2 z_5#U9Pip;NvedH}`Iq5DqX^K`3WD%y4*Q2{V^&=8Y~tR3*hU$#7{n(qYBzMQ!y550 z`d@Y@kL7b?aq;UaD?OIJ2~His@Y{cOe0uG`ucPLywXO-@bD3=nYD!a=Py3j~W+ z#k$LBfMSrESJ&w0?B+(_k*evz#qEHkwX$AUn+vZnMWD#fnrY-+m4i0J@*D`3;cv7H z&{V_`NJ=W@I79)O0PaE~$vI!n3fJ%M zg(q)6SQDZ-{e{3Spc2k*9KL(KhGOk_5x%Gxm==Eq$WG>oLSUNy&|^2l^`uS%w{766T$^s>K+zb>>oc} z`TKo)yZ>$e5b!e*E~Z(86INH-jH%zgWDg-%h=^GJAhaQ-&d}w`5E~s0e6hPf>aJs% zVx^8hn9~CIgg=^xy^9LARfbi=5Yl1&eG{-y5f@DNM zu>w8&?6usj^~P;K@KPB5sJrggP4o>fuK!&ixdcy<_3Uw|Xw!z8-ECPt{%(~qI7I<@ z2t7ydL+fpSzi7TFyKKx?alLA=iBYrcD+d_@ftN$3-eA48zGnM{$Q#I7!1qF8!G6=l zf6H)ca&nNrlo5c&z%;7`B!;>)?ki$-D)yuH&Xp;Ka{DSM=2$OQkqd99(!D!)O{Epq zK-PkHs$$gbvN}kY)*4I!WK!GSp@_LCp2+6UZ+>4RO3pg}qi{d^hX7@VKG5Wa35Ff= z!*c*U4gq^-Q{fGMyZajjs^K6P1cRbqr)cdTuUxMum>PxS1eN{KBgdok!4_onNr2^w zAa0H;pU_cEjdn`d`eii|!QuxNjq z#c4f|90y3Y;F|&0Sqgv)O*q4gHy}U=LU5wk>3P{ySmH540vvT(TE%dKqz|{YmbMCuvZo*S}18jQa1cnYU$O-$0kvYJIRq&3VFC3^{ zPW-!EHNE5z8)AdNgGCpY8_V!drOBl0_1Cc)9`4ATQomL1Ba*elr^+F$#SYKB3<$Un0n6EuPhet)3rPz+UF{uzrE&ACt0N!* zmlRLji>5|wkca5P`%qnW@*Rx0vJ?q zDe;C$wj+EG?A0%zrnm`6+&IXaJe1K#G}rj?ONMaw-FoMm+4SUOR|d{VmN5Z?=)5hE zDy_xT#`J0{+GW)!@K<(t41=_j;UoM}dr_k)-k4_y>}ZcLKV2A(6*qgRd2gr96WADe zCxaeHNx|%h!6-l`3G!7iO;?$@9r~R`8Fab(_7nEI`3%q}A#N4Tc~oIia3a=~X3=(_ zPRDRq(}q2o@-QyN^j3@sgM>H!bZ_w(%g$E;b6tu9{aV!KCWwMOI-~;TsPa8f%*C_C zK0f;e6luU)Fn@VmbMR*39=~@mjqxygnh;FP>7-SNIi_OKm&kzg<&q09LIjDe7 z76Pw;7ZPX&V*wN^Weprh*D}*Yw;wdi47Iwao?Htl&eUmQQGN?bPQ@;MU{C>GnKprc z#S3S}V6*^Me%muuMbnNYrKMf2ejr2pbMa^J$QLJ!fvweg2N>`Jm?fy`qG@aMP?ed@ z94aiBe#)nQK?k4sJEQ+zhBkfe7a)b4g5;k$@AU=7M;^ZhM2)UO`TZ8xQWrp(molJO zF}*_Haaj%wYWmBa=OE}0{NEb@rt$B!hczzNZ$)a)dkC1!tZ4~E9$Ov0Ym}29%h`qm z_>8}laeOdT&)=>RN+tG9WV`qLwxTXo_wXx(N}fh_73c5&6c8HDPvi0GBIF_f@z2c2{Bc7W2;?^Tv3K&GaF7IS*pG_r4 zED0ghTiu;fp2FRTEZtL}%&3T6j0D?r{vh&J6hGO!5QsSjhN}<4Sf&lf^=+P&$sR9b z1Un-;EW~3H1b~zdB#5g}swl^Qb0zO|Ri*k>@0^;Khhj<0JUw)2+?(6G`18KSZ|J0% z1Y%v33oV19yk?18ht-(Tm`GP%l~G{R06>`{sCgO+^9347yR1bet{&_z6?1KbD2aaN z5aUG5ybJ6a3s)Blw*S$?dFDMoVPY3}d_d!MXer;Uy62sig#TvsC4xB0n-z>BHCCWCwDyDwX2 z+v##E8S`g>6>u;^!hMa~^t2Z|Ul~%qIc%UCh@$+wbURB&?;OqCClU2Lj5XEIcQ$Bk z$03xujs5tnnL~UQ%f;C=Kl}IZtN5&!7EvRRcckDA-5+&25hBNwfeXMK?}~E=J#PYn~u7|UYhW|AEDrl z%o)qqsF`(=1m`$-(qHaWO%XGzXFi^Ds`Bgvo@!tQX_&K#a_fyifUINy_sYx9kK<{o zu3qzO_>c_TAgk_M(+>p8RDnleQog#xO=b4m|I*eT#f4t1e zk#Vzf76GnJ9?K}rs&c>iJulp$#Dd?F{ABG?4W<7;IQX>$r-d#%stoK8LKQ!XNYQl! zV_-ozA79OQUtIC_J~?%hdEE2WJ4zshs{n$hoYgA+@;b^!(0Gio?~v}j9ATW>E!rST zAh^Qa56Lp(GtAqm=No%CH~di@!txAJZxYU#y)5QR+YR6Mf8fH-C1ROLK@77MCDeKh zrZUp`LgrCE8TlabX65qyK_f_to}8S#1_R!6X^eAkZfwlO_y9)legDG|fhgk8(dtvs zC%9ySJy}W$3;NpF;Sz9=3RZxCGu3gOTXVg`F`iObEb?k_602spNJ5P|Bojao5JKgZ zZ-NL~d-rpL0e#aN&Q;H!zdYh7 z5Un~s<}eTEHSfDOUo!CB-11H<+9|B=vuoWCGqVt)pYspMUn~yxX9fogrtX`O@bnS( zlt=OEBT0(qis#?Ya2L5roS!D0FAqqjrzbv}E9d>%fA}UQ^7D58=Y(~?zVpVtgU1>f z`L1aO)e?^Y+3~@}NZ`?atn}ZXudjAUOvSwZC7v{{OCbtWSCW<8VQ?G-OdD}b&?D1$ z=6`&4JcRf*T5D-x7isTLSg|kDfr2k_{TY0r@2Aeqz8HAA{OGVLfHc|hdU)shL?OFl zmkqDqURVxp4e<`x{{D0?VDBPheFYUFtftN4{)~}PC7}{o9I&LFSy}4}8fnRac(xw- z-TD$!SZdyz`k1GEeP9~}J{dBIN4nud2+pXXuAm3B8tV{WH#(L3TNN(wT0oup{aP>- zAdYYmvM`7u?P}C?*z^v`L>9(NvPQtL>u~}L2DaqeE&!e{a32HL5X#{1UD8e*nWuDk zI3qy_N>)ot=@WNp;9hIK7J4~XrCOK%*sNseqmav*5?q(OBhI`6U=N-1Fq;oDs1%Yh z_(Ss}AI2k65TDD?M;J0#b3bsqhqL7X_@5gISd;!ZsA>D zso?+~2-3gQ^Ivl)0xdNb;c4N>;Qw!lM}2wt*l4Oki}CE)EiR*ok$j5t)ym0_mX`TL zX~`MW$8|%20e%)sK+9Pg&n74y+xAYgzV?fm!Q{rB(tq1S|7L5NkBWsWBslUoP8h|; z)udi@!p54$ey!skzMmofHTxj)Ya(&UMI4=IaS>V3E}ZFkc=Li`z{%0)vF1so#mmsI zcXm`fOln_b>lTT}yj~>n%23k!2D=FvrjnAs8F<{Nz%SkT~SKZNlEKVVpdT^aWE`*;^_AF@y3Qq zmXE8qxu>ns7ZBE*fQw9A(yJDA?g&Mwm`3>@m>qhMUZI)gZUW-NE3X(x+_>3fd zk3TQhCM0ObEHjGL?seWf29Z$60^mja@-_fKf-$4lW#z|Z%ai5{#{9uFzUSP;9y9A2 z4b$Z^!Djt=gax{Nc|EBEN7v@I#qg`kwba{}-Le0=zkgSz^-4;jhGdzTmO1(E&Cjh5 zW%~c=+56!-n+{lzT?>AzeYd6my{I!f_P=t^JO_~*KA>_RK93aagmtvE5zc+e)}$4s zDr1o|O^fIFsNr{>dL7z!D=%`NH{EX5k3saZSKYaQz1!_-F@p&+a zpqlXe(_z}Bn|JF9)$)?&S55^;uMe>L#x!m^?3>j`zAiu9&(mudrF`JK9uZ%~*S+Im zSRNpZ7?L{h$e;dR=Wc5!)TvBf`8ul!jAjy7t<~*HRtBXSfUL;;>M^fp#(KtHPRawz z&lC399|AJgGo{`0OiI_ioeinovI&`i&4Xm6=0ESC=XJKBNB-D|!N*CaooS9^(n!LO zMq2TKEEH)}nD-Cc(*B~DL#rvx*rwEr03sFYN7hufua{j7B!nxsM^q*11G{}66(!}~6 zM@gC5eRe(>g8jIk#Yr~p^3Nf~<~=ul7Ao^MGo6rk$p_Q3O~~KEriLeKu3@_LH(v}s z``R-c%Nsxqi;9+tev8rNGt*lBUeIwC*hheLf`H^Gm+MN-(3EqMoZi;>t|gVRil30=PdYb zwpfvBvJ-#9FRHdq#ab|L$nV~#UAolN;vOALWDl;1_tg`Lt54l&=%bHpD$G+FO-zYC z%5Z;i9CJ;(X6iL~i8X^cFS)I2$&vu71EmUk;cOp&ZY`Ri&w+g3kgS{_wu&|=c>>Kw zCsw={o~WGfW8X(%IcEZW<1+ zlwqR~OM~G%y_9k{l;sHVfA-^L;SqWy!000;@i014WaT4;d z(VJ*Q25OG>T4x+d5h#|uLx85R5pa&+xfwFkixyBMs_(s{PRFN@2WOUPAX^QZuwsJb zo)?X0y;-Vet{O(dii618pun>pw)<6x2FZ;t17*k1rJ>Y`n2mGrCJP>p$heK{@M4f= zcgWTKrraE7Veh%cBFlN69;hOc*Lo2C)1JmH29fbEitF-VaY&&t;w399i*jTE&&2a~ zc-`rw#QdKpE|-V@g&Cimh>5B{@YT1qSRHL#eii00|LX5MQ|@P64=33@9S~5>95#fz zwj7}i8=-kxIp2>d()T1e!Q^HJZ^T}HK%qDi(kN}dQwuu%)a9Ur49mq#6_!}Ly-TmE zS02?Y%9^N#4tNgUvUg+M#*5h@VRoF=F|hKs&?jJiq^8Z*h%Qd*Q5{rU;6*7^4$tP* z>^a|zqO0C{6r)5`ig8F$W_H+b=AsXsx+3zW5 zx`h#@;`^hff%`*P@~geQtNB>~AL=~gS~ucad}P89?mFJQH8@*2iGdFOTsqaxFr1J} zl5ClCzDNJ~aQ=i6*1Z2q)M@Z|dsy;bqGDYxR|X}mmFGoB#5kWIDQjd- zfbLA919wW!E%TnEHS$OS2gHl55S~7P8zF^LAMn0D64)KAc9Mwsh(W~f(mtVlj5R7K zDSVo=RyD2VcwSHDU;3c5$JKfPvs+I8yFggc*|XKUmwcW$fvM{jeTQ ztJ9E5n*b?p)|ck;Kbco8(*JI^9LdT~ky?#p3yL`YvF;@OA_&r^QL z*QTy}H_R!L2n`*4A^5I#<2AK68HDr=H&Xp#nFm_a z&u3Rc`#%G&f+GSZH8ofc>=+N4JvMM5gvm#ngKT{kKS4Ix!U=Dm8?T{_I5S&h4*$iG zY2d}zo56xILb(_jLc8?5jULOcYX^P+AO(TjS7WqF*P-iBgxxC1T7}Ybx43&K`&?^_ zH+Sm?Lq1FLymz7M5xwpZ@)QV!*awvdcF(8(H+!)K!Yw%cg;4`;4F++aSw18QxyC{x zw<2d|eb4xQDMPXc38?_pNL9O;m7k-ztE($&W5C6m#CrRhUNMyM=-E$|F#*(6tcmcT zFt0}Q-_Zi?e9#j8fj0mY6rH6k`G-95*1HT5Yocz1qBoLC!;rrVi*ZUi!l|nqFlW6+$UszzaI@M8DEGFoP|Y92%1(TIPw&;Tc0i5=P6T z5ZG_xPBp1oRPtIFD?xKJJyHna1X@rIz6=U|LJ9*eEE_8%h*dtJgg~RlMlP6A9j1w> zV?hh_CYS33MutPVB7V6^5}JQzLb`QE1r#z{ww~V2b%h9g!g-;um_dEZw^HIknbCMr z@TNTH2j?d-cQ;0;p`sC!kx-$ZCq+T-njD(I>yeg#T#rRpE!TGg z#_m1Z`T6}Ve{GV(`TY0sT6EN%NV{MGVsywT-mrKi4i&1RFX}#`1kIX4A5~-o!_o=B z9^N&$lSfp>^Ry_6oC`ZHcNWv&eomGUFU)DG#nPuxShZ3qAxHZ9p&{>-XD~T4daJ%$ z?MRYeg);gj`A2#fY&8#sG*dQLi~k1S=IPVCi(N-ZDO<-bi$w`_eg^?ifuOGkQj-%f zanVl#ydFq*xq8Oap#zWwrBxeRoDkp-Vazg$qU$fAF%PhvkR=qq#rjqoqzj=ho6J#P2h>KOb63X=+7CvDED5y(FAob z2F@Y(=mK6yHXD0o5jm9q}m5dgn+}KaA1}SOjy|aLVl>uHJMDqK8Zj^6C8O8tndCKp%<6!Cw z4*kg~-Q*qsnjI!^T(H2yURSR(Al2Krf8YYKudN`#qc+XVV|@lC9}1w?Q1{Nq@Cd;CW5p`CrldTU=G- z%H@?GROk4tnN55)*vH^CK%qbiz#h-*DxZfcG9$25htT>5YLKVqM<1eBEh@w_-wQN7cvGK9t`-nwE zru`3H;6MT%T3se8@*p529&nrmUPwNr55106Df%2(JP)=%*F-0ku0)?fbNzb>cM#>DFFtPWt zrb4Q-FlWsUvq|0V&a}SA+ov0umm8+1t5;xo#o)4Y<2Lt_<({RskUle3to=^^ssc7acmFG4!u~WyV%PCy%5{b+ z`2HWE3flWhV~ zK+qpn_6hl&U4Z6@T#oIR5wX>$oES+C^0U{*Ff0M^62q`6^n?Yzy?Zv<9t%V>;G*hn z9NYNYEdBWL{jPnG^!1xF@DC^V+oCWhBtkomT<(K)B>W*G=MWH7p56jVL_mP~MgZaF z=C+%`Gk8g_#-_if(pHB9VS3hNaupb`RTFqj6L1+C=o8aWX;6}jGQc!b5J9ni3!G?h zU>6h=NDhHKWfWUL!sCsIz7GCQKx+Y37D%;|hK9z_(2(flq)Vgg9@v>4(F9(GhClEj zg#5cEE`R1EFZR9bX7qOyN^Eeemv;G(Ghm7H@zv?jx_9%JFRkLhanrmn zLBvMPtW&53@%xLoI zc7Xw;O>)*l=rdD&aS*<_D+QPxZW^$LoB>ssk2RCw3!(5NKGX2!^Q$LM7z;}aS*0*j zm7yVr&w@{EgxsEAq(%R-fLbv0QqfxZClvcRi%Rt1m}wtwx}d!cNuzk}Q|~E!33I-g zYFxuxZw&r0WzyEv+5c2J)B98WflX}bstXJ&hIOR{BRo7=8E6nepVhf@JrV1iZc!o| z5m&&vey2DEGL=K8=ouB6Du_=hbtsldS5M+hvKCYn?6CmFnONTH_iE!6BXVD$UKESb zlDc24DZc)xDpz*R+vLOdyWSI*e){|32vU`4GunEsV^xQNpre}F+vyz_H_BUFv##=} z?uG9bEg_lm2C$g#T&6+419b6sBna?I&W0*p$x26Q84xlPX4AtrHf(T$CUuA>UPpiK zv%ZOyd5ugV_t<4eAJu>GOd=X@?p$vuX_29N7KQ939b~s8u*9QXmtU{T#kjRwM0IG* z*uj^eRjT>A$1>W)y#i6lo@F3mkBl^Z05X(K#RLAhTpbs=rX~IRGyd({K=|z>rNRL0 z(sYbDE$J6oT+C#Y=A6S8Hk26R7#Yy8W;mSieZZYTI7=nPCJT;bsAClqGM?ItmWdn| z9dc*JZhQ~55RP$Q;kHI0pzLV#16yW9l-SLiaPz`gP$=~hZ#Bqf@eX3*M5D(WGgiQ?`9M>LvKo~ewHnpN+eg=Aa z9_@EMXxYe1ef%db)=Iy+u~C)K`%e$&9@y~t_$QLP0R7|NFAASh|xb0M2$-_K}?18h3q8N&b0F<*KDGVI@HFfs`L_| zI6>D^TJUoPfZb+iG6N8q(4yi6-}0NJafytOy?4q8 zac$WvJ9}>tx>?zKXV2`By(23mJ0p_4GBbb2_wo4Mzddfb?&qBMc)gyld$;M_=R2>( zpF9=lL6q$l|MAYklD{K+4e=|zqiC>pj?XhSX)+MR2Nt8J04Bb4z2^x|3#4-&g&9TR zg)g0Nvcg0y*#<5L`et(uH)kR`Bws!KXSN2Q_bbGj(WGf01HXHxeQ{>4Y2|(POJomk z^mbzD&1MJ9+e3>Xf%mEbEY3M8Jy6OgYyUvzn|8UD^9L8Idx!tJuCXO-M^AE@ze6lK ze&Apzr;arZ%OqLc{u940`mdE}zb5B0VvkM;Pr>jra2o1OY||=>jEJCm>T?X#E66gv z`YDI{W*@4yohOVaX9q+dTP4-op7h0Tkq)Q5o%7$lU%!48_uo$MxNYfZ;eLx#sX4Y8 zpbiP3z@>x6RjVnd>QBwgeEofX4(NF$KpxRDZUv(Qa*SUaGnG+%R7Rwz zF?cu-jXgH`-NY$+9TgSTFu%K2Pyht>G?#~?!+VP-C)gc#DWE75L=jHGkCRqrr2w9u z>LYFgK=#qqoqg7VK^+zny!spYYRSK@RzTW&S6yMcX5K#bh;po?UDoQlt^U{!%J;>1 z@3s?N>K>*$hAIg*f|yIlR1No7FPLES|>f`ubMVOPWuA7vI9HDx#NP_GA!PFS&p)||XjFeXM3A*%jb`}sP%Pmag>3-n2S zZ)}Npap}?`gA+u^mU4?P2ejj`asmK8^<7QmEDe5rNWwB?i_P}Daarc@M8kE_ikWB*dmR=SlZ(tcjnx{Mi#md%`wk%uBK^(ONWrREV5dW@Rs zc>A_xp<>b|5y==%Ki>eBI7t?|Eem^Ydd^g!_)*>n(~hEP{m1=hf}ETjN2WMcQ8B_A z9Vj$G2CO_~fwf&)hAZdaPp`gY>s&cEQv?Tw2P5S^sl94;+q8G|1-=ETP#{TFV0p~M z1TVMH^;qr<fpa#flVg?_hfUQ}lNY}{d z6to{Dv~cQ}nX9h+Ap!0_mspeUG+gc`(xty@7(y&`Q7M3&k%T4@&k(js+JYV{8HV}p zE$8*n_So6mo4mIe?YvJW@3*~CvXx%ynWYSt^x;rU8SSzE^N!|fnNP(}C^FZje9D2p zcpxxf7_~NM9T%uR`pos1-2WH3L(55&ir>~t@ZnA(Er5tztGrKAF0c{Y?#gkDjVhli zDjtG60~|9d;@8KUd_`*7_4?$P3vYR4m>yQj{(?j#$z`~vTEP5NGK3EcefMJZ!WQWY zG?2NUl$&;d&&qDV3#_qj_x5l0Xdd2(LS`Bk^c)ocRU%}UHqvacNp7MfH5I@d7WkDu zUC_fkZ65)7aY6oL?{dww!eV}_R5Fjvi0G*6i;m0s+k*!k&H&p#Ix=z}$=$eOtg6YH zXg8mgn(7U*if=cfZ(y@ZGLMotabM*>@ds)J;q}$LJW0|uZ=*5|Fs1Nc_w;{#)BRp7 zj9ZwOV;k3vl~EO>-ciax4i@jdSzdp8^Lj#|V!6uoT&qyc|5HC|+8Fy@e(m4KrehWQ~cqXobLE{z9g@ia6yvlg_1yAmvINc#`L z02~ydn?Ud5U}8=52;--QbXpdGOlYupo@G5WBoSoZHmdhOZxi^{nx(mP!}nJ6PX)%9 z=d$6o$mUJut7B2ZwGi^IV=@<|=Vg^LJ{A+WDU?whLWPf2myt;M4Xyk8fu(a0Q<}w< zMiXPZ%+eVv(>j5E|GbgmDbj5=M+$?JlcmQiZ7aBE?HX^_TifTVbqj;7j5ERv0Lsj= z7DpWeTX~>@x)!LPO%Oo82>7cE@>OyLb-gVX^MKicEU~OjUAI=-?jh;loS%jQ27-Dz-f*z4(*7 z1?UoDvW$2^IgajpPKo4KV;=hgld0xZ>NKWGoK;JxIDfTK*i0N=4suu!6lTMR1`~D8 zDvC0TR&|^Pjm8Kd+^&d-(kjz*qo}g?HSvEYA6FfQGr{X1T=&+kt`8B5Wak`lRkmHj zt;d)3N?P|CWOgVJVAXZ^^^sS>q?{}jdME|!cZP4PBbA1vc8J_^gC1Abdr*OS!HZqx zZ2ce0!^;rb1bRIH)f0Q3tT%EhNPZqS0E1KOw8*|KAi4X`xjt?M0t?MnpZ!! zv9SR%r-auHW%)ZnT*Af%bCk`uf57voUO5c{@2&M^a4iE~O-#b~aO6!bS%>11U-|z7 zT^z_f0p1no4A2f0W%+CsraPpirRnMDcmc5)j1Cxp!2JF#ctUC39N130T~DMKw8 zK_*}ZHNEe_Xfc=d*hj#C-?EzY#AEm8=4{mP zm$@yyIEF|qGiwWPFf;%F0nod4>$NFUuq6%wDh)r3u_f*Y3NBl(0irrzyoj|Ksrhu9 z3z8kRD%Lr;?u-+!2=ivDIQpIOdyGHLFE}D(<7A6e+JIfvYwu_3`p367V1!^@^qjrt z@31gT5<@OVmyl95XU1vaPMx-9!x-@>TRKoyXpVj8jx~C@`?&)c)lu*<+P@jDS!=rG zdba!z^6H5=egjG0&Gp?;xvG6L+VlBmP%@9wOS@_(Dr`nz=k@_Ldk2Uud$S(4FWm5` zz@WU6eyODlYvHKZIAhV{vK-9zu62{j**Sjt_m_`~9Szf5ba&mFePnH^R(ulfQfvJhT{cec=MhIxP@#b-UO2IF% zB+Z>ZI3-z7^yOJ+ouJSvcTOfN(HHK|H<$oHHvNH-t}aXRQ2fi63JMA@CnhA}`SR)% zCD#Yn`#zU`XIY}|TVQ3m^ycaiOsi?5WY2bHLD>LU7WVT-`ufiYKW@z@wjAU|TjM-% zOA##7YMVORo>Q>b7rQOpsC-`1k)G(5J)PIWbF&v+gq<51Ddd?~wkz@8W;?&rGR7T3 zylrdz!La_fe#UN})G=9A6%F?po5R>T7!iUyNjGEX_v#>6w1IDXW&D z#B10&S%@IXVvr}5@s3-j`TORU%zz=D9~R`%LR~lK47W_p$IpjOK>MrflANhROt4e^ zXT-ak-gUzYON&uIiBYh6>wN52kx@Vde2IJ?O<`8X=8o>xD(d1}Vy;W(;<=#C z0t*5h?cGRO3sc;Du$YL<1q3P3(}uGP2|rFC!ps&>)AKBAOWyw>(A?5k@q~xRdFA&Z zH-7cEu)#;cCKR$Z^B%e8OfnVCJ_?kbHSF^Z6Z|7621<20Hv}jSEu9JgYXO)?n&PZv zdI)+N>>bh?kN$Xbx(PiZk%_fV16{CM3Lr5gzQLqqZn}zwcUPIDfr*vfB$yVKO|mxp zuqhYK^vGHtv3v=D_-b%y;g_eM&F4>nLmjLHzz?Y!MY(EKB*pUsT(KiRWfLj51RLx@ zAHIFgR(brWAdr#z7g-T$m&jlVDC#U`!H(wXsI6dn`+mo!k|S==GB{Exsi~>bw6jBO`(LBlw_K@5tb; zPuGD4Y$e~raQX~cXsxUmVe(*kPVZ5aS)~S%lvmc{0x{pc?yp}%r+8s=tBWZ6bf6~| z2g|1FWFz$QSlBfN%fHioE=-wOekD|U3YGMRzO-|aMdA?9v_V+qYs5xb)}%s}i{cA; zrg}P5Mt^~7^TIi?dVbW+=c#~udk6+v^swvFS@rXJ^}kgEN$|fQT*?RJgr)BLf7U4X zNK=vu-PAF8Qbi@S=eD98(xm*u3eo=dIP7uMv%}vXC&X*n%l;($Ev+ZysrG(pQt(dF zZBSwnP$an)qcBs4v7mD6O-L7_)rY@qK#`lG)i{|H9-PguI-+^4-`@+DV9CFslJbYi6T5 zs6hq%1R?+zV&0+Yq#U@uz#^?EAvfRmb-!%?mhB1k1Rpqw)Q85AyI@3od-2%+ul>H) zCD2HKC0dQ=z7b$+XMWq-vPml(u{`>>{_(a){Ob8o4f})?iJ)u?@3gj6E-@|YYK7~@ zluD)vF7&hNY^TZf?N$F%;~ zGRX6)B61Q=%{~MUV&TVIUC^LkIJ|LLMhR`RQzFF|=NPOX{h=uBtUEcQjA>+FteN$; zc^b-bxtaGsg}7)?HR(KYi`IuPb2u`UXlD6dlfcF9EeS?G7DCqjAuI9e#kx>sxIcCw zhaJ7{S?TiU1ohudUtMA-VNQcUS`Jb}R%oS-OcB6Lg-bU^|H8J4-6qX4YaP*HYMf?~ zy4?)!RN*Log$aIF99(Ils60U^gw_`pAD#GLzoJ(@7bWucFm6g6m*}xPald>T?(aWx zI4ITDFOc&T_3$zB1lcMylqzjFJQWY+o&P$y0HuLcoA{ykk|55_UM%c8aovE|uP8iq zobm(j<8n(KY8iPO+VB9m+LbnqcZDd)&;4G;l59{rEXoKx`VDv~Cf%3!tl#w`c#x@G z;0sG9167|(p`YldU@zy92tlB%%L5;-<{vI=p*5Rogjb&QuTwOm)+<2JKID36sSe;wSrecvH&pDmxI)p zUj&ZARktzf#=2S{5X1yT9$A%xEpJ7F4L>Cq0xmYW7ESrs+Y_wSxUgIh{Nq$8c}WSC zteutqMr&s0;_|m2JdCx%-XI3!<`>PwsNApBPa$6YPxgjtegk~+8&D`Yw(K^HkAs5h zl{Np=DS(<+RR#RmNSqXqy4w(yXp}}p04BVJ?wv{dKnJK2HEh7g2dID6pk2IvYSP{=FSHrbwi zJ6h+01el~lAQ^epbSah(`%w=d68r--pNxPd**zBr;uO!<*U4YYK7o|v8p=Ac8rEa! z^Zs0v90Pg-0JJmckY$?$yRy~ZBqVx(hT$KT+Sz;%O7c=q#+$5OZ)_gHJe~$AVxM4P zE?>zHzzM}SoW_4b1krfG3NZQ*vC+$)>(BaIuGsR%9YmrY)k#&CnLUo`*yM10b~6|j z(tavXE`X6{$r3H{`i;NyLkNC%9<2rvhlA#7?%iE&2Xv^$mX?L;CBMDf0R-4ikjtnw z6p!CufW-oiwE(SM$Dym?7vR8~cYeF3?f>Ntsg#2zwgl2n53onYP8cv%HJ+wK@31Eqc}pTdOSd>7#Ldg`hulE^;`rG zTLJeuv#F^@MDLpy;zV^-Oj1Es9qN?F|F9etpW1ocjIFyv{p?XaOES&kLPm=@YlDIF z3pB}gTJu!JYWJ9r3DvN+a6X=jH&xTCL7A7ti5#~7Iv!GE2P=s?6IIy37j(jVEBRE{ z9>V(f4W`}` zI6khHASEpqfIgnG*E`k(p!U4E^@2(YND3LEhM0V78{MfphFt5>H@))0dLu)_k)xmd zBU)two`+)0nHD9(m}uNh01L)s&g6osDuzBsZ0twCn6hoyCzp(GUmko=*-J;pxkfQ{5l>(v z)%t)#MqL%jCd0CpL4>SVN6MAgTciZr%CXe4$E%kZs3NO{Y3iQf9-p5#njip$W73L$ zY6>J7>|;N>iyZ=HIbeYTO!AK+u1rHD$P!H#gXw>r*h{xFLJvP?rMOXrkZd*XUFgND zZE3QCHeSJ+_H_z8+m9bE696x${95Afm>i^D!Vlon{NwyeWqFUj3fl{AF;16Ma@vAS z!*t5ZrmT?q#y+19e1c8(mj3?ky%{0@*8=#11SEq}VK4{&RPUkSPb!1i3Oe@J5sdQm z1r2sjZL$2 z%gJS-+hFEVIO(8K`shDm+KHv>!cit3IhO}V&dhyj93)HdhhR`lsIw*_%tEc5@9>iB zLsdNY-zS4QgkM0Q-gdeIkDN0iDk`^g5?ppY+y=TO`?IyLfyw_XIw*6x&HaF&2oFzq z4GeEVX2db2>jg=kjA7lRjc$@=S#)!0bs^R4CCH0 z)&-xOX))K|4ApRhZ9t~TrNg_RWUHGB$lXluz5jr3NYA!gE^9r>0$`zBn(XuiF>-V8 zd}8rGGT?lNQuPZG#KWm&Y}E(#>`9wuovD1YlGk_^^X}^9Lp@DDp;A)=LW5;JZ`;aS z#IAUmdWqZScgA<)0JV6;2Xq4;uV+7IihG*4+2t=dtUF`HpcVY&ElAMAF^=GiVpPbj z14fp2-_^I-zd-_2!;uU+&=@I1VVF#ZWggx8u^FDYu+Ob)9KcR**FXg3<9fyVk~ElA zU#Duac0#m}3OL!^b;Ha7-=U1>p~wjhyu@Ifiu4Q+)+(NO_x+UO;)c9`@|f zDr+%xEF7DEw7|l0v}lC^=`nsl+e_9H?egw}*efHWtn_r?B{DFtEQPdU?zFnN5wJ|S z?a}PKASl;#U>_y4=y5RF0>h~A zn_YU99bv*j4b!b0HkDk`n$@%m&msZTM1@{@`gBOEtY@Ec+b8X~gvjfI3 zhFIq62uB+15?UX|)KPn_S;E~UAV;Mci#PDs%-2O9(=VQq{Hj=R*`$17xWqAr@qQa^ z?_vz4CSL1jcI$fE!VL;U#or=w_Gv%s?WUdKYNSEv=ceBRT@U2mJWi2?x;UY)xMwQh#lr32Up{HcZM9`P5(3ZXEwgb zHI}TMSI1j6=_QXeK@WFh7dsNB)+C`gbbr)(5i>pxvZ`ZVn1IVvwPmVHR-|a?O=`Y* zb12s7&-FL)dQxxU2y?H)xxw0+mw{wjAaGkj{`mRQP26~ASl9hRB?H_70iObHQUYnt zj&<+inNRi5Y(vpHEvY{ciG*+Yoo)e=6l*`T*|mxD(PfqT0@ZTeDj4Rrk-&pZc|vLt z%&%4|$&x4!5R(K?Bti3%k%1qy{GQw>BP*kIH45kuivYN0upn;TyTKkWmO@SAK{@ra zH%EEV&$g0(rlxNC__=5BwFV$W3^c7&$vKxP2{N1Q8cn^Skl(a$DUifE$TwWaBv0&? z%P^3yfj*yw7BdC{(EM(J;F5gwW6zF#*`%JMAoxM7()y_HyRqT^-}0TS`3pLir73%(>;0KP2k96O(WXhe3>W5Tbr zu)aRoYU^)DVxvbeI-oNG#~e5~@1Q0CblB(97ImQs$OJ|PI^SF=`m0xkE4GzYz(v_w zRRt29zKa5}GMJ$8)b=1IkPbhzAOV)OA|fIz1wTQ{1mLhm6Cz#*%L-i7Y`zui-cm3~ zJdgjyami~y_ZolEUkVN?118j)OPY=es|v8~d?HUj$~K~?*i?a+uq+@sOHK!UT?pu` zJnG+fH$l>hEhc@zZu88u@&xcb-23NX&?M*2^+{0*_WIMj5Vo}SB+aR@oz~bN=gucl z&tc9~Kq}7a#g@s}2dQ|zwB2uu5BQhLZ5!Kfvm+FQ)DkQ}DGatx*f?~rZuZ}{wbrfp z5JKb@?ANBf2@@VftP4-NPrrzPaA#9?IvdJx_Mb(l**FzwWEI-lxNpULMu-^RO8eUtBz!(u+Z+UfBz^(0~!#3j^63>R0+DaFM$`!iUy&)pGlD; z9g+!!owq;0ip3IkGQKGC-zoy}Qd`@$&KZaXi_}86l$;6oLpKlu)mqog%foXR8|`-t zG+RZ=Ss4pFEzQkomb#=bAja@Nm+fEwdW@YueI*yRJE)t*GXS?V)(Nf$fb;w~XJQP< zssZv>!kf{ft)Zc_*4^@tSHB;FjD;&RxEyJp80t446G z(lG~vO_(uF9)qPx(weYxMS@_XrVjhD-;|bhTF!Io_0E6*65>|8CNlg`NC1Qm7rsHd z<%D^>>!;~AX*Yf*wuuF+5TE(>KC(PVpEi}lyh8Au6QbC}D#|AZI87_IFQ47aIm(yT zgRnXsvcAA@_XvNqgPYJIn)~-8N~CP8tkSo+Wo&EIh;T2O;gtbVI+G0g<;~AoTAow; z1QW*PP;L4-ag6%uuJs)0ma`Lc1&FYV;A#WEZUu6H(lKP zEV8h!l|-^|S1nGE%oevQ3=)IGRyhBHN)S?@q^uO5JZMxj5w_ClOf|9MoM8IcD6LSJ z2|N?6arP~ZNoj=xit*}{9->JW3;zAo!2Y=V#PW4I8{1@9Sk?GB0E%6lRKC3i%_iWz z&Kf*c9}@fWo=_ZZC>_O%gwPe+&l+M=_F)b^?RPgMPbGx?a96ocTwkbWLKLaOTR ztWyhaE!~<6{a6+d+`4an#YTAx>H`g4L7<-{Lah-f^-uV()#<)yTfIj)(Vy+P3tf52rqi#HLW?tY4MRpp zSO03O6O>D&DPF{h(Lt@I!F{N^iEikEc|2+O`H|Zdrrka}F|KYBfE`1sI6hNgEezU_ zGB&&qAW2uN*HFm(cDnmy(Rtqw#ob@6{81#4%{t8z4n6Vlv$GqnqXHmBb!16gbNZ_( zq#OmKGa?uj!w~VES$2+4D_w1!<-Q1WbwhgvTBC_o=DN2sPTOYTwHj$oI?*48F%l~~ zyL_WpU^)Fe!*O1)-tST{#yG98cabNSiN#n`aP-Kf2`XJ=-3nZ33}H#h$wgqHLm0wT z-=egyPL@FSrfXxvszd|y;vYU3#>U#zHv`WlP-$<29LX0Hwd3RCpwZ;w;u`(-twF!5 z-47dK2J@?B*MIejD^3_pJ>~w%X1-=&G;uTg3xmXDIs>6PaFVN+FrXU2pad+Z_HKV& z0!jVT%3hHZv3&sdpQ3$7>jiADRto}OTY)$pSl_`j?Xh2|x6KgN!@c1)2g$C3sLIE2 zv-0rpJb8kb#v~ud5Ub5x;aiQK?n?YFExCA`WV$~FL_{Os zz7;z213M=W;sa01SJzJ=4}CUfhWc3^K{S4gAWIc;{t9Cu(O?*|ENjJ*Fb$Hp60vxx zvu%vC_H1oVv-sCp3}6N2vkrg&NiF-b6?iVDcxIlE7^IQfub)-Y%Z~x*ZnBY-wIG4m zD-Z`0sK)y8xF1rmyig;Csx|F&+)Xy8Tb63UOuoLpo?oe?%Q+n9}w!nwDb=z92^TdF&Lx0_?*9gjJj zdxJ)`#KTJB7Q=4(CqABio3w#hI2y!mzHd352WSkN4Emg?d<>s&m}|Moky-l=|5&a} z@u$4_j76INK_`EHrlD*6^@q}Z+4z)^c1s~WKLO39$hrJVTtx@|G1k`h@csJ3OTzl` zxnVVH+m~g5w?9KuLmHmnd*9+@@s>AB#BT4@V5~{VbTx22gx*Q)c@K9kt#lgrQoM|h zmy6DqP;D%BYIup%B|Gz*b~j|;2Kz)P8fA#_*(0-`XMT1UUq)YyKPmVD)}MD5{#o0; z-zpzp*G2QX_wD&c-aSCe0@~Bby9^&mIR7-5&)dg~^pkAw65&Fq`dJPh=bAzv2rF?n z(!gcd?BQ7?12|8|-(mNR^F{PUCfsIdZGzKl||cm^}BA zPUsnzi`^?G)IlJ_x4u#Vj1^Hr&RgB2-%UUCD1$8!5pX68&VoWxVIhjk+gabEWq|T9 zILL4vHS~QIfF%Kec4->a#puZoCE1I_vCsYm&t}cbsG}96WsMT=5mRMcX^GIw#K9kB z1B(9&`ka+kX5uy2MXFc6l3DbBDE^Yftc&MK%pd`W1}>iMwJf=QyE@!%w=&H!ANo6U zf5D}imeNYl;iK=j{Y$^4{Y&l$?3S$cb0fG@#QR*U(9llc#jcW&3nztU97#;z%QK-= zzwfKEb8uun^SemWcK{&+s;1Q=!8}5Iwf2`Dz3{)81 zhq{}B^)IN^=4Wg9PJ9wEsjjM_vI*bKMc>E%5Nrw40Mkw{-ptYU68f_@IV(Kb9|Elt zG~3px*Dj5PEky*SiZxgYiMSDAQ(FXb7nzxv0!p@3OKnJPOsBGGLA}F& zk3dfY&j5M1<5qd&8*ZWv_AikyOMU=fQ9d)0fjBii{T-FzPz|v6w7k6?X|8xj9kwdW zoir)}fTPB%V0Y)%9yee<%{!hJ>Pv^J*gl8_NN_OrnRch~-Khq}Y`%I4FwpFJFv^4D z8|;jhYCWSZ+<`2{e&Wn;{uwz>E~sKbe#>dDX|;~+4`_J%Z zt%fEJU6%bL#lE7#Bu)-mR0~v{P--#IDm4Wd*)>4>80D8d;WjpKmKg-)s7 zGO4ppYquganoKSPCY`(*oK1 zbI5C@qsZwf?HmGG8|^UPX-0Q#I+W)5@AU_T^+dIiQ+!iKYczs#Gu;bDYbt^%Y9hrs z)K^wx0`E$EIf;oe$7$&Sni%~4fk=2Sj2(u4aP%V7wSw7)HIWzpDcOfXUQNyNS-a+n zqHVn*Gn~K`XGY>MV|E@UW=t7QkPe+bviRm`1WblN;s7W^0IE_9xI6%nkMmVKz8_6C z09<`mMfpWQB0JSX&Pu)_&&!BVzT=e!atOX9Pt-<9hVfOR`sk4`o&QJ2ScWj#-*nP3 z2z)ABahMl|?Gwzh?jEfZKdnlNuWoIY+ybqk>_aB)hs)AF=ZoFsx`{Tj`S1Z063^@L zwbrw~14rWs9Hw?h1r)6$^d8g<<{AV|tfFT_d(IA*mePnTQRI$GSuSO@4eUmzV~Z=K zlxB(uqdnkGszRlWc$7`5GKcljhksI&acFpQ=+*7I0~$ULD=RCXX~JJRZS%~~?{2@n zuyaF~0l_lrCH%^zdKp<42Ocj_M&@uLni?VVCVHZ*a9n3$3M8 z#&+s{Rd}=j!ztL*o1_&MG9P-0#mZ%fczSr8uIxQ+$vsS|C>d~LeHabWfR@f;jV0l7 zlAVb8dRy(Hi9_9NW@M9rvc-3V*@hl(pN3QrZ44vjvz;+wR;|I9CR%wUZz_9o65XMI zv^1?su?F(r6>-7wm@gq1S!RmAU94gMCQ{HF3Iep4!{d+zcKs}5N3nAF(zQSV5K%pp z%%$Rx8dNdCT0N63hK(+4oTZ>fI=VV;_2cNLBGV&z^)@5yTOe8bb9u9~!>&qMS_;IN zaOf!bB!KCMk_zr4CLo|$t|j@K{Z4n8s;yj4I~NS5hRRE!)0I_H>^S6*4jNQw^8Va2)_{wJ3-Z3B16k_yH;OxHyOrw@A0;3 z!Pg)D@Emck#$@{_PwtafYNtLrrMX$iqV2Cm_t24>x0S4E+U*37zUNVMOQskHHA%eV z3c|+q30k6?I?MEDm>%Jr+gNIoMeN9qk(=Jn3AC8^XfgUu|El)2ew45$f z45G(5{d1zR=g285G3}xHQz7TT^}xUXRnAkJcU zn=EK4ZzzNa7fHu4Qie$vGlT_n=?GILRQ0%WW|OHf5Q7ZPtm)m;jF0zaN;Ifs0x2~D zEpXb>W%H^*oex0w=DewZCq6tpY|!deZ2**6T+tB`JM*6_XYGP={P-yoVTCC$SxEvk zZ0VF9kwz@38gggC@3WHkoxR4eCE-};Jv!8TDl6qKl=>Ft$p8G*(_92+Z z;XFy^n8!&_lW?9M#LFg6vX|1ZLdx&UXbBdnV~gk24Dvn`;G^eC`=HS4oT8C;Nk`C30;k|cdAo$R+L4UcEL2dA|KCqL`=5_mc zBXsMZf-#EQhzA2B=ZOU_w>5YibxGQ>L%W?@O{=ZuJ(v=?@q4P->7EWA*JuRmla&YxG@ti8;)Z$=L&s6=yOZex44yX~e{) z8ypJM*E21im3QF{07_gnxnt1mrVE-+US9tnJVd?1`GzyZj=Q!wCB+JGG=bXoWXFe}D zg<1T7v-y!C@OQ;Wva7sJMH5@*PpL(xFP`6ZNME!``vVm84voKprxyW9e(C0PVB$4{ zCgzcB7v?IJtSt|?92H?(XNg2~1LiKkTV!RmQPHwD2Ubi#@dP$i_IRj9_@s@dmif$u z{k(EN2|NamPJ-DD+C{1d=>6ZW0{^0q)uZ6J=w#5g#dIPypcV(OmBVu@k8_Y3xa7I2 z)Lij-&i;S{l1}syv(p`A!A6%qZe_RFI{O+8q#OQp0@Llx4n&x=|NfbOr2*&1Cw_kt zwT(n>`l{KqE4ayM@0loi(WE|q9(8uUnKcUEL4v`C(1P29yRXO6<*&>1-Kp z6NV(=;0|Jpmp9aY50AJ6Eklc!$<$Fs0G+hRs?~z=OT)a*W0yYNPG1>5$r`EY_f8Ka zbc13e;C-RAflsH&sY*%4V)@8@E)e_W8pla%!wUTFZ&Q!G65*jogz8FlG zPjA1MGBG!oh5hg<(%3Zdb3C?_{xnGpj8C^Jw z_0oH+3hSD|Hf5n}?zOSnZQjMSzqoSR$^EeIi#dY8$p{k^N}`7SUCBK}-wzvi?$>xpfCXxnt9tM6J#G5+^Um&@A@Y(l`9Y*?+2mmU_cc=-;vX*0d(sMtq!=Q+ z;I!YC-SEEjndEV2BpP<1GTz;zB5nCq{tkZ>Ufn6g*9XPx-aP4gqEf;yw^e~~#-^eR ztO_V049s4A%)J@?5jPN*2-jDWappuBOVYw5 z<4__mjKv8tn6e&0SE-yIO5}3UCBXAbnthAxpHy1LgDaX zkv<(J)M)_~%J_$NbZzI6-#8vAQwr@f(KN6f{qF9!_x);T_+Nv?qqIZ@7NC)gKLp=2 zfd3cwS@K=V>sxKE$P{rEO_WnFg-f|M{Twjk>vWi{AUU?*rRXK>3BikShXrGH7mHtq zRt|o`ezWeK1tcT~+sx?E0i~rCub)o`s{`#-z0nX;Jg9-Hb#~4l^jENRZTm<^_r{fq z3JGCbHK{TiN63Oem1JzR<1k|w=ChYFTJLB> z`&Snn0BCo)z}@f+X_Pnq)v^|}kL2s?;JJ`58ElV`i)C1wej($3Kc)g{fGC@P_9`MBoGOkZzK0<#ZTI&~fo< z&Q{#}`UFgUM%G+Fg$jxkml4q3MSh8g(aGT?X)ZWtm{x;LPRxj65nV%y~4_ z@b~{(fYPlFSA$bXfOp*JqxILo8nE`}+30nrCkBvQ0qPf@O_gX z7AX7TMc3CXIItEd6sYr43b-xQuuI8_W(McKNN#Lj?~+5rGR%DI4o69qNHR*PF1P#= zv-iTG<4x6ICsSaG50f?pT#TV44)B)-wINv~*$0^e6dawePvkFj-F}`7F;Iil6o8=v zE57^`zx_m^60lNjnh$zD9d(`<&}dosyibfJb-W8fj_T}jg6Zd|HEjuG@qL*Z<&__&%wN7Kw2tk?E^U%(6N14 z9ak^OFWsuVo~yKoD{*PEO0#55-N8}CBucq=Gwa}CH@(#`V%cKiZr@+)O?#eZJ!4w~ zxLd?dMCTRD8IK+w1UyoPoq9tc$K~)2E3*k&FNuRb@kSS82m$)zU}^3L%)Qt-`^J)7 z(Dp*?eXeQQYOLOhixtX>CM&a^UkBlov5%wPtiBMx7zgDAK+#4ksi=UgPu(QjC%B0M znrm`!lx_VS7;OVEd^Py`m8kgH0G%-WB^qf+X({|$H4^?r$NQ7bmV6xQi>RPBcNHWN zA_X-IgwrEz(;9rnVx8$w(!V83o3NXBh=UtXKXK`C9a?a_eSj-@If14aQ|1~L1DB%> zg0AMYjnz{ukJ(%0>14ke)@yEPu!?*yEE!sf*=PGYW!xtZTBdqz>_|Wtgjr+%fRrub z2|@;_ilZeaa0_X>F@sa3Wz)-&~R#@s56u;ZB-!wx!J3cf=3 z8Xr#<_K|krc@`~xv6}E-$Y4+v+nam87F^#%7y78_tpXgS;Yn_5}wQf`!kE0bX+la{q;iQr-h|K%IF zjun9;&A?9g=TaIb4I{ZmqkQ8&odiP>Wl$kbe*A{fMWM){Xr{z!*?zJ-jQC~|hV!5@ zZ67t)JrSEeYTY@Ac^HO9oWvlnR=g^lRtU^)?h9HiuAAQr%tZxw+MDKzTPo&xTG9$- zOsh?+XX+J^Ec9MBHmt#SA zDllRk*d9TZ#{{r57@wxe$o>c@rKZgAi-~0nMI<8cN6ICzHmoVzXMH2Q2ZHEB8KB=u zcmH;;{Qds@&soRP-kd}%NnkIfGwu(;;j_R$U^v3c+b0|=XVB!bmZ5WE={*j$UoM zJ+;{6g>p2XPV;`@lLRvEr|9a+_zRM90 zsQ=dD1whk{_l-_D^Isr?eAN2fu!;p=lr=zx^77ITxqMzQ37p<>3!+su*QF2j&f1@m zg6;WAEh~yH?0T>;MOnN81n@gZeI(BmLH&XQh#cE)Zm+9@R{Os1cA+Q2OTiYz0kIt) z0$9*N77k_v<5zDW(Vyhqp2VVq;soKG_{|@+nzOEXKm0QjD*I+>pI<*r8ht2t(nbcq zT(?{$!olYAym6-lwA;XG*sL1S-8kuh9Vp)J9S7&-ssAVb<}XRP4@M~AK?3$w_BI&a z3gy=?$K|y(poh< z!N>XbuTUvHd@?tex&6T66HNY-;T9~gOfdMDa2@M5rWw0@@jXoxywTA`IpCsG&Y;|z z3C71PXN>NJ8E6bQyBEBKdY*&t!izQ2dY>VHXdT~d7#kWQL3I`vIS}pv+tb`IIy$1> zYZGK@!m7V4Ot#P+z863RX#oEC!c}>kc!!pwHb=jC&$iLGH%HC67fE~>)LU+%L5JW0 zHwJbzn%n-4TVHuK2Ov3?X3rX3?;-{v<(bolLgGSafZ3J#)US^_Lj1B;{KE#;hK3|$ z$-%Q5S|i6m9Q_6Fy_Cn1M(v^#mHq_(xu9X9S#?S-xEC$+z6-NK^E}n{^?iiLGp2=k+R@T_AkMZKP4WF z6aw_)*wr|4S;D_t@&ElNW^RbC5h_g|weI5&SLl6`Nmu~ZyoQZVfvO-Mta;WB6jg%D zpGAt52(Tirr(P0#O7k|_?rmq)wOLrJ7WBnAgI_@|KU4>Fw@)(@BTVQTmknsWY_vA0 zQ33Ct)A2H(2ra`zDn9Vghtdv9z6eK$VxS~DMOG2cL6=$hQgXz5Zla-dGMd!=)$AX< z+qavuwwZ~4wUeK7E)y9tIX@zf&L@@kEDtdLa)hpEF@HqV_w4z&mpWf=)G9z0SgKpo z^>)pJs>1!Kc9dGgd*?jy%B4VcDlhhzUGuEZ&v3P+U{9gq^1kU&hsNx~640j)0FaJh#+F#TD-bhSzTtk9gb0$+INOjHcm&G)WeM zpsb2Gc$hlHav(gYy3_qBH%GjHCXDPL04Erx<(^o|+p5=|qOIxf;E<%gd0|s93HBiZ zliY<3ih}x?103;sz2`fQ{(IjGKHQ$Z+xG)mu0Q#+o}=7HEa~|oxFffSmL#?M@nWWT zMPUkxp%4>E>uGl$x&&6X=m%8Kp%1Z$JZ^9lC!FYDar_0VvpQ2dv@r~`)dsq9&QHG| zQz2Ekez3x5eKh&#QL00LQ-%UxQ1yYMpRv31^CxBvZV!=2Gzh^E+B%G2V>b+=h<#AGRA$SA5_pv6 zVwha)W@BTk(j7B4xaPu?c_Mbtxz%r*P-$FKce}1sik_Hhc{GqajvMWguMhEwSy!{{ zq`7pvS{nT#UudD~c2fJ*Q@_8%z=+E$CMG7(#F(jU7V+6`R-IGpX3w!hD(tH3Y{}lE zJoMp-SmpSqri${?8fy=r3?mNHDbbkY7j;OVDjcu=^~+@5jowEiE}w1ki#e}6?M}0{ z%yHCaaZY-shyNy0dRilu(Bk`=%fIGrk1Vk!Z|6;y0xeF>@FoLJvgr9Jnd0NQGDo|m z>O?r03{x~p=8ey^xt^({Rf6h^;l)XdU-!|eKT z<`>$QU_nt;!9ElUuR8h8PY}`ad{*OaSx!x-RLo*<1P?K~8T#!w1~!J}@9b-M1W91p zNMY*UMmQ3FDs~Ug++E2~^F5rH3GFEE5OioYrL-vi5v$M1HuZy3<@)#Edx#cpi)5{% zYPdYS@6JoM)raBcHVRI-OzBlI?!+F1@ZWAX2s`{dXI+1-|4?Av?h&rDB8aC z7tM^4r3W$WhVz0PODArc?>a6%nZE7mEBkx=RoeF?r0Y3C02cdKVWPvoj5qlEC zti(K+2McT+6(V>>3HT?C1Hmqr=s6yGGHXrFmXt9fR{|!Jr=~O^rdsM0*qEK*A};rZ z1o1zb&O4s!|9}6;CXT&BMyImL%E(DVh!aBg%HAV897^`yvruGbZ$c3gk`UP=D`fL~ z_`HALZnyWJZg0-(yq@E6UDy5kokB50qlHVVgceHW#5^CBSvEv;mo91OYTr`*uBkc< zw3AunEJLgIV-u+W`}^E?qpl^_Ayc?BuoqkG)FITHeo2DrDYFLA#dp`k&&cJt9wV_ z#5VF;dHeKsVN|xb&+4wvX44}l2ls~8o%J>2nbHBjA)6e1IyV-BNEfyL3HT1~_zGsY zFluQDr>c}_AGZq+Ho5FBSiY_RDW1*4IMO=p`-&SREN!dPc>2QR^M+TT+x4kX>cY(j z@NJD(5oNqQ?L4<#xAgPr!|V&lIh2Jw9n20kHqlM8uj;$UkAKVnr$Huv=_;-~oCgZ1TKWv7=N1GbGL@UGFj zehAby)w)CWu}dlLV@!;98i^8NAlFE8W2n9$U63&!ZbwlOTA89d!<8FhB`)z)o(=U< zg(zQ>JMbe#zI>7ekxBcE=GB%#@w+Ks*$8)ED!k?F`}_54%+{re8VCfXs}=GO7{X^f zpZ|a^1fiKE)l)yZ9`#bA-fQQuaW?jyGcgEb7dAs&gjT`WELrPG#3{ z?=ih?;!=r0WZC*;T{FR{>eb1ue6Lf$QLM~E8{WN>h^_zx9*RTZ6^f!_fYs~D-7g99I9QsPDjTH@R|;w&9}CcXH>su ziCMQ`&TAd+qmc>#r|BnfkPbLInO)$zr}6C_&urbqhSR|H!~^dM94qhNWIEQ%;``GJVCM9C=xrWy#>9E2grEhi;Y_ig zIu`oCJA4Fwa{NXf-6Z~gqZTl|0WCDE)uIo2U%=u4LPpZcik)b&4g3Z1v0@iUJl?Gl z@hCH0wM}dWdSPAL`7=w(zIK}Wvut@bd7m5Pb)#ENm?$H^Ym$Oi>tx+Y5V1}x0IGO{ zXv8d}Tl*-v|GU>L68B(G51uE!_d*@uOJuZSg1+dLggyfa7)Cc4wrNRy3+7iZP2y>B zBKR}l1S7H3h5o$n_la=bqp>KLie0yqO8Ba=EsqkKhZ6d8Uk~Y(aI1YEFl5J zfc@gJtteB}I-ry5qd+ie14B^YYc@KZ6q_DrHc6a61$jfr1A$JTuOG4`2>z6_ap9yB zqQ4;%{z(ni*t3=0`6De}N9Z%FS7|khN1J0}b-%2CP$CH#r-%?( zydBun<`G26;5foV{aB0o=I#B_#c#!}zpO@0IDcgwpEX=c9g8A6O8kz6Cl{l_-LFNz7ISHy+xF2KP1CrgMo| z85rQ&{z~N&1muI*{?{wl9B@3)(SfShMBh?Po zt|?mv0;QS6KpEuP?%S;`>0uR|y7X&Vd?`clfXdmy<=47fQDUzxe`^Fn$g~2eOH=M} zv-$OmBSPUx5*J4CT3n6&m`$|`_oI@r+3jb|h7fS-p-j!rCTQ4vnl-2Qq}hI}D?Mj6 z`|>W?OUL7kOFvi=|pd9}QSM<7e_Ryl-lyOo}P zw;T0*g_;s4BB4Y7Dv=pc$MW$O13DR3WsL$waaFE-RvYh$m`INOMCc9@H~(w*AHR>3 zI2!o!RGkN=Dcb#is!*A`YlOPqHg-0nV|5oDacBy&#xN%3b7PCK0%_Ei#xbo@C?J^A+S$B!Q+wZFW3a)Z+twbs__>kpNb zqI%|F6t3;IUNf=rR=pO|r^92|fK{8bO)rx}hUVt9XE& zOYQu-@ygRL`%>*d!g?$Tu*K1i-xZ?$ertE55>-B}Q;2I%Fex*}~r`v}Fu`MuP zIvpQt{!_3qUs+e1=H4T&R7zUA@ybNk-TCJ`u>*Qhe7^_>||b64F%Xd5j}ICpFwEYNZj)`U z6Hsc zHQM%Vxnz44MMbc1MrAxm=Bv*tK`M(dPQd})gube33C@wlQ%GuJFdU_S1`Eq?wyrdPhKjHp9tD+;Ho2gt;zE zE+8N}=6)*`41Eoyuq9uF0P~X#z1J6#0W<6cO*eO6kXclYJJjB^T?KYnGQZJxvkDd{ zR0j)N2r5_e#)86qy9xhQK#u@cOgZHoNt55Z;7y#bo-rVg2Ej z*JaIHrxXqmAdUxEWUoKoV&`c7XPWf_;d0DfyOlS&PtlD*_X{9UN!BfYzdZoB`k-ai zX8q0pxPyG$+(s&S-ioU9gx)qzvjm4W{iA#MVzID$35@@Js`HCUqt0;w(7gu7(q-;O zFM5IzSG`$^%165hu3;!pZ9&E;ak>b+rs#k8*Ip4sCSwuj`QKnFN4DJ+>P|RgdY;e- z=O!gi_PF^Asonpi&VHikmEUxa4wQ&Cls-us70bVto2fO3pfO6k9r7Kc7vhKgwuYsL z=+y2GJlEWD+mb4YB{n?P_n$jM=%S9voK`sBYnP>2xBm3D7l<{_&{irLp*Dt!j&fMkDbZ5v}-?Ik*hZ`P?I%36YkP~efD$`ma)`CiCDcGtUyc0)Ri(hn+Z%lhRWg1|dVK8&9vLu;{7qE7Z$EBsbAkS=yz{F1uqyL21Er?64g>yz2#gVeL`{5J+lCzjVIC? zzL5ymX4WfL{6VfDXO&?N?}9cg?6Ez1v#h0HVcjx1DW?Kbhx9Q+Gu!odW!tCfPBxXM z^!OrA{Kl9xJuqeXG`Faj2jq2=IARHN$YY8z_<#R9BGY0Sb^cjOK8G}2rrJ*1rFb2s zxC>Uprr)N|l3F&rsBBnNs0`Tve-o46sZX=ULHUF3;zMZjeP(XXnLQYsR{QfU&?@z+ zwkL(}8~Sc{sex@tB<4=aH#bRp-6YHwn8#1|r_Z-K$$RpKF3da6tZ?6IDn5mYLPP~L z{czlm%8>DE(C2%kES!3wxcHA5ct%E$5d_i+n!ODYucnn;F3bgF9<;T0B^5az?Kn~%kp0FOg&#%l_-$0ROn*q7*t z@wBvHUtH)*X79ye#B4ufrhg8m^1+>=Q5#N51|TH)va&T&O$AIC*M*;S7 zhcxaVyUqh(eBz<)vwZQ>67XJCkOEgXnfC4rv=b!}W1!#jXv|dMUaMXW=Wkhl){=*W zm79r?k=Qm|z=%^tl-M@5-EB|H?zi!V)$)EYVyY_dDeU*($w^oH3~ z8;1=|&An&5H%g}qF3+8}GRA}BQ$of>_j`1}i5VcA&)NubH!z`HkVb7NFNea$mhDKW zIoci~V9m(NlJQ@iuQ2ODbbA!j{sMmjnI%(x*^5z27)p&1-AtJL$S^^G;stR-DR>gf?X5 zjQ%h+2cw`g$s;B9W?iFhdUAR3JK=}MDy0}fGW-s+yj<>z|MLQPD`Lfr;*S~UJ>xGZ zCZEf7eN$BAK<`nzrl&2FeVzicx1omUUIq}Y3OvhkUciBUgSA3(&Wu9#c8aRU^+ghgKu|S zw4&42ByO-rP<$FPAtx0lY5tD#r|)=sGqHCUz&o6Of7+JyfB7Q9#H;nlT^h$ah+TA< zwOxQp4Y__Skvp1TRu^7c?R3fg3mXommaakNb@9#z%nUtMh2f{4Glr4)5kUglISnC3 zh_m{3?7!_v`h=l!zsSk%=9)ZFB!EpxwwT9TQxi(kq?Jr{-RSW5s9HjqDpJb-Y4_ z7#CPWE)0Qx3$Q$U-kGi*7XIy(jXGN_6E#5Mg{}drLN$Yy$_y29$DblHA|fMpwKaB` zGS9Yh*y;?+I502}+_QQ!YV)~r(n=%?3j5#yV13S8D|ddC5J!O_<4;4WnG*3a-kq77 zuV%%ytA+>6(Nm>e5)bpyP$=no25&svnc>X%51?bea_@SA_m5k>t!r{pDv<+Lgy(rk z$ee`CLIfC6pyPJ`V6#zQl%sAcD8?Yhc8u@%-5DA^&gN7?2@D95J{Sk)V-!!HK5kK7 zV^*f}wJTn`@$mCt96X)iKbM78^|$X8pVZjZFa08iTk*!kL+N_!;Q|QpJ(Sx0tejtI z)_9T1iw@YGF4eC$P5bvk#_b^wZM;RjZJOcC{=9osq19^9mW0491nQX~A`-1k(~Yrj zjN>%n`CRF3;^2SYUwa0C*fXdBd~5`3B$Gp3F1pD7NH`k6@~TvG>Qhrr!`Lgk)!}eQS`0D`2kktoPi}}z(!{yKWo3ydba3J2kDV6>8M)Aa6L7Ts|s~@(5 zM9pP`X25=&_lcd=kJ_+@-kG}H*p=Wc`O%jT3WjV|1ON*`3^4={i zS;8qU)kq&Q67-=^; zB2Yyp0^K-c($K92(4@29kdgYiE}Fo2$JUc)?V{won7>tjV2J`X;jzwmrT2o#l(yJV z%K1CyV&|i4Iom5U(j8z5-JWPYod7kOPLs5p;>FOC`gcqb>Z`RQ?qSEXhAjR_gv=Z% zk(DrkT+W(gJ~V=q%09T>c1qDqGc}N2>Kgd?Fx%l}UA zWbLb{sihT!A$pf~jLwh70-O#6P=tLh{>~KaR~~TRF41P|yPJAZe++bVMa~Z2!R<+D zv5hWGG#AY>e>eS(M2sUCtO9Tvr6b^WuN~|Ze_-82S8vlIF_dP9x)(H;V1>?ru#yv%#4gUU2_xT z&0~0qOz$|g{kDb61|xBvjoH%}B=U>~R3a3D-o1Ozg0H ziT>;lTPUv3wcVW6!|4ZT+4C^Wvb1le`a0>(tvkBGr!H^Ji2KRzF0CReaZ1T&|o+qf(swome;bBzj+A5wA`@nhfQrIq@ln5)IbgMbIhCmo+dk zW|rH_x8(aQ^2MLkwV<>@5t;d`T`iP@Y=cC+mngXuW!Kx#$qfi&5*w^ z_8}O$?Mq9@eoq6p-6Un!_%Y$6WUfD71hm&}l{Fd3d zaFib%8vPEeDC!z$f3)*>UO69KV9jkRi26hxaL{?tI`}TJZ(P4r@BJMT*^Gn0FLqkP zK*N`nInybg@PaaAx4Y2jayQkj+Rz6~oxq*fI6na6V%Cz0G6hOK2U>p}r4QdMH2~DY zsm#rQKyMG2j{&n`*I@W87)l}Z{*$t3dOzJ?h$jXiW&=*A&*&yRD6XbiE_=^UOv{`A zS)8t%Bsd^A4|!pJX@jp1Ezq94@o1_aMTO`)>sUu&+g2ObmWQsFW`*k`(r77wljAw*jq`=X>Mfu3L2y zQNwn%7l8e(nRbxJkq}on-={lcB5eu%$j?*d(FkAOjX~ce~s}p;a!lAb*NX+U>|z z8A|UqSKpXU;hDIS9yj1vaWPSx7;|VtqXUbR)|>%mnuvhMaW}z<3ZHi9bZ1uORi)n|M7i4 zWfT5F)ExrscI4%ppezI7{N~3S6Y8B|2(q6CUxFR+hd5#s)rnuQVrQ^PbLv~06xA~I!L9ab|(DS`*4`c_fAHOm0K_u3L#?mz**;Hlt zR>Ni0N=o951*VM`g#S zJO3$7RpaDHQ^So5<7A(-aSwW4D10{|ZUH4XoTzdG&}0_Mp6d+`zP=qhlOS``Sw0nC zx;s9k$^FPt1SV7U=y4I5vzZ>53t>#RRPzP~%sO~xI-Ds8-K0zHW8X=C@A~{`dQO8U z?$bZ@|?Qq6ZBkU6Z}hB=9Wh1zKie@ zN?{NYH!y>WKPZCv$k}l@zDRiTB+C;?$)VIgF)xsNOgfV zXumctzSh<&08mgU(PU&{<>%pLm)F#qf)^P|)3}t<($mv3(*ep{I%k)a*5K>)d$aX# zA{@GWHtJuXVFaH{%inr-v{qvu9T7=Gf;U(>uQTb%d~b}1y~g%>QCi;u>;!%MttTM; ziUsV-oNk|%GD`UGe6{b1I~vz3Rk-|XPzz8L?| z{}{TX96@AnnBv2%6%1P&e=xQ@2!~lp)|$sO^e$EMbc#^?xSc*#N)h%f>#1ksmRN*f zAVtKLg&i-RK3HcLT*j;3Ka=FeK+Fp=5P6;u>t8EtJ?msW+gd5iLX&p7PI=cy2q?s1 zIEkF2#FO2pJTqF4id*#z4bM)NWFe;mT|Ios>F3{T;YNRz5l=`?Yt&5=>LJNramx|9 z?ZbxlFk6Nxk`ae$&^^#M*zdAhrd;Eq9Mw>yr5}OdB@tWS>3xQHi%dmIO$~Je?E3wI z*+J~d;{wgC#<3gAPi`dEfO-L=M2Oa~iaSB%^a>aZP5Oy(jv-4w^8j3>R|)wHn||0= zzbv@XaQ2BKTJuICxN9PuD|Eh?3mL1C>2lXSt(1g7gnIEPsJtfhdLvgWL$gS zzI_WgGK8G9?D9eJvX3X@5#xXnWltE{@_PQXw zZ}lyuR^%JjyOQ}v0z?sbVWZig_($7K>vk}gLs3aPv#|JAE zK|xs9!sJqvb`FHOY|E+=Hfi6js}08bJ^vp18pc7YuJpP{qH+G9|=WS zP9nbNEx#w2%-?o|8#6z{>D!BRjHuVGzAV#DZxFW=TD>^KcA#P9#M;xgf`B%A?<) z!}qx7T4AWd{p(=FSakVcmhJp7;3VHf9Z|ZDaIXtGddm-w7MWUOK zx#uVvYu|5L*KVEoFAWErJ#!-kb6!M#Kxc$mmW#`g^%J!WK>iKGJfI5 zXLBfN|CB~7vAW`xMxya<>`n9Rq6@7nf4HvaQ& zC%LTeOdD^~=(^h%H%aTXf9E~Fd4&mgri3Q%Pp3`Bi(sx!t86vh5bSYTWUlnZucT zv)82`6m@qhu1-#TtZV7*N3XwAKF3k?z4mOnW=b5ojxft?FU1R^;@fqDFF$#o0x#=@ zlm4-xmjz`Pnj0c2(caC!RK+GgNf_zseugo?itOpr!8QBo7C$$)U5GrOUIHj&#O7AX zOY5`^U$QH!-Dm7_W3sIh{a4zT+tcH}{u5D$#d6^IdK>Cwo(b}R zk>pb6b34)W?!dA%re^P^AU{t1CS<<6^>wcIT4I5ScbaK$v>mBQJB45q?$_C{v8=I_YlCwRF!@D zXLfdW@^k#cs#D`s%XvG&ubq~CZ~y7a_i%b|8L|R>cp(JOhJLi7!u|>WMR*iSK6`t6 zG7O!r2^K=<)AhJ)yac zO}jY18pbmh?Nd7gx3izk5~)M2q4=w});1-vgUq|$Aui+lr>Oc#Ymt`Ysm%-i1%yw* zF@$QpP5tX*-U?)p1U@}Tr&Pr9*&VtsQK&&plrN_85UywB?krzBiEeHzcLaS*fkpz( zB>_^{-rgjD8(eHe#5Zh?UPEchfo>%&Yx9AUT~B*Xp$^Y%cSc@VxsRxnlrL1$MKXy& zlUKgEUhqc*G4Iu(N&4U_Y8NV8xjfvo1UBM6=M4WD4jqcl^}tdJ_IH1H46d;NncQPQ z)HUk4sxr08#LUtQIefA2!V3e|p`Bj6eEg!(ah!4#dMEmr7yuU|smq^+=m?Fus}9Q# zKIKWxp6fdrP6QUy#oyZP`7-qGK`)B94=N0VN#`#5ilNtTMXfQDm%2&qxYn_G584)i zi4Be+-2~*5pvTNuDJCN6s)IX6{g(M?rBk1HPF-DHXXd9~UJS=l=w3MAgQP@NT=+1U zd(!=0D>>F!%ZjSlw681Q+RqvmU_OPhOV>>~kYB#McgctXlesHQ41g)JaLDpD+P zl83p8rTn2l2u2bxRg5o0>IkZ(9yrUYQz3K1{?dCg$3R^)|&*h4GJsR zczWOYh7!DY%{q=)$N_uJTu)}0Y0T(h$}>l7*t_r_Tu&{i8#eJH5LWRmNTAd}y{!G? z(P%}VRN%3eTKtUY`)gN0M$3;EErwsdsPHAjAx>vOZk}ujV6s(0a&iEd^B|T#V zpKijCvJt0hmmrZCP*Nj4k$+_@pIA55etyK(*ViX*RBnjCm20oq&U~ZGS4pEXEWgTQ zcwJ?)Q$Q1Uw#}%7H~AG!*{1BlOfb|1TA7P)H7fVsEUj}HD>Z;g?FpBUAr&{fdgQ5~ zO3XZC682}^cTRH>b#L|_g}(2+?Ig)Yg=Z3A=QiT}zGYJ)YSb$1R?oZkEacUVJ?Rq7 zl#iNs<37p(PNuYC$pkQ5d$}Ubm_vMs|nymrL72d>9 z1%+;vVQu9De?>wHlwfxrvYlEi`6ib7b(-fMQ+5f8-4ai^5&4{08WD^U@hx=fy|Lc? zNW8o|kNRAK*o0IY$L;pLr6)Y*bf6@bD@;W7^~7FxH#gQuuX4Z0Vd&*_NGb|S-xAhi z**Q7;_%UJgc+b08hfzkl0rg%4<}@O{?03nOnh0|fxFQ0`7*hqw6ia5zk5nM zjNv22Ce`_pFAkHht9ro4tsDo29RTAcJa??tGpW7F!({aDqQ9if>y+O+>&4~#Uu8|F z#YU&AAkRkOqX^fU|5WxRpkd(JWja)|Zq^eWsd+!{%{~D@?l1m#Eq@;x`D_Kg0JKb@ z6vb=^9og%F-j4?(7ZouxZP=}>XndtO-?b;x7fI5|$;p$G6Bq&pe*Jne1*>07vnB58 zSY2I(R)cs>Y}5y|VO+wC&<;-MW2Bc>AAqaS=$K+cYHaXdW%RI>i2fK0BO_cb zvd>SJE=2Mp{|fYqnv5*SWtMk!Eoh@LW5(8 z_Aol=yK=7`pO}nH)HIXANstw(r}pE=W1K4gb#1F@nS6UMMA`|R(q4Z?MyN#*;2sxj zf;&bE<$aBW!6ob*C?mUQnuK2vZVRxhmuC8iSjf@S661}zLs`V@p>iIQkVX?#d&;{R z7cCT@%qy=G($ZAL(nqK$l8$|A>#KZkTH|JOCerOYTXL7G9{%`#F_ zOhe5`^GbK;j|SxW>}X;5`Ajurh@ zPO>{%& zSHk@?d~1;+AsozDmE(4CoN&mXGER_Ev?vu&>Le5Xr%`b*y15^IIN2S^RQ(-X0f)Z7 zL|~@|RtLNSIEjy#FSit1z7E0ZNb!Ni3gcV2Yxd`iut>5;a@pUm^4j@6e37!FMc=y5Opbb~ zNX9rv>2oUk8`2CW0uJhk2v!&U}%u9U|4+k ze_jAIk*sBf4(Am?dn#};(I05JIw-zV?G(Kn>>BTyjwbBk;>h zFMJu%+iy69bB2)qJxcjrDtQ)pv1Hce6afW7uGNStx*^SAZI>L%hu1Ae+Gs^$+Id}? ziP)1YIF?x+Fg-iO%F%VCepL_SJuq;6HdnY`obc_!YgGN{Qzs+Oc|^3c-W_H(66F10 z!5H)dB213TQQynB@I1mh3zMY1VXqGu)cEAR-XJKMACLQzZOUs$6kCtv0 z_uNcVDIE(NdAhnx?0=@S_>{z*bOVT8ppahl8P|Nkjp%9#=wCD1kMeAq`?#&kJ0EZs zevTsa>bd=^Vt>}JTF)LFNCC&S0mq#_{%$a3PW-uQk!%35W5r5 z84b&#weQ0iF<;UbmI$!-k<$uwe|2OCL8}bIFC<5OF&76)tXl0vBI>|7A{40<2b>yU z_#Czv@z8EIgRTS9FhP7hIF$~CZC}8`nqk?7UQ?Jg?H>c1+}!ui#eFIEX%+-_?zy=A z6TfvZzZ(k09svD#>vUrQDx{NmpM3Qc9EFwo^|&3V!Y;f{LyaEmD0MLxS*IA_^WD?9 zz}*T9bL7Kr3WkA;Y!CSrsUN@%iUdYS9ds6o+5LFV{*&m;fd9)#j z(sU>d8e8Kn<%wpPgVo!g9-%<9%&7)V1h!TgRr-(o7prFSpSWIP2&2pG&AB0-XET%x z?J@qXMkU&Ui=BNKjj3=Y;^v6dhrQF?f#$l}73wL_D7)2$O%V!-r?k}6Z7Ke!ITgNe z>R{IH0wm28GQaXXq9B(`8SsKy%Us`g<6h`kMb0q0^(d~ zV%|p_%+1{dJup*3EiOI0Oiu18sq}gXRGWek*dd_(QYYwJjrI5;4sD;HqPo+(>BCz2*Ttb*koQm5 z>6_}5#{=(|yA1#NhSXPa1&FXy`}94%*09=j<}@W2OHPE9LlLBia8-PHRhbG^7wRiR zeu>6=d~MHn`eEG10XqG$dkSF)qJkE*@_QrmoqB45HA~^Q4mR|m?FV2JkAHE+R^*7v z%%V>y4#|dbj&hAR%kWlk52H{P)JRZ%P$E~N#FtNWrNE{x$<%-C_zY-Ye92FsoJ2$@ z(qg!#(0<~r==`w^E$$e7mBfJR_53wxUCT3}&q$}Ddc?tD7OB7ywKONb;USHclQ25-`-8V^SUkZ>kHQeh>ikPZkth=K`kjOuFJGf%(LmqY?BN|>i}!Afz2x6~h? zb`kHb&t5+yKMI+hvn2^(xmWR>4fAKONuTejt_SnA2xoRqMlmcb+C6WB=(0oZLL&Bp zZDeHBsiChU#M%;P)P(0h7$@WWd9(r;WM+wz8&Pw<>~y&8!1%o-c&oyFLYwO@){kb- z!Q8viW>005L@X{nU}Bd?;E&rSsb9q$e3mqj$HrO;CQszlC>%~p9arb0bH)}?r81-W z@*GcJ0ai5}1%a%5OYFwu#&Vb59TU8ecRpfm^0!_qY z4A%0k+eTN-+zWQu@Ks&#F|I8&(xj3{7z7(*7v0!zT@fo#oW#*A0t`#|c*;S@?`S-^ zuWNfBzUN%Wwq(p0k3dH)Tu})gdu>dZuZWjd@L3|-kM(@4PYnS&553}>#4?e+dqN@H zmkiwIPfZ!PNc|E5RT{tkH*d;I<(HU9x>Hv5{zTAj;Y|9C#h7ce)2I{k5{c14$KSs~ z0t(1cGz`QX;n+*uTwc@k_fsdiZq1{zv2(D!n0R~tth6uLyJ#>oI&X7)mPHq8(m0j~ zWozsxCm23*GC<$#($3x}qgt23YxX&FKpa8BhFo@6ori15*URe=IEoi7HKCW8KH>k1 zjrPU0jRaj>Ur+xKl;Wd{aw-9`@IzC2g;0|wa3E5n+#09AePxgZ(O7}3=Ci- z<_Au9nf>wGjO$=asyTpAg#UW=n4$Zq7HmC|-n&R`5$Ev>q$_yAm%NZ}VO}FFKswr* zkwblgP`1l<7ac@TZK_v~&mcW=k)8v3=DU^49^GCOWhXA~Zs5Z+5z%%Oh09xbs=(>Q zlNMS3m8a5wcQWYCA3t5_?IoT~O+=Tj*_5p9Nv2t{ms9o7(}oRd;Gfl+x4!+9#+YhM zLL%XlfVQMRXf3adYNh$nXW&Yu>YV=W)t{pgF+v<2vm2&n#M7L!z_O6_JK8nyoWjG* z-$*p9B1${y>XE5|LdiegMC_ErQFHL1fn0Aha*;)G3^<-Bu%_LSkR^TD87u(q*k$*N z_*Cj;CTJ65iVWR6zDoJ-DjCP5fcmjY=H1<{8LVwGCQ-Xj3og#gx1-|wEWA}6t6R`O zjs0{(iSi>iQ05>kr@~!TS&4%M7fb=t!JQLwmJpJxy|EuW`EY}Gr^KiVf;X^=0 z_0S&&L$T$bA3$GTie?7?ub-goZ`K~IHLk2f$89fvL2B|0)eVDV8tLq1A35)N2Kily z^n@!;t<{pl7--aFA$ioGj&vHv%_n@MkpVWv`R$)Ik54yG%yqTMVEU2*61gYgDWmB&RQx-T_$@ep+OC$ znPFi>6E(?6NipRY2jnQ6RvrAvcw{w>-b1Etc{-}9kr*ZAcNqE1bo4uny@(wLN5gGG z9L+Z6#&(n<=a9J&LpN+{Kj!B-^LK&gMBzeu6tg1U; z`^%+b>hRYsQ`ZqMd76Qh$~Z4+xXXz0zvqB)ogDRaaL7KmWIju7mnFTXY9q7W;n!9!=9siNoI3_1=Tkuq8t zHIV0mxP0e>^-m4zk8&xTVcJvTQK}ABszsfz8Q)M#vV2L|C>?DY;0moPWeUxWi<|Ih z;%++=DrnJpbazInb(*|WAiF;wL9SV=*Xq!t6tPLH)S=_rqfMNYZ>Z{LByG4Yvzn?@ zr?$AdWIt)})sS?&&~w_)llorG97e8uB`+LSnk%6uRoYJ@)+bxw9tL3@uv<>JH~D9~ z8Zx|V7>`);`XT~)Qa*ac3nT}_s#IQT!R0Z%hbk(@x7}P^zHNFfKMt&C6?*+OI2V4N zY28;QyKe!~6TL3$a}Z77h-Q92YFn=&L)alsagne{Y;|%k9{oMJdn)h>XUsh$COrH> z#1J?Zs|TgeFAV(9-$U|TMjd>p87%VJ2u6!xqgYxOkbbLCL zxPv8>Ck>@rJqi^4RA8N?oDXjOz6J16w(REf`^~KxdFqRW&2dJtjPWM+m00ey_-t}v z>?Z4+;q?C_5SqWO{_etdh9vUfen3Pb#lO{b32e19XUAo}Q)_2`2G2;%Sa3}#P!|T$ zX>h1TD%|aM_Id{Y=%r(Te^WeqbiqJ`SZVW;^rnU~u#N4>CwalUTe>tMr1VSP&d{%bI2yiw-3nT>Ha|Ix5b^{erj$w_8**cYap zdss~9(aIMF&&{buy1Pmd?r8bxnWH!4$_!KMML&?ozug^9_!9k;)%xE1DThu; zrH8mSrZ^Fo8^8=lqEQ>p+CH%G%VTbWujOD?oYbfJ*N-2-)-f!D`;47#(&jPbGLE^D z_5aon`td2nmH8eHlm+ZCmE@%J)1XgAKzkC{gF-Nqkj(^y^0aDuGz=>Gkd&!WSv_8i7q?uGMa?V;m(F) zun9e)iS+eG;@VM*eBXY)tt9`E_)n(mmvbs)@#j^fQDr^S8e}<0twY}yb)?&bJ)3;6 zgJ}AXgN2NzLJU35zSA7?rgLJXogR&m=Ff&j^1mlpnDBlUhyb&RG-T2;qp}CnUzX<( zy5X{6Wv9n#4kR&Y*YhOvY=^gGa8^Vk?O>3NfcP2R)W=oHy?^&StWe?#)i=lFZ+JKn8m zF2bdi59#-#t{k4wIq=hl>ntkdiPH*JbSfm&fQrh@F5kMu&iPRwg7=B&klfG4BzI({ zHnLp72|sE;w?)&gdZJGKNz$Cxm8C`aLObls(fh+-*!#~{sxH$C%^Ru?DLF~lq zm;YDu(vlmCBJOJOP4Q>tdT{qkF#Fb6I?{`d(QBL_=|sGd*JC!lYS^vCvTzByMBF5o z_e1e;-izcLY-oNX-+9taZ%QB#@sUw=wf@v*^>}q#8E<%n)M%GeGNzl-nA$IS#nyMQ35?N2aJe3(H50*XOku}mc{Dx(Mzq z7;#*u4v&TjhfOu%ks#(b*O-xGn&qn-a(ZKFq5U~-kITmR8X2J4xuTl`pX&Ayz z-T9Zx@Jb)GY|5VQ4%4Fvb8FO86Z@d!&RBJws*DX^1gym$q0o7w<#=Plp|M0#DCk_0 zxU+2^+qg~-05ccuHqb(9UpobTKM)RrEol!{xD8lVg6&&|Z`qHP+ry^Q1466UMK<7M zfjd1qZbC{|@nW^Bg2v}lmZrR?#!s=$MW>jBwmoz$Geaz~AU^4QxcYdd3 zvv$>eh7@_YDApP_KGV^GQ{#6Qsr4<{_Ip!GI`Uhn7Ye%|-v zj>)EItu4;>J%OLv1276-L9#b18ex-jTf&!i$*T75)JLZ!RRB)Isk7~K*r>#w1N`b~ zFe|`rG<&eJ09Z;hkZ#FZDL%_!9<|0xVV3Lcmhj^R?X5J%PKQU;EIgc zEKG&vq3|#>z9`Tr3QYZ%@-6Yj>+kjvUlcMUREPQPv2MTDSV7}qzU&ASe0U~7po-zI zK$h?Sz+Fq;(7*u9bnq5Kp#y#|!bfDHk0uOkv#sS8P3IxgNPc4Xa=g}#>*!7;9T@fDqg<%*zyC+jDsa!w%e(s5Lf-{d*Nc~lIum)!RT-7=D6)i#Fzv3 zeRwN)%tOu49q&gazei}QvA-$WYH)9*qsKM~8+WT=Bw%Bcx9{H(tDJElmH%XhP*+vF zYm$>l@{J#3NGky&u!EPD8@EF=DKI7vuS@;g_DNc_r+n;7$6L$@U$BIVto}1WR8ts5;jz{%ZgCEG0Qoc&hSkK_# z+_8YK-fgpfxR^YmFyk|KTnYVe+wu_g5gXp)Xx8IhX$4varuk$qR0OC<2XbBT)>0r7&j6h?n78ez{|Cv69RG4)kS^{#Ll$&Dz z#?755F;_#)$RfK`(*;wD)~!I-dCpI*)_t400^C^bDD@xD1e~P4E<00N3}%WKCSo#R zGo-3my?jagm}6umOJJb9dE*8|*)uoEWDz-s53bgAj3NSOympQ9m~#JR^I!` z_EFR*>S>4C`wLt0r`JD#n6+6k*X;cQiCu3-mnvG_P)i`Gd>pT(_;!Lh(HQ(%a9_U) zf-%VQ7S%ZjPy>v*9;&rKi9)2;+gW>TS=qa}ySsyx^PFBCF&=p2i2zOCDXS)_V(k0< zOND%qM2;$ZZ?FQx9Uo+_t0yvfB&A5P8gpfB^DM%hWyEXgZDMG!uqH$Bs%Muo{<6y` z6VVvYb=TLM*KG;tD3idAH3v68Nj!B}%<>Pst!!x+UjGe~wx^kt?E?VeGAmXI{{w2m zRT)#$T3)1}+N1J{3Wv#$_=tv?e_y{6>SS{D!=t6%8b=BZ`wvmk#>+)zcsjQ@Em^hW zvis2XgomM?Nncyo^D>#+QzvGb24%is<_|^d!SSiD>vq-yZ^-x1vf>?$DHS>nsnQ5p z@ue0+!v6B&`Q^aoUnn+cDD730R(Lzp9jyZwz#Bwq%g}TXyE5ibp>93rg(e z$Yyp7$sp!n#{tNQ14E#S>0#n%1^}5xx7?S6-Hk-E2hH>36vCd%E6uFC4y_D0WuO$t z)5a#DF5OZe7P3)*oOB6&SI<9Y#F?A*oza-)_*dZg_D>1&VL7|mC(e;g5H5s${(n?i z0YR`(lC|F527ZWddHQhkpDByMZB#WSb^L@~h5vmnAd`%YxK$OVUUO~9)Gls; zrk;xv{?koa(GkX#y5-S)-H_rk)5}Ol@Dnb<9;{NcH0t&1PY(5(rHjd1lWIyFYO4M3 zE55J0#^O@-@SYR`f0k4_QER+Xd02x>@tw&_O|SQ{ydR#iE}0IGqm3AX6&B4OMn4)< z2}o8dodMG}Pu@>4DBH*e{VMajyWQL&yLx|h=cBtWA!sB5FVO#9a__k9X0bucvqIN4 z8VYF~vtayC`>DixL2uRt3?6;e8Ta@}UnoDq!hWkdF8oI@iF}>Cz7v^KA2VK%)3Csa zFD14(LI5SC`q=iitkgJRfDNXK3nq}L$QYEK4Oa)ND^g-2)Nd+bs7vd$(!CK3mn#Ut zEJvW!SwrF#tCL$cT%OmF1ft6X6j=EEnSYvQC@dJMlPh1xk;Pg@5b$HL;8v=8 zN7Q1sOR{#pmt^aSZfQe3D_>$R`l+5%r#W3O%jmC}Q^N8n0HLmgs`nn;bHbK&MG)$g zx&3z=@3V9p)l_GI+yqGY{?_1hZ@UBFur?uy!Zayy;pjN#>j-+%A4f}BqGu{?|)U;omkMv8}~Cl@N9`=uP>+xiHYS{qADOM~M3QF6y?AL$zlYAk6CCcYUehSlbej2kb|$7EN7&(ZuVPbPV;Y>$1LP=e>atqu zzq`BmKWnv=?k7JG6l7gw#_t5J20@Qdl$Fv_Bq8YBZ_3s5bn;~1v?|baGcSa+koT1C7v%S7@m(hyTh;L5dzTG8Ql#mb5-eW5wJ+URtGDu_kyP zExc-lg+n+qFCkO-(%~f-Z)dm9X94z6JbVlX{|+>aZbGePl z)h95o|Mhx)Ibs48q_Z-3sg&7})HrQyJ#ECgcGL0OlAiA_ge1N^6c6-Y1>Zfb=wGiJ zlJ=8L$DuS19>eLgWZ0hpZUGz7$}ySIO;|lUv>dO%o9&97a1Qy`mj@vf{?;|I5ZoJg zQ#pN|;c_FWS4tqZZYsND;+$lH^~c7`Ik4)2hCb(@KRVm&4N%s=lR>;@|eMw03-*_D5v}O*1tc~B3OmX4VY)v^8 znMcKB5M(~_>dpf_6MdY*dk#f&HqFbrl{_ogHOR#OjpxFGge+th2Jc~bElP+Vzew6s z|72)vXxy@&ePP`ZdSl6a=_`8fY(>cL&I+?Q7DU9ca6;&y4N!m#A3kml9ze!U_FvLc7>4 zgVUzbg!u+k$%;ShKd6#QOSCZ~*?vw?kzpX@OY_J+H6sWUaSOw7AM899UOG-p>!1n^ zuoIc8C)Pv-Us(qr#R5suIIY0ec6rj-hh%x14PmG7irD^N8M+j)@7!S(d1(Af#ikBN z5-MT{gC(IC#S%y_>FQ8cI0w(J#+w5BxIdIKl-X}M@TvVr=x%T><<$AJj6&lMG$^fy zkxjlvDA-|wM*`Sh{mZ7RtRnW!E6%CH?H5=x(wclzZSb{03Ih?*V&H!$M z7c<$KL%NE<-|#%z;(%EoFxYk7z_@nV-{Q2hL?{Vakan8JPruI6>gnyk?anz%rqLod=F zE7G(|e?B@oT043(w)OWkD^^o!09BAFDBU*CnrlFisqmTm+XNyQl5amENNn_VkhlbG zId;tqbCT}L73O0dZ7GjP8MUSl0q)Kcp$WnR0&U~pt@RMc%p^$gll6V~FjEa;?YwV zDsGGJ-f6GRS2VA6^1ov{Y{(k=oj=CUP259AiDceEM@x|vzO=B=Vre&>UJNDCyq+q{ zi^cb#j=@|s#pon0uJ66&oAjcm4O?ozuJuRmBVUbFne|OX+f%4U#|&hPtm}o^rppvc zH%?IA;TY4^O+@-sMk@BpQ5XgPQW@Nj=wdX$T%>-;eud81I6T#Rd#6I@O1duClh-&X z5^7$*ipc#PGm#J!zW{F1QNv~hSejs%7ou(;k%kA7@8Ju-7pvcHC-tc#|M9dgR==1% zd#l7UofFy%nThagbT5%i?XYGQMf^l_bqgdg@-f;4P)XtkrJU z=e?K55`L#wf7_oK-R3`Tp_XP@^o7$98G-SIHq?o75-6RlI76CFO5vfxQIgjEXsQS? zl4|kZ`#t^?qJogD$DUBZ;;{PU@F;`qSe*tI#0v2 zy?IUJt<#!~iA38#ILjVvy~=OE)60HJVM>`sb@hm(_>_F|jqy&?yhRT=#rHP6t^`cQ zQ?$XRtfByn`GE+hkXyME8W8i2YZ#f@7 zVdpu!ei`!5^?M$yfGk6+t2x*J}0Z%UR`jM1c1+PkHlw@tb9 zW~sIA7xK(`evjUQ@56?~g~Y|L2ixA4OxK8f4o!S>5W#_c>Tb@?L6+mJABu{t_#D1% z9!F8rowafMol1y*GO!gpJlj8(&YjxS=*Grt*GE3o`$m-ig(wget&!9`{3l5{scSgW zq-iO#=Hb(~GTOx9LqrkBAR~X&Bv&LmGNwHlSzstjipr0&?+PH&BqRdB!7GU-03*O^ zqaYD@gQF#)R216Ne(OavJ*;d^YCZ3{Cc8t$~wZ97LW_(%ufp}T93}>*T6E<#SIQ%&5=~L>v^`-Fv0!!?n#Kr5l&&! zkF?ZUx>v>IE8)EwqfnWrRyt~mp3h)4bKdA=pW9ddM4~Nw6qjo~zV$qF_NR5N8tsD$ zY=14j@UY}W$0_G~(Y91YmgC80n)DjTSLf>2t<{S{BFXk{6uEz$sY5$x_aI)IvqJ+ZlDy@8Zd`1O&g!>dN6J6r zHSt(UEe12c8v8TuCE;HgtcsnKyo93;LjB8({$*pjstKGdi^ACcN`-v<{J{uiLnMUqHir2_RF{Cu&Lf%H&I#{@)@bZThGgYgy$6n>FeP?4{M z%9Hi+RAG`Lv(@Slt9wW`cY(i=f2O)%x3FV zrRlQ=8PSb&xJBkP_1bqTxGK0P`dHdii#i7^KUtn=eAKM`+tD^)iQ%ttlOPf9ChC#_ z&VAe+n$r5ANp3Y6d%{sczLNY-v_dJ|E-QMWU6kv!HaYn(yTzOiLPAK{rd6cy^Kd4b zSK|wpCx87s$nx=aqQufLTT5qsajza(wK=&KFT-v+AB5#OuP)O&FNAeVh#-xmuRm#n zXXZ$--~E%BsKcyN&8L_5Q^1%L;#{i9k$hjMaHxJO`n8&HY6dHphA4o{3eqJjJkVHhSA297BrgV5O`4}-ZxHZ*_`>()aNMOoTD=AsI}COA*1{*OAwO486FaE@K%cQy}QkjCa41DhLS2l7;Bmgx?I1K!fL352u>Ko z*-`TN#gh2y>e#z{WMtn-$g(2V4jwkeNaX!UwtS<3?32~%lOfB|ue>MC7ro@xcxrj{qRf6vHkTEvmO><0P9vBwnpu(1ihgBNyKNsF!{ZMN?R*|3U6AE(Jzd@OZfU_n zAb!tQf$nb_V8W^Y*jPh4OWbF20Qj=BG&GHX*VeJE1GCh85D}vW!Nh;hkGgCTZF~cL zL+T{>#PWe9hT5VuO$M^?6nIZB0(o=C-Gzu?%SHKS6?eeSJOX8WCuZ zA00-~QH5Pey}gQvlU!&7S} zXoAR>8umtZ!f?S43_WE!4`XPL%QQ_XyN?bIIy+_K6(C;YBay=6PJIIb?hlYnIAjo@ zWxZ-rnyP1GWsSabUkOj626{_DGyxil>b-k&N8Lh+njK6dR&Oh0_f|G5X{hd$Ro*>3 zZFc^|wFn*Z*ir~Yv^|cL7K*G-X7rhxg@eO4rwq96$cjErc7vS+*nM6>OmqHoQ1oU) z1x?Q`Y?JOb{;pOl4w`?;5B|H+$5kxKcvpOu=sOQ0wgQEtUu@4l5YaI*Hr7!Bk;dg4 zocKjgt-yOP8~^UzJF$zSC5XY?r{-hG2-Vz+elgtyZYkr+RnI$0xoOGE!fG`-r)}IH z5N%Ko2;GI?0P@hRU)$)(Nnw9y-CuZJx`C_dkDD&{^BKGdiyDV`+0f6mu_V9Z z5?nYrm2(&lPSjYvk1Z?RxE~Wc+I<+_Oq+&6bGFr$D?8dNGqA%~G+qo$x&IjlskBt< zq?1j2_qwjpeHf(DdHB<}`qTvom@uIYmjT}siuJ&W0kyIf(g=N+t>P1T3|T$8m=Tlrx# zfR4J_5rRGOBY!T(^Rk?aP@$%UqunJZq+aq31mI(o*ooN?k|@PnlcRG*z9f3T5rrY- zWO&tLXhx}OI&z1*B_(GNsFhd|Zi+qH*QdX{_lN#zj4>vb;;PisUn(-`m?ef4L)(YS zg+G!b>u>vB92?lPWcRvzH^=Q(P1@x1X-zi2cm$Ok0@PHI*m1aJ1q$G0sGJ$rT$wf; zbt=WhW#0U_B_D*^dV{i684NhSanuyNQ&+^OLshHwW=oxZ^=IZF@r%xz%;d#8pkzb3 zCw(A~)ekf!U#@pG>IRiTBhUD8iwdQKwRT>8~}qxoH;(qcflP~cgdNrWWLZzi)PYAnm<6%+qE zZ}lSc6Vr+Sfvm|FZC7oQ_yuzs>&6BgcZje%PtBXVQ?v;1Yimyw;=O7LS9cLVuoc5Bj_jY6fhXzDDFV@3Y zE+-8E0hTb(x~@95Jy~}xHQNc`u6@HM=YjJW8O-Wx;{)xqw`=Nh|mSS9D>0W=Mi-<_TJOTvor zIkXQ1UZbNm2gsU+5V4cr8AJ#lMvjVxdCooH8ZlLk}ZQAdfe?{B9av{ba+-AB)>#tOlfEFKqYaT_F;eth}SfH+m zr-b#)4%fen-JDful#()yaI%(U--IAYRVVPLfi2kYUOjo8O|}}XrP=*MP*r&9!%O;E zcLqPM8+_@UM=d;sj;B$fO;Rcx zwgH=@T5!pKP*mw}HryNOPRDyzC{jwzLZq<2j-v%!zROXR zzkBESjm{4$!0vcsB4&?5g&u0~OSHZjuzCU8pKhTRGf&S?!|TC{Vl_@La@8T~``zIA zY}2Q)&2tEJol~?P$ql39Cj6Fp3{x3>@fk=-my|jC!xR5n$ykR(O19`Bl+MryObuFM zB~o^kscQRE2n>5%R<>@B?@q|Px-()xkPA^9b8{vQGK3`M$&5of@w_<%#>3gQcq4)w~hAY-02cdoJ9*{RcYE`#kq zBDSnlzxhafwXA+E-@(5H%ivRuH+F9(9XAe2ANy{8U}a^cE@$O<8fq5S_!~ALX#=cf zD0cRI6wroggd94H??(rnnGNo9^-nf=)<9G3>H|35w*jg+zqH$ z3Cz5OKdZNxlkvty-8OzgywTu|g7N9(7&$=*NQ)h42;m3PhvnndyaRkWv4FJC+|_rS zI5WM(0xV=KfnVCT{%dyCOd+_Lo&Bd>Ma-?4syjU@L{gt3+r zFMOns#@<_XHdQ5SMNg+7BL+6;S6uz#*YOzu_M6iht5g_Gd*Au&$VppcWo4xWK(yNp z=Qjglq5eTX`R~;Qdh_z2u6@4k-_~P*4Qb0IKNyQn_4@jg-OT6MP9*80)o^Ifo%0k@ ztaJFQuQ75{6St9&l)Ekx%Q|ly^a6nkj2;1>rDTmDc{NkwcOc}aJoc9Y+}^K+j7?g7 zA23MQOdOoO*DU3qA~)dRR~7Z#`vpMXqb!qiZTUP4KK;8X?1iZ+p*RbbO-p|${Pxar zgRW_`WoKkWf=qh@Lc z^xb#XlykABsH%vaNwZch|6BjNIaUciGixW}G>ZW%xcRYWg3%%w576=kzG5$lo1l!}o=q6(9T(h;U`T@&c?npOW77s(E=B|ffGE0V@NG4D}KW=3zP8PH@xb8g1W(khFqxjhMx%6_%kVE_$ z$tL%|QCAUgZ$e7Xj1umO(M&^X$pmY+C+tzNSY~^dA@3I9M}{{T26jS9T4-}Fa*#Zw zUQ5&@Xnv+}AazbdWlu-@+t3fvMA#LoP;>w!ZybvvFG#|ga!W|Utp z_W#)t>YiEOY5YgB?j+Z|Mlt8feouNWeR0j3278 zXzErL_ee$;+MWi-R#ov{oey9$Ot!2u>NyOI#WCx|Tp?|j)kwtFNVc3&hnj$HQg}Wa zp|=|<=ss$ES$VoD$1$H?l|`Q)ynOpZT)yiYv)x2XK&lod3a6I~UJ;W2{{0JCHv5Tc zs2Tnx#6y+$kiwN^_z${(BKSc8Cz(Q3+rNMR_Sr_PE%O*mTs~4~mz71iInxGxN3!sd1-zj}c$55@&>;4d#*N{8K19(QNE=+4ZA3|QeLw=FE&APBE} zxHZMrzxVYwA%g|57Ro9Fo~AjH-=?9l<);RElf2;V`ZkC_Vx3FhPo<&ntu{oF<)lRZ zyVt2woj1R3`rp^pn#jn0R1oxaAGgF981ls#*I2zSvW8LiNbt8yXl~t<*j-L(%&Kod3o3G&-ACK**>GyTyn`Yue)<)UR^9+o`1bD zRqwa$J-4~Not>68327m}^CgLs{L4L9$pswtJgKs(!PlkKn(}w2G%wV|H%gKGohYA& zA|T%Nq5B+BfQnVQOo7lpq;A$j&GdE1G@V%5Mgw8M6DsMBBvQ~yu+va{Nv^Gud*L&!5uC+2bERL_rvbS@CUZ#)0-AB zJZ>->E`kVcuhWdbEKh6GcK6oQ<^b;NFKt7nrCMoXqv~z~&ORgncj;fQ-fRdpLkI&? z8&)}9&3CY6k=We|m2^af!Am2za%y|zlG}CPedtg03k|yFOS%)O?tx1HPCrC~*uk%5 z6BIMnXuQKAmv5d7L|pXz^Vl%`c<}`l73J%Ns#p|=Nq4Gh5_$b!*GyXh)^vN9JI-q?1%~=5`@#M9`rtZK zzRmTzSjOvTy+&s!2W4`KEaT@qycs%ramN>ivpxep;osQgJJchvZwiNR%iw09SvhSw z0ZJ_+XGB(rCM^6jM%<3gX#A!xmm=r2HWpgiu?%f5kE54tDVO+ijtGm0o}hy$P6kkt zXyHDmHaERau6_~6d4Ds?SOLJ)oKLy|FhU^((U7lBI3L0Ax(j0`Ju=|%+rZ5|;u4yW zILS{t7}>;YjiIuBH4|iV#0_i^l#O1>8IN`-1$1U@ZDRlO(Xk6HPFoY>(pS>b6a!5U z%}`P#(zI^aTa4#NXcE4E_oF=nF@A8tZE8VAEbT`u$!SQP(^9@B6sHDNfScZP#}4Jj%AKSD!mT`ecTC||Wjl7a z$Bp*`_)x)@tq5NCsQH-M#uz>)C zx6F@82f=KwjncVl4{z`P_X3;^5Ivv%78aKFl1sayoNEEOg4T~>85eRzJ z7T@J2-#@lvj1zJG^#%4C;Cs$1368b9+w3;wR%fuav(ORGj2-ZhU6t7x9VLZw1b9kG zARKq_g<|^BghI0KvrQdGAD?t>TpV$*iQ&y%zQ;H^E;pk*Q|x#I*G2}@ zb$EB^|G^IkRO#W}BN_TIViV4oB-iCOqsJAx4euH!Ck=J79w!S`s5gpULWI>*+cT<< zx#Kaw0_l+M{5#$GPA}WlV^*nfFLm%`kwnTXCQI>bKhRxX#*(ml@vGn5sG=NY zNX~qZ>H=38CFfn9!GQt$@%Nt(oBJh|DulYPhr@hVfh7iwPkKfEofZN{yM8J0+Yyu7 zeTT#ka=Wj)q$xkk9lrUV8B)j9VVVsNGYy|Ve=ZF1)JSG!dt@1}X!IX}&$-XBw4g*~ z)`-&w7DbCFDduqAqO$5GVR+udu$r5vCTx|!98TaWx6~0)#)J1G5Q5Ty|1A?f{^Q%p zr0^p@Y}QT?B8qNCV2P4)NZe;8UN+}om$;v z!NHCkNPTj1aUC2U5)ly@Wk!)px;OBFUt&jIe+n))O z?DyUI`qgVD9({Z7_{_6WOXC-YP(|9@jW%EXhHAK2Xptft7> zL5e{|-M(<7CKtKrBUQ3Og|MzCFN-CIMT1-(^@Jo5EzN%Sy?=?0dLWma%isMup4nX` z=170R2_k>~+68z{3&`f4a!Oj-f<$PH3X3lqiMPC;hdq$$-xtr!9+#J%+5Of(q&Z`% zXhf3?XA_qXQwn*MMK=@{wwlD`K}8xs@O=G;+c`vZ09G6#rIxGy#exqQ+}KOE&$edQ zJ1FjYD874!oFAEwB(hkz--;Lvd;G24_&N_qQXgP%+#c6^2GD76^pOx_OAvDPSTV=T zh2v=zFyM;_45CfBFhisgnFH8xO1ff)iWB<++t>n`p;QQ!pG&vndMlf6r=|V3{AiB( z%Bmjc5&bmv4vF$pHr0*<*@g-LGTYRhxR8GK(lrVo2<9v4$)6^PD|zvI*De#n_c`=N zdT&SaP`}Q|)G(NIy?rY0JU1EgT&P`-r4hL-xFmP&GdY8<+=-U6YnNk0KI?IQcKkGn zLn^G^E59dtAKqC%!kVxTAmDmZR+L($*En+%(+{#VP!j~sO^6^Eh`oqLGIEfF=N(T> z@c13~hapTekT?NWX#)l~HYW#!=FYC1L+f_+GxZO~X5O21K$e$GF1%-{&fq*D`{dU@ zdm-qU9V@%htstJxlN<>n7LnNdDRk5onuUVm>cq4dwf$?rn)zAn@<%^U^TD3-S>Ehr zz$@|d^+(Y1$aG<9_GWPP)vH%#1q}Us>wBGe3?M^9bv;>DvUheS@y3t;{OqlyUK0eF z!F2Dnx2DmBF5%jS^Ulo7_w?V^&hu#yWm8%XSfmx2H5u|0uor+O@}UyEo8U2y=>ZkJ zlNcQOy4kArXZ^6}isC{Ubk zao{0|ft4FuzoYcuQ0bBn@Ep0g| zBHNR)rC42rFh#|SgGncEEjnV*Y!chgLYRACZs{R4zvrM{N22E z4OjfQ_tC{LFigy29_X+qtLMSX;NhI`-kFPpexv*174HvRdc@cm1{Xtqk$5~wN^q?3 zQ@@4`ozC0k(-vm@>7fv|C9o;+Q%B@|iTLGdES~)ecMx(pa5Q7hu_bmtsRG)kS}}{< zU$N)DzAb2eElO%As`CE#Ti?)-8FPfcT#qXvZ~PfQa#PY~wth=G7ariQD_^PPw1en{ zL4yKX5l`1i2gXyLST-Cf|L-q887MN7oS&ZqT)&Ahy7BHE+~*A@O{!~$&UBmPH$4nF z4_sLs_wF$;N0=VVs1Dl+J#yDyJjd*cub>8z%1+}_9$c+qtdZWfZN{D$9;|9!=wzQl7 zff7(ugxHkMji6Y(8vMb$|B#!!{^2@H!{yX5-z#uf-jN|M>xp zQn3{C{xvfW(7IzM=)FH6#KXmflm?a*Whe|Km6erHfD_H69`U;dr6^6&b}&kFf1Z|# zYT@?eDn>f9rv_zwSfhw-TBy5|6f*Xr-rn28<6~vza~qot=sW@bq73LMBAN1HLE2D= z0JC!5*lillF-iU1ea#!x8Gm2XM+`IWB)HM&1iZR2%#8UrNK(_{-knHka-0B^GBY6y z4m)#5rd{o{HVf3meGeJHoo-vM%(R(1Ui zONxjG0fOJ{e-;>#Z#un84}-sRwly;|2BKt{r5mW0Zn$4%5<{i%yX3>gMQhQ&_K)TB zt3G~2_1~^D`Z*qFcAQ<$=XmR+W$R%~IEji?JEMBxFDI+SBS6KK+wDr_U8nRY{nGb-9wL;_2v<_suw4&?wJ<%+S zE!(ZWM~)(y$z)aEpB=khsRW0>Ix1E1a{rS-6?4AXda(&Z^&XZ90|x^j%Ny5&r6ln* zw37aF^>-fp`c*hu20H+qyuCfRvM-C&OjWtABoSyj<$gIoe|pCY55u-x=N2}@!2{{M z@NlOww|4YSlX`r?#YM~M_MB0<4y4?;tiGva&(@%c9>WNzV_;ZN-Q>R1{U4heQrh9u za`Kf`5|UAOVjgO^LJH$5#r4qGZ=g&F{}#5Q@5-m_m*?3n@_5?(+>Q^lwORCUQ{B!M zb7D+YkvJH-c5-@+y1ap_|0)QU<#FcJ!M|BI30Hag-h=@w=y?3L)Dt7L;ieIsNtJ`Pk#J}r;n)S60OgqrF#|ND4yNA+f4(ZE^Ed3CbSr&S5jKfmJh{_vj6>= zIfdr1Q)myWs@P;=k|{1yE7t4<3)2uf$}7L&z3{7#15Ur;!1zpP<>cgX>Wqp)9Of!t`Zm`jR&Lee@ z(s@mP`7e)c%Rc&p?g|0_`}&!PJcY#0`kBC{hhk>&BR&*wxcUPnWhdEDo>?hqQh2vJ z8vR(_-6J7=M}{gSj*O+@Adl>jkqM+1JKO2FY8LT3mbe&%V3>#41(bx%y!YvWu*J#o zpx?#9tIPf77p>;LzO$@xMJSDVy79{zP;F_-o|GsxPULVEa50rfapB=NFf$J1RUL#l@eCU+q%5sVtU4 zk-#!THOT7g|NVFG>0n>Pld0K*gVc%CPc1LuVPfaqvLyU;FzZG~EH8;%!3SOPV`@1K zSEF4qA})V4p`6s8f#2`e6bzlXbL3r~edc5<+1NRHbMVH%JPIBOI&Zu5Kc^Kfcm{-a zgrrFp|5|NR4cd9^cuP8(h+nRaLzpH=$d(efts8o2IFj1y^7jOVg<-S-FAq;GX8z(2 z^(W1GDGJ)!WZcID_+R~pJI0}ma4k@3H{u14%M6nt^$^#W>%p;Cm34ynqJNFK)}@e$ z1q5W}-O3z|Zg3l0Eb(ENsQyi!_X^`+HjN@6W?;5pc-2CWHD>eISNk<16sZDD^&VUG zxW@c{9PNPu77XtA0r9h|{gnBO8%u`Tz|vk9xrxmeiyGq}aL)4@$RLl zyGy4!!tZ++7#6}sA0-zY44-&;B_(B4k)>rDURiY5^-I`hs9tB01gbk!>`DFROG~@5 zPpqvK6Pc0BU-hC0Fh9lq_i89jG{-qbE|M3@z*LMl)L8Yz) zftl>@$2z|pYKK#A6G!HS#jCaBWKKa}EQFNv%_ylu?^bKw{x_}dlK-}6O80M<8fm%v z8RO7F`PrG}?X;p?{=5NJxxO5&YXRJi{MHvX5SP_A6R zH3bnl^gfQ1y6W%;dpm2ienC8$moX)FL>^K~op1?8!jpqyiA=RC?Z+TFsdrUrqz?{} ziz&a$|FpG1NOc3&7C}djsYJ=mJ z7R^!x_K_vtd*u6=bB8`mccwsceklI0btLWey{F$|QSrAz!k(Cz(2;b*s3e69tA1C; z5uOKw8^q$q4vh-BLXdpG5%tkP2Dh}dpb593uneMXxKcy!##pqM6+3?{=G}=Q zl~&6Xj_X^7HKX{&Zj6gb4;;Xp5qnT|#IK7|*JsW9LizYjCQEQhL-ZSj+oxVqwyS`F z-^HrmY_0Y1+1X1nxk2&M-wBVz!*AWdrZE~L)|zqd2d})HhL%8_!co>?-^KZ268W@ZLlrL3^Tr94 z;$h}1A~#6balfxAlRwBvF?{dEZ>OU=Wx|DVP8ZFvM}A#LVoo|(FWHslX-p5~tRKZ$iJZ&E$ON@{C<8_jNYR5{1f6-KmGMEGS$Y0R*{5*i1 zEj*N4XW`%e^~*v$+r-fDC;u`$S^j#R!`Jd=Nf<~RS3L$7S3@@#dGG=?WTne!ocWF- zEF$Lbb9hcT4SVs zi#@{Q-}LWDp5|X(7xVL`K*OQRMsTk^(TgU;EMe4uGTN0J4V<_yw=)_%zPClSEy?qL z3grHAJ!)bnqvmd&ULgi+fXMqZEu=`$w(;iEfWr*9^264Pwfz1;NCYfc)0 zeSjm56F~=B62JTYzH*C4s?Ts2xtyRH#?n^e7YBdIZ_lYqey^FW`~@?D(cKhnZHRGy z$x>G$g{rGKVK=J=J@&>5&M)!w;STeSEo?SQd$M1_+lH_Qak!UI#3!> zf#N%;kZm3vw{-nYhOw?k2v8tcPu)o@KMRQ7%H$4+bE3)p3h{B2FIV`o{!^7-x z!;$*9nbkOEKkW$hgJ20vUB3r=>ET*vf`|7URJVu;itzHrsTJGzq^6~jV4GR}nNIt= z>ASkrdI+Oa-Nx%%4|Ij$1<04$v{gTK=jG04I3&Syx6i=5I^EW~s_P4qqS(o}dFAi9 z?NDFFz80MqnX; z6H-eg0WRb}Z-B%MbEVE(IhgUIpNiJ7qz+pe#MAa2w!FOL&R8&Za zt#l)G-I_7t!;Cx4_zHkFB+6d&{Pm%0)Os#u8iFLNJl`W%GR|A@y2TmjCd<~eS$FsX zKitcjy4mS0LP%6g@nl7N`qq$B*EL_Y`)`%E^uBM1J-w6gw|h4@7M%z@Y=8*DdjsOe z;+>;m>$>jHTIk2+{q9v=s1>P;C5i;G>- zp2>OuN5C=^E3Vs+6kmr4K5^14d%?G_8UutS2A9{Z;l5r)5YS zLgRha7%}>&jf6w#T$jkV3vG0z(Cr`IQ~=AKM^w!Md56`X@AehW2+$3OQop zwR9a@9@JQ{u3*De8ALv`?`8z{t8pYPzKfXMQk3LQF;?FvzDxVsa5_oz=egl8L;pAn z{n>i^9zZlCuTmKD6vUw=Brf+J9nN^|bCcSRLh_`cj3Z)EyH85iRiiVr6LF7FCK>Xg zsY+c&W7=BbGQz*#e2FP>e%LEdCZ`fpQK5&5cq04lZRRy81XmBKP+MN}<0P&Z9#NS* z+pMlRL1A7z86yE(;Ca3X%tBeIH%QE8%eg}!d2(^aDda3nRKN3T z7U$*V6%i4U@Vhyor#cKZr>F=3KFyCl3G8@xvtF@EFDil0u~HIxYGG-bb4jk7*=s>R zA0u70*-&o}y1MJXCpoaOFd74#;X#A?Z*6UyIH8O!q_^Z}Jl(!RxRoHDbRHufFKX?w z>QJ_!r}=waZppoVnJpJUkGI1U;x`MkK)DWMz=OV3QX8A+{0?WnPTY)p6T<6SSq z=L5x!GLn%4ugQPY^G<%jaH>i;9c~nfVjNQdF7ewBj{_x{q}y*A#k&5kX1CesBcpVLC|$JHS}*M=_8C*X#!X8k2%ln2iI=WdThLsxMBrk4IZAO@UG$F ze#^>)iJ(+AP16gAmH(?Ixf!p*%3vF43T{{b1rOl$5AzGz84RYcN@>F?En~D+De19> z|2@yg7&dz;4p9a^EG7&zqnyjHjZG@FPe~7W;<3s1=jOI{)3lc zai&bJFNs`B4Vo*;Y@TM*YxwzH!ZYR1i)%| zf~wCVX|}(_5X^I29zUJk|aG|IIp94q1tC9I~>qGQu%J2-$lVku6(v z$jaU`igL&d*?V1fgzS=#m6b&KJ$-(+@AX%=>$+XtisSu$y`Im<<9;8^mh|Gu8iEpb zAY4%3m~-EGF8z3 zBlisXv8N5pd-di3tgi&7q}uTQ%Pcd6(A_z`51<}4mDBJhtbsU=%Hvw&cMvFGmhuKE zW!~}m`eKTb`M>Y(WgE4b8uB#ISK5ZuzXFi{E1dn|E1<;%DHui6E|8BhijIK~=mQH% z8l~P^QM04KUxjVF9*`{)XuZRwwH2vtu;dYePPOScv2FFcBFl=duh} zSER;#4Qx)_0jGGl0?fDge|O?9T3v7w8~qQ%d9|Bm%8Q#;-!7y~@LRw}_O}6=a=*G? zdNSDH$S(VTHS``D!R@W?$8q^pQ5Px#ZU-MMwQt5U!{%d!la8KFm4Uwgi|_WO5{@Vp z@r37|QW*aGH{sGS7t_7$HnN`^u&1hxgb7Jm<(GtvdJl!LkSCyFey4u|;~8-o8RodG zXV1dmx+e|J>vN?A94a8TbpCH31pu)mgA%=D539Cl%Q8Euh$Y|mV;g&kDhwIwxN-pi z3+Y7KO6Kqjq+DXTy?GKOoG}+LRFe?^aum>$gub^QV$?1B`4_?|5yezATa9xRJ?UHs zLj$4Pf7>WKN4>LItxNCbHU5V58IPd$7f+PxM|g|D*uljgy(Ir!$@fbq!TuI~z*?HD ztcZ8A!1TW%q8gM6=eT_4J`EoX_-SC?>;%hv<0+80C@4C5Ows zobXd$Hd|HGD(L$67xSBYntm-w)Jn6pcMEYv+|zLoL***O@q8(}kpEo5h1el$|BSLPKkAJ`F_$HmBNq=s-fKIX77Jd26 zY1RDRXvRzB!n-9)|3*gRy4N~BbT59*UX6X_Wx%PHy5e2`qP2S~m9dHS|FQrP+BnC$ z*_ZY&Z-=wuS3}H=Bou&t0eUukg*bd%3DB+z!?4J|>%vVj^=F zwojuLqAFyYomTt1uU@{FZvGU_O@(;+h-Pf~&8u98VJ=4oY`pkczvazIcEU(KGI5qi zm&|R7!4M@)@KEa2_cM>ut7*a~Y%)1#*@;gvylsN%RAn2(Lqp6mL4)4U3cv1s&i@Q> zeW%4*ih)f45{Q8XQs#OIk1e}v2-(e>im7kzWwR1c=^dt|na{wD-nnkh6Kv-|q?uBs z(N=w#EIcA>m09atIKJ*zLsj+j9OZu=f$a@G?S)S|Md;JJJkTQtbuNr656goCfkXvR zuYc9DXFJk&huc@}zLhSZGy`!p`!|;D^eqm;K;UWtCmthdvhK6u&PE!3$r)$!6u zU70^>C3842Mf3gp13iu5;tbZGcUSC`^d5h3JE<`#OW>fj!pB*?oP7C@ za2xqpVCqw;{*PnRGs2_t&wsZs@}xu+IRt)YD%A(>s#sEf^6>ERkA~Y~(uw`HbZOtk zT^3Gv@=H3f2X&|Wr!G{CA8aJ)vKv3xxL=X&tob=Z_L4T@EL-h?T5wfB~B z07w$2@wEIjIFrtEn&;3oxR`+t;Q@lxvIo}9;qZp&wNdqvN*PGq@&EfbkdTlNlC+>1 zl+o#XS_P6x8=jOzJ80*81A_85H)@L^cosZva=0E5@S2x6@&?6EJTE-Ww1y8Sl}~Jz z8pli=wVH@3Al8i3S1w4q_)&I|^NCyklfoDHBbV<`1xk%qWft{U8S>M6)DHsBnseam zaE^FiRiEMLN8Auz(AMjoA4LvL`91yuNzP+PR3Y#gxaWgb z+CpGmEm~^d=nSrAN0WxKHy=rqF+7R?{snL*;dFVTijMg<4|KeT%xqN?i4#1Ssj8m6 zWl`STQw)4u6LqMsoeX*2Um&R+Gnm~M^I@)o+cp|El z;wL^%FRk>?FN{SDg*GQ!C()fSbdKiv3;e;G5y;W>RnCSitLJ6CV3A1gr&WG_!KGXJhb7mY-*%GC*0w)T4!Zc&H9nGn`a9aNB~x3?rqU1w>{Yb|Zm*`q84eY41D6WL za!J4RH07?sWC%^_ZweuA1Nx7AhIc|N*AT$n8mA+QzeAT|A znNGBMXk>bTMrpSr)`-3=^U*W6PaJEk*3PR$nz_d-zNpi~g}0H_a|%6gkwQHPDGO{& z?=sxeEQEphlA#WciQF6upTCFV>2fD07v7d4F-8oL*1c0lO*Ibm;^x|V&&Jk- z@5gy(ePIt#*228$Af3D0FiP)H$S$qXNVd(99MA8STEOKOGJ;a(E+kOm`0UNB#!XAC zbU#uqaPff^t19%3DixcO!r}@9tx=JRs>wu*5+w$K>@yBBD>B7DH!cZOnro}&_Xh^K z-M3Y`uV?0AM*nfL!6BmR+w*pKcf4K$?`s3U7LFIk7xB1{y7G6;l#{u%IEzn9+1nPD zzN*rqkMF$6=8rS;;f7kbkfJ!_xu_qipyX5G^f`eMFkknZ)&94hU>+^Ga}-m! ze->uN6_L{u6-%%fMmo|=9f`PKnF~x-??!g=$f1&f*cLUP7QZH$J3D*LeqW9{Xp;z) zHVxNW@a`A3wk|$?kJj$m4h?0%1|*CulQ?u0360xoql-yhs__qrb)uSu#DC$qq97A? zyZ_i&@N1`LPOpA zIc>KQbPNIf49Rt&(>EySTAPoRRlCS?Lz#epz%upI1Bp@&?0e%IuYcsbTCPjaVl5<^M`Y7W~tGAms-(I*zqPrv(H!W{AvXv~{5lvJqKM|TN4oTkL>@C^Qy)W?%Ho3 zb8OXyY2R&bJM0itRO!LUk`t;XzC}71Ura@yB728gTITwGGuXTya~v8Od39K3T)xq8 zX`UO&^72lYXvnB$iB-f`RR(4G>GeM6Sw3>A4sRZNtEI4Q+!2ckUNMVi?t>WBsF*)l zlPM+gMvZBa9_{qzsfHhL>|?adFTIzg!Q*xcmT{mMYE zUW-d4YY1v1nr|R(L{Ar0R7`ADQnwgFseSvY|IjVBqUJ;~=Jh>(mCkFuJF4Xiv}jjV z1Ltf01!Wu4!IiS^{T3oi`Nh}NmMok0qt?3F@PCTYypBh98Nb-+s>`2e{^j-iLOiye zaj8aXp*Tb~iqN9(zHauF=(~6iA*MCT;?DE{BC2U4cQ`e3XFs_<;KZm%U%TkAC`djo zBHyDd%5Xv>rm?A&Z8%F7SdSB2*QQ@4)80W`bfP1?LibRcrrTP`Z0Z#&dA@1k z&~J;=DNZl$T3SM?jhDP@w!R+d{rQ{r6!MTX_3Oenvfk#`Cc}2HX_RZE-lkd)Y1|~O zGN5A9UBh}vTRas*Zl_H?nhet=P$qcLhFbPeI+?LUG-oTfvs)qme9#anofpvnsw&_a ziw*08W+y2&B)Q33v`)Xf1pGF5A}c5@ZG6Mv+yilkCGfpf4ft8--tXr$E;>9UH5{)u zz2rt8aUo;}FoS`XmaOCo+OJdXDp@7LFY)msHHRlKLtx}+B7F^h(jX1@PXCd;{r9mu zEPp5KT8LF6KG%DIG$%vVqsBwgFYW%K@!SSSnoCz;BY@AHD8U%y{5g#ar0Q+!QqPU z3+u{=1e;9G)NW{SIA(_9R2t{QpPU{Xh)70TS^`BBmGHEXBK|u0HE5&5DK=k=DU9wLQRL8dnM7j>76|8rPM5Qhs1$cp4x&S4GhZ@qbyOKk%w~^@Mh!l?_T`=5 z!G+*v!j$Lt=S~h*Q?J$gd~nao;|*;w^ar602+1VG#qV&-K)413F;$5_Ro7QaS`IoG z8MiLXA#*F7rIKyuF849{r|Q*=*NGWG<)gNb2Klu4WYR zvpBaSX7lBaz7XROt|<6ces)5M+#wtzRTVU^{H8a)AaWUH5QD5}o7obx!Ji&uGPMf* zN!C6&!d+fz2s0<6)G%E#`m{Z1%0ICmT!St(%hB)bqX~|<2=-aZFa9B|b>7b*_H~?- z(aL+dL(Cy<{-1gN?e1rV=5&92GlVci2}sQ8C}pSCL11Bt#tnGwaNQ*v0Qw(0JM<+B zbuw&)!8UZcA06-dM0zy$Q%aoCugNsGKdBE^!mc8hKh&k^c0R(zW|k3^xf~W##YIjq zDz!#<=upj}->--9f-V`$+q&YP6kpg;(Hl`%+!9fJD6c9a8d#8BY!gj|!AOQN>^W z-^G2F{Ha0dUQV)MpI>!Wz?p&sF%tUqu)lykB;EJ#^uxo6@!i&y&}@T}LriRJY)nj> zGVLwn_qDHrDa)Se{&;v3l?J9c7?8o+=++hAMe}|MmAu*77hTm3nQti|MH0m*zLtbm zy{}s`Pe;s_paPwn&2~1Me>e^^9#Oc5eVuyzF=ZV4)2K!5>= zV27O4m;acUJ$wuAGZR0#tEZR!3wCW_v1&qsb+5)ate8<{ne__F5abJPGl^W6C`<9n zO|+AZ--TB>mVCm5GS$%>>;&9)ndRqOB4O*crV=JG)g@WGBqWZOG#R4%J^0&#YvL7> zVv)E@ggKipQuoK}PhMv9#ZSE-&rOGgh3N`ILxLxTRHY9tBpK>G`^;sZ?{X_mT`6PS z;(gg*l&V*(tJS?S6h9rpU<3Kr7ax4)e!fx=dHR9kS5P+1^USAZS&(;V(qAiHB820J#l-Pxutn!QCAb;cA6no90)C ztJueVIQmLiYRPJ0nq`*%%QKfXkfc7EmjhEy8tI_eC$L1RzJM92;EP5wwmXq_R_K?o z-NNuEV~AfFB2h$(>5)DGeTjqFw_ivG!x6Zkkre?)&)N;!@eJ6m!sro}W;v3g!1sml z7O>MzO%v_Tag`rn1q+8qjr(b~U;f;fa+!I*4t(UG?fO-iH)N_6j*cTLSs)b-_Lhye ztyDb1JX#m}sH)z+;wxBJEBRz>jQf6~R_qxX4>5>cSWK3uKC)t9+v7i=v^IiLC9cSZ zWCjM&H)VZ?t4dAz#cxWz*=XRp%eLO8n?YJNz5cO0l{d5WH>4$nz6uRIekJFYaWbM! z$N7>gDn{{XOZG>~OFUC*MoQ~H-i6J`<`s+H<7K_VGvJ=DHQnTU^WwMWX1tue2@YHf zFY>w-RiQ35$M(AByO6Jv|VnZD)-~!($fWZub&P9P!^TC63*u zAh?ywjQ612A30_GoR#A`ur%u{1&vEyzV7z2W@`)^M)1#LOTHHhZVnipRg&49K6U7? zACm6eKDqtvLA~F8ROq*;LE?|fF+#FGwM*!g7?r3L4<#zAU(K%iLYO`}I(m6|qaw!{ z3N}@I%6&k@V7v)$#^C(XS&G^G?6Oq!*Rv;|7Ul==#-o#PIpR|EvmBI{JGkET%|hG)uI`THLyoDQM6Zz5ZxP4f%5;JLrB zG9MEcw|GslqNzt18Wuz-&cW&5(@>De&CGtC{MfKAXg;$hdOx~l!`ZYIf1(etmWT`M zM7F`?ua*HPb)*7x#4+z81|Q<42>H0pRh?&(*#AG9jcA_-boE*Ho&V zt*(9P+4DXa7*H>Za$5Z39+=^E_4;xHf7jrbhfj~m)>&=S0K$+=lkZ0OxEf8u%Q#G{ zv~IU#5q4f_-Zf0fTK&G)^y#8NMG8MZ|GBaa!~;3f?pQ3F$UpVY36U*`Y&py_1v;2^4w0eY`>!p1TUqkuu%kTp8H)F2EjX%47&Sy6}Vq9LDh< zXA@{{gf!Sx`gC!vS8_iiU30H2-SFdIEO(dzTXgH~{W)k;80&Wm9>5>&JWUe2{M0_C z>hpUH775hSKlpu1poV|xzY4-1P+tr5?O=_gB+qleib%L~qb2s)`TdD=m97!fSqv{3lms zNd6d=wGARt>prcLo2BK;^76RG!DW5c4ijVJ|5n`lZK)^RD(ujz!sHa}YN>V@qPO|! zMckzB)t^iC2U>P|mQ~S_q8el~-ZV<^18O)nN0#lF$X(uoXR~ON&l-{l{qx1!yd4 zrs%UJzNpC^qZ}dxYZU_DWn0eLtY8KwtVjyn%cty>jSl15@k$>Ee z^YcSK6x&y=LsBWGS8br9KBJlsVI98R2*jUIhlpgK*!j15O4|Mqx2lO zjfR50P!(7$+uU7oHyRhwrqPLfjpGSrg){R&72}KW<@&JScwIk{lTE*7N&rM5U0N$7 zPd=V(ck8F*5WO(1tq~oG^QWs&QewweL~s`%yxIo(@_r_CG8=t3rF=8^QxyMD$erUm zFMZsXymHT&{V}gVP_6>5e%B`em|Bx2E?Y0cNA6w0AUF&rHljb7B-mdLgZ zUS<^3Q5Mi2xp&PIM}lnn1Rgd((QFpgB8FOQ1=9$8piyzc$`t{brx_5Qi= ztK^LVHiLl>YNGwwC6$RS0I*n3;zqNgr?o2!X{ zc{v>szTnk$u}e>VGa9B|=PdpZByVneqf3KUMO*JMU-+dQCmFEZINZOLUTi0v0WQ9{ zuzp(}nuuk~6RD9_B;rYFV98zQJNe1k*Kb(hGVk!yJpS;lVaQNXb>e<#G!c)Y!CXW? zgH5uQ>gxgqC2fX+2Dv7{Ey$BZqUb7PySVew5r#C_>{S8PDAv1aiSHV8F6k($ptaPL z21S%3M=;_)_4H_IjmAW0J$O?xe@rV&+jD-cTXZk6Gpc&4rA89%RB}VRpRTJrj9B55 zwepLHX5KdS2cgqk>Nlaa9Elj9l9dWe=*2u!ap~Cm{nhe`u71JPH5& zSdtB0jbM5V5AnRbG&^5!`yMwY?bL|TN_T|h=o2rhusnqng{O1Ip6xk>C39WF7vW<@ z6naX{Kuk07R#Pfj(mlOh)#x;?MgvHxj#5wTl_D6jll`tSlBf`f17q$3&( z?rRBC7T4uj*BV&I+q{T*4Bw@Ga@3ZOr!5?N7;pyX;d4ZH3$!e9{kK221WFm}ec@%* zZl{z+Fiq!roK9E1$@9aR7q3+^q{VK&A9D*1S?#a#@6erQM+kY1p$viw3ED$Hj=et(>nB$QE9N@Fm&IxfEVH;5-i((4D> z`;JnAo}NPuW4zbTz_Ys+e&3)>9L2?PbGH$+L}nXHo^T@b<`)4l0;=OGXvR zaXG^_N~+1q#<1=&v#H})Ie|Ho%X>MdE79G*AN7UHXG*0FwBIGP{=-!fU68JFo`e45 z?mM!th^a1qztQl*aj13+4*tK(rXCwr@xhdH<09p?35pxEaT=vpOn`Y)E2EP5(|*~M zf67S=j!1ZqpulYb{?oU2$B3vovB^BN<05|r51gbd)x|Z?YRn^#-W%gMd#SmEju0>Vs1nezs`$;#c}5h2yF% zboq=UFRtiM*do~Q_it&Wo#d@IEKE(^;ov4k*?wT^y(wx&qm&R)pt4F&4}qL(R|0?p zf{}$YXEkd)02id*n@Wx^E(#zp4)qd&-@oymSeWtigJWv(2!g*nDM%tVx~mvGiV@oE zI3879BntBiF~1jr#z8S{8B(9_>*^dPG!Y+~3@2zrt-6-&n_TW%ITRb3^Jf;_l9VQJ zAnci5YLlz}902Yl3*VKL-I|T~Ux1e?!g1@O(GiFgG|5a5RpE-USCAWiopIu8C!Tlz zMV0cDZJCDO9c*T~#U36-P>#2J>6KHi=9_-pcV&Zyol#!0KBADGWg)#!XjOP^JaTDp zcvJ9J>(}=8+lB)Fg;Nf8zpN9_9}g^Huch&6amWOpI?UNC3DHD#rom=yn1QO;JPG~? z9hyI}JHh`Ff~9Xtd7O`6JqMsB#l%k+ouZ~Xb*TL6i{vn5nyp@z>z7C9DxUR`uKD9% z#(HCmxC?V!QyUEPT(SC zhxHks%2JdA>i@C;1sf8z8$`Krk6GoBlVxUPMU-l#hS>?vo71_Yf@_(hk%=1voYcPa z6O1)Q8&V;?5y&gyY$b`#x6JXLnD*EH<%)ts8dM&VzwaLdW`1ihj)GO@MYuX+3gOIc9nkGUR_ZEto$3FQ;icjNKN8OUsCghep&3$!b zI}ZH_$D`V{FFihrtFeD&e(y~+1`z|bpcZ)+Wd{Ikriu#&6#G>uzF4@iu#YU1VH4wchiKhD={$;ZjFa{E$Ve7)_l}Nu)vQtIihl-AiXxtPM5qaSA2pM!>wh*O600r2*-fx4^gsC`YER@( z3mPS9Yb-J<@~RI}G*=XjY7fIe;=!3gTFH^gVlX}KCSOqcNzduM^ei0Cc*{^YRLp(j z`;F)3KD+SNYX71ju*<6Qdc4+|Om;$K{?e6RrppBK0c898k+#C*3XA(eKmYE)KxohzhaGX+FLYl)kb|L z&Od}j=~{>3%^~CZy(Q=$L-yrd(zp6&qkL5bYlW~)JSHP!iqw^~`@|?yfBNlsxAm;? zY-8;zh$fb;upi_wugR;Mno6%;NQM8_f1Tw-+wNb-&foH2IhtEZLxV#@HZf?`RP>B% zW@eE-Zea0vI5_xgB?}Kpl2+HP`=XznC8!=~^xpD;u;Oa&##N@%t;K&^fH;MPlugY3 zae;XDS}S-8 zB``P?)Va*=2eR0GIywVDYiUHrmX0< zMcP8xMBg4L>xx2X31pvzN? zn=$#Z*bq1?cgABj1&|E_*%URK7&|?1jCZB`-4IV25OdlX-4~GicOO(t-}W9&mcrSp zvB;s6c7mRFBmB94HSy%0%t*D#jkU|LOVMD@(R`kL-ShsqhyXb(0R8>^_AqN2VU%f^zOJ4qb&<{I7$GIcP8vb}NW<5C?tLgd zy?pzyxZ6<$xfmf=nK?V3tMoDhpVWX1X=n(eBG?L1F%h$2`X)T(+~rWiw{~_cyfTt$ zyb8?|_#5mu(@70-keK|$PwtqJRfbB|3H8qXK$RDpndR~W8Ynup9uiFQd%NS9{nu8? zL9Ez#k`+YVvijeb_y6;>{B@}@h3wJ+X3b~0s7&|A-9q6P?iAX`eY|(Vr%GE-mRT$e zjgu+3$(t~24~$YbBpIUPiCwM*6ZRn>qzcrlzs&$BRM*geb>{sLcz-mTdoh{7JD2~4 zib*_dIKCq8PLnmezsuHqL)=?c@QfoDty*N2UR2C0`IRe0Wox1Sfv>lNwKY$gMw)}3 z-H$&nt`a>+kH#iI=!|ChKll13-CDjz(3+~N$Hd(OM4QQB_(ns?^QocX!MM_E-i{RG zf(&#qI(*vmB22x$htnH|1-Y{wh&O|ZF2%`r3s=9d>M7hYh?)t#C;00^w6nWVPlE#j zdn(wLEZA<;b-CEK>obSKM{o0+4Pvs+g$}3s;JMAg3vL-$qBlk5?r0cvj%S5 zxZ#lbE8pa?5c%@?cr)YXgO3^SH{PGJ`s~#|TQOc%@R$AIyP@gnPUH5aA$I;f-6}mb ziOnZmOJt-+Rgq*YnWEhk8H$r8Lr3jO52BKb6i@q(DQlMyXG}ELo?V7cRDQ7yA5AD# zL0=WMQUaPvjh2nbhHX{*&Vo8S6$({>rJ}1s+3?S`9X6$w7H5{CKayNi#*c1l>t-;C zrFc$&CxCngWqY|F1PE71mKwd*QkwE&OINpzQW>w5Sk+C?HFF5Np@_vfm@m!TCTnh^ zkRF6yXx4~P?ACL6{R9rxy-v#jcNBtv-Rgq;((@3O3+k?VdO{p!8^F52K^4e0svCx? zP~xZPT-(~>z@9s4vh-02o33wW3G81=o^z6mJQZNpf}*zic60#a?_9xy2lhqAAYjxm zC|NP(zh71>T>tvV0DbEBw@@wV#}rh2aK#^(_A<_nT*z&4x_$L`%W93TUMej%5}^PG zPt`<0Wrk|~f$fe?s-+}dR11BDAe{1rSFF&*iHd?`7&_&C#n79-0P-{WXlQHpiLr*% z;{B={luQ%wA|$#R6?!EN@g?Y~kg{8Y!}I6rmTO}}@7YGvqPF{s*D{^0-H3bt`FwOw zxI?kt_~9nQ4{D+|m1Ht}{JU5}>JY)6i1?%FKPYUxCDTvysM+SnS?`dQ+YD4}M4VNY z2(kh-9y-A}49%287GFnWZqdb0tohu)!e{IDm-!g@uJmkJYzmx8ZsHjgX7i z44eH9Da7Xhd47l6S%i@xa`eb^{yn3{tfQsG@fEUXZIw=X`Y&735K5*hSha@Xu%AvQ zq8c}oZXJHl`X9>Wyv6R3ccwAyTUxJCr~_I<6LFUW%)hnHxa?aVJ)@ogij&JMP)pP` zH!s2}%QGnFJERZXy(_?U`nk-k@n7flofg+Gp+&{D&V(X4{jc@({({o>cs%c)uJC~% zdDtqOp4YpgL=~cz^6N>Dn>9THt*pN6_OdKOII*v<@9S68=!hkb!gFn!7WtM}qbk9qfi51TU@E;*=!;)B=8t6`WT`qE1>#?Df-2<^2u&gGJq_Ob@xMUr1QmBQU z!?gfAblxoj)(#U3%SC+$O;N#J|V7{$;({nvw(WO3CuFt_}r^(}j4UcLf{qJzAIq!|FCkwu- zxb_g(mhthy*;$m2H)|-IZT~OKW@Qeb!4S!E)`gp*VoOIxf@=x zesx@SGqOe0W?vifbEW-q-$me$)TsTL(sttO&@ z+VgiUp*NJZ;s=FMY8o9qoR*p&jI6f&Jg#{Z-ae2Z#L4DE*CH3l1J^*s_+hpJkZ|XP^-tF>IqIrX<%kdng4CmmTh9 z8&s8-vl=||s3`wg(QWPK>RO>)W)&lp0>4+_d@OUgm1Wqh_kBdZ1CZZh3fgM3s`%dM zM0R(F)z@eA_q%C~|F^OS)-47i-M)qkzfxE+HV8J2`?`7@MD=AG5~)au1QnnRDGI|V zfM_Ii>`dxm*4%?)g;}uJU7gSRWcUb}LK~agUGBA>+6R zM6rO@;omjxlzYqLJNQBM`e?~AHX%W1#qbiVj;1D$jO^k6s*JY2-Q5{gR3NNEpa1mn^VDY6O z*~_O~@Pv6(N*aBx?;f{p1#|*kKDU4);_>FC*c!a4?a`=(hHp5gj2C>5QIx&dGda^Q68RL3e zOsuw|0&iFL=U)32wj52uW&*`c=IRSEpu?gf66yid+O-RB4kDBWmn#XFYzBoMG!2Da z&=LBrJv2Djm1z9oa+ikOgBoY4U$LN@Wqm~S3OTykt8gW~s=taTvK&xLB=dsgYu`E{ z4p3og?rtWIkTx^mE@X%n+!N|CWyQpos#WoA6xlP({Gr%DVyyZsUn7jPA}ldf7$!A8 zxrHwT%TNqv)Mm46jgoj!rO2JadeLB<_NDLTP{`7`sG&25iXx`Lk;Iv_OZdHZ#*KRP z1NGQ&Og)1=nuvKb}tntLa^#1Vvzy~jaX33BqLoN9a$aHpPF3ghQFhc<8{GWtvnfp3= zs)+o@wH!-eEn@W4PJ*er5m$<7LHn;Y%td;#ND_b8Ae6Mu9RpY@w=LEU zm_7}al0E0fNf6C(sGEAkY^9(3)fZzBj|X@eB+v=N-!4@abE#E-&Q4E%YR5!`PmRhM zD!az09NP6C?{p00p93#ox4?;lRzR47Dfr(%c- zBkZtofvxhhV2n<&ZuwL&7<~gyW*2j_a#CoCpH#72vEj!EKJ@v~f8EQh6_7O`JmF8P zcD_o(snB%KN{?eT(4>I5E7mX z1@x;`ZR>}ImYHl$p@0ZWn-(1bL`v|l>b#s=f4%GV>uvXS^m@`Q$G+};Y#U`=a!9r7 z#}OD?Lz(jh<7HG@e>SYq!d7$HGkeVLO}-aIAXoRv$Tq|uPd7esX*SjY`^a_$uGvQRgR6I{dfi3#*s`$adfi4ei zkD-qE)AE5^vOw;XJ=>SflXOG<^U|9V)p#Z$q%r5Xz6%cAG_MHhGDSZl7_)f%QdsjqKjiH{5q$Hv782;5llsK?|#70S)ZGBGyA{`*{3 zC-=7u2k?m4PPD4dr`p!C0_PULK_e;6Z)N({=cF*4$&HvBqbo~lkKaGO_NY*Aso{@d~0j@_V@ zCr9C*#z%evnSI`r{DPbY^(+>ZUt1Z~V#+m}n!f&x9=Q7%vmi30U&4VXikj23F!)wv zGmwc3Z;)FnqTHq>3f^fC&dA7}^peR@n;q);()pYjd|BHv-MO1(l$#FqlVRQ65KPON z+5v^kQMIg0+pVwCGzX}`SfL^!ZM7uTBxHe#PMdF=Z!g6fiaQgDtz61}&bBNaRHuD$ zIn+DsZX#Cl^^ltXIp0T;h$BHusT@vP&Qq?2+T4qI}2NoIId zN5anM$<*t`j76p^bzZht?`H6r+*WR8 zK?kY5o0y#UeOw5nygdrvfWRgnhtr==d^@qYcm`Q-+p~Xv5B=tAx1cWSO{99=UbtxW z>2uS;qFCZH$O}7Skc?np*BFPV91Nc=XF&`;2y;-#;xeS+#WB9`m64Hg`$erlfH~Y$ zzMqIzm}(CS^U!SU`eN4UP_fy%=1+g|qUo>j-W{~GNyQ@BE4+?)%j&2XE{iUKi>-f2 z^@Hf2P%RH<_R`<+3_`xmocy)?Vj9MOi;}UgIFo|L|2sNR4ALt9q^mR!35n;jr(eJ} zwLhmaC@_d>|H zyeZ)K1KE=+r6P+*qI#VS&$Zv;ezdjWy*13zzijTrW|5wod)w`6SNT@+72%sN|ARaf zG8`yV7w=V||nF;0HHDvw817Ui@!#j*OVK^J@-RwjaI~(Reml2Qb3n zVI4IpHWYaR627P~M~hORvMN^CrfPeXYIkE$0EdgBy3qPC#*H&6M8L6z@j=WTZRzp| zK|1XTYx$D{G=l2&TOMjGF}^OI_p4o#)m=zzjm}gxTLcRA}!U;RED4m&e}v<6h$;Ay>)u5W2PvR#>awYwU3nvHKQh z8^Oe~iH`-0M)rZy6XG5xSsx5jFe?V(cB|h{x>crG5q^Gtj-PmX3=;w5nJ99(-*#^n zt}#cgXMv0Rq{o;V9c6^7E-INv(rKe~?4e*ghpG;3n8&}Los{5nKKZxoQYY1Ke=|e< zZlcI78KGOZir4-A2k0RW#S140x0={E3_JFHs=V={fwKfxpqzar9G`Afj?rmGztV87 z`T?Z~Hmabl5#N!ZQxMZ*Iu&>_;qaPk?od#Wm?q3)!Lf$l^utr33pHZ4@)naea%m7v zhVvX4yLB|iLE{^W7siHqo%OSaK_T=eR=6JU#FRkryM0i8<_A^F1*nFBz~Ou#Aq0B| z8)->NzkjE`*!Wx(xn5czwl!!yOwz1+;!kK*>hH-}jI%S!U)^Xh=cAjw(3e|swTG4$ zG)nSTYeD6cv!)+wtq8u9?#g6)gwH%CZfB35Pi6nFbQ7a5VUG&EQ4k z0Uz0Q&zagS2qwelpMsJS$bp8bv?dcgiB3`)Bl}C`f|r&9Y#A;fKYE%yVVbJl0z(XZ zQcUnrk`lfst_bW;X@LY4@=KSXE^g)uw*so=Of_clZvz9z0YWKiqI_i1mY}ja-d_dz z)|ER@2@Svdb@+eiR9+Z1i56Lzz@IR7`CLX;W2|vsbn(c}=o%9fD20dYt4$(;lq!y@ z;wgzdEl)k#K3b6W>|J}h_-G;c#joG1XAao5HV3%aL$b;)2IK(HI#jUtsW%?{J#A z@24uhE|OmQ%WhaCbvKLyyxya(>L=P_&~LBiC&f^1Y|l+?C(4ks%ky7((aov8MgCEf zTF2k!4OcD$W*pHKzs>M^du}PcX2MySLY5_KT#lV_=Ub%+;adeHA5n3=v-f>uTT+M` zv(I;MrC#KFU%Es?5l1M%LYGif+_sOxx?Y3eR{4~?J$W@@MP0%|edsX2tba)tmr+mQ9Pv7Z@r55h!vDKaPMpVT@ z%dh#fK~eiqGlaLaX(PInp{NbP#&6gaS|;(3>FOnh@G*BLo-ufC9vvQPtKBI1BB6OZ zWn*jWZ`;M&z-Gs*`UT$zKpNOTe26GJeLO**>d2%zzqNQR+^W*hHb#$!Hl7?*B_K9G z1%?XD_JPJ9Pj{u2&Jqm?7dWxQ=MX^bZm^Mrr(_k#nAjYIHyN~46DK(1m!oYqYB@Fw z%|Gv6_;{`Tr?)f9h^st`mh$`4V}zvC#0u^tXyfGHmVxL|gG5!mXR$&HS)3tf%59M6 zNWFTM`1tn?dN%m@b9dB1e0nEvr3AXEEAF=vRD41#xM*0{_8^G?ySsB?AKn~UfW@cx z_OEsi#_uh{aTchJ34#Tq&x=QZ`Mc2|c!=NH8yC1~6a4ceSVBSq;k7#CFROy^-I$03 zZQqsf+rUI!-gC1y$VeUicJA%TDD{bi5N zX=`~SP?mz}PtbJ_P)Fh-87~bTMd4IYL2~h65b8p!bH0TBL2&Cr36_0>S-r z@ElZ9iN+r)j6-05O*E^@K}T)N-R|IbB*n%ZqGg)Pky??XF!eWoSBz7O7$l^mk`|Fj zSAA3R31?}VU^fh_ST}hgDn)%e=LX^X#kvSKz8Jxt>`FaCLWpa>X!&ms7lJSG&jydK z;UVk0S&l!TnB48~NmwNuX1g2KYWva*yx!w^T)S_4iNAUq*yHaZ2-xtPk?7gYpo zambk6NsTOMvn{pg@^Gkr+<=l>&Q8DscrA#Nvndvuim7|p+P>E1S=m3n`9QPvxaVqm zJP?lGPC@r708qlN*|87K64B5S18e*m|9KDWb=BvP5PUU4-R)g!n4r+R~$wYcQ; zZ0nfJre^DVV{J-!OsPXQ!mSL;Khfx=)EVIp{x1vgmZp-6Tp>~ohnu-^N1t|}R{o>y zY;8orVU~E{3a`cICSQ*lW4jnQ^>#$C^4;%0`s*b2$Y^r^Vvyh0E)q3vtu`a1Aogv+ zORiAg8`IJ=wK=M<`PrpA-K1n>{({_w9ixP7$c@9g{-79A_eq@(tgyi#*%+4nYDn+t z+~bUE{?&l(KZl$uqC%*kCT!XE8?e|uv9Hz|HY5->6U511B!W>0WMNbRR}l$aoiE6<^zuKPQZ{{620$P9+hjcvR<})#JzET>cW8khd_*wou-!476 zV;<=!8m2RB_|80dYkDl>I79KHp=^_Py^jCi=}K4xd=cHy%=67+{((w62lQANcjrcQn=x)eZhtgA)Q{Sqh=Szh`aCtKbpT5i6C}EGTM>?Vg(|3+utg? zkdG)6XA6u&$CR))l&44%V7G!$O|<2QYYmZ=x@)W;Dkjpv!q?fYUb@PSECsX=qT>;$ zYs#m4zAUR|{mxq(m$PFUiurfA**2r@)=0TfdfhQDHGE`1_#(J6pz4usKCeOL?_Hd;N_PlJqW9a!%D*;KKpZ+UGkPf_(!_}WVAkb3}AR<>^Pxw{h2j4=06_#kg(b5u6T^(BOSuQQd=X(}l&fvf2CRZ3{NI}2d zvYGLK$C+Nq<>h4oX36AX+jHC&kjk=d|IYv4+v*qpjT`VpV#9Ls7C8{adR>W{lxf<) zOw5RyKaX{D`}6&zW#Y=+?r|Ax7lexb|Ga61&ed&aqYPE4&LNYKotqnUFm|W1Kv|Q_ zDtpkj)bH>Aqv^cEss8`}Z+EO5qZ}hEWW^E59>)mTo5)s#GDBn?Ldeb*LXy3*w@5~2 zNEF^gM)vl5`24P~tLy5ol+)|=d_Knge!JKB9k=XNm*!FR0!O#nLsU6k#-C|Z2h#)i zHsFSyou9Ux-cg^3FQj3tf_4mI%wBZ?PN__p9RgDA?Ci8|uu-_Xz&(cv3kf0YPJY*8 z&=DaDF6{$IaX;$S^ji@)-x7GuEWv4?YR4%#E02&mTFyKB@Vq^Rr`+v9GRDV<5I_|4%`dQk(+!E+47N@WR4E7q3yA=n`y% zhTha{Brd|NA9pzl8D88q_tJ7vQ$u4ait{Q#XS`mV=lTz0zN>+j&w(8A!*kjRirV@F zhw9Y6MRa%cJoGD24rco8{Q(U`84E(}jh;T@+r-2^a6@K<`vC*wE>2#IVBblH4M??< zP@-#2*vnt_YW(Xgh!W<->5L^$!g87p8h% z{Jn5r!^fI$pDBL(sQ<}}?TpHYH~UoCG28oR19h;IA z#DVCQ)m5lv#yn;yf}PO|6|W4mY0%aLM)|e1hDnS5r*Ae4c&=cz_~QxlcL1m~^dZnm z;u%-!4~J^Ihf9O$VnR|&P#cZ3nM4Wl8l;7^ezHQS({rI1v%W2&A`4gVPahny&U5WG5{K^ zknV^KApJis-lFPJ&hs72t!K)*1XiM_?+%+Onr+{>e79%zy{?h;8WwpZ%hU7|=? z_q3+bNY&bOEy$Tl8b7^Xt=BJNmhj{=|C(q3gn6okEWz#o`wPSfY;iyfD-kU}D$-p1 zg@n|YGmR%vwfEgG?+228IR6>lc-l84tga0Vx1W!ukXP5dnSSH3+PtUV{3I;D6ww~^ z)XU2#X%W6fmgH`YgO-tMm(@2HMxJ~1&Q&JGP&J9shE2lTxmJ7r-;*=WC9Vjz0ZQ2& zOct1DSr!@y9=tU(J~ZycJKLYy zIiq;tH3pjGVGqrwY zl*pd&DtlZk$>pN5)VHONFZp@Iy|AXCp&xi<)fhd;#VPizp^zGLf+kq!&|1ZH4_dF6 z_;@>MRaXJJeHQ9v$6tnT?Fk&N#AME0vdHVS=iejD)?T{)i#wLCj;hWv*lmZ8iY#*H=88ms9*&8qJ+i{x6VS zS1mk;3#;?J)}uqMpz`K~jLVi@^Y?f)&a@=_Q%P1f#Ehq>+Ko*Eck(n*Dl_KO>Vw)1 zPR-*fmWMx%x@XOMOY2>d66JI84{MU68>4b%@T2ymIsSN>PQ ze{Ebl-78&vrkT_ciX;kyy1+iM<@hW*bNw#vfmr1;TPL`xa5tVJzC=v&? z);P`iW{A7(B^o|}V3I*Nu_sE+Wh5l-oAI0fI1z}lr^!(Mxvsau8*OGaOyEf965vKA z_xbD6zV__?la>$DUA$X7X#`!^yMJ%IK0lZ&$Z9i1U?XjYw;LJYf&zp)bl7&zBIbNH zI)C8%@9ph}KuI|P{qWbXk@l$jCdl;2{aAaRiRdTRwgGNYxhJk^WlO2fsu5)ALx-GC<5lX*$&C1Dshza2ut}pcoWz0 zw6ThvHW*{1K~hqDD9ob>Zr5An@rW0A0oRS^^qdJwR zOoI7z-C)|VF%HEC4CPxrp1_=7L4(o>0Anmk#`i)S@G#SR9b8fdH2w3+3X~W~pIvs# zI{pCy00?BY7%7B(w3O6`cj@ASD^r)LloM@A9AL0~_M5iF3zm(T40aD^mr3aL<|`b% zy$``Jlj2zOpj4g`(p;Jcfiw5V-9&%PpvYrH{f^%Sbq*v1f9m)HYM?U_?`Wyp)X_|8SQop>X1;Ke$J zi>yhHC+hX<8zbR5g$jiy|D`>V-s@m)KH2KK`I#euBuJ6w6e>&;sYW|kiHBKm^<3bz zVdL&~lXf!(P3BEw842EkU2s>mb;HSrc?1~+(Wl2{e1GzBT{_|1NwNhP2yBXS3kq%k z>@DtZeF=ucI8J`hkS6azansYyhoo-X3I<+C3v4noLY0yOWu3#-dV+g}5u-ekm}p{- z>G`ok_B-e$B}seOP|r4v*@TBwHiM*Sh(!D%L^g7udoQ0q- zv;t175Sg*;jVE{LX%F3=4)H|rfu)}XTQ({(gmJ1h{Z(sHQSxM_rdW$lP$8Av07s_H}&<)Ka5HmYN8sX%Nn$J zi1vEp+vHzI{(cV_Df-<*fm;35sH-<<-^aXNUMBy1M;IkLf>@yf0ZAEtZ|53)h-{ zJhPR3|6Y?H_0s3--3m9#lXQXzew)e~Fj8=^5^yN9CEVr1Fplg!>_lyBG7_^^kru3V zzISOO+%WoT8d(yq$m?_o25VPY*KK|qnIR22C%uNQd~RVn_ceX^S@Pk5Gud9d!O&hV z6-0Ri4asZM^i{ysLr#50BB_yX4 zV*%@C23(^@vXAj1=-Sp|Y*e|cn)B^_GHFA}lF(lI??2EV{ZvdR*B+n?*i6Tt4Re>} z8P4uN&N=C*`pLYF_%VAy`uKauYUJ^~#;j1U-)73g4D)X9?&#HfZ0rascA_?Mkv;;} zh`Qx~!Hqx)->$>a>O<)Jt{Lt%wREoUpL1Lr`0}-&NK&d|>x3jIfQ76)0abh7JhB`a zxgA!H*3gKxp+DlEt3rN85y&y#aY8AT8xe#*m(IFWN&J4tD$ejkGBEwM_=9X&0l3jY zxpWa@9((<+tmKtY%iIT-rf6Au$<*$MI}my~3I&nVk9J>8O^Q5s zfE!UQfc?H1f(BtT39ZS51$B3 zbYn_M#YqMZzkmOJ|49?!C5LJQb@up(oR1HhjsS>{B(#~{Taw-vo34Rw4pu*#o14rh zZOk;Ux}YkAz9O(8a>=__AxFC?1e5&79cPY7Z!?`*H5ctDl14D!x=+j+hE&(Tmq(=( zW}(7HWBv7drxuowq$7sP7@@uDo}7%NRK&&r8p)gKUT?Ud*K=llNWA+!%#QTsbPIMWIf9w|L{Uo(ZY=oIVODAs`owq++z z0GEe!!xu?_cE@6s%H+ULijCP`8Wa!^Sgnu7;=~~HgXibxS$>?;iQ^Mq3BS$EIC07R}@bJQ^T?(kt0|+dDe`y-274 zkrlg2$(RE`a%^lmAJ?^}EIGZ5;EGjlJX$Hb`MC|zSD}WU1R*-}`9Ed>eO}6kT6f1+ zcP}w{%@s1AA8dw_`~Rc$&$g!*9)v0Sb|Z`nW@r5udWv34?jTtcghJ8I)h2pzMl`J5 zWqicl;KsZoBoxoP0MRV$#DAL&2WEcBk9tUv;YGsg!WZ`NO)i6%;_UEXBlKj)50Y8C zzXOsU;^hh;Q_X-M(4~+zPkR-{pzaeH&+r7Ur>MOEkpcWC%OPn<2uFndX3b4Z=ouJ5 zpYRvjCudPtdg@9LbL041ia3LPS+D%8HD4lgaY&)-B4)9ZW$H(DE?Yh zq$@)vsJ`dTtSVMrep>i@qBd8y*6Vf({L5r)Mvn}pKg2{!(38pkYG{2JxYPWc+bJ4>C{!ik(5mu>oCsV&J&EazNb}Gp33AA=0 zn=}wXKNE*UW*L6s26z**5{x(l31~EsM3BgXAu2Sx(5!(x`q>BP{VC_T8|gkD@>MDr z%ead3RZsooi(W!r!fi!^<0FIHsWr3;MYmE84+$d$vn!D0LjM-A4}X&H{JV#9-gouS zV3&yD*7MS`jNj%2qNg1A=r_7=&!rHr4S(<(WZs(i)HRHQc6+32;T6XE>OKOjJ9yMs z;+zC33ChhmvYhHFOdp{^Pkbw0B zK7}M&T6!P{vU8A|)EK;3+Vr~^E!BPnyy3E77Mx$1tM%YT_VDFm%^lqj(i4}G5ZW$& z;@9VF0+rc*YpZP0Sp7$y)vvsQtXNVeT|KLNp5Gs6J#;6OAj_kh<*LX10ExM?}kbsXRvZKw(T{%tee5#D=!&r4=^JAP0U+~7p!-JDiR*VPa4_U!Yt z;h9vw7k@=xAFi#q-i4L1B3fEnaDuR~BUx!ee*rogH?YdFC`LeUwHgdPa@_c1z$J$l z>3C|Q8B*a*CvIMS1@j8vk-&ERO<#tLe{-!K$alBWueN_5BL7@Lrfx1F31Yo_h1l>9 z_G61%|7w56p^526Zg<#M-|F3oc9JliR^f=BwBe!BUbuw&%8Lf{MYrYUFJ=0ljfU&8 zE#SGpV2Td_GF){QY4C<=B^7?CZ){XU^e(!l=i1yl9gWxYUuu!*f$`Su9bbjz8`A&6 zHGO|m-+kQ-bQG2+oDn&`tgxz@UivBhe2~#4MY$TRrgC)3=Bv2j8R$p`}-Oi8g>=N;49ea@i0Tt@$vHqU8m{x^7Um5)UI6W zjrd)^4hhJtPNIfA&od`tOFR-02urLH@{1lgX+He0lMXJG?{g7disJ*;ep?(P@%xpy zKMAYe@w&Pbz~x?&IX~Qv*M-55iw4*25&OaI6$5JR;jKoSTPno#%*^Iv6D^-U0fvL6 z?FnSjgJn@w7Km_Mzk_BW`3FAw=nZXSD3O5rnvs>o%)kIt0k|LmCNW+4@O8fZoVNiN z4NkSF*IWULI((P~VPl+~;8Q}Hzswhb%!{6fLF$Wq1$0r>jGXc?8 zF37?9O0tjQ6esL0VEN+jy-fFxF5vj8z++sfzkS%4!v%=u888wr5x$+kyYKOcI0(&- zy;!+}XYLu>RfwccPn9_xJhumQ1GH7CCHLYMd@?_LU^I7DAb7%uLUdK@oeVrqzT$mT%PaMDx~2VJ!ynh#$K}v6e61lopo}Jd zTi|JGbg;GM`mr$9w$Ac)F3YILnmlw&-rL>abX%X>zVzS2B~e;N;&5c(!AXwCLeHv% zr(@rLq#$N%Lz`xoGC48s|^-Z+}D*50*LXU>_9fz4akddCHTBcSVH{6>3QSQ!LqHGaQGRK$L~? zGcLEllIes;%&!0y;2OgQv$T{#IT=Js%fB~i+lB=BR|9|kaC(k!E^CRSNcgulW;TB{ zwWKgIBr*g=%Ax}D3{f)HPDOS$Ic|OZt_nV*iIP=q)i$m=c_~E;E@ecl?QYJK7&eAb zO2XzjlI??G!c=Ft0rkAR9%i3(MW?hm@+s>r|orLXxOlW({$EyUgSf97K_`ooy(EcZt> z+ON^xG?v(REsxeZl2@^>MS<~PrgoM0<%b#k*u-9^jJ21ayAW3ySr@$dS(CNC5(-iK zJTV99hmGpJ>wN6t?}mHrDoeObhI#nKP_ zZfrIcwtkUp?)isRADYmLoTuGZVxgnndH?Q{Hz2>hnl1AE?{s|sbo%);C%?~EQyA}t zez=|1U-@u=r5m019`tjwEzFm1JZeRE!}KOz1$E`whBJETmO8aYDzrXG4z=iOgI6$s z84pgP@_gRr4J9DsHccEcWqY!vs-Aw{^6xgf79uQ?R6YzH^-|5b(+k<2LUOlawH^+I z^lgY=(ok2AijKxyW4U*Wi+Q}%oWh3eeQ^hxV6MoB4|DD5%4lJBHf!WR=oh6SD(q}j zGt=wf5(Pvwu7p}of5@lAR1{VrF`Nm4oYeK7K0O*^h!kXxv7Sa`A08euLl^`i+)?B{ z7Y%|HI%%9_2ao?omzP0EkY7+h*{zJ2-KXrHu6+X17Z)`~vKH3&H)E9{%9oTDM3j=X z7t9FQ@Fj;4$RnIUnz!B{L)>%oU0J|QgIl&=LVf@Hn&Q)RxsysI4#sQH5(EM!jy}~U z<^T@Ay$fP6kZCW5QdZ@NMtZDP?zeygD`V|;mR1x)K5_TAvTS*Gp|6y_gSvWGN~&O> z_&(+BDZtI)FufY{bf6y#2wcX`fv-_vQYdS=rysc`+$|4$1L z=GL9OT2J{9!P?@6=_F=DlR&x>fdZ}e2Q8JPMc61TZF_fyFnj&OCO(U>*zCWsd;?Yq z*$t((rRP;kGPc^9U&c#2LH91_Goi}@NU6p%>{Fp^!Ffc=%J})8?`*|KHR*}Va=-ZO z6kXYcN1mG1etVRhPpr%E*=4AU>pJDDQ!t>D<=U6?VqW1en~l@DMEcG~8Q#6bYt5pr zkbGB889|3yo(1HvijS3@k2C^rOfMsU`+LW0vrkWd0d@+MQt|Qef82c_NRNxEz61;{ z7ybG6_IB-TeT%ODu|<!M9<^b7gjae`7XFjq^hFUX4iD(ps&W zr5>Pci(|WowNg!0zaJVZtKVgekuvOmn7_*2^ADTyqlzY1fE;E&SAO|N69+x5#rDsdCu#rINtn$Qy$DQG}L z{$8crO2`o(|CXc_t3scB%UEl}&rdG%od-1XkIwI|e_ezfRLja?TYW5fsyzWKsn~VP z9s=2asOvu75>rk!qqkQSdC4|Q`J(+^pZ?SU+j?1kR-9aK$M|mWCi5{MheR_F&<55=o0v zn$J&j#>?33jlaR{ePGGOjPBN^Q9@h;90?k+{=HTp3y!rzt_VQHOMX-4jBk}UJ?w5r zYarSruHQVkIezK#BeEKZ( z!|n5j`@s&7Z_`%6p=mLh6nU47C^*Xc5sSdcErCSgdTcnY{hu`QYU9 z^MYBe9n*>Z({Hh{7gbm#Bsly|5kh2(Mv^&mv64&Nk*Jgkx4NlMe}g7I%p_@4Y+z_$z+!5v!}azK zsac0r`R1Vc`S{5RX0ATOwQJ4&y(Mr9m>WUKHZd{rF2O`dwNTHV=8|_tyw2Ie4ViG* z5#?01)7uwHPDowrdh11emL%i1)ti{NIC~H^`{{QCZ<0Zh(6{Ro9zX(CNS&%!@~RJ$9pgJ%0ZF85WM-$l)D2B_Zi4>S?#UUJ9=!PO`LJ2UC!UEMA%+uCV2QB z^Zt>4O3s(x|&84yjtd=MQK1(UtWd_vr}$pU;C#*O=Z=ERZ|Dz?e_wk9A=f6>?W z7`#a^_G2z7p7`a4;ib)d6333h86>b)MOj;-s4!QrUKQ`>+{w0PO^kW-x8aix4=BaU zbP=pt4yxSo!eb_es*7V|`o*`eyL-40v)U|O^WvxTA>r>iv5>Negxr(2_XwrqRpNj) zkf;5(t|X;0Tle|+cikc~o^bB$1TqS}^Isb>_)HUT%seOi@64uOqfC+DN|@EAk(2PI zHrLL;KbE|~&y!PSpvudU_Z@Y@bMqZlhI0(N3Jn(XF4Pi8X;b#M(~6Z6-jz?>plLcd zA$6_=2t_kYpdS}T90sk{-&pz&gdDcX%72zJy*(}0zqVQ&0**F5-dacXOH~3Dk*U^$ zpp(I#p0I>^gCcSR-s4i=ZC8p-0(k&YmSk#b)idI*bqp?j~i8S|VhO$<`= zpESFk!_VmmMd8?&DV4HB;kLAX*2)isgMmMgyNP}u@?073&QHvZ*ma|p$O5xfKcj-5 zu!}Ys@+3|yj5`NOWicm-9E;3H`7aANnC_I$9V|~AMOfaq*kX+{T0T?g8Rc=89}y;2 zER0i$GfL9ty5jWtA{U@fpygy)lj-bF{Oha~nPOopf-58g-*P_}hB5fiR?RNrVa`p&S4?N1>cRn?RPDj%}b=~q`+ zszQ*ef4=7A&zj2{sd5vv&WKv;aL3N{vTF#@m66XIcpUB6OKg~WPA-l)?0zq&Zpv(U zHrth-p-V-ajj&75A#>tXv-yCA)z@huu5$3dNy?J-niOxa z!u5Ww#_8S@{~qD~>}<;9LLBM{oiCK$>c#e9Et^b`eEf5_4Sp9A(VqB>fL7%TxK)aQ`m*(wGkE=WDr zD;gseXxt24E%o1gDf8kWTmJFm$HW*hUhsvN)zs90R!p_dls~b)iK$zZdZUx3>A%$8 z(HTokxku}>3-BJQEl_C`^tT&6Noamz+LACuoALRyhd)v)n(*1+u^qwSz zQ7*`tPIpGkPge|a{bKtTE3_^Nj#Yewe*@?m0o`Wq+RIVnL>*)miA6pfNDu#wK-a4B zT5WNp zB$f5T=fSRFg&kU6es61RNyCOEIc$f`=Ml(b-s47dJ8JtHeL>?;#(H&C8*lc2i;iC5tBeW^x!PqeZvuF0Ml| zNAEH)BE09rFXR=Zm92$CF~}Dcpv_d3V)>o}Yh-42dbaN$Ca4%@5lNZ%?1#(Jl_x(p zydT6NKEVT79LUu*K0dC&DC7LJ15Gx#&k`IsLNc|Mp>bEajn4ld_NDsB#X{s)xcpRt zq8~OU4ip=p3c_T^l=q1)g|4@!}Ta3L8RL*%Qf^5~5>*(KBR2yOU$IaD7uz2*xxHZg%<+D^Gg==FMMo?$qa zm#!5Ax}@eWx~91O{NoN79y;r>>}-G!jKVHrEB>XWb0o6DQDUbN%up>t!PFhrLAat{ zc>vZ|jZ7A7!X?Akcu_lDY{JeiA~-Tz;Ner<`e0+I6VIRByZk}YK$p0kssYLV$k`ryX&FKoyQ(QfI;y2LZ;;F z7bnQyB)9BKS6g;Y`rzGy{yWLm44!qZN|ynE+ioA8tmqUE-0$*v0hzVeua60I%GjOI$J~%cN@R@EL5BFKT!f`#q| zthZM_3!xLu_daxAR4_vH7F{gr0e^g62n(LXH6r5x@HIc#`*TacyfwA0p-bW6FFScV zO&;&7Vr20@|5men>?4;UHGhQ1 zDybR_n5$F6Yh`OcMl@xdB=SxTA1I<;&kL*SAU-C@zreHgHrHIQ{#Bhuj3Bwrj<7s$ z?mP2kEt*KE^y%l>_dg5&A)uFj9yxXP*U8)L+{V#3De1$=pY(96fx3i3rC}G>GTmE~ zG#zCiI^=)DOG9EZA89RsEpxiB)O&dUHg&*PN4{rkQ-m+(i#6ii9u$o=pRPS&_E~1d zY89HU@A|-z_2z-+V6mlkS+{S=QxPSPs_{8;ivFyAm`gR zD5|z~--(u3|1K`(u{@LwF(rBkOD)bkN$>~5M#J)qjGxsKg(no9(rtJ1Nd0M~;WdS) zcjlCPmA8z~X^?DBzc&l+`pq9LG9gR1=pddiLbQ$EGKwqPK2EmcF{*oW^C@tU$Drnm zNnG`80HM^<1K(eSSS=aE6RKQ%ve1k^MePMq2tA7&Pjw6a&o#pt&Jj6;<_HZdu-Y$v z*3Y;YWv*T%>d2Cn;3^6C+OFx~Ho9B+I)ScM2M#kOqFj|*RXL75a0!3J!q4yYIYb=8 zMcH|vP%wf^g@@_s6@x7D|FPwYg{E8Yb-Sd0ZKuTi1)c1dFC3xHls11;laqKe>_Uj*)p3VXv4ib8mb-R<>>ZVt3-sHE!CL}074k~L?yBRw=Y$2&U z%oT=iU-KkowLv?l7@$HiB*6@rU8zpFuXPh3ha_0mkwdoXiKxT@?HZ(^V7vC;h5=*X zYOwD&;E%{`#lFU7&pL|yDh#~Fmd*91j};ruBsB%8$hTYFN#4ncXIy3Jq1Ej&gUoPfz1$cG1)3YqXtoafhz z181P^hJGUt8R;gvi|mG-S*sbY`7GH!rq}r6HG&6E$%2Gve)`s#Ht&w#hiLB12etS4 z664r$XHvV5j;LSDoVE7}oD6K73_z)YODUlFrFxn7Hj0$nt zzcC2F!o8bVg`9>J0qwF6RG5#&#p)WGx9Ouq)gh1yQUHp^@SM;_>DZV+*Te6z*D0h9 z-u8OWJ@3K@l63sa&h8Uv_^4C(D9>~vM1q2;k)_uT6}oXu;56Q#RO574dla6f{;L?S zwsIx<>%v-v30on(<^P;((}Zqfwd%AOuU&%^B17Zh3+MIttP>lWyZN^Ec}hxmfwbPf zITbu1dxLlNkB5}63;aEG|3<|k7rpz~;)EJm+jOjZjE zx!+Q2s;SwqiOXL7;z%qcqlpaeXGt|4!@WQE!;Q>7kA^d0xUv=zBxNmJbV)dlzSqIS z;?W~z>#eOm0f8)IIYf%sb@h>56YHiuG;lE9nE$MEdswKq<#!H62MnFCc~k^)q2-!7 zxD1!b%0-ZAL>L6317i6go2h?kJ0OJUAYjQ`E22OrK!id~HJ5A4&)>`4ef2BfFFta4 z3?jdid!c$99GgbJ{x_CA_^c_ltJg4T{NRB|apO`wR!57g?q7b|S>H>UboTJ!)LTh| zOK_L?l<25h(&Q171i6KcJeA4DcjdRFxISGocu6vs+$nB5G3QrJs{pt~iAevfCX1b) zI89cb8lRra%`|u)w*AHu8OO0FrBK_a<`-g2?EBU6sqKt7*^H>gMbYjv9(PRry2ko= zUkOO>|Nb|Bce;2NT2#x`@f3I!psSkNKQ*;|`|a}QBEI`S?Nd2bamm#h8{6$Vy5PB>PI5>+Ob10CF@!R$laTjP4g2Asz*i zE;JvLmymrbCWYj)qCxtT|K8e>3Z(6{587$LB?6^s^7atnPt)W!slo5_CcMs|Mz-5# zUG}9Ty1_m&@lBR!z^-M;IwUDx=TYT*rm9~ER)YQK%O?AmvKdxQuVaT7{=QNzj8|wC z$VyLd+}Y}*v*zXH&CRtAmcMRdT`ZUz+L^5L0UZ=5DajY~-CI%Mr|C1>Ty##am||Cp z3vK!ni=x3wZLg-n4ga#(jl-;ew6_I`20gI}PH8mO1NH;l^r7F@Jww#c-&E-B2}NAF zPqsv(gIR*?RbeW}_B7MxX?XvmC21Dtj+bP3be||lIDjb%_HToip;hDkN*%pR7cwFU zHM)w<1du$Xu@f9gNWM_ z9u>arBPk;fTh|hT0AWn_oHvtWF`1W`q$F8!wR3GlMa8fi96=1BE_VOOazE;n1lWv1 zqHI%5l4^Nf6S)lHL>`$4rDpSnKRDtJp=BbZ3y5J;A8{^ics{WXCazpa(SLr^0-7Di+q|YUs=(VH>s%t}4FA z4h|$$YJnfQ@*J!0BUmRqHXwDOwq^b*x(LT@3b^V+Hf-2~%-T<%4nXV*Aw{=g5+Bog zlb>H2b`f*-fyggn8malMg28UcBz2iK4h51}H*l!zwbt%FJY(qS?N53abKNKbhW?@> za$R3s(pSNj3DV$w|0M~QpF@V<^G9o(3K!3JXV0c-TMjfKZ)_SwNS_`KGJT1Jd-L0X zge9um1%vprQy+rCwH6lygsBL84u}rZARV}(G}A?Ki8erMZR=4Qs_ZgtX}n0L@1T_PKX$)sf(3l@=QvZ|DeTY9-P zc{iMOZ**cjh=oNqDOc_B+JY;Dt{4;r3MfPE4p$0FybBY@4(FoJT;QdZD34$U7aB_p z;BjewUu1gsa=iKYaqLKXI8DKwg}mD7_q<)~}j-+JeAqjw3e9YZQX z#7YG6lSE?;qa^m&gv;7q9pra>Pgl+TN78=o@V0F6YH^E2C}lB-Uv<>`@A*tgfD_qW#LTH0$^MQ_)D-EIJWUYp?S&UchU)4Y)x^6cN0@ zM`XCND8$=$k2inpu7jes-bWgro3xhh;JzHO!6FAY2;?kMeQj(A29)w>FzjUVd0Nt0 zFU7o3p#iUmgK!MOoTdRB^ihki52OqE_T4T&Jj~F`;2wTwJqeY+M|DkAm9U`5+3-Dq zYkq&0w+ChXw-$Q2BKz_x=0yvKl96Q(PX=2~r=L8Zo*rM>1$9bY<{M+dhk1DEj*sHG z9(k@-*nKV%-$9vZmwqAqHTa`@c;>`?&K^(mxw|`!C+O??ACbzOkM8ffK91Zy44(B@ z+&h2uLI#TxrEr=K6&|hN8~Exgttr-ldi)XRx-54d0f!1(doqhDcOs}|NMJZesPYSw>8HZ!Vakq@*M&N>9AM#vb%;baQxbr3fe^l*bEtn7DpSJ38Xoq9p~w zkA{fDX0&?b_R_!Av2N(8QmV^ll1N{F`%17|i|1jD=ce5|HS*~=9h>Fle)n0jrF1cT z-aN7|cUI(yU!vYh-umim;MRWEfbFNiSMg6YvBI&U@*z7LRN}lX1bG4& zhhUQ|=ed{K=JUaBd0L)daC1;oB*v6+P5wiU!8{ZDL4Oq!F%Xsw=aRdlP2YF4rI(Xa zv0lmFdW+IkqQ|@4%iq0_yN6NXG;%bs3p<@mY9(Tn$>V#& zOOj+kqS11R+xV~*0jcc1|3R>4?aX?O|4uHm8Ejf}@7FABdn;>Wk)drOwbmm0kLG%U z!U-KWUxYNeFxuul`R_&5x4X~rH&42E@A3K#supAxG`<;JGJIo*?xwd_N{PYn+M@Zf zIF-$0w=eyYLFw>)rqm_2c0dQocI=vwZDI2fxIEeF<)ZSllIhutFoaA=Z&$BR zs)+1J$G!M~R%ikkqKK}WK9&-b7DS`VKtKxfS6^5ugMaJALhM~8|C4_P4Iz}b$m6Lh z8XHeq@hN_IFJ-)Kq5b@Cbd<(O1*l?jc&Bh#;Fl|KS65VQbqT!q2Op$Qe47#&5}oPAmYU9F6>7EF zqvF||1nHB_jttM~FA}JE_VClzy99zGj|D_CrryK-#HvtiAf&FFhxhZ! z$Ctw3j0Vg%SRxb3(TIqUoYlR(wV8d0m=z+vPI=>kk*1=Qq7{c^i?eZZx`_xfmG;*# zRRJW= zyaw9s`0HlWlFd1cf0`apXh#HCXad6KKJFiYAP>_!)BaL>{~~>aVVj`%_W1i5=Z)#w zQk_B&h{He?uEkGWy*JMHK7ssylzn!tkH)-U|wkK=V^9LuUow1Uch0-iYELsa0a~)$8;j zndbDU&6A()?d?!ND|}?3tk@Ra5&qTVa?sh?`Sq(KjBIIC!Bl$h-ovCfw9zWWxBgEH z;8tgv+MPMkVWb-o&tBomQ4kZ1{ppfkUVd}vc)#P*q;rO3_1y7U9<6yC@51Wf1T3wp z^a4U^oSqM6N@Xs2OgDKp6bpxZTLGZS$#a#AvSsxs;6gc z>65LahQY0pQu|c8eGj(^QWk_?rZVw@XTmT@=XDB4pABX2?9RXTQ7_pLqhXBf6%%PX z?~a{VZOWUtmyk^uPhy#xA3s=NPeS6fU79Woa7v(NXWQ^_v_~L=5(k#jgEDk6p(Qus zs!YEc^5k*tZ6Bsv8Uyxn|B^IV$f7rV=hKRciqhkSuQ>m984%;3p$;V;=Te~xm0h8D z9F-Uphf>NX$!<2H@5WO#$0oEts#HYUq^CS{CW;EpO=Ke}(EaaUe7JSnuOz8Q2W`UY zi7TXI0Yf;gbaUJ`M#~>>7KH>+-H|x|3N?Q>$W__RM)&#Mdpf;^!t| z9_CTxai>|HA`wZC!KVZ&*2I}h-4IRHX)!dQgrID%VB}Qic>7*-i9m=ukH)WGrua67 zU~U|X>`BJyHHXLr3JPd2$)fZO4QTb>5xorE(y)X}#^|HtOnvo;TgZ@=wNXKJjjPD_ z0(=a^_2G#`d4yMspO=gQVn5^^r2%S$TorvJCgowi@m!=xC9C+w@tpUmTeSE&zWLJV z*Yn?gIQMxY!YxrotC7iX%i?b3B{;@1e>bKI>w=fpWB)Hrq9=^18Bgt;KKNbANVW);4cS_ zz2|ob7if4qaTyC1=3}sw9Tl~}uj7W6+N-PVB|s@15Tdeix3Q=AmYV zY$=|+W{>k)N{sp87enx&OU?=;ssdC5Ji6Z;IEjBHd0!S`?RdOHX@jtJ^;sf&DWvZt z8_R+{laK42RU`Bbg;RJwi_Ma^C_~Q_OyTN z3f0lr*qEC4R{CvnT(U3{sIGGIofff3sMl4frz<>Ck!rGW5Y?wqa6Qi^%|-|YPWE5R z#;10hL?h4->FwWL$*I!f`;YO)6*l$PjkUWoI$2%r_6) z_&PQk6wSB|N`avnfGm21&AR1AUzfJE;_=CekDT^@xDB4}&ko+yedkvbm(fQk=QXc> z=bETj*~l6dMu)XW$?&;{$CY<+xuR@XtH|2OD2T;;Y-Pn4k)u;cz|$WcFGMyEULUX= zmlX5kXGQ5h7KWuUq~XlG4!$Qzrl6tebif!ZY8#<8|hLqX9|tPp>N5EJq&q2 z81W!6t%iUQ{c@x(%Dos^R3btKJf6#qi>cw^+^w#kU3~j*Pc$C(KRE;UzYnyVLGNB5 z3G!{FVEqg2g458-bu2{Sfe-?wI*ua5tj?wTc>;dKqckXMcqw7!lpZ%+;bereL|wjo zxjmfhrFG>bHY<@qtbSf}t~{Y{u{8nD+O%}y&PVb)Y}6PO>%gOQc2(89UE|nOF1WIQ zE!^@9{Gu<`9-BWu`cr_!cuF(-FvY2|utS>n26$Re+xGo;Ks>ecp{OK+k_1l%ftL~i zc|B{MiE2(AkvTE08eDdfc`l|!W2O^|X+(G$tTLi{m}F>jngNf z()$1F8QL5k9-ckvpT$}l@gzBVZHwG)2B$a%KDjg!smNW2dbCvn#~b|Q~Zve z1G?KNS2VhO7{;%##jinOdT!nPxRa761faVsg|;T;%Hc|*b1Vg{*q(PauR^Ti*kN%2 zURX$de*2)*T24`(t&00XPwdnRkMGqUbul4}MTSt^1-50nV3$`L z$1_o2u3(S4Z9u}yuH%e?l*Ee(;?5}6*0^~Cs4(wiBaAwUZ*blrk1W(#J_xrq$zCmK z0TanydB^LLViEN;Rqhcz$~cRlD!ei8yxS`^_rESASjF;ujft=QEt-=+aXAg0TGOX(e`}0o-(-lo{2ndTt%<*$4A7;P`D+{BL7ScMr>92?Nr2$)CVO-{=#v!L z$9D-T^u6pM&H7ot!jIP~|8nDdQB?RUm~-Sdv9=Ej7;@!dzmW^+SFm0q@Vf*-ma64C z%3%tK>bB9DlN-Y*%cz0l^U@<~>xdYoFy!by%Rw!Ern#o)>h1jdF=0kmcj(AFl;ajA zA7&ncfPZh4TJyVsbhI^xjsikN)Dl(LypA(GY?JRqZ?rl@F)Z4q;HJ^|KomWvrBc7zn2vL^Q-0?HTRo51upAo#CD}9B~!D9V|1(|6T6kI3lsHjC1M`mOi&$w)I?9peV%l+K>vvd!&Pyj6I0W9Aml&86tna*T zK6XcjaC2x;J5&eW=VVu>u~y{`LXM|$g^cLg-$dr5r^spqqB_OC@FnDM;SLU0Dg>Z| zw(hHj3x>pH3ffJJsrAC-Jo;LLtP(rf@608Kuh4qiU#*FB+C6=0>rs5m=%zl={bG^! zWcqZ<&RDz1aJ`z;HLGSUa@mF)$#k1%0wOjtZ?EIJSS zNFjkLp%NCAQ&-2?BdlX8Xr7_rb;k0(5mK+(Vx7LnZsy}@~pamt~ zOoNIAB&wbpKWCh4VKrxoLIZdQT(!SQ%@6R(I(}{?)#BW80bc+jo1L4$bfHJ3)qrnbI7W-ll-e0P?=fpEjEH2qPv$qiaaRDIUG z(bVNyIBt3)nI&geNupBIr5&Ls(|RkwrZ29Mq%k*PnB=-|(osVl_Qn5ZXtrv8c9qm&?_4@jsu{Z&{LG-p8^BA(h)z zY0aui%YW)n(S>s7Rq#n{$``xPD9VSh$$7naah5iF!r30iphQI!Cd9r-{-mi;iywEP z8VDddm*qvHb5`aoa=$Hmic38Ei(*89aiVqHKOJE1Ei-GLeO<#}zEn6(YM$;CKs4j; zwP%fx6A3L!_4FE71njt)CQ(dGNw7?5+0-;Y8hFOsnh=omI>I`5@`tdDDO1Fm$Ml(ep(%Dn@S%w%3InlMscC7)GH0tB zFSV&Sh^?_Y;%H&;FJ1lv)1%w!_a85M^XExMkHBL6@G#_f{g^(-^qtPDcatVC8TncN zY=baE4v{~o>n#rG)q=>GAd5q{{Q!HcW~4paR@ocC~`=ml#!ji33bfO?3L}1 zoxMj{g%Gmm8yOi#6d@y$GD21ezlYE7_U-R(PCBpG^Z6Lpb-x;Y?Oix%NnA2s21MRbyD%yIzg&Z6P*Q0~Ql!f?yP!I07SBzh$;Z!pVeW%^K{-x%=HV2v7 z4LVJPb}~CsNGAMIj79<%Oh;_ZMuel=nwD~QY8oA;*7W*?1ofv4)LY0*g=8B^YL_HmVa&dD;YQnvz$kXzHk*L?GY1>gd10ODM~_cFz;1P z79Qh`@2GkM&AR{m@1~luZ29XCd5O{)Lo*AEp-?(dp{69GU9Dx=8Y7lu!|oteXMC@<5W zmgO%&Q~)#m=HQi@n$L^LDpR6cE^l3i%Ci|CMJHnO5Ix0;d9Od)eqLFDxno8a#1DJi z%C79Iyz_LA3-gxZOKtkEEb~Pd1`MxKo^s)*Wj7`sJO_sB=IfRBMTUl@71so>`R?Z) z=hoERc)VO_b4yg1qGUA;_uc-Y`ReXJ*cit|^G4=#g;C01OTF%JJ2KCB=0CJxSviRG zSbh6%Kx`s^va(GELlik-1@k73JMA$hxt)qL@@=pz8z-L9tCqLyT?Z8=n6f+kQE)u> zHP8*LN)B8_91fq1Y1Ike_I1Es-O<7e9-4qA5ON9A8$Wn3-1xg8@h zOL$TH!u*VqQ-h9+38R!!yKWJp;?0}rn3zJFNTx9v$IP^Y^^-lGT%YekvWR>!EfPL) ztXLdZ#JHWdBP#m*>?>~SJlSq~t|+FLS_M>^wlCzTZX&tNwp%XU@meWcZ{2iwQhF9n z_{4jJyF2zxpTi-fGPs)rgJ-I8k#8{8lWl5!XyNUcHZA{jWh?@V6f)POXQm*P4MdsM zi%jkqFOn;p^I2Y@$LQF6UGc%ki6m3h#mSP?7t4I94HYWUJCixcU@*j8Nt6{n_Bg*+ zhu!Tx8Z?H5x+Q4Ntcy6b7BdYJi7xshA-MFV$j0Lq>&s;GiSl*bD9geml~DOB$banH z;+A;LNR)hrCP#rH{zVpFS)zgK(7Q3|Insk$v78vKp1z>QF7RH0z{bdE#0Yvc*!hb^ zqRi>F8yzRL@5%4*gloXn%&*$NeQxjwpcj;Pli+WFIE?C>N zm(ouP7v89Q@qhh`k#SnM?XkLP-*0k^P}=2bG4Ur~F*5H~32f^y3O&fZ$bC5yg?XEY zNTiA8rOVI&Y-3ezEq6E@8{3=l6=uwE!sES0O?0ffT9-3yiEiByUvzJbwFJ2&wul3t zbTt`r7RB~=^r|&@AD2DNp?+~>TA{!z|GJ_vRH(z+=ER^)emNX{IrD1w8^?jznre>k z7t3`t=`A_F&ml?fY(_V=GR5U3d9@_CU!N+xMEkCrEccwr@xJrW#NHE8^C_giUVG`d z-v`}Y!7}HBBHX;u*WN|yqfv@P-dI{oW}Ir=h$5dVIu(H_YsRuO^F<@%>G*;Vn8hFG zrv~jzRK-0~p;SsFbB?9uKywxwt?eeNOMG;^`6eqys9Z-GD8u^%2%1UJXXxqSCgybp z>L83|dG`DluZEg!0tv8rxr7v2;L~L;{pGDK>T?izmSIjfFrDCA1PT)4 zw8K+2o8;Y-a}Qn>&H8RGiaXwlyA zB@*;aM|;PD>vmpiT&hRI=Fxlw!D39a!YLdViXynhl<7i60uSfK7?gJJH7vZ!Sbo~Z6&45<9t3>21-tLd-^|v@}w}vz8)?k)4RM}Vq;k7 z!ZZ+ML2u&qQ4S`#wK$g{^&E+Y)3t@rCJZrs_xm5J&7(17(OqyiM^AN%176gt^mDMD z8;2H#OtJKKgE2ZR2Nry|$rKzK?-EsAzoZ%+17U?npP{$T6ijY5WyDx~Uv+7a5D`Y& z)Ma~8JQ}h$#pFxo~IQTOCFA@Z?||)5nchynM>@FFk8a zGpUKdq^ZG&80r;j?SJXHyE}aE+~StEBqBk~Dyvi^J7Z$MC*WU?RNPPZN#JVVD^r+K zE1!0>MqEpKWT4^UN_ekC^6Bi06FD0?In4$Qc!>Sch|4cYiwe@x(ez;C@+vRa+z16n)>Tkj0-t<%IL;;mfU)AY8S%t2Uqn=X_S|zKF?<6ep9hW& zi}z2q3tJCgFZty3@WN%vTdWjtz)DVBlq3uwGLQbM7u{z&oq)%|)ifODvcA3T)?h4; zxU)5I9RPg>O`~B3U?7g>{b(~;J}%ArE!4`@)^}cCK>^S_x3jTG(6oWZ2U7Itso=hS zv-P`qYv`h5{VD#~4`RP_ytXSrhJFrMClthw_gTbUEMS<;ZpIS!GR3Ari(Y1!hULYW zQJ+q4!Dst~7=zbIbjmc(V;{*cuy>L5;7ANw#bRA+v-=m{>EPpr&qeNcoPz6mE(I9d zBomfG*u&?4ws^L}%AloC8N@cyYe~x9|Nd_3C|A97ED1F>G3rM1Xp$&5Q>f_>%5%C7i8$noqIOXA@0wI-Wc>~ zU&ODzO-c;j!Dw)&8`LMcz~7S3|F5C4s;Uaqo&Ae1+{x2!kup^@yKE1nYv1-*O`8z9 zEh18IW7jWNi{G+@{zDgGRK&!{=-^P@uVl%C-*LO~+Dnnt{uY;cgN&kRCIm*F=y3^% zIT1o1ko^>cFU2C}u@=#!ER~qlRxVyYWJ1xKtBBA!o821f>XK!VkFMm3oUYgJ zV`SpSYxGxr^;inK_~Z@HvE(@)_6l`N?V7o{iA8d3oLk6pIn5WP9Wy0ZMt`ZLvDAfd zq1vg_z@^tdi~of@6>RNVX>jdPXSw6!2FrsyF}3(9)sBK8G4({9M-Esv%6Ik69|Yu4 zYK0mG`$}A)PAp45BNqGms1}WNdi~? zrG^uWwYz(=tE20A43}&Imov&|xQj1QeQgdB$&B#7SetyBI%QUvS!x%p z(T#qEOhU|IiTmWm#k=wQp<3uLj^t>U zLLHV+BaFQF+%uFb<&UI`iiu)s!C3y(D69s_Uy*hN42y+~-Y`qw&sx;*)AA_e+{`cs z@%PG>PLB&F9Pey^fvUBwN~?5yWzF%`)GwQeV075)UJF@s`l1hW23JhjSlICzLsqrx zSR|Xy3;<{^J{bhKO3bTf`3=bS8K8BktipL`HubhFA0%M_*s>VMmPa;}Ho|iG!{4OX2Cn)I>_} zdEuOZAwlu@%Eo6b0#4hMZ{NPb4F-H1$U*4s1(fsYWZV}}Zy!p_8zE~N_Thi_^R#T8 zoQ7-HP908=tQr78@177K?FdGkT@#SteLH|N^f*lahw1*YXWJg^^^>zZhKGk|TAu#b zl%_>hbb)YpZxwX^Ww&ScW@>g0{unv*fBEupp+^hTP98=pgMOc+SRnmF-Zr~HiKWLG zE&W%N|9n!J6uY@Osj!Cm1rF~!-G>(o*DsE@@obnU*5?ix87Y5Iu1vzyjw#x8QC<*+ zr9TYxl3f}`9qS&H!E&FHGK3x3*}fAN7S+JRR^a#a{zXJS4lVEhlhg0NfmP78-GO!JFrO@9@eDVMo_Jdo^L0aB0eD6vJ&j>Ys zSdP&I>J{P^tvM~36524_OAYV^NFHxKUtoXnHAyKLMRMpu*m{(P)TQEj0J2#v9pzu& z*SfGcGRI|L2DfAAXI#%I9T%ttU;44wDNCuq#>2WA+`u-R<{Ls=+Cj+Vr7gW&ezB&);9>7z-NZkRJOPhCa+NEIBj$d0_Rf4z+gB& z{w+0$>isg2HN_K=Wq-oCuh2tkaK?-%D$sw-O7DM6pPpQva3yA;eG6@F^g%DbvbK@g zD~FCF+C7)#ztHhSd9tgV_P24`dPc`@>Ew*fHl4w(b?6e~uDc7AgGKEz^xfqlT@YQyFT0TA| z>SUqZt~T3TJ@?@cB(Mm^#t`pk{4_-y+X%gw_R!VYr^C&w;Lkvn%x zD#rEo^%b7Mv9;sFS~S1!n{z%g`E2lukB@oz6o6psyf+On2ETK|XykqT&SU`Q66gX8Ra76pf&VmL8GV7Rmv_62eceQCdL9KdmzeTU2 zsj+s%rp9D;%cuMkm9`d>TT)z@jkhD?d5#--1MGN+6!BPMnA59oeKM7@{0|x8Pkw=#nR^$_o0Es#l==UJfl}>NAMiM6M%wUS3u{>ylh9_ zyNV<)u$)R7(Ye9|B};*9xQ;D`mFIaxz_t22A_AoM9^tvgsco$~R+wt8@^ZPg4H)%l+lMG4zC* zW3_Vah!J1Jr?6kC@+_i!H{IzQ$}iP4twz1d{68%~w0oKji{x%3E?wrOh^mmKGfRl@ z!(yH8I|Nw#FOrb`#h}=kBslvm_A5+uT`iM zJIWQAXI3~Mz8CTc*1DEuR)%`xYqT=Ti!OCjF~N_33%9oG|FU`0cd6mc*r3xdl(evC zF3q%kHeu-|UrI~&&%X~f4}yohck>Kaj~C5(ZY*Wdk?{H`7bjeaU2sKkF8vhFDScN# z`#v*F{V)GFj?uaBg*5gqaY^^(PatsuVZ)10&5ze-PTAEkCJ4R%o~rwc`}8w5pWdzJ z{%cLEkPh5B7fcOFhYnNaD-2Xazo&1r_T2UV_YAN|7+I zcB*fC_*?W$&f7M9^xc1-%KmUM%XPFKaHo`hh(yw()RT(VJRb1cpyg-yCQ~#k#wB-()#WtFKB-n4C?=3G zb;Aln0%XEHn{YT=pB!HYY`HNDUUB8yhdG$=ovu7I;&e)N-)_X_A-oFOL;jG?3YS5z z2}+_FTbV1DdW4$O1p}a;Z(F}>i^jWNzKr48Zr&^|KIixI-kFL99~)=#XjG_TLDGh( zl&234_Y&-*JcimO*ej|1b6NCcK@L+%T4hO=hJixn(SXLUUyBxsFGzwBmJlL{op=5a zQ{W8WL9HLmO7u;=$u(^=tm3!^L{0^4GB4k@ww`qdwpV+VJmRtvUMMFcLm1gvMN>B# zV-nzR$!2al%amd`$jF|lVe5C{p zW!S{rBizfvU|!pN5KB?|s^9tCJV>Z!jrv+WQFsj`1*GTZ=0X78!-tZf--93C-h8%8 z?Lip>?6>?k=KcdiSo+%3Da#*9U}u(lo^$(45SW+Q^l$Ji4RmTF54ilLlSHpmtG zrs-Yd@qxv8F?pl>m=Q*$2H-DqSR;tN5{TTYryXx*s>&iRr)fn}re|k^uz41?xFhzW zaDO#T|6TxN$iQ`iTa!uuyF4+H!$ok@jEYDrm5;ALr~s&cLPJBxFYdbx!4ZEu`|PCH zHQvG|k2UZF+s0|iW$u_0_BIbEyn(DKgSfm16sjkUzqosx?WY{;rjlJgZh>}!yt@OW z$McuB1KGo^?&hHvWV-<05_=CL%koN!mMp}%w^Nu{iBG%C9TnOh9Ck=KOPO@V>s*md zY)s4rD)Rm++y1MXsC%}iy!5qT`xX_YP%#>J&pbs{X;EoLzLSsE92L2mEZvDskYz7O zkmVN;z^TA*SJSQaL5yPIQWfs!i%}6+rfKv+f$3voL;2UpiCCs*s~HUJ^;0=Zu+Y*} ze%dkvXGncjl@=Szms*F5-!qbSYd-Mzcc7cHYZbws>QFbm%M%kc~FyZ75Q-8^yjsB6L>CQKiZ>@G!Wuh4SiNS*nFVf^jdAP|!-x_kHFN z2YYHJ?>K?`DVOgrr!;x&TW~!^sw}+V(|UnA&19acl+;`PTT6bXXDn_ z5B*1r&+`B?%=kH8EVJLMHDF?l(d3#`j?ELP$DbdT{khw)oqL+61T__Ze+sb4vZZeI zLWJN;4On{uY!&tKqrIrU{Wr>>``xCzDmY{kVaZ$iMUqhpxfNB;QYDh~mm{RFWDc?8 zk)6OFt$&Bi=M9XamC56Bm~HigDh_lCB_+#^re!I(${mS{&%$>ISM?(wnWCcJL-c3$ z#OrZ=mmk<}DfyqhmcLvo;nK`hWx-3WsB$Or%Q?;o>Zb_wxV+J;wiE}*{VlbA+cfTb zHif2rHYOpRA&Cp;`xmvWMaQQY1sS5mBIzPzg_Eg5+P5U6sj%JC(-Zsqbd}S*GU)|q zxp>CE3B7_0rG52A{3#t+dbxBhs_$p#=rxr2A`KXn5(+k|cq7pY5%`ae=2D@c81Z6{ z*}5uh;uP8KuR$#%NUPYT0r@y{$vZ|KR&PYVsX}GS^zL&f zLgO?&J^fagE3r@JB|D!BNYt-hE>;%JBtLt$Tdb%@M;9F0U z+$+dablv?bP8mz2;in?Vb@uq&etR2Yr)B$BD=+_fHU5G8pr|P|2lAXxa#LM$&rd46 zoLCf;KD8#5{u*m5w`DqN?ssjvLDPwP6n)|Mt(S3@?wTu2ld7nrX4kuzq=jo0R~^sy zQeqN#DTCkE*L%%(LGPs;nbc?T8`ho>`^AX|>o>aUF33qij6@O+nXqpx4MFo2F5p1x ze=RknWd{_p00-Qg1;OpnA<%aT5LKcP=_}dm?)jtfRz3<|{9EZNk$I1s)T;HGeq`9G z#l*-b!O&-WoAhK*@v`J`gnAc)dCpQh3H2a}#NXk;4hb;-26MjcIZyV|veDs?F2&NY z5ia!KL0Ze%V|&>P0ZhwHwltB79FAXiXO5uh(wN)NV-If*4B3D!F;JoOf6pWe({Tvm zX(^P`fRldvJsKhenhp5>1QTs4BKzS#I!NPul6je4>BqCYrG~N+J@EsinT>Ssr&cole&Tgzy))P)BB$HwDwDNGr)I~sZN9LHcQ&It z;}6eq`$x!BHrb63vc&`pbaJ!JIv}Q-U0)Oc; z$l8M0?I-Jn68m14+`4=BxGvzZ&OATAnf=kMBrsJWuk#Qn;6y}0D%=n>I@buZmSnNk zwzdE`_<)DNm#Q3C8;T1@fCrxBYubXCVake?_V^C(2B$KwTqJK_mBjVy+NI;1G8*)o zc|_!HqM4z;sS^=M9jQ-l(hpf9^56{0@tTi-OfplHj&3MIwH?Qh%0Me4r7w@z&v}M` zIHw>X(Qdd_MFv=8xVmV2q(6#FO3vEWh{Z;AU}Z!Yq8ujQ@x?3q1POi^nS3cNr>T|x zZlcQ6Z%0=VK@CX5Bgkzm0|Fm^06aWJ5Y;P<7c^t4@mzr{Mi#PxP+1n$2fz09m;Tm> zx1^3qrScX0v@QGe;UPGIa+V0Wk^pdyhekSc@RmplyNZVHg}mCSyGwJGWG&C~cpua{ zGRRdPZ8;pwFMFkVI8G>cs_=Gd%EaOKlJp#<6(-W0WlG8cRY-kKO`rV@P&}t-5LKz)>?hFt-0CvVEe(n zo@W#k2YmmrM2W>>@J`_$NX}g*uU81giHVCFmg$`m;HIbV+`bJ_Kz9h7X);~(gst|b zQTi6WVusWd!xVVA8;ob5=z_=(Lj!)U1q!pY_C06xLC&iv=1*;@C97%o55CozND2Om zn{5rf_RAk2&=kHuAiz27+bP2X+7*UV6!j7h4{ayX@ylCCLxoZ&RY|OlF2A3Nq~n30#Yu>LFD-G$cWYxPj&7@CN%mHIt-6a zt4!dclu)NE9xvsODtg5OG&Q&FpPD&K;<0>?gJUt`oTXgz-P`n5HpB(XhC|$mm+|xW zW>`bWa2~J_&OJI802K8t!d;#yvvN*qqjO<6S<`kdt$ADi9Cp0Upu8f-2lk$=l|gyY z(T@|Kld;kDION%ildmV6)(!T%knMEW_wQSX#pzKe42s(QX!Tof02&^b(yf1gt^#1s zsb=}7kmKMarhbrKw+-@TZ#qo={c!ae07%Pv7Vzv{BUwcXnr;{b^}`3t`IJVyk|U zMV{aFMl6HdwdvFI;4zftASMplI1H@He&8+@;Mg_aSpG_ji8G$)f|+_ifPyH&nZ(R+ z_8hrV^e^Y}y}&B^P~Hw`d#Wvol|`{4T*@Oa?>%EXT7Ul3zaA=b`y#AyWiwQk*L=$K zU<#7JbqCH~m@luwmsqIvQN#g)Q*Q%izsmAHF!s%usx8a<3jAg(bgsaWXH9+#zCI@t zPg~pN?eyy~Ow~7W*Hut>#v7UJBA%@Xv`p~0puffB+&+Y-E9b5&H=F_WX4)t18L}L> zTK?Dtx`?iS|C)&+ z-O*{S(XPBzZS)L(;l@4zLB=4rL!mIHQ>a@*6e zWQeo;QuQD*PpZ8e==R4evnQP}oChK$m@6CIZmo&ME_uHN{aS`1b z){6}F!|tLEQ@fC0EsG+P+GXcDPdhKBHrE)g!4h_|`{ZP7V!|7&i}o|khA2GbqU2vX z`Uy9E9=p6IeY|4IcUVb$qglDS!z?k?SnkSlsyM&%_h_9n>|5YMZ&mC1R)Sl74xwlRz>gBPf>vsNsbKG(v0qwE z*KFS#4pr1e(45g3bY>ZM7c%W*utHneudV`CANO)kLS64OxK14hGj6<6Ya^eM-01!$ zKy*w;hV$_`sO(`Y)%{ScGg6(+i@+_wF;~Se7bR_p74r6XbR62cgOBSC4<9kU2CiQO zhW*)Hx1So72H(Zt0RdQ$d9<~a)r%`PkRe*P;IzGl3t>lDctcBmc`pH;z4WZCB(6Ts ztP8Z%o%Rp~tgG9k7dk!xuTW>DlVri@uap&{ zt2f`YFYrP(0C>={k30VSgWde=-rAM7|CGOSyjz6StFAk2z&myO*Yy!(dPHhwhI*c! zbzI8+bI)*TSUP#(Z-@Ss26#5KV_LgAZ4XB*soT-&MD@6_E6uLomm%+*C;wZ^eAy#6 zj5Qc@Ws!ak0Rd+%zP)t?8NIRo64;g$6cp|k()Cx-V#@SZU?L2|PogsSfPerAHgHp9 z6bY>^?pe+5!T($u^-I1$lY1U3ax@N4hy69_o=jyfuO&ZgJ>pR`5RwU`gr5m3hW)|w zPlUs}w$otfU4Gbl?m3YJqf~ZqANAZw9&h;rN&2Ywfi(S9S2YO^*$x*8HmQaYvUx`r zNsP!9h2K@o`FCNX^LRJCAaXiB72JAD-bFUSY*nTeomEnNb1mRM?s4vjb77embCml{ zONM9H=+KJny~4oOPoBV~O!v*3?Kd&DEQpFIvbOg8IjPwMu16{zSo<0yc6Q^SLCRwK z`$aakMle87*7r(q61Ol+xUzFQ!<%j$WkGK7{QJIUQ*~Xo!duHldmP#m zqQXc;Mkj_->dNVY28_iU_XN@llGI{jfH(}P6<|TgKmD>^I{;rdMO8Q*fAANw&jbGS z@mxgw=CSg@Tg5`mUwT!}M> zE{mNs+PTH_p|SCIvESdGUGfLLh>k9~ww+TGLgpO)O8JVKy86w`7<4#uSv49v>eDk9a3?HHKcYS?0-LMOLFTf(93bA8(h2K0GVOu zFEy`}o80!CtgSXMNa3i>z}6(lh!z$fV;`xaH)! zF%gQq_pivsFFoVGr>XcrpxUT}A%!}o(a>&8MzAZ%Vl*8g$8Sm7uiV@fk;UJOB#5c@ zW6kjF{kB>k+&q3jDpd+V#P0mt$cNz*Z};P^AMP-fS}RN0|LS@sCDjhN|FiHSK%~e1 zDJ?jVAL{!l(8k3Aw__oZKn{3O5nZE za+T=w{6;+I;;S5+hFDtlT9yZ>g5NVaI>HWyuou|$>evcaZlLh0;f;)4XNvd^#IebV z(dp4qSAUnu+UcPoHC^4*l*oPGR^#&B-Q8fzPUy;v%Em&@-Te#9GBDDQeOf20F8KZ zp_#(1MCC%%OW4z%>{jfx{aeO`;fx886xrf_^7N!m{a9^8abSo*OdzNADW0FxCzcTm zww*E@T??(twuXp>sRw7%>@-k$)IYQszvZ2@h6OG0g*<9;ukp)qwo^H>6R^Qx88IsJUvHX~L%=jw0EZ@Bp`ewP zkb%I4JFp zKgv%N9jfPX#P-^9Gd6y+;{Me%8x%eqt97{w(5|-{c3>xA)D-K#u#^1X@&1aCQ zp$vTQlb5pxSOV1jfK}p8j>MbE80IX{b^=Undv~`(5ozGMmLxNr0O*giI@W8luOZtA z!p04D0_n+E1Y#GKcMf1@0*+SY7&L6!9N}zCu`DC{m9unsm+Kx;DB6SF4O2vCzS?*< zY8a$-P=1zIU$;UN@rVj+!G&?xeOc#$M~BN-_@%3}y~CEslrqFUcXQh|cS0u&!s#;JvEf@#YF`n}df_hlc2|)0ef%lA7N)m>mqZfN&SxBNDFW&jg#; z;MH`M8Rs5Wpj2eCJ%<-q=K9>iTh){wUU$ix!G7C8P(4bdpqFx zAB<(aKI`fSxrin95t)wy{WpcS6Nn4x+^Z&yIH_Ze2fGwDr4FS^u}icvDVD5H7iebp z`10sq@E@aqQ@;f4&~r~9i`|IXOz zC+sqo>Df6to_$OI*9vZY3AQJtzEcSeb%*J>sZWmnjNL?#%sRgaBf6;{hO1&V9Ji_D zcQMJtp_S-pI4S-T#f@B6inFA3w2C_$Txa<7Oz1-u6qy0b+`*gfLcj5Qj3W=*zbkzw z=ei13#VY<$5zffV(jsP?*;AhOlW(1!aW;@@1ohdw0m>&5*=j3|XHO!j$jn&|h-K9) z5wyYBSUduQ&qF!0bh2}I;Df>w>IkGEA>ognm@p;pJnDbm`@CtUK9}q;G7QyNQu)00>F@ zP?e^9*`*;CE?D2?e{T67HRxd(%}G*O*}Co;PD@UFD6Md-6Xx`9^p*R0)L04b-xHMX zjeicCaQmu<_DWW!loKnulGkfaZ}MTW>Gk0edH9)X=3hs0nNXzw=^YN%S+KI4V-*YJ zU8KMK$4^?5O!{$Bzak3RDYpG@3(CcR9gM9+)wQ)X$wfABpn(?Xa46tu`$Y%D%i^C@42fR9x0Xue_59<8q7cM=#DN@i|)xMQc zWLZ5i^E*dAzp`FqSl3}IMRm?8taI4iXu^J%(B?G@_bsfI9>PZIl#Vrd5?GG%{?6d^SIOHvRKmNicq)^yU>B%@S`*9!YXQN@ON(o6ZOAX@&;TN{e_g2 z%+r9Ul!by(o7nRPIZE84dA$m>x?CSU{~5Ii-@Gn)TT;8UK8-_8w(7%H!hjIo+)M2d zxf&Nxu2{VM!do0dKO$~YMfKzG zV$zX3TCt3uG8rsF4qGp2{`mI^`SnrlN`J}FAG5#+#<|7$ycHh=#*o3%P!wtIJ@coep&pL$OdMJHoFWypVxkt)=-40I7<|GE3=j%)S3yM))2T<%@UGTQ`WZ#-h( z9})Yz(x6$Z%){Ls66%$xFyUJAno0GJC>6{-&2f-`LPP*RgR99N7^r?|OCDDit)$1s z0^~-i%xO}3;0DxY!opg-^o@;;BC3ZYsjb_I);YAY5D}Ny#fxOZ+mA}P9&8V6Z%+mV zx!v+R_*5KU_MoS`yLCIa)y=~``T}`yWkHFnw)W{}FQtt0v@woC6P(?3Nvj6h?mu{H z6EaERHT5{)=_GID{5<<4d)xnM0p`uXf1B(LdrJ`z*x{}h8_jr3eCU+2lg z+q0fVvnLf7A8BL{5(ohR`gSwfdwEHs*Hz+ssJte;d<$YVKB~HUEXzz?@IhfX*fK$8 zb5g&9ur+t$DPR7|dA&~MLJp;bl}Vr=P?YBt-C%a_uOye=fW69_Jl=X8r2R!rJuOT6 zM{~!-@jE~gov5*6Br_rkh(Lj_Az{$UdMJi7M*-bbp3l2HQEd(n`p@47+J+1HgT<^zLE(CXaiIZzk*CNu#Rf`5qq5zDc+Ouc z@^kp{hXL6dbkE-hx@#2qs>hnTHCn~> zv7DxHts4?;(0#E5NSxsPUO2;3vWJ>ZBB z+^;KNDYrW>1I6j?>IAHG9^*VPiE3k|r;)IQTE(}2H($>sJV;qPmGcBrIK!qf{chra?q&myx2#Wsq_q`NEA19Gbre zDgy3>Fo!7<6O*?zD}4oq6+Ltjo0XMtP|~w>M84;QFW{1 z#b(^ajE;@G>5sdnVkht%;`h|FF{QctPPAsH9UyyV5lVpg3$aML#Zc~k~7(7UxOvXbi zFrpLgCPb8!n9~w-zkKM1-5Hh9cP0wS7X&v#uvxje>py>f0a-pou`DM?mVng6E@Kz$ z5!-GaYcTI{ajEiC71yj^eLL%%Wm^MM-u1>geWs}QTuN1>=Z5|*D;DgYm^KcceC;pi zkm$sObG#tNp&|P$9M8(i8avv7z8Lm#bTpqAxb`GM;%Lq~Z%3yKvYOF73!3!hh+l&5 z=C5iQDNmX((K`&+yYTnF<^OpHqH4X^w2HL*3fQ6|g6Dj4mKv+L*1k4C&{Jd{qW0E? z$9uEQ;G1G+??t2L>!~Tz>4TQe^n_xcc8JxZ7=yk1Lya2puw8f@ALi;SS`9Oq@Fl>c za4I_R#b4pG6*?1R=#ooBF19lJaCgfIwEU|93?Fhu#b{0^Y|AVQh|IXEiw3c!@(5hL(YoT`rqXdaPmlIC*1yAMy!JSuP zb)8k}@xcVaf9&-bl)tCS-BUz@lnN}xrS1hb@I*tU;ldFQ(!eAxXDh4!L^7d6gu+3C zH_*GPtE;n0Bj57UW>P{`|uU?JRZ=AuM)-VnG>CG_86(76NOI_zjYW+V109C>d$|`3Twkk8xbZO-&a|{=uVGapQ*SJO0w@YF9V6?cC#E zxkKtI+dF%uC5=z_e%p(}o+k#y%*uKiXAbW;>1+TDn@%Mx;eCI*Z?vFeU2+{#sPiLbRqET; zPLzQ9bN1VQ_QFkfqG!af(~u$UHVuR0J+vR)vr}a|Ud*;Ejk5II*=Q&A;irff$XSx( zl0k@(m228zrM#{wFGyI zpc2~r<_2viiq5+>#-MvgqKjRIk0*k*JF_nKtJkRNn|AmZL@>j1rm$0AA0!6KXe1?z z^Y##@CNFr0amex#HV1t;Bb|if-`rd#Az<*L4wD7EbUi}wU3~qE=6CWDo&j|THy{RF zIpW_waGauk*)ngJK`}aOe@*`igQeW2@y$P*aO_NF5@&75a*z)LA*$>9cdkf|uq8Q7 zw}G)|cegQKs=V*pZ&H`@2ig?tn1L}N@@o0tquG-q^`qbG;Rzb0<9ssi)%(5X&s%)| zLOxvw-YDgUxOm@Nei>e5uz@fJ(b2SL+UC%6mL+t}0a>p3;GOG6d(h_QCXAvv@UZf4 zz}}7$Q%jKx!+q6TDFIXRq%h`z5xVK^v;DJ!KZM^ z=8*-VtC?hf1tRhuXKTWLP^-v> z4)62yDZB(PbLk!V&yi);@WPXw|;S2TbNKuEc+ouB1M~|cu z3Sd?{#_X<1e+V_u!2v=hX#@hg2!6j^tE;bvqx9%s&YzLG8?OlC#l9*eox%+^PnGlb z?NAbUD0B9CCk%Y46$sCpww*|E2gP4$MJqFvVK8KM z8s5yDQ@C^ex;Z+G9TB?#!yA^nzUWVWQl;hwwRLs+D6)BRhc_30P;czWWtG=L?w!Lu zK1RTInj??j{CKD4C<9BkbYnmtih8;uGOw^D1?80|=?CvXWOv6OtSl^%Pkyn6^tIPT*WABiR^ z;;^KlcIGL#hgUgyf`ceoBB$)%ZFmsc8>>JzwXRQhcuO1Kn!xi(2K-%pnTYa68`JrDgB zbx$)GKI=bZ9p6^>U9G$1{}U5VDGv6C8vTcyQCeuSr5+ypso0B+MOVwMsYTDs3?*GrFFjMb!|LNN!FHxexT^|BPaeDQ zjF_-xr1ESfujEQvPks55bPu$=-N86rWYevuzZ3rP;Z4Uni+z_1T~Q2fG+m61`LI^1$Vm$leSR` z@JZBPnHJyBrW`E4A#=%6xYFX5Ihum(M}xl@7W>#xAZ6i!9<_NiXV;dma5m*pyZf~L zH9}?H8#^V=#RIkecbt(eL=S3zHA!20vYpW!wXMo}YqyuL=*_OhLV|2kXS+j_2u-c7&J+E-RTyrc_|)?8UX;U zotv9Tx{`JEzE-jD?d$5a)HCPzeHr`zw5}-UA#7q{CwH0x(_s9A922kj56;~d{(h{n z+N;rYLxT?cHw3g5-6n_eslBuiGO z^-I9PzaW~<6-nTDKq0`RmIX0S@(6bikC}jzBRh)m<;LSDvj=0)VF99T0bcl1hbs^X?$-G|bujNtpjv1wwSL~V5EMu;6Xuz0AcndN%&?J zzK0`l;^lf3ue6HyTGwk4AD06D*u%BTOXAn7yvR&zn8Z5%jhr~irgce(|I|@&mu5~! zg%9vpsa$-CeeGLe=nnSZ4!mI|#Y}g4r0Fp!i*oUn6WFeBRJ5~jdNbUdk{jQept`F5 zO!C~&K%J)ZwO*+;AqPZw$DNY@I>C${z<*5uqb#nOWXWW{Iwe}a5z+X&#t89}CiCVj z)E#zXZzwy4-#s`Wr!I_$IMsypJ~)5jvXe<9$}r-{e9CZ5;*}FiDwYn}`Ms(^fKwkY zJqP>sH@UePCCUBa3jj<@+kW$F<>ya>HMR*;KO7Bg7QrW1Xh!R+Kr2J!N=#nKiXb~l zSpv8~tnU5Gc$AZDRW=Z2jZ3V^ewlE@zaC!+909Fhk6Gm@#b&ngB(sVivZ8Rlv$^mk zX658qw~`7YD>VXcTQfp>>n%Pba=?>W_(9wd1t3vjCtAduu+;3 zl}h1?T?lUH!Fdff&Fm-yY%3&iU5JuXoWvV)Zs4U8Lr}|WYYyti*QSk$d7nOwk_*S7 z;{td0_D*AP0H%;+SW(SS?a{#B55Xvx{>`0vxrD(RNGo#D(e-Rew7mn%JGooxH}6iY zW7Ar#$92*&T0&)M$5SD^0A;Y0jMQ}TKF;*-`stcs`S9;9Lq zrsxW$2AzdkWiB7>0VYfM{{#%s-Hy0Wa-n`6KFc)aC%?;E-Nw5)PFn8 zgQ8kU#i1}yT6V_3ItLE3TauFhkEZjEr}_`uI6_CHL&gc&amY?qvOLiy07bf#pIRg7pcZuKNUc5 ze6Mt2GAJ6MWRf6oH;EGNFpTa{R#x^fElrQc=~J%@3Rsp_H5Lp$e`EIXX&zdE={5&Z zeQAL`ghguoZdaMOnLYs;DC|u=JfMbMXe&s)5cI^~`+#_S3egbgrH#R0+VY4smO*1y-z>7ZI>h znPU`;q%#yw2%M-cTEiCDH*Mf5-rJ`;PByW$;i?U&KUn@H3S#`Ox73y4h=*SVU?i=R~g?BB$B(nDFms8Wk`{b*QjmLw!x4~pDjq-J6dXY=3dQF9` zuDw9ux$BwDKUJwSrQJ?*&}05k z_2j^w|K{P(N|42BYDTNqL1sG*8J;R$swm!a)PCKK>h(H-Tjsyi43ljT{>Qtct%rLM z2Oe*Jb^=in`e3cm-BVaQIAk(%a`vR1p$#?MFSrGGUTWOFzP_+|g=q~{lFA@LQHRgg z1hk@npx_fvJTwu(U9qKwfP&ooc`GWUK_PijU4%q{!2D7^IgWxbcFDTVD?WSHTwo8?gv&$XGt#bZht*m9lf4h?>FDrv^>wbHJoz=V|AI~lmMF#> zU9LW(h)|dw%F1Mx91y&gp{-z zd+l<`k}Wki2kvlE|5gkx{|O}(x>EOwMufP+ELg+r#rWmHsj4SB{oC(z8AaFq>Wk*H z7hD^SGI9i;czlxXs_EBsnsDjBpZt_{VjPzd8r+b`&Q)p1Wn*BwYsV*eUHzpEs17zp zkBtf0-dPxvlfQfrC`Dl!cU_HY-Y_Z;{Badbs`ETbnA_K*$=Rcj!(|+#uiMrEnpRSk6$3Pc z<@hXd8^F`t)B2j|Je)Uk4KVB28}TVs@NuX~ehQ_s*L~E4k3$D%)9w3~4YfqlD`|%# z`Fz(~9=?(~S>=cTLH`NHY&-AiL9=D-8{S1@J#8AL(RBW+N$LTcCH2rW1DRzZ880s% z`ySUUS~b#kH^e2^_TMJR^2bvj?BT!w<^1^1`ebX;S&E&>H+_%AuJUe?9M;uvKnIj4 zL@I>%fW}_(0;y(OkyVR{UK5XsdRz;(QzLD3l3JSIUA>W>6&}`kqDxj5P7g+R?>jdp zA-DD~kBm};!lZDealhMnL$BDU zKiIhQS;$pe98$;~pXa%5J{E!u=3`e)EU8^$NabtUYxO0TKGQO!9lMxB>^{l-poaO| zZ8!N3PpBr5-(<9DVA&(h{0z_o&$jk6Za?t9EMgH$Ho)1?6MAj(X)q#IU zO^nVB!foKamfbvNMJkrpzr}ZEIAKTD$gf?)VL0p=@kZ3pPPK5WXqyDjZp12+-?iC2#;uoI1ZR_=a}4WqI|2GgAH9@pt|n}h}N;#_O}WGLE=tFYWrdyO0ZhkF~NFgX~lCra8~H&B-d z4!0SHaA07*-|Q{Emxv&-0t+$1ikDpri;Gug_pHiMJI=sZfi^PgUH^T8Cj8>|0R%w< zKtJe;VL8hL3lU<8H;D{ku5gJw{8b-g8HHRmtFO-5B2l`93Om3YZEaN)bN~o;dD$p* zOuzkcLat7adet|(ai{PI^zR;z&lT#yX!*qNV{wl6-A%K|E8Us8cq$$nef#?32b3{1 zKgA0KbEw8Qv^ZaA2s|KtV3wq2V`<3_xu@+wToL-*<{En7!H0O0Z~2wy|5PWLCw@tq z5oaI#>dJJMmD`T}%gPRTBKk2P?`BPSbcD?|9y*0;h5j~Z+DbayXqHXcfVk(?vHT{l zADfyNWPs5>x-nDf?&d(MRx&b3n5bXmjQzvbQ-S|jvi`9e_Ter;0a2-l&a0dDhN-n> z6zxJpT|?+|{y7#XrFaiLjVsiy&{bX!+Y`^mq9TZ~fWJlmRybr8!6}|z5FHa^P~@5Y zFeDHy!a|&iq#^YlSyAY*ZWtHkQNr@ED;gyyDF(@_B+;tbn~Z+=#~l6(=s?_>4dWx@ z{0I}7ob`SkEmWr>(l51KPSh4-eCkJ;< z3M-2qZ5fUJX0Ny=QY669K%$U0k`Dtk?Sy5n)OR%y(~SP3B~? zSve=t|H|yk-UG!LYa_biU>`y1NHbp!qvTy6C5GpA^L#!pJ|zT8IVq{SFQ29Q;aD!z z1#Mn@%BB5uLfb@fghJ|Vb;o|*XLQEpma{<(-p4shLh`yW)ko$5*HGkAaJrL|Z^45? zzpaFvi4OtoV=LDVFpuXB(+kFnVL>P5zUonBGUR2))Fm7~-r(c@*FroWETK%@NA%z_<%uL720woncNq&P|;@!)IDz$1uo~>4k+v*Kb`t@u(mB`=4Y_wnv-yI}Y7y`4qaJoFR3U z#=%DEcvoEJ_t-@W3+b*D;xu`cIUgE}h!i6FQZOG_1eT8i)Q7~$^J5SLjz=cm`H4CJbYrC+C8=p~u&O^u{E8lIm$Ki`vze~}>;L*dxKzVp+N>m@2! zC|W^X+VAInhCC|&Mnzv(zMU_wWKpW#TB%4}2-E;RNW;X(I*t1({@hqqM%v&NhSX?VydQ>>+^q z!B)+!3Lmdi034Vbw||xnQ=X%AnLB%(=UpA#*M&Osb;zdT=Qsn0mK?rc{X3#wEg)qA zHcqyjfeREAf%k0r=(XC1WO=b8^^!{&ecDieTvguSD79H4z z{YK5>@yvmTEftsr)W8!yoF%GrJ5w!Rw^*M_L4FR90w`)?s?M?MX|%Dc-dE2?eaF*; z9JEM|*Ezb+?dNjt?(GQ*3T70HKM=COoEasTk!WX&U1~*;ssEev>OftLVjIQwxwQ>- z_#lfC)@S5ToqP+^8_&7_&fkws`J{|X^c)HAAb;N0_Qg_DbD(LjY0vcOUUp6@isiF}NYoKsm-zw6&w3 z`T?`xU2-Ahi?v9adci_n`dT*@3!IXo5jSaO=&VjsBe6~k#DOUXwn2P!R~~!>!)9so zO6Tcy{DH*m!j%FSf47V?L)mmErI1Q}(I-=BWex;L#6U8i4lb3uKhuv+V08VLAP347(!*3{`~ z@YD(j5M71zC_zjL_=XjAM*jT^kl-dT`d}J7G}+WDTSHSpu^=h%g94I?@b|n#Zb1o< z{+%n@+AV8WcN)O&u8<2x@sC_R^2pR=JrfYI?CbvhgIv?SoWC@j^8}CR**FnIHmFfg zNlYv1w#5$#$`4KJ%M46PSvRL2%-#BWPX#@t6we7SgqMfM*R|cV%--g!KaE0TSyij; z)hdpF5D$ha7hhi~;8-vdtSHWXdnpVW7lf3wKRi462bg?cFE??IFUPdaPXL^Fb-9e7TlEXs$d#x;OFCe zqf>aEQ4DgioeRH{9lx#VMV05O_^Oi!!$uFD&aMjGP#0cT=j*}GrK-b67gA5upe&DP z(MCkiNn#$o)oIOIlEBy)LCn_m=IKn*)~-@6HC_Nb&=*8 zf?W|E-4YyaUq(m8#l+~sEb?^-*XGcXE}^F{E}X{g9MvGXnUpN-|F-J0b$4-z#UDU? z<11qoEHpvX0a+;~IvNb=?XM<4hzMpiubY2_NH(r3Ia5XZ>xWlSd&PUk{Q~TqWzSc+VmWcEjjaCq73Ntm{#aqK5$^+LJCIK(KgzCnq~j03cpp$g z#&*BP>G;{$(`}(ftkmq2;wt?2tQYA;I;whCl7=Xd6rqC%_H!@1+T4|H&J4FpPJi+J zIy@nx`E;PF(f@w^{l?-yuNlu0Ywy4!D3wT+)rFNUimb3VDZOasVES-+`@y4W*#JF3 zB_ee7^nm1mjjYxMo*CW7_6LuS!!|ayL9*?)76GaOd?0HZ-EjQ^ki9rBDHUgH)BF z_utFW`fX1q#WcfcKcRrFm!`f1K9vU_>gkE)1{+tyHXqf5lY6pj(|~M*TZEk-f&uBm z5#siTky@=Tv>^ zNE<3A<~RR|X8l}OsvIX>r=CA|5X-QQA`2#VH%uOBF%0$+?Ug-j8bF=P zLvlb|I@ARfCP&D^WdI?c@7$izLX>cjoq>*OBsx$lQ2F;YP-&bK+i;WvLOi-X+Qyj_3R`Rzv># zI@U(X8P$5FqZ%5s;5UR5fn7E*>rV1wHM*#epTL6j15?mtlHXTCGl1|#Z(4DgEevTy z$4iEIt#l+pm4_y3rC?*1?|pI;Vg3E1gA_lw@s%jsh2m618O~2u*WaiY>U_1)N4J$x zBxZWqPP#(#a^=R1&pI3^CZif@5keG)^-m`X1>ZD> zi*%-ryuXS)=WMVc_YAO=3O+JXd9+vmI{&Mb^M{??TM zL6>{d1Cwxn1FaPvL*VFTOBtYd=kLl*jLe-9NRm$+9~yE6XI-)y?SGyQxETF;DM;8J zwRp()jtAN+QE|crYf_4M__-&z<|AAe^V7#0Gsmz@inVgb*fG7WI91mnv?Ti=;9!wF zUq^jqa~0eUk0*m?E6U2W&@=+gM{ci3PMeVz-Nq}|mGg-%cRNC1fIGf_o!%X*PZP@Uo1Bulpj(>o zMF9h8=a~ES;I_iRBRAsbKB0rl%gYeDYxbGcM_iRBIu}%k#Zqwe*V>{GYz)G(=O8w` z{PZ<_i;?c~av*|~VK;7JqMDzaxXsCQ^a3PB!5r|_IvzPciFt!P4X)7|n6RmS0i>-| zmY1n`)?KS8TD>6G6paiq$FVYt+4c+1b}sw_`qYnqXIbPB_7TMROgDILr@d}vQ$>=o zflW07-sq%Ybbgb;G8z)sQRS==b$r@&;kULG%;-8;&k+XvD>9p5tSfnkjYqFWI!yk7 zf0^^g@369m&g}yGT+X(kDhX%Jm9a6@lmXU4j!HadV6wVcP`*r%#);o~R{nhMdSSiv zE{WON73{@@J6mO^lhsmZXQ#U9u&5(w6mY|e{bHC*VzUdhNQ^tM@0NXLKz|6La3@5NM!FfhLS-!C9U^rH z7zp~LsWm_&AZWv2D2GK`+uz$8m8pn3O{J=H^5N2%Wbu+Eg)3TZbD1v{U!{hpBH~#i zEM?5R_rJdY%^XxfC2f-$CsQQxiwid$ucsqk10Kw7I(^8Y5WczWswHbW41~{^Gk@rp zUaAEG2=pladsS4lcG?=4ee)@pb>L~#gMwr>_uU*-PHI*`1%&)knp*y;jmMthHX`!{ ziF`L0%Pq@w1fF{%vv@E7jsk!Djak*@2tTf8yfR80GjRiu@~xD}5flmQwdQ^E*vn#uoJgKJ zf-}8G7Zny+a5pn^f9CR&P|?h^oU0yQH0Ma#QdzjLm})UB z_dX%pf`1$|p;_UT5Oirku)Qgy?lc^ZhA(^r+}NUAUu%KBos*jByC2t>iU0~C%d3Qb^Hqf_+B*K?JZX@_vIP@ad}begi$~&% zI4rhMorq1eM$32k`)&Oa6G;&fx1m3Gbkg1j4t=VvOk`(p|3s!tq)ap)Y97ZQAuY7z zc*|G;k8O-Jd^%1~kTAGueOA1J)Q+9B9fzwg?f`LY6P zuBwiJK{x&-jI<^K23L2RW(b2+h!Z>}fW&=?kue0j25eAiTCSbg{> z>{Tb|@FuZWqRR0S*pj`yo#10c8A>Q={7%2QAzpuFY7;K1@<6k|G1D zqlQJQI;lJjF`-qs4z`;?0bxZ=95lS8D4)!!l>8N}?uFmtZHXczT#nEfjo}Y`S2Oyy zY!b#;6ZEebY14!s<)JO1HZQ)wUgJSt;(Wf;R)xsL`+qu{{7`%w$<1khn|zKLIa~JI zT9ovYBrsLKACK*hWDn1cIr5qz*M0JF!(xKa> zgb+ZKLxsJTZTKmPL_iQuhgO3|35A+tx+ahw?tU;g1XreE zv4L8e47TmnZ9={DCOEKQD3W6ZFfD6%aS z$v0muamg#16=5EBNop(?9Tp&TO}u#JoRxYk$sA#LE-DPL-FhP+2WV@H&hFi~aU+EF zmGC36jF%ZyOE@ulj4-Laz;fN|_sq&oHj{(Y_F?nWFyj41wwC*OyTP(I@?SGSYIPeHw zgaIEysUhXuax_AnWEvZ5Ym5vq9x}imzkdDtljq{)C6+UAtDVk?I&iSN!lY1Fs574R zezG1Pog`ix`NCpMR;bKj1Pg-2!1fWV%b6TRutj=mC-f{-f;L|clXy$<==Y!TwEst` zc&}enfi5ID&6pmozU@{bv<|UCfpQ!q_Qyc`wd@qx1>6rkN1n%bcwWX z$H&lno1K*>7&g1}J-~WA8rB3}_30(D(7e6qb}3mhcAcpUz|UZr1^3|X2$WUgmY3~J ze@TjKHLBGxp7SnZXMC=(?d!$F$%!i{!#BaKE}z2{CMaLL+`8LoE^{rT4-*vy^E6@o z;d3Zt+Zpn|JZ%b_0bgH+i!(z*gwdZ;!$OftNeDJYxxoU`%t=UdDnK>*RCTeg6yd&xbQ<%qV3`VXi-7CMM z)g*B_kT{rl3tRikhhw&MpX=y%70Cc@+xjEj3Qy=)hbqX3fH+k;%66aNxXeCXNS8=k zaNjM+^~zVpF#QsuB*ObU#pfwBUQ8PfRgDxGut<9>2OVylLJtpT_L|_@K)JIA$y)$d z+=k0(JlZFFud3Alyvb~9zWT7}+!qr0*go6Y-I6E%z|{PvewmH9akiv{612RZR>xa867!A}^jPq`V)0ZU)* z%$_s7JXuYp5dTKbz6Pi=MI-QGgKYLm0EG2`4<8VqZ$R6tU98Wc7+ND9r9BvlRG6MV z@ZiNsN_ibww~2ym1HLV=P2Ed#Fvz=?k$DMozs77FXnC}-*E*+7_e@vzAPmCbUUK|@Rb)*3Ul_MFjsv*v$c zj82A)zE!#C=D#DQ1Y5)jv0izEFL;)(&sBx==kw18P6x98`pcYnf>emac0?ItaBb$k zUdrFT7OYcHlz6WezJlDKO1VVbgi`0Vue_3=}y`>{lB z%?&xG|2Mjx#$sPF6ZjE1H``XGsdIhz4;lXlRlPSYs@wTn9zBZWMG&DaVQW=71u0&3 zE|`Kpg4J#Gz0sMz5ebZ*(erOtJ5xIntvFqEOGl~j0YxO#Z)RVg@O$ulFK`&Gcs=I& zACwG|`glnG1S*}}SBVo;kA6i*Ht9L(gw$VVT>aZLgPJQM%O;fPRn<8)kv-(bo3ICi z^0xI+YxT%DgY#kO!JWy)Gk|;SdBYl+s1tR?NQYt97Icq7T`AukKu5Wcx9#-)$a*pZ zbq^lnHa9*mJ~#Wfl>+m?+R6&qE!ij{)x=3F`CRl`T|YYUDRCz%`j(KC4$b0^o`l;m z%+p)ReHHAGqXI30sF7k`6rd<(()S7JqLaC9&k+P~( zK0oi9$+_!!_MP_wWv!4YFI8A$SXAkHLWFVUclGh8a&;-kcWN|B)oX7q_Eh&1qIr-{ z+9LZF-B`zjC~l2TF)Ys^X+?e~x zNdiCSB}g+eK}~tb6AW>(GG;ix(hTsMWg21v8#~wfg4Du=Mgvh0kncxp*JG z0&N<3^@OkIqlD!R4S5md2&*VhM=JNvC~|ugaS&@n0al1koZ&pK+H^F@(+GZ@@RBvJ z;VZ=CcYf#?p0rqyKHUQqzOerF3fLMJKNB%Ay5tsN8I`Z*>)sm0%U$RoD6hud~^hVr_L6s*>aM+dVeseM6lZpKd z`57RC87UCii>~%qi#%FBz*tJ9nATg|9Bb^Zn6eW+1<@fB)wx1g3F0Uumb)u5`)mQD zKH}wkW(Tuz$QL=e-HY$xNJ(IuIJ8136*#HH>+;cQ3}>dMmhnBZwti#C*R*E30Sc!< z-cT9eOPzCBbV%v9*DfvRk5%^xf!FN0^#y8f@0Uj{qn?-FVO6i?V^>c}MCeEa^(%u? zdt+zkjh&xSSZvdV6?-n^g!9CN1iUOl;-k(R;<_scDnWHP}1LG&>3`E$T~ z!Ct6PH$5wB9kPcjtV(*rD<2jlAbC-c;WSa}&aHk{F^clSh0!%n`Pf)`%AE@V`?pTy z^+s4RZnaa(byYAqR$$!#mV&tyX~`9ysuPAFEl})zhen+CO`itvcJ7^pLO}le!yilp z&bGa9m}E zGWn>>({%GAb%a)-uBe8yD8qp4$zz$E%P=wUcUL)o5nx@pKH(iDw zy3XgZT8FtL*q79wEmai$`H$n|tZUySjS^5$*6Px8YrP(A$B+^* zsvN2;pVVNNZ$I!`;dl0V$^M9lY6-7)7q_-{Sq=f=;C2aMaZ$8u(U8cL#`yoV8g0bi zM6ea-boy{ntjMP3B~QB3JM6?` z$pGZ;j>nI4Bud)1zrFv{s3jiVaX&p4m=_^@SCT&O?D8c3<-VJhnVue*`z|X}P`M@- z;eNGjy7k8!R>T~omOzTUGP$!-Mu4-CK2xa64*fY2RV2J{@e!X+yFZ}1v4$@^vjQhL zc~Cp>uLJHV8F$~3*Gk*Pc$xxfpXOBrO1KmL9isd$)2F>FN%1|L{>4*k(Pp@j`|CwI zg>t=TK3`YkNi5bFHfg$c^er*Zi{S!|v?^=nW|jjVH>pnf_cDA}{VZb$0J$%$-H)~ve!$+~e9g=-kq zyxqZvvpbSL>NZNPsA2ToEAg%45YK$8nJx8X3BrPFqs8?ZIi^Ky20)%Q5%QpSW;KwzZZMWoQzmQKQF!- zaex$y8qY1=#QgA1;rU#}f`YfNCkwCg;-~hcKP8I==Bs^==Sq|7k$h9W@Koz;@wZ2j z?5z%!m_jHL)S?|&dhN3T>q{+L~nqFp6l2eUv>`8pM6!00*a+Aj2!c4Xv( z1OkAYoa~5-H$CULKWY~%MWv^MR%z(0tHjt(W34 z{ zFkt>=d0x%}eQrUqXbSR!BOvza8foj%USlQ>;ta=gac_^qr=xP)J!{$&i~Z(M^;m|! z_c;c?f?f5_M&pD^R(zO|Z`jnx=exC{0d(4*JC@hZQ3RyiLWeEC!Y|`S@4qpkwj+MK zkNYVn+sL=@b;ffF(*=b{Ck8aMJnOnqY6_$Jxbv<#saxP5i8bmVWn)|YCD*_T53R0`_JS32jF zE0;cswMDt}Mp9etbjki38XUyx73ur0-LG-$zn7-lXnZY!s}n_@s=efmd81OtBUt65 zdPw}d-nW+Gkaps6TU?-G+&e5EHKCTfHjQd-w-9@{4$&ogu6Q}b?~r7t?%-F*V2QWd zH2Y0=5G$*zf$shzSUty3XZ9>8_K^AgHR#&gyKD*!RTJd5%~~?SHQ^!BBg}<3ut0e; zcS)r5a8fH97|cRtba%JP>!LjE;_8vW$oFLIcexTQ40n!uokBw1&Vg3=SmJENXqaRv4-*IgS_aM#p_ z_l{3X^%$W$5J+AUrySl9xq37*UWJpPPr2OisQb38$69es@R1B=p(Vzo>uiO2p>D~@ zYNQ2gsA7@l@}R}+6T#Xa)C}ABZ2wkuE~meHCmD+$J}+*;3=U^IRO-;=UyEZ6C1BBG zh0ZTk8cC~k&Vhk}A}lYiV!=DTU?qLVP83{gB54%8PTtvg35?S_c&IT(TRt38f7|Qv zcWPz$>7Sp4y1eXMh3dwdb|oynO$qAUmUQw59619ViXKV>Hp9iqS5+(QIeGG*?YubQ zDfkW@J$d$Ftc7`xz5#PgZpfoE6@3S8kW6_(6g*0q+luTq_xoRm42Wj*>53$%yy?%p z1T5nn%;glM_SkXDF?2Hlc7fpDTxLv6%-)|rFcp`S26vgjDM0Wk#PGur6>U67WSnOR4_b}POwx29< zw3J+iNSZDbp;mf{CaDed4b&L_+T0X+JX-B|%TBwS)_?Xw$a2LUuc>Dn$3$Gj7Qyt4 z@l?@P%CJg1^#=wl!Q?Od_Veeqw%~$yE02|_KY_Mn+Xy@#frRt9vG=}BP96fF!7g1) zN@`+cgw{KNMo9$;;@`=k?7szwD{bqFEY|&+oC(;~VEH!)E>zuRw2s=-zrG;x7U~0c zw|mJg@k@atm3ox5<#2(GuZ$igN)y4*o0*j&J&DUw}Fq{1m zMWux0iiZ>i#l_@G6u`oCuV3i)PR;%ZSvw7J>+a29p*9p>pIQCuW8+|lCh4*JTne_C zu2Diui1sr=(6exnY_j@_sv1`Uf(=(;hXR>fnST8@x*+^w*>&#@zrim{ANOw`ZEe_u zQqA1;zh!hc7^9j@Yow1_2)F7VI`UIRhW@U^gM(Y#$poTOv`RcFxE^auFE9P!57D4v zg0wOP1?v!F7+$fiUpTjSEp)1`=Qy#W1HFN8aty_m?dsvuZmFj*A&0hH zZXntwyryeX2+#BzaPzoD>M%(#A$avIpFXAgoCCId3x~snX*$dW4nX7Fc=jXiUu)}s z*E+~_|6b@CUh&|~kc4jxH0CxwFrc{-cXxgKuv;@=D*;^e0+HX)O2ICD*GG>Q&HmXS ziC?*ps(yi@1F;N^e4Ut|{`=qVJ42q!fTqJi6b_|_&Zts)LSciJh{i=>=1`gF z`Dzw>8YT9wb5tC%u_W5@oN|^5vjm}fk(@@!Bje+R_7kTCHS71AN2aHbf1hkU1b0%B zFMp28*U#iCtOtHFSvYbcI-zp@+sT~whNK6&6#pIEls%i%3rkQi_1LA;DN|7qFB7sw zW$tiRj;YbK&{A<5UVFTE-oPX%3Lr1`q>G^iK1 z5cb$eWMtbb{aq>rt%FBm4D4Kna!jw48=HLl(rbZ{z^m7d$J5hsYQxJMTQYeUr_S|0 z`MjQEr{Nc&6ayp@AGGmMB#jk;Yz^kr`6L;ANm-HF>=*k3r1)Wz;Abs;&InzRs66Am z5VpiUgrM% zYax;aA3_r|9o?>NDk`Lc@B(0r3UA}Bq8gLAac;#%7fFobpSub=8@9SYqc;R9^1V+f2cdUTasP!Hb>H9XDse@oE{ict`{Y%a|feE z&tHoQajS|#+@>xuI{!H>O=W~JnLZR-V#I$xR#8>ow6q`9PV5f9vT$DJy-=f1;UzqV zin*aisK5LM!<-7pw^R>R6jfr8x6rvv!z%2-Se*P1MNvdyMt>SSn3f2?hnf$0@%3q4 zQF=U~k1@MeyA!oM67d}o5&34tmpx0@qeDF{ z$=Akj%Va<<=6#PL4R?QZh?E@b{8Zcf1&I<(4mBG7aXZo6*q->Mr*U}k`P3kaiV+8G zHFd0cbcPCK;@;W*F95ee&3yB+@XTX#xI8{ z*z+Mi8kd&wKD8S-V_ri?Oqkp2Am%SFm)af7$12|vthvx(kNl9hDDd1VQ~uq@_slP- z*i+>_CcjBqshcNV!w9h>+%d0E z+qbq5A+Gtev-5#4x{xA;n9Y_iNd;j@;TIF88y|XVcJ-<<*5IU0QhQ#JT49LX3_HID z7NvYFNbfRUKbHXy24u=-`?U`>vn5Z{Zk1@PIO8GnbhFd+@@D!-WJzY01S5xNjnEyR zsSk|tVC@0B&gR@|^xDkU{)snHN9yy(UJd|05YOs|yG7c{bLHu82|NQar1}&G*>5k^ zVXw;nxDy$P_`_jsnJ7q??Z5OqqVUqaYup94PTgL2@80d#6iii?N~)Mo1**!2w{Ks% z^Wt)Ct{d~Ob@9< z!mnhjq^snSyw{6;Q3u=Pl@?60Cr5Em4z{rF-2AtPJ7;UEMf74knwH#X(#@Ekdw7Tq zC;V`qgXQ2tF4{Z$q>WrqJ^N-67F<&x;^TdekIytVHdZ@^5U{XrXS&NHuaI2~&P=|7 zP!O@7sCG=P%MDK*)a4bf^YY})(xtI+@O5*uLa0R39sqs(BBQDBUz|&BGM@?OlJ(L6e@M5U20zABw zf3)$A&lBJ*rOQl|f{_ZYG;E=EOzoQAqZrdM5|*+4aWaQq%*_NJkQ@{4T%D4^-Fh(C41(jIN zQO_$%0x39Xz>ZZ!57~+o8W*$ih~P7aQ-w*{Bs!VctT}gBxAIu~ZC+Y1dC@#o=UA6u z#yNfmhb^<{;-}_!(vJ+~jPNUUEm$RRgD) zhVktNkjC6*E!9ok5yj| zD_{SJVKirVl~;`Fu2}JY&EkX2W$lMoiAyw6PnA@dOCD{JI_^O#3>9(iV3=hSS-wTD zF-=COLA)6<@i$!j-mG}(v#b)q2S=ZU=hvzD`h{;_e$K8CuKZih?ButV)yYOofS>J8 z2}=qp3+wfXgf5J5Xq3mqq94H8D^GTtCr+~@qndZ`wk_M%n*3T{w~1PxX*@hVbiUTQ zzf7w2V4w&EQ^jq>!SZd{bEHv$+=QqR(G)1o(FOn8zpAKGAokA_89$NBvtaO9(#_Y-QtbMwS znenUem+85r4BUodqDIM9%AU7Ulv*M1y-3=WGg##zb=-5Zg@18D_9cqZxDo7mOU@!` zy)cca(h=biN9_^-XiLw?xZ%CIa+}##MH5xx=sa7#Aoy=y5K0f%>MT_B^g41;#8lC+ zQijGK?Kk?kI`E+~`!2t}*A>HExuVOv3wP3CQ4OsRVBG1VVEc9WZ*}C+M*T(;wA?&Q zFEE888w_ehVn5e-zNh$;^sp;KV~+Y=b+c%0^RMcn0Z`3V-za$4O98E@`*+1y$10K%eJG@6YI7i_RQdR?Q`#Gj*KgBF$wDV z98~0=J)w?5H4hG19B7iyzcS>TsLtxKHqT_f$fQKoM#1)ps>4rsND1+|?N0OW;N5?` zdcPL&vH=||<2bq+M-;Py^ZrenTy!JFD@%%14Q(2g;JG^fP;Jz~wQIw!O!+#h7(0

RV`QrsT|%NtTI&E`XL+d7Mem)m!dJ= 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%0DF2^sG)?Fvbb@g3k*?{-W8z_kGR)5ZLa^A!HZq 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

Vf^oD_ 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

uYfPGVdliK@$g*Fj2g=1 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

oPeb2qtO_378!!cwZYE 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

UgJUTB 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

0k~&C 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 >S@38+R#vCA0;Dy;OE)Cla6 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∋e8c8-B)mMpy~N}dZrS@A9m%F^U<1qBxa~#*wq4$ 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 + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp; *.cc; *.cxx + 0 + + + + 0 + 0 + + + + GD32H77D_GinoPi + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 255 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 3 + + + + + + + + + + + BIN\CMSIS_AGDI.dll + + + + 0 + CMSIS_AGDI + -X"CMSIS-DAP V2" -UE135C13EE238F49A5DAE3F76 -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(0BD12477) -L00(0) -TO65554 -TC10000000 -TT10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD24000000 -FC4000 -FN2 -FF0GD32H77x_78x_CNVM_2M.FLM -FS08000000 -FL0200000 -FP0($$Device:GD32H77DIW$Flash\GD32H77x_78x_CNVM_2M.FLM) -FF1GD32H77x_78x_ECNVM_7M_512K.FLM -FS18200000 -FL1780000 -FP1($$Device:GD32H77DIW$Flash\GD32H77x_78x_ECNVM_7M_512K.FLM) + + + 0 + UL2CM3 + -U -O206 -S0 -C0 -P00 -TO65554 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD24000000 -FC4000 -FN2 -FF0GD32H77x_78x_CNVM_2M.FLM -FS08000000 -FL0200000 -FP0($$Device:GD32H77DIW$Flash\GD32H77x_78x_CNVM_2M.FLM) -FF1GD32H77x_78x_ECNVM_7M_512K.FLM -FS18200000 -FL1780000 -FP1($$Device:GD32H77DIW$Flash\GD32H77x_78x_ECNVM_7M_512K.FLM) + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + d + + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + + + + Application + 1 + 0 + 0 + 0 + + +
diff --git a/bsp/gd32/arm/gd32h77d-ginopi/template.uvprojx b/bsp/gd32/arm/gd32h77d-ginopi/template.uvprojx new file mode 100644 index 00000000000..e49dc596277 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/template.uvprojx @@ -0,0 +1,406 @@ + + + + 2.1 + +
### uVision Project, (C) Keil Software
+ + + + GD32H77D_GinoPi + 0x4 + ARM-ADS + 6240000::V6.24::ARMCLANG + 1 + + + GD32H77DIW + GigaDevice + GigaDevice.GD32H77x_78x_DFP.0.6.1 + https://gd32mcu.com + IRAM(0x24000000,0x000C0000) IRAM2(0x00000000,0x00020000) IROM(0x08000000,0x0200000) IROM2(0x08200000,0x0780000) XRAM(0x20000000,0x00040000) XRAM2(0x30000000,0x00004000) XRAM3(0x30004000,0x00004000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE + + + UL2CM3(-S0 -C0 -P0 -FD24000000 -FC4000 -FN2 -FF0GD32H77x_78x_CNVM_2M -FS08000000 -FL0200000 -FF1GD32H77x_78x_ECNVM_7M_512K -FS18200000 -FL1780000 -FP0($$Device:GD32H77DIW$Flash\GD32H77x_78x_CNVM_2M.FLM) -FP1($$Device:GD32H77DIW$Flash\GD32H77x_78x_ECNVM_7M_512K.FLM)) + 0 + + + + + + + + + + + $$Device:GD32H77DIW$SVD\GD32H77x_78x.svd + 0 + 0 + + + + + + + 0 + 0 + 0 + 0 + 1 + + .\Objects\ + Project + 1 + 0 + 0 + 1 + 1 + .\Listings\ + 1 + 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 + 0 + 0 + 0 + 3 + + + 1 + + + SARMCM3.DLL + -REMAP -MPU + DCM.DLL + -pCM7 + SARMCM3.DLL + -MPU + TCM.DLL + -pCM7 + + + + 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-M7" + + 0 + 0 + 0 + 1 + 1 + 1 + 0 + 3 + 0 + 0 + 0 + 1 + 1 + 8 + 1 + 0 + 0 + 0 + 4 + 4 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 0 + 0 + 0 + 1 + 1 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x0 + 0x0 + + + 0 + 0x24000000 + 0xc0000 + + + 1 + 0x8000000 + 0x200000 + + + 1 + 0x20000000 + 0x40000 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x0 + 0x0 + + + 1 + 0x8000000 + 0x200000 + + + 1 + 0x8200000 + 0x780000 + + + 0 + 0x20000000 + 0x40000 + + + 0 + 0x30000000 + 0x4000 + + + 0 + 0x30004000 + 0x4000 + + + 0 + 0x24000000 + 0xc0000 + + + 0 + 0x0 + 0x20000 + + + + + + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 3 + 0 + 0 + 0 + 0 + 0 + 3 + 3 + 1 + 1 + 0 + 0 + 0 + + + GD32H77DXW + + board;..\libraries\gd32-arm-cmsis-latest\GD32H77x_78x;..\libraries\gd32-arm-cmsis-latest\GD32H77x_78x\GD\GD32H77x_78x\Include;..\libraries\gd32-arm-series-latest\GD32H77x_78x\GD32H77x_78x_standard_peripheral\Include + + + + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 4 + + + + + + + + + 0 + 0 + 0 + 0 + 1 + 0 + 0x08000000 + 0x20000000 + + .\board\linker_scripts\link.sct + + + + + + + + + + + Application + + + + + + + + + + + + + + + template + 1 + + + + +
diff --git a/bsp/gd32/arm/libraries/.gitignore b/bsp/gd32/arm/libraries/.gitignore new file mode 100644 index 00000000000..7eff01c0ce8 --- /dev/null +++ b/bsp/gd32/arm/libraries/.gitignore @@ -0,0 +1,2 @@ +/gd32-arm-cmsis-latest/ +/gd32-arm-series-latest/ diff --git a/bsp/gd32/arm/libraries/Kconfig b/bsp/gd32/arm/libraries/Kconfig index 6cd8bf17f23..e1b4bd4826a 100644 --- a/bsp/gd32/arm/libraries/Kconfig +++ b/bsp/gd32/arm/libraries/Kconfig @@ -31,6 +31,11 @@ config SOC_SERIES_GD32H7xx select ARCH_ARM_CORTEX_M7 select SOC_FAMILY_GD32 +config SOC_SERIES_GD32H77x_H78X + bool + select ARCH_ARM_CORTEX_M7 + select SOC_FAMILY_GD32 + config SOC_SERIES_GD32F5xx bool select ARCH_ARM_CORTEX_M33 diff --git a/bsp/gd32/arm/libraries/gd32_drivers/Kconfig b/bsp/gd32/arm/libraries/gd32_drivers/Kconfig index 897c6c81c17..e8819a9d8d7 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/Kconfig +++ b/bsp/gd32/arm/libraries/gd32_drivers/Kconfig @@ -39,5 +39,6 @@ endif config BSP_USING_GD_DBG bool + default n if SOC_SERIES_GD32H77x_H78X default y # "Using GD32 debug module" diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h index 579e3550491..b56cdae35fa 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h @@ -8,7 +8,6 @@ * Change Logs: * Date Author Notes * 2025-18-03 Dmitriy Chernov first implementation - * 2025-09-24 CYFS add support for GD32F5xx */ #ifndef __DRV_CAN_H__ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c index 01e800cb844..bc80b5c1109 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.c @@ -446,7 +446,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) const struct pin_index *index = RT_NULL; rt_uint32_t pin_mode = 0; -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x rt_uint32_t pin_pupd = 0, pin_odpp = 0; #endif @@ -458,7 +458,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) /* GPIO Periph clock enable */ rcu_periph_clock_enable(index->clk); -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_OUTPUT; #else pin_mode = GPIO_MODE_OUT_PP; @@ -468,7 +468,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) { case PIN_MODE_OUTPUT: /* output setting */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_OUTPUT; pin_pupd = GPIO_PUPD_NONE; pin_odpp = GPIO_OTYPE_PP; @@ -478,7 +478,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) break; case PIN_MODE_OUTPUT_OD: /* output setting: od. */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_OUTPUT; pin_pupd = GPIO_PUPD_NONE; pin_odpp = GPIO_OTYPE_OD; @@ -488,7 +488,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) break; case PIN_MODE_INPUT: /* input setting: not pull. */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_INPUT; pin_pupd = GPIO_PUPD_PULLUP | GPIO_PUPD_PULLDOWN; #else @@ -497,7 +497,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) break; case PIN_MODE_INPUT_PULLUP: /* input setting: pull up. */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_INPUT; pin_pupd = GPIO_PUPD_PULLUP; #else @@ -506,7 +506,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) break; case PIN_MODE_INPUT_PULLDOWN: /* input setting: pull down. */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x pin_mode = GPIO_MODE_INPUT; pin_pupd = GPIO_PUPD_PULLDOWN; #else @@ -523,7 +523,7 @@ static void gd32_pin_mode(rt_device_t dev, rt_base_t pin, rt_uint8_t mode) { gpio_output_options_set(index->gpio_periph, pin_odpp, GPIO_OSPEED_50MHZ, index->pin); } -#elif defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E +#elif (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E gpio_mode_set(index->gpio_periph, pin_mode, pin_pupd, index->pin); if (pin_mode == GPIO_MODE_OUTPUT) { @@ -743,7 +743,7 @@ static rt_err_t gd32_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_ return -RT_EINVAL; } -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx rcu_periph_clock_enable(RCU_SYSCFG); #elif defined SOC_SERIES_GD32E23x rcu_periph_clock_enable(RCU_CFGCMP); @@ -758,7 +758,7 @@ static rt_err_t gd32_pin_irq_enable(struct rt_device *device, rt_base_t pin, rt_ nvic_irq_enable(irqmap->irqno, 5U, 0U); #endif /* connect EXTI line to GPIO pin */ -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x +#if defined SOC_SERIES_GD32F4xx || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x syscfg_exti_line_config(index->port_src, index->pin_src); #else gpio_exti_source_select(index->port_src, index->pin_src); @@ -817,7 +817,7 @@ rt_inline void pin_irq_hdr(int irqno) */ void GD32_GPIO_EXTI_IRQHandler(rt_int8_t exti_line) { -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) exti_line_enum pin_exti_line = exti_line; #else exti_line_enum pin_exti_line = 1 << exti_line; diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h index a79efc7d9c6..828dbf8c5a0 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_gpio.h @@ -27,7 +27,9 @@ extern "C" { #include "gd32f30x_gpio.h" #elif defined SOC_SERIES_GD32F4xx #include "gd32f4xx_gpio.h" -#elif defined SOC_SERIES_GD32H7xx +#elif defined SOC_SERIES_GD32H77x_H78X +#include "gd32h77x_78x_gpio.h" +#elif (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) #include "gd32h7xx_gpio.h" #elif defined SOC_SERIES_GD32H75e #include "gd32h75e_gpio.h" @@ -41,7 +43,7 @@ extern "C" { #define __GD32_PORT(port) GPIO##port -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x || defined SOC_SERIES_GD32H75E || defined SOC_SERIES_GD32H7xx +#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32F5xx || defined SOC_SERIES_GD32E23x || defined SOC_SERIES_GD32H75E || (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) #define GD32_PIN(index, port, pin) {index, RCU_GPIO##port, \ GPIO##port, GPIO_PIN_##pin, \ EXTI_SOURCE_GPIO##port, \ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c index 5cb9d6b9dd6..834cc0b8e4b 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.c @@ -25,7 +25,7 @@ #if defined(SOC_SERIES_GD32E50x) || defined(SOC_SERIES_GD32F10x) || defined(SOC_SERIES_GD32F20x) || defined(SOC_SERIES_GD32F30x) #define GPIO_OSPEED GPIO_OSPEED_50MHZ -#elif defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#elif (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) #define GPIO_OTYPE GPIO_OTYPE_PP #define GPIO_OSPEED GPIO_OSPEED_60MHZ #elif defined(SOC_SERIES_GD32F4xx) || defined(SOC_SERIES_GD32F5xx) || defined(SOC_SERIES_GD32E23x) @@ -52,7 +52,7 @@ struct rt_serial_device serial0; gd32_uart_dma uart0_rxdma = { DMA0, DMA_CH0, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART0_RX, #endif DMA_INTF_FTFIF, @@ -62,7 +62,7 @@ gd32_uart_dma uart0_rxdma = { gd32_uart_dma uart0_txdma = { DMA1, DMA_CH0, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART0_TX, #endif DMA_INTF_FTFIF, @@ -116,7 +116,7 @@ struct rt_serial_device serial1; gd32_uart_dma uart1_rxdma = { DMA0, DMA_CH1, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART1_RX, #endif DMA_INTF_FTFIF, @@ -156,7 +156,7 @@ struct rt_serial_device serial2; gd32_uart_dma uart2_rxdma = { DMA0, DMA_CH2, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART2_RX, #endif DMA_INTF_FTFIF, @@ -166,7 +166,7 @@ gd32_uart_dma uart2_rxdma = { gd32_uart_dma uart2_txdma = { DMA1, DMA_CH2, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART2_TX, #endif DMA_INTF_FTFIF, @@ -220,7 +220,7 @@ struct rt_serial_device serial3; gd32_uart_dma uart3_rxdma = { DMA0, DMA_CH3, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_UART3_RX, #endif DMA_INTF_FTFIF, @@ -260,7 +260,7 @@ struct rt_serial_device serial4; gd32_uart_dma uart4_rxdma = { DMA0, DMA_CH4, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_UART4_RX, #endif DMA_INTF_FTFIF, @@ -299,7 +299,7 @@ struct rt_serial_device serial5; gd32_uart_dma uart5_rxdma = { DMA0, DMA_CH5, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_USART5_RX, #endif DMA_INTF_FTFIF, @@ -339,7 +339,7 @@ struct rt_serial_device serial6; gd32_uart_dma uart6_rxdma = { DMA0, DMA_CH6, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_UART6_RX, #endif DMA_INTF_FTFIF, @@ -379,7 +379,7 @@ struct rt_serial_device serial7; gd32_uart_dma uart7_rxdma = { DMA0, DMA_CH7, -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) DMA_REQUEST_UART7_RX, #endif DMA_INTF_FTFIF, diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h index 8257a879dd3..95fe7b34bc0 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_usart.h @@ -35,7 +35,7 @@ typedef struct uint32_t dma_periph; /* dma channel */ dma_channel_enum dma_ch; -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H75E) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) /* rx dma request */ uint32_t dma_mux_req_rx; #endif From 39680907a23149137a82ef2ef9c42c100c8b67f9 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:02:37 +0800 Subject: [PATCH 02/19] [bsp][gd32] Add GD32H77D Ethernet support Add the ENET1 RMII adapter under libraries/gd32_drivers and select it with SOC_SERIES_GD32H77x_H78X and BSP_USING_ETH. Let the peripheral package select manufacturer sources. The PHY and e0 device were detected on GinoPi. Link-up and network traffic still require a connected network. --- .../arm/libraries/gd32_drivers/SConscript | 4 + .../arm/libraries/gd32_drivers/drv_enet.c | 797 ++++++++++++++++++ 2 files changed, 801 insertions(+) create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/drv_enet.c diff --git a/bsp/gd32/arm/libraries/gd32_drivers/SConscript b/bsp/gd32/arm/libraries/gd32_drivers/SConscript index d10212978d2..3d0ef2207c7 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/SConscript +++ b/bsp/gd32/arm/libraries/gd32_drivers/SConscript @@ -60,6 +60,10 @@ if GetDepend('RT_USING_PWM'): if GetDepend('RT_USING_CAN'): src += ['drv_can.c'] +# add ethernet drivers. +if GetDepend(['SOC_SERIES_GD32H77x_H78X', 'BSP_USING_ETH']): + src += ['drv_enet.c'] + # add sdram drivers. if GetDepend('BSP_USING_SDRAM'): src += ['drv_sdram.c'] diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_enet.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_enet.c new file mode 100644 index 00000000000..9ebc258cc0d --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_enet.c @@ -0,0 +1,797 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(BSP_USING_ETH) + +#include +#include +#include "gd32h77x_78x_enet.h" + +#define DBG_TAG "drv.enet" +#define DBG_LVL DBG_INFO +#include + +#define ENET_DEVICE_NAME "e0" +#define ENET_PERIPH ENET1 +#define ENET_PHY_ADDR_INVALID 0xFFU +#define ENET_PHY_ID1_REG 2U +#define ENET_PHY_ID2_REG 3U +#define ENET_PHY_ANAR_REG 4U +#define ENET_PHY_ANLPAR_REG 5U +#define ENET_PHY_EXT_DATA_REG 0x0DU +#define ENET_PHY_EXT_ADDR_REG 0x0EU +#define ENET_PHY_LED_CTRL0_EXT 0x1E33U +#define ENET_PHY_LED_MODE_MASK 0x0070U +#define ENET_PHY_GD30PH201D_ID1 0xADB4U +#define ENET_PHY_GD30PH201D_ID2 0x0400U +#define ENET_PHY_GD30PH201D_ID2_MASK 0xFFF0U +#define ENET_PHY_AN_10_HALF (1U << 5) +#define ENET_PHY_AN_10_FULL (1U << 6) +#define ENET_PHY_AN_100_HALF (1U << 7) +#define ENET_PHY_AN_100_FULL (1U << 8) +#define ENET_PHY_POLL_TICKS RT_TICK_PER_SECOND +#define ENET_TX_WAIT_TICKS RT_TICK_PER_SECOND +#define ENET_DMA_RAM_BASE 0x30004000U +#define ENET_DMA_RAM_SIZE 0x00004000U +#define ENET_DMA_STATUS_W1C 0x0001E7FFU + +#ifdef RT_LWIP_USING_HW_CHECKSUM +#define ENET_RX_CHECKSUM_MODE ENET_AUTOCHECKSUM_DROP_FAILFRAMES +#define ENET_TX_CHECKSUM_MODE ENET_CHECKSUM_TCPUDPICMP_FULL +#else +#define ENET_RX_CHECKSUM_MODE ENET_NO_AUTOCHECKSUM +#define ENET_TX_CHECKSUM_MODE ENET_CHECKSUM_DISABLE +#endif + +struct gd32_enet_dma +{ + volatile enet_descriptors_struct rx_desc[ENET_RXBUF_NUM]; + volatile enet_descriptors_struct tx_desc[ENET_TXBUF_NUM]; + volatile rt_uint8_t rx_buffer[ENET_RXBUF_NUM][ENET_RXBUF_SIZE]; + volatile rt_uint8_t tx_buffer[ENET_TXBUF_NUM][ENET_TXBUF_SIZE]; +}; + +struct gd32_enet +{ + struct eth_device parent; + rt_uint8_t mac[6]; + rt_uint8_t phy_addr; + rt_bool_t link_up; + rt_uint32_t media_mode; + volatile rt_uint32_t dma_error_status; + struct rt_mutex tx_lock; + volatile enet_descriptors_struct *rx_desc; + volatile enet_descriptors_struct *tx_desc; +}; + +static struct gd32_enet gd32_enet_device; +static struct gd32_enet_dma gd32_enet_dma + __attribute__((section(".enet_dma"), aligned(32))); + +typedef char gd32_enet_dma_size_check[ + (sizeof(struct gd32_enet_dma) <= ENET_DMA_RAM_SIZE) ? 1 : -1]; + +static void enet_tx_desc_reset(void) +{ + rt_uint32_t index; + + rt_memset((void *)&gd32_enet_dma.tx_desc[0], 0, sizeof(gd32_enet_dma.tx_desc)); + for (index = 0; index < ENET_TXBUF_NUM; index++) + { + volatile enet_descriptors_struct *desc = &gd32_enet_dma.tx_desc[index]; + + desc->status = ENET_TDES0_TCHM; + desc->buffer1_addr = (rt_uint32_t)&gd32_enet_dma.tx_buffer[index][0]; + desc->buffer2_next_desc_addr = (rt_uint32_t)&gd32_enet_dma.tx_desc[ + (index + 1U) % ENET_TXBUF_NUM]; + } + + gd32_enet_device.tx_desc = &gd32_enet_dma.tx_desc[0]; + __DMB(); + ENET_DMA_TDTADDR(ENET_PERIPH) = (rt_uint32_t)&gd32_enet_dma.tx_desc[0]; + __DSB(); +} + +static rt_err_t enet_tx_stop(void) +{ + rt_tick_t start; + + enet_tx_disable(ENET_PERIPH); + start = rt_tick_get(); + while (GET_DMA_STAT_TP(ENET_DMA_STAT(ENET_PERIPH)) != 0U) + { + if ((rt_tick_get() - start) >= rt_tick_from_millisecond(100)) + { + return -RT_ETIMEOUT; + } + rt_thread_mdelay(1); + } + + return RT_EOK; +} + +static void enet_gpio_config(void) +{ + rcu_periph_clock_enable(RCU_GPIOC); + rcu_periph_clock_enable(RCU_GPIOD); + rcu_periph_clock_enable(RCU_GPIOG); + rcu_periph_clock_enable(RCU_SYSCFG); + + syscfg_enet_phy_interface_config(ENET_PERIPH, SYSCFG_ENET_PHY_RMII); + + /* PC12: REF_CLK, PC6: MDIO, PC7: TX_EN. */ + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_12); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_12); + gpio_af_set(GPIOC, GPIO_AF_3, GPIO_PIN_12); + gpio_af_set(GPIOC, GPIO_AF_6, GPIO_PIN_6); + gpio_af_set(GPIOC, GPIO_AF_0, GPIO_PIN_7); + + /* PD2: CRS_DV, PD4: RXD0, PD5: RXD1. */ + gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5); + gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5); + gpio_af_set(GPIOD, GPIO_AF_6, GPIO_PIN_2 | GPIO_PIN_5); + gpio_af_set(GPIOD, GPIO_AF_9, GPIO_PIN_4); + + /* PG6: MDC, PG13: TXD0, PG14: TXD1. */ + gpio_mode_set(GPIOG, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_6 | GPIO_PIN_13 | GPIO_PIN_14); + gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_6 | GPIO_PIN_13 | GPIO_PIN_14); + gpio_af_set(GPIOG, GPIO_AF_6, GPIO_PIN_6 | GPIO_PIN_13 | GPIO_PIN_14); +} + +static void enet_dma_mpu_config(void) +{ + mpu_region_init_struct mpu_config; + + SCB_CleanInvalidateDCache_by_Addr((uint32_t *)ENET_DMA_RAM_BASE, + ENET_DMA_RAM_SIZE); + ARM_MPU_Disable(); + + mpu_region_struct_para_init(&mpu_config); + mpu_config.region_base_address = ENET_DMA_RAM_BASE; + mpu_config.region_size = MPU_REGION_SIZE_16KB; + mpu_config.access_permission = MPU_AP_FULL_ACCESS; + /* Normal non-cacheable memory permits optimized CPU copies and stays DMA coherent. */ + mpu_config.access_bufferable = MPU_ACCESS_NON_BUFFERABLE; + mpu_config.access_cacheable = MPU_ACCESS_NON_CACHEABLE; + mpu_config.access_shareable = MPU_ACCESS_SHAREABLE; + mpu_config.region_number = MPU_REGION_NUMBER7; + mpu_config.subregion_disable = MPU_SUBREGION_ENABLE; + mpu_config.instruction_exec = MPU_INSTRUCTION_EXEC_NOT_PERMIT; + mpu_config.tex_type = MPU_TEX_TYPE1; + mpu_region_config(&mpu_config); + mpu_region_enable(); + + ARM_MPU_Enable(MPU_MODE_PRIV_DEFAULT); +} + +static void enet_dma_desc_init(void) +{ + rt_uint32_t index; + + rt_memset(&gd32_enet_dma, 0, sizeof(gd32_enet_dma)); + + for (index = 0; index < ENET_RXBUF_NUM; index++) + { + volatile enet_descriptors_struct *desc = &gd32_enet_dma.rx_desc[index]; + + desc->status = ENET_RDES0_DAV; + desc->control_buffer_size = ENET_RDES1_RCHM | ENET_RXBUF_SIZE; + desc->buffer1_addr = (rt_uint32_t)&gd32_enet_dma.rx_buffer[index][0]; + desc->buffer2_next_desc_addr = (rt_uint32_t)&gd32_enet_dma.rx_desc[ + (index + 1U) % ENET_RXBUF_NUM]; + } + + gd32_enet_device.rx_desc = &gd32_enet_dma.rx_desc[0]; + __DMB(); + ENET_DMA_RDTADDR(ENET_PERIPH) = (rt_uint32_t)&gd32_enet_dma.rx_desc[0]; + enet_tx_desc_reset(); +} + +static rt_err_t enet_phy_read(rt_uint8_t address, rt_uint8_t reg, rt_uint16_t *value) +{ + return enet_phy_write_read(ENET_PERIPH, ENET_PHY_READ, address, reg, value) == SUCCESS + ? RT_EOK : -RT_ERROR; +} + +static rt_err_t enet_phy_write(rt_uint8_t address, rt_uint8_t reg, rt_uint16_t value) +{ + return enet_phy_write_read(ENET_PERIPH, ENET_PHY_WRITE, address, reg, &value) == SUCCESS + ? RT_EOK : -RT_ERROR; +} + +static rt_err_t enet_phy_ext_read(rt_uint8_t address, rt_uint16_t reg, rt_uint16_t *value) +{ + if (enet_phy_write(address, ENET_PHY_EXT_ADDR_REG, reg) != RT_EOK) + { + return -RT_ERROR; + } + + return enet_phy_read(address, ENET_PHY_EXT_DATA_REG, value); +} + +static rt_err_t enet_phy_ext_write(rt_uint8_t address, rt_uint16_t reg, rt_uint16_t value) +{ + if (enet_phy_write(address, ENET_PHY_EXT_ADDR_REG, reg) != RT_EOK) + { + return -RT_ERROR; + } + + return enet_phy_write(address, ENET_PHY_EXT_DATA_REG, value); +} + +static rt_err_t enet_phy_gd30ph201d_led_mode_init(rt_uint8_t address) +{ + rt_uint16_t id1; + rt_uint16_t id2; + rt_uint16_t value; + + if ((enet_phy_read(address, ENET_PHY_ID1_REG, &id1) != RT_EOK) || + (enet_phy_read(address, ENET_PHY_ID2_REG, &id2) != RT_EOK)) + { + return -RT_ERROR; + } + + if ((id1 != ENET_PHY_GD30PH201D_ID1) || + ((id2 & ENET_PHY_GD30PH201D_ID2_MASK) != ENET_PHY_GD30PH201D_ID2)) + { + return RT_EOK; + } + + if (enet_phy_ext_read(address, ENET_PHY_LED_CTRL0_EXT, &value) != RT_EOK) + { + return -RT_ERROR; + } + value &= (rt_uint16_t)~ENET_PHY_LED_MODE_MASK; + + return enet_phy_ext_write(address, ENET_PHY_LED_CTRL0_EXT, value); +} + +static rt_bool_t enet_phy_address_valid(rt_uint8_t address) +{ + rt_uint16_t id1; + rt_uint16_t id2; + + if ((enet_phy_read(address, ENET_PHY_ID1_REG, &id1) != RT_EOK) || + (enet_phy_read(address, ENET_PHY_ID2_REG, &id2) != RT_EOK)) + { + return RT_FALSE; + } + + return !((id1 == 0U && id2 == 0U) || + (id1 == 0xFFFFU && id2 == 0xFFFFU)); +} + +static rt_uint8_t enet_phy_detect(void) +{ + rt_uint8_t address; + + if (enet_phy_address_valid(BSP_ENET_PHY_ADDR)) + { + return BSP_ENET_PHY_ADDR; + } + + for (address = 0; address < 32U; address++) + { + if ((address != BSP_ENET_PHY_ADDR) && enet_phy_address_valid(address)) + { + return address; + } + } + + return ENET_PHY_ADDR_INVALID; +} + +static rt_err_t enet_phy_restart_autonegotiation(rt_uint8_t address) +{ + rt_tick_t start; + rt_uint16_t value; + + if (enet_phy_write(address, PHY_REG_BCR, PHY_RESET) != RT_EOK) + { + return -RT_ERROR; + } + + start = rt_tick_get(); + do + { + if ((enet_phy_read(address, PHY_REG_BCR, &value) == RT_EOK) && + ((value & PHY_RESET) == 0U)) + { + if (enet_phy_gd30ph201d_led_mode_init(address) != RT_EOK) + { + LOG_W("GD30PH201D LED mode configuration failed"); + } + + return enet_phy_write(address, PHY_REG_BCR, + PHY_AUTONEGOTIATION | PHY_RESTART_AUTONEGOTIATION); + } + rt_thread_mdelay(10); + } while ((rt_tick_get() - start) < (RT_TICK_PER_SECOND * 2U)); + + return -RT_ETIMEOUT; +} + +static rt_err_t enet_phy_media_mode(rt_uint8_t address, rt_uint32_t *mode) +{ + rt_uint16_t advertise; + rt_uint16_t partner; + rt_uint16_t common; + + if ((enet_phy_read(address, ENET_PHY_ANAR_REG, &advertise) != RT_EOK) || + (enet_phy_read(address, ENET_PHY_ANLPAR_REG, &partner) != RT_EOK)) + { + return -RT_ERROR; + } + common = advertise & partner; + + if (common & ENET_PHY_AN_100_FULL) + { + *mode = ENET_100M_FULLDUPLEX; + } + else if (common & ENET_PHY_AN_100_HALF) + { + *mode = ENET_100M_HALFDUPLEX; + } + else if (common & ENET_PHY_AN_10_FULL) + { + *mode = ENET_10M_FULLDUPLEX; + } + else if (common & ENET_PHY_AN_10_HALF) + { + *mode = ENET_10M_HALFDUPLEX; + } + else + { + return -RT_ERROR; + } + + return RT_EOK; +} + +static rt_err_t enet_media_mode_set(rt_uint32_t mode) +{ + if (rt_mutex_take(&gd32_enet_device.tx_lock, ENET_TX_WAIT_TICKS) != RT_EOK) + { + return -RT_ETIMEOUT; + } + + if (enet_tx_stop() != RT_EOK) + { + rt_mutex_release(&gd32_enet_device.tx_lock); + return -RT_ETIMEOUT; + } + enet_rx_disable(ENET_PERIPH); + enet_tx_desc_reset(); + ENET_MAC_CFG(ENET_PERIPH) &= ~(ENET_MAC_CFG_SPD | ENET_MAC_CFG_DPM); + ENET_MAC_CFG(ENET_PERIPH) |= mode; + enet_rx_enable(ENET_PERIPH); + enet_tx_enable(ENET_PERIPH); + gd32_enet_device.media_mode = mode; + rt_mutex_release(&gd32_enet_device.tx_lock); + + return RT_EOK; +} + +static void enet_link_disable(void) +{ + if (rt_mutex_take(&gd32_enet_device.tx_lock, ENET_TX_WAIT_TICKS) != RT_EOK) + { + return; + } + + gd32_enet_device.link_up = RT_FALSE; + if (enet_tx_stop() != RT_EOK) + { + LOG_E("TX DMA stop timed out"); + enet_rx_disable(ENET_PERIPH); + rt_mutex_release(&gd32_enet_device.tx_lock); + return; + } + enet_rx_disable(ENET_PERIPH); + enet_tx_desc_reset(); + rt_mutex_release(&gd32_enet_device.tx_lock); +} + +static void enet_phy_monitor(void *parameter) +{ + rt_uint16_t status = 0; + rt_bool_t link_up; + rt_uint32_t dma_error_status; + + (void)parameter; + + while (gd32_enet_device.phy_addr == ENET_PHY_ADDR_INVALID) + { + gd32_enet_device.phy_addr = enet_phy_detect(); + if (gd32_enet_device.phy_addr == ENET_PHY_ADDR_INVALID) + { + LOG_E("no PHY found, check RMII clock and MDIO/MDC wiring"); + rt_thread_mdelay(2000); + } + } + + LOG_I("PHY found at address %u", gd32_enet_device.phy_addr); + if (enet_phy_restart_autonegotiation(gd32_enet_device.phy_addr) != RT_EOK) + { + LOG_E("PHY reset or auto-negotiation start failed"); + } + + while (1) + { + rt_base_t level; + + level = rt_hw_interrupt_disable(); + dma_error_status = gd32_enet_device.dma_error_status; + gd32_enet_device.dma_error_status = 0U; + rt_hw_interrupt_enable(level); + if (dma_error_status != 0U) + { + LOG_E("DMA fatal bus error, status: 0x%08x", dma_error_status); + } + + /* BSR link status is latch-low, so it must be read twice. */ + if (enet_phy_read(gd32_enet_device.phy_addr, PHY_REG_BSR, &status) != RT_EOK) + { + link_up = RT_FALSE; + } + else + { + link_up = (status & PHY_LINKED_STATUS) ? RT_TRUE : RT_FALSE; + } + + link_up = link_up && (status & PHY_AUTONEGO_COMPLETE); + if (link_up) + { + rt_uint32_t mode; + + if (enet_phy_media_mode(gd32_enet_device.phy_addr, &mode) != RT_EOK) + { + link_up = RT_FALSE; + } + else if ((!gd32_enet_device.link_up) || + (mode != gd32_enet_device.media_mode)) + { + if (enet_media_mode_set(mode) != RT_EOK) + { + link_up = RT_FALSE; + } + } + } + + if (link_up != gd32_enet_device.link_up) + { + if (!link_up) + { + enet_link_disable(); + } + gd32_enet_device.link_up = link_up; + eth_device_linkchange(&gd32_enet_device.parent, link_up); + if (link_up) + { + LOG_I("link up: %sMbps %s-duplex", + (gd32_enet_device.media_mode & ENET_MAC_CFG_SPD) ? "100" : "10", + (gd32_enet_device.media_mode & ENET_MAC_CFG_DPM) ? "full" : "half"); + } + else + { + LOG_I("link down"); + } + } + + rt_thread_delay(ENET_PHY_POLL_TICKS); + } +} + +static rt_err_t gd32_enet_init(rt_device_t dev) +{ + (void)dev; + + RT_ASSERT((rt_ubase_t)&gd32_enet_dma == ENET_DMA_RAM_BASE); + enet_dma_mpu_config(); + enet_gpio_config(); + + rcu_periph_clock_enable(RCU_ENET1); + rcu_periph_clock_enable(RCU_ENET1TX); + rcu_periph_clock_enable(RCU_ENET1RX); + + enet_deinit(ENET_PERIPH); + if (enet_software_reset(ENET_PERIPH) != SUCCESS) + { + LOG_E("MAC software reset timed out"); + return -RT_ETIMEOUT; + } + if (enet_phy_config(ENET_PERIPH) != SUCCESS) + { + LOG_E("MDC clock configuration failed"); + return -RT_ERROR; + } + if (enet_init(ENET_PERIPH, ENET_100M_FULLDUPLEX, + ENET_RX_CHECKSUM_MODE, + ENET_BROADCAST_FRAMES_PASS) != SUCCESS) + { + LOG_E("MAC initialization failed"); + return -RT_ERROR; + } + + enet_mac_address_set(ENET_PERIPH, ENET_MAC_ADDRESS0, gd32_enet_device.mac); + enet_dma_desc_init(); + + ENET_DMA_STAT(ENET_PERIPH) = ENET_DMA_STATUS_W1C; + enet_interrupt_enable(ENET_PERIPH, ENET_DMA_INT_NIE); + enet_interrupt_enable(ENET_PERIPH, ENET_DMA_INT_RIE); + nvic_irq_enable(ENET1_IRQn, 5U, 0U); + + return RT_EOK; +} + +static rt_err_t gd32_enet_open(rt_device_t dev, rt_uint16_t oflag) +{ + (void)dev; + (void)oflag; + return RT_EOK; +} + +static rt_err_t gd32_enet_close(rt_device_t dev) +{ + (void)dev; + return RT_EOK; +} + +static rt_ssize_t gd32_enet_read(rt_device_t dev, rt_off_t pos, + void *buffer, rt_size_t size) +{ + (void)dev; + (void)pos; + (void)buffer; + (void)size; + return 0; +} + +static rt_ssize_t gd32_enet_write(rt_device_t dev, rt_off_t pos, + const void *buffer, rt_size_t size) +{ + (void)dev; + (void)pos; + (void)buffer; + (void)size; + return 0; +} + +static rt_err_t gd32_enet_control(rt_device_t dev, int cmd, void *args) +{ + struct gd32_enet *enet = (struct gd32_enet *)dev; + + if (cmd == NIOCTL_GADDR) + { + if (args == RT_NULL) + { + return -RT_EINVAL; + } + rt_memcpy(args, enet->mac, sizeof(enet->mac)); + return RT_EOK; + } + + return -RT_ENOSYS; +} + +static rt_err_t gd32_enet_tx(rt_device_t dev, struct pbuf *p) +{ + struct gd32_enet *enet = (struct gd32_enet *)dev; + volatile enet_descriptors_struct *desc; + struct pbuf *q; + rt_tick_t start; + rt_uint32_t offset = 0; + + if ((p == RT_NULL) || (p->tot_len > ENET_TXBUF_SIZE)) + { + return -RT_EINVAL; + } + + if (rt_mutex_take(&enet->tx_lock, ENET_TX_WAIT_TICKS) != RT_EOK) + { + return -RT_ETIMEOUT; + } + + if (!enet->link_up) + { + rt_mutex_release(&enet->tx_lock); + return -RT_EBUSY; + } + + desc = enet->tx_desc; + start = rt_tick_get(); + while (desc->status & ENET_TDES0_DAV) + { + if ((rt_tick_get() - start) >= ENET_TX_WAIT_TICKS) + { + rt_mutex_release(&enet->tx_lock); + LOG_E("TX timeout: stat=0x%08x ctl=0x%08x ctd=0x%08x desc=0x%08x", + ENET_DMA_STAT(ENET_PERIPH), ENET_DMA_CTL(ENET_PERIPH), + ENET_DMA_CTDADDR(ENET_PERIPH), (rt_uint32_t)desc); + return -RT_ETIMEOUT; + } + rt_thread_mdelay(1); + } + + for (q = p; q != RT_NULL; q = q->next) + { + rt_memcpy((void *)(desc->buffer1_addr + offset), q->payload, q->len); + offset += q->len; + } + + desc->control_buffer_size = p->tot_len; + __DMB(); + desc->status = ENET_TDES0_TCHM | ENET_TDES0_FSG | ENET_TDES0_LSG | + ENET_TX_CHECKSUM_MODE | ENET_TDES0_DAV; + __DSB(); + + if (ENET_DMA_STAT(ENET_PERIPH) & (ENET_DMA_STAT_TBU | ENET_DMA_STAT_TU)) + { + ENET_DMA_STAT(ENET_PERIPH) = ENET_DMA_STAT_TBU | ENET_DMA_STAT_TU; + } + ENET_DMA_TPEN(ENET_PERIPH) = 0U; + + enet->tx_desc = (enet_descriptors_struct *)desc->buffer2_next_desc_addr; + rt_mutex_release(&enet->tx_lock); + return RT_EOK; +} + +static struct pbuf *gd32_enet_rx(rt_device_t dev) +{ + struct gd32_enet *enet = (struct gd32_enet *)dev; + volatile enet_descriptors_struct *desc = enet->rx_desc; + struct pbuf *p = RT_NULL; + rt_uint32_t length; + + if (desc->status & ENET_RDES0_DAV) + { + return RT_NULL; + } + + if (((desc->status & ENET_RDES0_ERRS) == 0U) && + (desc->status & ENET_RDES0_FDES) && + (desc->status & ENET_RDES0_LDES)) + { + length = GET_RDES0_FRML(desc->status); + if ((length >= 4U) && (length <= ENET_RXBUF_SIZE)) + { + struct pbuf *q; + rt_uint32_t offset = 0; + + length -= 4U; + p = pbuf_alloc(PBUF_RAW, length, PBUF_POOL); + if (p != RT_NULL) + { + for (q = p; q != RT_NULL; q = q->next) + { + rt_memcpy(q->payload, + (const void *)(desc->buffer1_addr + offset), q->len); + offset += q->len; + } + } + } + } + + __DMB(); + desc->status = ENET_RDES0_DAV; + __DSB(); + enet->rx_desc = (enet_descriptors_struct *)desc->buffer2_next_desc_addr; + + if (ENET_DMA_STAT(ENET_PERIPH) & ENET_DMA_STAT_RBU) + { + ENET_DMA_STAT(ENET_PERIPH) = ENET_DMA_STAT_RBU; + ENET_DMA_RPEN(ENET_PERIPH) = 0U; + } + + return p; +} + +void ENET1_IRQHandler(void) +{ + rt_uint32_t status; + rt_uint32_t clear = 0U; + + rt_interrupt_enter(); + status = ENET_DMA_STAT(ENET_PERIPH); + + if (status & ENET_DMA_STAT_RS) + { + clear |= ENET_DMA_STAT_RS | ENET_DMA_STAT_NI; + eth_device_ready(&gd32_enet_device.parent); + } + + if (status & ENET_DMA_STAT_FBE) + { + clear |= ENET_DMA_STAT_FBE | ENET_DMA_STAT_AI; + gd32_enet_device.dma_error_status |= status; + } + ENET_DMA_STAT(ENET_PERIPH) = clear; + rt_interrupt_leave(); +} + +#ifdef RT_USING_DEVICE_OPS +static const struct rt_device_ops gd32_enet_ops = +{ + gd32_enet_init, + gd32_enet_open, + gd32_enet_close, + gd32_enet_read, + gd32_enet_write, + gd32_enet_control, +}; +#endif + +static int rt_hw_gd32_enet_init(void) +{ + rt_thread_t thread; + rt_err_t result; + struct rt_device *device = &gd32_enet_device.parent.parent; + + gd32_enet_device.mac[0] = 0x02; + gd32_enet_device.mac[1] = 0x00; + gd32_enet_device.mac[2] = 0x00; + gd32_enet_device.mac[3] = 0x77; + gd32_enet_device.mac[4] = 0x00; + gd32_enet_device.mac[5] = 0x01; + gd32_enet_device.phy_addr = ENET_PHY_ADDR_INVALID; + gd32_enet_device.link_up = RT_FALSE; + gd32_enet_device.media_mode = ENET_100M_FULLDUPLEX; + gd32_enet_device.dma_error_status = 0U; + +#ifdef RT_USING_DEVICE_OPS + device->ops = &gd32_enet_ops; +#else + device->init = gd32_enet_init; + device->open = gd32_enet_open; + device->close = gd32_enet_close; + device->read = gd32_enet_read; + device->write = gd32_enet_write; + device->control = gd32_enet_control; +#endif + device->user_data = RT_NULL; + gd32_enet_device.parent.eth_rx = gd32_enet_rx; + gd32_enet_device.parent.eth_tx = gd32_enet_tx; + + result = rt_mutex_init(&gd32_enet_device.tx_lock, "enet_tx", RT_IPC_FLAG_PRIO); + if (result != RT_EOK) + { + return result; + } + + result = eth_device_init_with_flag(&gd32_enet_device.parent, ENET_DEVICE_NAME, + NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP); + if (result != RT_EOK) + { + return result; + } + + result = rt_device_init(device); + if (result != RT_EOK) + { + LOG_E("hardware initialization failed: %d", result); + return result; + } + + thread = rt_thread_create("phy", enet_phy_monitor, RT_NULL, 1024, 20, 10); + if (thread == RT_NULL) + { + return -RT_ENOMEM; + } + rt_thread_startup(thread); + + return RT_EOK; +} +INIT_DEVICE_EXPORT(rt_hw_gd32_enet_init); + +#endif /* SOC_SERIES_GD32H77x_H78X && BSP_USING_ETH */ From 7d5e37cc62b52bd2e7becbc05d04dddc142167e1 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:02:40 +0800 Subject: [PATCH 03/19] [bsp][gd32] Add GD32H77D USB host and device support Add the USBHS0 device and USBHS1 host adapters. Gate the CDC heartbeat with an independent application option, disabled by default. USB CDC enumeration and repeated device-to-PC heartbeat data were verified on GinoPi. USB host transfers still require an attached device. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 7 + .../arm/gd32h77d-ginopi/applications/main.c | 31 + .../arm/libraries/gd32_drivers/SConscript | 23 + .../gd32_drivers/usb/drv_otghs_dev.c | 363 +++++++++ .../gd32_drivers/usb/drv_otghs_dev.h | 41 + .../gd32_drivers/usb/drv_otghs_host.c | 318 ++++++++ .../gd32_drivers/usb/drv_otghs_host.h | 37 + .../libraries/gd32_drivers/usb/drv_usb_core.c | 439 ++++++++++ .../libraries/gd32_drivers/usb/drv_usb_core.h | 369 +++++++++ .../libraries/gd32_drivers/usb/drv_usb_dev.c | 756 ++++++++++++++++++ .../libraries/gd32_drivers/usb/drv_usb_dev.h | 195 +++++ .../libraries/gd32_drivers/usb/drv_usb_host.c | 448 +++++++++++ .../libraries/gd32_drivers/usb/drv_usb_host.h | 93 +++ .../libraries/gd32_drivers/usb/drv_usb_hw.h | 40 + .../libraries/gd32_drivers/usb/drv_usb_regs.h | 728 +++++++++++++++++ .../libraries/gd32_drivers/usb/drv_usbd_int.c | 708 ++++++++++++++++ .../libraries/gd32_drivers/usb/drv_usbd_int.h | 28 + .../libraries/gd32_drivers/usb/drv_usbh_int.c | 693 ++++++++++++++++ .../libraries/gd32_drivers/usb/drv_usbh_int.h | 19 + .../gd32_drivers/usb/drv_usbh_pipe.c | 178 +++++ .../gd32_drivers/usb/drv_usbh_pipe.h | 48 ++ .../gd32_drivers/usb/drv_usbh_trans.c | 147 ++++ .../gd32_drivers/usb/drv_usbh_transc.h | 40 + .../gd32_drivers/usb/gd32h7_usb_hw.c | 592 ++++++++++++++ .../arm/libraries/gd32_drivers/usb/usb_conf.h | 102 +++ 25 files changed, 6443 insertions(+) create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_hw.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_regs.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_trans.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_transc.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/gd32h7_usb_hw.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/usb/usb_conf.h diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index 479fe88e7d5..a7fe4074413 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -1,3 +1,10 @@ menu "Applications" + config BSP_USING_USB_CDC_EXAMPLE + bool "Enable USB CDC heartbeat in main" + depends on BSP_USB_USING_DEVICE && RT_USB_DEVICE_CDC + default n + help + Send one heartbeat per second on vcom from the LED loop. + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c index 2cd0618801b..46762f12119 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/main.c @@ -15,14 +15,33 @@ /* defined the LED1 pin: PC4 */ #define LED1_PIN GET_PIN(C, 4) +#define VCOM_DEVICE_NAME "vcom" int main(void) { +#ifdef BSP_USING_USB_CDC_EXAMPLE + rt_device_t vcom; + rt_uint32_t cdc_count = 0; + char cdc_message[64]; + int cdc_length; +#endif /* set LED1 pin mode to output */ rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT); +#ifdef BSP_USING_USB_CDC_EXAMPLE + vcom = rt_device_find(VCOM_DEVICE_NAME); + if (vcom == RT_NULL) + { + rt_kprintf("cannot find %s device\n", VCOM_DEVICE_NAME); + } + else if (rt_device_open(vcom, RT_DEVICE_OFLAG_RDWR | RT_DEVICE_FLAG_INT_RX) != RT_EOK) + { + rt_kprintf("cannot open %s device\n", VCOM_DEVICE_NAME); + vcom = RT_NULL; + } +#endif while (1) { @@ -31,6 +50,18 @@ int main(void) rt_pin_write(LED1_PIN, PIN_LOW); rt_thread_mdelay(500); +#ifdef BSP_USING_USB_CDC_EXAMPLE + if (vcom != RT_NULL) + { + cdc_length = rt_snprintf(cdc_message, sizeof(cdc_message), + "GD32H77D USB CDC alive: %u\r\n", + cdc_count++); + if (cdc_length > 0) + { + rt_device_write(vcom, 0, cdc_message, (rt_size_t)cdc_length); + } + } +#endif } return RT_EOK; diff --git a/bsp/gd32/arm/libraries/gd32_drivers/SConscript b/bsp/gd32/arm/libraries/gd32_drivers/SConscript index 3d0ef2207c7..8858d4296ea 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/SConscript +++ b/bsp/gd32/arm/libraries/gd32_drivers/SConscript @@ -68,8 +68,31 @@ if GetDepend(['SOC_SERIES_GD32H77x_H78X', 'BSP_USING_ETH']): if GetDepend('BSP_USING_SDRAM'): src += ['drv_sdram.c'] +# add USBHS device and/or host drivers. +if GetDepend('BSP_USING_USB'): + src += [ + 'usb/drv_usb_core.c', + 'usb/gd32h7_usb_hw.c', + ] + + if GetDepend('BSP_USB_USING_DEVICE'): + src += [ + 'usb/drv_otghs_dev.c', + 'usb/drv_usb_dev.c', + 'usb/drv_usbd_int.c', + ] + if GetDepend('BSP_USB_USING_HOST'): + src += [ + 'usb/drv_otghs_host.c', + 'usb/drv_usb_host.c', + 'usb/drv_usbh_int.c', + 'usb/drv_usbh_pipe.c', + 'usb/drv_usbh_trans.c', + ] + path = [cwd] path += [cwd + "/config"] +path += [cwd + "/usb"] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.c new file mode 100644 index 00000000000..cbe501fa8a4 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.c @@ -0,0 +1,363 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_otghs_dev.h" +#include +#include +#include "board.h" +#include "drv_usb_hw.h" + +#ifdef RT_USING_FINSH +#include +#endif + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_DEVICE) + +usb_core_driver gd_usb_device_core; +#define gd_usb_core gd_usb_device_core + +static struct udcd _gd_udc; + +volatile rt_uint32_t gd_usb_irq_count; +volatile rt_uint32_t gd_usb_reset_count; +volatile rt_uint32_t gd_usb_enum_count; +volatile rt_uint32_t gd_usb_setup_count; +volatile rt_uint32_t gd_usb_ep0_in_count; +volatile rt_uint32_t gd_usb_ep0_out_count; +volatile rt_uint32_t gd_usb_rxfifo_count; +volatile rt_uint32_t gd_usb_setup_rx_count; +volatile rt_uint32_t gd_usb_last_rx_status; + +#if defined(BSP_USB_DEVICE_USING_FS) +static struct ep_id _ep_pool[] = { + { 0x0, USB_EP_ATTR_CONTROL, USB_DIR_INOUT, 64, ID_ASSIGNED }, + { 0x1, USB_EP_ATTR_BULK, USB_DIR_IN, 64, ID_UNASSIGNED }, + { 0x1, USB_EP_ATTR_BULK, USB_DIR_OUT, 64, ID_UNASSIGNED }, + { 0x2, USB_EP_ATTR_INT, USB_DIR_IN, 64, ID_UNASSIGNED }, + { 0x2, USB_EP_ATTR_INT, USB_DIR_OUT, 64, ID_UNASSIGNED }, + { 0x3, USB_EP_ATTR_BULK, USB_DIR_IN, 64, ID_UNASSIGNED }, + { 0x3, USB_EP_ATTR_BULK, USB_DIR_OUT, 64, ID_UNASSIGNED }, + { 0xFF, USB_EP_ATTR_TYPE_MASK, USB_DIR_MASK, 0, ID_ASSIGNED }, +}; +#elif defined(BSP_USB_DEVICE_USING_HS) +static struct ep_id _ep_pool[] = { + { 0x0, USB_EP_ATTR_CONTROL, USB_DIR_INOUT, 64, ID_ASSIGNED }, + { 0x1, USB_EP_ATTR_BULK, USB_DIR_IN, 64, ID_UNASSIGNED }, + { 0x1, USB_EP_ATTR_BULK, USB_DIR_OUT, 512, ID_UNASSIGNED }, + { 0x2, USB_EP_ATTR_INT, USB_DIR_IN, 512, ID_UNASSIGNED }, + { 0x2, USB_EP_ATTR_INT, USB_DIR_OUT, 512, ID_UNASSIGNED }, + { 0x3, USB_EP_ATTR_BULK, USB_DIR_IN, 512, ID_UNASSIGNED }, + { 0x3, USB_EP_ATTR_BULK, USB_DIR_OUT, 512, ID_UNASSIGNED }, + { 0xFF, USB_EP_ATTR_TYPE_MASK, USB_DIR_MASK, 0, ID_ASSIGNED }, +}; +#endif + +void usbd_reset_callback(void) +{ + gd_usb_reset_count++; + rt_usbd_reset_handler(&_gd_udc); +} + +void usbd_setup_stage_callback(struct urequest *setup_packet) +{ + gd_usb_setup_count++; + rt_usbd_ep0_setup_handler(&_gd_udc, setup_packet); +} + +void usbd_data_in_stage_callback(uint8_t epnum, uint16_t data_count) +{ + if (epnum == 0) + { + gd_usb_ep0_in_count++; + rt_usbd_ep0_in_handler(&_gd_udc); + } + else + { + rt_usbd_ep_in_handler(&_gd_udc, 0x80 | epnum, data_count); + } +} + +void usbd_connect_callback(void) +{ + rt_usbd_connect_handler(&_gd_udc); +} + +void usbd_sof_callback(void) +{ + rt_usbd_sof_handler(&_gd_udc); +} + +void usbd_disconnect_callback(void) +{ + rt_usbd_disconnect_handler(&_gd_udc); +} + +void usbd_data_out_stage_callback(uint8_t epnum, uint16_t data_count) +{ + if (epnum == 0) + { + gd_usb_ep0_out_count++; + rt_usbd_ep0_out_handler(&_gd_udc, data_count); + } + else + { + rt_usbd_ep_out_handler(&_gd_udc, epnum, data_count); + } +} + +void usbd_set_connection_state(uint8_t state) +{ + if (state == 1) + { + usb_dev_connect(&gd_usb_core); + + usb_mdelay(3); + } + else + { + usb_dev_disconnect(&gd_usb_core); + + usb_mdelay(3); + } +} + +static rt_err_t _ep_set_stall(rt_uint8_t address) +{ + usb_ep_stall(&gd_usb_core, address); + + return RT_EOK; +} + +static rt_err_t _ep_clear_stall(rt_uint8_t address) +{ + usb_ep_clrstall(&gd_usb_core, address); + + return RT_EOK; +} + +static rt_err_t _set_address(rt_uint8_t address) +{ + usb_devaddr_set(&gd_usb_core, address); + + return RT_EOK; +} + +static rt_err_t _set_config(rt_uint8_t address) +{ + return RT_EOK; +} + +static rt_err_t _ep_enable(uep_t ep) +{ + RT_ASSERT(ep != RT_NULL); + RT_ASSERT(ep->ep_desc != RT_NULL); + + usb_ep_active(&gd_usb_core, + ep->ep_desc->bEndpointAddress, + ep->ep_desc->wMaxPacketSize, + ep->ep_desc->bmAttributes); + + return RT_EOK; +} + +static rt_err_t _ep_disable(uep_t ep) +{ + RT_ASSERT(ep != RT_NULL); + RT_ASSERT(ep->ep_desc != RT_NULL); + + usb_ep_deactivate(&gd_usb_core, ep->ep_desc->bEndpointAddress); + + return RT_EOK; +} + +static rt_ssize_t _ep_read(rt_uint8_t address, void *buffer) +{ + rt_size_t size = 0; + RT_ASSERT(buffer != RT_NULL); + + return size; +} + +static rt_ssize_t _ep_read_prepare(rt_uint8_t address, void *buffer, rt_size_t size) +{ + usb_ep_outxfer(&gd_usb_core, address, buffer, size); + + return size; +} + +static rt_ssize_t _ep_write(rt_uint8_t address, void *buffer, rt_size_t size) +{ + usb_ep_inxfer(&gd_usb_core, address, buffer, size); + + return size; +} + +static rt_err_t _ep0_send_status(void) +{ + usb_ep_inxfer(&gd_usb_core, 0, NULL, 0); + + usb_ctlep_startout(&gd_usb_core); + + return RT_EOK; +} + +static rt_err_t _suspend(void) +{ + return RT_EOK; +} + +static rt_err_t _wakeup(void) +{ + return RT_EOK; +} + +static rt_err_t _init(rt_device_t device) +{ + usb_rcu_config(USBHS0); + +#if defined(BSP_USB_DEVICE_USING_HS) + usb_para_init(&gd_usb_core, USBHS0, USB_SPEED_HIGH, DEVICE_MODE); +#else + usb_para_init(&gd_usb_core, USBHS0, USB_SPEED_FULL, DEVICE_MODE); +#endif + + /* configure USB capabilites */ + usb_basic_init(&gd_usb_core.bp, &gd_usb_core.regs); + + usb_globalint_disable(&gd_usb_core.regs); + + /* initailizes the USB core*/ + usb_core_init(gd_usb_core.bp, &gd_usb_core.regs); + + /* set device disconnect */ + usbd_set_connection_state(0); + + usb_curmode_set(&gd_usb_core.regs, DEVICE_MODE); + + /* initailizes device mode */ + usb_devcore_init(&gd_usb_core); + +#if defined(BSP_USB_DEVICE_USING_HS) + pllusb_rcu_config(USBHS0); +#endif + + usb_intr_config(USBHS0); + + usb_globalint_enable(&gd_usb_core.regs); + + /* connect only after the PHY clock and interrupt are ready */ + usbd_set_connection_state(1); + + return RT_EOK; +} + +const static struct udcd_ops _udc_ops = { + _set_address, + _set_config, + _ep_set_stall, + _ep_clear_stall, + _ep_enable, + _ep_disable, + _ep_read_prepare, + _ep_read, + _ep_write, + _ep0_send_status, + _suspend, + _wakeup, +}; + +int gd_usbd_register(void) +{ + rt_memset((void *)&_gd_udc, 0, sizeof(struct udcd)); + _gd_udc.parent.type = RT_Device_Class_USBDevice; + _gd_udc.parent.init = _init; + _gd_udc.parent.user_data = NULL; + _gd_udc.ops = &_udc_ops; + /* Register endpoint infomation */ + _gd_udc.ep_pool = _ep_pool; + _gd_udc.ep0.id = &_ep_pool[0]; + + rt_device_register((rt_device_t)&_gd_udc, "usbd", 0); + rt_usb_device_init(); + return RT_EOK; +} +INIT_DEVICE_EXPORT(gd_usbd_register); + +#ifdef RT_USING_FINSH +static void usbstat(void) +{ + rt_kprintf("usb irq=%u reset=%u enum=%u setup=%u ep0in=%u ep0out=%u\n", + gd_usb_irq_count, gd_usb_reset_count, gd_usb_enum_count, + gd_usb_setup_count, gd_usb_ep0_in_count, gd_usb_ep0_out_count); + rt_kprintf("rx fifo=%u setup=%u last=%08x\n", + gd_usb_rxfifo_count, gd_usb_setup_rx_count, gd_usb_last_rx_status); + rt_kprintf("core GAHBCS=%08x GUSBCS=%08x GINTF=%08x GINTEN=%08x\n", + gd_usb_core.regs.gr->GAHBCS, gd_usb_core.regs.gr->GUSBCS, + gd_usb_core.regs.gr->GINTF, gd_usb_core.regs.gr->GINTEN); + rt_kprintf("fifo GRSTCTL=%08x GRFLEN=%08x TX0=%08x GCCFG=%08x GOTGCS=%08x\n", + gd_usb_core.regs.gr->GRSTCTL, gd_usb_core.regs.gr->GRFLEN, + gd_usb_core.regs.gr->DIEP0TFLEN_HNPTFLEN, + gd_usb_core.regs.gr->GCCFG, gd_usb_core.regs.gr->GOTGCS); + rt_kprintf("dev DCFG=%08x DCTL=%08x DSTAT=%08x DAEPINT=%08x DAEPINTEN=%08x\n", + gd_usb_core.regs.dr->DCFG, gd_usb_core.regs.dr->DCTL, + gd_usb_core.regs.dr->DSTAT, gd_usb_core.regs.dr->DAEPINT, + gd_usb_core.regs.dr->DAEPINTEN); + rt_kprintf("ep0o CTL=%08x LEN=%08x INTF=%08x\n", + gd_usb_core.regs.er_out[0]->DOEPCTL, + gd_usb_core.regs.er_out[0]->DOEPLEN, + gd_usb_core.regs.er_out[0]->DOEPINTF); + rt_kprintf("ep0i CTL=%08x LEN=%08x INTF=%08x\n", + gd_usb_core.regs.er_in[0]->DIEPCTL, + gd_usb_core.regs.er_in[0]->DIEPLEN, + gd_usb_core.regs.er_in[0]->DIEPINTF); + rt_kprintf("nvic enable=%u pending=%u active=%u pll=%08x\n", + NVIC_GetEnableIRQ(USBHS0_IRQn), NVIC_GetPendingIRQ(USBHS0_IRQn), + NVIC_GetActive(USBHS0_IRQn), RCU_ADDCTL1); +} +MSH_CMD_EXPORT(usbstat, show USB device enumeration status); +#endif + +#ifdef RT_USB_DEVICE_HID + +void usbd_hid_send(uint8_t *buffer, uint16_t size) +{ + struct hid_s + { + struct rt_device parent; + struct ufunction *func; + uep_t ep_in; + uep_t ep_out; + int status; + rt_uint16_t protocol; + rt_uint8_t report_buf[64]; + struct rt_messagequeue hid_mq; + }; + + udevice_t device = RT_NULL; + uintf_t intf; + ufunction_t func; + + struct hid_s *hiddev; + + device = rt_usbd_find_device(&_gd_udc); + + intf = rt_usbd_find_interface(device, 0, &func); + + if (RT_NULL != intf) + { + hiddev = (struct hid_s *)func->user_data; + + hiddev->parent.write(&hiddev->parent, 0, buffer, size); + } +} + +#endif + +#endif /* BSP_USING_USB && RT_USING_USB_DEVICE */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.h new file mode 100644 index 00000000000..f5f8e8d8f5a --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_dev.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef __DRV_OTGFS_DEV_H__ +#define __DRV_OTGFS_DEV_H__ + +#include +#include "drv_usb_dev.h" + +extern usb_core_driver gd_usb_device_core; + +extern volatile rt_uint32_t gd_usb_irq_count; +extern volatile rt_uint32_t gd_usb_reset_count; +extern volatile rt_uint32_t gd_usb_enum_count; +extern volatile rt_uint32_t gd_usb_setup_count; +extern volatile rt_uint32_t gd_usb_ep0_in_count; +extern volatile rt_uint32_t gd_usb_ep0_out_count; +extern volatile rt_uint32_t gd_usb_rxfifo_count; +extern volatile rt_uint32_t gd_usb_setup_rx_count; +extern volatile rt_uint32_t gd_usb_last_rx_status; + +void usbd_reset_callback(void); + +void usbd_setup_stage_callback(struct urequest *setup_packet); + +void usbd_data_in_stage_callback(uint8_t epnum, uint16_t data_count); + +void usbd_data_out_stage_callback(uint8_t epnum, uint16_t data_count); + +void usbd_set_connection_state(uint8_t state); + +int gd_usbd_register(void); + +#endif diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.c new file mode 100644 index 00000000000..ed30a86cb3c --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.c @@ -0,0 +1,318 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + * 2026-09-01 CYFS start host after filesystem initialization + */ + +#include "drv_otghs_host.h" +#include +#include +#include "board.h" + +#include "drv_usb_hw.h" + +#ifdef RT_USING_FINSH +#include +#endif + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +#define OTG_FS_PORT 1 + +usb_core_driver gd_usb_host_core; +#define gd_usb_core gd_usb_host_core + +static struct rt_completion urb_completion; +static volatile rt_bool_t connect_status = RT_FALSE; +volatile rt_uint32_t gd_usbh_irq_count; + +void usbh_connect_callback(usb_core_driver *hhcd) +{ + uhcd_t hcd = (uhcd_t)hhcd->host.data; + if (!connect_status) + { + connect_status = RT_TRUE; + rt_usbh_root_hub_connect_handler(hcd, OTG_FS_PORT, RT_FALSE); + } +} + +void usbh_disconnect_callback(usb_core_driver *hhcd) +{ + uhcd_t hcd = (uhcd_t)hhcd->host.data; + if (connect_status) + { + connect_status = RT_FALSE; + rt_usbh_root_hub_disconnect_handler(hcd, OTG_FS_PORT); + } +} + +void usbh_hc_notifyurbchange_callback(usb_core_driver *hhcd, uint8_t chnum, usb_urb_state urb_state) +{ + rt_completion_done(&urb_completion); +} + +static rt_err_t drv_reset_port(rt_uint8_t port) +{ + usb_port_reset(&gd_usb_core); + + return RT_EOK; +} + +static int drv_pipe_xfer(upipe_t pipe, rt_uint8_t token, void *buffer, int nbytes, int timeout) +{ + while (1) + { + uint8_t dir = (pipe->ep.bEndpointAddress & 0x80) >> 7; + + if (!connect_status) + { + return -1; + } + + rt_completion_init(&urb_completion); + + if (dir == 0) + { + if (token == 0) + { + usbh_ctlsetup_send(&gd_usb_core, buffer, pipe->pipe_index); + } + else + { + usbh_data_send(&gd_usb_core, buffer, pipe->pipe_index, nbytes); + } + } + else + { + usbh_data_recev(&gd_usb_core, buffer, pipe->pipe_index, nbytes); + } + + + rt_completion_wait(&urb_completion, timeout); + + rt_thread_mdelay(1); + + if (usbh_urbstate_get(&gd_usb_core, pipe->pipe_index) == URB_NOTREADY) + { + if (pipe->ep.bmAttributes == USB_EP_ATTR_INT) + { + rt_thread_delay((pipe->ep.bInterval * RT_TICK_PER_SECOND / 1000) > 0 ? (pipe->ep.bInterval * RT_TICK_PER_SECOND / 1000) : 1); + } + + usb_pipe_halt(&gd_usb_core, pipe->pipe_index); + + usbh_pipe_create(&gd_usb_core, + pipe->inst->address, + (uint8_t)PORT_SPEED_FULL, + pipe->pipe_index, + pipe->ep.bEndpointAddress, + pipe->ep.bmAttributes, + pipe->ep.wMaxPacketSize); + continue; + } + else if (usbh_urbstate_get(&gd_usb_core, pipe->pipe_index) == URB_STALL) + { + pipe->status = UPIPE_STATUS_STALL; + if (pipe->callback != RT_NULL) + { + pipe->callback(pipe); + } + return -1; + } + else if (usbh_urbstate_get(&gd_usb_core, pipe->pipe_index) == URB_ERROR) + { + pipe->status = UPIPE_STATUS_ERROR; + if (pipe->callback != RT_NULL) + { + pipe->callback(pipe); + } + return -1; + } + else if (usbh_urbstate_get(&gd_usb_core, pipe->pipe_index) == URB_DONE) + { + pipe->status = UPIPE_STATUS_OK; + if (pipe->callback != RT_NULL) + { + pipe->callback(pipe); + } + if (pipe->ep.bEndpointAddress & 0x80) + { + return usbh_xfercount_get(&gd_usb_core, pipe->pipe_index); + } + return nbytes; + } + return -1; + } +} + +static rt_uint16_t pipe_index = 0; +static rt_uint8_t drv_get_free_pipe_index() +{ + rt_uint8_t idx; + for (idx = 0; idx < USBHS_MAX_CHANNEL_COUNT; idx++) + { + if (!(pipe_index & (0x01 << idx))) + { + pipe_index |= (0x01 << idx); + return idx; + } + } + return 0xff; +} + +static void drv_free_pipe_index(rt_uint8_t index) +{ + if (index < USBHS_MAX_CHANNEL_COUNT) + { + pipe_index &= ~(0x01 << index); + } +} + +static rt_err_t drv_open_pipe(upipe_t pipe) +{ + pipe->pipe_index = drv_get_free_pipe_index(); + if (pipe->pipe_index == 0xff) + { + return -RT_ERROR; + } + + usbh_pipe_create(&gd_usb_core, + pipe->inst->address, + (uint8_t)PORT_SPEED_FULL, + pipe->pipe_index, + pipe->ep.bEndpointAddress, + pipe->ep.bmAttributes, + pipe->ep.wMaxPacketSize); + + /* Set DATA0 PID token*/ + if (gd_usb_core.host.pipe[pipe->pipe_index].ep.dir) + { + gd_usb_core.host.pipe[pipe->pipe_index].data_toggle_in = 0; + } + else + { + gd_usb_core.host.pipe[pipe->pipe_index].data_toggle_out = 0; + } + + return RT_EOK; +} + +static rt_err_t drv_close_pipe(upipe_t pipe) +{ + usb_pipe_halt(&gd_usb_core, pipe->pipe_index); + + drv_free_pipe_index(pipe->pipe_index); + + return RT_EOK; +} + +struct uhcd_ops _uhcd_ops = { + drv_reset_port, + drv_pipe_xfer, + drv_open_pipe, + drv_close_pipe, +}; + +static rt_err_t gd32_hcd_init(rt_device_t device) +{ + usb_rcu_config(USBHS1); + + /* configure GPIO pin used for switching VBUS power and charge pump I/O */ + usb_vbus_config(); + + uint8_t i = 0U; + pipe_index = 0U; + + usb_para_init(&gd_usb_core, USBHS1, USB_SPEED_FULL, HOST_MODE); + + gd_usb_core.host.connect_status = 0U; + + for (i = 0U; i < USBHS_MAX_TX_FIFOS; i++) + { + gd_usb_core.host.pipe[i].err_count = 0U; + gd_usb_core.host.pipe[i].pp_status = PIPE_IDLE; + gd_usb_core.host.backup_xfercount[i] = 0U; + } + + gd_usb_core.host.pipe[0].ep.mps = 8U; + + usb_basic_init(&gd_usb_core.bp, &gd_usb_core.regs); + + usb_globalint_disable(&gd_usb_core.regs); + + usb_core_init(gd_usb_core.bp, &gd_usb_core.regs); + + usb_curmode_set(&gd_usb_core.regs, HOST_MODE); + + usb_host_init(&gd_usb_core); + + usb_globalint_enable(&gd_usb_core.regs); + + /* enable interrupts */ + usb_intr_config(USBHS1); + + return RT_EOK; +} + +int gd_usbh_register(void) +{ + rt_err_t res = -RT_ERROR; + + uhcd_t uhcd = (uhcd_t)rt_malloc(sizeof(struct uhcd)); + if (uhcd == RT_NULL) + { + rt_kprintf("uhcd malloc failed\r\n"); + return -RT_ERROR; + } + + rt_memset((void *)uhcd, 0, sizeof(struct uhcd)); + uhcd->parent.type = RT_Device_Class_USBHost; + uhcd->parent.init = gd32_hcd_init; + uhcd->parent.user_data = &gd_usb_core; + + uhcd->ops = &_uhcd_ops; + uhcd->num_ports = OTG_FS_PORT; + gd_usb_core.host.data = uhcd; + + res = rt_device_register(&uhcd->parent, "usbh", RT_DEVICE_FLAG_DEACTIVATE); + if (res != RT_EOK) + { + rt_kprintf("register usb host failed res = %d\r\n", res); + return -RT_ERROR; + } + + return RT_EOK; +} +INIT_DEVICE_EXPORT(gd_usbh_register); + +static int gd_usbh_start(void) +{ + return rt_usb_host_init("usbh"); +} +INIT_APP_EXPORT(gd_usbh_start); + +#ifdef RT_USING_FINSH +static void usbhstat(void) +{ + rt_kprintf("usbh irq=%u connected=%u core_connected=%u\n", + gd_usbh_irq_count, connect_status, + gd_usb_core.host.connect_status); + rt_kprintf("core GAHBCS=%08x GUSBCS=%08x GINTF=%08x GINTEN=%08x\n", + gd_usb_core.regs.gr->GAHBCS, gd_usb_core.regs.gr->GUSBCS, + gd_usb_core.regs.gr->GINTF, gd_usb_core.regs.gr->GINTEN); + rt_kprintf("host HCTL=%08x HFINFR=%08x HACHINT=%08x HPCS=%08x\n", + gd_usb_core.regs.hr->HCTL, gd_usb_core.regs.hr->HFINFR, + gd_usb_core.regs.hr->HACHINT, *gd_usb_core.regs.HPCS); + rt_kprintf("nvic enable=%u pending=%u active=%u\n", + NVIC_GetEnableIRQ(USBHS1_IRQn), NVIC_GetPendingIRQ(USBHS1_IRQn), + NVIC_GetActive(USBHS1_IRQn)); +} +MSH_CMD_EXPORT(usbhstat, show USB host status); +#endif + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.h new file mode 100644 index 00000000000..a91d8766126 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_otghs_host.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef __DRV_OTGFS_HOST_H__ +#define __DRV_OTGFS_HOST_H__ + + +#include + +#include "drv_usb_host.h" +#include "drv_usbh_transc.h" +#include "drv_usbh_pipe.h" + +#define OTG_FS_PORT 1 + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +extern usb_core_driver gd_usb_host_core; +extern volatile rt_uint32_t gd_usbh_irq_count; + +void usbh_connect_callback(usb_core_driver *hhcd); + +void usbh_disconnect_callback(usb_core_driver *hhcd); + +void usbh_hc_notifyurbchange_callback(usb_core_driver *hhcd, uint8_t chnum, usb_urb_state urb_state); + +int gd_usbh_register(void); + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ +#endif diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.c new file mode 100644 index 00000000000..58dedc1058d --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.c @@ -0,0 +1,439 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usb_hw.h" +#include "drv_usb_core.h" + +#if defined(BSP_USING_USB) + +/* local function prototypes ('static') */ +static void usb_core_reset(usb_core_regs *usb_regs); + +/*! + \brief configures USB parameters + \param[in] udev: pointer to USB core instance + \param[in] usb_periph: USBHSx(x=0,1) + \param[in] usb_speed: USB speed type (full-speed or high-speed) + \param[in] usb_mode: USB host or device mode + \param[out] none + \retval none +*/ +void usb_para_init(usb_core_driver *udev, uint32_t usb_periph, uint32_t usb_speed, uint32_t usb_mode) +{ + usb_core_basic *usb_basic = &udev->bp; + + /* configure USB default transfer mode as FIFO mode */ + usb_basic->transfer_mode = (uint8_t)USB_USE_FIFO; + + usb_basic->core_speed = (uint8_t)usb_speed; + usb_basic->core_enum = (uint8_t)usb_mode; + + /* USB basic register address setting */ + switch (usb_periph) + { + case USBHS0: + usb_basic->base_reg = (uint32_t)USBHS0_REG_BASE; + break; + case USBHS1: + usb_basic->base_reg = (uint32_t)USBHS1_REG_BASE; + break; + default: + break; + } + + /* set the host channel numbers */ + usb_basic->num_pipe = USBHS_MAX_CHANNEL_COUNT; + + /* set the device endpoint numbers */ + usb_basic->num_ep = USBHS_MAX_EP_COUNT; + + if (USB_SPEED_HIGH == usb_speed) + { +#ifdef USB_EXTERNAL_ULPI_PHY_ENABLED + usb_basic->phy_itf = USB_ULPI_PHY_EXTERNAL; +#else + usb_basic->phy_itf = USB_EMBEDDED_PHY_HS; +#endif + } + else if (USB_SPEED_FULL == usb_speed) + { + usb_basic->phy_itf = USB_EMBEDDED_PHY_FS; + } + else + { + /* no operation */ + } + +#ifdef USB_INTERNAL_DMA_ENABLED + usb_basic->transfer_mode = USB_USE_DMA; +#endif /* USB_INTERNAL_DMA_ENABLED */ + + usb_basic->sof_enable = (usb_basic->core_enum == HOST_MODE) ? 1U : 0U; + usb_basic->low_power = (uint8_t)USB_LOW_POWER; + +#if (1U == LPM_ENABLED) + usb_basic->lpm_enable = 1U; +#endif /* LPM_ENABLED */ +} +/*! + \brief configure USB core basic + \param[in] usb_basic: pointer to USB capabilities + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval operation status +*/ +usb_status usb_basic_init(usb_core_basic *usb_basic, usb_core_regs *usb_regs) +{ + /* assign main registers address */ + *usb_regs = (usb_core_regs){ + .gr = (usb_gr *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_CORE), + .hr = (usb_hr *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_HOST), + .dr = (usb_dr *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_DEV), + + .HPCS = (uint32_t *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_PORT), + .PWRCLKCTL = (uint32_t *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_PWRCLKCTL) + }; + + /* assign device endpoint registers address */ + for (uint8_t i = 0U; i < usb_basic->num_ep; i++) + { + usb_regs->er_in[i] = (usb_erin *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_EP_IN + (i * (uint32_t)USB_REG_OFFSET_EP)); + + usb_regs->er_out[i] = (usb_erout *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_EP_OUT + (i * (uint32_t)USB_REG_OFFSET_EP)); + } + + /* assign host pipe registers address */ + for (uint8_t i = 0U; i < usb_basic->num_pipe; i++) + { + usb_regs->pr[i] = (usb_pr *)(usb_basic->base_reg + (uint32_t)USB_REG_OFFSET_CH_INOUT + (i * (uint32_t)USB_REG_OFFSET_CH)); + + usb_regs->DFIFO[i] = (uint32_t *)(usb_basic->base_reg + (uint32_t)USB_DATA_FIFO_OFFSET + (i * (uint32_t)USB_DATA_FIFO_SIZE)); + } + + return USB_OK; +} + +/*! + \brief initializes the USB controller registers and + prepares the core device mode or host mode operation + \param[in] usb_basic: pointer to USB capabilities + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval operation status +*/ +usb_status usb_core_init(usb_core_basic usb_basic, usb_core_regs *usb_regs) +{ + if (USB_ULPI_PHY_EXTERNAL == usb_basic.phy_itf) + { + usb_regs->gr->GCCFG &= ~GCCFG_PWRON; + + usb_regs->gr->GUSBCS &= ~(GUSBCS_EMBPHY_HS | GUSBCS_EMBPHY_FS); + + if (usb_basic.sof_enable) + { + usb_regs->gr->GCCFG |= GCCFG_SOFOEN; + } + + /* initialize the ULPI interface */ + usb_regs->gr->GUSBCS &= ~GUSBCS_ULPIEOI; + +#ifdef USBHS_EXTERNAL_VBUS_ENABLED + /* use external VBUS driver */ + usb_regs->gr->GUSBCS |= GUSBCS_ULPIEVD; +#else + /* use internal VBUS driver */ + usb_regs->gr->GUSBCS &= ~GUSBCS_ULPIEVD; +#endif /* USBHS_EXTERNAL_VBUS_ENABLED */ + + /* soft reset the core */ + usb_core_reset(usb_regs); + } + else if (USB_EMBEDDED_PHY_HS == usb_basic.phy_itf) + { + usb_regs->gr->GUSBCS |= GUSBCS_EMBPHY_HS; + + /* soft reset the core */ + usb_core_reset(usb_regs); + + usb_regs->gr->GCCFG = 0U; + +#ifdef VBUS_SENSING_ENABLED + /* active the transceiver and enable VBUS sensing */ + usb_regs->gr->GCCFG |= GCCFG_VDEN | GCCFG_PWRON; +#else + if (usb_basic.core_enum == HOST_MODE) + { + usb_regs->gr->GOTGCS |= GOTGCS_AVOV | GOTGCS_AVOE; + } + else + { + usb_regs->gr->GOTGCS |= GOTGCS_BVOV | GOTGCS_BVOE; + } + + /* active the transceiver */ + usb_regs->gr->GCCFG |= GCCFG_PWRON; +#endif /* VBUS_SENSING_ENABLED */ + + if (usb_basic.sof_enable) + { + usb_regs->gr->GCCFG |= GCCFG_SOFOEN; + } + + usb_mdelay(20U); + } + else if (USB_EMBEDDED_PHY_FS == usb_basic.phy_itf) + { + usb_regs->gr->GUSBCS |= GUSBCS_EMBPHY_FS; + + /* soft reset the core */ + usb_core_reset(usb_regs); + +#ifdef VBUS_SENSING_ENABLED + /* active the transceiver and enable VBUS sensing */ + usb_regs->gr->GCCFG |= GCCFG_VDEN | GCCFG_PWRON; +#else + if (usb_basic.core_enum == HOST_MODE) + { + usb_regs->gr->GOTGCS |= GOTGCS_AVOV | GOTGCS_AVOE; + } + else + { + usb_regs->gr->GOTGCS |= GOTGCS_BVOV | GOTGCS_BVOE; + } + + /* active the transceiver */ + usb_regs->gr->GCCFG |= GCCFG_PWRON; +#endif /* VBUS_SENSING_ENABLED */ + + /* enable SOF output */ + if (usb_basic.sof_enable) + { + usb_regs->gr->GCCFG |= GCCFG_SOFOEN; + } + + usb_mdelay(20U); + } + else + { + /* no operation */ + } + + if ((uint8_t)USB_USE_DMA == usb_basic.transfer_mode) + { + usb_regs->gr->GAHBCS &= ~GAHBCS_BURST; + usb_regs->gr->GAHBCS |= DMA_INCR8 | GAHBCS_DMAEN; + } + +#ifdef USE_OTG_MODE + + /* enable USB OTG features */ + usb_regs->gr->GUSBCS |= GUSBCS_HNPCEN | GUSBCS_SRPCEN; + + /* enable the USB wakeup and suspend interrupts */ + usb_regs->gr->GINTF = 0xBFFFFFFFU; + + usb_regs->gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE | + GINTEN_OTGIE | GINTEN_SESIE | GINTEN_IDPSCIE; + +#endif /* USE_OTG_MODE */ + + return USB_OK; +} + +/*! + \brief write a packet into the TX FIFO associated with the endpoint + \param[in] usb_regs: pointer to USB core registers + \param[in] src_buf: pointer to source buffer + \param[in] fifo_num: FIFO number which is in (0..5) + \param[in] byte_count: packet byte count + \param[out] none + \retval operation status +*/ +usb_status usb_txfifo_write(usb_core_regs *usb_regs, + uint8_t *src_buf, + uint8_t fifo_num, + uint16_t byte_count) +{ + uint32_t word_count = (byte_count + 3U) / 4U; + + __IO uint32_t *fifo = usb_regs->DFIFO[fifo_num]; + + while (word_count-- > 0U) + { + *fifo = *((__IO uint32_t *)src_buf); + + src_buf += 4U; + } + + return USB_OK; +} + +/*! + \brief read a packet from the Rx FIFO associated with the endpoint + \param[in] usb_regs: pointer to USB core registers + \param[in] dest_buf: pointer to destination buffer + \param[in] byte_count: packet byte count + \param[out] none + \retval void type pointer +*/ +void *usb_rxfifo_read(usb_core_regs *usb_regs, uint8_t *dest_buf, uint16_t byte_count) +{ + __IO uint32_t word_count = (byte_count + 3U) / 4U; + __IO uint32_t *fifo = usb_regs->DFIFO[0]; + + while (word_count-- > 0U) + { + *(__IO uint32_t *)dest_buf = *fifo; + + dest_buf += 4U; + } + + return ((void *)dest_buf); +} + +/*! + \brief flush a TX FIFO or all TX FIFOs + \param[in] usb_regs: pointer to USB core registers + \param[in] fifo_num: FIFO number which is in (0..5) + \param[out] none + \retval operation status +*/ +usb_status usb_txfifo_flush(usb_core_regs *usb_regs, uint8_t fifo_num) +{ + usb_regs->gr->GRSTCTL = ((uint32_t)fifo_num << 6) | GRSTCTL_TXFF; + + /* wait for TX FIFO flush bit is set */ + while (usb_regs->gr->GRSTCTL & GRSTCTL_TXFF) + { + /* no operation */ + } + + /* wait for 3 PHY clocks*/ + usb_udelay(3U); + + return USB_OK; +} + +/*! + \brief flush the entire RX FIFO + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval operation status +*/ +usb_status usb_rxfifo_flush(usb_core_regs *usb_regs) +{ + usb_regs->gr->GRSTCTL = GRSTCTL_RXFF; + + /* wait for RX FIFO flush bit is set */ + while (usb_regs->gr->GRSTCTL & GRSTCTL_RXFF) + { + /* no operation */ + } + + /* wait for 3 PHY clocks */ + usb_udelay(3U); + + return USB_OK; +} + +/*! + \brief set endpoint or channel TX FIFO size + \param[in] usb_regs: pointer to USB core registers + \param[in] fifo: TX FIFO number + \param[in] size: assigned TX FIFO size + \param[out] none + \retval none +*/ +void usb_set_txfifo(usb_core_regs *usb_regs, uint8_t fifo, uint16_t size) +{ + uint32_t tx_offset = usb_regs->gr->GRFLEN; + + if (0U == fifo) + { + usb_regs->gr->DIEP0TFLEN_HNPTFLEN = ((uint32_t)size << 16) | tx_offset; + } + else + { + tx_offset += (usb_regs->gr->DIEP0TFLEN_HNPTFLEN) >> 16; + + for (uint8_t i = 0U; i < (fifo - 1U); i++) + { + tx_offset += (usb_regs->gr->DIEPTFLEN[i] >> 16); + } + + usb_regs->gr->DIEPTFLEN[fifo - 1U] = ((uint32_t)size << 16) | tx_offset; + } +} + +/*! + \brief set USB current mode + \param[in] usb_regs: pointer to USB core registers + \param[in] mode: USB current mode + \param[out] none + \retval none +*/ +void usb_curmode_set(usb_core_regs *usb_regs, uint8_t mode) +{ + usb_regs->gr->GUSBCS &= ~(GUSBCS_FDM | GUSBCS_FHM); + + if (DEVICE_MODE == mode) + { + usb_regs->gr->GUSBCS |= GUSBCS_FDM; + } + else if (HOST_MODE == mode) + { + usb_regs->gr->GUSBCS |= GUSBCS_FHM; + } + else + { + /* OTG mode and other mode can not be here! */ + } +} + +/*! + \brief configure USB core to soft reset + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval none +*/ +static void usb_core_reset(usb_core_regs *usb_regs) +{ + /* enable core soft reset */ + usb_regs->gr->GRSTCTL |= GRSTCTL_CSRST; + + /* wait for the core to be soft reset */ + while (usb_regs->gr->GRSTCTL & GRSTCTL_CSRST) + { + /* no operation */ + } + + /* wait for additional 3 PHY clocks */ + usb_udelay(3U); +} + +/*! + \brief active USB core clock + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_clock_active(usb_core_driver *udev) +{ + if (udev->bp.low_power) + { + if (udev->regs.dr->DSTAT & DSTAT_SPST) + { + /* un-gate USB Core clock */ + *udev->regs.PWRCLKCTL &= ~(PWRCLKCTL_SHCLK | PWRCLKCTL_SUCLK); + } + } +} + +#endif /* BSP_USING_USB */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.h new file mode 100644 index 00000000000..178ad3649d5 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_core.h @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USB_CORE_H +#define DRV_USB_CORE_H + +#include "drv_usb_regs.h" + +#define USB_FS_EP0_MAX_LEN 64U /*!< maximum packet size of endpoint 0 */ +#define HC_MAX_PACKET_COUNT 140U /*!< maximum packet count */ + +#define EP_ID(x) ((uint8_t)((x) & 0x7FU)) /*!< endpoint number */ +#define EP_DIR(x) ((uint8_t)((x) >> 7)) /*!< endpoint direction */ + +typedef struct urequest usb_req; + +enum _usb_eptype +{ + USB_EPTYPE_CTRL = 0U, /*!< control endpoint type */ + USB_EPTYPE_ISOC = 1U, /*!< isochronous endpoint type */ + USB_EPTYPE_BULK = 2U, /*!< bulk endpoint type */ + USB_EPTYPE_INTR = 3U, /*!< interrupt endpoint type */ + USB_EPTYPE_MASK = 3U /*!< endpoint type mask */ +}; + +typedef enum +{ + USB_OTG_OK = 0U, /*!< USB OTG status OK */ + USB_OTG_FAIL /*!< USB OTG status fail */ +} usb_otg_status; + +typedef enum +{ + USB_OK = 0U, /*!< USB status OK */ + USB_FAIL /*!< USB status fail */ +} usb_status; + +typedef enum +{ + USB_USE_FIFO, /*!< USB use FIFO transfer mode */ + USB_USE_DMA /*!< USB use DMA transfer mode */ +} usb_transfer_mode; + +typedef enum +{ + LPM_L0 = 0U, /*!< on */ + LPM_L1, /*!< LPM L1 sleep */ + LPM_L2, /*!< suspend */ + LPM_L3, /*!< off */ +} usb_lpm_state; + +enum usb_ctl_status +{ + USB_CTL_IDLE = 0U, /*!< USB control transfer idle state */ + USB_CTL_DATA_IN, /*!< USB control transfer data IN state */ + USB_CTL_LAST_DATA_IN, /*!< USB control transfer last data IN state */ + USB_CTL_DATA_OUT, /*!< USB control transfer data OUT state */ + USB_CTL_LAST_DATA_OUT, /*!< USB control transfer last data OUT state */ + USB_CTL_STATUS_IN, /*!< USB control transfer status IN state*/ + USB_CTL_STATUS_OUT /*!< USB control transfer status OUT state */ +}; + +typedef enum +{ + LPM_L0_ACTIVE = 0U, /*!< on */ + LPM_L1_ACTIVE, /*!< LPM L1 sleep */ +} usb_lpm_type; + +typedef struct +{ + uint8_t core_enum; /*!< USB core type */ + uint8_t core_speed; /*!< USB core speed */ + uint8_t num_pipe; /*!< USB host channel numbers */ + uint8_t num_ep; /*!< USB device endpoint numbers */ + uint8_t transfer_mode; /*!< USB transfer mode */ + uint8_t phy_itf; /*!< USB core PHY interface */ + uint8_t sof_enable; /*!< USB SOF output */ + uint8_t low_power; /*!< USB low power */ + uint8_t lpm_enable; /*!< USB link power mode(LPM) */ + uint8_t vbus_sensing_enable; /*!< USB VBUS sensing feature */ + uint8_t use_dedicated_ep1; /*!< USB dedicated endpoint1 interrupt */ + uint8_t use_external_vbus; /*!< enable or disable the use of the external VBUS */ + uint32_t base_reg; /*!< base register address */ +} usb_core_basic; + +#ifdef USE_DEVICE_MODE + +/* USB descriptor */ +typedef struct _usb_desc +{ + uint8_t *dev_desc; /*!< device descriptor */ + uint8_t *config_desc; /*!< configuration descriptor */ + uint8_t *bos_desc; /*!< BOS descriptor */ + +#ifdef BSP_USB_DEVICE_USING_HS + uint8_t *other_speed_config_desc; /*!< other speed configuration descriptor */ + uint8_t *qualifier_desc; /*!< qualifier descriptor */ +#endif + + void * const *strings; /*!< string descriptor */ +} usb_desc; + +/* USB power management */ +typedef struct _usb_pm +{ + uint8_t power_mode; /*!< power mode */ + uint8_t power_low; /*!< power low */ + uint8_t dev_remote_wakeup; /*!< remote wakeup */ + uint8_t remote_wakeup_on; /*!< remote wakeup on */ + usb_lpm_state lpm_state; /*!< LPM state */ + uint32_t BESL; /*!< BESL value */ +} usb_pm; + +/* USB control information */ +typedef struct _usb_control +{ + usb_req req; /*!< USB standard device request */ + + uint8_t ctl_state; /*!< USB control transfer state */ + uint8_t ctl_zlp; /*!< zero length package */ +} usb_control; + +typedef struct +{ + struct + { + uint8_t num : 4U; /*!< the endpoint number.it can be from 0 to 6 */ + uint8_t pad : 3U; /*!< padding between number and direction */ + uint8_t dir : 1U; /*!< the endpoint direction */ + } ep_addr; + + uint8_t ep_type; /*!< USB endpoint type */ + uint8_t ep_stall; /*!< USB endpoint STALL status */ + + uint8_t frame_num; /*!< number of frame */ + uint16_t max_len; /*!< maximum packet length */ + + /* transaction level variables */ + uint8_t *xfer_buf; /*!< transmit buffer */ + uint32_t xfer_len; /*!< transmit buffer length */ + uint32_t xfer_count; /*!< transmit buffer count */ + + uint32_t remain_len; /*!< remain packet length */ + + uint32_t dma_addr; /*!< DMA address */ +} usb_transc; + +typedef struct _usb_core_driver usb_dev; + +typedef struct _usb_class_core +{ + uint8_t alter_set; /*!< alternative set */ + uint8_t command; /*!< device class request command */ + + uint8_t (*init)(usb_dev *udev, uint8_t config_index); /*!< initialize handler */ + uint8_t (*deinit)(usb_dev *udev, uint8_t config_index); /*!< de-initialize handler */ + uint8_t (*req_proc)(usb_dev *udev, usb_req *req); /*!< device request handler */ + uint8_t (*set_intf)(usb_dev *udev, usb_req *req); /*!< device set interface callback */ + uint8_t (*ctlx_in)(usb_dev *udev); /*!< device control IN callback */ + uint8_t (*ctlx_out)(usb_dev *udev); /*!< device control OUT callback */ + uint8_t (*data_in)(usb_dev *udev, uint8_t ep_num); /*!< device data IN handler */ + uint8_t (*data_out)(usb_dev *udev, uint8_t ep_num); /*!< device data OUT handler */ + uint8_t (*SOF)(usb_dev *udev); /*!< start of frame handler */ + uint8_t (*incomplete_isoc_in)(usb_dev *udev); /*!< incomplete synchronization IN transfer handler */ + uint8_t (*incomplete_isoc_out)(usb_dev *udev); /*!< incomplete synchronization OUT transfer handler */ +} usb_class_core; + +typedef struct _usb_perp_dev +{ + uint8_t config; /*!< configuration */ + uint8_t dev_addr; /*!< device address */ + + __IO uint8_t cur_status; /*!< current status */ + __IO uint8_t backup_status; /*!< backup status */ + + usb_transc transc_in[USBHS_MAX_TX_FIFOS]; /*!< endpoint IN transaction */ + usb_transc transc_out[USBHS_MAX_TX_FIFOS]; /*!< endpoint OUT transaction */ + + usb_pm pm; /*!< power management */ + usb_control control; /*!< USB control information */ + usb_desc *desc; /*!< USB descriptors pointer */ + usb_class_core *class_core; /*!< class driver */ + void *class_data[4]; /*!< class data pointer */ + void *user_data; /*!< user data pointer */ + void *pdata; /*!< reserved data pointer */ +} usb_perp_dev; + +#endif /* USE_DEVICE_MODE */ + +#ifdef USE_HOST_MODE + +typedef enum _usb_pipe_status +{ + PIPE_IDLE = 0U, /*!< host pipe IDLE status */ + PIPE_XF, /*!< host pipe transfer completed status */ + PIPE_HALTED, /*!< host pipe halted status */ + PIPE_NAK, /*!< host pipe NAK status */ + PIPE_NYET, /*!< host pipe NYET status */ + PIPE_STALL, /*!< host pipe STALL status */ + PIPE_TRACERR, /*!< host pipe transaction error status */ + PIPE_BBERR, /*!< host pipe babble error status */ + PIPE_REQOVR, /*!< host pipe frame overrun status */ + PIPE_DTGERR, /*!< host pipe data toggle error status */ +} usb_pipe_status; + +typedef enum _usb_pipe_mode +{ + PIPE_PERIOD = 0U, /*!< USB host pipe PERIOD mode */ + PIPE_NON_PERIOD = 1U /*!< USB host pipe NOT PERIOD mode */ +} usb_pipe_mode; + +typedef enum _usb_urb_state +{ + URB_IDLE = 0U, /*!< USB URB IDLE state */ + URB_DONE, /*!< USB URB DONE state */ + URB_NOTREADY, /*!< USB URB NOT READY state */ + URB_ERROR, /*!< USB URB ERROR state */ + URB_STALL, /*!< USB URB STALL state */ + URB_PING /*!< USB URB PING state */ +} usb_urb_state; + +typedef struct _usb_pipe +{ + uint8_t in_used; /*!< pipe used */ + uint8_t dev_addr; /*!< USB device address */ + uint32_t dev_speed; /*!< USB device speed */ + + struct + { + uint8_t num; /*!< endpoint numbers */ + uint8_t dir; /*!< endpoint direction */ + uint8_t type; /*!< endpoint transfer type */ + uint16_t mps; /*!< endpoint max packet size */ + } ep; + + __IO uint8_t supp_ping; /*!< host pipe support PING */ + __IO uint8_t do_ping; /*!< host pipe do PING */ + __IO uint32_t DPID; /*!< data PID */ + + uint8_t *xfer_buf; /*!< USB transfer buffer */ + uint32_t xfer_len; /*!< USB transfer length */ + uint32_t xfer_count; /*!< USB transfer count */ + + uint8_t data_toggle_in; /*!< toggle DATA IN */ + uint8_t data_toggle_out; /*!< toggle DATA OUT */ + + __IO uint32_t err_count; /*!< error count */ + __IO usb_pipe_status pp_status; /*!< USB pipe status */ + __IO usb_urb_state urb_state; /*!< USB URB state */ +} usb_pipe; + +typedef struct _usb_host_drv +{ + __IO uint32_t connect_status; /*!< connect status */ + __IO uint32_t port_enabled; /*!< USB port enable */ + __IO uint32_t backup_xfercount[USBHS_MAX_TX_FIFOS]; /*!< USB backup transfer data count */ + + usb_pipe pipe[USBHS_MAX_TX_FIFOS]; /*!< USB host pipe handles */ + void *data; /*!< user data pointer */ +} usb_host_drv; + +#endif /* USE_HOST_MODE */ + +typedef struct _usb_core_driver +{ + usb_core_basic bp; /*!< USB basic parameters */ + usb_core_regs regs; /*!< USB registers */ + +#ifdef USE_DEVICE_MODE + usb_perp_dev dev; /*!< USB peripheral device */ +#endif /* USE_DEVICE_MODE */ + +#ifdef USE_HOST_MODE + usb_host_drv host; /*!< USB peripheral host */ +#endif /* USE_HOST_MODE */ +} usb_core_driver; + +typedef enum +{ + BCD_NONE = 0, + BCD_SDP, + BCD_DCP, + BCD_CDP, + BCD_PS2, + BCD_ERROR +} bcd_type; + +/* static inline function definitions */ + +/*! + \brief get the global interrupts + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval interrupt status +*/ +__STATIC_INLINE uint32_t usb_coreintr_get(usb_core_regs *usb_regs) +{ + uint32_t reg_data = usb_regs->gr->GINTEN; + + reg_data &= usb_regs->gr->GINTF; + + return reg_data; +} + +/*! + \brief set USB RX FIFO size + \param[in] usb_regs: pointer to USB core registers + \param[in] size: assigned FIFO size + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_set_rxfifo(usb_core_regs *usb_regs, uint16_t size) +{ + usb_regs->gr->GRFLEN = size; +} + +/*! + \brief enable the global interrupts + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_globalint_enable(usb_core_regs *usb_regs) +{ + /* enable USB global interrupt */ + usb_regs->gr->GAHBCS |= GAHBCS_GINTEN; +} + +/*! + \brief disable the global interrupts + \param[in] usb_regs: pointer to USB core registers + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_globalint_disable(usb_core_regs *usb_regs) +{ + /* disable USB global interrupt */ + usb_regs->gr->GAHBCS &= ~GAHBCS_GINTEN; +} + +/* function declarations */ +/* configures USB parameters */ +void usb_para_init(usb_core_driver *core, uint32_t usb_periph, uint32_t usb_speed, uint32_t usb_mode); +/* configure core capabilities */ +usb_status usb_basic_init(usb_core_basic *usb_basic, usb_core_regs *usb_regs); +/*initializes the USB controller registers and prepares the core device mode or host mode operation*/ +usb_status usb_core_init(usb_core_basic usb_basic, usb_core_regs *usb_regs); +/* write a packet into the TX FIFO associated with the endpoint */ +usb_status usb_txfifo_write(usb_core_regs *usb_regs, uint8_t *src_buf, uint8_t fifo_num, uint16_t byte_count); +/* read a packet from the RX FIFO associated with the endpoint */ +void *usb_rxfifo_read(usb_core_regs *usb_regs, uint8_t *dest_buf, uint16_t byte_count); +/* flush a TX FIFO or all TX FIFOs */ +usb_status usb_txfifo_flush(usb_core_regs *usb_regs, uint8_t fifo_num); +/* flush the entire RX FIFO */ +usb_status usb_rxfifo_flush(usb_core_regs *usb_regs); +/* set endpoint or channel TX FIFO size */ +void usb_set_txfifo(usb_core_regs *usb_regs, uint8_t fifo, uint16_t size); +/* set USB current mode */ +void usb_curmode_set(usb_core_regs *usb_regs, uint8_t mode); +void usb_clock_active(usb_core_driver *udev); + +#endif /* DRV_USB_CORE_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.c new file mode 100644 index 00000000000..fcef58f2546 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.c @@ -0,0 +1,756 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usb_hw.h" +#include "drv_usb_dev.h" + +#include + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_DEVICE) + +/* endpoint 0 max packet length */ +static const uint8_t EP0_MAXLEN[4] = { + [DSTAT_EM_HS_PHY_30MHZ_60MHZ] = EP0MPL_64, + [DSTAT_EM_FS_PHY_30MHZ_60MHZ] = EP0MPL_64, + [DSTAT_EM_FS_PHY_48MHZ] = EP0MPL_64, + [DSTAT_EM_LS_PHY_6MHZ] = EP0MPL_8 +}; + +/* USB endpoint TX FIFO size */ +static uint16_t USBHS_TX_FIFO_SIZE[USBHS_MAX_EP_COUNT] = { + (uint16_t)USB_DEV_TX0_FIFO_SIZE, + (uint16_t)USB_DEV_TX1_FIFO_SIZE, + (uint16_t)USB_DEV_TX2_FIFO_SIZE, + (uint16_t)USB_DEV_TX3_FIFO_SIZE, + (uint16_t)USB_DEV_TX4_FIFO_SIZE, + (uint16_t)USB_DEV_TX5_FIFO_SIZE, + (uint16_t)USB_DEV_TX6_FIFO_SIZE, + (uint16_t)USB_DEV_TX7_FIFO_SIZE, +}; + +/*! + \brief initialize USB core registers for device mode + \param[in] udev: pointer to USB device + \param[out] none + \retval operation status +*/ +usb_status usb_devcore_init(usb_core_driver *udev) +{ + uint8_t i = 0U; + + /* restart the PHY clock (maybe don't need to...) */ + *udev->regs.PWRCLKCTL = 0U; + + /* configure periodic frame interval to default value */ + udev->regs.dr->DCFG &= ~DCFG_EOPFT; + udev->regs.dr->DCFG |= FRAME_INTERVAL_80; + + udev->regs.dr->DCFG &= ~DCFG_DS; + + if (USB_EMBEDDED_PHY_HS == udev->bp.phy_itf) + { + udev->regs.dr->DCFG |= USB_SPEED_INP_HIGH; + } + else if (USB_EMBEDDED_PHY_FS == udev->bp.phy_itf) + { + udev->regs.dr->DCFG |= USB_SPEED_INP_FULL; + } + else + { + /* no operation */ + } + + /* set RX FIFO size */ + usb_set_rxfifo(&udev->regs, (uint16_t)USB_DEV_RX_FIFO_SIZE); + + /* set endpoint 0 to 3's TX FIFO length and RAM address */ + for (i = 0U; i < USBHS_MAX_EP_COUNT; i++) + { + usb_set_txfifo(&udev->regs, i, USBHS_TX_FIFO_SIZE[i]); + } + + /* make sure all FIFOs are flushed */ + + /* flush all TX FIFOs */ + (void)usb_txfifo_flush(&udev->regs, 0x10U); + + /* flush entire RX FIFO */ + (void)usb_rxfifo_flush(&udev->regs); + + /* clear all pending device interrupts */ + udev->regs.dr->DIEPINTEN = 0U; + udev->regs.dr->DOEPINTEN = 0U; + udev->regs.dr->DAEPINT = 0xFFFFFFFFU; + udev->regs.dr->DAEPINTEN = 0U; + + /* configure all IN/OUT endpoints */ + for (i = 0U; i < udev->bp.num_ep; i++) + { + if (udev->regs.er_in[i]->DIEPCTL & DEPCTL_EPEN) + { + udev->regs.er_in[i]->DIEPCTL |= DEPCTL_EPD | DEPCTL_SNAK; + } + else + { + udev->regs.er_in[i]->DIEPCTL = 0U; + } + + /* set IN endpoint transfer length to 0 */ + udev->regs.er_in[i]->DIEPLEN = 0U; + + /* clear all pending IN endpoint interrupts */ + udev->regs.er_in[i]->DIEPINTF = 0xFFU; + + if (udev->regs.er_out[i]->DOEPCTL & DEPCTL_EPEN) + { + udev->regs.er_out[i]->DOEPCTL |= DEPCTL_EPD | DEPCTL_SNAK; + } + else + { + udev->regs.er_out[i]->DOEPCTL = 0U; + } + + /* set OUT endpoint transfer length to 0 */ + udev->regs.er_out[i]->DOEPLEN = 0U; + + /* clear all pending OUT endpoint interrupts */ + udev->regs.er_out[i]->DOEPINTF = 0xFFU; + } + + udev->regs.dr->DIEPINTEN |= DIEPINTEN_EPTXFUDEN; + + (void)usb_devint_enable(udev); + + /* configure LPM function */ + if (1U == udev->bp.lpm_enable) + { + udev->dev.pm.lpm_state = LPM_L0; + udev->regs.gr->GLPMCFG = GLPMCFG_LPMEN | GLPMCFG_ACKLPM | GLPMCFG_BESLEN; + } + + return USB_OK; +} + +/*! + \brief enable the USB device mode interrupts + \param[in] udev: pointer to USB device + \param[out] none + \retval operation status +*/ +usb_status usb_devint_enable(usb_core_driver *udev) +{ + /* clear any pending USB OTG interrupts */ + udev->regs.gr->GOTGINTF = 0xFFFFFFFFU; + + /* clear any pending interrupts */ + udev->regs.gr->GINTF = 0xBFFFFFFFU; + + /* enable the USB wakeup and suspend interrupts */ + udev->regs.gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE; + + /* enable device_mode-related interrupts */ + if ((uint8_t)USB_USE_FIFO == udev->bp.transfer_mode) + { + udev->regs.gr->GINTEN |= GINTEN_RXFNEIE; + } + + udev->regs.gr->GINTEN |= GINTEN_RSTIE | GINTEN_ENUMFIE | GINTEN_IEPIE | + GINTEN_OEPIE | GINTEN_SOFIE | GINTEN_ISOONCIE | GINTEN_ISOINCIE; + +#ifdef VBUS_SENSING_ENABLED + udev->regs.gr->GINTEN |= GINTEN_SESIE | GINTEN_OTGIE; +#endif /* VBUS_SENSING_ENABLED */ + + if (1U == udev->bp.lpm_enable) + { + udev->regs.gr->GINTEN |= GINTEN_LPMIE; + } + + return USB_OK; +} + +/*! + \brief active the USB endpoint0 transaction + \param[in] udev: pointer to USB device + \param[in] transc: the USB endpoint0 transaction + \param[out] none + \retval operation status +*/ +usb_status usb_transc0_active(usb_core_driver *udev, usb_transc *transc) +{ + __IO uint32_t *reg_addr = NULL; + + uint32_t enum_speed = udev->regs.dr->DSTAT & DSTAT_ES; + + /* get the endpoint number */ + uint8_t ep_num = transc->ep_addr.num; + + if (ep_num) + { + /* not endpoint 0 */ + return USB_FAIL; + } + + if (transc->ep_addr.dir) + { + reg_addr = &udev->regs.er_in[0]->DIEPCTL; + } + else + { + reg_addr = &udev->regs.er_out[0]->DOEPCTL; + } + + /* endpoint 0 is activated after USB clock is enabled */ + *reg_addr &= ~(DEPCTL_MPL | DEPCTL_EPTYPE | DIEPCTL_TXFNUM); + + /* set endpoint 0 maximum packet length */ + *reg_addr |= EP0_MAXLEN[enum_speed]; + + /* activate endpoint */ + *reg_addr |= ((uint32_t)transc->ep_type << 18) | ((uint32_t)ep_num << 22) | DEPCTL_SD0PID | DEPCTL_EPACT; + + return USB_OK; +} + +/*! + \brief active the USB transaction + \param[in] udev: pointer to USB device + \param[in] transc: the USB transaction + \param[out] none + \retval status +*/ +usb_status usb_ep_active(usb_core_driver *udev, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_attr) +{ + __IO uint32_t *reg_addr = NULL; + uint32_t epinten = 0U; + uint32_t enum_speed = udev->regs.dr->DSTAT & DSTAT_ES; + + usb_transc *transc = NULL; + + /* get the endpoint number */ + uint8_t ep_num = EP_ID(ep_addr); + + /* enable endpoint interrupt number */ + if (EP_DIR(ep_addr)) + { + reg_addr = &udev->regs.er_in[ep_num]->DIEPCTL; + epinten = 1U << ep_num; + transc = &udev->dev.transc_in[ep_num]; + } + else + { + reg_addr = &udev->regs.er_out[ep_num]->DOEPCTL; + epinten = 1U << (16U + ep_num); + transc = &udev->dev.transc_out[ep_num]; + } + + *transc = (usb_transc){ 0 }; + transc->ep_addr.num = ep_num; + transc->ep_addr.dir = EP_DIR(ep_addr) ? 1U : 0U; + transc->max_len = ep_mps; + transc->ep_type = ep_attr & USB_EPTYPE_MASK; + + /* if the endpoint is not active, need change the endpoint control register */ + if (!(*reg_addr & DEPCTL_EPACT)) + { + *reg_addr &= ~(DEPCTL_MPL | DEPCTL_EPTYPE | DIEPCTL_TXFNUM); + + /* set endpoint maximum packet length */ + if (0U == ep_num) + { + *reg_addr |= EP0_MAXLEN[enum_speed]; + } + else + { + *reg_addr |= transc->max_len; + } + + /* activate endpoint */ + *reg_addr |= ((uint32_t)transc->ep_type << 18) | ((uint32_t)ep_num << 22) | DEPCTL_SD0PID | DEPCTL_EPACT; + } + +#ifdef USB_DEDICATED_EP1_ENABLED + if (1U == ep_num) + { + udev->regs.dr->DEP1INTEN |= epinten; + } + else +#endif + { + /* enable the interrupts for this endpoint */ + udev->regs.dr->DAEPINTEN |= epinten; + } + + return USB_OK; +} + +/*! + \brief deactivate the USB transaction + \param[in] udev: pointer to USB device + \param[in] transc: the USB transaction + \param[out] none + \retval status +*/ +usb_status usb_ep_deactivate(usb_core_driver *udev, uint8_t ep_addr) +{ + uint32_t epinten = 0U; + + uint8_t ep_num = EP_ID(ep_addr); + + /* disable endpoint interrupt number */ + if (EP_DIR(ep_addr)) + { + epinten = 1U << ep_num; + + udev->regs.er_in[ep_num]->DIEPCTL &= ~DEPCTL_EPACT; + } + else + { + epinten = 1U << (ep_num + 16U); + + udev->regs.er_out[ep_num]->DOEPCTL &= ~DEPCTL_EPACT; + } + +#ifdef USB_DEDICATED_EP1_ENABLED + if (1U == ep_num) + { + udev->regs.dr->DEP1INTEN &= ~epinten; + } + else +#endif + { + /* disable the interrupts for this endpoint */ + udev->regs.dr->DAEPINTEN &= ~epinten; + } + + return USB_OK; +} + +/*! + \brief configure USB transaction to start IN transfer + \param[in] udev: pointer to USB device + \param[in] transc: the USB IN transaction + \param[out] none + \retval operation status +*/ +usb_status usb_ep_inxfer(usb_core_driver *udev, uint8_t ep_addr, uint8_t *buf, uint16_t count) +{ + usb_status status = USB_OK; + uint8_t ep_num = EP_ID(ep_addr); + + __IO uint32_t epctl = udev->regs.er_in[ep_num]->DIEPCTL; + __IO uint32_t eplen = udev->regs.er_in[ep_num]->DIEPLEN; + + usb_transc *transc = &udev->dev.transc_in[ep_num]; + + eplen &= ~(DEPLEN_TLEN | DEPLEN_PCNT); + + transc->xfer_len = count; + transc->xfer_buf = buf; + transc->xfer_count = 0U; + + /* zero length packet or endpoint 0 */ + if (0U == count) + { + /* set transfer packet count to 1 */ + eplen |= 1U << 19; + } + else + { + /* set transfer packet count */ + if (0U == ep_num) + { + transc->xfer_len = USB_MIN(count, transc->max_len); + + eplen |= 1U << 19; + } + else + { + eplen |= ((count - 1 + transc->max_len) / transc->max_len) << 19; + } + + /* set endpoint transfer length */ + eplen |= count; + + if ((uint8_t)USB_EPTYPE_ISOC == transc->ep_type) + { + eplen |= DIEPLEN_MCNT & (1U << 29); + } + } + + udev->regs.er_in[ep_num]->DIEPLEN = eplen; + + if ((uint8_t)USB_EPTYPE_ISOC == transc->ep_type) + { + if (((udev->regs.dr->DSTAT & DSTAT_FNRSOF) >> 8) & 0x01U) + { + epctl |= DEPCTL_SEVNFRM; + } + else + { + epctl |= DEPCTL_SODDFRM; + } + } + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + udev->regs.er_in[ep_num]->DIEPDMAADDR = transc->dma_addr; + } + + /* enable the endpoint and clear the NAK */ + epctl |= DEPCTL_CNAK | DEPCTL_EPEN; + + udev->regs.er_in[ep_num]->DIEPCTL = epctl; + + if ((uint8_t)USB_USE_FIFO == udev->bp.transfer_mode) + { + if ((uint8_t)USB_EPTYPE_ISOC != transc->ep_type) + { + /* enable the TX FIFO empty interrupt for this endpoint */ + if (count > 0U) + { + udev->regs.dr->DIEPFEINTEN |= 1U << ep_num; + } + } + else + { + (void)usb_txfifo_write(&udev->regs, transc->xfer_buf, ep_num, (uint16_t)transc->xfer_len); + } + } + + return status; +} + +/*! + \brief configure USB transaction to start OUT transfer + \param[in] udev: pointer to USB device + \param[in] transc: the USB OUT transaction + \param[out] none + \retval status +*/ +usb_status usb_ep_outxfer(usb_core_driver *udev, uint8_t ep_addr, uint8_t *buf, uint16_t count) +{ + usb_status status = USB_OK; + + uint8_t ep_num = EP_ID(ep_addr); + + uint32_t epctl = udev->regs.er_out[ep_num]->DOEPCTL; + uint32_t eplen = udev->regs.er_out[ep_num]->DOEPLEN; + + usb_transc *transc = &udev->dev.transc_out[ep_num]; + + transc->xfer_buf = buf; + transc->xfer_len = count; + + eplen &= ~(DEPLEN_TLEN | DEPLEN_PCNT); + + /* zero length packet or endpoint 0 */ + if ((0U == count) || (0U == ep_num)) + { + /* set the transfer length to max packet size */ + eplen |= transc->max_len; + + /* set the transfer packet count to 1 */ + eplen |= 1U << 19; + } + else + { + /* configure the transfer size and packet count as follows: + * pktcnt = N + * xfersize = N * maxpacket + */ + uint32_t packet_count = (count + transc->max_len - 1) / transc->max_len; + + eplen |= packet_count << 19; + eplen |= packet_count * transc->max_len; + } + + udev->regs.er_out[ep_num]->DOEPLEN = eplen; + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + udev->regs.er_out[ep_num]->DOEPDMAADDR = transc->dma_addr; + } + + if ((uint8_t)USB_EPTYPE_ISOC == transc->ep_type) + { + if (transc->frame_num) + { + epctl |= DEPCTL_SD1PID; + } + else + { + epctl |= DEPCTL_SD0PID; + } + } + + /* enable the endpoint and clear the NAK */ + epctl |= DEPCTL_EPEN | DEPCTL_CNAK; + + udev->regs.er_out[ep_num]->DOEPCTL = epctl; + + return status; +} + +/*! + \brief set the USB transaction STALL status + \param[in] udev: pointer to USB device + \param[in] transc: the USB transaction + \param[out] none + \retval status +*/ +usb_status usb_ep_stall(usb_core_driver *udev, uint8_t ep_addr) +{ + __IO uint32_t *reg_addr = NULL; + + uint8_t ep_num = EP_ID(ep_addr); + + if (EP_DIR(ep_addr)) + { + reg_addr = &(udev->regs.er_in[ep_num]->DIEPCTL); + + /* set the endpoint disable bit */ + if (*reg_addr & DEPCTL_EPEN) + { + *reg_addr |= DEPCTL_EPD; + } + } + else + { + /* set the endpoint STALL bit */ + reg_addr = &(udev->regs.er_out[ep_num]->DOEPCTL); + } + + /* set the endpoint STALL bit */ + *reg_addr |= DEPCTL_STALL; + + return USB_OK; +} + +/*! + \brief clear the USB transaction STALL status + \param[in] udev: pointer to USB device + \param[in] transc: the USB transaction + \param[out] none + \retval operation status +*/ +usb_status usb_ep_clrstall(usb_core_driver *udev, uint8_t ep_addr) +{ + __IO uint32_t *reg_addr = NULL; + uint32_t ep_type = 0U; + + uint8_t ep_num = EP_ID(ep_addr); + + if (EP_DIR(ep_addr)) + { + reg_addr = &(udev->regs.er_in[ep_num]->DIEPCTL); + } + else + { + reg_addr = &(udev->regs.er_out[ep_num]->DOEPCTL); + } + + /* clear the endpoint STALL bit */ + *reg_addr &= ~DEPCTL_STALL; + + ep_type = (DEPCTL_EPTYPE & *reg_addr) >> 18; + + /* reset data PID of the periodic endpoints */ + if (((uint8_t)USB_EPTYPE_INTR == ep_type) || ((uint8_t)USB_EPTYPE_BULK == ep_type)) + { + *reg_addr |= DEPCTL_SD0PID; + } + + return USB_OK; +} + +/*! + \brief read device IN endpoint interrupt flag register + \param[in] udev: pointer to USB device + \param[in] ep_num: endpoint number + \param[out] none + \retval interrupt value +*/ +uint32_t usb_iepintr_read(usb_core_driver *udev, uint8_t ep_num) +{ + __IO uint32_t value = 0U; + uint32_t fifoemptymask, commonintmask; + + commonintmask = udev->regs.dr->DIEPINTEN; + fifoemptymask = udev->regs.dr->DIEPFEINTEN; + + /* check FIFO empty interrupt enable bit */ + commonintmask |= ((fifoemptymask >> ep_num) & 0x1U) << 7; + + value = udev->regs.er_in[ep_num]->DIEPINTF & commonintmask; + + return value; +} + +/*! + \brief configures OUT endpoint 0 to receive SETUP packets + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_ctlep_startout(usb_core_driver *udev) +{ + /* set OUT endpoint 0 receive length to 24 bytes, 1 packet and 3 SETUP packets */ + udev->regs.er_out[0]->DOEPLEN = DOEP0_TLEN(8U * 3U) | DOEP0_PCNT(1U) | DOEP0_STPCNT(3U); + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + udev->regs.er_out[0]->DOEPDMAADDR = (uint32_t)&udev->dev.control.req; + + /* endpoint enable */ + udev->regs.er_out[0]->DOEPCTL |= DEPCTL_EPACT | DEPCTL_EPEN; + } +} + +/*! + \brief active remote wakeup signaling + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_rwkup_active(usb_core_driver *udev) +{ + if (udev->dev.pm.dev_remote_wakeup) + { + if (udev->regs.dr->DSTAT & DSTAT_SPST) + { + if (udev->bp.low_power) + { + /* ungate USB core clock */ + *udev->regs.PWRCLKCTL &= ~(PWRCLKCTL_SHCLK | PWRCLKCTL_SUCLK); + } + + /* active remote wakeup signaling */ + udev->regs.dr->DCTL |= DCTL_RWKUP; + + usb_mdelay(5U); + + udev->regs.dr->DCTL &= ~DCTL_RWKUP; + } + } +} + +/*! + \brief USB device suspend + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_dev_suspend(usb_core_driver *udev) +{ + __IO uint32_t devstat = udev->regs.dr->DSTAT; + + if ((devstat & DSTAT_SPST) && (udev->bp.low_power)) + { + /* switch-off the USB clocks */ + *udev->regs.PWRCLKCTL |= PWRCLKCTL_SHCLK; + + /* enter DEEP_SLEEP mode with LDO in low power mode */ + pmu_to_deepsleepmode(WFI_CMD); + } +} + +/*! + \brief stop the device and clean up FIFOs + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_dev_stop(usb_core_driver *udev) +{ + uint32_t i; + + udev->dev.cur_status = 1U; + + /* clear all interrupt flag and enable bits */ + for (i = 0U; i < udev->bp.num_ep; i++) + { + udev->regs.er_in[i]->DIEPINTF = 0xFFU; + udev->regs.er_out[i]->DOEPINTF = 0xFFU; + } + + udev->regs.dr->DIEPINTEN = 0U; + udev->regs.dr->DOEPINTEN = 0U; + udev->regs.dr->DAEPINTEN = 0U; + udev->regs.dr->DAEPINT = 0xFFFFFFFFU; + + /* flush the FIFO */ + (void)usb_rxfifo_flush(&udev->regs); + (void)usb_txfifo_flush(&udev->regs, 0x10U); +} + +/*! + \brief usb battery charging detect operation + \param[in] udev: pointer to USB device instance + \param[out] none + \retval bcd type +*/ +bcd_type usbd_bcd_detect(usb_core_driver *udev) +{ + udev->regs.gr->GCCFG |= GCCFG_DCDEN; + + usb_mdelay(1000U); + + if (0U == (udev->regs.gr->GCCFG & GCCFG_DCDF)) + { + udev->regs.gr->GCCFG &= ~GCCFG_DCDEN; + + return BCD_ERROR; + } + + udev->regs.gr->GCCFG &= ~GCCFG_DCDEN; + usb_mdelay(20U); + udev->regs.gr->GCCFG |= GCCFG_PEMEN; + usb_mdelay(50U); + + if (udev->regs.gr->GCCFG & GCCFG_PDF) + { + udev->regs.gr->GCCFG &= ~GCCFG_PEMEN; + usb_mdelay(20U); + udev->regs.gr->GCCFG |= GCCFG_SDMEN; + usb_mdelay(50U); + + if (udev->regs.gr->GCCFG & GCCFG_SDF) + { + udev->regs.gr->GCCFG &= ~GCCFG_SDMEN; + usb_mdelay(20U); + + return BCD_DCP; + } + else + { + udev->regs.gr->GCCFG &= ~GCCFG_SDMEN; + usb_mdelay(20U); + + return BCD_CDP; + } + } + else if (udev->regs.gr->GCCFG & GCCFG_PS2F) + { + udev->regs.gr->GCCFG &= ~GCCFG_PEMEN; + usb_mdelay(20U); + + return BCD_PS2; + } + else + { + udev->regs.gr->GCCFG &= ~GCCFG_PEMEN; + usb_mdelay(20U); + + return BCD_SDP; + } +} + +#endif /* BSP_USING_USB && RT_USING_USB_DEVICE */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.h new file mode 100644 index 00000000000..811aa3c321e --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_dev.h @@ -0,0 +1,195 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USB_DEV_H +#define DRV_USB_DEV_H + +#include "drv_usb_core.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_DEVICE) + +#define EP_IN(x) ((uint8_t)(0x80U | (x))) /*!< device IN endpoint */ +#define EP_OUT(x) ((uint8_t)(x)) /*!< device OUT endpoint */ +#define EP_MAX_PACKET_SIZE_MASK 0x07FFU /*!< endpoint maximum packet size mask */ + +#define USB_MIN(a, b) (((a) < (b)) ? (a) : (b)) + +/* static inline function definitions */ + +/*! + \brief configure the USB device to be disconnected + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_dev_disconnect(usb_core_driver *udev) +{ + udev->regs.dr->DCTL |= DCTL_SD; +} + +/*! + \brief configure the USB device to be connected + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_dev_connect(usb_core_driver *udev) +{ + udev->regs.dr->DCTL &= ~DCTL_SD; +} + +/*! + \brief set the USB device address + \param[in] udev: pointer to USB device + \param[in] dev_addr: device address for setting + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_devaddr_set(usb_core_driver *udev, uint8_t dev_addr) +{ + udev->regs.dr->DCFG &= ~DCFG_DAR; + udev->regs.dr->DCFG |= (uint32_t)dev_addr << 4; +} + +/*! + \brief read device all OUT endpoint interrupt register + \param[in] udev: pointer to USB device + \param[out] none + \retval interrupt status +*/ +__STATIC_INLINE uint32_t usb_oepintnum_read(usb_core_driver *udev) +{ + uint32_t value = udev->regs.dr->DAEPINT; + + value &= udev->regs.dr->DAEPINTEN; + + return (value & DAEPINT_OEPITB) >> 16; +} + +/*! + \brief read device OUT endpoint interrupt flag register + \param[in] udev: pointer to USB device + \param[in] ep_num: endpoint number + \param[out] none + \retval interrupt status +*/ +__STATIC_INLINE uint32_t usb_oepintr_read(usb_core_driver *udev, uint8_t ep_num) +{ + uint32_t value = udev->regs.er_out[ep_num]->DOEPINTF; + + value &= udev->regs.dr->DOEPINTEN; + + return value; +} + +/*! + \brief read device all IN endpoint interrupt register + \param[in] udev: pointer to USB device + \param[out] none + \retval interrupt status +*/ +__STATIC_INLINE uint32_t usb_iepintnum_read(usb_core_driver *udev) +{ + uint32_t value = udev->regs.dr->DAEPINT; + + value &= udev->regs.dr->DAEPINTEN; + + return value & DAEPINT_IEPITB; +} + +/*! + \brief set remote wakeup signaling + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_rwkup_set(usb_core_driver *udev) +{ + if (udev->dev.pm.dev_remote_wakeup) + { + /* enable remote wakeup signaling */ + udev->regs.dr->DCTL |= DCTL_RWKUP; + } +} + +/*! + \brief reset remote wakeup signaling + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_rwkup_reset(usb_core_driver *udev) +{ + if (udev->dev.pm.dev_remote_wakeup) + { + /* disable remote wakeup signaling */ + udev->regs.dr->DCTL &= ~DCTL_RWKUP; + } +} + +/*! + \brief enable USB BCD function + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_bcd_enable(usb_core_driver *udev) +{ + udev->regs.gr->GCCFG |= GCCFG_BCDEN; +} + +/*! + \brief disable USB BCD function + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +__STATIC_INLINE void usb_bcd_disable(usb_core_driver *udev) +{ + udev->regs.gr->GCCFG &= ~GCCFG_BCDEN; +} + +/* function declarations */ +/* initialize USB core registers for device mode */ +usb_status usb_devcore_init(usb_core_driver *udev); +/* enable the USB device mode interrupts */ +usb_status usb_devint_enable(usb_core_driver *udev); +/* active the USB endpoint 0 transaction */ +usb_status usb_transc0_active(usb_core_driver *udev, usb_transc *transc); +/* active the USB transaction */ +usb_status usb_ep_active(usb_core_driver *udev, uint8_t ep_addr, uint16_t ep_mps, uint8_t ep_attr); +/* deactivate the USB transaction */ +usb_status usb_ep_deactivate(usb_core_driver *udev, uint8_t ep_addr); +/* configure USB transaction to start IN transfer */ +usb_status usb_ep_inxfer(usb_core_driver *udev, uint8_t ep_addr, uint8_t *buf, uint16_t count); +/* configure USB transaction to start OUT transfer */ +usb_status usb_ep_outxfer(usb_core_driver *udev, uint8_t ep_addr, uint8_t *buf, uint16_t count); +/* set the USB transaction STALL status */ +usb_status usb_ep_stall(usb_core_driver *udev, uint8_t ep_addr); +/* clear the USB transaction STALL status */ +usb_status usb_ep_clrstall(usb_core_driver *udev, uint8_t ep_addr); +/* read device IN endpoint interrupt flag register */ +uint32_t usb_iepintr_read(usb_core_driver *udev, uint8_t ep_num); +/* configures OUT endpoint 0 to receive SETUP packets */ +void usb_ctlep_startout(usb_core_driver *udev); +/* active remote wakeup signaling */ +void usb_rwkup_active(usb_core_driver *udev); +/* active USB core clock */ +void usb_clock_active(usb_core_driver *udev); +/* USB device suspend */ +void usb_dev_suspend(usb_core_driver *udev); +/* stop the device and clean up FIFOs */ +void usb_dev_stop(usb_core_driver *udev); +/* USB battery charging detect operation */ +bcd_type usbd_bcd_detect(usb_core_driver *udev); + +#endif /* BSP_USING_USB && RT_USING_USB_DEVICE */ + +#endif /* DRV_USB_DEV_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.c new file mode 100644 index 00000000000..527b184e00d --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.c @@ -0,0 +1,448 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usb_hw.h" +#include "drv_usb_host.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +const uint32_t PIPE_DPID[2] = { + PIPE_DPID_DATA0, + PIPE_DPID_DATA1 +}; + +/*! + \brief initializes USB core for host mode + \param[in] udev: pointer to selected USB host + \param[out] none + \retval operation status +*/ +usb_status usb_host_init(usb_core_driver *udev) +{ + uint32_t i = 0U, inten = 0U; + + uint32_t nptxfifolen = 0U; + uint32_t ptxfifolen = 0U; + + /* restart the PHY Clock */ + *udev->regs.PWRCLKCTL = 0U; + + /* support HS, FS and LS */ + udev->regs.hr->HCTL &= ~HCTL_SPDFSLS; + + /* set RX FIFO size */ + udev->regs.gr->GRFLEN = USB_HOST_RX_FIFO_SIZE; + + /* set non-periodic TX FIFO size and address */ + nptxfifolen |= USB_HOST_RX_FIFO_SIZE; + nptxfifolen |= USB_HOST_TX_NPFIFO_SIZE << 16; + udev->regs.gr->DIEP0TFLEN_HNPTFLEN = nptxfifolen; + + /* set periodic TX FIFO size and address */ + ptxfifolen |= USB_HOST_RX_FIFO_SIZE + USB_HOST_TX_PFIFO_SIZE; + ptxfifolen |= USB_HOST_TX_PFIFO_SIZE << 16; + udev->regs.gr->HPTFLEN = ptxfifolen; + +#ifdef USE_OTG_MODE + /* clear host set HNP enable in the usb_otg control register */ + udev->regs.gr->GOTGCS &= ~GOTGCS_HHNPEN; +#endif /* USE_OTG_MODE */ + + /* make sure the FIFOs are flushed */ + + /* flush all TX FIFOs in device or host mode */ + usb_txfifo_flush(&udev->regs, 0x10U); + + /* flush the entire RX FIFO */ + usb_rxfifo_flush(&udev->regs); + + /* disable all interrupts */ + udev->regs.gr->GINTEN = 0U; + + /* clear any pending USB OTG interrupts */ + udev->regs.gr->GOTGINTF = 0xFFFFFFFFU; + + /* enable the USB wakeup and suspend interrupts */ + udev->regs.gr->GINTF = 0xBFFFFFFFU; + + /* clear all pending host channel interrupts */ + for (i = 0U; i < udev->bp.num_pipe; i++) + { + udev->regs.pr[i]->HCHINTF = 0xFFFFFFFFU; + udev->regs.pr[i]->HCHINTEN = 0U; + } + +#ifndef USE_OTG_MODE + usb_portvbus_switch(udev, 1U); +#endif /* USE_OTG_MODE */ + + udev->regs.gr->GINTEN = GINTEN_WKUPIE | GINTEN_SPIE; + + /* enable host_mode-related interrupts */ + if (USB_USE_FIFO == udev->bp.transfer_mode) + { + inten = GINTEN_RXFNEIE; + } + + /* configure USBHS interrupts */ + inten |= GINTEN_HPIE | GINTEN_HCIE | GINTEN_ISOINCIE; + udev->regs.gr->GINTEN |= inten; + + inten = GINTEN_DISCIE | GINTEN_SOFIE; + udev->regs.gr->GINTEN &= ~inten; + + return USB_OK; +} + +/*! + \brief control the VBUS to power + \param[in] udev: pointer to selected USB host + \param[in] state: VBUS state + \param[out] none + \retval none +*/ +void usb_portvbus_switch(usb_core_driver *udev, uint8_t state) +{ + uint32_t port = 0U; + + /* enable or disable the external charge pump */ + usb_vbus_drive(state); + + /* turn on the host port power. */ + port = usb_port_read(udev); + + if ((!(port & HPCS_PP)) && (1U == state)) + { + port |= HPCS_PP; + } + + if ((port & HPCS_PP) && (0U == state)) + { + port &= ~HPCS_PP; + } + + *udev->regs.HPCS = port; + + usb_mdelay(200U); +} + +/*! + \brief reset host port + \param[in] udev: pointer to USB device + \param[out] none + \retval operation status +*/ +uint32_t usb_port_reset(usb_core_driver *udev) +{ + __IO uint32_t port = usb_port_read(udev); + + *udev->regs.HPCS = port | HPCS_PRST; + + usb_mdelay(20U); /* see note */ + + *udev->regs.HPCS = port & ~HPCS_PRST; + + usb_mdelay(20U); + + return 1U; +} + +/*! + \brief initialize host pipe + \param[in] udev: pointer to USB device + \param[in] pipe_num: host pipe number which is in (0..7) + \param[out] none + \retval operation status +*/ +usb_status usb_pipe_init(usb_core_driver *udev, uint8_t pipe_num) +{ + usb_status status = USB_OK; + + __IO uint32_t pp_ctl = 0U; + __IO uint32_t pp_inten = HCHINTEN_TFIE; + + usb_pipe *pp = &udev->host.pipe[pipe_num]; + + /* clear old interrupt conditions for this host channel */ + udev->regs.pr[pipe_num]->HCHINTF = 0xFFFFFFFFU; + + if (USB_USE_DMA == udev->bp.transfer_mode) + { + pp_inten |= HCHINTEN_DMAERIE; + } + + if (pp->ep.dir) + { + pp_inten |= HCHINTEN_BBERIE; + } + + /* enable channel interrupts required for this transfer */ + switch (pp->ep.type) + { + case USB_EPTYPE_CTRL: + case USB_EPTYPE_BULK: + pp_inten |= HCHINTEN_STALLIE | HCHINTEN_USBERIE | HCHINTEN_DTERIE | HCHINTEN_NAKIE; + + if (!pp->ep.dir) + { + if (PORT_SPEED_HIGH == pp->dev_speed) + { + pp_inten |= HCHINTEN_NYETIE; + pp_inten |= HCHINTEN_ACKIE; + } + } + break; + + case USB_EPTYPE_INTR: + pp_inten |= HCHINTEN_STALLIE | HCHINTEN_USBERIE | HCHINTEN_DTERIE | HCHINTEN_NAKIE | HCHINTEN_REQOVRIE; + break; + + case USB_EPTYPE_ISOC: + pp_inten |= HCHINTEN_REQOVRIE | HCHINTEN_ACKIE; + + if (pp->ep.dir) + { + pp_inten |= HCHINTEN_USBERIE; + } + break; + + default: + break; + } + + udev->regs.pr[pipe_num]->HCHINTEN = pp_inten; + + /* enable the top level host channel interrupt */ + udev->regs.hr->HACHINTEN |= 1U << pipe_num; + + /* make sure host channel interrupts are enabled */ + udev->regs.gr->GINTEN |= GINTEN_HCIE; + + /* program the host channel control register */ + pp_ctl |= PIPE_CTL_DAR(pp->dev_addr); + pp_ctl |= PIPE_CTL_EPNUM(pp->ep.num); + pp_ctl |= PIPE_CTL_EPDIR(pp->ep.dir); + pp_ctl |= PIPE_CTL_EPTYPE(pp->ep.type); + pp_ctl |= PIPE_CTL_LSD(PORT_SPEED_LOW == pp->dev_speed); + + pp_ctl |= pp->ep.mps; + pp_ctl |= ((uint32_t)(USB_EPTYPE_INTR == pp->ep.type) << 29) & HCHCTL_ODDFRM; + + udev->regs.pr[pipe_num]->HCHCTL = pp_ctl; + + return status; +} + +/*! + \brief prepare host channel for transferring packets + \param[in] udev: pointer to USB device + \param[in] pipe_num: host pipe number which is in (0..7) + \param[out] none + \retval operation status +*/ +usb_status usb_pipe_xfer(usb_core_driver *udev, uint8_t pipe_num) +{ + usb_status status = USB_OK; + + uint16_t dword_len = 0U; + uint16_t packet_count = 0U; + + __IO uint32_t pp_ctl = 0U; + + usb_pipe *pp = &udev->host.pipe[pipe_num]; + + uint16_t max_packet_len = pp->ep.mps; + + /* compute the expected number of packets associated to the transfer */ + if (pp->xfer_len > 0U) + { + packet_count = (uint16_t)((pp->xfer_len + max_packet_len - 1U) / max_packet_len); + + if (packet_count > HC_MAX_PACKET_COUNT) + { + packet_count = HC_MAX_PACKET_COUNT; + pp->xfer_len = (uint16_t)(packet_count * max_packet_len); + } + } + else + { + packet_count = 1U; + } + + if (pp->ep.dir) + { + pp->xfer_len = (uint16_t)(packet_count * max_packet_len); + } + + /* initialize the host channel transfer information */ + udev->regs.pr[pipe_num]->HCHLEN = pp->xfer_len | pp->DPID | PIPE_XFER_PCNT(packet_count); + + if (USB_USE_DMA == udev->bp.transfer_mode) + { + udev->regs.pr[pipe_num]->HCHDMAADDR = (unsigned int)pp->xfer_buf; + } + + pp_ctl = udev->regs.pr[pipe_num]->HCHCTL; + + if (usb_frame_even(udev)) + { + pp_ctl |= HCHCTL_ODDFRM; + } + else + { + pp_ctl &= ~HCHCTL_ODDFRM; + } + + /* set host channel enabled */ + pp_ctl |= HCHCTL_CEN; + pp_ctl &= ~HCHCTL_CDIS; + + udev->regs.pr[pipe_num]->HCHCTL = pp_ctl; + + if (USB_USE_FIFO == udev->bp.transfer_mode) + { + if ((0U == pp->ep.dir) && (pp->xfer_len > 0U)) + { + switch (pp->ep.type) + { + /* non-periodic transfer */ + case USB_EPTYPE_CTRL: + case USB_EPTYPE_BULK: + dword_len = (uint16_t)((pp->xfer_len + 3U) / 4U); + + /* check if there is enough space in FIFO space */ + if (dword_len > (udev->regs.gr->HNPTFQSTAT & HNPTFQSTAT_NPTXFS)) + { + /* need to process data in nptxfempty interrupt */ + udev->regs.gr->GINTEN |= GINTEN_NPTXFEIE; + } + break; + + /* periodic transfer */ + case USB_EPTYPE_INTR: + case USB_EPTYPE_ISOC: + dword_len = (uint16_t)((pp->xfer_len + 3U) / 4U); + + /* check if there is enough space in FIFO space */ + if (dword_len > (udev->regs.hr->HPTFQSTAT & HPTFQSTAT_PTXFS)) + { + /* need to process data in ptxfempty interrupt */ + udev->regs.gr->GINTEN |= GINTEN_PTXFEIE; + } + break; + + default: + break; + } + + /* write packet into the TX FIFO */ + usb_txfifo_write(&udev->regs, pp->xfer_buf, pipe_num, (uint16_t)pp->xfer_len); + } + } + + return status; +} + +/*! + \brief halt pipe + \param[in] udev: pointer to USB device + \param[in] pipe_num: host pipe number which is in (0..7) + \param[out] none + \retval operation status +*/ +usb_status usb_pipe_halt(usb_core_driver *udev, uint8_t pipe_num) +{ + __IO uint32_t pp_ctl = udev->regs.pr[pipe_num]->HCHCTL; + + uint8_t ep_type = (uint8_t)((pp_ctl & HCHCTL_EPTYPE) >> 18U); + + pp_ctl |= HCHCTL_CEN | HCHCTL_CDIS; + + switch (ep_type) + { + case USB_EPTYPE_CTRL: + case USB_EPTYPE_BULK: + if (0U == (udev->regs.gr->HNPTFQSTAT & HNPTFQSTAT_NPTXFS)) + { + pp_ctl &= ~HCHCTL_CEN; + } + break; + + case USB_EPTYPE_INTR: + case USB_EPTYPE_ISOC: + if (0U == (udev->regs.hr->HPTFQSTAT & HPTFQSTAT_PTXFS)) + { + pp_ctl &= ~HCHCTL_CEN; + } + break; + + default: + break; + } + + udev->regs.pr[pipe_num]->HCHCTL = pp_ctl; + + return USB_OK; +} + +/*! + \brief configure host pipe to do ping operation + \param[in] udev: pointer to USB device + \param[in] pipe_num: host pipe number which is in (0..7) + \param[out] none + \retval operation status +*/ +usb_status usb_pipe_ping(usb_core_driver *udev, uint8_t pipe_num) +{ + uint32_t pp_ctl = 0U; + + udev->regs.pr[pipe_num]->HCHLEN = HCHLEN_PING; + + pp_ctl = udev->regs.pr[pipe_num]->HCHCTL; + + pp_ctl |= HCHCTL_CEN; + pp_ctl &= ~HCHCTL_CDIS; + + udev->regs.pr[pipe_num]->HCHCTL = pp_ctl; + + return USB_OK; +} + +/*! + \brief stop the USB host and clean up FIFO + \param[in] udev: pointer to USB device + \param[out] none + \retval none +*/ +void usb_host_stop(usb_core_driver *udev) +{ + uint32_t i; + __IO uint32_t pp_ctl = 0U; + + udev->regs.hr->HACHINTEN = 0x0U; + udev->regs.hr->HACHINT = 0xFFFFFFFFU; + + /* flush out any leftover queued requests. */ + for (i = 0U; i < udev->bp.num_pipe; i++) + { + pp_ctl = udev->regs.pr[i]->HCHCTL; + + pp_ctl &= ~(HCHCTL_CEN | HCHCTL_EPDIR); + pp_ctl |= HCHCTL_CDIS; + + udev->regs.pr[i]->HCHCTL = pp_ctl; + } + + /* flush the FIFO */ + usb_rxfifo_flush(&udev->regs); + usb_txfifo_flush(&udev->regs, 0x10U); +} + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.h new file mode 100644 index 00000000000..eec31f6ae5a --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_host.h @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USB_HOST_H +#define DRV_USB_HOST_H + +#include "drv_usb_core.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +typedef enum +{ + USBH_OK = 0U, + USBH_BUSY, + USBH_FAIL, + USBH_NOT_SUPPORTED, + USBH_UNRECOVERED_ERROR, + USBH_SPEED_UNKNOWN_ERROR, + USBH_APPLY_DEINIT +} usbh_status; + +/*! + \brief get USB even frame + \param[in] udev: pointer to USB device + \param[out] none + \retval USB even frame state +*/ +__STATIC_INLINE uint8_t usb_frame_even(usb_core_driver *udev) +{ + return (uint8_t) !(udev->regs.hr->HFINFR & 0x01U); +} + +/*! + \brief read USB port + \param[in] udev: pointer to USB device + \param[out] none + \retval port status +*/ +__STATIC_INLINE uint32_t usb_port_read(usb_core_driver *udev) +{ + return *udev->regs.HPCS & ~(HPCS_PE | HPCS_PCD | HPCS_PEDC); +} + +/*! + \brief get USB current speed + \param[in] udev: pointer to USB device + \param[out] none + \retval USB current speed +*/ +__STATIC_INLINE uint32_t usb_curspeed_get(usb_core_driver *udev) +{ + return *udev->regs.HPCS & HPCS_PS; +} + +/*! + \brief get USB current frame + \param[in] udev: pointer to USB device + \param[out] none + \retval USB current frame +*/ +__STATIC_INLINE uint32_t usb_curframe_get(usb_core_driver *udev) +{ + return (udev->regs.hr->HFINFR & 0xFFFFU); +} + +/* function declarations */ +/* initializes USB core for host mode */ +usb_status usb_host_init(usb_core_driver *udev); +/* control the VBUS to power */ +void usb_portvbus_switch(usb_core_driver *udev, uint8_t state); +/* reset host port */ +uint32_t usb_port_reset(usb_core_driver *udev); +/* initialize host pipe */ +usb_status usb_pipe_init(usb_core_driver *udev, uint8_t pipe_num); +/* prepare host pipe for transferring packets */ +usb_status usb_pipe_xfer(usb_core_driver *udev, uint8_t pipe_num); +/* halt host pipe */ +usb_status usb_pipe_halt(usb_core_driver *udev, uint8_t pipe_num); +/* configure host pipe to do ping operation */ +usb_status usb_pipe_ping(usb_core_driver *udev, uint8_t pipe_num); +/* stop the USB host and clean up FIFO */ +void usb_host_stop(usb_core_driver *udev); + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ + +#endif /* DRV_USB_HOST_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_hw.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_hw.h new file mode 100644 index 00000000000..413252160f5 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_hw.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USB_HW_H +#define DRV_USB_HW_H + +#include "drv_usb_core.h" + +/* function declarations */ +/* configure USB clock */ +void usb_rcu_config(uint32_t usb_periph); +/* configure USB data line GPIO */ +void usb_gpio_config(void); +/* configure USB interrupt */ +void usb_intr_config(uint32_t usb_periph); +/* delay in microseconds */ +void usb_udelay(const uint32_t usec); +/* delay in milliseconds */ +void usb_mdelay(const uint32_t msec); + +/* configure USB clock */ +void pllusb_rcu_config(uint32_t usb_periph); + +#if defined(RT_USING_USB_HOST) +/* configure systick */ +void systick_config(void); +/* configure USB VBus */ +void usb_vbus_config(void); +/* drive USB VBus */ +void usb_vbus_drive(uint8_t State); +#endif /* RT_USING_USB_HOST */ + +#endif /* DRV_USB_HW_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_regs.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_regs.h new file mode 100644 index 00000000000..9bfb372bf37 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usb_regs.h @@ -0,0 +1,728 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USB_REGS_H +#define DRV_USB_REGS_H + +#include "usb_conf.h" + +#define USBHS0 USBHS_BASE +#define USBHS1 (USBHS_BASE + 0x00040000U) + +#define USBHS0_REG_BASE USBHS0 /*!< base address of USBHS0 registers */ +#define USBHS1_REG_BASE USBHS1 /*!< base address of USBHS1 registers */ + +/* register definition */ + +#define USBHS_MAX_TX_FIFOS 16U /*!< FIFO number */ + +typedef struct +{ + __IO uint32_t GOTGCS; /*!< USB global OTG control and status register 000h */ + __IO uint32_t GOTGINTF; /*!< USB global OTG interrupt flag register 004h */ + __IO uint32_t GAHBCS; /*!< USB global AHB control and status register 008h */ + __IO uint32_t GUSBCS; /*!< USB global USB control and status register 00Ch */ + __IO uint32_t GRSTCTL; /*!< USB global reset control register 010h */ + __IO uint32_t GINTF; /*!< USB global interrupt flag register 014h */ + __IO uint32_t GINTEN; /*!< USB global interrupt enable register 018h */ + __IO uint32_t GRSTATR; /*!< USB receive status debug read register 01Ch */ + __IO uint32_t GRSTATP; /*!< USB receive status and pop register 020h */ + __IO uint32_t GRFLEN; /*!< USB global receive FIFO length register 024h */ + __IO uint32_t DIEP0TFLEN_HNPTFLEN; /*!< USB device IN endpoint 0/host non-periodic transmit FIFO length register 028h */ + __IO uint32_t HNPTFQSTAT; /*!< USB host non-periodic FIFO/queue status register 02Ch */ + uint32_t Reserved30[2]; /*!< Reserved 030h */ + __IO uint32_t GCCFG; /*!< USB global core configuration register 038h */ + __IO uint32_t CID; /*!< USB core ID register 03Ch */ + uint32_t Reserved40[5]; /*!< Reserved 040h-053h */ + __IO uint32_t GLPMCFG; /*!< LPM configuration register 54h */ + __IO uint32_t PWRD; /*!< power down register 58h */ + uint32_t Reserved5C; /*!< Reserved 5Ch */ + __IO uint32_t ADPCTL; /*!< ADP control and status register 60h */ + uint32_t Reserved64[3]; /*!< Reserved 64h-6Fh */ + __IO uint32_t PHYCTL; /*!< USBHS PHY control register 70h */ + uint32_t Reserved74[35]; /*!< Reserved 74h-FFh */ + __IO uint32_t HPTFLEN; /*!< USB host periodic transmit FIFO length register 100h */ + __IO uint32_t DIEPTFLEN[15]; /*!< USB device IN endpoint transmit FIFO length register 104h */ +} usb_gr; + +typedef struct +{ + __IO uint32_t HCTL; /*!< USB host control register 400h */ + __IO uint32_t HFT; /*!< USB host frame interval register 404h */ + __IO uint32_t HFINFR; /*!< USB host frame information remaining register 408h */ + uint32_t Reserved40C; /*!< Reserved 40Ch */ + __IO uint32_t HPTFQSTAT; /*!< USB host periodic transmit FIFO/queue status register 410h */ + __IO uint32_t HACHINT; /*!< USB host all channels interrupt register 414h */ + __IO uint32_t HACHINTEN; /*!< USB host all channels interrupt enable register 418h */ +} usb_hr; + +typedef struct +{ + __IO uint32_t HCHCTL; /*!< USB host channel control register 500h */ + __IO uint32_t HCHSTCTL; /*!< Reserved 504h */ + __IO uint32_t HCHINTF; /*!< USB host channel interrupt flag register 508h */ + __IO uint32_t HCHINTEN; /*!< USB host channel interrupt enable register 50Ch */ + __IO uint32_t HCHLEN; /*!< USB host channel transfer length register 510h */ + __IO uint32_t HCHDMAADDR; /*!< USB host channel-x DMA address register 514h*/ + uint32_t Reserved[2]; +} usb_pr; + +typedef struct +{ + __IO uint32_t DCFG; /*!< USB device configuration register 800h */ + __IO uint32_t DCTL; /*!< USB device control register 804h */ + __IO uint32_t DSTAT; /*!< USB device status register 808h */ + uint32_t Reserved0C; /*!< Reserved 80Ch */ + __IO uint32_t DIEPINTEN; /*!< USB device IN endpoint common interrupt enable register 810h */ + __IO uint32_t DOEPINTEN; /*!< USB device OUT endpoint common interrupt enable register 814h */ + __IO uint32_t DAEPINT; /*!< USB device all endpoints interrupt register 818h */ + __IO uint32_t DAEPINTEN; /*!< USB device all endpoints interrupt enable register 81Ch */ + uint32_t Reserved20; /*!< Reserved 820h */ + uint32_t Reserved24; /*!< Reserved 824h */ + __IO uint32_t DVBUSDT; /*!< USB device VBUS discharge time register 828h */ + __IO uint32_t DVBUSPT; /*!< USB device VBUS pulsing time register 82Ch */ + uint32_t Reserved30; /*!< Reserved 830h */ + __IO uint32_t DIEPFEINTEN; /*!< USB Device IN endpoint FIFO empty interrupt enable register 834h */ + __IO uint32_t DEP1INT; /*!< USB device endpoint 1 interrupt register 838h */ + __IO uint32_t DEP1INTEN; /*!< USB device endpoint 1 interrupt enable register 83Ch */ + uint32_t Reserved40; /*!< Reserved 840h */ + __IO uint32_t DIEP1INTEN; /*!< USB device IN endpoint-1 interrupt enable register 844h */ + uint32_t Reserved48[15]; /*!< Reserved 848-880h */ + __IO uint32_t DOEP1INTEN; /*!< USB device OUT endpoint-1 interrupt enable register 884h */ +} usb_dr; + +typedef struct +{ + __IO uint32_t DIEPCTL; /*!< USB device IN endpoint control register 900h + (EpNum * 20h) + 00h */ + uint32_t Reserved04; /*!< Reserved 900h + (EpNum * 20h) + 04h */ + __IO uint32_t DIEPINTF; /*!< USB device IN endpoint interrupt flag register 900h + (EpNum * 20h) + 08h */ + uint32_t Reserved0C; /*!< Reserved 900h + (EpNum * 20h) + 0Ch */ + __IO uint32_t DIEPLEN; /*!< USB device IN endpoint transfer length register 900h + (EpNum * 20h) + 10h */ + __IO uint32_t DIEPDMAADDR; /*!< Device IN endpoint-x DMA address register 900h + (EpNum * 20h) + 14h */ + __IO uint32_t DIEPTFSTAT; /*!< USB device IN endpoint transmit FIFO status register 900h + (EpNum * 20h) + 18h */ +} usb_erin; + +typedef struct +{ + __IO uint32_t DOEPCTL; /*!< USB device IN endpoint control register B00h + (EpNum * 20h) + 00h */ + uint32_t Reserved04; /*!< Reserved B00h + (EpNum * 20h) + 04h */ + __IO uint32_t DOEPINTF; /*!< USB device IN endpoint interrupt flag register B00h + (EpNum * 20h) + 08h */ + uint32_t Reserved0C; /*!< Reserved B00h + (EpNum * 20h) + 0Ch */ + __IO uint32_t DOEPLEN; /*!< USB device IN endpoint transfer length register B00h + (EpNum * 20h) + 10h */ + __IO uint32_t DOEPDMAADDR; /*!< Device OUT endpoint-x DMA address register B00h + (EpNum * 20h) + 0Ch */ +} usb_erout; + +typedef struct _usb_regs +{ + usb_gr *gr; /*!< USBHS global registers */ + usb_dr *dr; /*!< device control and status registers */ + usb_hr *hr; /*!< host control and status registers */ + usb_erin *er_in[8]; /*!< USB device IN endpoint register */ + usb_erout *er_out[8]; /*!< USB device OUT endpoint register */ + usb_pr *pr[16]; /*!< USB Host channel-x control register */ + + __IO uint32_t *HPCS; /*!< USB host port control and status register */ + __IO uint32_t *DFIFO[USBHS_MAX_TX_FIFOS]; + __IO uint32_t *PWRCLKCTL; /*!< USB power and clock control register */ +} usb_core_regs; + +/* global OTG control and status register bits definitions */ +#define GOTGCS_OV BIT(20) /*!< select OTG version */ +#define GOTGCS_BSV BIT(19) /*!< B-Session Valid */ +#define GOTGCS_ASV BIT(18) /*!< A-session valid */ +#define GOTGCS_DI BIT(17) /*!< debounce interval */ +#define GOTGCS_IDPS BIT(16) /*!< id pin status */ +#define GOTGCS_EHE BIT(12) /*!< embedded host enable */ +#define GOTGCS_DHNPEN BIT(11) /*!< device HNP enable */ +#define GOTGCS_HHNPEN BIT(10) /*!< host HNP enable */ +#define GOTGCS_HNPREQ BIT(9) /*!< HNP request */ +#define GOTGCS_HNPS BIT(8) /*!< HNP successes */ +#define GOTGCS_BVOV BIT(7) /*!< override value of B-peripheral session valid */ +#define GOTGCS_BVOE BIT(6) /*!< override enable of B-peripheral session valid */ +#define GOTGCS_AVOV BIT(5) /*!< override value of A-peripheral session valid */ +#define GOTGCS_AVOE BIT(4) /*!< override enable of A-peripheral session valid */ +#define GOTGCS_VOV BIT(3) /*!< override value of VBUS valid */ +#define GOTGCS_VOE BIT(2) /*!< override enable of VBUS valid */ +#define GOTGCS_SRPREQ BIT(1) /*!< SRP request */ +#define GOTGCS_SRPS BIT(0) /*!< SRP successes */ + +/* global OTG interrupt flag register bits definitions */ +#define GOTGINTF_IDCHG BIT(20) /*!< ID input change */ +#define GOTGINTF_DF BIT(19) /*!< debounce finish */ +#define GOTGINTF_ADTO BIT(18) /*!< A-device timeout */ +#define GOTGINTF_HNPDET BIT(17) /*!< host negotiation request detected */ +#define GOTGINTF_HNPEND BIT(9) /*!< HNP end */ +#define GOTGINTF_SRPEND BIT(8) /*!< SRP end */ +#define GOTGINTF_SESEND BIT(2) /*!< session end */ + +/* global AHB control and status register bits definitions */ +#define GAHBCS_PTXFTH BIT(8) /*!< periodic Tx FIFO threshold */ +#define GAHBCS_TXFTH BIT(7) /*!< tx FIFO threshold */ +#define GAHBCS_DMAEN BIT(5) /*!< DMA function Enable */ +#define GAHBCS_BURST BITS(1, 4) /*!< the AHB burst type used by DMA */ +#define GAHBCS_GINTEN BIT(0) /*!< global interrupt enable */ + +/* global USB control and status register bits definitions */ +#define GUSBCS_FDM BIT(30) /*!< force device mode */ +#define GUSBCS_FHM BIT(29) /*!< force host mode */ +#define GUSBCS_ULPIEOI BIT(21) /*!< ULPI external over-current indicator */ +#define GUSBCS_ULPIEVD BIT(20) /*!< ULPI external VBUS driver */ +#define GUSBCS_UTT BITS(10, 13) /*!< USB turnaround time */ +#define GUSBCS_HNPCEN BIT(9) /*!< HNP capability enable */ +#define GUSBCS_SRPCEN BIT(8) /*!< SRP capability enable */ +#define GUSBCS_EMBPHY_FS BIT(6) /*!< embedded FS PHY selected */ +#define GUSBCS_EMBPHY_HS BIT(5) /*!< embedded HS PHY selected */ +#define GUSBCS_HS_CUR_FE BIT(4) /*!< HS current software enable */ +#define GUSBCS_TOC BITS(0, 2) /*!< timeout calibration */ + +/* global reset control register bits definitions */ +#define GRSTCTL_DMAIDL BIT(31) /*!< DMA idle state */ +#define GRSTCTL_DMABSY BIT(30) /*!< DMA busy */ +#define GRSTCTL_TXFNUM BITS(6, 10) /*!< tx FIFO number */ +#define GRSTCTL_TXFF BIT(5) /*!< tx FIFO flush */ +#define GRSTCTL_RXFF BIT(4) /*!< rx FIFO flush */ +#define GRSTCTL_HFCRST BIT(2) /*!< host frame counter reset */ +#define GRSTCTL_HCSRST BIT(1) /*!< HCLK soft reset */ +#define GRSTCTL_CSRST BIT(0) /*!< core soft reset */ + +/* global interrupt flag register bits definitions */ +#define GINTF_WKUPIF BIT(31) /*!< wakeup interrupt flag */ +#define GINTF_SESIF BIT(30) /*!< session interrupt flag */ +#define GINTF_DISCIF BIT(29) /*!< disconnect interrupt flag */ +#define GINTF_IDPSC BIT(28) /*!< id pin status change */ +#define GINTF_LPMIF BIT(27) /*!< LPM interrupt flag */ +#define GINTF_PTXFEIF BIT(26) /*!< periodic tx FIFO empty interrupt flag */ +#define GINTF_HCIF BIT(25) /*!< host channels interrupt flag */ +#define GINTF_HPIF BIT(24) /*!< host port interrupt flag */ +#define GINTF_PXNCIF BIT(21) /*!< periodic transfer not complete interrupt flag */ +#define GINTF_ISOONCIF BIT(21) /*!< isochronous OUT transfer not complete interrupt flag */ +#define GINTF_ISOINCIF BIT(20) /*!< isochronous IN transfer not complete interrupt flag */ +#define GINTF_OEPIF BIT(19) /*!< OUT endpoint interrupt flag */ +#define GINTF_IEPIF BIT(18) /*!< IN endpoint interrupt flag */ +#define GINTF_EOPFIF BIT(15) /*!< end of periodic frame interrupt flag */ +#define GINTF_ISOOPDIF BIT(14) /*!< isochronous OUT packet dropped interrupt flag */ +#define GINTF_ENUMFIF BIT(13) /*!< enumeration finished */ +#define GINTF_RST BIT(12) /*!< USB reset */ +#define GINTF_SP BIT(11) /*!< USB suspend */ +#define GINTF_ESP BIT(10) /*!< early suspend */ +#define GINTF_GONAK BIT(7) /*!< global OUT NAK effective */ +#define GINTF_GNPINAK BIT(6) /*!< global IN non-periodic NAK effective */ +#define GINTF_NPTXFEIF BIT(5) /*!< non-periodic tx FIFO empty interrupt flag */ +#define GINTF_RXFNEIF BIT(4) /*!< rx FIFO non-empty interrupt flag */ +#define GINTF_SOF BIT(3) /*!< start of frame */ +#define GINTF_OTGIF BIT(2) /*!< OTG interrupt flag */ +#define GINTF_MFIF BIT(1) /*!< mode fault interrupt flag */ +#define GINTF_COPM BIT(0) /*!< current operation mode */ + +/* global interrupt enable register bits definitions */ +#define GINTEN_WKUPIE BIT(31) /*!< wakeup interrupt enable */ +#define GINTEN_SESIE BIT(30) /*!< session interrupt enable */ +#define GINTEN_DISCIE BIT(29) /*!< disconnect interrupt enable */ +#define GINTEN_IDPSCIE BIT(28) /*!< id pin status change interrupt enable */ +#define GINTEN_LPMIE BIT(27) /*!< LPM interrupt enable */ +#define GINTEN_PTXFEIE BIT(26) /*!< periodic tx FIFO empty interrupt enable */ +#define GINTEN_HCIE BIT(25) /*!< host channels interrupt enable */ +#define GINTEN_HPIE BIT(24) /*!< host port interrupt enable */ +#define GINTEN_IPXIE BIT(21) /*!< periodic transfer not complete interrupt enable */ +#define GINTEN_ISOONCIE BIT(21) /*!< isochronous OUT transfer not complete interrupt enable */ +#define GINTEN_ISOINCIE BIT(20) /*!< isochronous IN transfer not complete interrupt enable */ +#define GINTEN_OEPIE BIT(19) /*!< OUT endpoints interrupt enable */ +#define GINTEN_IEPIE BIT(18) /*!< IN endpoints interrupt enable */ +#define GINTEN_EOPFIE BIT(15) /*!< end of periodic frame interrupt enable */ +#define GINTEN_ISOOPDIE BIT(14) /*!< isochronous OUT packet dropped interrupt enable */ +#define GINTEN_ENUMFIE BIT(13) /*!< enumeration finish enable */ +#define GINTEN_RSTIE BIT(12) /*!< USB reset interrupt enable */ +#define GINTEN_SPIE BIT(11) /*!< USB suspend interrupt enable */ +#define GINTEN_ESPIE BIT(10) /*!< early suspend interrupt enable */ +#define GINTEN_GONAKIE BIT(7) /*!< global OUT NAK effective interrupt enable */ +#define GINTEN_GNPINAKIE BIT(6) /*!< global non-periodic IN NAK effective interrupt enable */ +#define GINTEN_NPTXFEIE BIT(5) /*!< non-periodic Tx FIFO empty interrupt enable */ +#define GINTEN_RXFNEIE BIT(4) /*!< receive FIFO non-empty interrupt enable */ +#define GINTEN_SOFIE BIT(3) /*!< start of frame interrupt enable */ +#define GINTEN_OTGIE BIT(2) /*!< OTG interrupt enable */ +#define GINTEN_MFIE BIT(1) /*!< mode fault interrupt enable */ + +/* global receive status read and pop register bits definitions */ +#define GRSTATRP_RPCKST BITS(17, 20) /*!< received packet status */ +#define GRSTATRP_DPID BITS(15, 16) /*!< data PID */ +#define GRSTATRP_BCOUNT BITS(4, 14) /*!< byte count */ +#define GRSTATRP_CNUM BITS(0, 3) /*!< channel number */ +#define GRSTATRP_EPNUM BITS(0, 3) /*!< endpoint number */ + +/* global receive FIFO length register bits definitions */ +#define GRFLEN_RXFD BITS(0, 15) /*!< rx FIFO depth */ + +/* host non-periodic transmit FIFO length register bits definitions */ +#define HNPTFLEN_HNPTXFD BITS(16, 31) /*!< non-periodic Tx FIFO depth */ +#define HNPTFLEN_HNPTXRSAR BITS(0, 15) /*!< non-periodic Tx RAM start address */ + +/* USB IN endpoint 0 transmit FIFO length register bits definitions */ +#define DIEP0TFLEN_IEP0TXFD BITS(16, 31) /*!< IN Endpoint 0 Tx FIFO depth */ +#define DIEP0TFLEN_IEP0TXRSAR BITS(0, 15) /*!< IN Endpoint 0 TX RAM start address */ + +/* host non-periodic transmit FIFO/queue status register bits definitions */ +#define HNPTFQSTAT_NPTXRQTOP BITS(24, 30) /*!< top entry of the non-periodic Tx request queue */ +#define HNPTFQSTAT_NPTXRQS BITS(16, 23) /*!< non-periodic Tx request queue space */ +#define HNPTFQSTAT_NPTXFS BITS(0, 15) /*!< non-periodic Tx FIFO space */ +#define HNPTFQSTAT_CNUM BITS(27, 30) /*!< channel number*/ +#define HNPTFQSTAT_EPNUM BITS(27, 30) /*!< endpoint number */ +#define HNPTFQSTAT_TYPE BITS(25, 26) /*!< token type */ +#define HNPTFQSTAT_TMF BIT(24) /*!< terminate flag */ + +/* global core configuration register bits definitions */ +#define GCCFG_VDEN BIT(21) /*!< enable of VBUS sensing comparator to detect VBUS valid */ +#define GCCFG_SOFOEN BIT(20) /*!< SOF output enable */ +#define GCCFG_PWRON BIT(16) /*!< power on */ +#define GCCFG_SDMEN BIT(15) /*!< secondary detection mode enable */ +#define GCCFG_PEMEN BIT(14) /*!< primary detection mode enable */ +#define GCCFG_DCDEN BIT(13) /*!< data connect detection mode enable */ +#define GCCFG_BCDEN BIT(12) /*!< battery charging detection enable */ +#define GCCFG_PS2F BIT(3) /*!< PS2 detection status */ +#define GCCFG_SDF BIT(2) /*!< secondary detection status */ +#define GCCFG_PDF BIT(1) /*!< primary detection status */ +#define GCCFG_DCDF BIT(0) /*!< battery connect detection status */ + +/* core ID register bits definitions */ +#define CID_CID BITS(0, 31) /*!< core ID */ + +/* global core LPM configuration register bits definitions */ +#define GLPMCFG_BESLEN BIT(28) /*!< LPM Errata selection enable */ +#define GLPMCFG_LPMRCS BITS(25, 27) /*!< LPM retry count status */ +#define GLPMCFG_LPMSND BIT(24) /*!< send LPM transaction */ +#define GLPMCFG_LPMRC BITS(21, 23) /*!< LPM retry count */ +#define GLPMCFG_LPMCHI BITS(17, 20) /*!< channel number index */ +#define GLPMCFG_RSOK BIT(16) /*!< Resume can be sent after sleep state */ +#define GLPMCFG_LPMSLPS BIT(15) /*!< sleep status */ +#define GLPMCFG_LPMRSP BITS(13, 14) /*!< response of LPM */ +#define GLPMCFG_DSEN BIT(12) /*!< deep sleep enable */ +#define GLPMCFG_BESLTH BITS(8, 11) /*!< BESL threshold */ +#define GLPMCFG_SSEN BIT(7) /*!< shallow sleep enable */ +#define GLPMCFG_REW BIT(6) /*!< bRemoteWake value */ +#define GLPMCFG_BESL BITS(2, 5) /*!< best effort service latency */ +#define GLPMCFG_ACKLPM BIT(1) /*!< ACK in LPM transaction enable */ +#define GLPMCFG_LPMEN BIT(0) /*!< LPM enable */ + +/* power down register bits definition */ +#define PWRD_ADPF BIT(23) /*!< ADP event interrupt flag */ +#define PWRD_ADPMEN BIT(0) /*!< ADP module enable */ + +/* ADP control and status register bits definition */ +#define ADPCTL_RWR BITS(27, 28) /*!< read and write request */ +#define ADPCTL_ADPTFM BIT(26) /*!< the mask of ADP timeout interrupt flag */ +#define ADPCTL_ADPSNFM BIT(25) /*!< the mask of ADP sense interrupt flag */ +#define ADPCTL_ADPPRFM BIT(24) /*!< the mask of ADP probe interrupt flag */ +#define ADPCTL_ADPTF BIT(23) /*!< ADP timeout interrupt flag */ +#define ADPCTL_ADPSNF BIT(22) /*!< ADP sense interrupt flag */ +#define ADPCTL_ADPPRF BIT(21) /*!< ADP probe interrupt flag */ +#define ADPCTL_ADPEN BIT(20) /*!< ADP enable */ +#define ADPCTL_ADPRST BIT(19) /*!< ADP reset */ +#define ADPCTL_SNEN BIT(18) /*!< ADP sense enable */ +#define ADPCTL_PREN BIT(17) /*!< ADP probe enable */ +#define ADPCTL_CHGT BITS(6, 16) /*!< the latest time that VBUS ramps from VADPSINK to VADPPRB */ +#define ADPCTL_PERPR BITS(4, 5) /*!< period of probe */ +#define ADPCTL_RESOPR BITS(2, 3) /*!< the resolution of CHGT value */ +#define ADPCTL_DSCHGPR BITS(0, 1) /*!< Time of probe discharge */ + +/* USBHS PHY control register bits definitions */ +#define PHYCTL_HS_CALEN BIT(31) /*!< HS PHY calibration enable */ +#define PHYCTL_HS_CALR BITS(25, 30) /*!< HS PHY calibration value */ +#define PHYCTL_HS_RCALR BITS(21, 24) /*!< HS PHY R calibration value */ +#define PHYCTL_SQUECH BIT(16) /*!< HS PHY squech flag */ +#define PHYCTL_HS_BIST_DONE BIT(15) /*!< HS PHY bist finished flag */ +#define PHYCTL_HS_BIST_SUCCESS BIT(14) /*!< HS PHY bist success flag */ +#define PHYCTL_HS_BIST_FAIL BIT(13) /*!< HS PHY bist fail flag */ +#define PHYCTL_HS_BIST_PKT_SEL BITS(11, 12) /*!< HS PHY bist packet select */ +#define PHYCTL_HS_BIST_SEED BITS(3, 10) /*!< HS PHY bist seed */ +#define PHYCTL_HS_BIST_EN BIT(2) /*!< HS PHY bist enable */ +#define PHYCTL_HS_BIST_RESET BIT(1) /*!< HS PHY bist logic reset */ +#define PHYCTL_HS_BIST_START BIT(0) /*!< HS PHY bist start */ + +/* host periodic transmit FIFO length register bits definitions */ +#define HPTFLEN_HPTXFD BITS(16, 31) /*!< host periodic Tx FIFO depth */ +#define HPTFLEN_HPTXFSAR BITS(0, 15) /*!< host periodic Tx RAM start address */ + +/* device IN endpoint transmit FIFO length register bits definitions */ +#define DIEPTFLEN_IEPTXFD BITS(16, 31) /*!< IN endpoint Tx FIFO x depth */ +#define DIEPTFLEN_IEPTXRSAR BITS(0, 15) /*!< IN endpoint FIFOx Tx x RAM start address */ + +/* host control register bits definitions */ +#define HCTL_SPDFSLS BIT(2) /*!< speed limited to FS and LS */ + +/* host frame interval register bits definitions */ +#define HFT_FRI BITS(0, 15) /*!< frame interval */ + +/* host frame information remaining register bits definitions */ +#define HFINFR_FRT BITS(16, 31) /*!< frame remaining time */ +#define HFINFR_FRNUM BITS(0, 15) /*!< frame number */ + +/* host periodic transmit FIFO/queue status register bits definitions */ +#define HPTFQSTAT_PTXREQT BITS(24, 31) /*!< top entry of the periodic Tx request queue */ +#define HPTFQSTAT_PTXREQS BITS(16, 23) /*!< periodic Tx request queue space */ +#define HPTFQSTAT_PTXFS BITS(0, 15) /*!< periodic Tx FIFO space */ +#define HPTFQSTAT_OEFRM BIT(31) /*!< odd/eveb frame */ +#define HPTFQSTAT_CNUM BITS(27, 30) /*!< channel number */ +#define HPTFQSTAT_EPNUM BITS(27, 30) /*!< endpoint number */ +#define HPTFQSTAT_TYPE BITS(25, 26) /*!< token type */ +#define HPTFQSTAT_TMF BIT(24) /*!< terminate flag */ + +#define TFQSTAT_TXFS BITS(0, 15) +#define TFQSTAT_CNUM BITS(27, 30) + +/* host all channels interrupt register bits definitions */ +#define HACHINT_HACHINT BITS(0, 15) /*!< host all channel interrupts */ + +/* host all channels interrupt enable register bits definitions */ +#define HACHINTEN_CINTEN BITS(0, 15) /*!< channel interrupt enable */ + +/* host port control and status register bits definitions */ +#define HPCS_PS BITS(17, 18) /*!< port speed */ +#define HPCS_PTEST BITS(13, 16) /*!< port test control */ +#define HPCS_PP BIT(12) /*!< port power */ +#define HPCS_PLST BITS(10, 11) /*!< port line status */ +#define HPCS_PRST BIT(8) /*!< port reset */ +#define HPCS_PSP BIT(7) /*!< port suspend */ +#define HPCS_PREM BIT(6) /*!< port resume */ +#define HPCS_PEDC BIT(3) /*!< port enable/disable change */ +#define HPCS_PE BIT(2) /*!< port enable */ +#define HPCS_PCD BIT(1) /*!< port connect detected */ +#define HPCS_PCST BIT(0) /*!< port connect status */ + +/* host channel-x control register bits definitions */ +#define HCHCTL_CEN BIT(31) /*!< channel enable */ +#define HCHCTL_CDIS BIT(30) /*!< channel disable */ +#define HCHCTL_ODDFRM BIT(29) /*!< odd frame */ +#define HCHCTL_DAR BITS(22, 28) /*!< device address */ +#define HCHCTL_MPC BITS(20, 21) /*!< multiple packet count */ +#define HCHCTL_EPTYPE BITS(18, 19) /*!< endpoint type */ +#define HCHCTL_LSD BIT(17) /*!< low-speed device */ +#define HCHCTL_EPDIR BIT(15) /*!< endpoint direction */ +#define HCHCTL_EPNUM BITS(11, 14) /*!< endpoint number */ +#define HCHCTL_MPL BITS(0, 10) /*!< maximum packet length */ + +/* host channel-x split transaction register bits definitions */ +#define HCHSTCTL_SPLEN BIT(31) /*!< enable high-speed split transaction */ +#define HCHSTCTL_CSPLT BIT(16) /*!< complete-split enable */ +#define HCHSTCTL_ISOPCE BITS(14, 15) /*!< isochronous OUT payload continuation encoding */ +#define HCHSTCTL_HADDR BITS(7, 13) /*!< HUB address */ +#define HCHSTCTL_PADDR BITS(0, 6) /*!< port address */ + +/* host channel-x interrupt flag register bits definitions */ +#define HCHINTF_DTER BIT(10) /*!< data toggle error */ +#define HCHINTF_REQOVR BIT(9) /*!< request queue overrun */ +#define HCHINTF_BBER BIT(8) /*!< babble error */ +#define HCHINTF_USBER BIT(7) /*!< USB bus Error */ +#define HCHINTF_NYET BIT(6) /*!< NYET */ +#define HCHINTF_ACK BIT(5) /*!< ACK */ +#define HCHINTF_NAK BIT(4) /*!< NAK */ +#define HCHINTF_STALL BIT(3) /*!< STALL */ +#define HCHINTF_DMAER BIT(2) /*!< DMA error */ +#define HCHINTF_CH BIT(1) /*!< channel halted */ +#define HCHINTF_TF BIT(0) /*!< transfer finished */ + +/* host channel-x interrupt enable register bits definitions */ +#define HCHINTEN_DTERIE BIT(10) /*!< data toggle error interrupt enable */ +#define HCHINTEN_REQOVRIE BIT(9) /*!< request queue overrun interrupt enable */ +#define HCHINTEN_BBERIE BIT(8) /*!< babble error interrupt enable */ +#define HCHINTEN_USBERIE BIT(7) /*!< USB bus error interrupt enable */ +#define HCHINTEN_NYETIE BIT(6) /*!< NYET interrupt enable */ +#define HCHINTEN_ACKIE BIT(5) /*!< ACK interrupt enable */ +#define HCHINTEN_NAKIE BIT(4) /*!< NAK interrupt enable */ +#define HCHINTEN_STALLIE BIT(3) /*!< STALL interrupt enable */ +#define HCHINTEN_DMAERIE BIT(2) /*!< DMA error interrupt enable */ +#define HCHINTEN_CHIE BIT(1) /*!< channel halted interrupt enable */ +#define HCHINTEN_TFIE BIT(0) /*!< transfer finished interrupt enable */ + +/* host channel-x transfer length register bits definitions */ +#define HCHLEN_PING BIT(31) /*!< PING token request */ +#define HCHLEN_DPID BITS(29, 30) /*!< data PID */ +#define HCHLEN_PCNT BITS(19, 28) /*!< packet count */ +#define HCHLEN_TLEN BITS(0, 18) /*!< transfer length */ + +/* host channel-x DMA address register bits definitions */ +#define HCHDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */ + +#define PORT_SPEED(x) (((uint32_t)(x) << 17U) & HPCS_PS) /*!< Port speed */ + +#define PORT_SPEED_HIGH PORT_SPEED(0U) /*!< high speed */ +#define PORT_SPEED_FULL PORT_SPEED(1U) /*!< full speed */ +#define PORT_SPEED_LOW PORT_SPEED(2U) /*!< low speed */ + +#define PIPE_CTL_DAR(x) (((uint32_t)(x) << 22U) & HCHCTL_DAR) /*!< device address */ +#define PIPE_CTL_EPTYPE(x) (((uint32_t)(x) << 18U) & HCHCTL_EPTYPE) /*!< endpoint type */ +#define PIPE_CTL_EPNUM(x) (((uint32_t)(x) << 11U) & HCHCTL_EPNUM) /*!< endpoint number */ +#define PIPE_CTL_EPDIR(x) (((uint32_t)(x) << 15U) & HCHCTL_EPDIR) /*!< endpoint direction */ +#define PIPE_CTL_EPMPL(x) (((uint32_t)(x) << 0U) & HCHCTL_MPL) /*!< maximum packet length */ +#define PIPE_CTL_LSD(x) (((uint32_t)(x) << 17U) & HCHCTL_LSD) /*!< low-Speed device */ + +#define PIPE_XFER_PCNT(x) (((uint32_t)(x) << 19U) & HCHLEN_PCNT) /*!< packet count */ +#define PIPE_XFER_DPID(x) (((uint32_t)(x) << 29U) & HCHLEN_DPID) /*!< data PID */ + +#define PIPE_DPID_DATA0 PIPE_XFER_DPID(0) /*!< DATA0 */ +#define PIPE_DPID_DATA1 PIPE_XFER_DPID(2) /*!< DATA1 */ +#define PIPE_DPID_DATA2 PIPE_XFER_DPID(1) /*!< DATA2 */ +#define PIPE_DPID_SETUP PIPE_XFER_DPID(3) /*!< MDATA (non-control)/SETUP (control) */ + +extern const uint32_t PIPE_DPID[2]; + +/* device configuration registers bits definitions */ +#define DCFG_EOPFT BITS(11, 12) /*!< end of periodic frame time */ +#define DCFG_DAR BITS(4, 10) /*!< device address */ +#define DCFG_NZLSOH BIT(2) /*!< non-zero-length status OUT handshake */ +#define DCFG_DS BITS(0, 1) /*!< device speed */ + +/* device control registers bits definitions */ +#define DCTL_L1RJCT BIT(18) /*!< deep sleep reject */ +#define DCTL_POIF BIT(11) /*!< power-on initialization finished */ +#define DCTL_CGONAK BIT(10) /*!< clear global OUT NAK */ +#define DCTL_SGONAK BIT(9) /*!< set global OUT NAK */ +#define DCTL_CGINAK BIT(8) /*!< clear global IN NAK */ +#define DCTL_SGINAK BIT(7) /*!< set global IN NAK */ +#define DCTL_DTEST BITS(4, 6) /*!< device test control */ +#define DCTL_GONS BIT(3) /*!< global OUT NAK status */ +#define DCTL_GINS BIT(2) /*!< global IN NAK status */ +#define DCTL_SD BIT(1) /*!< soft disconnect */ +#define DCTL_RWKUP BIT(0) /*!< remote wakeup */ + +/* device status registers bits definitions */ +#define DSTAT_FNRSOF BITS(8, 21) /*!< the frame number of the received SOF. */ +#define DSTAT_ES BITS(1, 2) /*!< enumerated speed */ +#define DSTAT_SPST BIT(0) /*!< suspend status */ + +/* device IN endpoint common interrupt enable registers bits definitions */ +#define DIEPINTEN_NAKEN BIT(13) /*!< NAK handshake sent by USBHS interrupt enable bit */ +#define DIEPINTEN_TXFEEN BIT(7) /*!< transmit FIFO empty interrupt enable bit */ +#define DIEPINTEN_IEPNEEN BIT(6) /*!< IN endpoint NAK effective interrupt enable bit */ +#define DIEPINTEN_EPTXFUDEN BIT(4) /*!< endpoint Tx FIFO underrun interrupt enable bit */ +#define DIEPINTEN_CITOEN BIT(3) /*!< control In Timeout interrupt enable bit */ +#define DIEPINTEN_EPDISEN BIT(1) /*!< endpoint disabled interrupt enable bit */ +#define DIEPINTEN_TFEN BIT(0) /*!< transfer finished interrupt enable bit */ + +/* device OUT endpoint common interrupt enable registers bits definitions */ +#define DOEPINTEN_NYETEN BIT(14) /*!< NYET handshake is sent interrupt enable bit */ +#define DOEPINTEN_BTBSTPEN BIT(6) /*!< back-to-back SETUP packets interrupt enable bit */ +#define DOEPINTEN_EPRXFOVREN BIT(4) /*!< endpoint Rx FIFO overrun interrupt enable bit */ +#define DOEPINTEN_STPFEN BIT(3) /*!< SETUP phase finished interrupt enable bit */ +#define DOEPINTEN_EPDISEN BIT(1) /*!< endpoint disabled interrupt enable bit */ +#define DOEPINTEN_TFEN BIT(0) /*!< transfer finished interrupt enable bit */ + +/* device all endpoints interrupt registers bits definitions */ +#define DAEPINT_OEPITB BITS(16, 23) /*!< device all OUT endpoint interrupt bits */ +#define DAEPINT_IEPITB BITS(0, 7) /*!< device all IN endpoint interrupt bits */ + +/* device all endpoints interrupt enable registers bits definitions */ +#define DAEPINTEN_OEPIE BITS(16, 23) /*!< OUT endpoint interrupt enable */ +#define DAEPINTEN_IEPIE BITS(0, 7) /*!< IN endpoint interrupt enable */ + +/* device VBUS discharge time registers bits definitions */ +#define DVBUSDT_DVBUSDT BITS(0, 15) /*!< device VBUS discharge time */ + +/* device VBUS pulsing time registers bits definitions */ +#define DVBUSPT_DVBUSPT BITS(0, 11) /*!< device VBUS pulsing time */ + +/* device IN endpoint FIFO empty interrupt enable register bits definitions */ +#define DIEPFEINTEN_IEPTXFEIE BITS(0, 5) /*!< IN endpoint Tx FIFO empty interrupt enable bits */ + +/* device endpoint 0 control register bits definitions */ +#define DEP0CTL_EPEN BIT(31) /*!< endpoint enable */ +#define DEP0CTL_EPD BIT(30) /*!< endpoint disable */ +#define DEP0CTL_SNAK BIT(27) /*!< set NAK */ +#define DEP0CTL_CNAK BIT(26) /*!< clear NAK */ +#define DIEP0CTL_TXFNUM BITS(22, 25) /*!< tx FIFO number */ +#define DEP0CTL_STALL BIT(21) /*!< STALL handshake */ +#define DOEP0CTL_SNOOP BIT(20) /*!< snoop mode */ +#define DEP0CTL_EPTYPE BITS(18, 19) /*!< endpoint type */ +#define DEP0CTL_NAKS BIT(17) /*!< NAK status */ +#define DEP0CTL_EPACT BIT(15) /*!< endpoint active */ +#define DEP0CTL_MPL BITS(0, 1) /*!< maximum packet length */ + +/* device endpoint x control register bits definitions */ +#define DEPCTL_EPEN BIT(31) /*!< endpoint enable */ +#define DEPCTL_EPD BIT(30) /*!< endpoint disable */ +#define DEPCTL_SODDFRM BIT(29) /*!< set odd frame */ +#define DEPCTL_SD1PID BIT(29) /*!< set DATA1 PID */ +#define DEPCTL_SEVNFRM BIT(28) /*!< set even frame */ +#define DEPCTL_SD0PID BIT(28) /*!< set DATA0 PID */ +#define DEPCTL_SNAK BIT(27) /*!< set NAK */ +#define DEPCTL_CNAK BIT(26) /*!< clear NAK */ +#define DIEPCTL_TXFNUM BITS(22, 25) /*!< tx FIFO number */ +#define DEPCTL_STALL BIT(21) /*!< STALL handshake */ +#define DOEPCTL_SNOOP BIT(20) /*!< snoop mode */ +#define DEPCTL_EPTYPE BITS(18, 19) /*!< endpoint type */ +#define DEPCTL_NAKS BIT(17) /*!< NAK status */ +#define DEPCTL_EOFRM BIT(16) /*!< even/odd frame */ +#define DEPCTL_DPID BIT(16) /*!< endpoint data PID */ +#define DEPCTL_EPACT BIT(15) /*!< endpoint active */ +#define DEPCTL_MPL BITS(0, 10) /*!< maximum packet length */ + +/* device IN endpoint-x interrupt flag register bits definitions */ +#define DIEPINTF_NAK BIT(13) /*!< NAK handshake sent by USBHS */ +#define DIEPINTF_TXFE BIT(7) /*!< transmit FIFO empty */ +#define DIEPINTF_IEPNE BIT(6) /*!< IN endpoint NAK effective */ +#define DIEPINTF_EPTXFUD BIT(4) /*!< endpoint Tx FIFO underrun */ +#define DIEPINTF_CITO BIT(3) /*!< control In Timeout interrupt */ +#define DIEPINTF_EPDIS BIT(1) /*!< endpoint disabled */ +#define DIEPINTF_TF BIT(0) /*!< transfer finished */ + +/* device OUT endpoint-x interrupt flag register bits definitions */ +#define DOEPINTF_NYET BIT(14) /*!< NYET handshake is sent */ +#define DOEPINTF_BTBSTP BIT(6) /*!< back-to-back SETUP packets */ +#define DOEPINTF_EPRXFOVR BIT(4) /*!< endpoint Rx FIFO overrun */ +#define DOEPINTF_STPF BIT(3) /*!< SETUP phase finished */ +#define DOEPINTF_EPDIS BIT(1) /*!< endpoint disabled */ +#define DOEPINTF_TF BIT(0) /*!< transfer finished */ + +/* device IN endpoint 0 transfer length register bits definitions */ +#define DIEP0LEN_PCNT BITS(19, 20) /*!< packet count */ +#define DIEP0LEN_TLEN BITS(0, 6) /*!< transfer length */ + +/* device OUT endpoint 0 transfer length register bits definitions */ +#define DOEP0LEN_STPCNT BITS(29, 30) /*!< SETUP packet count */ +#define DOEP0LEN_PCNT BIT(19) /*!< packet count */ +#define DOEP0LEN_TLEN BITS(0, 6) /*!< transfer length */ + +/* device OUT endpoint-x transfer length register bits definitions */ +#define DOEPLEN_RXDPID BITS(29, 30) /*!< received data PID */ +#define DOEPLEN_STPCNT BITS(29, 30) /*!< SETUP packet count */ +#define DIEPLEN_MCNT BITS(29, 30) /*!< multi count */ +#define DEPLEN_PCNT BITS(19, 28) /*!< packet count */ +#define DEPLEN_TLEN BITS(0, 18) /*!< transfer length */ + +/* device IN endpoint-x DMA address register bits definitions */ +#define DIEPDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */ + +/* device OUT endpoint-x DMA address register bits definitions */ +#define DOEPDMAADDR_DMAADDR BITS(0, 31) /*!< DMA address */ + +/* device IN endpoint-x transmit FIFO status register bits definitions */ +#define DIEPTFSTAT_IEPTFS BITS(0, 15) /*!< IN endpoint Tx FIFO space remaining */ + +/* USB power and clock registers bits definition */ +#define PWRCLKCTL_DSLEEP BIT(7) /*!< PHY is in deep sleep status */ +#define PWRCLKCTL_SSLEEP BIT(6) /*!< PHY is in shallow sleep status */ +#define PWRCLKCTL_SCGEN BIT(5) /*!< When this bit is set, the internal clock gating is enabled */ +#define PWRCLKCTL_SUSP BIT(4) /*!< PHY is in suspend status */ +#define PWRCLKCTL_SHCLK BIT(1) /*!< stop HCLK */ +#define PWRCLKCTL_SUCLK BIT(0) /*!< stop the USB clock */ + +#define RSTAT_GOUT_NAK 1U /*!< global OUT NAK (triggers an interrupt) */ +#define RSTAT_DATA_UPDT 2U /*!< OUT data packet received */ +#define RSTAT_XFER_COMP 3U /*!< OUT transfer completed (triggers an interrupt) */ +#define RSTAT_SETUP_COMP 4U /*!< SETUP transaction completed (triggers an interrupt) */ +#define RSTAT_SETUP_UPDT 6U /*!< SETUP data packet received */ + +#define DSTAT_EM_HS_PHY_30MHZ_60MHZ 0U /*!< USB enumerate speed use high-speed PHY clock in 30MHz or 60MHz */ +#define DSTAT_EM_FS_PHY_30MHZ_60MHZ 1U /*!< USB enumerate speed use full-speed PHY clock in 30MHz or 60MHz */ +#define DSTAT_EM_LS_PHY_6MHZ 2U /*!< USB enumerate speed use low-speed PHY clock in 6MHz */ +#define DSTAT_EM_FS_PHY_48MHZ 3U /*!< USB enumerate speed use full-speed PHY clock in 48MHz */ + +#define DPID_DATA0 0U /*!< device endpoint data PID is DATA0 */ +#define DPID_DATA1 2U /*!< device endpoint data PID is DATA1 */ +#define DPID_DATA2 1U /*!< device endpoint data PID is DATA2 */ +#define DPID_MDATA 3U /*!< device endpoint data PID is MDATA */ + +#define GAHBCS_DMAINCR(regval) (GAHBCS_BURST & ((regval) << 1U)) /*!< AHB burst type used by DMA */ + +#define DMA_INCR0 GAHBCS_DMAINCR(0U) /*!< single burst type used by DMA*/ +#define DMA_INCR1 GAHBCS_DMAINCR(1U) /*!< 4-beat incrementing burst type used by DMA */ +#define DMA_INCR4 GAHBCS_DMAINCR(3U) /*!< 8-beat incrementing burst type used by DMA */ +#define DMA_INCR8 GAHBCS_DMAINCR(5U) /*!< 16-beat incrementing burst type used by DMA */ +#define DMA_INCR16 GAHBCS_DMAINCR(7U) /*!< 32-beat incrementing burst type used by DMA */ + +#define DCFG_PFRI(regval) (DCFG_EOPFT & ((regval) << 11U)) /*!< end of periodic frame time configuration */ + +#define FRAME_INTERVAL_80 DCFG_PFRI(0U) /*!< 80% of the frame time */ +#define FRAME_INTERVAL_85 DCFG_PFRI(1U) /*!< 85% of the frame time */ +#define FRAME_INTERVAL_90 DCFG_PFRI(2U) /*!< 90% of the frame time */ +#define FRAME_INTERVAL_95 DCFG_PFRI(3U) /*!< 95% of the frame time */ + +#define DCFG_DEVSPEED(regval) (DCFG_DS & ((regval) << 0U)) /*!< device speed configuration */ + +#define USB_SPEED_INP_HIGH DCFG_DEVSPEED(0U) /*!< device internal PHY high speed */ +#define USB_SPEED_INP_FULL DCFG_DEVSPEED(1U) /*!< device internal PHY full speed */ + +#define DEP0_MPL(regval) (DEP0CTL_MPL & ((regval) << 0U)) /*!< maximum packet length configuration */ + +#define EP0MPL_64 DEP0_MPL(0U) /*!< maximum packet length 64 bytes */ +#define EP0MPL_32 DEP0_MPL(1U) /*!< maximum packet length 32 bytes */ +#define EP0MPL_16 DEP0_MPL(2U) /*!< maximum packet length 16 bytes */ +#define EP0MPL_8 DEP0_MPL(3U) /*!< maximum packet length 8 bytes */ + +#define DOEP0_TLEN(regval) (DOEP0LEN_TLEN & ((regval) << 0U)) /*!< Transfer length */ +#define DOEP0_PCNT(regval) (DOEP0LEN_PCNT & ((regval) << 19U)) /*!< Packet count */ +#define DOEP0_STPCNT(regval) (DOEP0LEN_STPCNT & ((regval) << 29U)) /*!< SETUP packet count */ + +#define GRXSTS_PKTSTS_IN 2U +#define GRXSTS_PKTSTS_IN_XFER_COMP 3U +#define GRXSTS_PKTSTS_DATA_TOGGLE_ERR 5U +#define GRXSTS_PKTSTS_CH_HALTED 7U + +#define DEVICE_MODE 0U /*!< device mode */ +#define HOST_MODE 1U /*!< host mode */ +#define OTG_MODE 2U /*!< OTG mode */ + +#define HCTL_30_60MHZ 0U /*!< USB clock 30-60MHZ */ +#define HCTL_48MHZ 1U /*!< USB clock 48MHZ */ +#define HCTL_6MHZ 2U /*!< USB clock 6MHZ */ + +#define USBHS_MAX_PACKET_SIZE 512U /*!< USBHS max packet size */ +#define USBHS_MAX_CHANNEL_COUNT 16U /*!< USBHS host channel count */ +#define USBHS_MAX_EP_COUNT 8U /*!< USBHS device endpoint count */ +#define USBHS_MAX_FIFO_WORDLEN 1280U /*!< USBHS max fifo size in words */ + +#define USB_DATA_FIFO_OFFSET 0x1000U /*!< USB data fifo offset */ +#define USB_DATA_FIFO_SIZE 0x1000U /*!< USB data fifo size */ + +typedef enum +{ + USB_EMBEDDED_PHY_FS = 0U, /*!< USB embedded FS PHY */ + USB_EMBEDDED_PHY_HS, /*!< USB embedded HS PHY */ + USB_ULPI_PHY_EXTERNAL /*!< USB external ULPI PHY */ +} usb_phy_enum; + +enum usb_reg_offset +{ + USB_REG_OFFSET_CORE = 0x0000U, /*!< global OTG control and status register */ + USB_REG_OFFSET_DEV = 0x0800U, /*!< device mode control and status registers */ + USB_REG_OFFSET_EP = 0x0020U, /*!< offset of each endpoint */ + USB_REG_OFFSET_EP_IN = 0x0900U, /*!< device IN endpoint 0 control register */ + USB_REG_OFFSET_EP_OUT = 0x0B00U, /*!< device OUT endpoint 0 control register */ + USB_REG_OFFSET_HOST = 0x0400U, /*!< host control register */ + USB_REG_OFFSET_CH = 0x0020U, /*!< offset of each channel */ + USB_REG_OFFSET_PORT = 0x0440U, /*!< host port control and status register */ + USB_REG_OFFSET_CH_INOUT = 0x0500U, /*!< host channel-x control registers */ + USB_REG_OFFSET_PWRCLKCTL = 0x0E00U /*!< power and clock register */ +}; + +enum USB_SPEED +{ + USB_SPEED_UNKNOWN = 0, /*!< USB speed unknown */ + USB_SPEED_LOW, /*!< USB speed low */ + USB_SPEED_FULL, /*!< USB speed full */ + USB_SPEED_HIGH /*!< USB speed high */ +}; + +#define EP0_OUT ((uint8_t)0x00U) /*!< endpoint out 0 */ +#define EP0_IN ((uint8_t)0x80U) /*!< endpoint in 0 */ +#define EP1_OUT ((uint8_t)0x01U) /*!< endpoint out 1 */ +#define EP1_IN ((uint8_t)0x81U) /*!< endpoint in 1 */ +#define EP2_OUT ((uint8_t)0x02U) /*!< endpoint out 2 */ +#define EP2_IN ((uint8_t)0x82U) /*!< endpoint in 2 */ +#define EP3_OUT ((uint8_t)0x03U) /*!< endpoint out 3 */ +#define EP3_IN ((uint8_t)0x83U) /*!< endpoint in 3 */ +#define EP4_OUT ((uint8_t)0x04U) /*!< endpoint out 4 */ +#define EP4_IN ((uint8_t)0x84U) /*!< endpoint in 4 */ +#define EP5_OUT ((uint8_t)0x05U) /*!< endpoint out 5 */ +#define EP5_IN ((uint8_t)0x85U) /*!< endpoint in 5 */ +#define EP6_OUT ((uint8_t)0x06U) /*!< endpoint out 6 */ +#define EP6_IN ((uint8_t)0x86U) /*!< endpoint in 6 */ +#define EP7_OUT ((uint8_t)0x06U) /*!< endpoint out 7 */ +#define EP7_IN ((uint8_t)0x86U) /*!< endpoint in 7 */ + +#endif /* DRV_USB_REGS_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.c new file mode 100644 index 00000000000..91472885a37 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.c @@ -0,0 +1,708 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usbd_int.h" +#include "drv_otghs_dev.h" + +#include + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_DEVICE) + +static const uint8_t USB_SPEED[4] = { + [DSTAT_EM_HS_PHY_30MHZ_60MHZ] = (uint8_t)USB_SPEED_HIGH, + [DSTAT_EM_FS_PHY_30MHZ_60MHZ] = (uint8_t)USB_SPEED_FULL, + [DSTAT_EM_FS_PHY_48MHZ] = (uint8_t)USB_SPEED_FULL, + [DSTAT_EM_LS_PHY_6MHZ] = (uint8_t)USB_SPEED_LOW +}; + +/* local function prototypes ('static') */ +static uint32_t usbd_int_epout(usb_core_driver *udev); +static uint32_t usbd_int_epin(usb_core_driver *udev); +static uint32_t usbd_int_rxfifo(usb_core_driver *udev); +static uint32_t usbd_int_reset(usb_core_driver *udev); +static uint32_t usbd_int_enumfinish(usb_core_driver *udev); +static uint32_t usbd_int_suspend(usb_core_driver *udev); +static uint32_t usbd_int_wakeup(usb_core_driver *udev); + +#if (1U == LPM_ENABLED) +static uint32_t usbd_int_lpm(usb_core_driver *udev, usb_lpm_type active_type); +#endif /* LPM_ENABLED */ + +static uint32_t usbd_emptytxfifo_write(usb_core_driver *udev, uint32_t ep_num); + +/*! + \brief USB device-mode interrupts global service routine handler + \param[in] udev: pointer to USB device instance + \param[out] none + \retval none +*/ +void usbd_isr(usb_core_driver *udev) +{ + if (HOST_MODE != (udev->regs.gr->GINTF & GINTF_COPM)) + { + uint32_t intr = udev->regs.gr->GINTF; + intr &= udev->regs.gr->GINTEN; + + /* there are no interrupts, avoid spurious interrupt */ + if (!intr) + { + return; + } + + /* OUT endpoints interrupts */ + if (intr & GINTF_OEPIF) + { + (void)usbd_int_epout(udev); + } + + /* IN endpoints interrupts */ + if (intr & GINTF_IEPIF) + { + (void)usbd_int_epin(udev); + } + + /* suspend interrupt */ + if (intr & GINTF_SP) + { + (void)usbd_int_suspend(udev); + } + + /* wakeup interrupt */ + if (intr & GINTF_WKUPIF) + { + (void)usbd_int_wakeup(udev); + } + + /* start of frame interrupt */ + if (intr & GINTF_SOF) + { + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_SOF; + } + + /* receive FIFO not empty interrupt */ + if (intr & GINTF_RXFNEIF) + { + (void)usbd_int_rxfifo(udev); + } + + /* USB reset interrupt */ + if (intr & GINTF_RST) + { + (void)usbd_int_reset(udev); + } + + /* enumeration has been done interrupt */ + if (intr & GINTF_ENUMFIF) + { + (void)usbd_int_enumfinish(udev); + } + + /* incomplete synchronization IN transfer interrupt*/ + if (intr & GINTF_ISOINCIF) + { + if (NULL != udev->dev.class_core->incomplete_isoc_in) + { + (void)udev->dev.class_core->incomplete_isoc_in(udev); + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_ISOINCIF; + } + + /* incomplete synchronization OUT transfer interrupt*/ + if (intr & GINTF_ISOONCIF) + { + if (NULL != udev->dev.class_core->incomplete_isoc_out) + { + (void)udev->dev.class_core->incomplete_isoc_out(udev); + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_ISOONCIF; + } + +#if (1U == LPM_ENABLED) + if (intr & GINTF_LPMIF) + { + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_LPMIF; + + udev->dev.pm.BESL = (udev->regs.gr->GLPMCFG & GLPMCFG_BESL) >> 2U; + udev->dev.pm.dev_remote_wakeup = (udev->regs.gr->GLPMCFG & GLPMCFG_REW) >> 6U; + + if (LPM_L0 == udev->dev.pm.lpm_state) + { + udev->dev.pm.lpm_state = LPM_L1; + usbd_int_lpm(udev, LPM_L1_ACTIVE); + } + else + { + udev->dev.pm.lpm_state = LPM_L0; + usbd_int_lpm(udev, LPM_L0_ACTIVE); + } + } +#endif /* LPM_ENABLED */ + +#ifdef VBUS_SENSING_ENABLED + + /* session request interrupt */ + if (intr & GINTF_SESIF) + { + udev->regs.gr->GINTF = GINTF_SESIF; + } + + /* OTG mode interrupt */ + if (intr & GINTF_OTGIF) + { + if (udev->regs.gr->GOTGINTF & GOTGINTF_SESEND) + { + } + + /* clear OTG interrupt */ + udev->regs.gr->GINTF = GINTF_OTGIF; + } +#endif /* VBUS_SENSING_ENABLED */ + } +} + +/*! + \brief indicates that an OUT endpoint has a pending interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_epout(usb_core_driver *udev) +{ + uint32_t epintnum = 0U; + uint8_t ep_num = 0U; + + for (epintnum = usb_oepintnum_read(udev); epintnum; epintnum >>= 1) + { + if (epintnum & 0x01U) + { + __IO uint32_t oepintr = usb_oepintr_read(udev, ep_num); + + /* transfer complete interrupt */ + if (oepintr & DOEPINTF_TF) + { + /* clear the bit in DOEPINTF for this interrupt */ + udev->regs.er_out[ep_num]->DOEPINTF = DOEPINTF_TF; + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + __IO uint32_t eplen = udev->regs.er_out[ep_num]->DOEPLEN; + + udev->dev.transc_out[ep_num].xfer_count = udev->dev.transc_out[ep_num].max_len - + (eplen & DEPLEN_TLEN); + } + + /* inform upper layer: data ready */ + usbd_data_out_stage_callback(ep_num, udev->dev.transc_out[ep_num].xfer_len); + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + if ((0U == ep_num) && ((uint8_t)USB_CTL_STATUS_OUT == udev->dev.control.ctl_state)) + { + usb_ctlep_startout(udev); + } + } + } + + /* SETUP phase finished interrupt (control endpoints) */ + if (oepintr & DOEPINTF_STPF) + { + /* inform the upper layer that a SETUP packet is available */ + usbd_setup_stage_callback((struct urequest *)&udev->dev.control.req); + + udev->regs.er_out[ep_num]->DOEPINTF = DOEPINTF_STPF; + } + } + + ep_num++; + } + + return 1U; +} + +/*! + \brief indicates that an IN endpoint has a pending interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_epin(usb_core_driver *udev) +{ + uint32_t epintnum = 0U; + uint8_t ep_num = 0U; + + for (epintnum = usb_iepintnum_read(udev); epintnum; epintnum >>= 1) + { + if (epintnum & 0x1U) + { + __IO uint32_t iepintr = usb_iepintr_read(udev, ep_num); + + if (iepintr & DIEPINTF_TF) + { + udev->regs.er_in[ep_num]->DIEPINTF = DIEPINTF_TF; + + /* data transmission is completed */ + usbd_data_in_stage_callback(ep_num, udev->dev.transc_in[ep_num].xfer_len); + + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + if ((0U == ep_num) && ((uint8_t)USB_CTL_STATUS_IN == udev->dev.control.ctl_state)) + { + usb_ctlep_startout(udev); + } + } + } + + if (iepintr & DIEPINTF_TXFE) + { + usbd_emptytxfifo_write(udev, (uint32_t)ep_num); + + udev->regs.er_in[ep_num]->DIEPINTF = DIEPINTF_TXFE; + } + } + + ep_num++; + } + + return 1U; +} + +/*! + \brief handle the RX status queue level interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_rxfifo(usb_core_driver *udev) +{ + usb_transc *transc = NULL; + + uint8_t data_PID = 0U; + uint32_t bcount = 0U; + + __IO uint32_t devrxstat = 0U; + + /* disable the RX status queue non-empty interrupt */ + udev->regs.gr->GINTEN &= ~GINTEN_RXFNEIE; + + /* get the status from the top of the FIFO */ + devrxstat = udev->regs.gr->GRSTATP; + gd_usb_rxfifo_count++; + gd_usb_last_rx_status = devrxstat; + + uint8_t ep_num = (uint8_t)(devrxstat & GRSTATRP_EPNUM); + + transc = &udev->dev.transc_out[ep_num]; + + bcount = (devrxstat & GRSTATRP_BCOUNT) >> 4; + data_PID = (uint8_t)((devrxstat & GRSTATRP_DPID) >> 15); + + switch ((devrxstat & GRSTATRP_RPCKST) >> 17) + { + case RSTAT_GOUT_NAK: + break; + + case RSTAT_DATA_UPDT: + if (bcount > 0U) + { + (void)usb_rxfifo_read(&udev->regs, transc->xfer_buf, (uint16_t)bcount); + + transc->xfer_buf += bcount; + transc->xfer_count += bcount; + } + break; + + case RSTAT_XFER_COMP: + /* trigger the OUT endpoint interrupt */ + break; + + case RSTAT_SETUP_COMP: + /* trigger the OUT endpoint interrupt */ + break; + + case RSTAT_SETUP_UPDT: + gd_usb_setup_rx_count++; + if ((0U == transc->ep_addr.num) && (8U == bcount) && (DPID_DATA0 == data_PID)) + { + /* copy the SETUP packet received in FIFO into the setup buffer in RAM */ + (void)usb_rxfifo_read(&udev->regs, (uint8_t *)&udev->dev.control.req, (uint16_t)bcount); + + transc->xfer_count += bcount; + } + break; + + default: + break; + } + + /* enable the RX status queue level interrupt */ + udev->regs.gr->GINTEN |= GINTEN_RXFNEIE; + + return 1U; +} + +/*! + \brief handle USB reset interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval status +*/ +static uint32_t usbd_int_reset(usb_core_driver *udev) +{ + uint32_t i; + + /* clear the remote wakeup signaling */ + udev->regs.dr->DCTL &= ~DCTL_RWKUP; + + /* flush the TX FIFO */ + (void)usb_txfifo_flush(&udev->regs, 0U); + + for (i = 0U; i < udev->bp.num_ep; i++) + { + udev->regs.er_in[i]->DIEPINTF = 0xFFU; + udev->regs.er_out[i]->DOEPINTF = 0xFFU; + } + + /* clear all pending device endpoint interrupts */ + udev->regs.dr->DAEPINT = 0xFFFFFFFFU; + + /* enable endpoint 0 interrupts */ + udev->regs.dr->DAEPINTEN = 1U | (1U << 16U); + + /* enable OUT endpoint interrupts */ + udev->regs.dr->DOEPINTEN = DOEPINTEN_STPFEN | DOEPINTEN_TFEN; + +#ifdef USB_DEDICATED_EP1_ENABLED + udev->regs.dr->DOEP1INTEN = DOEPINTEN_STPFEN | DOEPINTEN_TFEN; +#endif + + /* enable IN endpoint interrupts */ + udev->regs.dr->DIEPINTEN = DIEPINTEN_TFEN; + +#ifdef USB_DEDICATED_EP1_ENABLED + udev->regs.dr->DIEP1INTEN = DIEPINTEN_TFEN; +#endif + + /* reset device address */ + udev->regs.dr->DCFG &= ~DCFG_DAR; + + /* configure endpoint 0 to receive SETUP packets */ + usb_ctlep_startout(udev); + + /* clear USB reset interrupt */ + udev->regs.gr->GINTF = GINTF_RST; + + usb_ep_active(udev, 0x00, USB_FS_EP0_MAX_LEN, USB_EPTYPE_CTRL); + usb_ep_active(udev, 0x80, USB_FS_EP0_MAX_LEN, USB_EPTYPE_CTRL); + + usbd_reset_callback(); + + return 1U; +} + +/*! + \brief handle USB speed enumeration finish interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval status +*/ +static uint32_t usbd_int_enumfinish(usb_core_driver *udev) +{ + uint8_t enum_speed = (uint8_t)((udev->regs.dr->DSTAT & DSTAT_ES) >> 1); + + udev->regs.dr->DCTL &= ~DCTL_CGINAK; + udev->regs.dr->DCTL |= DCTL_CGINAK; + + udev->regs.gr->GUSBCS &= ~GUSBCS_UTT; + + /* set USB turn-around time based on device speed and PHY interface */ + if ((uint8_t)USB_SPEED_HIGH == USB_SPEED[enum_speed]) + { + udev->bp.core_speed = (uint8_t)USB_SPEED_HIGH; + + udev->regs.gr->GUSBCS |= 0x09U << 10; + } + else + { + udev->bp.core_speed = (uint8_t)USB_SPEED_FULL; + + udev->regs.gr->GUSBCS |= 0x05U << 10; + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_ENUMFIF; + + gd_usb_enum_count++; + + return 1U; +} + +/*! + \brief USB suspend interrupt handler + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_suspend(usb_core_driver *udev) +{ + __IO uint8_t low_power = udev->bp.low_power; + __IO uint8_t suspend = (uint8_t)(udev->regs.dr->DSTAT & DSTAT_SPST); + + udev->dev.backup_status = udev->dev.cur_status; + + if (low_power && suspend) + { + /* switch-off the USB clocks */ + *udev->regs.PWRCLKCTL |= PWRCLKCTL_SUCLK | PWRCLKCTL_SHCLK; + + /* enter DEEP_SLEEP mode with LDO in low power mode */ + pmu_to_deepsleepmode(WFI_CMD); + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_SP; + + return 1U; +} + +/*! + \brief USB wakeup interrupt handler + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_wakeup(usb_core_driver *udev) +{ + __IO uint8_t low_power = udev->bp.low_power; + __IO uint8_t remote_wakeup = udev->dev.pm.dev_remote_wakeup; + +#if (1U == LPM_ENABLED) + if (LPM_L1 == udev->dev.pm.lpm_state) + { + udev->dev.pm.lpm_state = LPM_L0; + usbd_int_lpm(udev, LPM_L0_ACTIVE); + } + else +#endif /* LPM_ENABLED */ + { + if (remote_wakeup && low_power) + { + /* resume MCU CLK */ + + /* reset SLEEPDEEP bit of Cortex-M33 system control register */ + SCB->SCR &= ~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); + } + + usb_clock_active(udev); + + /* inform upper layer by the resume event */ + udev->dev.cur_status = udev->dev.backup_status; + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_WKUPIF; + + return 1U; +} + +#ifdef USB_DEDICATED_EP1_ENABLED + +/*! + \brief USB dedicated OUT endpoint 1 interrupt service routine handler + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +uint32_t usbd_int_dedicated_ep1out(usb_core_driver *udev) +{ + uint32_t oepintr = 0U; + uint32_t oeplen = 0U; + + oepintr = udev->regs.er_out[1]->DOEPINTF; + oepintr &= udev->regs.dr->DOEP1INTEN; + + /* transfer complete */ + if (oepintr & DOEPINTF_TF) + { + /* clear the bit in DOEPINTn for this interrupt */ + udev->regs.er_out[1]->DOEPINTF = DOEPINTF_TF; + + if (USB_USE_DMA == udev->bp.transfer_mode) + { + oeplen = udev->regs.er_out[1]->DOEPLEN; + + /* ToDo : handle more than one single MPS size packet */ + udev->dev.transc_out[1].xfer_count = udev->dev.transc_out[1].max_len - + (oeplen & DEPLEN_TLEN); + } + + /* RX COMPLETE */ + usbd_out_transc(udev, 1U); + } + + return 1U; +} + +/*! + \brief USB dedicated IN endpoint 1 interrupt service routine handler + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +uint32_t usbd_int_dedicated_ep1in(usb_core_driver *udev) +{ + uint32_t inten, intr, emptyen; + + inten = udev->regs.dr->DIEP1INTEN; + emptyen = udev->regs.dr->DIEPFEINTEN; + + inten |= ((emptyen >> 1U) & 0x1U) << 7U; + + intr = udev->regs.er_in[1]->DIEPINTF & inten; + + if (intr & DIEPINTF_TF) + { + udev->regs.dr->DIEPFEINTEN &= ~(0x1U << 1U); + + udev->regs.er_in[1]->DIEPINTF = DIEPINTF_TF; + + /* TX COMPLETE */ + usbd_in_transc(udev, 1U); + } + + if (intr & DIEPINTF_TXFE) + { + usbd_emptytxfifo_write(udev, 1U); + + udev->regs.er_in[1]->DIEPINTF = DIEPINTF_TXFE; + } + + return 1U; +} + +#endif + +#if (1U == LPM_ENABLED) + +/*! + \brief USB LPM interrupt handler + \param[in] udev: pointer to USB device instance + \param[in] active_type: active type + only one parameter can be selected which is shown as below: + \arg LPM_L0_ACTIVE: select L0 to active + \arg LPM_L1_ACTIVE: select L1 to active + \param[out] none + \retval operation status +*/ +static uint32_t usbd_int_lpm(usb_core_driver *udev, usb_lpm_type active_type) +{ + __IO uint8_t low_power = udev->bp.low_power; + __IO uint8_t suspend = (uint8_t)(udev->regs.dr->DSTAT & DSTAT_SPST); + __IO uint8_t is_configured = (udev->dev.cur_status == (uint8_t)USBD_CONFIGURED) ? 1U : 0U; + + switch (active_type) + { + case LPM_L0_ACTIVE: + udev->dev.cur_status = udev->dev.backup_status; + + /* switch-on the OTG clocks */ + usb_clock_active(udev); + + if (low_power) + { + /* resume MCU CLK */ + + /* reset SLEEPDEEP bit of Cortex-M7 system control register */ + SCB->SCR &= ~((uint32_t)SCB_SCR_SLEEPDEEP_Msk); + } + break; + + case LPM_L1_ACTIVE: + udev->dev.backup_status = udev->dev.cur_status; + udev->dev.cur_status = (uint8_t)USBD_SUSPENDED; + + /* add delay */ + usb_mdelay(300U); + + /* switch-off the OTG clocks */ + *udev->regs.PWRCLKCTL |= PWRCLKCTL_SUCLK | PWRCLKCTL_SHCLK; + + if (low_power) + { + /* enter DEEP_SLEEP mode with LDO in low power mode */ + pmu_to_deepsleepmode(WFI_CMD); + } + break; + } + + return 1U; +} + +#endif /* LPM_ENABLED */ + +/*! + \brief check FIFO for the next packet to be loaded + \param[in] udev: pointer to USB device instance + \param[in] ep_num: endpoint identifier which is in (0..5) + \param[out] none + \retval status +*/ +static uint32_t usbd_emptytxfifo_write(usb_core_driver *udev, uint32_t ep_num) +{ + uint32_t len; + uint32_t word_count; + + usb_transc *transc = &udev->dev.transc_in[ep_num]; + + len = transc->xfer_len - transc->xfer_count; + + /* get the data length to write */ + if (len > transc->max_len) + { + len = transc->max_len; + } + + word_count = (len + 3U) / 4U; + + while (((udev->regs.er_in[ep_num]->DIEPTFSTAT & DIEPTFSTAT_IEPTFS) >= word_count) && + (transc->xfer_count < transc->xfer_len)) + { + len = transc->xfer_len - transc->xfer_count; + + if (len > transc->max_len) + { + len = transc->max_len; + } + + /* write FIFO in word(4bytes) */ + word_count = (len + 3U) / 4U; + + /* write the FIFO */ + (void)usb_txfifo_write(&udev->regs, transc->xfer_buf, (uint8_t)ep_num, (uint16_t)len); + + transc->xfer_buf += len; + transc->xfer_count += len; + + if (transc->xfer_count == transc->xfer_len) + { + /* disable the device endpoint FIFO empty interrupt */ + udev->regs.dr->DIEPFEINTEN &= ~(0x01U << ep_num); + } + } + + return 1U; +} + +#endif /* BSP_USING_USB && RT_USING_USB_DEVICE */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.h new file mode 100644 index 00000000000..0dfc08431bf --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbd_int.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USBD_INT_H +#define DRV_USBD_INT_H + +#include "drv_usb_core.h" +#include "drv_usb_dev.h" + +/* function declarations */ +#ifdef USB_DEDICATED_EP1_ENABLED +/* USB dedicated OUT endpoint 1 interrupt service routine handler */ +uint32_t usbd_int_dedicated_ep1out(usb_core_driver *udev); +/* USB dedicated IN endpoint 1 interrupt service routine handler */ +uint32_t usbd_int_dedicated_ep1in(usb_core_driver *udev); +#endif /* USB_DEDICATED_EP1_ENABLED */ + +/* USB device-mode interrupts global service routine handler */ +void usbd_isr(usb_core_driver *udev); + +#endif /* DRV_USBD_INT_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.c new file mode 100644 index 00000000000..1d71da91ea6 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.c @@ -0,0 +1,693 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usbh_int.h" +#include "drv_otghs_host.h" + +#if defined(__CC_ARM) /*!< ARM compiler */ +#pragma O0 +#elif defined(__GNUC__) /*!< GNU compiler */ +#pragma GCC optimize("O0") +#elif defined(__TASKING__) /*!< TASKING compiler */ +#pragma optimize = 0 +#endif /* __CC_ARM */ + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +/* local function prototypes ('static') */ +static uint32_t usbh_int_port(usb_core_driver *udev); +static uint32_t usbh_int_pipe(usb_core_driver *udev); +static uint32_t usbh_int_pipe_in(usb_core_driver *udev, uint32_t pp_num); +static uint32_t usbh_int_pipe_out(usb_core_driver *udev, uint32_t pp_num); +static uint32_t usbh_int_rxfifonoempty(usb_core_driver *udev); +static uint32_t usbh_int_txfifoempty(usb_core_driver *udev, usb_pipe_mode pp_mode); + +/*! + \brief handle global host interrupt + \param[in] udev: pointer to USB core instance + \param[out] none + \retval operation status +*/ +uint32_t usbh_isr(usb_core_driver *udev) +{ + uint32_t retval = 0U; + + __IO uint32_t intr = 0U; + + /* check if host mode */ + if (HOST_MODE == (udev->regs.gr->GINTF & GINTF_COPM)) + { + intr = usb_coreintr_get(&udev->regs); + + if (!intr) + { + return 0U; + } + + if (intr & GINTF_SOF) + { + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_SOF; + } + + if (intr & GINTF_RXFNEIF) + { + retval |= usbh_int_rxfifonoempty(udev); + } + + if (intr & GINTF_NPTXFEIF) + { + retval |= usbh_int_txfifoempty(udev, PIPE_NON_PERIOD); + } + + if (intr & GINTF_PTXFEIF) + { + retval |= usbh_int_txfifoempty(udev, PIPE_PERIOD); + } + + if (intr & GINTF_HCIF) + { + retval |= usbh_int_pipe(udev); + } + + if (intr & GINTF_HPIF) + { + retval |= usbh_int_port(udev); + } + + if (intr & GINTF_WKUPIF) + { + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_WKUPIF; + } + + if (intr & GINTF_DISCIF) + { + if ((*udev->regs.HPCS & HPCS_PCST) == 0) + { + usbh_disconnect_callback(udev); + } + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_DISCIF; + } + + if (intr & GINTF_ISOONCIF) + { + udev->regs.pr[0]->HCHCTL |= HCHCTL_CEN | HCHCTL_CDIS; + + /* clear interrupt */ + udev->regs.gr->GINTF = GINTF_ISOONCIF; + } + } + + return retval; +} + +/*! + \brief handle USB pipe halt + \param[in] udev: pointer to USB core instance + \param[in] pp_num: pp_num: host channel number which is in (0..7) + \param[in] pp_int: pipe interrupt + \param[in] pp_status: pipe status + \param[out] none + \retval none +*/ +static inline void usb_pp_halt(usb_core_driver *udev, + uint8_t pp_num, + uint32_t pp_int, + usb_pipe_status pp_status) +{ + udev->regs.pr[pp_num]->HCHINTEN |= HCHINTEN_CHIE; + + usb_pipe_halt(udev, pp_num); + + udev->regs.pr[pp_num]->HCHINTF = pp_int; + + udev->host.pipe[pp_num].pp_status = pp_status; +} + +/*! + \brief handle the host port interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +#if defined(__ICCARM__) /*!< IAR compiler */ +#pragma optimize = none +#endif /* __ICCARM */ +static uint32_t usbh_int_port(usb_core_driver *udev) +{ + uint32_t retval = 0U; + + __IO uint32_t port_state = *udev->regs.HPCS; + + __IO uint32_t port_reset = 0U; + + /* clear the interrupt bit in GINTF */ + port_state &= ~(HPCS_PE | HPCS_PCD | HPCS_PEDC); + + /* port connect detected */ + if (*udev->regs.HPCS & HPCS_PCD) + { + port_state |= HPCS_PCD; + + if ((*udev->regs.HPCS & HPCS_PCST) == HPCS_PCST) + { + usbh_connect_callback(udev); + } + + retval |= 1U; + } + + /* port enable changed */ + if (*udev->regs.HPCS & HPCS_PEDC) + { + port_state |= HPCS_PEDC; + + if (*udev->regs.HPCS & HPCS_PE) + { + uint32_t port_speed = usb_curspeed_get(udev); + + udev->host.connect_status = 1U; + + if (PORT_SPEED_LOW == port_speed) + { + udev->regs.hr->HFT = 6000U; + } + else if (PORT_SPEED_FULL == port_speed) + { + udev->regs.hr->HFT = 48000U; + } + else + { + /* no operation */ + } + + port_reset = 1U; + + udev->regs.gr->GINTEN |= GINTEN_DISCIE | GINTEN_SOFIE; + } + else + { + /* no operation */ + } + } + + if (1U == port_reset) + { + usb_port_reset(udev); + } + + /* clear port interrupts */ + *udev->regs.HPCS = port_state; + + return retval; +} + +/*! + \brief handle all host channels interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +static uint32_t usbh_int_pipe(usb_core_driver *udev) +{ + uint32_t pp_num = 0U; + uint32_t retval = 0U; + + for (pp_num = 0U; pp_num < udev->bp.num_pipe; pp_num++) + { + if ((udev->regs.hr->HACHINT & HACHINT_HACHINT) & (1UL << pp_num)) + { + if (udev->regs.pr[pp_num]->HCHCTL & HCHCTL_EPDIR) + { + retval |= usbh_int_pipe_in(udev, pp_num); + } + else + { + retval |= usbh_int_pipe_out(udev, pp_num); + } + } + } + + return retval; +} + +/*! + \brief handle the IN channel interrupt + \param[in] udev: pointer to USB device instance + \param[in] pp_num: host channel number which is in (0..7) + \param[out] none + \retval operation status +*/ +#if defined(__ICCARM__) /*!< IAR compiler */ +#pragma optimize = none +#endif /* __ICCARM */ +static uint32_t usbh_int_pipe_in(usb_core_driver *udev, uint32_t pp_num) +{ + usb_pr *pp_reg = udev->regs.pr[pp_num]; + usb_pipe *pp = &udev->host.pipe[pp_num]; + + uint32_t intr_pp = pp_reg->HCHINTF; + intr_pp &= pp_reg->HCHINTEN; + + uint8_t ep_type = (uint8_t)((pp_reg->HCHCTL & HCHCTL_EPTYPE) >> 18); + + if (intr_pp & HCHINTF_ACK) + { + pp_reg->HCHINTF = HCHINTF_ACK; + } + else if (intr_pp & HCHINTF_STALL) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_STALL, PIPE_STALL); + pp_reg->HCHINTF = HCHINTF_NAK; + + /* note: When there is a 'STALL', reset also NAK, + else, the udev->host.pp_status = HC_STALL + will be overwritten by 'NAK' in code below */ + intr_pp &= ~HCHINTF_NAK; + } + else if (intr_pp & HCHINTF_DTER) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_DTER, PIPE_DTGERR); + pp_reg->HCHINTF = HCHINTF_NAK; + } + else + { + /* no operation */ + } + + if (intr_pp & HCHINTF_REQOVR) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_REQOVR, PIPE_REQOVR); + } + else if (intr_pp & HCHINTF_TF) + { + if ((uint8_t)USB_USE_DMA == udev->bp.transfer_mode) + { + udev->host.backup_xfercount[pp_num] = pp->xfer_len - (pp_reg->HCHLEN & HCHLEN_TLEN); + } + + pp->pp_status = PIPE_XF; + pp->err_count = 0U; + + pp_reg->HCHINTF = HCHINTF_TF; + + switch (ep_type) + { + case USB_EPTYPE_CTRL: + case USB_EPTYPE_BULK: + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_NAK, PIPE_XF); + + pp->data_toggle_in ^= 1U; + break; + + case USB_EPTYPE_INTR: + case USB_EPTYPE_ISOC: + pp_reg->HCHCTL |= HCHCTL_ODDFRM; + pp->urb_state = URB_DONE; + +#ifdef USBH_USE_RTOS + usbh_hc_notifyurbchange_callback(udev, pp_num, pp->urb_state); +#endif /* USBH_USE_RTOS */ + break; + + default: + break; + } + } + else if (intr_pp & HCHINTF_CH) + { + pp_reg->HCHINTEN &= ~HCHINTEN_CHIE; + + switch (pp->pp_status) + { + case PIPE_XF: + pp->urb_state = URB_DONE; + break; + + case PIPE_STALL: + pp->urb_state = URB_STALL; + break; + + case PIPE_TRACERR: + case PIPE_DTGERR: + pp->err_count = 0U; + pp->urb_state = URB_ERROR; + + pp->data_toggle_in ^= 1U; + break; + + case PIPE_IDLE: + case PIPE_HALTED: + case PIPE_NAK: + case PIPE_NYET: + case PIPE_BBERR: + case PIPE_REQOVR: + default: + if ((uint8_t)USB_EPTYPE_INTR == ep_type) + { + pp->data_toggle_in ^= 1U; + } + break; + } + +#ifdef USBH_USE_RTOS + usbh_hc_notifyurbchange_callback(udev, pp_num, pp->urb_state); +#endif /* USBH_USE_RTOS */ + + pp_reg->HCHINTF = HCHINTF_CH; + } + else if (intr_pp & HCHINTF_USBER) + { + pp->err_count++; + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_USBER, PIPE_TRACERR); + } + else if (intr_pp & HCHINTF_NAK) + { + pp_reg->HCHINTF = HCHINTF_NAK; + switch (ep_type) + { + case USB_EPTYPE_CTRL: + case USB_EPTYPE_BULK: + /* re-activate the channel */ + pp_reg->HCHCTL = (pp_reg->HCHCTL | HCHCTL_CEN) & ~HCHCTL_CDIS; + break; + + case USB_EPTYPE_INTR: + pp_reg->HCHINTEN |= HCHINTEN_CHIE; + + (void)usb_pipe_halt(udev, (uint8_t)pp_num); + break; + + default: + break; + } + + pp->pp_status = PIPE_NAK; + } + else + { + /* no operation */ + } + + return 1U; +} + +/*! + \brief handle the OUT channel interrupt + \param[in] udev: pointer to USB device instance + \param[in] pp_num: host channel number which is in (0..7) + \param[out] none + \retval operation status +*/ +#if defined(__ICCARM__) /*!< IAR compiler */ +#pragma optimize = none +#endif /* __ICCARM */ +static uint32_t usbh_int_pipe_out(usb_core_driver *udev, uint32_t pp_num) +{ + usb_pr *pp_reg = udev->regs.pr[pp_num]; + usb_pipe *pp = &udev->host.pipe[pp_num]; + + uint32_t intr_pp = pp_reg->HCHINTF; + intr_pp &= pp_reg->HCHINTEN; + + if (intr_pp & HCHINTF_ACK) + { + if (1U == udev->host.pipe[pp_num].do_ping) + { + udev->host.pipe[pp_num].do_ping = 0U; + pp->err_count = 0U; + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_ACK, PIPE_NAK); + } + + pp_reg->HCHINTF = HCHINTF_ACK; + } + else if (intr_pp & HCHINTF_STALL) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_STALL, PIPE_STALL); + } + else if (intr_pp & HCHINTF_DTER) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_DTER, PIPE_DTGERR); + pp_reg->HCHINTF = HCHINTF_NAK; + } + else if (intr_pp & HCHINTF_REQOVR) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_REQOVR, PIPE_REQOVR); + } + else if (intr_pp & HCHINTF_TF) + { + pp->err_count = 0U; + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_TF, PIPE_XF); + } + else if (intr_pp & HCHINTF_NAK) + { + if (0U == udev->host.pipe[pp_num].do_ping) + { + if (1U == udev->host.pipe[pp_num].supp_ping) + { + udev->host.pipe[pp_num].do_ping = 1U; + } + } + + pp->err_count = 0U; + if (USB_USE_FIFO == udev->bp.transfer_mode) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_NAK, PIPE_NAK); + } + else + { + pp_reg->HCHINTF = HCHINTF_NAK; + } + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_NAK, PIPE_NAK); + } + else if (intr_pp & HCHINTF_USBER) + { + pp->err_count++; + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_USBER, PIPE_TRACERR); + } + else if (intr_pp & HCHINTF_NYET) + { + usb_pp_halt(udev, (uint8_t)pp_num, HCHINTF_NYET, PIPE_NYET); + + pp->err_count = 0U; + } + else if (intr_pp & HCHINTF_CH) + { + udev->regs.pr[pp_num]->HCHINTEN &= ~HCHINTEN_CHIE; + + switch (pp->pp_status) + { + case PIPE_XF: + pp->urb_state = URB_DONE; + + if ((uint8_t)USB_EPTYPE_BULK == ((pp_reg->HCHCTL & HCHCTL_EPTYPE) >> 18U)) + { + pp->data_toggle_out ^= 1U; + } + break; + + case PIPE_NAK: + pp->urb_state = URB_NOTREADY; + break; + + case PIPE_NYET: + pp->urb_state = URB_DONE; + + if ((uint8_t)USB_EPTYPE_BULK == ((pp_reg->HCHCTL & HCHCTL_EPTYPE) >> 18U)) + { + pp->data_toggle_out ^= 1U; + } + break; + + case PIPE_STALL: + pp->urb_state = URB_STALL; + break; + + case PIPE_TRACERR: + if (3U == pp->err_count) + { + pp->urb_state = URB_ERROR; + pp->err_count = 0U; + } + break; + + case PIPE_IDLE: + case PIPE_HALTED: + case PIPE_BBERR: + case PIPE_REQOVR: + case PIPE_DTGERR: + default: + break; + } + +#ifdef USBH_USE_RTOS + usbh_hc_notifyurbchange_callback(udev, pp_num, pp->urb_state); +#endif /* USBH_USE_RTOS */ + + pp_reg->HCHINTF = HCHINTF_CH; + } + else + { + /* no operation */ + } + + return 1U; +} + +/*! + \brief handle the RX FIFO non-empty interrupt + \param[in] udev: pointer to USB device instance + \param[out] none + \retval operation status +*/ +#if defined(__ICCARM__) /*!< IAR compiler */ +#pragma optimize = none +#endif /* __ICCARM */ +static uint32_t usbh_int_rxfifonoempty(usb_core_driver *udev) +{ + uint32_t count = 0U, xfer_count = 0U; + + __IO uint8_t pp_num = 0U; + __IO uint32_t rx_stat = 0U; + + /* disable the RX status queue level interrupt */ + udev->regs.gr->GINTEN &= ~GINTEN_RXFNEIE; + + rx_stat = udev->regs.gr->GRSTATP; + pp_num = (uint8_t)(rx_stat & GRSTATRP_CNUM); + + switch ((rx_stat & GRSTATRP_RPCKST) >> 17) + { + case GRXSTS_PKTSTS_IN: + count = (rx_stat & GRSTATRP_BCOUNT) >> 4; + + /* read the data into the host buffer. */ + if ((NULL != udev->host.pipe[pp_num].xfer_buf) && (count > 0U)) + { + (void)usb_rxfifo_read(&udev->regs, udev->host.pipe[pp_num].xfer_buf, (uint16_t)count); + + /* manage multiple transfer packet */ + udev->host.pipe[pp_num].xfer_buf += count; + udev->host.pipe[pp_num].xfer_count += count; + + xfer_count = udev->host.pipe[pp_num].xfer_count; + + udev->host.backup_xfercount[pp_num] = xfer_count; + + if (udev->regs.pr[pp_num]->HCHLEN & HCHLEN_PCNT) + { + /* re-activate the channel when more packets are expected */ + uint32_t pp_ctl = udev->regs.pr[pp_num]->HCHCTL; + + pp_ctl |= HCHCTL_CEN; + pp_ctl &= ~HCHCTL_CDIS; + + udev->regs.pr[pp_num]->HCHCTL = pp_ctl; + } + } + break; + + case GRXSTS_PKTSTS_IN_XFER_COMP: + break; + + case GRXSTS_PKTSTS_DATA_TOGGLE_ERR: + count = (rx_stat & GRSTATRP_BCOUNT) >> 4; + + while (count > 0U) + { + rx_stat = udev->regs.gr->GRSTATP; + count--; + } + break; + + case GRXSTS_PKTSTS_CH_HALTED: + break; + + default: + break; + } + + /* enable the RX status queue level interrupt */ + udev->regs.gr->GINTEN |= GINTEN_RXFNEIE; + + return 1U; +} + +/*! + \brief handle the TX FIFO empty interrupt + \param[in] udev: pointer to USB device instance + \param[in] pp_mode: pipe mode + \param[out] none + \retval operation status +*/ +#if defined(__ICCARM__) /*!< IAR compiler */ +#pragma optimize = none +#endif /* __ICCARM */ +static uint32_t usbh_int_txfifoempty(usb_core_driver *udev, usb_pipe_mode pp_mode) +{ + uint8_t pp_num = 0U; + uint16_t word_count = 0U, len = 0U; + __IO uint32_t *txfiforeg = 0U, txfifostate = 0U; + + if (PIPE_NON_PERIOD == pp_mode) + { + txfiforeg = &udev->regs.gr->HNPTFQSTAT; + } + else if (PIPE_PERIOD == pp_mode) + { + txfiforeg = &udev->regs.hr->HPTFQSTAT; + } + else + { + return 0U; + } + + txfifostate = *txfiforeg; + + pp_num = (uint8_t)((txfifostate & TFQSTAT_CNUM) >> 27); + + word_count = (uint16_t)(udev->host.pipe[pp_num].xfer_len + 3U) / 4U; + + while (((txfifostate & TFQSTAT_TXFS) >= word_count) && (0U != udev->host.pipe[pp_num].xfer_len)) + { + len = (uint16_t)(txfifostate & TFQSTAT_TXFS) * 4U; + + if (len > udev->host.pipe[pp_num].xfer_len) + { + /* last packet */ + len = (uint16_t)udev->host.pipe[pp_num].xfer_len; + + if (PIPE_NON_PERIOD == pp_mode) + { + udev->regs.gr->GINTEN &= ~GINTEN_NPTXFEIE; + } + else + { + udev->regs.gr->GINTEN &= ~GINTEN_PTXFEIE; + } + } + + word_count = (uint16_t)((udev->host.pipe[pp_num].xfer_len + 3U) / 4U); + usb_txfifo_write(&udev->regs, udev->host.pipe[pp_num].xfer_buf, pp_num, len); + + udev->host.pipe[pp_num].xfer_buf += len; + udev->host.pipe[pp_num].xfer_len -= len; + udev->host.pipe[pp_num].xfer_count += len; + + txfifostate = *txfiforeg; + } + + return 1U; +} + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.h new file mode 100644 index 00000000000..fe1afdc820f --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_int.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef DRV_USBH_INT_H +#define DRV_USBH_INT_H + +#include "drv_usb_host.h" + +/* handle global host interrupt */ +uint32_t usbh_isr(usb_core_driver *udev); + +#endif /* DRV_USBH_INT_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.c new file mode 100644 index 00000000000..542ebbe6916 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.c @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usbh_pipe.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +static uint16_t usbh_freepipe_get(usb_core_driver *pudev); + +/*! + \brief create a pipe + \param[in] pudev: pointer to usb core instance + \param[in] pp_num: pipe number + \param[in] udev: USB device + \param[in] ep_type: endpoint type + \param[in] ep_mpl: endpoint max packet length + \param[out] none + \retval operation status +*/ +uint8_t usbh_pipe_create(usb_core_driver *pudev, + uint8_t dev_addr, + uint8_t dev_speed, + uint8_t pp_num, + uint8_t ep_num, + uint8_t ep_type, + uint16_t ep_mpl) +{ + usb_pipe *pp = &pudev->host.pipe[pp_num]; + + pp->dev_addr = dev_addr; + pp->dev_speed = dev_speed; + pp->ep.num = ep_num & 0x7FU; + pp->ep.type = ep_type; + pp->ep.mps = ep_mpl; + + if (((USB_EPTYPE_BULK == pp->ep.type) || (USB_EPTYPE_CTRL == pp->ep.type))) + { + pp->supp_ping = (uint8_t)(pp->dev_speed == PORT_SPEED_HIGH); + } + + if (0x80U == (ep_num & 0x80U)) + { + pp->ep.dir = 1; + } + else + { + pp->ep.dir = 0; + } + + usb_pipe_init(pudev, pp_num); + + return HC_OK; +} + +/*! + \brief modify a pipe + \param[in] pudev: pointer to usb core instance + \param[in] pp_num: pipe number + \param[in] dev_addr: device address + \param[in] dev_speed: device speed + \param[in] ep_type: endpoint type + \param[in] ep_mpl: endpoint max packet length + \param[out] none + \retval operation status +*/ +uint8_t usbh_pipe_update(usb_core_driver *pudev, + uint8_t pp_num, + uint8_t dev_addr, + uint32_t dev_speed, + uint16_t ep_mpl) +{ + usb_pipe *pp = &pudev->host.pipe[pp_num]; + + if ((pp->dev_addr != dev_addr) && (dev_addr)) + { + pp->dev_addr = dev_addr; + } + + if ((pp->dev_speed != dev_speed) && (dev_speed)) + { + pp->dev_speed = dev_speed; + } + + if ((pp->ep.mps != ep_mpl) && (ep_mpl)) + { + pp->ep.mps = ep_mpl; + } + + usb_pipe_init(pudev, pp_num); + + return HC_OK; +} + +/*! + \brief allocate a new pipe + \param[in] pudev: pointer to usb core instance + \param[in] ep_addr: endpoint address + \param[out] none + \retval operation status +*/ +uint8_t usbh_pipe_allocate(usb_core_driver *pudev, uint8_t ep_addr) +{ + uint16_t pp_num = usbh_freepipe_get(pudev); + + if (HC_ERROR != pp_num) + { + pudev->host.pipe[pp_num].in_used = 1U; + pudev->host.pipe[pp_num].ep.dir = EP_DIR(ep_addr); + pudev->host.pipe[pp_num].ep.num = EP_ID(ep_addr); + } + + return pp_num; +} + +/*! + \brief free a pipe + \param[in] pudev: pointer to usb core instance + \param[in] pp_num: pipe number + \param[out] none + \retval operation status +*/ +uint8_t usbh_pipe_free(usb_core_driver *pudev, uint8_t pp_num) +{ + if (pp_num < HC_MAX) + { + pudev->host.pipe[pp_num].in_used = 0U; + } + + return USBH_OK; +} + +/*! + \brief delete all USB host pipe + \param[in] pudev: pointer to usb core instance + \param[out] none + \retval operation status +*/ +uint8_t usbh_pipe_delete(usb_core_driver *pudev) +{ + uint8_t pp_num = 0U; + + for (pp_num = 2U; pp_num < HC_MAX; pp_num++) + { + pudev->host.pipe[pp_num] = (usb_pipe){ 0 }; + } + + return USBH_OK; +} + +/*! + \brief get a free pipe number for allocation + \param[in] pudev: pointer to usb core instance + \param[out] none + \retval operation status +*/ +static uint16_t usbh_freepipe_get(usb_core_driver *pudev) +{ + uint8_t pp_num = 0U; + + for (pp_num = 0U; pp_num < HC_MAX; pp_num++) + { + if (pudev->host.pipe[pp_num].in_used == 0U) + { + return pp_num; + } + } + + return HC_ERROR; +} + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.h new file mode 100644 index 00000000000..03852f13420 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_pipe.h @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef __DRV_USBH_PIPE_H +#define __DRV_USBH_PIPE_H + +#include "drv_usb_host.h" + +#define HC_MAX 8U + +#define HC_OK 0x0000U +#define HC_USED 0x8000U +#define HC_ERROR 0xFFFFU +#define HC_USED_MASK 0x7FFFU + +/* allocate a new pipe */ +uint8_t usbh_pipe_allocate(usb_core_driver *pudev, uint8_t ep_addr); + +/* delete all USB host pipe */ +uint8_t usbh_pipe_delete(usb_core_driver *pudev); + +/* free a pipe */ +uint8_t usbh_pipe_free(usb_core_driver *pudev, uint8_t pp_num); + +/* create a pipe */ +uint8_t usbh_pipe_create(usb_core_driver *pudev, + uint8_t dev_addr, + uint8_t dev_speed, + uint8_t pp_num, + uint8_t ep_num, + uint8_t ep_type, + uint16_t ep_mpl); + +/* modify a pipe */ +uint8_t usbh_pipe_update(usb_core_driver *pudev, + uint8_t pp_num, + uint8_t dev_addr, + uint32_t dev_speed, + uint16_t ep_mpl); + +#endif /* __DRV_USBH_PIPE_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_trans.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_trans.c new file mode 100644 index 00000000000..3af506c95da --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_trans.c @@ -0,0 +1,147 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usbh_transc.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +#define USB_SETUP_PACKET_LEN 8U + +/*! + \brief prepare a pipe and start a transfer + \param[in] pudev: pointer to usb core instance + \param[in] pp_num: pipe number + \param[out] none + \retval operation status +*/ +static uint32_t usbh_request_submit(usb_core_driver *pudev, uint8_t pp_num) +{ + pudev->host.pipe[pp_num].urb_state = URB_IDLE; + pudev->host.pipe[pp_num].xfer_count = 0U; + + return usb_pipe_xfer(pudev, pp_num); +} + +/*! + \brief send the setup packet to the USB device + \param[in] pudev: pointer to usb core instance + \param[in] buf: data buffer which will be sent to USB device + \param[in] pp_num: pipe number + \param[out] none + \retval operation status +*/ +usbh_status usbh_ctlsetup_send(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num) +{ + usb_pipe *pp = &pudev->host.pipe[pp_num]; + + pp->DPID = PIPE_DPID_SETUP; + pp->xfer_buf = buf; + pp->xfer_len = USB_SETUP_PACKET_LEN; + + return (usbh_status)usbh_request_submit(pudev, pp_num); +} + +/*! + \brief send a data packet to the USB device + \param[in] pudev: pointer to usb core instance + \param[in] buf: data buffer which will be sent to USB device + \param[in] pp_num: pipe number + \param[in] len: length of the data to be sent + \param[out] none + \retval operation status +*/ +usbh_status usbh_data_send(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len) +{ + usb_pipe *pp = &pudev->host.pipe[pp_num]; + + pp->xfer_buf = buf; + pp->xfer_len = len; + + switch (pp->ep.type) + { + case USB_EPTYPE_CTRL: + if (0U == len) + { + pp->data_toggle_out = 1U; + } + + pp->DPID = PIPE_DPID[pp->data_toggle_out]; + break; + + case USB_EPTYPE_INTR: + pp->DPID = PIPE_DPID[pp->data_toggle_out]; + + pp->data_toggle_out ^= 1U; + break; + + case USB_EPTYPE_BULK: + pp->DPID = PIPE_DPID[pp->data_toggle_out]; + break; + + case USB_EPTYPE_ISOC: + pp->DPID = PIPE_DPID[0]; + break; + + default: + break; + } + + usbh_request_submit(pudev, pp_num); + + return USBH_OK; +} + +/*! + \brief receive a data packet from the USB device + \param[in] pudev: pointer to usb core instance + \param[in] buf: data buffer which will be received from USB device + \param[in] pp_num: pipe number + \param[in] len: length of the data to be received + \param[out] none + \retval operation status +*/ +usbh_status usbh_data_recev(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len) +{ + usb_pipe *pp = &pudev->host.pipe[pp_num]; + + pp->xfer_buf = buf; + pp->xfer_len = len; + + switch (pp->ep.type) + { + case USB_EPTYPE_CTRL: + pp->DPID = PIPE_DPID[1]; + break; + + case USB_EPTYPE_INTR: + pp->DPID = PIPE_DPID[pp->data_toggle_in]; + + /* Toggle DATA PID */ + pp->data_toggle_in ^= 1U; + break; + + case USB_EPTYPE_BULK: + pp->DPID = PIPE_DPID[pp->data_toggle_in]; + break; + + case USB_EPTYPE_ISOC: + pp->DPID = PIPE_DPID[0]; + break; + + default: + break; + } + + usbh_request_submit(pudev, pp_num); + + return USBH_OK; +} + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_transc.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_transc.h new file mode 100644 index 00000000000..e931daee028 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/drv_usbh_transc.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef __DRV_USBH_TRANSC_H +#define __DRV_USBH_TRANSC_H + +#include "drv_usb_host.h" + +#if defined(BSP_USING_USB) && defined(RT_USING_USB_HOST) + +/* send the setup packet to the USB device */ +usbh_status usbh_ctlsetup_send(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num); + +/* send a data packet to the USB device */ +usbh_status usbh_data_send(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len); + +/* receive a data packet from the USB device */ +usbh_status usbh_data_recev(usb_core_driver *pudev, uint8_t *buf, uint8_t pp_num, uint16_t len); + +/* get USB URB state */ +static inline usb_urb_state usbh_urbstate_get(usb_core_driver *pudev, uint8_t pp_num) +{ + return pudev->host.pipe[pp_num].urb_state; +} + +/* get USB transfer data count */ +static inline uint32_t usbh_xfercount_get(usb_core_driver *pudev, uint8_t pp_num) +{ + return pudev->host.backup_xfercount[pp_num]; +} + +#endif /* BSP_USING_USB && RT_USING_USB_HOST */ +#endif /* __DRV_USBH_TRANSC_H */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/gd32h7_usb_hw.c b/bsp/gd32/arm/libraries/gd32_drivers/usb/gd32h7_usb_hw.c new file mode 100644 index 00000000000..f045e2f39bd --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/gd32h7_usb_hw.c @@ -0,0 +1,592 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#include "drv_usb_hw.h" +#include +#include +#include + +#if defined(RT_USING_USB_DEVICE) +#include "drv_usbd_int.h" +#include "drv_otghs_dev.h" +#endif + +#if defined(RT_USING_USB_HOST) +#include "drv_usbh_int.h" +#include "drv_otghs_host.h" +#endif + +#if defined(BSP_USING_USB) + +#if defined(RT_USING_USB_HOST) +#ifndef USE_ULPI_PHY + +#if !defined(BSP_USB_HOST_VBUS_PORT_RCC) || \ + !defined(BSP_USB_HOST_VBUS_PORT) || \ + !defined(BSP_USB_HOST_VBUS_PIN) +#error "Please define the USB host VBUS control pin in board.h" +#endif + +#define HOST_POWERSW_PORT_RCC BSP_USB_HOST_VBUS_PORT_RCC +#define HOST_POWERSW_PORT BSP_USB_HOST_VBUS_PORT +#define HOST_POWERSW_VBUS BSP_USB_HOST_VBUS_PIN + +#else + +#ifdef USE_USBHS0 +#define HOST_POWERSW_PORT_RCC RCU_GPIOC +#define HOST_POWERSW_PORT GPIOC +#define HOST_POWERSW_VBUS GPIO_PIN_7 +#endif + +#ifdef USE_USBHS1 +#define HOST_POWERSW_PORT_RCC RCU_GPIOC +#define HOST_POWERSW_PORT GPIOC +#define HOST_POWERSW_VBUS GPIO_PIN_9 +#endif + +#endif + +#endif + +/*! + \brief configure USB GPIO + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +void usb_gpio_config(void) +{ +#ifdef USE_USBHS0 + rcu_periph_clock_enable(RCU_GPIOA); + rcu_periph_clock_enable(RCU_GPIOB); + rcu_periph_clock_enable(RCU_GPIOC); + + /* ULPI_STP(PC0) GPIO pin configuration */ + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_0); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_0); + + /* ULPI_CK(PA5) GPIO pin configuration */ + gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5); + gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_5); + + /* ULPI_NXT(PC3) GPIO pin configuration */ + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_3); + + /* ULPI_DIR(PC2) GPIO pin configuration */ + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_2); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_2); + + /* ULPI_D1(PB0), ULPI_D2(PB1), ULPI_D3(PB10), ULPI_D4(PB11) \ + ULPI_D5(PB12), ULPI_D6(PB13) and ULPI_D7(PB5) GPIO pin configuration */ + gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_0 | + GPIO_PIN_1 | GPIO_PIN_10 | GPIO_PIN_11); + gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, + GPIO_PIN_12 | + GPIO_PIN_13 | GPIO_PIN_5); + + /* ULPI_D0(PA3) GPIO pin configuration */ + gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3); + gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_3); + + gpio_af_set(GPIOA, GPIO_AF_10, GPIO_PIN_5); + gpio_af_set(GPIOB, GPIO_AF_10, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_5 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13); + gpio_af_set(GPIOC, GPIO_AF_10, GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3); + +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 + rcu_periph_clock_enable(RCU_GPIOH); + rcu_periph_clock_enable(RCU_GPIOG); + + /* ULPI_STP(PH2) GPIO pin configuration */ + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_2); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_2); + + + /* ULPI_CK(PH5) GPIO pin configuration */ + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_5); + + /* ULPI_NXT(PH4) GPIO pin configuration */ + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_4); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_4); + + /* ULPI_DIR(PH3) GPIO pin configuration */ + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_3); + + /* ULPI_D0(PH6) GPIO pin configuration */ + /* ULPI_D1(PH7), ULPI_D2(PH8), ULPI_D3(PH9), ULPI_D4(PH10) \ + ULPI_D5(PH11), ULPI_D6(PH12) and ULPI_D7(PG5) GPIO pin configuration */ + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | + GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, + GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | + GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12); + + gpio_mode_set(GPIOG, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_5); + gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, GPIO_PIN_5); + + gpio_af_set(GPIOG, GPIO_AF_8, GPIO_PIN_5); + gpio_af_set(GPIOH, GPIO_AF_8, GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12); +#endif /* USE_USBHS1 */ +} + +#ifdef USE_USBHS0 +/*! + \brief this function handles USBHS0 interrupt + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +void USBHS0_IRQHandler(void) +{ + rt_interrupt_enter(); + +#if defined(BSP_USB_USING_DEVICE) + gd_usb_irq_count++; + usbd_isr(&gd_usb_device_core); +#endif + + rt_interrupt_leave(); +} + +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 +/*! + \brief this function handles USBHS1 interrupt + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +void USBHS1_IRQHandler(void) +{ + rt_interrupt_enter(); + +#if defined(BSP_USB_USING_HOST) + gd_usbh_irq_count++; + usbh_isr(&gd_usb_host_core); +#endif + + rt_interrupt_leave(); +} + +#endif /* USE_USBHS1 */ + +/*! + \brief resume MCU clock + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +static void resume_mcu_clk(void) +{ + /* enable HXTAL */ + rcu_osci_on(RCU_HXTAL); + + /* wait till HXTAL is ready */ + while (RESET == rcu_flag_get(RCU_FLAG_HXTALSTB)) + { + } + + /* enable PLL */ + rcu_osci_on(RCU_PLL0_CK); + + /* wait till PLL is ready */ + while (RESET == rcu_flag_get(RCU_FLAG_PLL0STB)) + { + } + + /* select PLL as system clock source */ + rcu_system_clock_source_config(RCU_CKSYSSRC_PLL0P); + + /* wait till PLL is used as system clock source */ + while (RCU_SCSS_PLL0P != rcu_system_clock_source_get()) + { + } +} + +#ifdef USE_USBHS0 +/*! + \brief this function handles USBHS0 wakeup interrupt request + \param[in] none + \param[out] none + \retval none +*/ +void USBHS0_WKUP_IRQHandler(void) +{ + rt_interrupt_enter(); + + if (gd_usb_device_core.bp.low_power) + { + resume_mcu_clk(); + +#ifndef USE_IRC48M + rcu_usb48m_clock_config(IDX_USBHS0, RCU_USB48MSRC_PLL0R); +#else + /* enable IRC48M clock */ + rcu_osci_on(RCU_IRC48M); + + /* wait till IRC48M is ready */ + while (SUCCESS != rcu_osci_stab_wait(RCU_IRC48M)) + { + } + + rcu_ck48m_clock_config(RCU_CK48MSRC_IRC48M); +#endif /* USE_IRC48M */ + + rcu_periph_clock_enable(RCU_USBHS0); + + usb_clock_active(&gd_usb_device_core); + } + + exti_interrupt_flag_clear(EXTI_31); + + rt_interrupt_leave(); +} + +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 +/*! + \brief this function handles USBHS1 wakeup interrupt request + \param[in] none + \param[out] none + \retval none +*/ +void USBHS1_WKUP_IRQHandler(void) +{ + rt_interrupt_enter(); + + if (gd_usb_host_core.bp.low_power) + { + resume_mcu_clk(); + +#ifndef USE_IRC48M + rcu_usb48m_clock_config(IDX_USBHS1, RCU_USB48MSRC_PLL1Q); +#else + /* enable IRC48M clock */ + rcu_osci_on(RCU_IRC48M); + + /* wait till IRC48M is ready */ + while (SUCCESS != rcu_osci_stab_wait(RCU_IRC48M)) + { + } + + rcu_ck48m_clock_config(RCU_CK48MSRC_IRC48M); +#endif /* USE_IRC48M */ + + rcu_periph_clock_enable(RCU_USBHS1); + + usb_clock_active(&gd_usb_host_core); + } + + exti_interrupt_flag_clear(EXTI_32); + + rt_interrupt_leave(); +} + +#endif /* USE_USBHS1 */ + +#ifdef USB_DEDICATED_EP1_ENABLED + +#ifdef USE_USBHS0 +/*! + \brief this function handles USBHS0 dedicated endpoint 1 OUT interrupt request. + \param[in] none + \param[out] none + \retval none +*/ +void USBHS0_EP1_OUT_IRQHandler(void) +{ + usbd_int_dedicated_ep1out(&cdc_acm); +} + +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 +/*! + \brief this function handles USBHS1 dedicated endpoint 1 OUT interrupt request. + \param[in] none + \param[out] none + \retval none +*/ +void USBHS1_EP1_OUT_IRQHandler(void) +{ + usbd_int_dedicated_ep1out(&cdc_acm); +} + +#endif /* USE_USBHS1 */ + +#ifdef USE_USBHS0 +/*! + \brief this function handles USBHS0 dedicated endpoint 1 IN interrupt request + \param[in] none + \param[out] none + \retval none +*/ +void USBHS0_EP1_IN_IRQHandler(void) +{ + usbd_int_dedicated_ep1in(&cdc_acm); +} + +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 +/*! + \brief this function handles USBHS1 dedicated endpoint 1 IN interrupt request + \param[in] none + \param[out] none + \retval none +*/ +void USBHS1_EP1_IN_IRQHandler(void) +{ + usbd_int_dedicated_ep1in(&cdc_acm); +} + +#endif /* USE_USBHS1 */ + +#endif /* USB_DEDICATED_EP1_ENABLED */ + +/*! + \brief configure USB clock + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +void usb_rcu_config(uint32_t usb_periph) +{ + pmu_usb_regulator_enable(); + pmu_usb_voltage_detector_enable(); + while (SET != pmu_flag_get(PMU_FLAG_USB33RF)) + { + } + +#ifndef USE_IRC48M + if (USBHS0 == usb_periph) + { + rcu_periph_clock_enable(RCU_USBHS0); + + /* Required by the GD32H77x USBHS0 embedded-PHY startup sequence. */ + ((usb_gr *)USBHS0_REG_BASE)->GUSBCS |= GUSBCS_EMBPHY_FS; + ((usb_gr *)USBHS0_REG_BASE)->GCCFG |= GCCFG_PWRON; + + rcu_pllusb0_config(RCU_PLLUSBHSPRE_HXTAL, RCU_PLLUSBHSPRE_DIV5, + RCU_PLLUSBHS_MUL96, RCU_USBHS_DIV10); + RCU_ADDCTL1 |= RCU_ADDCTL1_PLLUSBHS0EN; + while (0U == (RCU_ADDCTL1 & RCU_ADDCTL1_PLLUSBHS0STB)) + { + } + + rcu_usb48m_clock_config(IDX_USBHS0, RCU_USB48MSRC_PLLUSBHS); + } + else if (USBHS1 == usb_periph) + { + rcu_periph_clock_enable(RCU_USBHS1); + + /* configure the pll1 input and output clock range */ + rcu_pll_input_output_clock_range_config(IDX_PLL1, RCU_PLL1RNG_4M_8M, RCU_PLL1VCO_192M_836M); + + rcu_pll1_config(5, 96, 2, 10, 2); + /* enable PLL1Q clock output */ + rcu_pll_clock_output_enable(RCU_PLL1Q); + rcu_osci_on(RCU_PLL1_CK); + + rcu_usbhs_pll1qpsc_config(IDX_USBHS1, RCU_USBHSPSC_DIV1); + + rcu_usb48m_clock_config(IDX_USBHS1, RCU_USB48MSRC_PLL1Q); + } + +#else + /* enable IRC48M clock */ + rcu_osci_on(RCU_IRC48M); + + /* wait till IRC48M is ready */ + while (SUCCESS != rcu_osci_stab_wait(RCU_IRC48M)) + { + } + + rcu_ck48m_clock_config(RCU_CK48MSRC_IRC48M); + + if (USBHS0 == usb_periph) + { + rcu_periph_clock_enable(RCU_USBHS0); + rcu_usb48m_clock_config(IDX_USBHS0, RCU_USB48MSRC_IRC48M); + } + else if (USBHS1 == usb_periph) + { + rcu_periph_clock_enable(RCU_USBHS1); + rcu_usb48m_clock_config(IDX_USBHS1, RCU_USB48MSRC_IRC48M); + } + +#endif /* USE_IRC48M */ + +#ifdef USE_ULPI_PHY +#ifdef USE_USBHS0 + rcu_periph_clock_enable(RCU_USBHS0ULPI); +#endif + +#ifdef USE_USBHS1 + rcu_periph_clock_enable(RCU_USBHS1ULPI); +#endif +#endif /* USE_ULPI_PHY */ +} + +/*! + \brief configure USB interrupt + \param[in] usb_periph: USBHS0 or USBHS1 + \param[out] none + \retval none +*/ +void usb_intr_config(uint32_t usb_periph) +{ + nvic_priority_group_set(NVIC_PRIGROUP_PRE2_SUB2); + + if (USBHS0 == usb_periph) + { + nvic_irq_enable((uint8_t)USBHS0_IRQn, 3U, 0U); + } + else if (USBHS1 == usb_periph) + { + nvic_irq_enable((uint8_t)USBHS1_IRQn, 3U, 0U); + } + + /* enable the power module clock */ + rcu_periph_clock_enable(RCU_PMU); + + if (USBHS0 == usb_periph) + { + /* USB wakeup EXTI line configuration */ + exti_interrupt_flag_clear(EXTI_31); + exti_init(EXTI_31, EXTI_INTERRUPT, EXTI_TRIG_RISING); + exti_interrupt_enable(EXTI_31); + + nvic_irq_enable((uint8_t)USBHS0_WKUP_IRQn, 1U, 0U); + } + else if (USBHS1 == usb_periph) + { + /* USB wakeup EXTI line configuration */ + exti_interrupt_flag_clear(EXTI_32); + exti_init(EXTI_32, EXTI_INTERRUPT, EXTI_TRIG_RISING); + exti_interrupt_enable(EXTI_32); + + nvic_irq_enable((uint8_t)USBHS1_WKUP_IRQn, 1U, 0U); + } + +#ifdef USB_DEDICATED_EP1_ENABLED + +#ifdef USE_USBHS0 + nvic_irq_enable((uint8_t)USBHS0_EP1_OUT_IRQn, 1U, 0U); + nvic_irq_enable((uint8_t)USBHS0_EP1_IN_IRQn, 1U, 0U); +#endif /* USE_USBHS0 */ + +#ifdef USE_USBHS1 + nvic_irq_enable((uint8_t)USBHS1_EP1_OUT_IRQn, 1U, 0U); + nvic_irq_enable((uint8_t)USBHS1_EP1_IN_IRQn, 1U, 0U); +#endif /* USE_USBHS1 */ + +#endif /* USB_DEDICATED_EP1_ENABLED */ +} + + +#if defined(RT_USING_USB_HOST) +/*! + \brief drives the VBUS signal through GPIO + \param[in] state: VBUS states + \param[out] none + \retval none +*/ +void usb_vbus_drive(uint8_t state) +{ + if (0U == state) + { + /* disable is needed on output of the power switch */ + gpio_bit_reset(HOST_POWERSW_PORT, HOST_POWERSW_VBUS); + } + else + { + /* enable the power switch by driving the enable high */ + gpio_bit_set(HOST_POWERSW_PORT, HOST_POWERSW_VBUS); + } +} + +/*! + \brief configures the GPIO for the VBUS + \param[in] none + \param[out] none + \retval none +*/ +void usb_vbus_config(void) +{ + rcu_periph_clock_enable(HOST_POWERSW_PORT_RCC); + + /* USB host VBUS control pin configuration */ + gpio_mode_set(HOST_POWERSW_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, HOST_POWERSW_VBUS); + gpio_output_options_set(HOST_POWERSW_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, HOST_POWERSW_VBUS); + + /* by default, disable is needed on output of the power switch */ + usb_vbus_drive(0U); + + /* delay is need for stabilizing the VBUS low in reset condition, + * when VBUS = 1 and reset-button is pressed by user + */ + usb_mdelay(200); +} + +#endif + +/*! + \brief delay in microseconds + \param[in] usec: value of delay required in microseconds + \param[out] none + \retval none +*/ +void usb_udelay(const uint32_t usec) +{ + rt_hw_us_delay(usec); +} + +/*! + \brief delay in milliseconds + \param[in] msec: value of delay required in milliseconds + \param[out] none + \retval none +*/ +void usb_mdelay(const uint32_t msec) +{ + rt_hw_us_delay(msec * 1000U); +} + +/*! + \brief configure the PLL of USB + \param[in] usb_periph: USBHS0 + \param[out] none + \retval none +*/ +void pllusb_rcu_config(uint32_t usb_periph) +{ + if (USBHS0 == usb_periph) + { + rcu_pllusb0_config(RCU_PLLUSBHSPRE_HXTAL, RCU_PLLUSBHSPRE_DIV5, RCU_PLLUSBHS_MUL96, RCU_USBHS_DIV10); + RCU_ADDCTL1 |= RCU_ADDCTL1_PLLUSBHS0EN; + while (0U == (RCU_ADDCTL1 & RCU_ADDCTL1_PLLUSBHS0STB)) + { + } + + rcu_usb48m_clock_config(IDX_USBHS0, RCU_USB48MSRC_PLLUSBHS); + } +} + +#endif /* BSP_USING_USB */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/usb/usb_conf.h b/bsp/gd32/arm/libraries/gd32_drivers/usb/usb_conf.h new file mode 100644 index 00000000000..20cf563a615 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/usb/usb_conf.h @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2025-11-07 RealThread the first version + */ + +#ifndef USB_CONF_H +#define USB_CONF_H + +#include +#include + +#if defined(BSP_USING_USB) + +#if defined(SOC_SERIES_GD32H77x_H78X) +#include "gd32h77x_78x.h" +#elif defined(SOC_SERIES_GD32H75E) +#include "gd32h75e.h" +#elif (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) +#include "gd32h7xx.h" +#endif + +#if defined(BSP_USB_USING_DEVICE) +#define USE_USBHS0 +#endif + +#if defined(BSP_USB_USING_HOST) +#define USE_USBHS1 +#endif + +/* USBHS0 and USBHS1 may run different roles at the same time. Keep both + * role-specific data models enabled when both RT-Thread options are set. */ +#if defined(RT_USING_USB_DEVICE) +#define USE_DEVICE_MODE +#endif + +#if defined(RT_USING_USB_HOST) +#define USE_HOST_MODE +#define USBH_USE_RTOS +#endif + +/* USB FIFO size config */ +#define USB_DEV_RX_FIFO_SIZE 512U +#define USB_DEV_TX0_FIFO_SIZE 128U +#define USB_DEV_TX1_FIFO_SIZE 384U +#define USB_DEV_TX2_FIFO_SIZE 0U +#define USB_DEV_TX3_FIFO_SIZE 0U +#define USB_DEV_TX4_FIFO_SIZE 0U +#define USB_DEV_TX5_FIFO_SIZE 0U +#define USB_DEV_TX6_FIFO_SIZE 0U +#define USB_DEV_TX7_FIFO_SIZE 0U + +#define USB_HOST_RX_FIFO_SIZE 512U +#define USB_HOST_TX_NPFIFO_SIZE 256U +#define USB_HOST_TX_PFIFO_SIZE 256U + +/* General USB Configuration */ +#define USB_LOW_POWER 0U + +/* if uncomment it, need jump to USB JP */ +//#define VBUS_SENSING_ENABLED + +//#define USB_INTERNAL_DMA_ENABLED +//#define USB_DEDICATED_EP1_ENABLED +/* End General USB Configuration */ + +#ifdef USE_ULPI_PHY +#define USB_EXTERNAL_ULPI_PHY_ENABLED +#endif /* USE_ULPI_PHY */ + +/* all variables and data structures during the transaction process should be 4-bytes aligned */ +#if defined(__GNUC__) /* GNU Compiler */ +#define __ALIGN_END __attribute__((aligned(4))) +#define __ALIGN_BEGIN +#else +#define __ALIGN_END + +#if defined(__CC_ARM) /* ARM Compiler */ +#define __ALIGN_BEGIN __align(4) +#elif defined(__ICCARM__) /* IAR Compiler */ +#define __ALIGN_BEGIN +#elif defined(__TASKING__)/* TASKING Compiler */ +#define __ALIGN_BEGIN __align(4) +#endif /* __CC_ARM */ +#endif /* __GNUC__ */ + +/* __packed keyword used to decrease the data type alignment to 1-byte */ +#if defined(__GNUC__) /* GNU Compiler */ +#ifndef __packed +#define __packed __unaligned +#endif +#elif defined(__TASKING__) /* TASKING Compiler */ +#define __packed __unaligned +#endif /* __GNUC__ */ + +#endif /* BSP_USING_USB */ + +#endif /* USB_CONF_H */ From 35dfb5a113ce14f9634196d6402ee3ddb0946d77 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:02:43 +0800 Subject: [PATCH 04/19] [bsp][gd32] Add GD32H77D SDRAM support Add clock-derived refresh, startup delay, readiness reporting and SDRAM verification commands. Keep the heap test optional and require memheap automatic binding so its allocations can use external SDRAM. Validated eight passes over a 1 MiB buffer and a 2 MiB allocation from the external heap on GinoPi. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 10 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/sdram_heap_test.c | 54 +++ bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + bsp/gd32/arm/gd32h77d-ginopi/board/board.h | 6 +- .../gd32h77d-ginopi/board/drv_sdram_port.c | 111 +++++++ .../arm/libraries/gd32_drivers/drv_sdram.c | 314 ++++++++++++++---- .../arm/libraries/gd32_drivers/sdram_port.h | 52 ++- 8 files changed, 478 insertions(+), 75 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/sdram_heap_test.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_sdram_port.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index a7fe4074413..eafb2724b70 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -7,4 +7,14 @@ menu "Applications" help Send one heartbeat per second on vcom from the LED loop. + config BSP_USING_SDRAM_HEAP_TEST + bool "Enable SDRAM heap test command" + depends on BSP_USING_SDRAM && RT_USING_HEAP && RT_USING_FINSH + depends on RT_USING_MEMHEAP_AS_HEAP && RT_USING_MEMHEAP_AUTO_BINDING + default n + help + Register sdram_heap_test to verify an allocated SDRAM buffer. + Use memheap objects as the system heap with automatic binding + so allocations can use the external SDRAM heap. + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index 6c4043abe14..8c8c57b347f 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -3,6 +3,9 @@ from building import * cwd = GetCurrentDir() src = ['main.c'] +if GetDepend('BSP_USING_SDRAM_HEAP_TEST'): + src += ['sdram_heap_test.c'] + group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/sdram_heap_test.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/sdram_heap_test.c new file mode 100644 index 00000000000..274b896b06f --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/sdram_heap_test.c @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +#ifdef BSP_USING_SDRAM_HEAP_TEST +static int sdram_heap_test(void) +{ + const rt_size_t size = 2U * 1024U * 1024U; + const rt_size_t words = size / sizeof(rt_uint32_t); + volatile rt_uint32_t *buffer; + rt_size_t i; + int result = RT_EOK; + + buffer = (volatile rt_uint32_t *)rt_malloc(size); + if (buffer == RT_NULL) + { + rt_kprintf("allocate failed\n"); + return -RT_ENOMEM; + } + + rt_kprintf("buffer: %p\n", buffer); + if ((rt_ubase_t)buffer < EXT_SDRAM_BEGIN || + (rt_ubase_t)buffer + size > EXT_SDRAM_END) + { + rt_kprintf("not allocated from SDRAM\n"); + rt_free((void *)buffer); + return -RT_ERROR; + } + + for (i = 0; i < words; i++) + buffer[i] = 0x55AA0000U ^ (rt_uint32_t)i; + + for (i = 0; i < words; i++) + { + if (buffer[i] != (0x55AA0000U ^ (rt_uint32_t)i)) + { + rt_kprintf("failed at %p\n", &buffer[i]); + result = -RT_ERROR; + break; + } + } + + rt_free((void *)buffer); + rt_kprintf(result == RT_EOK ? "SDRAM heap test passed\n" : + "SDRAM heap test failed\n"); + return result; +} +MSH_CMD_EXPORT(sdram_heap_test, test SDRAM heap); +#endif diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index 533da139b1f..df7e09838f9 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -9,6 +9,9 @@ src = Split(''' board.c ''') +if GetDepend(['BSP_USING_SDRAM']): + src += ['drv_sdram_port.c'] + path = [cwd] CPPDEFINES = ['GD32H77DXW'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/board.h b/bsp/gd32/arm/gd32h77d-ginopi/board/board.h index 42177df32bb..f2d58361ee5 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/board.h +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/board.h @@ -23,7 +23,7 @@ #define EXT_SDRAM_BEGIN (0xC0000000U) /* the begining address of external SDRAM */ #define EXT_SDRAM_END (EXT_SDRAM_BEGIN + (32U * 1024 * 1024)) /* the end address of external SDRAM */ #define EXT_SDRAM_LCD_RESERVED_SIZE (3U * 1024U * 1024U) -#define EXT_SDRAM_OV7670_PREVIEW_BEGIN (EXT_SDRAM_BEGIN + (2U * 1024U * 1024U)) +#define EXT_SDRAM_LCD_SCANOUT_SIZE (2U * 1024U * 1024U) #ifdef BSP_USING_LCD_MIPI #define SDRAM_HEAP_BEGIN (EXT_SDRAM_BEGIN + EXT_SDRAM_LCD_RESERVED_SIZE) @@ -32,6 +32,10 @@ #endif #define SDRAM_HEAP_SIZE (EXT_SDRAM_END - SDRAM_HEAP_BEGIN) +#ifdef BSP_USING_SDRAM +rt_bool_t rt_hw_sdram_is_ready(void); +#endif + #define BSP_USB_HOST_VBUS_PORT_RCC RCU_GPIOF #define BSP_USB_HOST_VBUS_PORT GPIOF #define BSP_USB_HOST_VBUS_PIN GPIO_PIN_2 diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_sdram_port.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_sdram_port.c new file mode 100644 index 00000000000..c4487b4bce0 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_sdram_port.c @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-07-27 RTT first version + * 2026-09-04 CYFS clock EXMC from PLL1R for faster SDRAM + */ + +#include + +#ifdef BSP_USING_SDRAM +#include + +static void _sdram_gpio_config(uint32_t gpio_periph, uint32_t gpio_af, uint32_t pins) +{ + gpio_af_set(gpio_periph, gpio_af, pins); + gpio_mode_set(gpio_periph, GPIO_MODE_AF, GPIO_PUPD_PULLUP, pins); + gpio_output_options_set(gpio_periph, GPIO_OTYPE_PP, GPIO_OSPEED_85MHZ, pins); +} + +void rt_hw_sdram_gpio_init(void) +{ +#if defined(SDRAM_USE_PLL1R_EXMC) && SDRAM_USE_PLL1R_EXMC + if (RESET == rcu_flag_get(RCU_FLAG_PLL1STB)) + { + rcu_pll_input_output_clock_range_config(IDX_PLL1, + RCU_PLL1RNG_4M_8M, + RCU_PLL1VCO_150M_420M); + if (rcu_pll1_config(SDRAM_PLL1_PSC, + SDRAM_PLL1_N, + SDRAM_PLL1_P, + SDRAM_PLL1_Q, + SDRAM_PLL1_R) == SUCCESS) + { + rcu_pll_clock_output_enable(RCU_PLL1R); + rcu_osci_on(RCU_PLL1_CK); + if (rcu_osci_stab_wait(RCU_PLL1_CK) == SUCCESS) + { + rcu_exmc_clock_config(RCU_EXMCSRC_PLL1R); + } + else + { + rcu_exmc_clock_config(RCU_EXMCSRC_AHB); + } + } + else + { + rcu_exmc_clock_config(RCU_EXMCSRC_AHB); + } + } + else + { + rcu_pll_clock_output_enable(RCU_PLL1R); + rcu_exmc_clock_config(RCU_EXMCSRC_PLL1R); + } +#else + rcu_exmc_clock_config(RCU_EXMCSRC_AHB); +#endif + rcu_periph_clock_enable(RCU_EXMC); + rcu_periph_clock_enable(RCU_GPIOA); + rcu_periph_clock_enable(RCU_GPIOB); + rcu_periph_clock_enable(RCU_GPIOC); + rcu_periph_clock_enable(RCU_GPIOD); + rcu_periph_clock_enable(RCU_GPIOE); + rcu_periph_clock_enable(RCU_GPIOF); + rcu_periph_clock_enable(RCU_GPIOG); + rcu_periph_clock_enable(RCU_GPIOH); + + /* D13-D15: PA4-PA6. */ + _sdram_gpio_config(GPIOA, GPIO_AF_4, GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6); + + /* A0-A1, D10-D11, A12, SDNE0 and SDNWE0. */ + _sdram_gpio_config(GPIOB, GPIO_AF_5, GPIO_PIN_0 | GPIO_PIN_1); + _sdram_gpio_config(GPIOB, GPIO_AF_3, GPIO_PIN_2 | GPIO_PIN_6); + _sdram_gpio_config(GPIOB, GPIO_AF_7, GPIO_PIN_3); + _sdram_gpio_config(GPIOB, GPIO_AF_10, GPIO_PIN_7); + _sdram_gpio_config(GPIOB, GPIO_AF_0, GPIO_PIN_10); + + /* D12 and D9. */ + _sdram_gpio_config(GPIOC, GPIO_AF_1, GPIO_PIN_0); + _sdram_gpio_config(GPIOC, GPIO_AF_8, GPIO_PIN_2); + + /* D2-D3 and D0-D1. */ + _sdram_gpio_config(GPIOD, GPIO_AF_12, + GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_14 | GPIO_PIN_15); + + /* NBL0, A2, A4, D4-D5 and D8. */ + _sdram_gpio_config(GPIOE, GPIO_AF_12, + GPIO_PIN_0 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_11); + _sdram_gpio_config(GPIOE, GPIO_AF_4, GPIO_PIN_2); + _sdram_gpio_config(GPIOE, GPIO_AF_11, GPIO_PIN_4); + + /* A3, A5, NRAS and A6-A9. */ + _sdram_gpio_config(GPIOF, GPIO_AF_12, + GPIO_PIN_3 | GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | + GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); + + /* A10-A11, D6-D7, BA0-BA1, CLK and NCAS. */ + _sdram_gpio_config(GPIOG, GPIO_AF_12, + GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_4 | GPIO_PIN_5 | + GPIO_PIN_8 | GPIO_PIN_15); + _sdram_gpio_config(GPIOG, GPIO_AF_0, GPIO_PIN_2 | GPIO_PIN_3); + + /* SDCKE0 and NBL1. */ + _sdram_gpio_config(GPIOH, GPIO_AF_12, GPIO_PIN_2 | GPIO_PIN_7); +} + +#endif /* BSP_USING_SDRAM */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdram.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdram.c index 469eb579e68..1954c789bec 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdram.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdram.c @@ -7,26 +7,40 @@ * Date Author Notes * 2018-12-04 zylx first version * 2023-08-20 yuanzihao adapter gd32f4xx + * 2026-09-08 CYFS initialize SDRAM safely and report readiness and throughput */ #include #ifdef BSP_USING_SDRAM #include +#include #define DRV_DEBUG #define LOG_TAG "drv.sdram" #include +#ifndef SDRAM_HEAP_BEGIN +#define SDRAM_HEAP_BEGIN SDRAM_BANK_ADDR +#endif +#ifndef SDRAM_HEAP_SIZE +#define SDRAM_HEAP_SIZE SDRAM_SIZE +#endif + static exmc_sdram_parameter_struct sdram_init_struct; static exmc_sdram_command_parameter_struct sdram_command_init_struct; static exmc_sdram_timing_parameter_struct sdram_timing_init_struct; +static rt_bool_t sdram_ready; +#if defined(SOC_SERIES_GD32H77x_H78X) +static uint32_t sdram_sdclk_hz; +static uint32_t sdram_refresh_count; +#endif #ifdef RT_USING_MEMHEAP_AS_HEAP static struct rt_memheap system_heap; #endif -static void SDRAM_Initialization_GPIO(void) +rt_weak void rt_hw_sdram_gpio_init(void) { /* enable EXMC clock*/ rcu_periph_clock_enable(RCU_EXMC); @@ -42,14 +56,14 @@ static void SDRAM_Initialization_GPIO(void) /* SDNWE(PC0),SDNE0(PC2),SDCKE0(PC3) pin configuration */ gpio_af_set(GPIOC, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3); gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3); - gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, SDRAM_GPIO_SPEED, GPIO_PIN_0 | GPIO_PIN_2 | GPIO_PIN_3); /* D2(PD0),D3(PD1),D13(PD8),D14(PD9),D15(PD10),D0(PD14),D1(PD15) pin configuration */ gpio_af_set(GPIOD, GPIO_AF_12, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); - gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | + gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, SDRAM_GPIO_SPEED, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_14 | GPIO_PIN_15); /* NBL0(PE0),NBL1(PE1),D4(PE7),D5(PE8),D6(PE9),D7(PE10),D8(PE11),D9(PE12),D10(PE13),D11(PE14),D12(PE15) pin configuration */ @@ -59,7 +73,7 @@ static void SDRAM_Initialization_GPIO(void) gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); - gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | + gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, SDRAM_GPIO_SPEED, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_7 | GPIO_PIN_8 | GPIO_PIN_9 | GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); @@ -70,7 +84,7 @@ static void SDRAM_Initialization_GPIO(void) gpio_mode_set(GPIOF, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); - gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | + gpio_output_options_set(GPIOF, GPIO_OTYPE_PP, SDRAM_GPIO_SPEED, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_11 | GPIO_PIN_12 | GPIO_PIN_13 | GPIO_PIN_14 | GPIO_PIN_15); @@ -79,11 +93,61 @@ static void SDRAM_Initialization_GPIO(void) GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15); gpio_mode_set(GPIOG, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15); - gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_4 | + gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, SDRAM_GPIO_SPEED, GPIO_PIN_0 | GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_8 | GPIO_PIN_15); } +#if defined(SOC_SERIES_GD32H77x_H78X) +static uint32_t sdram_clock_hz_get(void) +{ + uint32_t clock_hz; + uint32_t divider; + + switch (RCU_CFG4 & RCU_CFG4_EXMCSEL) + { + case RCU_EXMCSRC_AHB: + clock_hz = rcu_clock_freq_get(CK_AHB); + break; + case RCU_EXMCSRC_PLL0Q: + clock_hz = rcu_clock_freq_get(CK_PLL0Q); + break; + case RCU_EXMCSRC_PLL1R: + clock_hz = rcu_clock_freq_get(CK_PLL1R); + break; + case RCU_EXMCSRC_PER: + clock_hz = rcu_clock_freq_get(CK_PER); + break; + default: + return 0U; + } + + switch (EXMC_SDCTL(EXMC_SDRAM_DEVICE0) & + (EXMC_SDCTL_SDCLK | EXMC_SDCTL_SDCLK_2)) + { + case EXMC_SDCLK_PERIODS_2_CK_EXMC: divider = 2U; break; + case EXMC_SDCLK_PERIODS_3_CK_EXMC: divider = 3U; break; + case EXMC_SDCLK_PERIODS_4_CK_EXMC: divider = 4U; break; + case EXMC_SDCLK_PERIODS_5_CK_EXMC: divider = 5U; break; + default: return 0U; + } + return clock_hz / divider; +} + +static uint32_t sdram_refresh_count_get(uint32_t sdclk_hz) +{ + uint32_t cycles = (uint32_t)(((uint64_t)sdclk_hz * SDRAM_REFRESH_PERIOD_MS) / + (1000U * SDRAM_REFRESH_ROWS)); + + /* Round down so refresh never exceeds 64 ms / 8192 rows. */ + if ((cycles <= 20U) || ((cycles - 20U) > (EXMC_SDARI_ARINTV >> 1U))) + { + return 0U; + } + return cycles - 20U; +} +#endif + /** * @brief Perform the SDRAM exernal memory inialization sequence * @param hsdram: SDRAM handle @@ -94,7 +158,7 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra { __IO uint32_t tmpmrd = 0; uint32_t target_bank = 0; - uint32_t sdram_device = EXMC_SDRAM_DEVICE0; + uint32_t sdram_device = SDRAM_DEVICE; uint32_t command_content = 0; uint32_t timeout = SDRAM_TIMEOUT; @@ -105,7 +169,7 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra target_bank = EXMC_SDRAM_DEVICE1_SELECT; #endif - SDRAM_Initialization_GPIO(); + rt_hw_sdram_gpio_init(); /* EXMC SDRAM device initialization sequence --------------------------------*/ /* Step 1 : configure SDRAM timing registers --------------------------------*/ /* LMRD: 2 clock cycles */ @@ -132,16 +196,25 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra sdram_init_struct.cas_latency = SDRAM_CAS_LATENCY; sdram_init_struct.write_protection = DISABLE; sdram_init_struct.sdclock_config = SDCLOCK_PERIOD; - sdram_init_struct.burst_read_switch = ENABLE; + sdram_init_struct.burst_read_switch = SDRAM_BURST_READ; sdram_init_struct.pipeline_read_delay = SDRAM_RPIPE_DELAY; sdram_init_struct.timing = &sdram_timing_init_struct; /* EXMC SDRAM bank initialization */ exmc_sdram_init(&sdram_init_struct); +#if defined(SOC_SERIES_GD32H77x_H78X) + sdram_sdclk_hz = sdram_clock_hz_get(); + sdram_refresh_count = sdram_refresh_count_get(sdram_sdclk_hz); + if (sdram_refresh_count == 0U) + { + LOG_E("invalid SDRAM clock/refresh configuration"); + return -RT_ERROR; + } +#endif /* step 3 : configure CKE high command---------------------------------------*/ sdram_command_init_struct.command = EXMC_SDRAM_CLOCK_ENABLE; sdram_command_init_struct.bank_select = target_bank; - sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_2_SDCLK; + sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_1_SDCLK; sdram_command_init_struct.mode_register_content = 0; /* wait until the SDRAM controller is ready */ while((exmc_flag_get(sdram_device, EXMC_SDRAM_FLAG_NREADY) != RESET) && (timeout > 0)) { @@ -153,13 +226,13 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra /* send the command */ exmc_sdram_command_config(&sdram_command_init_struct); - /* step 4 : insert 10ms delay----------------------------------------------*/ -// rt_thread_mdelay(10); + /* CKE startup delay must run before PRECHARGE; the scheduler is not running. */ + rt_hw_us_delay(1000U); /* step 5 : configure precharge all command----------------------------------*/ sdram_command_init_struct.command = EXMC_SDRAM_PRECHARGE_ALL; sdram_command_init_struct.bank_select = target_bank; - sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_2_SDCLK; + sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_1_SDCLK; sdram_command_init_struct.mode_register_content = 0; /* wait until the SDRAM controller is ready */ timeout = SDRAM_TIMEOUT; @@ -175,7 +248,7 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra /* step 6 : configure Auto-Refresh command-----------------------------------*/ sdram_command_init_struct.command = EXMC_SDRAM_AUTO_REFRESH; sdram_command_init_struct.bank_select = target_bank; - sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_9_SDCLK; + sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_8_SDCLK; sdram_command_init_struct.mode_register_content = 0; /* wait until the SDRAM controller is ready */ timeout = SDRAM_TIMEOUT; @@ -198,7 +271,7 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra sdram_command_init_struct.command = EXMC_SDRAM_LOAD_MODE_REGISTER; sdram_command_init_struct.bank_select = target_bank; - sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_2_SDCLK; + sdram_command_init_struct.auto_refresh_number = EXMC_SDRAM_AUTO_REFLESH_1_SDCLK; sdram_command_init_struct.mode_register_content = command_content; /* wait until the SDRAM controller is ready */ @@ -214,9 +287,12 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra /* step 8 : set the auto-refresh rate counter--------------------------------*/ /* 64ms, 8192-cycle refresh, 64ms/8192=7.81us */ - /* SDCLK_Freq = SYS_Freq/2 */ /* (7.81 us * SDCLK_Freq) - 20 */ - exmc_sdram_refresh_count_set(761); +#if defined(SOC_SERIES_GD32H77x_H78X) + exmc_sdram_refresh_count_set(sdram_refresh_count); +#else + exmc_sdram_refresh_count_set(SDRAM_REFRESH_COUNT); +#endif /* wait until the SDRAM controller is ready */ timeout = SDRAM_TIMEOUT; @@ -230,10 +306,37 @@ static rt_err_t SDRAM_Initialization_Sequence(exmc_sdram_parameter_struct *hsdra } +#ifdef RT_USING_MEMHEAP_AS_HEAP +static rt_err_t _sdram_memory_boundary_test(void) +{ + volatile uint32_t *head = (volatile uint32_t *)SDRAM_HEAP_BEGIN; + volatile uint32_t *tail = (volatile uint32_t *)(SDRAM_HEAP_BEGIN + SDRAM_HEAP_SIZE - sizeof(uint32_t)); + + *head = 0x55AA1234U; + *tail = 0xAA55ABCDU; + __DSB(); + + rt_kprintf("sdram boundary test: head=0x%08X, tail=0x%08X\n", *head, *tail); + if ((*head != 0x55AA1234U) || (*tail != 0xAA55ABCDU)) + { + LOG_E("SDRAM boundary test failed!"); + return -RT_ERROR; + } + + return RT_EOK; +} +#endif + +rt_bool_t rt_hw_sdram_is_ready(void) +{ + return sdram_ready; +} + static int SDRAM_Init(void) { int result = RT_EOK; + sdram_ready = RT_FALSE; /* Initialize the SDRAM controller */ if (SDRAM_Initialization_Sequence(&sdram_init_struct, &sdram_command_init_struct) != RT_EOK) { @@ -242,87 +345,164 @@ static int SDRAM_Init(void) } else { - rt_kprintf("sdram init success, mapped at 0x%X, size is %d bytes, data width is %d", SDRAM_BANK_ADDR, SDRAM_SIZE, SDRAM_DATA_WIDTH); + rt_kprintf("sdram controller init success, mapped at 0x%X, size is %d bytes, data width is %d\n", + SDRAM_BANK_ADDR, SDRAM_SIZE, SDRAM_DATA_WIDTH); +#if defined(SOC_SERIES_GD32H77x_H78X) + rt_kprintf("sdram actual sdclk=%u Hz refresh_count=%u\n", + sdram_sdclk_hz, sdram_refresh_count); +#endif #ifdef RT_USING_MEMHEAP_AS_HEAP - /* If RT_USING_MEMHEAP_AS_HEAP is enabled, SDRAM is initialized to the heap */ - rt_memheap_init(&system_heap, "sdram", (void *)SDRAM_BANK_ADDR, SDRAM_SIZE); + if (_sdram_memory_boundary_test() != RT_EOK) + { + result = -RT_ERROR; + } + else if (rt_memheap_init(&system_heap, "sdram", (void *)SDRAM_HEAP_BEGIN, SDRAM_HEAP_SIZE) != RT_EOK) + { + LOG_E("SDRAM memheap init failed!"); + result = -RT_ERROR; + } + else + { + rt_kprintf("sdram memheap init success, mapped at 0x%X, size is %d bytes\n", + SDRAM_HEAP_BEGIN, SDRAM_HEAP_SIZE); + } #endif } + sdram_ready = (result == RT_EOK); return result; } INIT_BOARD_EXPORT(SDRAM_Init); #ifdef DRV_DEBUG #ifdef FINSH_USING_MSH -int sdram_test(void) -{ - int i = 0; - uint32_t start_time = 0, time_cast = 0; +#ifdef RT_USING_MEMHEAP_AS_HEAP +#define SDRAM_TEST_SIZE (1024U * 1024U) +#define SDRAM_TEST_PASSES 8U + #if SDRAM_DATA_WIDTH_IN_NUMBER == 8 - char data_width = 1; - uint8_t data = 0; +typedef uint8_t sdram_test_data_t; #elif SDRAM_DATA_WIDTH_IN_NUMBER == 16 - char data_width = 2; - uint16_t data = 0; +typedef uint16_t sdram_test_data_t; #else - char data_width = 4; - uint32_t data = 0; +typedef uint32_t sdram_test_data_t; #endif - /* write data */ - LOG_D("Writing the %ld bytes data, waiting....", SDRAM_SIZE); - start_time = rt_tick_get(); - for (i = 0; i < SDRAM_SIZE / data_width; i++) +static void sdram_test_print_speed(const char *operation, rt_tick_t ticks) +{ + uint32_t elapsed_ms; + uint32_t speed; + + if (ticks == 0U) { -#if SDRAM_DATA_WIDTH_IN_NUMBER == 8 - *(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint8_t)0x55; -#elif SDRAM_DATA_WIDTH_IN_NUMBER == 16 - *(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint16_t)0x5555; -#else - *(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width) = (uint32_t)0x55555555; -#endif + rt_kprintf("%-8s %10u <1 tick N/A\n", operation, + SDRAM_TEST_SIZE * SDRAM_TEST_PASSES / 1024U); + return; } - time_cast = rt_tick_get() - start_time; - LOG_D("Write data success, total time: %d.%03dS.", time_cast / RT_TICK_PER_SECOND, - time_cast % RT_TICK_PER_SECOND / ((RT_TICK_PER_SECOND * 1 + 999) / 1000)); - /* read data */ - LOG_D("start Reading and verifying data, waiting...."); - for (i = 0; i < SDRAM_SIZE / data_width; i++) + elapsed_ms = (uint32_t)((uint64_t)ticks * 1000U / RT_TICK_PER_SECOND); + speed = (uint32_t)((uint64_t)SDRAM_TEST_SIZE * SDRAM_TEST_PASSES * + RT_TICK_PER_SECOND * 100U / ((uint64_t)ticks * 1024U * 1024U)); + rt_kprintf("%-8s %10u %10u %8u.%02u\n", operation, + SDRAM_TEST_SIZE * SDRAM_TEST_PASSES / 1024U, + elapsed_ms, speed / 100U, speed % 100U); +} +#endif /* RT_USING_MEMHEAP_AS_HEAP */ + +int sdram_test(void) +{ +#ifdef RT_USING_MEMHEAP_AS_HEAP + void *allocation; + volatile sdram_test_data_t *buffer; + sdram_test_data_t data; + sdram_test_data_t expected; + uint32_t i; + uint32_t pass; + rt_tick_t start_time; + rt_tick_t write_ticks; + rt_tick_t read_ticks; + int result = RT_EOK; + + if (!sdram_ready) { -#if SDRAM_DATA_WIDTH_IN_NUMBER == 8 - data = *(__IO uint8_t *)(SDRAM_BANK_ADDR + i * data_width); - if (data != 0x55) + rt_kprintf("SDRAM test failed: SDRAM is not ready.\n"); + return -RT_ERROR; + } + + /* Allocate from SDRAM explicitly and keep cache operations off heap metadata. */ + allocation = rt_memheap_alloc(&system_heap, SDRAM_TEST_SIZE + RT_CPU_CACHE_LINE_SZ - 1U); + if (allocation == RT_NULL) + { + rt_kprintf("SDRAM test failed: cannot allocate %u KiB from the SDRAM heap.\n", + SDRAM_TEST_SIZE / 1024U); + return -RT_ENOMEM; + } + buffer = (volatile sdram_test_data_t *)RT_ALIGN((rt_uintptr_t)allocation, + RT_CPU_CACHE_LINE_SZ); + + rt_kprintf("SDRAM test: buffer=%p, size=%u KiB, access=%u-bit, passes=%u\n", + (void *)buffer, SDRAM_TEST_SIZE / 1024U, + (unsigned int)(sizeof(*buffer) * 8U), SDRAM_TEST_PASSES); + rt_kprintf("CPU sequential access; timing includes cache maintenance.\n"); + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH | RT_HW_CACHE_INVALIDATE, + (void *)buffer, SDRAM_TEST_SIZE); + __DSB(); + + start_time = rt_tick_get(); + for (pass = 0; pass < SDRAM_TEST_PASSES; pass++) + { + for (i = 0; i < SDRAM_TEST_SIZE / sizeof(*buffer); i++) { - LOG_E("SDRAM test failed!"); - break; + buffer[i] = (sdram_test_data_t)(i ^ 0x55555555U); } -#elif SDRAM_DATA_WIDTH_IN_NUMBER == 16 - data = *(__IO uint16_t *)(SDRAM_BANK_ADDR + i * data_width); - if (data != 0x5555) + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, (void *)buffer, SDRAM_TEST_SIZE); + } + __DSB(); + write_ticks = rt_tick_get() - start_time; + + start_time = rt_tick_get(); + for (pass = 0; pass < SDRAM_TEST_PASSES; pass++) + { + rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, (void *)buffer, SDRAM_TEST_SIZE); + for (i = 0; i < SDRAM_TEST_SIZE / sizeof(*buffer); i++) { - LOG_E("SDRAM test failed!"); - break; + (void)buffer[i]; } -#else - data = *(__IO uint32_t *)(SDRAM_BANK_ADDR + i * data_width); - if (data != 0x55555555) + } + __DSB(); + read_ticks = rt_tick_get() - start_time; + + rt_kprintf("Operation Total KiB Time ms MiB/s\n"); + sdram_test_print_speed("Write", write_ticks); + sdram_test_print_speed("Read", read_ticks); + + /* Verify separately so comparisons are not counted as read throughput. */ + rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, (void *)buffer, SDRAM_TEST_SIZE); + for (i = 0; i < SDRAM_TEST_SIZE / sizeof(*buffer); i++) + { + expected = (sdram_test_data_t)(i ^ 0x55555555U); + data = buffer[i]; + if (data != expected) { - LOG_E("SDRAM test failed!"); + rt_kprintf("Verify: FAIL at %p, expected=0x%08X, actual=0x%08X\n", + (void *)&buffer[i], (unsigned int)expected, (unsigned int)data); + result = -RT_ERROR; break; } -#endif } - if (i >= SDRAM_SIZE / data_width) + rt_memheap_free(allocation); + if (result == RT_EOK) { - LOG_D("SDRAM test success!"); + rt_kprintf("Verify: PASS\n"); } - - return RT_EOK; + return result; +#else + rt_kprintf("SDRAM test requires RT_USING_MEMHEAP_AS_HEAP.\n"); + return -RT_ENOSYS; +#endif /* RT_USING_MEMHEAP_AS_HEAP */ } -MSH_CMD_EXPORT(sdram_test, sdram test) +MSH_CMD_EXPORT(sdram_test, test SDRAM read/write speed and data integrity); #endif /* FINSH_USING_MSH */ #endif /* DRV_DEBUG */ #endif /* BSP_USING_SDRAM */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/sdram_port.h b/bsp/gd32/arm/libraries/gd32_drivers/sdram_port.h index d762b0dd9a7..d6588276597 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/sdram_port.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/sdram_port.h @@ -27,24 +27,56 @@ #define SDRAM_ROW_BITS EXMC_SDRAM_ROW_ADDRESS_13 /* cas latency clock number: 1, 2, 3 */ #define SDRAM_CAS_LATENCY EXMC_CAS_LATENCY_3_SDCLK + +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(BSP_USING_OV7670) +/* Keep the camera configuration validated with internal rendering and IPA. */ +#define SDRAM_BURST_READ DISABLE +#else +#define SDRAM_BURST_READ ENABLE +#endif + /* read pipe delay: 0, 1, 2 */ +#if defined(SOC_SERIES_GD32H77x_H78X) +/* The Gino board port selects CK_AHB (300 MHz). + * Refresh is derived from the actual clock, not a nominal PLL target. */ +#define SDRAM_USE_PLL1R_EXMC 0 +#define SDRAM_REFRESH_PERIOD_MS 64U +#define SDRAM_REFRESH_ROWS 8192U +#if defined(BSP_USING_OV7670) +#define SDRAM_RPIPE_DELAY EXMC_PIPELINE_DELAY_2_CK_EXMC +#else +#define SDRAM_RPIPE_DELAY EXMC_PIPELINE_DELAY_1_CK_EXMC +#endif +#if defined(BSP_USING_OV7670) +/* CK_AHB / 3 = 100 MHz; non-camera projects retain their 150 MHz clock. */ +#define SDCLOCK_PERIOD EXMC_SDCLK_PERIODS_3_CK_EXMC +#else +#define SDCLOCK_PERIOD EXMC_SDCLK_PERIODS_2_CK_EXMC +#endif +#define SDRAM_GPIO_SPEED GPIO_OSPEED_85MHZ + +/* Keep the 150 MHz timing-cycle counts; 100 MHz increases their duration. */ +#define LOADTOACTIVEDELAY 2 +#define EXITSELFREFRESHDELAY 15 +#define SELFREFRESHTIME 14 +#define ROWCYCLEDELAY 9 +#define WRITERECOVERYTIME 3 +#define RPDELAY 4 +#define RCDDELAY 4 +#else #define SDRAM_RPIPE_DELAY EXMC_PIPELINE_DELAY_2_HCLK -/* clock divid: 2, 3 */ #define SDCLOCK_PERIOD EXMC_SDCLK_PERIODS_3_HCLK -/* refresh rate counter */ +#define SDRAM_GPIO_SPEED GPIO_OSPEED_50MHZ #define SDRAM_REFRESH_COUNT ((uint32_t)0x02A5) -#define SDRAM_SIZE ((uint32_t)0x2000000) -#define SDRAM_TIMEOUT ((uint32_t)0x0000FFFF) /* Timing configuration for W9825G6KH-6 */ -/* 100 MHz of HCKL3 clock frequency (200MHz/2) */ /* TMRD: 2 Clock cycles */ #define LOADTOACTIVEDELAY 2 /* TXSR: 8x10ns */ #define EXITSELFREFRESHDELAY 8 -/* TRAS: 5x10ns */ +/* TRC: 7x10ns */ #define SELFREFRESHTIME 7 -/* TRC: 7x10ns */ +/* TRAS: 5x10ns */ #define ROWCYCLEDELAY 5 /* TWR: 2 Clock cycles */ #define WRITERECOVERYTIME 2 @@ -52,6 +84,10 @@ #define RPDELAY 3 /* TRCD: 2x10ns */ #define RCDDELAY 3 +#endif + +#define SDRAM_SIZE ((uint32_t)0x2000000) +#define SDRAM_TIMEOUT ((uint32_t)0x0000FFFF) /* memory mode register */ #define SDRAM_MODEREG_BURST_LENGTH_1 ((uint16_t)0x0000) @@ -66,4 +102,6 @@ #define SDRAM_MODEREG_WRITEBURST_MODE_PROGRAMMED ((uint16_t)0x0000) #define SDRAM_MODEREG_WRITEBURST_MODE_SINGLE ((uint16_t)0x0200) +void rt_hw_sdram_gpio_init(void); + #endif From e1e2e71a004dd26367e5035b3b974a9668ad6bce Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:06 +0800 Subject: [PATCH 05/19] [bsp][gd32] Add configurable GD32H77D hardware I2C support Use the H77x/H78x I2C interface and expose bus pin and alternate-function settings. Keep I2C disabled in the minimal configuration. Verified I2C1 device registration. Camera and touch support use the same controller interface on their respective buses. Guard the new-controller receive path for F5/H7/H77x and preserve the legacy transfer block. Single-file compilation passed for GD32F4 receive modes A/B and GD32H7/H77x; the original GD32F4 CI errors were reproduced before the fix. --- .../gd32_drivers/config/i2c_config.h | 141 +++++ .../arm/libraries/gd32_drivers/drv_hard_i2c.c | 509 ++++++++++++------ .../arm/libraries/gd32_drivers/drv_hard_i2c.h | 17 +- 3 files changed, 497 insertions(+), 170 deletions(-) create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/config/i2c_config.h diff --git a/bsp/gd32/arm/libraries/gd32_drivers/config/i2c_config.h b/bsp/gd32/arm/libraries/gd32_drivers/config/i2c_config.h new file mode 100644 index 00000000000..fb71db6023d --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/config/i2c_config.h @@ -0,0 +1,141 @@ +/* + * Copyright (c) 2006-2025, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __I2C_CONFIG_H__ +#define __I2C_CONFIG_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef BSP_USING_HARD_I2C0 +#ifndef BSP_I2C0_SCL_PIN +#define BSP_I2C0_SCL_PIN "PB8" +#define BSP_I2C0_SDA_PIN "PB9" +#define BSP_I2C0_AFIO "AF4" +#endif +#ifndef I2C0_CONFIG +#define I2C0_CONFIG \ + { \ + .i2c_periph = I2C0, \ + .per_clk = RCU_I2C0, \ + .scl_pin_name = BSP_I2C0_SCL_PIN, \ + .sda_pin_name = BSP_I2C0_SDA_PIN, \ + .alternate = BSP_I2C0_AFIO, \ + .i2c_bus = &i2c0, \ + .device_name = "hwi2c0", \ + } +#endif +#endif + +#ifdef BSP_USING_HARD_I2C1 +#ifndef BSP_I2C1_SCL_PIN +#define BSP_I2C1_SCL_PIN "PH4" +#define BSP_I2C1_SDA_PIN "PB11" +#define BSP_I2C1_AFIO "AF4" +#endif +#ifndef I2C1_CONFIG +#define I2C1_CONFIG \ + { \ + .i2c_periph = I2C1, \ + .per_clk = RCU_I2C1, \ + .scl_pin_name = BSP_I2C1_SCL_PIN, \ + .sda_pin_name = BSP_I2C1_SDA_PIN, \ + .alternate = BSP_I2C1_AFIO, \ + .i2c_bus = &i2c1, \ + .device_name = "hwi2c1", \ + } +#endif +#endif + +#ifdef BSP_USING_HARD_I2C2 +#ifndef BSP_I2C2_SCL_PIN +#define BSP_I2C2_SCL_PIN "PA8" +#define BSP_I2C2_SDA_PIN "PC9" +#define BSP_I2C2_AFIO "AF4" +#endif +#ifndef I2C2_CONFIG +#define I2C2_CONFIG \ + { \ + .i2c_periph = I2C2, \ + .per_clk = RCU_I2C2, \ + .scl_pin_name = BSP_I2C2_SCL_PIN, \ + .sda_pin_name = BSP_I2C2_SDA_PIN, \ + .alternate = BSP_I2C2_AFIO, \ + .i2c_bus = &i2c2, \ + .device_name = "hwi2c2", \ + } +#endif +#endif + +#ifdef BSP_USING_HARD_I2C3 +#ifndef BSP_I2C3_SCL_PIN +#define BSP_I2C3_SCL_PIN "PF14" +#define BSP_I2C3_SDA_PIN "PF15" +#define BSP_I2C3_AFIO "AF4" +#endif +#ifndef I2C3_CONFIG +#define I2C3_CONFIG \ + { \ + .i2c_periph = I2C3, \ + .per_clk = RCU_I2C3, \ + .scl_pin_name = BSP_I2C3_SCL_PIN, \ + .sda_pin_name = BSP_I2C3_SDA_PIN, \ + .alternate = BSP_I2C3_AFIO, \ + .i2c_bus = &i2c3, \ + .device_name = "hwi2c3", \ + } +#endif +#endif + +#ifdef BSP_USING_HARD_I2C4 +#ifndef BSP_I2C4_SCL_PIN +#define BSP_I2C4_SCL_PIN "PG7" +#define BSP_I2C4_SDA_PIN "PG8" +#define BSP_I2C4_AFIO "AF6" +#endif +#ifndef I2C4_CONFIG +#define I2C4_CONFIG \ + { \ + .i2c_periph = I2C4, \ + .per_clk = RCU_I2C4, \ + .scl_pin_name = BSP_I2C4_SCL_PIN, \ + .sda_pin_name = BSP_I2C4_SDA_PIN, \ + .alternate = BSP_I2C4_AFIO, \ + .i2c_bus = &i2c4, \ + .device_name = "hwi2c4", \ + } +#endif +#endif + +#ifdef BSP_USING_HARD_I2C5 +#ifndef BSP_I2C5_SCL_PIN +#define BSP_I2C5_SCL_PIN "PF11" +#define BSP_I2C5_SDA_PIN "PF12" +#define BSP_I2C5_AFIO "AF4" +#endif +#ifndef I2C5_CONFIG +#define I2C5_CONFIG \ + { \ + .i2c_periph = I2C5, \ + .per_clk = RCU_I2C5, \ + .scl_pin_name = BSP_I2C5_SCL_PIN, \ + .sda_pin_name = BSP_I2C5_SDA_PIN, \ + .alternate = BSP_I2C5_AFIO, \ + .i2c_bus = &i2c5, \ + .device_name = "hwi2c5", \ + } +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __I2C_CONFIG_H__ */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.c index 4c3c668a265..9cffc5a8093 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.c @@ -11,6 +11,7 @@ */ #include "drv_hard_i2c.h" +#include "i2c_config.h" #ifdef RT_USING_I2C @@ -60,10 +61,14 @@ struct rt_i2c_bus_device i2c5; #define I2C_MASTER_RECEIVE_GD I2C_ADD_MASTER_RECEIVE #define i2c_transfer_byte_number_config_gd i2c_add_transfer_byte_number_config #define i2c_start_on_bus_gd i2c_add_start_on_bus +#define i2c_automatic_end_enable_gd i2c_add_automatic_end_enable +#define i2c_automatic_end_disable_gd i2c_add_automatic_end_disable #define I2C_MASTER_TRANSMIT_GD I2C_ADD_MASTER_TRANSMIT #define I2C_FLAG_I2CBSY_GD I2C_ADD_FLAG_I2CBSY #define I2C_FLAG_TC_GD I2C_ADD_FLAG_TC #define I2C_FLAG_TI_GD I2C_ADD_FLAG_TI +#define I2C_FLAG_TBE_GD I2C_ADD_FLAG_TBE +#define I2C_FLAG_NACK_GD I2C_ADD_FLAG_NACK #define i2c_stop_on_bus_gd i2c_add_stop_on_bus #define I2C_FLAG_STPDET_GD I2C_ADD_FLAG_STPDET #define i2c_timing_config_gd i2c_add_timing_config @@ -86,10 +91,14 @@ struct rt_i2c_bus_device i2c5; #define I2C_MASTER_RECEIVE_GD I2C_MASTER_RECEIVE #define i2c_transfer_byte_number_config_gd i2c_transfer_byte_number_config #define i2c_start_on_bus_gd i2c_start_on_bus +#define i2c_automatic_end_enable_gd i2c_automatic_end_enable +#define i2c_automatic_end_disable_gd i2c_automatic_end_disable #define I2C_MASTER_TRANSMIT_GD I2C_MASTER_TRANSMIT #define I2C_FLAG_I2CBSY_GD I2C_FLAG_I2CBSY #define I2C_FLAG_TC_GD I2C_FLAG_TC #define I2C_FLAG_TI_GD I2C_FLAG_TI +#define I2C_FLAG_TBE_GD I2C_FLAG_TBE +#define I2C_FLAG_NACK_GD I2C_FLAG_NACK #define i2c_stop_on_bus_gd i2c_stop_on_bus #define I2C_FLAG_STPDET_GD I2C_FLAG_STPDET #define i2c_timing_config_gd i2c_timing_config @@ -103,91 +112,28 @@ struct rt_i2c_bus_device i2c5; #define IS_I2C_LEGACY(periph) ((periph) == I2C0 || (periph) == I2C1 || (periph) == I2C2) #elif defined (SOC_SERIES_GD32F4xx) #define IS_I2C_LEGACY(periph) (1) -#elif defined (SOC_SERIES_GD32H7xx) +#elif (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) #define IS_I2C_LEGACY(periph) (0) #endif static const struct gd32_i2c_bus gd_i2c_config[] = { #ifdef BSP_USING_HARD_I2C0 - { - I2C0, /* uart peripheral index */ - - RCU_I2C0, RCU_GPIOB, RCU_GPIOB, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOB, GPIO_AF_4, GPIO_PIN_8, /* scl port, scl alternate, scl pin */ - GPIOB, GPIO_AF_4, GPIO_PIN_9, /* sda port, sda alternate, sda pin */ - - &i2c0, - "hwi2c0", - }, + I2C0_CONFIG, #endif - #ifdef BSP_USING_HARD_I2C1 - { - I2C1, /* uart peripheral index */ - - RCU_I2C1, RCU_GPIOH, RCU_GPIOB, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOH, GPIO_AF_4, GPIO_PIN_4, /* scl port, scl alternate, scl pin */ - GPIOB, GPIO_AF_4, GPIO_PIN_11, /* sda port, sda alternate, sda pin */ - - &i2c1, - "hwi2c1", - }, + I2C1_CONFIG, #endif - #ifdef BSP_USING_HARD_I2C2 - { - I2C2, /* uart peripheral index */ - - RCU_I2C2, RCU_GPIOA, RCU_GPIOC, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOA, GPIO_AF_4, GPIO_PIN_8, /* scl port, scl alternate, scl pin */ - GPIOC, GPIO_AF_4, GPIO_PIN_9, /* sda port, sda alternate, sda pin */ - - &i2c2, - "hwi2c2", - }, + I2C2_CONFIG, #endif - #ifdef BSP_USING_HARD_I2C3 - { - I2C3, /* uart peripheral index */ - - RCU_I2C3, RCU_GPIOF, RCU_GPIOF, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOF, GPIO_AF_4, GPIO_PIN_14, /* scl port, scl alternate, scl pin */ - GPIOF, GPIO_AF_4, GPIO_PIN_15, /* sda port, sda alternate, sda pin */ - - &i2c3, - "hwi2c3", - }, + I2C3_CONFIG, #endif #ifdef BSP_USING_HARD_I2C4 - { - I2C4, /* uart peripheral index */ - - RCU_I2C4, RCU_GPIOG, RCU_GPIOG, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOG, GPIO_AF_6, GPIO_PIN_7, /* scl port, scl alternate, scl pin */ - GPIOG, GPIO_AF_6, GPIO_PIN_8, /* sda port, sda alternate, sda pin */ - - &i2c4, - "hwi2c4", - }, + I2C4_CONFIG, #endif #ifdef BSP_USING_HARD_I2C5 - { - I2C5, /* uart peripheral index */ - - RCU_I2C5, RCU_GPIOF, RCU_GPIOF, /* periph clock, scl gpio clock, sda gpio clock */ - - GPIOF, GPIO_AF_4, GPIO_PIN_11, /* scl port, scl alternate, scl pin */ - GPIOF, GPIO_AF_4, GPIO_PIN_12, /* sda port, sda alternate, sda pin */ - - &i2c5, - "hwi2c5", - } + I2C5_CONFIG, #endif }; @@ -198,29 +144,67 @@ static const struct gd32_i2c_bus gd_i2c_config[] = { */ static void gd32_i2c_gpio_init(const struct gd32_i2c_bus *i2c) { + rt_uint32_t scl_port, sda_port; + rt_uint32_t scl_pin, sda_pin; + rt_uint32_t pin_af; + rcu_periph_enum scl_periph, sda_periph; + + if(get_pin_config(i2c->scl_pin_name, &scl_port, &scl_pin, &scl_periph) != RT_EOK) + { + return; + } + + if(get_pin_config(i2c->sda_pin_name, &sda_port, &sda_pin, &sda_periph) != RT_EOK) + { + return; + } + + pin_alternate_config(i2c->alternate, &pin_af); + /* enable I2C and GPIO clock */ - rcu_periph_clock_enable(i2c->scl_gpio_clk); - rcu_periph_clock_enable(i2c->sda_gpio_clk); + rcu_periph_clock_enable(scl_periph); + rcu_periph_clock_enable(sda_periph); rcu_periph_clock_enable(i2c->per_clk); - /* configure I2C_SCL as alternate function push-pull */ - gpio_af_set(i2c->scl_port, i2c->scl_af, i2c->scl_pin); - gpio_mode_set(i2c->scl_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, i2c->scl_pin); -#if defined (SOC_SERIES_GD32H7xx) - gpio_output_options_set(i2c->scl_port, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, i2c->scl_pin); - /* configure I2C_SDA as alternate function push-pull */ - gpio_af_set(i2c->sda_port, i2c->sda_af, i2c->sda_pin); - gpio_mode_set(i2c->sda_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, i2c->sda_pin); - gpio_output_options_set(i2c->sda_port, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, i2c->sda_pin); + /* configure I2C pins as alternate function open-drain */ + gpio_af_set(scl_port, pin_af, scl_pin); + gpio_mode_set(scl_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, scl_pin); +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + gpio_output_options_set(scl_port, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, scl_pin); + gpio_af_set(sda_port, pin_af, sda_pin); + gpio_mode_set(sda_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, sda_pin); + gpio_output_options_set(sda_port, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, sda_pin); #else - gpio_output_options_set(i2c->scl_port, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, i2c->scl_pin); - /* configure I2C_SDA as alternate function push-pull */ - gpio_af_set(i2c->sda_port, i2c->sda_af, i2c->sda_pin); - gpio_mode_set(i2c->sda_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, i2c->sda_pin); - gpio_output_options_set(i2c->sda_port, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, i2c->sda_pin); + gpio_output_options_set(scl_port, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, scl_pin); + gpio_af_set(sda_port, pin_af, sda_pin); + gpio_mode_set(sda_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, sda_pin); + gpio_output_options_set(sda_port, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, sda_pin); #endif } +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) +static void gd32_i2c_clock_source_config(rt_uint32_t i2c_periph) +{ + switch(i2c_periph) + { + case I2C0: + rcu_i2c_clock_config(IDX_I2C0, RCU_I2CSRC_IRC64MDIV); + break; + case I2C1: + rcu_i2c_clock_config(IDX_I2C1, RCU_I2CSRC_IRC64MDIV); + break; + case I2C2: + rcu_i2c_clock_config(IDX_I2C2, RCU_I2CSRC_IRC64MDIV); + break; + case I2C3: + rcu_i2c_clock_config(IDX_I2C3, RCU_I2CSRC_IRC64MDIV); + break; + default: + break; + } +} +#endif + /** * @brief read data. * @param i2c_periph @@ -228,11 +212,19 @@ static void gd32_i2c_gpio_init(const struct gd32_i2c_bus *i2c) * @param data_byte * @retval None */ -static uint8_t gd32_i2c_read(rt_uint32_t i2c_periph, rt_uint8_t *p_buffer, rt_uint16_t data_byte) +static uint8_t gd32_i2c_read(rt_uint32_t i2c_periph, rt_uint8_t *p_buffer, + rt_uint16_t data_byte, rt_tick_t timeout) { +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + rt_tick_t start_tick; +#else + RT_UNUSED(timeout); +#endif + if (data_byte == 0) return 1; -#ifdef BSP_USING_RECEIVING_A +#if defined(BSP_USING_RECEIVING_A) && \ + (defined(SOC_SERIES_GD32F4xx) || defined(SOC_SERIES_GD32F5xx)) /* In single-byte reception, disable ACK because the master needs to send NACK after receiving the first byte,indicating no more data will be @@ -307,8 +299,20 @@ static uint8_t gd32_i2c_read(rt_uint32_t i2c_periph, rt_uint8_t *p_buffer, rt_ui }else #endif { +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) /* wait until the RBNE bit is set */ - while(!i2c_flag_get_gd(i2c_periph, I2C_FLAG_RBNE_GD)); + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(i2c_periph, I2C_FLAG_RBNE_GD)) + { + if(i2c_flag_get_gd(i2c_periph, I2C_FLAG_NACK_GD)) + { + return 1; + } + if((rt_tick_get() - start_tick) >= timeout) + { + return 1; + } + } /* read a byte */ *p_buffer = i2c_data_receive_gd(i2c_periph); @@ -316,6 +320,7 @@ static uint8_t gd32_i2c_read(rt_uint32_t i2c_periph, rt_uint8_t *p_buffer, rt_ui p_buffer++; /* decrement the read bytes counter */ data_byte--; +#endif } } return 0; @@ -328,8 +333,15 @@ static uint8_t gd32_i2c_read(rt_uint32_t i2c_periph, rt_uint8_t *p_buffer, rt_ui * @param data_byte * @retval None */ -static uint8_t gd32_i2c_write(rt_uint32_t i2c_periph, uint8_t *p_buffer, uint16_t data_byte) +static uint8_t gd32_i2c_write(rt_uint32_t i2c_periph, uint8_t *p_buffer, + uint16_t data_byte, rt_tick_t timeout) { +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + rt_tick_t start_tick; +#else + RT_UNUSED(timeout); +#endif + if (data_byte == 0) return 1; while(data_byte) @@ -349,17 +361,36 @@ static uint8_t gd32_i2c_write(rt_uint32_t i2c_periph, uint8_t *p_buffer, uint16_ else #endif { -#if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32H7xx) +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) /* wait until the transmit data buffer is empty */ I2C_STAT_GD(i2c_periph) |= I2C_STAT_TBE_GD; - while(!i2c_flag_get(i2c_periph, I2C_FLAG_TBE)); + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(i2c_periph, I2C_FLAG_TBE_GD)) + { + if(i2c_flag_get_gd(i2c_periph, I2C_FLAG_NACK_GD) || + ((rt_tick_get() - start_tick) >= timeout)) + { + return 1; + } + } while(data_byte) { /* wait until the TI bit is set */ - while(!i2c_flag_get(i2c_periph, I2C_FLAG_TI_GD)); + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(i2c_periph, I2C_FLAG_TI_GD)) + { + if(i2c_flag_get_gd(i2c_periph, I2C_FLAG_NACK_GD)) + { + return 1; + } + if((rt_tick_get() - start_tick) >= timeout) + { + return 1; + } + } /* data transmission */ - i2c_data_transmit(i2c_periph, *p_buffer); + i2c_data_transmit_gd(i2c_periph, *p_buffer); /* point to the next byte to be written */ p_buffer++; /* decrement the write bytes counter */ @@ -386,30 +417,195 @@ static uint8_t gd32_i2c_write(rt_uint32_t i2c_periph, uint8_t *p_buffer, uint16_ static rt_ssize_t gd32_i2c_master_xfer(struct rt_i2c_bus_device *bus, struct rt_i2c_msg msgs[], rt_uint32_t num) { - static struct rt_i2c_msg *msg; - - rt_uint32_t i,w_total_byte=0,r_total_byte=0; - rt_err_t ret = RT_ERROR; + struct rt_i2c_msg *msg = RT_NULL; + struct gd32_i2c_bus *gd32_i2c; + rt_uint32_t i; +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + rt_tick_t start_tick; + rt_bool_t address_probe = RT_FALSE; + rt_bool_t stop_generated = RT_FALSE; + rt_bool_t bus_started = RT_FALSE; + struct rt_i2c_msg *phase_msg; + rt_uint32_t phase_end; + rt_uint32_t phase_total_byte; +#endif + rt_err_t ret = -RT_ERROR; RT_ASSERT(bus != RT_NULL); - struct gd32_i2c_bus *gd32_i2c = (struct gd32_i2c_bus *)bus->priv; - - for(i = 0; i < num; i++) + if(msgs == RT_NULL || num == 0 || (msgs[0].flags & RT_I2C_NO_START)) { - msg = &msgs[i]; + return -RT_EINVAL; + } - if(msg->flags & RT_I2C_RD) + gd32_i2c = (struct gd32_i2c_bus *)bus->priv; + +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + if(!IS_I2C_LEGACY(gd32_i2c->i2c_periph)) + { + phase_msg = &msgs[0]; + for(i = 1; i < num; i++) { - r_total_byte += msg->len; - }else{ - w_total_byte += msg->len; + if(msgs[i].flags & RT_I2C_NO_START) + { + if((msgs[i].addr != phase_msg->addr) || + ((msgs[i].flags & (RT_I2C_RD | RT_I2C_ADDR_10BIT)) != + (phase_msg->flags & (RT_I2C_RD | RT_I2C_ADDR_10BIT)))) + { + return -RT_EINVAL; + } + }else{ + phase_msg = &msgs[i]; + } } } +#endif - for(i = 0; i < num; i++) + for(i = 0; i < num;) { msg = &msgs[i]; +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + if(!IS_I2C_LEGACY(gd32_i2c->i2c_periph)) + { + phase_end = i + 1; + phase_total_byte = msg->len; + while((phase_end < num) && (msgs[phase_end].flags & RT_I2C_NO_START)) + { + phase_total_byte += msgs[phase_end].len; + phase_end++; + } + + address_probe = !(msg->flags & (RT_I2C_RD | RT_I2C_NO_START | RT_I2C_NO_STOP)) && + (msg->len == 0) && (phase_end == (i + 1)); + stop_generated = RT_FALSE; + + if(!bus_started) + { + start_tick = rt_tick_get(); + while(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_I2CBSY_GD)) + { + if((rt_tick_get() - start_tick) >= bus->timeout) + { + LOG_E("i2c bus busy timeout"); + ret = -RT_ETIMEOUT; + goto out; + } + } + } + + { + rt_uint32_t address = msg->addr; + + if(msg->flags & RT_I2C_ADDR_10BIT) + { + /* enable 10-bit addressing mode in master mode */ + i2c_address10_enable_gd(gd32_i2c->i2c_periph); + }else{ + /* disable 10-bit addressing mode in master mode */ + i2c_address10_disable_gd(gd32_i2c->i2c_periph); + address <<= 1; + } + + if(msg->flags & RT_I2C_RD) + { + /* configure slave address */ + i2c_master_addressing_gd(gd32_i2c->i2c_periph, address, I2C_MASTER_RECEIVE_GD); + }else{ + /* configure slave address */ + i2c_master_addressing_gd(gd32_i2c->i2c_periph, address, I2C_MASTER_TRANSMIT_GD); + if(address_probe) + { + i2c_flag_clear_gd(gd32_i2c->i2c_periph, + I2C_FLAG_STPDET_GD | I2C_FLAG_NACK_GD); + i2c_automatic_end_enable_gd(gd32_i2c->i2c_periph); + } + } + + i2c_transfer_byte_number_config_gd(gd32_i2c->i2c_periph, phase_total_byte); + /* send a start condition to I2C bus */ + i2c_start_on_bus_gd(gd32_i2c->i2c_periph); + bus_started = RT_TRUE; + } + + if(address_probe) + { + rt_bool_t address_nack = RT_FALSE; + + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_STPDET_GD)) + { + if(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_NACK_GD)) + { + address_nack = RT_TRUE; + } + + if((rt_tick_get() - start_tick) >= bus->timeout) + { + LOG_E("i2c address probe timeout"); + i2c_automatic_end_disable_gd(gd32_i2c->i2c_periph); + ret = -RT_ETIMEOUT; + goto out; + } + } + + if(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_NACK_GD)) + { + address_nack = RT_TRUE; + } + i2c_automatic_end_disable_gd(gd32_i2c->i2c_periph); + i2c_flag_clear_gd(gd32_i2c->i2c_periph, + I2C_FLAG_STPDET_GD | I2C_FLAG_NACK_GD); + stop_generated = RT_TRUE; + msg = &msgs[phase_end - 1]; + i = phase_end; + if(address_nack) + { + ret = -RT_EIO; + goto out; + } + continue; + } + + while(i < phase_end) + { + msg = &msgs[i]; + if(msg->flags & RT_I2C_RD) + { + if(gd32_i2c_read(gd32_i2c->i2c_periph, msg->buf, msg->len, + bus->timeout) != 0) + { + LOG_E("i2c bus read failed,i2c bus stop!"); + goto out; + } + }else{ + if(gd32_i2c_write(gd32_i2c->i2c_periph, msg->buf, msg->len, + bus->timeout) != 0) + { + LOG_E("i2c bus write failed,i2c bus stop!"); + goto out; + } + } + i++; + } + + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_TC_GD)) + { + if(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_NACK_GD)) + { + ret = -RT_EIO; + goto out; + } + if((rt_tick_get() - start_tick) >= bus->timeout) + { + LOG_E("i2c transfer phase timeout"); + ret = -RT_ETIMEOUT; + goto out; + } + } + continue; + } +#endif if (!(msg->flags & RT_I2C_NO_START)) { #if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32F4xx) @@ -459,7 +655,6 @@ static rt_ssize_t gd32_i2c_master_xfer(struct rt_i2c_bus_device *bus, struct rt_ }else { /* configure slave address */ while(i2c_flag_get(gd32_i2c->i2c_periph, I2C_FLAG_I2CBSY)); - //i2c_transfer_byte_number_config(gd32_i2c->i2c_periph, w_total_byte); /* send a start condition to I2C bus */ i2c_start_on_bus(gd32_i2c->i2c_periph); while(!i2c_flag_get(gd32_i2c->i2c_periph, I2C_FLAG_SBSEND)); @@ -469,64 +664,27 @@ static rt_ssize_t gd32_i2c_master_xfer(struct rt_i2c_bus_device *bus, struct rt_ i2c_flag_clear(gd32_i2c->i2c_periph, I2C_FLAG_ADDSEND); } - }else -#endif - { -#if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32H7xx) - if(msg->flags & RT_I2C_ADDR_10BIT) - { - /* enable 10-bit addressing mode in master mode */ - i2c_address10_enable_gd(gd32_i2c->i2c_periph); - }else { - /* disable 10-bit addressing mode in master mode */ - i2c_address10_disable_gd(gd32_i2c->i2c_periph); - } - - if(msg->flags & RT_I2C_RD) - { - /* configure slave address */ - i2c_master_addressing_gd(gd32_i2c->i2c_periph, msg->addr, I2C_MASTER_RECEIVE_GD); - - i2c_transfer_byte_number_config_gd(gd32_i2c->i2c_periph, r_total_byte); - /* send a start condition to I2C bus */ - i2c_start_on_bus_gd(gd32_i2c->i2c_periph); - - }else { - /* configure slave address */ - i2c_master_addressing_gd(gd32_i2c->i2c_periph, msg->addr, I2C_MASTER_TRANSMIT_GD); - while(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_I2CBSY_GD)); - i2c_transfer_byte_number_config_gd(gd32_i2c->i2c_periph, w_total_byte); - /* send a start condition to I2C bus */ - i2c_start_on_bus_gd(gd32_i2c->i2c_periph); - } -#endif } +#endif } if(msg->flags & RT_I2C_RD) { - if(gd32_i2c_read(gd32_i2c->i2c_periph, msg->buf, msg->len) != 0) + if(gd32_i2c_read(gd32_i2c->i2c_periph, msg->buf, msg->len, + bus->timeout) != 0) { LOG_E("i2c bus read failed,i2c bus stop!"); goto out; } }else { - if(gd32_i2c_write(gd32_i2c->i2c_periph, msg->buf, msg->len) != 0) + if(gd32_i2c_write(gd32_i2c->i2c_periph, msg->buf, msg->len, + bus->timeout) != 0) { LOG_E("i2c bus write failed,i2c bus stop!"); goto out; } } -#if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32H7xx) - if(!IS_I2C_LEGACY(gd32_i2c->i2c_periph)) - { - if(r_total_byte != 0) - { - while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_TC_GD)); - } - } -#endif - + i++; } ret = i; @@ -551,16 +709,44 @@ static rt_ssize_t gd32_i2c_master_xfer(struct rt_i2c_bus_device *bus, struct rt_ }else #endif { -#if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32H7xx) - if(!(msg->flags & RT_I2C_NO_STOP)) +#if defined (SOC_SERIES_GD32F5xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + if(!(msg->flags & RT_I2C_NO_STOP) && !stop_generated) { - while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_TC_GD)); + if((ret >= 0) && !address_probe) + { + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_TC_GD)) + { + if(i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_NACK_GD)) + { + ret = -RT_EIO; + break; + } + + if((rt_tick_get() - start_tick) >= bus->timeout) + { + LOG_E("i2c transfer complete timeout"); + ret = -RT_ETIMEOUT; + break; + } + } + } /* send a stop condition to I2C bus */ i2c_stop_on_bus_gd(gd32_i2c->i2c_periph); /* wait until stop condition generate */ - while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_STPDET_GD)); + start_tick = rt_tick_get(); + while(!i2c_flag_get_gd(gd32_i2c->i2c_periph, I2C_FLAG_STPDET_GD)) + { + if((rt_tick_get() - start_tick) >= bus->timeout) + { + LOG_E("i2c stop timeout"); + ret = -RT_ETIMEOUT; + break; + } + } /* clear the STPDET bit */ - i2c_flag_clear_gd(gd32_i2c->i2c_periph, I2C_FLAG_STPDET_GD); + i2c_flag_clear_gd(gd32_i2c->i2c_periph, + I2C_FLAG_STPDET_GD | I2C_FLAG_NACK_GD); } #endif } @@ -585,7 +771,9 @@ int rt_hw_i2c_init(void) for(int i = 0; i < obj_num; i++) { - +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + gd32_i2c_clock_source_config(gd_i2c_config[i].i2c_periph); +#endif gd32_i2c_gpio_init(&gd_i2c_config[i]); /* configure I2C timing. I2C speed clock=400kHz*/ @@ -600,12 +788,17 @@ int rt_hw_i2c_init(void) }else #endif { -#if defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32H7xx) +#if defined (SOC_SERIES_GD32F5xx) i2c_timing_config_gd(gd_i2c_config[i].i2c_periph, 0x1, 0x7, 0); i2c_master_clock_config_gd(gd_i2c_config[i].i2c_periph, 0x2D, 0x87); /* enable I2C1 */ i2c_enable_gd(gd_i2c_config[i].i2c_periph); +#elif (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + /* GD32H7xx vendor timing for a 64 MHz I2C kernel clock at 400 kHz. */ + i2c_timing_config_gd(gd_i2c_config[i].i2c_periph, 0x0, 0x6, 0); + i2c_master_clock_config_gd(gd_i2c_config[i].i2c_periph, 0x26, 0x73); + i2c_enable_gd(gd_i2c_config[i].i2c_periph); #endif } diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.h index 1352a768ddc..007e77605c8 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_hard_i2c.h @@ -23,19 +23,12 @@ extern "C" { /* GD32 i2c driver */ struct gd32_i2c_bus { - uint32_t i2c_periph; /* Todo: 3bits */ + uint32_t i2c_periph; + rcu_periph_enum per_clk; - rcu_periph_enum per_clk; /* Todo: 5bits */ - rcu_periph_enum scl_gpio_clk; /* Todo: 5bits */ - rcu_periph_enum sda_gpio_clk; /* Todo: 5bits */ - - uint32_t scl_port; /* Todo: 4bits */ - uint16_t scl_af; /* Todo: 4bits */ - uint16_t scl_pin; /* Todo: 4bits */ - - uint32_t sda_port; /* Todo: 4bits */ - uint16_t sda_af; /* Todo: 4bits */ - uint16_t sda_pin; /* Todo: 4bits */ + const char *scl_pin_name; + const char *sda_pin_name; + const char *alternate; struct rt_i2c_bus_device *i2c_bus; char *device_name; From 60217b7b2b05062ff5249456414d1c21b2593875 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:09 +0800 Subject: [PATCH 06/19] [bsp][gd32] Add configurable GD32H77D SPI3 support Select the H77x/H78x SPI interface and expose SPI3 pin settings. Keep SPI disabled in the minimal configuration. Verified SPI3 device registration; external loopback requires the corresponding pin connection. --- .../gd32_drivers/config/spi_config.h | 261 ++++++++++++++++++ bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c | 252 ++++++----------- bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h | 18 +- 3 files changed, 352 insertions(+), 179 deletions(-) create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/config/spi_config.h diff --git a/bsp/gd32/arm/libraries/gd32_drivers/config/spi_config.h b/bsp/gd32/arm/libraries/gd32_drivers/config/spi_config.h new file mode 100644 index 00000000000..1f3368f14f8 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/config/spi_config.h @@ -0,0 +1,261 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __SPI_CONFIG_H__ +#define __SPI_CONFIG_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef BSP_USING_SPI0 +#ifndef BSP_SPI0_SCK_PIN +#define BSP_SPI0_SCK_PIN "PA5" +#endif +#ifndef BSP_SPI0_MISO_PIN +#define BSP_SPI0_MISO_PIN "PA6" +#endif +#ifndef BSP_SPI0_MOSI_PIN +#define BSP_SPI0_MOSI_PIN "PA7" +#endif +#ifndef BSP_SPI0_SCK_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI0_SCK_AFIO "AF0" +#else +#define BSP_SPI0_SCK_AFIO "AF5" +#endif +#endif +#ifndef BSP_SPI0_MISO_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI0_MISO_AFIO "AF0" +#else +#define BSP_SPI0_MISO_AFIO "AF5" +#endif +#endif +#ifndef BSP_SPI0_MOSI_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI0_MOSI_AFIO "AF0" +#else +#define BSP_SPI0_MOSI_AFIO "AF5" +#endif +#endif +#ifndef SPI0_BUS_CONFIG +#define SPI0_BUS_CONFIG \ + { \ + .spi_periph = SPI0, \ + .bus_name = "spi0", \ + .spi_clk = RCU_SPI0, \ + .spi_bus = &spi_bus0, \ + .sck_pin_name = BSP_SPI0_SCK_PIN, \ + .miso_pin_name = BSP_SPI0_MISO_PIN, \ + .mosi_pin_name = BSP_SPI0_MOSI_PIN, \ + .sck_alternate = BSP_SPI0_SCK_AFIO, \ + .miso_alternate = BSP_SPI0_MISO_AFIO, \ + .mosi_alternate = BSP_SPI0_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef BSP_USING_SPI1 +#ifndef BSP_SPI1_SCK_PIN +#define BSP_SPI1_SCK_PIN "PB13" +#endif +#ifndef BSP_SPI1_MISO_PIN +#define BSP_SPI1_MISO_PIN "PB14" +#endif +#ifndef BSP_SPI1_MOSI_PIN +#define BSP_SPI1_MOSI_PIN "PB15" +#endif +#ifndef BSP_SPI1_SCK_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI1_SCK_AFIO "AF0" +#else +#define BSP_SPI1_SCK_AFIO "AF5" +#endif +#endif +#ifndef BSP_SPI1_MISO_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI1_MISO_AFIO "AF0" +#else +#define BSP_SPI1_MISO_AFIO "AF5" +#endif +#endif +#ifndef BSP_SPI1_MOSI_AFIO +#ifdef SOC_SERIES_GD32E23x +#define BSP_SPI1_MOSI_AFIO "AF0" +#else +#define BSP_SPI1_MOSI_AFIO "AF5" +#endif +#endif +#ifndef SPI1_BUS_CONFIG +#define SPI1_BUS_CONFIG \ + { \ + .spi_periph = SPI1, \ + .bus_name = "spi1", \ + .spi_clk = RCU_SPI1, \ + .spi_bus = &spi_bus1, \ + .sck_pin_name = BSP_SPI1_SCK_PIN, \ + .miso_pin_name = BSP_SPI1_MISO_PIN, \ + .mosi_pin_name = BSP_SPI1_MOSI_PIN, \ + .sck_alternate = BSP_SPI1_SCK_AFIO, \ + .miso_alternate = BSP_SPI1_MISO_AFIO, \ + .mosi_alternate = BSP_SPI1_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef BSP_USING_SPI2 +#ifndef BSP_SPI2_SCK_PIN +#define BSP_SPI2_SCK_PIN "PB3" +#endif +#ifndef BSP_SPI2_MISO_PIN +#define BSP_SPI2_MISO_PIN "PB4" +#endif +#ifndef BSP_SPI2_MOSI_PIN +#define BSP_SPI2_MOSI_PIN "PB5" +#endif +#ifndef BSP_SPI2_SCK_AFIO +#define BSP_SPI2_SCK_AFIO "AF6" +#endif +#ifndef BSP_SPI2_MISO_AFIO +#define BSP_SPI2_MISO_AFIO "AF6" +#endif +#ifndef BSP_SPI2_MOSI_AFIO +#define BSP_SPI2_MOSI_AFIO "AF6" +#endif +#ifndef SPI2_BUS_CONFIG +#define SPI2_BUS_CONFIG \ + { \ + .spi_periph = SPI2, \ + .bus_name = "spi2", \ + .spi_clk = RCU_SPI2, \ + .spi_bus = &spi_bus2, \ + .sck_pin_name = BSP_SPI2_SCK_PIN, \ + .miso_pin_name = BSP_SPI2_MISO_PIN, \ + .mosi_pin_name = BSP_SPI2_MOSI_PIN, \ + .sck_alternate = BSP_SPI2_SCK_AFIO, \ + .miso_alternate = BSP_SPI2_MISO_AFIO, \ + .mosi_alternate = BSP_SPI2_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef BSP_USING_SPI3 +#ifndef BSP_SPI3_SCK_PIN +#define BSP_SPI3_SCK_PIN "PE2" +#endif +#ifndef BSP_SPI3_MISO_PIN +#define BSP_SPI3_MISO_PIN "PE5" +#endif +#ifndef BSP_SPI3_MOSI_PIN +#define BSP_SPI3_MOSI_PIN "PE6" +#endif +#ifndef BSP_SPI3_SCK_AFIO +#define BSP_SPI3_SCK_AFIO "AF5" +#endif +#ifndef BSP_SPI3_MISO_AFIO +#define BSP_SPI3_MISO_AFIO "AF5" +#endif +#ifndef BSP_SPI3_MOSI_AFIO +#define BSP_SPI3_MOSI_AFIO "AF5" +#endif +#ifndef SPI3_BUS_CONFIG +#define SPI3_BUS_CONFIG \ + { \ + .spi_periph = SPI3, \ + .bus_name = "spi3", \ + .spi_clk = RCU_SPI3, \ + .spi_bus = &spi_bus3, \ + .sck_pin_name = BSP_SPI3_SCK_PIN, \ + .miso_pin_name = BSP_SPI3_MISO_PIN, \ + .mosi_pin_name = BSP_SPI3_MOSI_PIN, \ + .sck_alternate = BSP_SPI3_SCK_AFIO, \ + .miso_alternate = BSP_SPI3_MISO_AFIO, \ + .mosi_alternate = BSP_SPI3_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef BSP_USING_SPI4 +#ifndef BSP_SPI4_SCK_PIN +#define BSP_SPI4_SCK_PIN "PF7" +#endif +#ifndef BSP_SPI4_MISO_PIN +#define BSP_SPI4_MISO_PIN "PF8" +#endif +#ifndef BSP_SPI4_MOSI_PIN +#define BSP_SPI4_MOSI_PIN "PF9" +#endif +#ifndef BSP_SPI4_SCK_AFIO +#define BSP_SPI4_SCK_AFIO "AF5" +#endif +#ifndef BSP_SPI4_MISO_AFIO +#define BSP_SPI4_MISO_AFIO "AF5" +#endif +#ifndef BSP_SPI4_MOSI_AFIO +#define BSP_SPI4_MOSI_AFIO "AF5" +#endif +#ifndef SPI4_BUS_CONFIG +#define SPI4_BUS_CONFIG \ + { \ + .spi_periph = SPI4, \ + .bus_name = "spi4", \ + .spi_clk = RCU_SPI4, \ + .spi_bus = &spi_bus4, \ + .sck_pin_name = BSP_SPI4_SCK_PIN, \ + .miso_pin_name = BSP_SPI4_MISO_PIN, \ + .mosi_pin_name = BSP_SPI4_MOSI_PIN, \ + .sck_alternate = BSP_SPI4_SCK_AFIO, \ + .miso_alternate = BSP_SPI4_MISO_AFIO, \ + .mosi_alternate = BSP_SPI4_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef BSP_USING_SPI5 +#ifndef BSP_SPI5_SCK_PIN +#define BSP_SPI5_SCK_PIN "PG13" +#endif +#ifndef BSP_SPI5_MISO_PIN +#define BSP_SPI5_MISO_PIN "PG12" +#endif +#ifndef BSP_SPI5_MOSI_PIN +#define BSP_SPI5_MOSI_PIN "PG14" +#endif +#ifndef BSP_SPI5_SCK_AFIO +#define BSP_SPI5_SCK_AFIO "AF5" +#endif +#ifndef BSP_SPI5_MISO_AFIO +#define BSP_SPI5_MISO_AFIO "AF5" +#endif +#ifndef BSP_SPI5_MOSI_AFIO +#define BSP_SPI5_MOSI_AFIO "AF5" +#endif +#ifndef SPI5_BUS_CONFIG +#define SPI5_BUS_CONFIG \ + { \ + .spi_periph = SPI5, \ + .bus_name = "spi5", \ + .spi_clk = RCU_SPI5, \ + .spi_bus = &spi_bus5, \ + .sck_pin_name = BSP_SPI5_SCK_PIN, \ + .miso_pin_name = BSP_SPI5_MISO_PIN, \ + .mosi_pin_name = BSP_SPI5_MOSI_PIN, \ + .sck_alternate = BSP_SPI5_SCK_AFIO, \ + .miso_alternate = BSP_SPI5_MISO_AFIO, \ + .mosi_alternate = BSP_SPI5_MOSI_AFIO, \ + } +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __SPI_CONFIG_H__ */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c index 6c0a12eb262..eac84f8b5b3 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.c @@ -8,6 +8,7 @@ * 2021-12-20 BruceOu first implementation */ #include "drv_spi.h" +#include "spi_config.h" #ifdef RT_USING_SPI @@ -36,140 +37,23 @@ static struct rt_spi_bus spi_bus5; #endif static const struct gd32_spi spi_bus_obj[] = { - #ifdef BSP_USING_SPI0 - { - SPI0, - "spi0", - RCU_SPI0, - RCU_GPIOA, - RCU_GPIOA, - RCU_GPIOA, - &spi_bus0, - GPIOA, - GPIOA, - GPIOA, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_5, -#endif -#if defined (SOC_SERIES_GD32E23x) - GPIO_AF_0, -#endif - GPIO_PIN_5, - GPIO_PIN_6, - GPIO_PIN_7, - }, + SPI0_BUS_CONFIG, #endif /* BSP_USING_SPI0 */ - #ifdef BSP_USING_SPI1 - { - SPI1, - "spi1", - RCU_SPI1, - RCU_GPIOB, - RCU_GPIOB, - RCU_GPIOB, - &spi_bus1, - GPIOB, - GPIOB, - GPIOB, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_5, -#endif -#if defined SOC_SERIES_GD32E23x - GPIO_AF_0, -#endif - - GPIO_PIN_13, - GPIO_PIN_14, - GPIO_PIN_15, - }, + SPI1_BUS_CONFIG, #endif /* BSP_USING_SPI1 */ - #ifdef BSP_USING_SPI2 - { - SPI2, - "spi2", - RCU_SPI2, - RCU_GPIOB, - RCU_GPIOB, - RCU_GPIOB, - &spi_bus2, - GPIOB, - GPIOB, - GPIOB, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_6, -#endif - GPIO_PIN_3, - GPIO_PIN_4, - GPIO_PIN_5, - }, + SPI2_BUS_CONFIG, #endif /* BSP_USING_SPI2 */ - #ifdef BSP_USING_SPI3 - { - SPI3, - "spi3", - RCU_SPI3, - RCU_GPIOE, - RCU_GPIOE, - RCU_GPIOE, - &spi_bus3, - GPIOE, - GPIOE, - GPIOE, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_5, -#endif - GPIO_PIN_2, - GPIO_PIN_5, - GPIO_PIN_6, - }, + SPI3_BUS_CONFIG, #endif /* BSP_USING_SPI3 */ - #ifdef BSP_USING_SPI4 - { - SPI4, - "spi4", - RCU_SPI4, - RCU_GPIOF, - RCU_GPIOF, - RCU_GPIOF, - &spi_bus4, - GPIOF, - GPIOF, - GPIOF, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_5, -#endif - GPIO_PIN_7, - GPIO_PIN_8, - GPIO_PIN_9, - - }, + SPI4_BUS_CONFIG, #endif /* BSP_USING_SPI4 */ - #ifdef BSP_USING_SPI5 - { - SPI5, - "spi5", - RCU_SPI5, - RCU_GPIOG, - RCU_GPIOG, - - RCU_GPIOG, - &spi_bus5, - GPIOG, - GPIOG, - GPIOG, -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) - GPIO_AF_5, -#endif - GPIO_PIN_13, - GPIO_PIN_12, - GPIO_PIN_14, - } + SPI5_BUS_CONFIG, #endif /* BSP_USING_SPI5 */ }; @@ -190,42 +74,68 @@ static struct rt_spi_ops gd32_spi_ops = */ static void gd32_spi_init(struct gd32_spi *gd32_spi) { + rt_uint32_t sck_port, miso_port, mosi_port; + rt_uint32_t sck_pin, miso_pin, mosi_pin; + rcu_periph_enum sck_periph, miso_periph, mosi_periph; +#if defined (SOC_SERIES_GD32F4xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32E23x) + rt_uint32_t sck_af, miso_af, mosi_af; +#endif + + if (get_pin_config(gd32_spi->sck_pin_name, &sck_port, &sck_pin, &sck_periph) != RT_EOK) + { + return; + } + if (get_pin_config(gd32_spi->miso_pin_name, &miso_port, &miso_pin, &miso_periph) != RT_EOK) + { + return; + } + if (get_pin_config(gd32_spi->mosi_pin_name, &mosi_port, &mosi_pin, &mosi_periph) != RT_EOK) + { + return; + } + /* enable SPI clock */ rcu_periph_clock_enable(gd32_spi->spi_clk); - rcu_periph_clock_enable(gd32_spi->sck_gpio_clk); - rcu_periph_clock_enable(gd32_spi->miso_gpio_clk); - rcu_periph_clock_enable(gd32_spi->mosi_gpio_clk); - -#if defined (SOC_SERIES_GD32F4xx) || defined (SOC_SERIES_GD32H7xx) || (defined SOC_SERIES_GD32F5xx) || (defined SOC_SERIES_GD32E23x) - /*GPIO pin configuration*/ - gpio_af_set(gd32_spi->sck_spi_port, gd32_spi->alt_func_num, gd32_spi->sck_pin); - gpio_af_set(gd32_spi->miso_spi_port, gd32_spi->alt_func_num, gd32_spi->miso_pin); - gpio_af_set(gd32_spi->mosi_spi_port, gd32_spi->alt_func_num, gd32_spi->mosi_pin); - gpio_mode_set(gd32_spi->sck_spi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, gd32_spi->sck_pin); - gpio_mode_set(gd32_spi->miso_spi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, gd32_spi->miso_pin); - gpio_mode_set(gd32_spi->mosi_spi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, gd32_spi->mosi_pin); - #if defined (SOC_SERIES_GD32H7xx) - gpio_output_options_set(gd32_spi->sck_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, gd32_spi->sck_pin); - gpio_output_options_set(gd32_spi->miso_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, gd32_spi->miso_pin); - gpio_output_options_set(gd32_spi->mosi_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, gd32_spi->mosi_pin); - #elif defined (SOC_SERIES_GD32E23x) - gpio_output_options_set(gd32_spi->sck_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, gd32_spi->sck_pin); - gpio_output_options_set(gd32_spi->miso_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, gd32_spi->miso_pin); - gpio_output_options_set(gd32_spi->mosi_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, gd32_spi->mosi_pin); - #else - gpio_output_options_set(gd32_spi->sck_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, gd32_spi->sck_pin); - gpio_output_options_set(gd32_spi->miso_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, gd32_spi->miso_pin); - gpio_output_options_set(gd32_spi->mosi_spi_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, gd32_spi->mosi_pin); - #endif + rcu_periph_clock_enable(sck_periph); + rcu_periph_clock_enable(miso_periph); + rcu_periph_clock_enable(mosi_periph); + +#if defined (SOC_SERIES_GD32F4xx) || (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined (SOC_SERIES_GD32F5xx) || defined (SOC_SERIES_GD32E23x) + if (pin_alternate_config(gd32_spi->sck_alternate, &sck_af) != RT_EOK || + pin_alternate_config(gd32_spi->miso_alternate, &miso_af) != RT_EOK || + pin_alternate_config(gd32_spi->mosi_alternate, &mosi_af) != RT_EOK) + { + return; + } + + /* GPIO pin configuration */ + gpio_af_set(sck_port, sck_af, sck_pin); + gpio_af_set(miso_port, miso_af, miso_pin); + gpio_af_set(mosi_port, mosi_af, mosi_pin); + gpio_mode_set(sck_port, GPIO_MODE_AF, GPIO_PUPD_NONE, sck_pin); + gpio_mode_set(miso_port, GPIO_MODE_AF, GPIO_PUPD_NONE, miso_pin); + gpio_mode_set(mosi_port, GPIO_MODE_AF, GPIO_PUPD_NONE, mosi_pin); +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + gpio_output_options_set(sck_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, sck_pin); + gpio_output_options_set(miso_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, miso_pin); + gpio_output_options_set(mosi_port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, mosi_pin); +#elif defined (SOC_SERIES_GD32E23x) + gpio_output_options_set(sck_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, sck_pin); + gpio_output_options_set(miso_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, miso_pin); + gpio_output_options_set(mosi_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, mosi_pin); +#else + gpio_output_options_set(sck_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, sck_pin); + gpio_output_options_set(miso_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, miso_pin); + gpio_output_options_set(mosi_port, GPIO_OTYPE_PP, GPIO_OSPEED_MAX, mosi_pin); +#endif #else /* Init SPI SCK MOSI */ - gpio_init(gd32_spi->sck_spi_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, gd32_spi->sck_pin); - gpio_init(gd32_spi->mosi_spi_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, gd32_spi->mosi_pin); + gpio_init(sck_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, sck_pin); + gpio_init(mosi_port, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, mosi_pin); /* Init SPI MISO */ - gpio_init(gd32_spi->miso_spi_port, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, gd32_spi->miso_pin); + gpio_init(miso_port, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, miso_pin); #endif - } static rt_err_t spi_configure(struct rt_spi_device* device, @@ -242,7 +152,7 @@ static rt_err_t spi_configure(struct rt_spi_device* device, /* Init SPI */ gd32_spi_init(spi_device); -#if defined SOC_SERIES_GD32H7xx +#if (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) /* data_width */ if(configuration->data_width >=4 && configuration->data_width <= 32) { @@ -360,6 +270,11 @@ static rt_err_t spi_configure(struct rt_spi_device* device, spi_init_struct.nss = SPI_NSS_SOFT; spi_crc_off(spi_periph); +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + /* enable byte access and NSS output in master mode */ + spi_byte_access_enable(spi_periph); + spi_nss_output_enable(spi_periph); +#endif /* init SPI */ spi_init(spi_periph, &spi_init_struct); @@ -418,20 +333,21 @@ static rt_ssize_t spixfer(struct rt_spi_device* device, struct rt_spi_message* m /* Todo: replace register read/write by gd32f4 lib */ /* Wait until the transmit buffer is empty */ - #if defined (SOC_SERIES_GD32H7xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + spi_master_transfer_start(spi_periph, SPI_TRANS_START); while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TP)); - #else +#else while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TBE)); - #endif +#endif /* Send the byte */ spi_i2s_data_transmit(spi_periph, data); /* Wait until a data is received */ - #if defined (SOC_SERIES_GD32H7xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RP)); - #else +#else while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RBNE)); - #endif +#endif /* Get the received data */ data = spi_i2s_data_receive(spi_periph); @@ -458,20 +374,21 @@ static rt_ssize_t spixfer(struct rt_spi_device* device, struct rt_spi_message* m } /* Wait until the transmit buffer is empty */ - #if defined (SOC_SERIES_GD32H7xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) + spi_master_transfer_start(spi_periph, SPI_TRANS_START); while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TP)); - #else +#else while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_TBE)); - #endif +#endif /* Send the byte */ spi_i2s_data_transmit(spi_periph, data); /* Wait until a data is received */ - #if defined (SOC_SERIES_GD32H7xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RP)); - #else +#else while(RESET == spi_i2s_flag_get(spi_periph, SPI_FLAG_RBNE)); - #endif +#endif /* Get the received data */ data = spi_i2s_data_receive(spi_periph); @@ -481,13 +398,14 @@ static rt_ssize_t spixfer(struct rt_spi_device* device, struct rt_spi_message* m } } } - #if defined SOC_SERIES_GD32H7xx +#if (defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32H77x_H78X) else if(config->data_width <= 32) { const rt_uint32_t * send_ptr = message->send_buf; rt_uint32_t * recv_ptr = message->recv_buf; rt_uint32_t size = message->length; + spi_master_transfer_start(spi_periph, SPI_TRANS_START); while(size--) { rt_uint32_t data = 0xFF; @@ -513,7 +431,7 @@ static rt_ssize_t spixfer(struct rt_spi_device* device, struct rt_spi_message* m } } } - #endif +#endif } /* release CS */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h index 6cca0755c70..56bb16f82c8 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_spi.h @@ -32,19 +32,13 @@ struct gd32_spi uint32_t spi_periph; char *bus_name; rcu_periph_enum spi_clk; - rcu_periph_enum sck_gpio_clk; - rcu_periph_enum miso_gpio_clk; - rcu_periph_enum mosi_gpio_clk; struct rt_spi_bus *spi_bus; - uint32_t sck_spi_port; - uint32_t miso_spi_port; - uint32_t mosi_spi_port; -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32E23x || defined SOC_SERIES_GD32H7xx || defined SOC_SERIES_GD32F5xx - uint32_t alt_func_num; -#endif - uint16_t sck_pin; - uint16_t miso_pin; - uint16_t mosi_pin; + const char *sck_pin_name; + const char *miso_pin_name; + const char *mosi_pin_name; + const char *sck_alternate; + const char *miso_alternate; + const char *mosi_alternate; }; rt_err_t rt_hw_spi_device_attach(const char *bus_name, const char *device_name, rt_base_t cs_pin); From e34fa59437026aecaa5b6376639f0b5844342214 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:11 +0800 Subject: [PATCH 07/19] [bsp][gd32] Add GD32H77D PWM support Add PWM1, PWM2 and PWM30 support with an optional dual-output verification command. Keep timer source selection in the peripheral package and build the example only when selected. Verified PWM2/PWM30 start and stop commands. Output frequency and duty cycle still require waveform measurement. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 7 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/pwm_dual_test.c | 178 +++++++++++ bsp/gd32/arm/libraries/gd32_drivers/drv_pwm.c | 285 +++++++++++------- 4 files changed, 359 insertions(+), 114 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/pwm_dual_test.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index eafb2724b70..d50e8ffb493 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -17,4 +17,11 @@ menu "Applications" Use memheap objects as the system heap with automatic binding so allocations can use the external SDRAM heap. + config BSP_USING_PWM_DUAL_TEST + bool "Enable PWM2/PWM30 test command" + depends on BSP_USING_PWM2 && BSP_USING_PWM30 && RT_USING_FINSH + default n + help + Register pwm_dual_test to control the two PWM outputs. + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index 8c8c57b347f..9f5aca68221 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -6,6 +6,9 @@ src = ['main.c'] if GetDepend('BSP_USING_SDRAM_HEAP_TEST'): src += ['sdram_heap_test.c'] +if GetDepend('BSP_USING_PWM_DUAL_TEST'): + src += ['pwm_dual_test.c'] + group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/pwm_dual_test.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/pwm_dual_test.c new file mode 100644 index 00000000000..511ab7b5e98 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/pwm_dual_test.c @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Dual-channel PWM output test for the GD32H77D GinoPi board. + */ + +#include +#include + +#ifdef BSP_USING_PWM_DUAL_TEST + +#define PWM2_DEVICE_NAME "pwm2" +#define PWM2_DEVICE_CHANNEL 2 +#define PWM30_DEVICE_NAME "pwm30" +#define PWM30_DEVICE_CHANNEL 3 +#define PWM_TEST_PERIOD_NS 500000U +#define PWM_TEST_STEP_NS 5000U +#define PWM_TEST_DELAY_MS 50U +#define PWM_TEST_THREAD_STACK 1024U +#define PWM_TEST_THREAD_PRIORITY 20U +#define PWM_TEST_THREAD_TICK 10U + +static struct rt_device_pwm *pwm2_device; +static struct rt_device_pwm *pwm30_device; +static rt_thread_t pwm_test_thread; +static volatile rt_bool_t pwm_test_stop; + +static void pwm_dual_disable(void) +{ + if (pwm2_device != RT_NULL) + { + rt_pwm_disable(pwm2_device, PWM2_DEVICE_CHANNEL); + } + if (pwm30_device != RT_NULL) + { + rt_pwm_disable(pwm30_device, PWM30_DEVICE_CHANNEL); + } +} + +static void pwm_dual_test_entry(void *parameter) +{ + rt_uint32_t pulse = 0U; + rt_bool_t increasing = RT_TRUE; + + (void)parameter; + + while (pwm_test_stop == RT_FALSE) + { + if (rt_pwm_set(pwm2_device, PWM2_DEVICE_CHANNEL, + PWM_TEST_PERIOD_NS, pulse) != RT_EOK || + rt_pwm_set(pwm30_device, PWM30_DEVICE_CHANNEL, + PWM_TEST_PERIOD_NS, pulse) != RT_EOK) + { + rt_kprintf("set dual PWM pulse failed\n"); + break; + } + + rt_thread_mdelay(PWM_TEST_DELAY_MS); + + if (increasing == RT_TRUE) + { + pulse += PWM_TEST_STEP_NS; + if (pulse >= PWM_TEST_PERIOD_NS) + { + pulse = PWM_TEST_PERIOD_NS; + increasing = RT_FALSE; + } + } + else if (pulse > PWM_TEST_STEP_NS) + { + pulse -= PWM_TEST_STEP_NS; + } + else + { + pulse = 0U; + increasing = RT_TRUE; + } + } + + pwm_dual_disable(); + pwm_test_thread = RT_NULL; + rt_kprintf("dual PWM test stopped\n"); +} + +static int pwm_dual_start(void) +{ + rt_err_t result; + + if (pwm_test_thread != RT_NULL) + { + rt_kprintf("dual PWM test is already running\n"); + return -RT_EBUSY; + } + + pwm2_device = (struct rt_device_pwm *)rt_device_find(PWM2_DEVICE_NAME); + pwm30_device = (struct rt_device_pwm *)rt_device_find(PWM30_DEVICE_NAME); + if (pwm2_device == RT_NULL || pwm30_device == RT_NULL) + { + rt_kprintf("cannot find %s or %s device\n", + PWM2_DEVICE_NAME, PWM30_DEVICE_NAME); + return -RT_ERROR; + } + + result = rt_pwm_set(pwm2_device, PWM2_DEVICE_CHANNEL, + PWM_TEST_PERIOD_NS, 0U); + if (result == RT_EOK) + { + result = rt_pwm_set(pwm30_device, PWM30_DEVICE_CHANNEL, + PWM_TEST_PERIOD_NS, 0U); + } + if (result == RT_EOK) + { + result = rt_pwm_enable(pwm2_device, PWM2_DEVICE_CHANNEL); + } + if (result == RT_EOK) + { + result = rt_pwm_enable(pwm30_device, PWM30_DEVICE_CHANNEL); + } + if (result != RT_EOK) + { + pwm_dual_disable(); + rt_kprintf("enable dual PWM failed: %d\n", result); + return result; + } + + pwm_test_stop = RT_FALSE; + pwm_test_thread = rt_thread_create("pwmdual", pwm_dual_test_entry, RT_NULL, + PWM_TEST_THREAD_STACK, + PWM_TEST_THREAD_PRIORITY, + PWM_TEST_THREAD_TICK); + if (pwm_test_thread == RT_NULL) + { + pwm_dual_disable(); + rt_kprintf("create dual PWM test thread failed\n"); + return -RT_ENOMEM; + } + + result = rt_thread_startup(pwm_test_thread); + if (result != RT_EOK) + { + pwm_dual_disable(); + rt_thread_delete(pwm_test_thread); + pwm_test_thread = RT_NULL; + rt_kprintf("start dual PWM test thread failed: %d\n", result); + return result; + } + + rt_kprintf("dual PWM test started: pwm2 ch2 and pwm30 ch3\n"); + return RT_EOK; +} + +static int pwm_dual_test(int argc, char *argv[]) +{ + if (argc == 1 || (argc == 2 && rt_strcmp(argv[1], "start") == 0)) + { + return pwm_dual_start(); + } + + if (argc == 2 && rt_strcmp(argv[1], "stop") == 0) + { + if (pwm_test_thread == RT_NULL) + { + rt_kprintf("dual PWM test is not running\n"); + return RT_EOK; + } + + pwm_test_stop = RT_TRUE; + return RT_EOK; + } + + rt_kprintf("usage: pwm_dual_test [start|stop]\n"); + return -RT_EINVAL; +} + +MSH_CMD_EXPORT(pwm_dual_test, test pwm2 channel 2 and pwm30 channel 3); +#endif /* BSP_USING_PWM_DUAL_TEST */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_pwm.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_pwm.c index 0b50528c4d0..a4a89980fbb 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_pwm.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_pwm.c @@ -34,6 +34,8 @@ typedef struct{ uint32_t gpio_port; uint32_t gpio_af; uint16_t gpio_pin; + const char *pin_name; + const char *alternate; }channel_type; struct gd32_pwm @@ -86,10 +88,20 @@ static struct gd32_pwm gd32_pwm_obj[] = { .timerx = TIMER2, .apb_of = CK_APB1, .channels = { +#if defined(BSP_PWM2_CH1_PIN) && defined(BSP_PWM2_CH1_AFIO) + {0}, + { + .pin_name = BSP_PWM2_CH1_PIN, + .alternate = BSP_PWM2_CH1_AFIO, + }, + {0}, + {0}, +#else {GPIOA, GPIO_AF_1, GPIO_PIN_6}, {GPIOA, GPIO_AF_1, GPIO_PIN_7}, {GPIOB, GPIO_AF_2, GPIO_PIN_0}, {GPIOB, GPIO_AF_2, GPIO_PIN_1}, +#endif }, }, #endif @@ -208,6 +220,22 @@ static struct gd32_pwm gd32_pwm_obj[] = { }, // L2 general-purpose timer is a single-channel timer }, #endif + +#ifdef BSP_USING_PWM30 + { + .name = "pwm30", + .timerx = TIMER30, + .apb_of = CK_APB1, + .channels = { + {0}, + {0}, + { + .pin_name = BSP_PWM30_CH2_PIN, + .alternate = BSP_PWM30_CH2_AFIO, + }, + }, + }, +#endif }; static void gpio_clock_enable(rt_uint32_t Port) @@ -241,6 +269,43 @@ static void gpio_clock_enable(rt_uint32_t Port) } } +static rt_err_t channel_pin_resolve(channel_type *channel) +{ + uint32_t gpio_port; + uint32_t gpio_pin; + uint32_t gpio_af; + rcu_periph_enum gpio_periph; + + if (channel->pin_name == RT_NULL) + { + if (channel->gpio_port != 0U) + { + gpio_clock_enable(channel->gpio_port); + } + + return RT_EOK; + } + + if (get_pin_config(channel->pin_name, &gpio_port, &gpio_pin, &gpio_periph) != RT_EOK) + { + LOG_E("Invalid PWM pin: %s", channel->pin_name); + return -RT_EINVAL; + } + + if (pin_alternate_config(channel->alternate, &gpio_af) != RT_EOK) + { + LOG_E("Invalid PWM alternate function: %s", channel->alternate); + return -RT_EINVAL; + } + + channel->gpio_port = gpio_port; + channel->gpio_pin = (uint16_t)gpio_pin; + channel->gpio_af = gpio_af; + rcu_periph_clock_enable(gpio_periph); + + return RT_EOK; +} + static void timer_clock_enable(uint32_t timer) { switch (timer) @@ -269,69 +334,67 @@ static void timer_clock_enable(uint32_t timer) case TIMER7: rcu_periph_clock_enable(RCU_TIMER7); break; +#ifdef TIMER8 case TIMER8: rcu_periph_clock_enable(RCU_TIMER8); break; +#endif +#ifdef TIMER9 case TIMER9: rcu_periph_clock_enable(RCU_TIMER9); break; +#endif +#ifdef TIMER10 case TIMER10: rcu_periph_clock_enable(RCU_TIMER10); break; +#endif +#ifdef TIMER11 case TIMER11: rcu_periph_clock_enable(RCU_TIMER11); break; +#endif +#ifdef TIMER12 case TIMER12: rcu_periph_clock_enable(RCU_TIMER12); break; +#endif +#ifdef TIMER13 case TIMER13: rcu_periph_clock_enable(RCU_TIMER13); break; +#endif +#ifdef TIMER30 + case TIMER30: + rcu_periph_clock_enable(RCU_TIMER30); + break; +#endif default: LOG_E("Unsport timer periph!\n"); } } -static void rcu_config(void) +static rt_err_t rcu_config(void) { - rt_int16_t i; + rt_size_t i; + rt_size_t j; for (i = 0; i < sizeof(gd32_pwm_obj) / sizeof(gd32_pwm_obj[0]); ++i) { - /* enable GPIO clock */ - switch (gd32_pwm_obj[i].timerx) + for (j = 0; j < sizeof(gd32_pwm_obj[i].channels) / sizeof(gd32_pwm_obj[i].channels[0]); ++j) { - /* Advanced timer */ - case TIMER0: - case TIMER7: - gpio_clock_enable(gd32_pwm_obj[i].nchannels[0].gpio_port); - gpio_clock_enable(gd32_pwm_obj[i].nchannels[1].gpio_port); - gpio_clock_enable(gd32_pwm_obj[i].nchannels[2].gpio_port); - - /* L0 general-purpose timer */ - case TIMER1: - case TIMER2: - case TIMER3: - case TIMER4: - gpio_clock_enable(gd32_pwm_obj[i].channels[2].gpio_port); - gpio_clock_enable(gd32_pwm_obj[i].channels[3].gpio_port); - - /* L1 general-purpose timer */ - case TIMER8: - case TIMER11: - gpio_clock_enable(gd32_pwm_obj[i].channels[1].gpio_port); - - /* L2 general-purpose timer */ - case TIMER9: - case TIMER10: - case TIMER12: - case TIMER13: - gpio_clock_enable(gd32_pwm_obj[i].channels[0].gpio_port); - break; - - default: - LOG_E("Unsport timer periph at rcu_config!\n"); - break; + if (channel_pin_resolve(&gd32_pwm_obj[i].channels[j]) != RT_EOK) + { + return -RT_ERROR; + } + } + + for (j = 0; j < sizeof(gd32_pwm_obj[i].nchannels) / sizeof(gd32_pwm_obj[i].nchannels[0]); ++j) + { + if (channel_pin_resolve(&gd32_pwm_obj[i].nchannels[j]) != RT_EOK) + { + return -RT_ERROR; + } } } @@ -341,79 +404,72 @@ static void rcu_config(void) timer_clock_enable(gd32_pwm_obj[i].timerx); timer_deinit(gd32_pwm_obj[i].timerx); } + + return RT_EOK; } -/** - * @brief Configure PWM output pin to PWM output mode - * @param pwm PWM object - * @param configuration Configuration information passed by PWM driver framework - */ -static void gpio_config_pwmout(const struct gd32_pwm *pwm, - const struct rt_pwm_configuration *configuration) +static const channel_type *pwm_channel_get(const struct gd32_pwm *pwm, + const struct rt_pwm_configuration *configuration) { - channel_type channel; + const channel_type *channel; uint8_t channel_num = configuration->channel; - if(channel_num == 0) + + if (channel_num == 0U) { - LOG_E("PWM channel starts from 1!\n"); - return; + LOG_E("PWM channel starts from 1"); + return RT_NULL; } - if(configuration->complementary) + + if (configuration->complementary) { - if(channel_num > 3) + if (channel_num > sizeof(pwm->nchannels) / sizeof(pwm->nchannels[0])) { - LOG_E("GD32 PWM complementary channel max 3!\n"); - return; - }; - channel = pwm->nchannels[channel_num-1]; + LOG_E("GD32 PWM complementary channel max 3"); + return RT_NULL; + } + channel = &pwm->nchannels[channel_num - 1U]; } else { - if(channel_num > 4) + if (channel_num > sizeof(pwm->channels) / sizeof(pwm->channels[0])) { - LOG_E("GD32 PWM complementary channel max 4!\n"); - return; - }; - channel = pwm->channels[channel_num-1]; + LOG_E("GD32 PWM channel max 4"); + return RT_NULL; + } + channel = &pwm->channels[channel_num - 1U]; + } + + if (channel->gpio_port == 0U || channel->gpio_pin == 0U) + { + LOG_E("%s channel %d is not configured", pwm->name, channel_num); + return RT_NULL; } - gpio_mode_set(channel.gpio_port, GPIO_MODE_AF, GPIO_PUPD_NONE, channel.gpio_pin); - gpio_output_options_set(channel.gpio_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, channel.gpio_pin); - gpio_af_set(channel.gpio_port, channel.gpio_af, channel.gpio_pin); + + return channel; +} + +/** + * @brief Configure PWM output pin to PWM output mode + * @param channel PWM channel + */ +static void gpio_config_pwmout(const channel_type *channel) +{ + gpio_mode_set(channel->gpio_port, GPIO_MODE_AF, GPIO_PUPD_NONE, channel->gpio_pin); +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32H75E) + gpio_output_options_set(channel->gpio_port, GPIO_OTYPE_PP, GPIO_OSPEED_60MHZ, channel->gpio_pin); +#else + gpio_output_options_set(channel->gpio_port, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, channel->gpio_pin); +#endif + gpio_af_set(channel->gpio_port, channel->gpio_af, channel->gpio_pin); } /** * @brief Configure PWM output pin to PWM floating input mode - * @param pwm PWM object - * @param configuration Configuration information passed by PWM driver framework + * @param channel PWM channel */ -static void gpio_config_input(const struct gd32_pwm *pwm, - const struct rt_pwm_configuration *configuration) +static void gpio_config_input(const channel_type *channel) { - channel_type channel = {0}; - uint8_t channel_num = configuration->channel; - if(channel_num == 0) - { - return; - } - if(configuration->complementary) - { - if(channel_num > 3) - { - LOG_E("GD32 PWM complementary channel max 3!\n"); - return; - }; - channel = pwm->nchannels[channel_num-1]; - } - else - { - if(channel_num > 4) - { - LOG_E("GD32 PWM complementary channel max 4!\n"); - return; - }; - channel = pwm->channels[channel_num-1]; - } - gpio_mode_set(channel.gpio_port, GPIO_MODE_INPUT, GPIO_PUPD_NONE, channel.gpio_pin); + gpio_mode_set(channel->gpio_port, GPIO_MODE_INPUT, GPIO_PUPD_NONE, channel->gpio_pin); } static void channel_output_config(rt_uint32_t timer_periph, timer_oc_parameter_struct *ocpara) @@ -430,6 +486,9 @@ static void channel_output_config(rt_uint32_t timer_periph, timer_oc_parameter_s case TIMER2: case TIMER3: case TIMER4: +#ifdef TIMER30 + case TIMER30: +#endif timer_channel_output_config(timer_periph, TIMER_CH_2, ocpara); timer_channel_output_pulse_value_config(timer_periph, TIMER_CH_2, 7999); timer_channel_output_mode_config(timer_periph, TIMER_CH_2, TIMER_OC_MODE_PWM0); @@ -449,8 +508,12 @@ static void channel_output_config(rt_uint32_t timer_periph, timer_oc_parameter_s timer_channel_complementary_output_state_config(timer_periph, TIMER_CH_3, TIMER_CCXN_DISABLE); /* L1 general-purpose timer */ +#ifdef TIMER8 case TIMER8: +#endif +#ifdef TIMER11 case TIMER11: +#endif timer_channel_output_config(timer_periph, TIMER_CH_1, ocpara); timer_channel_output_pulse_value_config(timer_periph, TIMER_CH_1, 7999); timer_channel_output_mode_config(timer_periph, TIMER_CH_1, TIMER_OC_MODE_PWM0); @@ -461,10 +524,18 @@ static void channel_output_config(rt_uint32_t timer_periph, timer_oc_parameter_s timer_channel_complementary_output_state_config(timer_periph, TIMER_CH_1, TIMER_CCXN_DISABLE); /* L2 general-purpose timer */ +#ifdef TIMER9 case TIMER9: +#endif +#ifdef TIMER10 case TIMER10: +#endif +#ifdef TIMER12 case TIMER12: +#endif +#ifdef TIMER13 case TIMER13: +#endif timer_channel_output_config(timer_periph, TIMER_CH_0, ocpara); timer_channel_output_pulse_value_config(timer_periph, TIMER_CH_0, 7999); timer_channel_output_mode_config(timer_periph, TIMER_CH_0, TIMER_OC_MODE_PWM0); @@ -517,32 +588,15 @@ static void timer_config(void) static rt_err_t drv_pwm_enable(struct gd32_pwm *pwm, const struct rt_pwm_configuration *configuration, rt_bool_t enable) { - uint8_t channel_num = configuration->channel; - if(channel_num == 0) + const channel_type *channel = pwm_channel_get(pwm, configuration); + + if (channel == RT_NULL) { - LOG_E("GD32 PWM channel starts from 1!\n"); return -RT_EINVAL; } - if(configuration->complementary) - { - if(channel_num > 3) - { - LOG_E("GD32 PWM complementary channel max 3!\n"); - return -RT_EINVAL; - }; - } - else - { - if(channel_num > 4) - { - LOG_E("GD32 PWM complementary channel max 4!\n"); - return -RT_EINVAL; - }; - } - if (!enable) { - gpio_config_input(pwm, configuration); + gpio_config_input(channel); if (configuration->complementary == RT_TRUE) { timer_channel_complementary_output_state_config(pwm->timerx, configuration->channel-1, @@ -556,7 +610,7 @@ static rt_err_t drv_pwm_enable(struct gd32_pwm *pwm, const struct rt_pwm_configu } else { - gpio_config_pwmout(pwm, configuration); + gpio_config_pwmout(channel); if (configuration->complementary == RT_TRUE) { timer_channel_complementary_output_state_config(pwm->timerx, configuration->channel-1, @@ -578,7 +632,7 @@ static rt_err_t drv_pwm_get(const struct gd32_pwm *pwm, struct rt_pwm_configurat rt_uint16_t psc; rt_uint32_t chxcv; - if(configuration->channel == 0) + if (pwm_channel_get(pwm, configuration) == RT_NULL) { return -RT_EINVAL; } @@ -613,7 +667,7 @@ static rt_err_t drv_pwm_set(struct gd32_pwm *pwm, struct rt_pwm_configuration *c rt_uint8_t coef = (RCU_CFG1&RCU_CFG1_TIMERSEL)?4:2; tim_clock = rcu_clock_freq_get(pwm->apb_of)*coef; - if(configuration->channel == 0) + if (pwm_channel_get(pwm, configuration) == RT_NULL) { return -RT_EINVAL; } @@ -676,7 +730,10 @@ static struct rt_pwm_ops drv_ops = {drv_pwm_control}; static rt_err_t gd32_hw_pwm_init(void) { - rcu_config(); + if (rcu_config() != RT_EOK) + { + return -RT_ERROR; + } timer_config(); /* From aa0f08d7302a2c5ed7f3bc2fe78268899d968021 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:14 +0800 Subject: [PATCH 08/19] [bsp][gd32] Add GD32H77D SDIO and filesystem support Add SDIO1 pin configuration, card detection and filesystem integration. Build filesystem benchmarks only through their application option. Verified SD card detection, mounting and a 1 MiB temporary-file write/read comparison. Keep SDIO and DFS disabled by default. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 7 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/filesystem_test.c | 192 +++++ bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + .../gd32h77d-ginopi/board/drv_filesystem.c | 146 ++++ .../gd32_drivers/config/sdio_config.h | 69 ++ .../arm/libraries/gd32_drivers/drv_sdio.c | 754 ++++++++++++++---- .../arm/libraries/gd32_drivers/drv_sdio.h | 76 ++ 8 files changed, 1094 insertions(+), 156 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/filesystem_test.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_filesystem.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/config/sdio_config.h diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index d50e8ffb493..b93b25bd029 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -17,6 +17,13 @@ menu "Applications" Use memheap objects as the system heap with automatic binding so allocations can use the external SDRAM heap. + config BSP_USING_FILESYSTEM_TEST + bool "Enable filesystem read/write benchmark commands" + depends on RT_USING_DFS && RT_USING_HEAP && RT_USING_FINSH + default n + help + Register readspeed and writespeed commands. + config BSP_USING_PWM_DUAL_TEST bool "Enable PWM2/PWM30 test command" depends on BSP_USING_PWM2 && BSP_USING_PWM30 && RT_USING_FINSH diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index 9f5aca68221..1f9f37bda9e 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -6,6 +6,9 @@ src = ['main.c'] if GetDepend('BSP_USING_SDRAM_HEAP_TEST'): src += ['sdram_heap_test.c'] +if GetDepend('BSP_USING_FILESYSTEM_TEST'): + src += ['filesystem_test.c'] + if GetDepend('BSP_USING_PWM_DUAL_TEST'): src += ['pwm_dual_test.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/filesystem_test.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/filesystem_test.c new file mode 100644 index 00000000000..00642b62b04 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/filesystem_test.c @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2010-02-10 Bernard first version + * 2020-04-12 Jianjia Ma add msh cmd + */ +#include +#include +#include +#include +#include +#include +#include + +void writespeed(const char* filename, int total_length, int block_size) +{ + int fd, index, length; + char *buff_ptr; + rt_tick_t tick; + + fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0); + if (fd < 0) + { + rt_kprintf("open file:%s failed\n", filename); + return; + } + + buff_ptr = rt_malloc(block_size); + if (buff_ptr == RT_NULL) + { + rt_kprintf("no memory\n"); + close(fd); + return; + } + + /* prepare write data */ + for (index = 0; index < block_size; index++) + { + buff_ptr[index] = index; + } + index = 0; + + /* get the beginning tick */ + tick = rt_tick_get(); + while (index < total_length / block_size) + { + length = write(fd, buff_ptr, block_size); + if (length != block_size) + { + rt_kprintf("write failed\n"); + break; + } + + index ++; + } + tick = rt_tick_get() - tick; + + /* close file and release memory */ + close(fd); + rt_free(buff_ptr); + + /* calculate write speed */ + rt_kprintf("File write speed: %d byte/s\n", total_length / tick * RT_TICK_PER_SECOND); +} + +#ifdef RT_USING_FINSH +#include +FINSH_FUNCTION_EXPORT(writespeed, perform file write test); + +static void cmd_writespeed(int argc, char *argv[]) +{ + char* filename; + int length; + int block_size; + + if(argc == 4) + { + filename = argv[1]; + length = atoi(argv[2]); + block_size = atoi(argv[3]); + } + else if(argc == 2) + { + filename = argv[1]; + block_size = 512; + length = 1024*1024; + } + else + { + rt_kprintf("Usage:\nwritespeed [file_path] [length] [block_size]\n"); + rt_kprintf("writespeed [file_path] with default length 1MB and block size 512\n"); + return; + } + writespeed(filename, length, block_size); +} +MSH_CMD_EXPORT_ALIAS(cmd_writespeed, writespeed, test file system write speed); +#endif /* RT_USING_FINSH */ + + +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2010-02-10 Bernard first version + * 2020-04-12 Jianjia Ma add msh cmd + */ + +#include +#include +#include +#include +#include +#include + +void readspeed(const char* filename, int block_size) +{ + int fd; + char *buff_ptr; + rt_size_t total_length; + rt_tick_t tick; + + fd = open(filename, 0, O_RDONLY); + if (fd < 0) + { + rt_kprintf("open file:%s failed\n", filename); + return; + } + + buff_ptr = rt_malloc(block_size); + if (buff_ptr == RT_NULL) + { + rt_kprintf("no memory\n"); + close(fd); + return; + } + + tick = rt_tick_get(); + total_length = 0; + while (1) + { + int length; + length = read(fd, buff_ptr, block_size); + + if (length <= 0) break; + total_length += length; + } + tick = rt_tick_get() - tick; + + /* close file and release memory */ + close(fd); + rt_free(buff_ptr); + + /* calculate read speed */ + rt_kprintf("File read speed: %d byte/s\n", total_length /tick * RT_TICK_PER_SECOND); +} + +#ifdef RT_USING_FINSH +#include +FINSH_FUNCTION_EXPORT(readspeed, perform file read test); + +static void cmd_readspeed(int argc, char *argv[]) +{ + char* filename; + int block_size; + + if(argc == 3) + { + filename = argv[1]; + block_size = atoi(argv[2]); + } + else if(argc == 2) + { + filename = argv[1]; + block_size = 512; + } + else + { + rt_kprintf("Usage:\nreadspeed [file_path] [block_size]\n"); + rt_kprintf("readspeed [file_path] with default block size 512\n"); + return; + } + readspeed(filename, block_size); +} +MSH_CMD_EXPORT_ALIAS(cmd_readspeed, readspeed, test file system read speed); +#endif /* RT_USING_FINSH */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index df7e09838f9..f78f584ade0 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -12,6 +12,9 @@ board.c if GetDepend(['BSP_USING_SDRAM']): src += ['drv_sdram_port.c'] +if GetDepend(['BSP_USING_FS']): + src += ['drv_filesystem.c'] + path = [cwd] CPPDEFINES = ['GD32H77DXW'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_filesystem.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_filesystem.c new file mode 100644 index 00000000000..f93e9647b57 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_filesystem.c @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include +#include + +#ifdef BSP_USING_FLASH_FATFS +#include +#include "fal_cfg.h" +#endif + +#define DBG_TAG "app.filesystem" +#define DBG_LVL DBG_INFO +#include + +#if defined(BSP_USING_SDCARD_FATFS) || defined(BSP_USING_FLASH_FATFS) || defined(RT_USBH_MSTORAGE) +static const struct romfs_dirent _romfs_root[] = +{ +#ifdef BSP_USING_SDCARD_FATFS + {ROMFS_DIRENT_DIR, "sd", RT_NULL, 0}, +#endif +#ifdef BSP_USING_FLASH_FATFS + {ROMFS_DIRENT_DIR, "flash", RT_NULL, 0}, +#endif +#ifdef RT_USBH_MSTORAGE + {ROMFS_DIRENT_DIR, "udisk", RT_NULL, 0}, +#endif +}; +#endif + +const struct romfs_dirent romfs_root = +{ +#if defined(BSP_USING_SDCARD_FATFS) || defined(BSP_USING_FLASH_FATFS) || defined(RT_USBH_MSTORAGE) + ROMFS_DIRENT_DIR, "/", (rt_uint8_t *)_romfs_root, + sizeof(_romfs_root) / sizeof(_romfs_root[0]) +#else + ROMFS_DIRENT_DIR, "/", RT_NULL, 0 +#endif +}; + +#ifdef BSP_USING_FLASH_FATFS +static void qspi_flash_mount(void) +{ + const struct fal_partition *partition; + rt_device_t device; + rt_uint8_t probe_data; + int result; + + if (fal_init() <= 0) + { + LOG_E("FAL initialization failed"); + return; + } + + partition = fal_partition_find(GD25Q64E_FILESYSTEM_PART_NAME); + if (partition == RT_NULL || + fal_partition_read(partition, 0, &probe_data, sizeof(probe_data)) != + (int)sizeof(probe_data)) + { + LOG_E("QSPI flash is not accessible"); + return; + } + + device = rt_device_find(GD25Q64E_FILESYSTEM_PART_NAME); + if (device == RT_NULL) + { + device = fal_blk_device_create(GD25Q64E_FILESYSTEM_PART_NAME); + } + if (device == RT_NULL) + { + LOG_E("create FAL block device failed"); + return; + } + +#ifdef BSP_USING_FLASH_FS_AUTO_MOUNT + result = dfs_mount(GD25Q64E_FILESYSTEM_PART_NAME, + "/flash", "elm", 0, RT_NULL); + if (result == RT_EOK) + { + LOG_I("QSPI flash mounted at /flash"); + } + else + { + LOG_W("QSPI flash mount failed: %d; format with: mkfs -t elm %s", + rt_get_errno(), GD25Q64E_FILESYSTEM_PART_NAME); + LOG_W("then mount with: mount %s /flash elm", + GD25Q64E_FILESYSTEM_PART_NAME); + } +#endif +} +#endif /* BSP_USING_FLASH_FATFS */ + +#ifdef BSP_USING_FS_AUTO_MOUNT +static void sdcard_mount(void) +{ + rt_device_t device = rt_device_find("sd0"); + int result; + + if (device == RT_NULL) + { + LOG_W("SD card device not found"); + return; + } + + if (rt_device_init(device) != RT_EOK) + { + LOG_W("SD card not detected, skip mounting"); + return; + } + + result = dfs_mount("sd0", "/sd", "elm", 0, RT_NULL); + if (result == RT_EOK) + { + LOG_I("SD card mounted at /sd"); + } + else + { + LOG_E("SD card mount failed: %d", rt_get_errno()); + } +} +#endif + +static int filesystem_mount(void) +{ + if (dfs_mount(RT_NULL, "/", "rom", 0, &romfs_root) != RT_EOK) + { + LOG_E("ROM filesystem mount failed"); + return -RT_ERROR; + } + +#ifdef BSP_USING_FLASH_FATFS + qspi_flash_mount(); +#endif + +#ifdef BSP_USING_FS_AUTO_MOUNT + rt_thread_mdelay(500); + sdcard_mount(); +#endif + + return RT_EOK; +} +INIT_ENV_EXPORT(filesystem_mount); diff --git a/bsp/gd32/arm/libraries/gd32_drivers/config/sdio_config.h b/bsp/gd32/arm/libraries/gd32_drivers/config/sdio_config.h new file mode 100644 index 00000000000..23782ed0361 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/config/sdio_config.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __SDIO_CONFIG_H__ +#define __SDIO_CONFIG_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef BSP_SDIO_CLK_PIN +#define BSP_SDIO_CLK_PIN "PD6" +#endif +#ifndef BSP_SDIO_CLK_AFIO +#define BSP_SDIO_CLK_AFIO "AF11" +#endif + +#ifndef BSP_SDIO_CMD_PIN +#define BSP_SDIO_CMD_PIN "PD7" +#endif +#ifndef BSP_SDIO_CMD_AFIO +#define BSP_SDIO_CMD_AFIO "AF11" +#endif + +#ifndef BSP_SDIO_D0_PIN +#define BSP_SDIO_D0_PIN "PF4" +#endif +#ifndef BSP_SDIO_D0_AFIO +#define BSP_SDIO_D0_AFIO "AF10" +#endif + +#ifndef BSP_SDIO_D1_PIN +#define BSP_SDIO_D1_PIN "PG10" +#endif +#ifndef BSP_SDIO_D1_AFIO +#define BSP_SDIO_D1_AFIO "AF11" +#endif + +#ifndef BSP_SDIO_D2_PIN +#define BSP_SDIO_D2_PIN "PG11" +#endif +#ifndef BSP_SDIO_D2_AFIO +#define BSP_SDIO_D2_AFIO "AF10" +#endif + +#ifndef BSP_SDIO_D3_PIN +#define BSP_SDIO_D3_PIN "PG12" +#endif +#ifndef BSP_SDIO_D3_AFIO +#define BSP_SDIO_D3_AFIO "AF10" +#endif + +#ifdef BSP_SDIO_USING_CARD_DETECT +#ifndef BSP_SDIO_CD_PIN +#define BSP_SDIO_CD_PIN "PE10" +#endif +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __SDIO_CONFIG_H__ */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.c index 813c0b6a4ad..c90f7a217f5 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.c @@ -6,6 +6,7 @@ * Change Logs: * Date Author Notes * 2022-07-20 jiezhi320 the first version + * 2026-09-01 CYFS add card-detect support and fix the GD32H77x SDIO clock */ #include #include @@ -13,6 +14,10 @@ #ifdef RT_USING_SDIO #include "drv_sdio.h" +#ifdef GD32_SDIO_USING_H77X +#include "drv_gpio.h" +#include "sdio_config.h" +#endif //#define DRV_DEBUG @@ -87,10 +92,34 @@ #define SD_MAX_DATA_LENGTH ((uint32_t)0x01FFFFFF) /* the maximum length of data */ #define SD_ALLZERO ((uint32_t)0x00000000) /* all zero */ #define SD_RCA_SHIFT ((uint8_t)0x10) /* RCA shift bits */ +#ifdef GD32_SDIO_USING_H77X +#define SD_CLK_DIV_INIT ((uint16_t)500U) /* 300 MHz / (2 * 500) = 300 kHz */ +#define SD_CLK_DIV_TRANS ((uint16_t)8U) /* 300 MHz / (2 * 8) = 18.75 MHz */ +#define SDIO_POLLING_TIMEOUT ((uint32_t)4000000U) +#define SDIO_MASK_INTC_FLAGS ((uint32_t)0x1FE00FFF) +#define SDIO_MASK_CMD_FLAGS ((uint32_t)0x002000C5) +#define SDIO_MASK_DATA_FLAGS ((uint32_t)0x18000F3A) +#define SDIO_READ_SINGLE_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | \ + SDIO_FLAG_DTBLKEND | SDIO_FLAG_DTEND) +#define SDIO_READ_MULTI_FLAGS SDIO_READ_SINGLE_FLAGS +#define SDIO_WRITE_SINGLE_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_TXURE | \ + SDIO_FLAG_DTBLKEND | SDIO_FLAG_DTEND) +#define SDIO_WRITE_MULTI_FLAGS SDIO_WRITE_SINGLE_FLAGS +#else #define SD_CLK_DIV_INIT ((uint16_t)0x0076) /* SD clock division in initialization phase */ #define SD_CLK_DIV_TRANS ((uint16_t)0x0002) /* SD clock division in transmission phase */ - #define SDIO_MASK_INTC_FLAGS ((uint32_t)0x00C007FF) /* mask flags of SDIO_INTC */ +#define SDIO_MASK_CMD_FLAGS SDIO_MASK_INTC_FLAGS +#define SDIO_MASK_DATA_FLAGS SDIO_MASK_INTC_FLAGS +#define SDIO_READ_SINGLE_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | \ + SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE) +#define SDIO_READ_MULTI_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | \ + SDIO_FLAG_DTEND | SDIO_FLAG_STBITE) +#define SDIO_WRITE_SINGLE_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_TXURE | \ + SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE) +#define SDIO_WRITE_MULTI_FLAGS (SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_TXURE | \ + SDIO_FLAG_DTEND | SDIO_FLAG_STBITE) +#endif typedef struct{ uint32_t sd_scr[2] ; /* content of SCR register */ @@ -121,7 +150,7 @@ static sdcard_opration_t card_opration = { }; /* set sector size to 512 */ -#define SECTOR_SIZE 512 +#define SD_SECTOR_SIZE 512 typedef struct { @@ -145,13 +174,17 @@ static sd_error_enum r1_error_check(uint8_t cmdindex); /* check if error type for R1 response */ static sd_error_enum r1_error_type_check(uint32_t resp); /* check if error occurs for R2 response */ -static sd_error_enum r2_error_check(void); +static sd_error_enum r2_error_check(uint8_t cmdindex); /* check if error occurs for R3 response */ static sd_error_enum r3_error_check(void); /* check if error occurs for R6 response */ static sd_error_enum r6_error_check(uint8_t cmdindex, uint16_t *prca); /* check if error occurs for R7 response */ static sd_error_enum r7_error_check(void); +#ifdef GD32_SDIO_USING_H77X +static void sdio_command_error_log(uint8_t cmdindex, const char *reason, uint32_t status); +static void sdio_data_timeout_log(const char *operation); +#endif /* get the state which the card is in */ static sd_error_enum sd_card_state_get(uint8_t *pcardstate); @@ -163,13 +196,23 @@ static sd_error_enum sd_scr_get(uint16_t rca, uint32_t *pscr); static uint32_t sd_datablocksize_get(uint16_t bytesnumber); /* configure the GPIO of SDIO interface */ -static void gpio_config(void); +static rt_err_t gpio_config(void); +#ifdef GD32_SDIO_USING_H77X +static int sdio_gpio_level_get(const char *pin_name); +static void sdio_gpio_levels_log(void); +#ifdef BSP_SDIO_USING_CARD_DETECT +static rt_err_t sdio_card_detect_config(void); +static rt_bool_t sdio_card_is_present(void); +#endif +#endif /* configure the RCU of SDIO and DMA */ -static void rcu_config(void); +static rt_err_t rcu_config(void); +#ifndef GD32_SDIO_USING_H77X /* configure the DMA for SDIO transfer request */ static void dma_transfer_config(uint32_t *srcbuf, uint32_t bufsize); /* configure the DMA for SDIO reveive request */ static void dma_receive_config(uint32_t *dstbuf, uint32_t bufsize); +#endif static void nvic_config(void); static sd_error_enum sd_config(void); @@ -181,23 +224,23 @@ static void sdio_dma_irq_config(void); /* RT-Thread Device Driver Interface */ static rt_err_t rt_sdcard_init(rt_device_t dev) { - rt_err_t ret = RT_EOK; sd_error_enum sd_error = SD_OK; uint16_t retry = 5; - ret = rt_mutex_init(&sd.sd_lock, "sd_lock", RT_IPC_FLAG_FIFO); - - if (RT_EOK != ret) { - LOG_E("init mutex failed\n"); - return ret; +#ifdef BSP_SDIO_USING_CARD_DETECT + if(RT_EOK != sdio_card_detect_config()){ + return -RT_EINVAL; } - ret = rt_sem_init(&sd.sem, "sd_sem", 0, RT_IPC_FLAG_FIFO); - - if (RT_EOK != ret) { - LOG_E("init semaphore failed\n"); - return ret; + rt_thread_mdelay(5U); + if(!sdio_card_is_present()){ + LOG_W("No SD card detected: CD %s=%d", BSP_SDIO_CD_PIN, + sdio_gpio_level_get(BSP_SDIO_CD_PIN)); + return -RT_EIO; } + LOG_I("SD card detected: CD %s=%d", BSP_SDIO_CD_PIN, + sdio_gpio_level_get(BSP_SDIO_CD_PIN)); +#endif nvic_irq_enable(sd.irqn, 0, 0); @@ -207,17 +250,16 @@ static rt_err_t rt_sdcard_init(rt_device_t dev) } while((SD_OK != sd_error) && (--retry)); if (retry) { - LOG_I("\r\n Card init success!\r\n"); + LOG_I("Card init success"); } else { - LOG_E("\r\n Card init failed!\r\n"); - ret = -RT_EIO; - return ret; + LOG_W("Card init failed: %d", sd_error); + return -RT_EIO; } card_info_get(); - return ret; + return RT_EOK; } @@ -231,7 +273,11 @@ static rt_err_t rt_sdcard_close(rt_device_t dev) return RT_EOK; } -static uint32_t dma_buffer[SECTOR_SIZE/sizeof(uint32_t)]; +static uint32_t dma_buffer[SD_SECTOR_SIZE/sizeof(uint32_t)]; +#ifdef GD32_SDIO_USING_H77X +static rt_bool_t first_block_read = RT_TRUE; +static rt_bool_t first_block_write = RT_TRUE; +#endif static rt_ssize_t rt_sdcard_read(rt_device_t dev, rt_off_t pos, void* buffer, rt_size_t size) { RT_ASSERT(dev != RT_NULL); @@ -240,10 +286,16 @@ static rt_ssize_t rt_sdcard_read(rt_device_t dev, rt_off_t pos, void* buffer, rt uint32_t status; gd32_sdio_t *sd = (gd32_sdio_t *)dev->user_data; - if (!buffer) { + if (!buffer || !size) { return 0; } +#ifdef GD32_SDIO_USING_H77X + if(first_block_read){ + LOG_D("first block read: sector=%u count=%u", (uint32_t)pos, (uint32_t)size); + } +#endif + rt_mutex_take(&sd->sd_lock, RT_WAITING_FOREVER); if(((uint32_t)buffer & 0x03) != 0) @@ -251,31 +303,37 @@ static rt_ssize_t rt_sdcard_read(rt_device_t dev, rt_off_t pos, void* buffer, rt /* non-aligned. */ uint32_t i; uint32_t sector_adr; - uint32_t* copy_buffer; + uint8_t *copy_buffer; - sector_adr = pos*SECTOR_SIZE; - copy_buffer = (uint32_t*)buffer; + sector_adr = pos*SD_SECTOR_SIZE; + copy_buffer = (uint8_t *)buffer; for(i=0; isd_lock); if (sd_error == SD_OK){ +#ifdef GD32_SDIO_USING_H77X + if(first_block_read){ + LOG_D("first block read ok"); + first_block_read = RT_FALSE; + } +#endif return size; } else { @@ -294,31 +352,41 @@ static rt_ssize_t rt_sdcard_write (rt_device_t dev, rt_off_t pos, const void* bu uint32_t status; gd32_sdio_t *sd = (gd32_sdio_t *)dev->user_data; + if (!buffer || !size) { + return 0; + } + +#ifdef GD32_SDIO_USING_H77X + if(first_block_write){ + LOG_D("first block write: sector=%u count=%u", (uint32_t)pos, (uint32_t)size); + } +#endif + rt_mutex_take(&sd->sd_lock, RT_WAITING_FOREVER); if (((uint32_t)buffer & 0x03) != 0) { /* non-aligned. */ uint32_t i; rt_size_t sector_adr; - uint32_t* copy_buffer; + const uint8_t *copy_buffer; - sector_adr = pos*SECTOR_SIZE; - copy_buffer = (uint32_t*)buffer; + sector_adr = pos*SD_SECTOR_SIZE; + copy_buffer = (const uint8_t *)buffer; for (i=0; i 0) { - sd_error = sd_block_write((uint32_t*)dma_buffer, sector_adr, SECTOR_SIZE); + sd_error = sd_block_write((uint32_t*)dma_buffer, sector_adr, SD_SECTOR_SIZE); retry--; if (sd_error == SD_OK) { break; } } - sector_adr += SECTOR_SIZE; - copy_buffer += SECTOR_SIZE; + sector_adr += SD_SECTOR_SIZE; + copy_buffer += SD_SECTOR_SIZE; } } else { @@ -326,7 +394,7 @@ static rt_ssize_t rt_sdcard_write (rt_device_t dev, rt_off_t pos, const void* bu if (size == 1) { while (retry > 0) { - sd_error = sd_block_write((uint32_t*)buffer, pos*SECTOR_SIZE, SECTOR_SIZE); + sd_error = sd_block_write((uint32_t*)buffer, pos*SD_SECTOR_SIZE, SD_SECTOR_SIZE); retry--; if (sd_error == SD_OK) { break; @@ -335,7 +403,7 @@ static rt_ssize_t rt_sdcard_write (rt_device_t dev, rt_off_t pos, const void* bu } else { while (retry > 0) { - sd_error = sd_multiblocks_write((uint32_t*)buffer, pos*SECTOR_SIZE, SECTOR_SIZE, size); + sd_error = sd_multiblocks_write((uint32_t*)buffer, pos*SD_SECTOR_SIZE, SD_SECTOR_SIZE, size); retry--; if (sd_error == SD_OK) { break; @@ -350,6 +418,12 @@ static rt_ssize_t rt_sdcard_write (rt_device_t dev, rt_off_t pos, const void* bu LOG_D("sdio e:%d r:%d\n", sd_error, retry); } if (sd_error == SD_OK) { +#ifdef GD32_SDIO_USING_H77X + if(first_block_write){ + LOG_D("first block write ok"); + first_block_write = RT_FALSE; + } +#endif return size; } else { @@ -384,6 +458,8 @@ static rt_err_t rt_sdcard_control(rt_device_t dev, int cmd, void *args) int rt_hw_sdcard_init(void) { + rt_err_t ret; + /* register sdcard device */ sd.sdcard_device.type = RT_Device_Class_Block; sd.sdcard_device.init = rt_sdcard_init; @@ -394,9 +470,32 @@ int rt_hw_sdcard_init(void) sd.sdcard_device.control = rt_sdcard_control; sd.sdcard_device.user_data = &sd; - rt_device_register(&sd.sdcard_device, sd.device_name, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE | RT_DEVICE_FLAG_STANDALONE); + ret = rt_mutex_init(&sd.sd_lock, "sd_lock", RT_IPC_FLAG_FIFO); + if (ret != RT_EOK) + { + LOG_E("init mutex failed"); + return ret; + } - return RT_EOK; + ret = rt_sem_init(&sd.sem, "sd_sem", 0, RT_IPC_FLAG_FIFO); + if (ret != RT_EOK) + { + LOG_E("init semaphore failed"); + rt_mutex_detach(&sd.sd_lock); + return ret; + } + + ret = rt_device_register(&sd.sdcard_device, sd.device_name, + RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_REMOVABLE | + RT_DEVICE_FLAG_STANDALONE); + if (ret != RT_EOK) + { + LOG_E("register device failed"); + rt_sem_detach(&sd.sem); + rt_mutex_detach(&sd.sd_lock); + } + + return ret; } INIT_DEVICE_EXPORT(rt_hw_sdcard_init); @@ -415,15 +514,43 @@ sd_error_enum sd_config(void) /* initialize the card */ status = sd_init(); - if(SD_OK == status){ - status = sd_card_information_get(&sd.sd_cardinfo); + if(SD_OK != status){ + LOG_W("SD initialization stage failed: %d", status); + return status; } - if(SD_OK == status){ - status = sd_card_select_deselect(sd.sd_cardinfo.card_rca); +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_init ok"); +#endif + + status = sd_card_information_get(&sd.sd_cardinfo); + if(SD_OK != status){ + LOG_W("SD card information stage failed: %d", status); + return status; } +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_card_information_get ok"); +#endif + + status = sd_card_select_deselect(sd.sd_cardinfo.card_rca); + if(SD_OK != status){ + LOG_W("SD card selection stage failed: %d", status); + return status; + } +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_card_select_deselect ok"); +#endif + status = sd_cardstatus_get(&cardstate); + if(SD_OK != status){ + LOG_W("SD card status stage failed: %d", status); + return status; + } +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_cardstatus_get ok"); +#endif + if(cardstate & 0x02000000){ - LOG_D("\r\n The card is locked!"); + LOG_E("The card is locked"); #if 0 /* unlock the card if necessary */ status = sd_lock_unlock(SD_UNLOCK); @@ -435,21 +562,29 @@ sd_error_enum sd_config(void) LOG_W("\r\n The card is unlocked! Please reset MCU!"); } #endif - while (1){ - } + return SD_LOCK_UNLOCK_FAILED; } - if ((SD_OK == status) && (!(cardstate & 0x02000000))) - { - /* set bus mode */ - status = sd_bus_mode_config(SDIO_BUSMODE_4BIT); -// status = sd_bus_mode_config( SDIO_BUSMODE_1BIT ); + + /* set bus mode */ + status = sd_bus_mode_config(SDIO_BUSMODE_4BIT); + if(SD_OK != status){ + LOG_W("SD 4-bit bus configuration failed: %d", status); + return status; } - if (SD_OK == status) - { - /* set data transfer mode */ - status = sd_transfer_mode_config(SD_DMA_MODE); - //status = sd_transfer_mode_config(SD_POLLING_MODE); +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_bus_mode_config ok"); +#endif + + /* set data transfer mode */ +#ifdef GD32_SDIO_USING_H77X + status = sd_transfer_mode_config(SD_POLLING_MODE); +#else + status = sd_transfer_mode_config(SD_DMA_MODE); +#endif + if(SD_OK != status){ + LOG_W("SD transfer mode configuration failed: %d", status); } + return status; } @@ -488,16 +623,16 @@ void card_info_get(void) sd_security = (card_opration.sd_scr[1] & 0x00700000) >> 20; if(2 == sd_security){ - LOG_I("\r\n## SDSC card ##"); + LOG_D("\r\n## SDSC card ##"); }else if(3 == sd_security){ - LOG_I("\r\n## SDHC card ##"); + LOG_D("\r\n## SDHC card ##"); }else if(4 == sd_security){ - LOG_I("\r\n## SDXC card ##"); + LOG_D("\r\n## SDXC card ##"); } block_count = (sd.sd_cardinfo.card_csd.c_size + 1)*1024; block_size = 512; - LOG_I("\r\n## Device size is %dKB ##", sd_card_capacity_get()); + LOG_I("Device size: %d KB", sd_card_capacity_get()); LOG_D("\r\n## Block size is %dB - %dB ##", block_size, sd.sd_cardinfo.card_blocksize); LOG_D("\r\n## Block count is %d ##", block_count); @@ -557,26 +692,44 @@ sd_error_enum sd_init(void) sd_error_enum status = SD_OK; /* configure the RCU and GPIO, deinitialize the SDIO */ - rcu_config(); - gpio_config(); + if(RT_EOK != rcu_config()){ + return SD_OPERATION_IMPROPER; + } + if (RT_EOK != gpio_config()) { + return SD_PARAMETER_INVALID; + } sdio_deinit(); /* configure the clock and work voltage */ status = sd_power_on(); if(SD_OK != status){ + LOG_W("SD power-on sequence failed: %d", status); return status; } +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_power_on ok"); +#endif /* initialize the card and get CID and CSD of the card */ status = sd_card_init(); if(SD_OK != status){ + LOG_W("SD card identification failed: %d", status); return status; } +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_card_init ok"); +#endif /* configure the SDIO peripheral */ +#ifdef GD32_SDIO_USING_H77X + sdio_clock_config(SDIO_SDIOCLKEDGE_RISING, SDIO_CLOCKBYPASS_DISABLE, SDIO_CLOCKPWRSAVE_DISABLE, SD_CLK_DIV_INIT); + sdio_bus_mode_set(SDIO_BUSMODE_1BIT); + sdio_hardware_clock_disable(); +#else sdio_clock_config(SDIO_SDIOCLKEDGE_RISING, SDIO_CLOCKBYPASS_DISABLE, SDIO_CLOCKPWRSAVE_DISABLE, SD_CLK_DIV_TRANS); sdio_bus_mode_set(SDIO_BUSMODE_1BIT); sdio_hardware_clock_enable();//sdio_hardware_clock_disable(); +#endif return status; } @@ -604,7 +757,7 @@ sd_error_enum sd_card_init(void) sdio_wait_type_set(SDIO_WAITTYPE_NO); sdio_csm_enable(); /* check if some error occurs */ - status = r2_error_check(); + status = r2_error_check(SD_CMD_ALL_SEND_CID); if(SD_OK != status){ return status; } @@ -639,7 +792,7 @@ sd_error_enum sd_card_init(void) sdio_wait_type_set(SDIO_WAITTYPE_NO); sdio_csm_enable(); /* check if some error occurs */ - status = r2_error_check(); + status = r2_error_check(SD_CMD_SEND_CSD); if(SD_OK != status){ return status; } @@ -668,13 +821,24 @@ sd_error_enum sd_power_on(void) /* configure the SDIO peripheral */ sdio_clock_config(SDIO_SDIOCLKEDGE_RISING, SDIO_CLOCKBYPASS_DISABLE, SDIO_CLOCKPWRSAVE_DISABLE, SD_CLK_DIV_INIT); sdio_bus_mode_set(SDIO_BUSMODE_1BIT); +#ifdef GD32_SDIO_USING_H77X + sdio_hardware_clock_disable(); +#else sdio_hardware_clock_enable();//sdio_hardware_clock_disable(); +#endif sdio_power_state_set(SDIO_POWER_ON); /* enable SDIO_CLK clock output */ sdio_clock_enable(); +#ifdef GD32_SDIO_USING_H77X + /* Provide more than the required 74 initialization clocks at 200 kHz. */ + rt_thread_mdelay(1U); + sdio_gpio_levels_log(); +#endif + /* send CMD0(GO_IDLE_STATE) to reset the card */ sdio_command_response_config(SD_CMD_GO_IDLE_STATE, (uint32_t)0x0, SDIO_RESPONSETYPE_NO); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); sdio_wait_type_set(SDIO_WAITTYPE_NO); /* enable the CSM */ sdio_csm_enable(); @@ -682,61 +846,60 @@ sd_error_enum sd_power_on(void) /* check if command sent error occurs */ status = cmdsent_error_check(); if(SD_OK != status){ + LOG_W("CMD0 failed: %d", status); return status; } /* send CMD8(SEND_IF_COND) to get SD memory card interface condition */ sdio_command_response_config(SD_CMD_SEND_IF_COND, SD_CHECK_PATTERN, SDIO_RESPONSETYPE_SHORT); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); sdio_wait_type_set(SDIO_WAITTYPE_NO); sdio_csm_enable(); - if(SD_OK == r7_error_check()){ + status = r7_error_check(); + if(SD_OK == status){ /* SD Card 2.0 */ card_opration.cardtype = SDIO_STD_CAPACITY_SD_CARD_V2_0; sdcardtype = SD_HIGH_CAPACITY; + }else{ + LOG_D("CMD8 failed: %d", status); } - /* send CMD55(APP_CMD) to indicate next command is application specific command */ - sdio_command_response_config(SD_CMD_APP_CMD, (uint32_t)0x0, SDIO_RESPONSETYPE_SHORT); - sdio_wait_type_set(SDIO_WAITTYPE_NO); - sdio_csm_enable(); - - if(SD_OK == r1_error_check(SD_CMD_APP_CMD)){ - /* SD memory card */ - while((!busyflag) && (count < SD_MAX_VOLT_VALIDATION)){ - /* send CMD55(APP_CMD) to indicate next command is application specific command */ - sdio_command_response_config(SD_CMD_APP_CMD, (uint32_t)0x0, SDIO_RESPONSETYPE_SHORT); - sdio_wait_type_set(SDIO_WAITTYPE_NO); - sdio_csm_enable(); - /* check if some error occurs */ - status = r1_error_check(SD_CMD_APP_CMD); - if(SD_OK != status){ - return status; - } - - /* send ACMD41(SD_SEND_OP_COND) to get host capacity support information (HCS) and OCR content */ - sdio_command_response_config(SD_APPCMD_SD_SEND_OP_COND, (SD_VOLTAGE_WINDOW | sdcardtype), SDIO_RESPONSETYPE_SHORT); - sdio_wait_type_set(SDIO_WAITTYPE_NO); - sdio_csm_enable(); - /* check if some error occurs */ - status = r3_error_check(); - if(SD_OK != status){ - return status; - } - /* get the response and check card power up status bit(busy) */ - response = sdio_response_get(SDIO_RESPONSE0); - busyflag = (uint8_t)((response >> 31)&(uint32_t)0x01); - ++count; - } - if(count >= SD_MAX_VOLT_VALIDATION){ - status = SD_VOLTRANGE_INVALID; + /* SD memory card power-up sequence: CMD55 must be followed by ACMD41. */ + while((!busyflag) && (count < SD_MAX_VOLT_VALIDATION)){ + sdio_command_response_config(SD_CMD_APP_CMD, (uint32_t)0x0, SDIO_RESPONSETYPE_SHORT); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); + sdio_wait_type_set(SDIO_WAITTYPE_NO); + sdio_csm_enable(); + status = r1_error_check(SD_CMD_APP_CMD); + if(SD_OK != status){ + LOG_W("CMD55 failed at attempt %u: %d", count + 1U, status); return status; } - if(response &= SD_HIGH_CAPACITY){ - /* SDHC card */ - card_opration.cardtype = SDIO_HIGH_CAPACITY_SD_CARD; + + sdio_command_response_config(SD_APPCMD_SD_SEND_OP_COND, (SD_VOLTAGE_WINDOW | sdcardtype), SDIO_RESPONSETYPE_SHORT); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); + sdio_wait_type_set(SDIO_WAITTYPE_NO); + sdio_csm_enable(); + status = r3_error_check(); + if(SD_OK != status){ + LOG_W("ACMD41 failed at attempt %u: %d", count + 1U, status); + return status; } + + response = sdio_response_get(SDIO_RESPONSE0); + busyflag = (uint8_t)((response >> 31)&(uint32_t)0x01); + ++count; + } + if(count >= SD_MAX_VOLT_VALIDATION){ + LOG_D("ACMD41 voltage validation timed out"); + return SD_VOLTRANGE_INVALID; } + if(response & SD_HIGH_CAPACITY){ + /* SDHC card */ + card_opration.cardtype = SDIO_HIGH_CAPACITY_SD_CARD; + } + return status; } @@ -885,7 +1048,10 @@ sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t b /* configure SDIO data transmisson */ sdio_data_config(SD_DATATIMEOUT, card_opration.totalnumber_bytes, datablksize); sdio_data_transfer_config(SDIO_TRANSDIRECTION_TOSDIO, SDIO_TRANSMODE_BLOCK); +#ifndef GD32_SDIO_USING_H77X sdio_dsm_enable(); +#endif + sdio_transfer_start_enable(); /* send CMD17(READ_SINGLE_BLOCK) to read a block */ sdio_command_response_config(SD_CMD_READ_SINGLE_BLOCK, (uint32_t)readaddr, SDIO_RESPONSETYPE_SHORT); @@ -894,12 +1060,16 @@ sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t b /* check if some error occurs */ status = r1_error_check(SD_CMD_READ_SINGLE_BLOCK); if(SD_OK != status){ + sdio_transfer_start_disable(); return status; } if(SD_POLLING_MODE == card_opration.transmode){ /* polling mode */ - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){ +#ifdef GD32_SDIO_USING_H77X + timeout = SDIO_POLLING_TIMEOUT; +#endif + while(!sdio_flag_get(SDIO_READ_SINGLE_FLAGS)){ if(RESET != sdio_flag_get(SDIO_FLAG_RFH)){ /* at least 8 words can be read in the FIFO */ for(count = 0; count < SD_FIFOHALF_WORDS; count++){ @@ -907,7 +1077,16 @@ sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t b } ptempbuff += SD_FIFOHALF_WORDS; } +#ifdef GD32_SDIO_USING_H77X + if(0U == --timeout){ + sdio_data_timeout_log("block read timeout"); + sdio_transfer_start_disable(); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); + return SD_DATA_TIMEOUT; + } +#endif } + sdio_transfer_start_disable(); /* whether some error occurs and return it */ if(RESET != sdio_flag_get(SDIO_FLAG_DTCRCERR)){ @@ -927,12 +1106,13 @@ sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t b sdio_flag_clear(SDIO_FLAG_STBITE); return status; } - while(RESET != sdio_flag_get(SDIO_FLAG_RXDTVAL)){ + while(SDIO_FIFO_DATA_AVAILABLE()){ *ptempbuff = sdio_data_read(); ++ptempbuff; } /* clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); +#ifndef GD32_SDIO_USING_H77X }else if(SD_DMA_MODE == card_opration.transmode){ /* DMA mode */ /* enable the SDIO corresponding interrupts and DMA function */ @@ -953,6 +1133,7 @@ sd_error_enum sd_block_read(uint32_t *preadbuffer, uint32_t readaddr, uint16_t b } } #endif +#endif /* GD32_SDIO_USING_H77X */ }else{ status = SD_PARAMETER_INVALID; } @@ -1032,7 +1213,10 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint /* configure the SDIO data transmisson */ sdio_data_config(SD_DATATIMEOUT, card_opration.totalnumber_bytes, datablksize); sdio_data_transfer_config(SDIO_TRANSDIRECTION_TOSDIO, SDIO_TRANSMODE_BLOCK); +#ifndef GD32_SDIO_USING_H77X sdio_dsm_enable(); +#endif + sdio_transfer_start_enable(); /* send CMD18(READ_MULTIPLE_BLOCK) to read multiple blocks */ sdio_command_response_config(SD_CMD_READ_MULTIPLE_BLOCK, readaddr, SDIO_RESPONSETYPE_SHORT); @@ -1041,12 +1225,16 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint /* check if some error occurs */ status = r1_error_check(SD_CMD_READ_MULTIPLE_BLOCK); if(SD_OK != status){ + sdio_transfer_start_disable(); return status; } if(SD_POLLING_MODE == card_opration.transmode){ /* polling mode */ - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTEND | SDIO_FLAG_STBITE)){ +#ifdef GD32_SDIO_USING_H77X + timeout = SDIO_POLLING_TIMEOUT; +#endif + while(!sdio_flag_get(SDIO_READ_MULTI_FLAGS)){ if(RESET != sdio_flag_get(SDIO_FLAG_RFH)){ /* at least 8 words can be read in the FIFO */ for(count = 0; count < SD_FIFOHALF_WORDS; count++){ @@ -1054,6 +1242,14 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint } ptempbuff += SD_FIFOHALF_WORDS; } +#ifdef GD32_SDIO_USING_H77X + if(0U == --timeout){ + sdio_data_timeout_log("multi-block read timeout"); + sdio_transfer_start_disable(); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); + return SD_DATA_TIMEOUT; + } +#endif } /* whether some error occurs and return it */ @@ -1074,10 +1270,11 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint sdio_flag_clear(SDIO_FLAG_STBITE); return status; } - while(RESET != sdio_flag_get(SDIO_FLAG_RXDTVAL)){ + while(SDIO_FIFO_DATA_AVAILABLE()){ *ptempbuff = sdio_data_read(); ++ptempbuff; } + sdio_transfer_start_disable(); if(RESET != sdio_flag_get(SDIO_FLAG_DTEND)){ if((SDIO_STD_CAPACITY_SD_CARD_V1_1 == card_opration.cardtype) || (SDIO_STD_CAPACITY_SD_CARD_V2_0 == card_opration.cardtype) || @@ -1093,7 +1290,8 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint } } } - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); +#ifndef GD32_SDIO_USING_H77X }else if(SD_DMA_MODE == card_opration.transmode){ /* DMA mode */ /* enable the SDIO corresponding interrupts and DMA function */ @@ -1119,6 +1317,7 @@ sd_error_enum sd_multiblocks_read(uint32_t *preadbuffer, uint32_t readaddr, uint if(SD_OK != card_opration.transerror){ return card_opration.transerror; } +#endif /* GD32_SDIO_USING_H77X */ }else{ status = SD_PARAMETER_INVALID; } @@ -1219,6 +1418,7 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ return SD_ERROR; } +#ifndef GD32_SDIO_USING_H77X /* send CMD24(WRITE_BLOCK) to write a block */ sdio_command_response_config(SD_CMD_WRITE_BLOCK, writeaddr, SDIO_RESPONSETYPE_SHORT); sdio_wait_type_set(SDIO_WAITTYPE_NO); @@ -1228,6 +1428,7 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ if(SD_OK != status){ return status; } +#endif card_opration.stopcondition = 0; card_opration.totalnumber_bytes = blocksize; @@ -1235,11 +1436,29 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ /* configure the SDIO data transmisson */ sdio_data_config(SD_DATATIMEOUT, card_opration.totalnumber_bytes, datablksize); sdio_data_transfer_config(SDIO_TRANSDIRECTION_TOCARD, SDIO_TRANSMODE_BLOCK); +#ifndef GD32_SDIO_USING_H77X sdio_dsm_enable(); +#endif + sdio_transfer_start_enable(); + +#ifdef GD32_SDIO_USING_H77X + /* H77x requires the data path to be ready before issuing a write command. */ + sdio_command_response_config(SD_CMD_WRITE_BLOCK, writeaddr, SDIO_RESPONSETYPE_SHORT); + sdio_wait_type_set(SDIO_WAITTYPE_NO); + sdio_csm_enable(); + status = r1_error_check(SD_CMD_WRITE_BLOCK); + if(SD_OK != status){ + sdio_transfer_start_disable(); + return status; + } +#endif if(SD_POLLING_MODE == card_opration.transmode){ /* polling mode */ - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_TXURE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){ +#ifdef GD32_SDIO_USING_H77X + timeout = SDIO_POLLING_TIMEOUT; +#endif + while(!sdio_flag_get(SDIO_WRITE_SINGLE_FLAGS)){ if(RESET != sdio_flag_get(SDIO_FLAG_TFH)){ /* at least 8 words can be written into the FIFO */ if((card_opration.totalnumber_bytes - transbytes) < SD_FIFOHALF_BYTES){ @@ -1258,7 +1477,16 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ transbytes += SD_FIFOHALF_BYTES; } } +#ifdef GD32_SDIO_USING_H77X + if(0U == --timeout){ + sdio_data_timeout_log("block write timeout"); + sdio_transfer_start_disable(); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); + return SD_DATA_TIMEOUT; + } +#endif } + sdio_transfer_start_disable(); /* whether some error occurs and return it */ if(RESET != sdio_flag_get(SDIO_FLAG_DTCRCERR)){ @@ -1278,6 +1506,7 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ sdio_flag_clear(SDIO_FLAG_STBITE); return status; } +#ifndef GD32_SDIO_USING_H77X }else if(SD_DMA_MODE == card_opration.transmode){ /* DMA mode */ /* enable the SDIO corresponding interrupts and DMA */ @@ -1304,13 +1533,14 @@ sd_error_enum sd_block_write(uint32_t *pwritebuffer, uint32_t writeaddr, uint16_ if (SD_OK != card_opration.transerror){ return card_opration.transerror; } +#endif /* GD32_SDIO_USING_H77X */ }else{ status = SD_PARAMETER_INVALID; return status; } /* clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); /* get the card state and wait the card is out of programming and receiving state */ status = sd_card_state_get(&cardstate); while((SD_OK == status) && ((SD_CARDSTATE_PROGRAMMING == cardstate) || (SD_CARDSTATE_RECEIVING == cardstate))){ @@ -1422,6 +1652,7 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u return status; } } +#ifndef GD32_SDIO_USING_H77X /* send CMD25(WRITE_MULTIPLE_BLOCK) to continuously write blocks of data */ sdio_command_response_config(SD_CMD_WRITE_MULTIPLE_BLOCK, writeaddr, SDIO_RESPONSETYPE_SHORT); sdio_wait_type_set(SDIO_WAITTYPE_NO); @@ -1431,6 +1662,7 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u if(SD_OK != status){ return status; } +#endif card_opration.stopcondition = 1; card_opration.totalnumber_bytes = blocksnumber * blocksize; @@ -1438,11 +1670,29 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u /* configure the SDIO data transmisson */ sdio_data_config(SD_DATATIMEOUT, card_opration.totalnumber_bytes, datablksize); sdio_data_transfer_config(SDIO_TRANSDIRECTION_TOCARD, SDIO_TRANSMODE_BLOCK); +#ifndef GD32_SDIO_USING_H77X sdio_dsm_enable(); +#endif + sdio_transfer_start_enable(); + +#ifdef GD32_SDIO_USING_H77X + /* H77x requires the data path to be ready before issuing a write command. */ + sdio_command_response_config(SD_CMD_WRITE_MULTIPLE_BLOCK, writeaddr, SDIO_RESPONSETYPE_SHORT); + sdio_wait_type_set(SDIO_WAITTYPE_NO); + sdio_csm_enable(); + status = r1_error_check(SD_CMD_WRITE_MULTIPLE_BLOCK); + if(SD_OK != status){ + sdio_transfer_start_disable(); + return status; + } +#endif if(SD_POLLING_MODE == card_opration.transmode){ /* polling mode */ - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_TXURE | SDIO_FLAG_DTEND | SDIO_FLAG_STBITE)){ +#ifdef GD32_SDIO_USING_H77X + timeout = SDIO_POLLING_TIMEOUT; +#endif + while(!sdio_flag_get(SDIO_WRITE_MULTI_FLAGS)){ if(RESET != sdio_flag_get(SDIO_FLAG_TFH)){ /* at least 8 words can be written into the FIFO */ if(!((card_opration.totalnumber_bytes - transbytes) < SD_FIFOHALF_BYTES)){ @@ -1461,7 +1711,16 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u } } } +#ifdef GD32_SDIO_USING_H77X + if(0U == --timeout){ + sdio_data_timeout_log("multi-block write timeout"); + sdio_transfer_start_disable(); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); + return SD_DATA_TIMEOUT; + } +#endif } + sdio_transfer_start_disable(); /* whether some error occurs and return it */ if(RESET != sdio_flag_get(SDIO_FLAG_DTCRCERR)){ @@ -1496,7 +1755,8 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u } } } - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); +#ifndef GD32_SDIO_USING_H77X }else if(SD_DMA_MODE == card_opration.transmode){ /* DMA mode */ /* enable SDIO corresponding interrupts and DMA */ @@ -1523,6 +1783,7 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u if(SD_OK != card_opration.transerror){ return card_opration.transerror; } +#endif /* GD32_SDIO_USING_H77X */ }else{ status = SD_PARAMETER_INVALID; return status; @@ -1530,7 +1791,7 @@ sd_error_enum sd_multiblocks_write(uint32_t *pwritebuffer, uint32_t writeaddr, u } /* clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); /* get the card state and wait the card is out of programming and receiving state */ status = sd_card_state_get(&cardstate); while((SD_OK == status) && ((SD_CARDSTATE_PROGRAMMING == cardstate) || (SD_CARDSTATE_RECEIVING == cardstate))){ @@ -1565,9 +1826,7 @@ sd_error_enum sd_erase(uint32_t startaddr, uint32_t endaddr) status = SD_FUNCTION_UNSUPPORTED; return status; } - clkdiv = (SDIO_CLKCTL & SDIO_CLKCTL_DIV); - clkdiv += ((SDIO_CLKCTL & SDIO_CLKCTL_DIV8)>>31)*256; - clkdiv += 2; + clkdiv = SDIO_CLOCK_DIVISION_GET(); delay = 168000 / clkdiv; /* check whether the card is locked */ @@ -1802,7 +2061,7 @@ sd_error_enum sd_sdstatus_get(uint32_t *psdstatus) return status; } - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){ + while(!sdio_flag_get(SDIO_READ_SINGLE_FLAGS)){ if(RESET != sdio_flag_get(SDIO_FLAG_RFH)){ for(count = 0; count < SD_FIFOHALF_WORDS; count++){ *(psdstatus + count) = sdio_data_read(); @@ -1829,13 +2088,13 @@ sd_error_enum sd_sdstatus_get(uint32_t *psdstatus) sdio_flag_clear(SDIO_FLAG_STBITE); return status; } - while(RESET != sdio_flag_get(SDIO_FLAG_RXDTVAL)){ + while(SDIO_FIFO_DATA_AVAILABLE()){ *psdstatus = sdio_data_read(); ++psdstatus; } /* clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); psdstatus -= 16; for(count = 0; count < 16; count++){ psdstatus[count] = ((psdstatus[count] & SD_MASK_0_7BITS) << 24) |((psdstatus[count] & SD_MASK_8_15BITS) << 8) | @@ -1979,7 +2238,7 @@ sd_error_enum sd_lock_unlock(uint8_t lockstate) } /* clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); /* get the card state and wait the card is out of programming and receiving state */ status = sd_card_state_get(&cardstate); while((SD_OK == status) && ((SD_CARDSTATE_PROGRAMMING == cardstate) || (SD_CARDSTATE_RECEIVING == cardstate))){ @@ -2257,6 +2516,30 @@ sd_error_enum sd_card_information_get(sd_card_info_struct *pcardinfo) \param[out] none \retval sd_error_enum */ +#ifdef GD32_SDIO_USING_H77X +static void sdio_command_error_log(uint8_t cmdindex, const char *reason, uint32_t status) +{ + if(SD_CMD_SEND_IF_COND == cmdindex){ + LOG_D("CMD%u %s: STAT=0x%08x CMDCTL=0x%08x ARG=0x%08x RSPIDX=%u RESP0=0x%08x CLKCTL=0x%08x PWRCTL=0x%08x", + cmdindex, reason, status, SDIO_CMDCTL(SDIO_PERIPH), SDIO_CMDAGMT(SDIO_PERIPH), + SDIO_RSPCMDIDX(SDIO_PERIPH), SDIO_RESP0(SDIO_PERIPH), SDIO_CLKCTL(SDIO_PERIPH), + SDIO_PWRCTL(SDIO_PERIPH)); + }else{ + LOG_W("CMD%u %s: STAT=0x%08x CMDCTL=0x%08x ARG=0x%08x RSPIDX=%u RESP0=0x%08x CLKCTL=0x%08x PWRCTL=0x%08x", + cmdindex, reason, status, SDIO_CMDCTL(SDIO_PERIPH), SDIO_CMDAGMT(SDIO_PERIPH), + SDIO_RSPCMDIDX(SDIO_PERIPH), SDIO_RESP0(SDIO_PERIPH), SDIO_CLKCTL(SDIO_PERIPH), + SDIO_PWRCTL(SDIO_PERIPH)); + } +} + +static void sdio_data_timeout_log(const char *operation) +{ + LOG_E("%s: STAT=0x%08x DATACTL=0x%08x DATACNT=%u CMDCTL=0x%08x ARG=0x%08x", + operation, SDIO_STATUS_REG, SDIO_DATACTL(SDIO_PERIPH), + SDIO_DATACNT(SDIO_PERIPH), SDIO_CMDCTL(SDIO_PERIPH), SDIO_CMDAGMT(SDIO_PERIPH)); +} +#endif + static sd_error_enum cmdsent_error_check(void) { sd_error_enum status = SD_OK; @@ -2271,7 +2554,7 @@ static sd_error_enum cmdsent_error_check(void) return status; } /* if the command is sent, clear the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); return status; } @@ -2335,9 +2618,9 @@ static sd_error_enum r1_error_check(uint8_t cmdindex) uint32_t reg_status = 0, resp_r1 = 0; /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV))){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; } /* check whether an error or timeout occurs or command response received */ if(reg_status & SDIO_FLAG_CCRCERR){ @@ -2346,6 +2629,9 @@ static sd_error_enum r1_error_check(uint8_t cmdindex) return status; }else if(reg_status & SDIO_FLAG_CMDTMOUT){ status = SD_CMD_RESP_TIMEOUT; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(cmdindex, "response timeout", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CMDTMOUT); return status; } @@ -2356,7 +2642,7 @@ static sd_error_enum r1_error_check(uint8_t cmdindex) return status; } /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); /* get the SDIO response register 0 for checking */ resp_r1 = sdio_response_get(SDIO_RESPONSE0); if(SD_ALLZERO == (resp_r1 & SD_R1_ERROR_BITS)){ @@ -2372,32 +2658,38 @@ static sd_error_enum r1_error_check(uint8_t cmdindex) /*! \brief check if error occurs for R2 response - \param[in] none + \param[in] cmdindex: the index of command \param[out] none \retval sd_error_enum */ -static sd_error_enum r2_error_check(void) +static sd_error_enum r2_error_check(uint8_t cmdindex) { sd_error_enum status = SD_OK; uint32_t reg_status = 0; /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV))){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; } /* check whether an error or timeout occurs or command response received */ if(reg_status & SDIO_FLAG_CCRCERR){ status = SD_CMD_CRC_ERROR; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(cmdindex, "response CRC error", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CCRCERR); return status; }else if(reg_status & SDIO_FLAG_CMDTMOUT){ status = SD_CMD_RESP_TIMEOUT; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(cmdindex, "response timeout", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CMDTMOUT); return status; } /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); return status; } @@ -2413,17 +2705,20 @@ static sd_error_enum r3_error_check(void) uint32_t reg_status = 0; /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV))){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; } if(reg_status & SDIO_FLAG_CMDTMOUT){ status = SD_CMD_RESP_TIMEOUT; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(SD_APPCMD_SD_SEND_OP_COND, "response timeout", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CMDTMOUT); return status; } /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); return status; } @@ -2439,17 +2734,23 @@ static sd_error_enum r6_error_check(uint8_t cmdindex, uint16_t *prca) uint32_t reg_status = 0, response = 0; /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV))){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; } /* check whether an error or timeout occurs or command response received */ if(reg_status & SDIO_FLAG_CCRCERR){ status = SD_CMD_CRC_ERROR; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(cmdindex, "response CRC error", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CCRCERR); return status; }else if(reg_status & SDIO_FLAG_CMDTMOUT){ status = SD_CMD_RESP_TIMEOUT; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(cmdindex, "response timeout", reg_status); +#endif sdio_flag_clear(SDIO_FLAG_CMDTMOUT); return status; } @@ -2460,7 +2761,7 @@ static sd_error_enum r6_error_check(uint8_t cmdindex, uint16_t *prca) return status; } /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); /* get the SDIO response register 0 for checking */ response = sdio_response_get(SDIO_RESPONSE0); @@ -2491,21 +2792,34 @@ static sd_error_enum r7_error_check(void) uint32_t reg_status = 0, timeout = 400000; /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV)) && (timeout > 0)){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; --timeout; } /* check the flags */ if((reg_status & SDIO_FLAG_CMDTMOUT) || (0 == timeout)){ status = SD_CMD_RESP_TIMEOUT; - sdio_flag_clear(SDIO_FLAG_CMDTMOUT); +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(SD_CMD_SEND_IF_COND, + (reg_status & SDIO_FLAG_CMDTMOUT) ? "response timeout" : "software wait timeout", + reg_status); +#endif + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); + return status; + } + if(reg_status & SDIO_FLAG_CCRCERR){ + status = SD_CMD_CRC_ERROR; +#ifdef GD32_SDIO_USING_H77X + sdio_command_error_log(SD_CMD_SEND_IF_COND, "response CRC error", reg_status); +#endif + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); return status; } if(reg_status & SDIO_FLAG_CMDRECV){ status = SD_OK; - sdio_flag_clear(SDIO_FLAG_CMDRECV); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); return status; } return status; @@ -2538,9 +2852,9 @@ static sd_error_enum sd_card_state_get(uint8_t *pcardstate) sdio_csm_enable(); /* store the content of SDIO_STAT */ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; while(!(reg_status & (SDIO_FLAG_CCRCERR | SDIO_FLAG_CMDTMOUT | SDIO_FLAG_CMDRECV))){ - reg_status = SDIO_STAT; + reg_status = SDIO_STATUS_REG; } /* check whether an error or timeout occurs or command response received */ if(reg_status & SDIO_FLAG_CCRCERR){ @@ -2560,7 +2874,7 @@ static sd_error_enum sd_card_state_get(uint8_t *pcardstate) return status; } /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_CMD_FLAGS); /* get the SDIO response register 0 for checking */ response = sdio_response_get(SDIO_RESPONSE0); *pcardstate = (uint8_t)((response >> 9) & 0x0000000F); @@ -2664,6 +2978,9 @@ static sd_error_enum sd_scr_get(uint16_t rca, uint32_t *pscr) { sd_error_enum status = SD_OK; uint32_t temp_scr[2] = {0, 0}, idx_scr = 0; +#ifdef GD32_SDIO_USING_H77X + LOG_D("sd_scr_get start"); +#endif /* send CMD16(SET_BLOCKLEN) to set block length */ sdio_command_response_config(SD_CMD_SET_BLOCKLEN, (uint32_t)8, SDIO_RESPONSETYPE_SHORT); sdio_wait_type_set(SDIO_WAITTYPE_NO); @@ -2686,7 +3003,7 @@ static sd_error_enum sd_scr_get(uint16_t rca, uint32_t *pscr) /* configure SDIO data */ sdio_data_config(SD_DATATIMEOUT, (uint32_t)8, SDIO_DATABLOCKSIZE_8BYTES); - sdio_data_transfer_config(SDIO_TRANSMODE_BLOCK, SDIO_TRANSDIRECTION_TOSDIO); + sdio_data_transfer_config(SDIO_TRANSDIRECTION_TOSDIO, SDIO_TRANSMODE_BLOCK); sdio_dsm_enable(); /* send ACMD51(SEND_SCR) to read the SD configuration register */ @@ -2700,10 +3017,13 @@ static sd_error_enum sd_scr_get(uint16_t rca, uint32_t *pscr) } /* store the received SCR */ - while(!sdio_flag_get(SDIO_FLAG_DTCRCERR | SDIO_FLAG_DTTMOUT | SDIO_FLAG_RXORE | SDIO_FLAG_DTBLKEND | SDIO_FLAG_STBITE)){ - if(RESET != sdio_flag_get(SDIO_FLAG_RXDTVAL)){ - *(temp_scr + idx_scr) = sdio_data_read(); - ++idx_scr; + while(!sdio_flag_get(SDIO_READ_SINGLE_FLAGS)){ + if(SDIO_FIFO_DATA_AVAILABLE()){ + if(idx_scr < 2U){ + temp_scr[idx_scr++] = sdio_data_read(); + }else{ + (void)sdio_data_read(); + } } } @@ -2726,8 +3046,17 @@ static sd_error_enum sd_scr_get(uint16_t rca, uint32_t *pscr) return status; } + if(2U != idx_scr){ +#ifdef GD32_SDIO_USING_H77X + LOG_E("SCR length error: words=%u STAT=0x%08x DATACNT=%u", idx_scr, + SDIO_STATUS_REG, SDIO_DATACNT(SDIO_PERIPH)); +#endif + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); + return SD_ERROR; + } + /* clear all the SDIO_INTC flags */ - sdio_flag_clear(SDIO_MASK_INTC_FLAGS); + sdio_flag_clear(SDIO_MASK_DATA_FLAGS); /* readjust the temp SCR value */ *(pscr) = ((temp_scr[1] & SD_MASK_0_7BITS) << 24) | ((temp_scr[1] & SD_MASK_8_15BITS) << 8) | ((temp_scr[1] & SD_MASK_16_23BITS) >> 8) | ((temp_scr[1] & SD_MASK_24_31BITS) >> 24); @@ -2768,14 +3097,98 @@ static uint32_t sd_datablocksize_get(uint16_t bytesnumber) return DATACTL_BLKSZ(exp_val); } +#ifdef GD32_SDIO_USING_H77X +static int sdio_gpio_level_get(const char *pin_name) +{ + uint32_t port, pin; + rcu_periph_enum gpio_clock; + + if(RT_EOK != get_pin_config(pin_name, &port, &pin, &gpio_clock)){ + return -1; + } + + return (SET == gpio_input_bit_get(port, pin)) ? 1 : 0; +} + +static void sdio_gpio_levels_log(void) +{ + LOG_D("SDIO levels before CMD0: CLK=%d CMD=%d D0=%d D1=%d D2=%d D3=%d", + sdio_gpio_level_get(BSP_SDIO_CLK_PIN), sdio_gpio_level_get(BSP_SDIO_CMD_PIN), + sdio_gpio_level_get(BSP_SDIO_D0_PIN), sdio_gpio_level_get(BSP_SDIO_D1_PIN), + sdio_gpio_level_get(BSP_SDIO_D2_PIN), sdio_gpio_level_get(BSP_SDIO_D3_PIN)); +} + +#ifdef BSP_SDIO_USING_CARD_DETECT +static rt_err_t sdio_card_detect_config(void) +{ + uint32_t port, pin; + rcu_periph_enum gpio_clock; + + if(RT_EOK != get_pin_config(BSP_SDIO_CD_PIN, &port, &pin, &gpio_clock)){ + LOG_E("invalid SD card detect pin: %s", BSP_SDIO_CD_PIN); + return -RT_ERROR; + } + + rcu_periph_clock_enable(gpio_clock); +#ifdef BSP_SDIO_CD_ACTIVE_LOW + gpio_mode_set(port, GPIO_MODE_INPUT, GPIO_PUPD_PULLUP, pin); +#else + gpio_mode_set(port, GPIO_MODE_INPUT, GPIO_PUPD_PULLDOWN, pin); +#endif + + return RT_EOK; +} + +static rt_bool_t sdio_card_is_present(void) +{ + int level = sdio_gpio_level_get(BSP_SDIO_CD_PIN); + +#ifdef BSP_SDIO_CD_ACTIVE_LOW + return (0 == level) ? RT_TRUE : RT_FALSE; +#else + return (1 == level) ? RT_TRUE : RT_FALSE; +#endif +} +#endif + +static rt_err_t sdio_gpio_configure(const char *pin_name, const char *af_name, uint32_t pull_up_down) +{ + uint32_t port, pin, alternate; + rcu_periph_enum gpio_clock; + + if ((RT_EOK != get_pin_config(pin_name, &port, &pin, &gpio_clock)) || + (RT_EOK != pin_alternate_config(af_name, &alternate))) { + LOG_E("invalid SDIO pin configuration: %s/%s", pin_name, af_name); + return -RT_ERROR; + } + + rcu_periph_clock_enable(gpio_clock); + gpio_af_set(port, alternate, pin); + gpio_mode_set(port, GPIO_MODE_AF, pull_up_down, pin); + gpio_output_options_set(port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, pin); + + return RT_EOK; +} +#endif + /*! \brief configure the GPIO of SDIO interface \param[in] none \param[out] none - \retval none + \retval RT_EOK on success, otherwise -RT_ERROR */ -static void gpio_config(void) +static rt_err_t gpio_config(void) { +#ifdef GD32_SDIO_USING_H77X + if ((RT_EOK != sdio_gpio_configure(BSP_SDIO_CLK_PIN, BSP_SDIO_CLK_AFIO, GPIO_PUPD_NONE)) || + (RT_EOK != sdio_gpio_configure(BSP_SDIO_CMD_PIN, BSP_SDIO_CMD_AFIO, GPIO_PUPD_PULLUP)) || + (RT_EOK != sdio_gpio_configure(BSP_SDIO_D0_PIN, BSP_SDIO_D0_AFIO, GPIO_PUPD_PULLUP)) || + (RT_EOK != sdio_gpio_configure(BSP_SDIO_D1_PIN, BSP_SDIO_D1_AFIO, GPIO_PUPD_PULLUP)) || + (RT_EOK != sdio_gpio_configure(BSP_SDIO_D2_PIN, BSP_SDIO_D2_AFIO, GPIO_PUPD_PULLUP)) || + (RT_EOK != sdio_gpio_configure(BSP_SDIO_D3_PIN, BSP_SDIO_D3_AFIO, GPIO_PUPD_PULLUP))) { + return -RT_ERROR; + } +#else /* configure the SDIO_DAT0(PC8), SDIO_DAT1(PC9), SDIO_DAT2(PC10), SDIO_DAT3(PC11), SDIO_CLK(PC12) and SDIO_CMD(PD2) */ gpio_af_set(SDIO_CLK_PORT, GPIO_AF_12, SDIO_CLK_PIN); gpio_af_set(SDIO_CMD_PORT, GPIO_AF_12, SDIO_CMD_PIN); @@ -2801,16 +3214,40 @@ static void gpio_config(void) gpio_mode_set(SDIO_D3_PORT, GPIO_MODE_AF, GPIO_PUPD_PULLUP, SDIO_D3_PIN); gpio_output_options_set(SDIO_D3_PORT, GPIO_OTYPE_PP, GPIO_OSPEED_25MHZ, SDIO_D3_PIN); +#endif + + return RT_EOK; } /*! \brief configure the RCU of SDIO and DMA \param[in] none \param[out] none - \retval none + \retval RT_EOK on success, otherwise error code */ -static void rcu_config(void) +static rt_err_t rcu_config(void) { +#ifdef GD32_SDIO_USING_H77X + static rt_bool_t clock_logged = RT_FALSE; + uint32_t sdio_clock; + + rcu_sdio_clock_config(SDIO_CLOCK_INDEX, SDIO_CLOCK_SOURCE); + rcu_periph_clock_enable(SDIO_PERI_CLOCK); + sdio_clock = rcu_clock_freq_get(SDIO_CLOCK_FREQUENCY); + if(0U == sdio_clock){ + LOG_E("SDIO kernel clock is unavailable"); + return -RT_ERROR; + } + + if(!clock_logged){ +#ifdef BSP_SDIO_USING_SDIO1 + LOG_I("SDIO1 PLL0Q clock: %u Hz", sdio_clock); +#else + LOG_I("SDIO0 PLL0Q clock: %u Hz", sdio_clock); +#endif + clock_logged = RT_TRUE; + } +#else rcu_periph_clock_enable(SDIO_GPIO_CLK); rcu_periph_clock_enable(SDIO_GPIO_CMD); rcu_periph_clock_enable(SDIO_GPIO_D0); @@ -2820,8 +3257,12 @@ static void rcu_config(void) rcu_periph_clock_enable(SDIO_PERI_CLOCK); rcu_periph_clock_enable(SDIO_DMA_CLOCK); +#endif + + return RT_EOK; } +#ifndef GD32_SDIO_USING_H77X /*! \brief configure the DMA1 channel 3 for transferring data \param[in] srcbuf: a pointer point to a buffer which will be transferred @@ -2923,5 +3364,6 @@ void SDIO_DMA_IRQ_HANDLER(void) rt_interrupt_leave(); } #endif /* SDIO_DMA_USE_IPC */ +#endif /* GD32_SDIO_USING_H77X */ #endif /* RT_USING_SDIO */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.h index 6a54a9c3a62..836c78b3386 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_sdio.h @@ -25,9 +25,76 @@ #elif defined SOC_SERIES_GD32F4xx #include "gd32f4xx_sdio.h" #include "gd32f4xx_dma.h" +#elif defined SOC_SERIES_GD32H77x_H78X +#include "gd32h77x_78x_sdio.h" +#define GD32_SDIO_USING_H77X #endif +#ifdef GD32_SDIO_USING_H77X +#ifdef BSP_SDIO_USING_SDIO1 +#define SDIO_PERIPH SDIO1 +#define SDIO_PERI_CLOCK RCU_SDIO1 +#define SDIO_CLOCK_INDEX IDX_SDIO1 +#define SDIO_CLOCK_SOURCE RCU_SDIO1SRC_PLL0Q +#define SDIO_IRQn SDIO1_IRQn +#define SDIO_IRQHandler SDIO1_IRQHandler +#else +#define SDIO_PERIPH SDIO0 +#define SDIO_PERI_CLOCK RCU_SDIO0 +#define SDIO_CLOCK_INDEX IDX_SDIO0 +#define SDIO_CLOCK_SOURCE RCU_SDIO0SRC_PLL0Q +#define SDIO_IRQn SDIO0_IRQn +#define SDIO_IRQHandler SDIO0_IRQHandler +#endif + +#define SDIO_CLOCK_FREQUENCY CK_PLL0Q + +#define SDIO_CLOCKBYPASS_DISABLE ((uint32_t)0U) +#define SDIO_TRANSMODE_BLOCK SDIO_TRANSMODE_BLOCKCOUNT +/* H77x DATSTA is bit 12; the generic H7 header has CMDSTA and DATSTA reversed. */ +#define SDIO_FLAG_RXRUN BIT(12) +#define SDIO_FLAG_TXRUN BIT(12) +#define SDIO_FLAG_STBITE ((uint32_t)0U) +#define SDIO_INT_STBITE ((uint32_t)0U) + +#define SDIO_STATUS_REG SDIO_STAT(SDIO_PERIPH) +#define SDIO_CLOCK_CONTROL_REG SDIO_CLKCTL(SDIO_PERIPH) +#define SDIO_CLOCK_DIVISION_GET() ((SDIO_CLOCK_CONTROL_REG & SDIO_CLKCTL_DIV) * 2U) +#define SDIO_FIFO_DATA_AVAILABLE() ((RESET == sdio_flag_get(SDIO_FLAG_RFE)) && \ + (SET == sdio_flag_get(SDIO_FLAG_DATSTA))) + +#define sdio_deinit() sdio_deinit(SDIO_PERIPH) +#define sdio_clock_config(edge, bypass, powersave, division) sdio_clock_config(SDIO_PERIPH, edge, powersave, division) +#define sdio_hardware_clock_enable() sdio_hardware_clock_enable(SDIO_PERIPH) +#define sdio_hardware_clock_disable() sdio_hardware_clock_disable(SDIO_PERIPH) +#define sdio_bus_mode_set(mode) sdio_bus_mode_set(SDIO_PERIPH, mode) +#define sdio_power_state_set(state) sdio_power_state_set(SDIO_PERIPH, state) +#define sdio_power_state_get() sdio_power_state_get(SDIO_PERIPH) +#define sdio_command_response_config(index, argument, response) sdio_command_response_config(SDIO_PERIPH, index, argument, response) +#define sdio_wait_type_set(type) sdio_wait_type_set(SDIO_PERIPH, type) +#define sdio_csm_enable() sdio_csm_enable(SDIO_PERIPH) +#define sdio_response_get(response) sdio_response_get(SDIO_PERIPH, response) +#define sdio_command_index_get() sdio_command_index_get(SDIO_PERIPH) +#define sdio_data_config(timeout, length, blocksize) sdio_data_config(SDIO_PERIPH, timeout, length, blocksize) +#define sdio_data_transfer_config(direction, mode) sdio_data_transfer_config(SDIO_PERIPH, mode, direction) +#define sdio_dsm_enable() sdio_dsm_enable(SDIO_PERIPH) +#define sdio_dsm_disable() sdio_dsm_disable(SDIO_PERIPH) +#define sdio_transfer_start_enable() sdio_trans_start_enable(SDIO_PERIPH) +#define sdio_transfer_start_disable() sdio_trans_start_disable(SDIO_PERIPH) +#define sdio_data_read() sdio_data_read(SDIO_PERIPH) +#define sdio_data_write(data) sdio_data_write(SDIO_PERIPH, data) +#define sdio_flag_get(flag) sdio_flag_get(SDIO_PERIPH, flag) +#define sdio_flag_clear(flag) sdio_flag_clear(SDIO_PERIPH, flag) +#define sdio_interrupt_enable(flag) sdio_interrupt_enable(SDIO_PERIPH, flag) +#define sdio_interrupt_disable(flag) sdio_interrupt_disable(SDIO_PERIPH, flag) +#define sdio_interrupt_flag_get(flag) sdio_interrupt_flag_get(SDIO_PERIPH, flag) +#define sdio_interrupt_flag_clear(flag) sdio_interrupt_flag_clear(SDIO_PERIPH, flag) +#define sdio_clock_enable() do { } while (0) +#define sdio_dma_enable() do { } while (0) +#define sdio_dma_disable() do { } while (0) +#else #define SDIO_PERI_CLOCK RCU_SDIO + #define SDIO_GPIO_CLK RCU_GPIOC #define SDIO_GPIO_CMD RCU_GPIOD #define SDIO_GPIO_D0 RCU_GPIOC @@ -54,6 +121,15 @@ #define SDIO_DMA_IRQ DMA1_Channel3_IRQn #define SDIO_DMA_IRQ_HANDLER DMA1_Channel3_IRQHandler +#define SDIO_STATUS_REG SDIO_STAT +#define SDIO_CLOCK_CONTROL_REG SDIO_CLKCTL +#define SDIO_CLOCK_DIVISION_GET() ((SDIO_CLOCK_CONTROL_REG & SDIO_CLKCTL_DIV) + \ + (((SDIO_CLOCK_CONTROL_REG & SDIO_CLKCTL_DIV8) >> 31) * 256U) + 2U) +#define SDIO_FIFO_DATA_AVAILABLE() (RESET != sdio_flag_get(SDIO_FLAG_RXDTVAL)) +#define sdio_transfer_start_enable() do { } while (0) +#define sdio_transfer_start_disable() do { } while (0) +#endif + /* SD memory card bus commands index */ #define SD_CMD_GO_IDLE_STATE ((uint8_t)0) /* CMD0, GO_IDLE_STATE */ From 7a5e1b1bbe9b5ec1648d545beeedeb4168f7b0b7 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:17 +0800 Subject: [PATCH 09/19] [bsp][gd32] Add GD32H77D RTC and alarm support Add timed oscillator startup, retained calendar state and synchronized alarm writes. Make the one-shot alarm example independently selectable. Verified three-second Alarm0 and Alarm1 triggers on GinoPi. Keep RTC disabled by default. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 7 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/rtc_alarm_example.c | 192 ++++++++++++++ bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c | 246 +++++++++++------- 4 files changed, 354 insertions(+), 94 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/rtc_alarm_example.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index b93b25bd029..ac3a902a903 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -31,4 +31,11 @@ menu "Applications" help Register pwm_dual_test to control the two PWM outputs. + config BSP_USING_RTC_ALARM_EXAMPLE + bool "Enable RTC alarm example command" + depends on BSP_USING_ALARM && RT_USING_FINSH + default n + help + Register rtc_alarm to configure and inspect a one-shot alarm. + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index 1f9f37bda9e..bea0059d5d3 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -12,6 +12,9 @@ if GetDepend('BSP_USING_FILESYSTEM_TEST'): if GetDepend('BSP_USING_PWM_DUAL_TEST'): src += ['pwm_dual_test.c'] +if GetDepend('BSP_USING_RTC_ALARM_EXAMPLE'): + src += ['rtc_alarm_example.c'] + group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/rtc_alarm_example.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/rtc_alarm_example.c new file mode 100644 index 00000000000..ca03d2311bb --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/rtc_alarm_example.c @@ -0,0 +1,192 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-08 CYFS add a one-shot RTC alarm command with ulog output + */ + +#include +#include +#include +#include +#include +#include + +#define DBG_TAG "rtc.alarm" +#define DBG_LVL DBG_INFO +#include + +#ifdef BSP_USING_RTC_ALARM_EXAMPLE +#include + +#define RTC_ALARM_DEFAULT_SECONDS 5UL +#define RTC_ALARM_MAX_SECONDS 86400UL + +static rt_alarm_t demo_alarm; +static time_t demo_deadline; + +static void alarm_log_time(const char *state, time_t timestamp) +{ + struct tm local; + + if (localtime_r(×tamp, &local) == RT_NULL) + { + LOG_E("Cannot convert alarm time"); + return; + } + + LOG_I("%s: %04d-%02d-%02d %02d:%02d:%02d (local time)", state, + local.tm_year + 1900, local.tm_mon + 1, local.tm_mday, + local.tm_hour, local.tm_min, local.tm_sec); +} + +static void alarm_callback(rt_alarm_t alarm, time_t timestamp) +{ + /* The Alarm service owns the list during callbacks; keep the object alive. */ + RT_UNUSED(alarm); + alarm_log_time("Triggered", timestamp); +} + +static rt_err_t alarm_remove(void) +{ + rt_err_t result = RT_EOK; + + if (demo_alarm != RT_NULL) + { + result = rt_alarm_delete(demo_alarm); + demo_alarm = RT_NULL; + } + + return result; +} + +static void alarm_usage(void) +{ + LOG_I("rtc_alarm [seconds] - one-shot alarm, 1..86400 seconds, default 5"); + LOG_I("rtc_alarm status - show the example alarm"); + LOG_I("rtc_alarm stop - cancel and delete the example alarm"); +} + +static int rtc_alarm(int argc, char **argv) +{ + struct rt_alarm_setup setup = {0}; + struct timeval now; + time_t deadline; + rt_int64_t deadline_seconds; + unsigned long seconds = RTC_ALARM_DEFAULT_SECONDS; + char *end; + rt_err_t result; + + if (argc > 2) + { + alarm_usage(); + return -RT_EINVAL; + } + + if (argc == 2) + { + if (rt_strcmp(argv[1], "help") == 0) + { + alarm_usage(); + return RT_EOK; + } + if (rt_strcmp(argv[1], "status") == 0) + { + if (demo_alarm == RT_NULL) + { + LOG_I("No example alarm"); + } + else + { + rt_base_t level = rt_hw_interrupt_disable(); + rt_bool_t armed = (demo_alarm->flag & RT_ALARM_STATE_START) != 0; + rt_hw_interrupt_enable(level); + alarm_log_time(armed ? "Armed" : "Expired", demo_deadline); + } + return RT_EOK; + } + if (rt_strcmp(argv[1], "stop") == 0) + { + result = alarm_remove(); + if (result != RT_EOK) + { + LOG_E("Cannot disable hardware alarm: %d", result); + return result; + } + LOG_I("Example alarm stopped"); + return RT_EOK; + } + + errno = 0; + seconds = strtoul(argv[1], &end, 10); + if ((errno == ERANGE) || (end == argv[1]) || (*end != '\0') || + (argv[1][0] < '0') || (argv[1][0] > '9') || + (seconds == 0UL) || (seconds > RTC_ALARM_MAX_SECONDS)) + { + LOG_E("Invalid delay: use 1..86400 seconds"); + return -RT_EINVAL; + } + } + + /* gettimeofday opens and initializes the RTC before the Alarm API uses it. */ + if (gettimeofday(&now, RT_NULL) != 0) + { + LOG_E("Cannot read RTC; check the drv.rtc log"); + return -RT_ERROR; + } + + deadline_seconds = (rt_int64_t)now.tv_sec + seconds; + deadline = (time_t)deadline_seconds; + if ((rt_int64_t)deadline != deadline_seconds) + { + LOG_E("Alarm deadline exceeds the time_t range"); + return -RT_EINVAL; + } + setup.flag = RT_ALARM_ONESHOT; +#ifdef RT_ALARM_USING_LOCAL_TIME + if (localtime_r(&deadline, &setup.wktime) == RT_NULL) +#else + if (gmtime_r(&deadline, &setup.wktime) == RT_NULL) +#endif + { + LOG_E("Cannot convert alarm deadline"); + return -RT_EINVAL; + } + if ((setup.wktime.tm_year < 100) || (setup.wktime.tm_year > 199)) + { + LOG_E("Alarm date must be between 2000 and 2099"); + return -RT_EINVAL; + } + + result = alarm_remove(); + if (result != RT_EOK) + { + LOG_E("Cannot replace the previous alarm: %d", result); + return result; + } + + demo_alarm = rt_alarm_create(alarm_callback, &setup); + if (demo_alarm == RT_NULL) + { + LOG_E("Cannot allocate alarm"); + return -RT_ENOMEM; + } + + demo_deadline = deadline; + result = rt_alarm_start(demo_alarm); + if (result != RT_EOK) + { + alarm_remove(); + LOG_E("Cannot start alarm: %d", result); + return result; + } + + LOG_I("One-shot alarm in %lu seconds", seconds); + alarm_log_time("Armed", deadline); + return RT_EOK; +} +MSH_CMD_EXPORT(rtc_alarm, set a one-shot RTC alarm or use status/stop/help); +#endif diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c index fee92af39ac..226b0616098 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_rtc.c @@ -8,6 +8,7 @@ * 2022-01-25 iysheng first version * 2025-09-25 kurisaw adapt to rt_rtc_ops interface * 2025-09-25 kurisaw add alarm interrupt support + * 2026-09-08 CYFS fix RTC startup, backup state, and alarm synchronization */ #include @@ -29,16 +30,18 @@ #error "Please Enable RTC alarm define (BSP_USING_ALARM0 | BSP_USING_ALARM1)" #elif defined(BSP_USING_ALARM0) #define BSP_ALARM_FLAG RTC_FLAG_ALARM0 + #define BSP_ALARM_WRITE_FLAG RTC_FLAG_ALARM0W #define BSP_RTC_ALARM RTC_ALARM0 #define BSP_RTC_INT_ALARM RTC_INT_ALARM0 #elif defined(BSP_USING_ALARM1) #define BSP_ALARM_FLAG RTC_FLAG_ALARM1 + #define BSP_ALARM_WRITE_FLAG RTC_FLAG_ALARM1W #define BSP_RTC_ALARM RTC_ALARM1 #define BSP_RTC_INT_ALARM RTC_INT_ALARM1 #endif #endif -#if defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32F5xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) || defined(SOC_SERIES_GD32F5xx) #define rtc_year year #define rtc_month month @@ -51,9 +54,44 @@ #endif -static time_t get_rtc_timestamp(void); +#define RTC_LXTAL_TIMEOUT_MS 5000U +#define RTC_STATUS_TIMEOUT_MS 1000U +#define PRESCALER_S 0xFFU +#define PRESCALER_A 0x7FU +/* Reserve RTC_BKP0 to retain initialization state even when the year is 2000. */ +#define RTC_INIT_MARKER 0x52544301U + +static rt_err_t get_rtc_timestamp(time_t *time_stamp); static rt_err_t set_rtc_timestamp(time_t time_stamp); +static rt_err_t gd_rtc_wait_flag(uint32_t flag) +{ + rt_uint32_t remaining_ms = RTC_STATUS_TIMEOUT_MS; + + while (rtc_flag_get(flag) == RESET) + { + if (remaining_ms == 0U) + { + return -RT_ETIMEOUT; + } + rt_hw_us_delay(1000); + remaining_ms--; + } + + return RT_EOK; +} + +static rt_err_t gd_rtc_sync_wait(void) +{ + if (rtc_register_sync_wait() == SUCCESS) + { + return RT_EOK; + } + + /* Keep waiting without clearing RSYNF again if the library loop was too short. */ + return gd_rtc_wait_flag(RTC_FLAG_RSYN); +} + /** * @brief Helper function: Convert BCD value to binary. * @param val: BCD value. @@ -120,84 +158,93 @@ void RTC_Alarm_IRQHandler(void) static rt_err_t gd_rtc_init(void) { + rt_uint32_t remaining_ms = RTC_LXTAL_TIMEOUT_MS; + uint32_t clock_source; + rt_err_t result; + /* Enable PMU and backup domain clocks */ rcu_periph_clock_enable(RCU_PMU); pmu_backup_write_enable(); - /* Enable BKP and RTC clocks */ + /* Enable access to backup registers on devices with a separate BKP clock. */ #ifdef SOC_SERIES_GD32F10x rcu_periph_clock_enable(RCU_BKPI); -#else - rcu_periph_clock_enable(RCU_RTC); #endif - /* Check if RTC is already initialized by backup domain reset */ - if (RTC_STAT & RTC_STAT_INITF) - { - LOG_D("RTC already initialized"); - return RT_EOK; - } - - /* Reset backup domain only if RTC is not running */ - if ((RTC_STAT & RTC_STAT_RSYNF) == 0) + /* A backup reset is needed only when changing an already selected source. */ + clock_source = RCU_BDCTL & RCU_BDCTL_RTCSRC; + if ((clock_source != RCU_RTCSRC_NONE) && (clock_source != RCU_RTCSRC_LXTAL)) { + LOG_W("RTC clock source changed; resetting backup domain"); rcu_bkp_reset_enable(); rcu_bkp_reset_disable(); - - /* Re-enable clocks after reset */ #ifdef SOC_SERIES_GD32F10x rcu_periph_clock_enable(RCU_BKPI); -#else - rcu_periph_clock_enable(RCU_RTC); #endif } - /* Use LSE (32.768kHz) as RTC clock source */ -#define PRESCALER_S 0xFF -#define PRESCALER_A 0x7F - + /* Use a timed wait: a fixed CPU loop can expire before the crystal starts. */ rcu_osci_on(RCU_LXTAL); - if (rcu_osci_stab_wait(RCU_LXTAL) != SUCCESS) + while (rcu_flag_get(RCU_FLAG_LXTALSTB) == RESET) { - LOG_E("LSE oscillator failed to stabilize"); - return -RT_ERROR; + if (remaining_ms == 0U) + { + LOG_E("LXTAL failed to stabilize within %u ms, RCU_BDCTL=0x%08x", + RTC_LXTAL_TIMEOUT_MS, (unsigned int)RCU_BDCTL); + return -RT_ETIMEOUT; + } + rt_hw_us_delay(1000); + remaining_ms--; } rcu_rtc_clock_config(RCU_RTCSRC_LXTAL); + rcu_periph_clock_enable(RCU_RTC); LOG_D("RTC clock source: LSE (32.768kHz)"); + /* Recover an interrupted initialization without erasing the calendar. */ + RTC_WPK = RTC_UNLOCK_KEY1; + RTC_WPK = RTC_UNLOCK_KEY2; + rtc_init_mode_exit(); + RTC_WPK = RTC_LOCK_KEY; + /* Wait for RTC registers synchronization */ - if (rtc_register_sync_wait() != SUCCESS) + result = gd_rtc_sync_wait(); + if (result != RT_EOK) { - LOG_E("RTC register synchronization failed"); - return -RT_ERROR; + LOG_E("RTC register synchronization timed out, RTC_STAT=0x%08x", + (unsigned int)RTC_STAT); + return result; } - /* Set default time if RTC is not initialized */ - if ((RTC_DATE == 0) || (RTC_TIME == 0)) + /* INITF means init mode, and 00:00:00 is a valid time, not an empty RTC. */ + if ((RTC_BKP0 != RTC_INIT_MARKER) && (rtc_flag_get(RTC_FLAG_YCM) == RESET)) { time_t default_time = 1704067200; /* 2024-01-01 00:00:00 */ - if (set_rtc_timestamp(default_time) != RT_EOK) + result = set_rtc_timestamp(default_time); + if (result != RT_EOK) { LOG_E("Failed to set default RTC time"); - return -RT_ERROR; + return result; } LOG_D("RTC set to default time: 2024-01-01 00:00:00"); } + RTC_BKP0 = RTC_INIT_MARKER; LOG_D("RTC initialization successful"); return RT_EOK; } -static time_t get_rtc_timestamp(void) +static rt_err_t get_rtc_timestamp(time_t *time_stamp) { struct tm tm_new = {0}; rtc_parameter_struct rtc_current_time; + rt_err_t result; /* Wait for register synchronization before reading */ - if (rtc_register_sync_wait() != SUCCESS) + result = gd_rtc_sync_wait(); + if (result != RT_EOK) { LOG_E("RTC sync failed before reading time"); - return 0; + return result; } rtc_current_time_get(&rtc_current_time); @@ -219,35 +266,40 @@ static time_t get_rtc_timestamp(void) tm_new.tm_isdst = 0; /* No daylight saving */ /* Use timegm instead of mktime to avoid timezone issues */ - return timegm(&tm_new); + *time_stamp = timegm(&tm_new); + return RT_EOK; } static rt_err_t gd_get_secs(time_t *sec) { + rt_err_t result; + if (sec == RT_NULL) { return -RT_EINVAL; } - *sec = get_rtc_timestamp(); - LOG_D("RTC: get timestamp %lu", *sec); + result = get_rtc_timestamp(sec); + if (result == RT_EOK) + { + LOG_D("RTC: get timestamp %lu", *sec); + } - return RT_EOK; + return result; } static rt_err_t set_rtc_timestamp(time_t time_stamp) { struct tm now; rtc_parameter_struct rtc_init_struct; - ErrStatus status; + rt_err_t result; /* Use gmtime_r for thread safety */ - gmtime_r(&time_stamp, &now); - - if (now.tm_year < 100) + if ((gmtime_r(&time_stamp, &now) == RT_NULL) || + (now.tm_year < 100) || (now.tm_year > 199)) { - LOG_E("Year must be >= 2000"); - return -RT_ERROR; + LOG_E("Year must be between 2000 and 2099"); + return -RT_EINVAL; } /* Convert to BCD format */ @@ -268,19 +320,31 @@ static rt_err_t set_rtc_timestamp(time_t time_stamp) rtc_init_struct.factor_syn = PRESCALER_S; rtc_init_struct.am_pm = RTC_AM; - status = rtc_init(&rtc_init_struct); - if (status != SUCCESS) + /* Enter init mode with a timed wait before the library's fixed-loop check. */ + RTC_WPK = RTC_UNLOCK_KEY1; + RTC_WPK = RTC_UNLOCK_KEY2; + RTC_STAT |= RTC_STAT_INITM; + result = gd_rtc_wait_flag(RTC_FLAG_INIT); + if (result != RT_EOK) { - LOG_E("RTC time set failed: %d", status); - return -RT_ERROR; + rtc_init_mode_exit(); + RTC_WPK = RTC_LOCK_KEY; + LOG_E("RTC init mode timed out, RTC_STAT=0x%08x", (unsigned int)RTC_STAT); + return result; } - /* Wait for synchronization after setting time */ - if (rtc_register_sync_wait() != SUCCESS) + /* INITF is already set; rtc_init() can now fail only on its final sync wait. */ + if (rtc_init(&rtc_init_struct) != SUCCESS) { - LOG_E("RTC sync failed after setting time"); - return -RT_ERROR; + result = gd_rtc_wait_flag(RTC_FLAG_RSYN); + if (result != RT_EOK) + { + LOG_E("RTC sync timed out after setting time, RTC_STAT=0x%08x", + (unsigned int)RTC_STAT); + return result; + } } + RTC_BKP0 = RTC_INIT_MARKER; LOG_D("RTC time set successfully: %lu", time_stamp); return RT_EOK; @@ -336,18 +400,43 @@ static rt_err_t gd_get_alarm(struct rt_rtc_wkalarm *alarm) static rt_err_t gd_set_alarm(struct rt_rtc_wkalarm *alarm) { + rtc_alarm_struct rtc_alarm; + rt_err_t result; + if (alarm == RT_NULL) { return -RT_EINVAL; } - rtc_alarm_struct rtc_alarm; + if (alarm->enable && (((rt_uint32_t)alarm->tm_hour > 23U) || + ((rt_uint32_t)alarm->tm_min > 59U) || ((rt_uint32_t)alarm->tm_sec > 59U))) + { + return -RT_EINVAL; + } + + rtc_interrupt_disable(BSP_RTC_INT_ALARM); + if (rtc_alarm_disable(BSP_RTC_ALARM) != SUCCESS) + { + result = gd_rtc_wait_flag(BSP_ALARM_WRITE_FLAG); + if (result != RT_EOK) + { + LOG_E("RTC alarm registers are not writable: %d", result); + return result; + } + } + rtc_flag_clear(BSP_ALARM_FLAG); + exti_flag_clear(EXTI_17); + + if (!alarm->enable) + { + LOG_D("RTC alarm disabled"); + return RT_EOK; + } - rtc_alarm_disable(BSP_RTC_ALARM); /* Initialize alarm structure */ - rtc_alarm.alarm_mask = RTC_ALARM_ALL_MASK; + rtc_alarm.alarm_mask = RTC_ALARM_DATE_MASK; rtc_alarm.weekday_or_date = RTC_ALARM_DATE_SELECTED; - rtc_alarm.alarm_day = 1; /* Not used when mask is set to ALL_MASK */ + rtc_alarm.alarm_day = 1; /* The RT-Thread Alarm service checks the full date. */ rtc_alarm.alarm_hour = bin_to_bcd(alarm->tm_hour); rtc_alarm.alarm_minute = bin_to_bcd(alarm->tm_min); rtc_alarm.alarm_second = bin_to_bcd(alarm->tm_sec); @@ -355,44 +444,13 @@ static rt_err_t gd_set_alarm(struct rt_rtc_wkalarm *alarm) /* Configure alarm */ rtc_alarm_config(BSP_RTC_ALARM, &rtc_alarm); + rtc_alarm_subsecond_config(BSP_RTC_ALARM, RTC_MSKSSC_0_14, 0); - /* Enable or disable alarm */ - if (alarm->enable) - { - /* Clear any pending alarm flag first */ - rtc_flag_clear(BSP_ALARM_FLAG); - - /* Clear EXTI line 17 flag */ - exti_flag_clear(EXTI_17); - - /* Enable RTC alarm interrupt */ - rtc_interrupt_enable(BSP_RTC_INT_ALARM); - - /* Enable alarm */ - rtc_alarm_enable(BSP_RTC_ALARM); - - /* Configure EXTI line 17 for RTC alarm interrupt */ - exti_init(EXTI_17, EXTI_INTERRUPT, EXTI_TRIG_RISING); - - /* Enable RTC Alarm global interrupt in NVIC */ - nvic_irq_enable(RTC_Alarm_IRQn, 0, 0); - - LOG_D("RTC Alarm enabled with interrupt"); - } - else - { - /* Disable alarm interrupt first */ - rtc_interrupt_disable(BSP_RTC_INT_ALARM); - - /* Disable alarm */ - rtc_alarm_disable(BSP_RTC_ALARM); - - /* Clear alarm flag */ - rtc_flag_clear(BSP_ALARM_FLAG); - exti_flag_clear(EXTI_17); - - LOG_D("RTC Alarm disabled"); - } + /* Route the interrupt before enabling the comparator. */ + exti_init(EXTI_17, EXTI_INTERRUPT, EXTI_TRIG_RISING); + nvic_irq_enable(RTC_Alarm_IRQn, 0, 0); + rtc_interrupt_enable(BSP_RTC_INT_ALARM); + rtc_alarm_enable(BSP_RTC_ALARM); LOG_D("RTC: set alarm %02d:%02d:%02d, enable: %d", alarm->tm_hour, alarm->tm_min, alarm->tm_sec, alarm->enable); From 8f3f35d93cf817ddf3c92e4e59afad7dc9b544d0 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:19 +0800 Subject: [PATCH 10/19] [bsp][gd32] Add GD32H77D watchdog support Use the H7 watchdog oscillator setup for SOC_SERIES_GD32H77x_H78X. Keep the watchdog disabled by default. Verified continued execution while feeding the watchdog and automatic reset after feeding stopped. --- bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c index 6f218e2b16b..6211cf88b1b 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_wdt.c @@ -47,7 +47,7 @@ static gd32_wdt_device_t g_wdt_dev; static rt_err_t gd32_wdt_init(rt_watchdog_t *wdt) { -#if defined(SOC_SERIES_GD32H7xx) +#if (defined(SOC_SERIES_GD32H7xx) || defined(SOC_SERIES_GD32H77x_H78X)) /* Enable and wait for oscillator stabilization */ rcu_osci_on(WDT_OSCI_TYPE); if (ERROR == rcu_osci_stab_wait(WDT_OSCI_TYPE)) From 1edae6b989bbfb38d3f624d994527d37d4603040 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:22 +0800 Subject: [PATCH 11/19] [bsp][gd32] Add GD32VW553 Wi-Fi and MQTT support Place module registration under board/ports and add an independently selectable MQTT example. Handle MQTT timeouts, publishing and shutdown, and preserve ping targets when the AT module omits an address. Verified UART4 AT communication and MAC queries. Wi-Fi association to the default hotspot failed, so TCP and MQTT traffic remain unverified. Keep the module and example disabled by default. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 51 ++ .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/gd32vw553_mqtt_demo.c | 611 ++++++++++++++++++ .../applications/gd32vw553_mqtt_demo.h | 28 + bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 2 + .../gd32h77d-ginopi/board/ports/SConscript | 12 + .../board/ports/gd32vw553_at_port.c | 47 ++ components/net/netdev/src/netdev.c | 10 +- 8 files changed, 761 insertions(+), 3 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/gd32vw553_at_port.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index ac3a902a903..868d3fabdd5 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -38,4 +38,55 @@ menu "Applications" help Register rtc_alarm to configure and inspect a one-shot alarm. + config BSP_USING_GD32VW553_MQTT_DEMO + bool "Enable GD32VW553 MQTT demo" + depends on BSP_USING_GD32VW553_AT + select PKG_USING_KAWAII_MQTT + select KAWAII_MQTT_NETSOCKET_USE_SAL + default n + help + Enable a GD32VW553 MQTT demo based on the RT-Thread + kawaii-mqtt package. The MQTT network path is + kawaii-mqtt, SAL socket, at_device, and GD32VW553 AT. + + if BSP_USING_GD32VW553_MQTT_DEMO + + config BSP_GD32VW553_MQTT_HOST + string "MQTT broker address" + default "broker.emqx.io" + help + Use a numeric IPv4 address when the module firmware + does not support AT+CIPDOMAIN. + + config BSP_GD32VW553_MQTT_PORT + int "MQTT broker port" + range 1 65535 + default 1883 + + config BSP_GD32VW553_MQTT_SUB_TOPIC + string "MQTT subscribe topic" + default "rtt/gd32vw553/sub" + + config BSP_GD32VW553_MQTT_PUB_TOPIC + string "MQTT publish topic" + default "rtt/gd32vw553/pub" + + config BSP_GD32VW553_MQTT_MESSAGE + string "MQTT publish message" + default "hello from GD32VW553" + + config BSP_GD32VW553_MQTT_CLIENT_ID + string "MQTT client id" + default "gd32vw553" + + config BSP_GD32VW553_MQTT_USERNAME + string "MQTT username" + default "" + + config BSP_GD32VW553_MQTT_PASSWORD + string "MQTT password" + default "" + + endif + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index bea0059d5d3..a37a5f68fc2 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -15,6 +15,9 @@ if GetDepend('BSP_USING_PWM_DUAL_TEST'): if GetDepend('BSP_USING_RTC_ALARM_EXAMPLE'): src += ['rtc_alarm_example.c'] +if GetDepend(['BSP_USING_GD32VW553_MQTT_DEMO', 'PKG_USING_KAWAII_MQTT']): + src += ['gd32vw553_mqtt_demo.c'] + group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.c new file mode 100644 index 00000000000..052a5c0183f --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.c @@ -0,0 +1,611 @@ +/* + * Copyright (c) 2006-2024, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-03 CYFS integrate synchronous MQTT controls over wifi0 with clean shutdown + */ +#include "rtconfig.h" +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + +#include +#include +#include +#include + +#include "gd32vw553_mqtt_demo.h" + +#ifndef GD32VW553_SAMPLE_DEVICE_NAME +#define GD32VW553_SAMPLE_DEVICE_NAME "wifi0" +#endif + +#define GD32VW553_MQTT_ARG_LEN 64 +#define GD32VW553_MQTT_TOPIC_LEN 64 +#define GD32VW553_MQTT_MSG_LEN 256 +#define GD32VW553_MQTT_STACK_SIZE 4096 +#define GD32VW553_MQTT_PRIORITY 14 +#define GD32VW553_MQTT_WIFI_WAIT_MS 45000 +#define GD32VW553_MQTT_WIFI_LOG_MS 5000 +#define GD32VW553_MQTT_CMD_TIMEOUT_MS 20000 +#define GD32VW553_MQTT_STOP_TIMEOUT_MS 30000 + +#define GD32VW553_MQTT_STR_HELPER(x) #x +#define GD32VW553_MQTT_STR(x) GD32VW553_MQTT_STR_HELPER(x) + +#ifndef BSP_GD32VW553_MQTT_HOST +#define BSP_GD32VW553_MQTT_HOST "broker.emqx.io" +#endif + +#ifndef BSP_GD32VW553_MQTT_PORT +#define BSP_GD32VW553_MQTT_PORT 1883 +#endif + +#ifndef BSP_GD32VW553_MQTT_SUB_TOPIC +#define BSP_GD32VW553_MQTT_SUB_TOPIC "rtt/gd32vw553/sub" +#endif + +#ifndef BSP_GD32VW553_MQTT_PUB_TOPIC +#define BSP_GD32VW553_MQTT_PUB_TOPIC "rtt/gd32vw553/pub" +#endif + +#ifndef BSP_GD32VW553_MQTT_MESSAGE +#define BSP_GD32VW553_MQTT_MESSAGE "hello from GD32VW553" +#endif + +#ifndef BSP_GD32VW553_MQTT_CLIENT_ID +#define BSP_GD32VW553_MQTT_CLIENT_ID "gd32vw553" +#endif + +#ifndef BSP_GD32VW553_MQTT_USERNAME +#define BSP_GD32VW553_MQTT_USERNAME "" +#endif + +#ifndef BSP_GD32VW553_MQTT_PASSWORD +#define BSP_GD32VW553_MQTT_PASSWORD "" +#endif + +struct gd32vw553_mqtt_arg +{ + char host[GD32VW553_MQTT_ARG_LEN]; + char port[8]; + char sub_topic[GD32VW553_MQTT_TOPIC_LEN]; + char pub_topic[GD32VW553_MQTT_TOPIC_LEN]; + char message[GD32VW553_MQTT_MSG_LEN]; + char client_id[GD32VW553_MQTT_ARG_LEN]; + char username[GD32VW553_MQTT_ARG_LEN]; + char mqtt_password[GD32VW553_MQTT_ARG_LEN]; +}; + +static mqtt_client_t *gd32vw553_mqtt_client = RT_NULL; +static rt_bool_t gd32vw553_mqtt_running = RT_FALSE; +static rt_mutex_t gd32vw553_mqtt_lock = RT_NULL; +static gd32vw553_mqtt_receive_callback_t gd32vw553_mqtt_receive_callback; +static gd32vw553_mqtt_status_callback_t gd32vw553_mqtt_status_callback; + +static void gd32vw553_mqtt_report_status(const char *status, int result) +{ + gd32vw553_mqtt_status_callback_t callback; + + if (result == RT_EOK) + { + rt_kprintf("[mqtt] %s\n", status); + } + else + { + rt_kprintf("[mqtt] %s: %d\n", status, result); + } + + rt_enter_critical(); + callback = gd32vw553_mqtt_status_callback; + rt_exit_critical(); + if (callback != RT_NULL) + { + callback(status, result); + } +} + +static rt_bool_t gd32vw553_mqtt_running_get(void) +{ + rt_bool_t running; + + if (gd32vw553_mqtt_lock == RT_NULL) + { + return RT_FALSE; + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + running = gd32vw553_mqtt_running; + rt_mutex_release(gd32vw553_mqtt_lock); + + return running; +} + +static void gd32vw553_mqtt_strncpy(char *dst, const char *src, rt_size_t dst_size) +{ + if (dst_size == 0) + { + return; + } + + rt_strncpy(dst, src, dst_size - 1); + dst[dst_size - 1] = '\0'; +} + +static void gd32vw553_mqtt_sub_callback(void *client, message_data_t *msg) +{ + RT_UNUSED(client); + + if (msg == RT_NULL || msg->message == RT_NULL) + { + return; + } + + rt_kprintf("mqtt recv topic: %s\n", msg->topic_name); + rt_kprintf("mqtt recv payload: %.*s\n", + (int)msg->message->payloadlen, (char *)msg->message->payload); + + if (gd32vw553_mqtt_receive_callback != RT_NULL) + { + gd32vw553_mqtt_receive_callback(msg->topic_name, + msg->message->payload, + msg->message->payloadlen); + } +} + +static int gd32vw553_mqtt_publish_text(mqtt_client_t *client, const char *topic, const char *payload) +{ + mqtt_message_t msg; + + rt_memset(&msg, 0, sizeof(msg)); + msg.qos = QOS0; + msg.payload = (void *)payload; + msg.payloadlen = rt_strlen(payload); + + return mqtt_publish(client, topic, &msg); +} + +static rt_bool_t gd32vw553_mqtt_netdev_is_ready(struct at_device *device) +{ + struct netdev *netdev; + + if (device == RT_NULL || device->netdev == RT_NULL) + { + return RT_FALSE; + } + + netdev = device->netdev; + return (netdev_is_up(netdev) && netdev_is_link_up(netdev) && + !ip_addr_isany(&netdev->ip_addr)) ? RT_TRUE : RT_FALSE; +} + +static rt_bool_t gd32vw553_mqtt_wait_netdev_ready(struct at_device *device) +{ + int waited; + + for (waited = 0; waited < GD32VW553_MQTT_WIFI_WAIT_MS; waited += 500) + { + if (gd32vw553_mqtt_netdev_is_ready(device)) + { + return RT_TRUE; + } + + if ((waited % GD32VW553_MQTT_WIFI_LOG_MS) == 0) + { + struct netdev *netdev = device->netdev; + + rt_kprintf("[mqtt] %s state: init=%d up=%d link=%d ip=%s\n", + GD32VW553_SAMPLE_DEVICE_NAME, + device->is_init ? 1 : 0, + (netdev != RT_NULL && netdev_is_up(netdev)) ? 1 : 0, + (netdev != RT_NULL && netdev_is_link_up(netdev)) ? 1 : 0, + (netdev != RT_NULL && !ip_addr_isany(&netdev->ip_addr)) ? + inet_ntoa(netdev->ip_addr) : "0.0.0.0"); + } + + rt_thread_mdelay(500); + } + + return RT_FALSE; +} + +static int gd32vw553_mqtt_prepare_wifi(struct at_device **device_out) +{ + struct at_device *device; + + *device_out = RT_NULL; + device = at_device_get_by_name(AT_DEVICE_NAMETYPE_DEVICE, GD32VW553_SAMPLE_DEVICE_NAME); + if (device == RT_NULL) + { + return -RT_ENOSYS; + } + *device_out = device; + + if (gd32vw553_mqtt_wait_netdev_ready(device) == RT_FALSE) + { + return -RT_ETIMEOUT; + } + + return RT_EOK; +} + +static const char *gd32vw553_mqtt_wifi_error(struct at_device *device) +{ + if (device == RT_NULL || device->netdev == RT_NULL) + { + return "GD32VW553 network interface is unavailable"; + } + if (device->is_init == RT_FALSE) + { + return "GD32VW553 AT initialization failed or is incomplete"; + } + if (!netdev_is_up(device->netdev)) + { + return "GD32VW553 network interface is down"; + } + if (!netdev_is_link_up(device->netdev)) + { + return "GD32VW553 Wi-Fi AP is not connected"; + } + if (ip_addr_isany(&device->netdev->ip_addr)) + { + return "GD32VW553 Wi-Fi has no IPv4 address"; + } + + return "GD32VW553 Wi-Fi is not ready"; +} + +static const char *gd32vw553_mqtt_connect_error(int result) +{ + switch (result) + { + case KAWAII_MQTT_SOCKET_UNKNOWN_HOST_ERROR: + return "MQTT broker DNS lookup failed"; + case KAWAII_MQTT_SOCKET_FAILED_ERROR: + return "MQTT socket creation failed"; + case KAWAII_MQTT_CONNECT_FAILED_ERROR: + return "MQTT broker TCP or protocol connection failed"; + default: + return "MQTT broker connection failed"; + } +} + +static void gd32vw553_mqtt_thread_entry(void *parameter) +{ + struct gd32vw553_mqtt_arg *arg = (struct gd32vw553_mqtt_arg *)parameter; + struct at_device *device = RT_NULL; + struct netdev *saved_default_netdev = RT_NULL; + mqtt_client_t *client; + int result; + rt_bool_t failure_reported = RT_FALSE; + rt_bool_t default_netdev_changed = RT_FALSE; + + gd32vw553_mqtt_report_status("Waiting for GD32VW553 Wi-Fi", RT_EOK); + result = gd32vw553_mqtt_prepare_wifi(&device); + if (result != RT_EOK) + { + gd32vw553_mqtt_report_status( + result == -RT_ENOSYS ? "GD32VW553 AT device is unavailable" : + gd32vw553_mqtt_wifi_error(device), + result); + failure_reported = RT_TRUE; + goto __exit; + } + + saved_default_netdev = netdev_default; + if (device->netdev != netdev_default) + { + netdev_set_default(device->netdev); + default_netdev_changed = RT_TRUE; + } + rt_kprintf("[mqtt] SAL netdev: %s\n", device->netdev->name); + + mqtt_log_init(); + + client = mqtt_lease(); + if (client == RT_NULL) + { + gd32vw553_mqtt_report_status("MQTT client allocation failed", -RT_ENOMEM); + failure_reported = RT_TRUE; + goto __exit; + } + + mqtt_set_host(client, arg->host); + mqtt_set_port(client, arg->port); + mqtt_set_client_id(client, arg->client_id); + mqtt_set_clean_session(client, 1); + mqtt_set_cmd_timeout(client, GD32VW553_MQTT_CMD_TIMEOUT_MS); + + if (arg->username[0] != '\0') + { + mqtt_set_user_name(client, arg->username); + } + if (arg->mqtt_password[0] != '\0') + { + mqtt_set_password(client, arg->mqtt_password); + } + + gd32vw553_mqtt_report_status("Connecting to MQTT broker", RT_EOK); + result = mqtt_connect(client); + if (result != KAWAII_MQTT_SUCCESS_ERROR) + { + gd32vw553_mqtt_report_status(gd32vw553_mqtt_connect_error(result), result); + failure_reported = RT_TRUE; + client->mqtt_client_state = CLIENT_STATE_INVALID; + mqtt_release(client); + goto __exit; + } + + result = mqtt_subscribe(client, arg->sub_topic, QOS0, gd32vw553_mqtt_sub_callback); + if (result != KAWAII_MQTT_SUCCESS_ERROR) + { + gd32vw553_mqtt_report_status("MQTT subscription failed", result); + failure_reported = RT_TRUE; + mqtt_disconnect(client); + mqtt_release(client); + goto __exit; + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_client = client; + rt_mutex_release(gd32vw553_mqtt_lock); + + rt_kprintf("GD32VW553 MQTT connected to %s:%s\n", arg->host, arg->port); + rt_kprintf("mqtt subscribed: %s\n", arg->sub_topic); + gd32vw553_mqtt_report_status("MQTT connected and subscribed", RT_EOK); + + while (gd32vw553_mqtt_running_get()) + { + rt_thread_mdelay(100); + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_client = RT_NULL; + rt_mutex_release(gd32vw553_mqtt_lock); + + mqtt_set_cmd_timeout(client, GD32VW553_MQTT_STOP_TIMEOUT_MS); + mqtt_disconnect(client); + mqtt_release(client); + +__exit: + if (default_netdev_changed && saved_default_netdev != RT_NULL && + netdev_default == device->netdev) + { + netdev_set_default(saved_default_netdev); + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_running = RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + + rt_free(arg); + if (!failure_reported) + { + gd32vw553_mqtt_report_status("MQTT stopped", RT_EOK); + } +} + +int gd32vw553_mqtt_demo_start(void) +{ + rt_thread_t tid; + struct gd32vw553_mqtt_arg *arg; + const char *host = BSP_GD32VW553_MQTT_HOST; + const char *port_string = GD32VW553_MQTT_STR(BSP_GD32VW553_MQTT_PORT); + + if (host[0] == '\0' || + BSP_GD32VW553_MQTT_SUB_TOPIC[0] == '\0' || + BSP_GD32VW553_MQTT_PUB_TOPIC[0] == '\0' || + BSP_GD32VW553_MQTT_CLIENT_ID[0] == '\0') + { + rt_kprintf("please configure GD32VW553 MQTT demo in menuconfig first\n"); + return -RT_EINVAL; + } + + if (gd32vw553_mqtt_lock == RT_NULL) + { + gd32vw553_mqtt_lock = rt_mutex_create("vw553mq", RT_IPC_FLAG_PRIO); + if (gd32vw553_mqtt_lock == RT_NULL) + { + return -RT_ENOMEM; + } + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + if (gd32vw553_mqtt_client != RT_NULL || gd32vw553_mqtt_running == RT_TRUE) + { + rt_mutex_release(gd32vw553_mqtt_lock); + rt_kprintf("GD32VW553 MQTT demo is already running\n"); + return -RT_EBUSY; + } + gd32vw553_mqtt_running = RT_TRUE; + rt_mutex_release(gd32vw553_mqtt_lock); + + arg = (struct gd32vw553_mqtt_arg *)rt_calloc(1, sizeof(struct gd32vw553_mqtt_arg)); + if (arg == RT_NULL) + { + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_running = RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + return -RT_ENOMEM; + } + + gd32vw553_mqtt_strncpy(arg->host, host, sizeof(arg->host)); + gd32vw553_mqtt_strncpy(arg->port, port_string, sizeof(arg->port)); + gd32vw553_mqtt_strncpy(arg->sub_topic, BSP_GD32VW553_MQTT_SUB_TOPIC, sizeof(arg->sub_topic)); + gd32vw553_mqtt_strncpy(arg->pub_topic, BSP_GD32VW553_MQTT_PUB_TOPIC, sizeof(arg->pub_topic)); + gd32vw553_mqtt_strncpy(arg->message, BSP_GD32VW553_MQTT_MESSAGE, sizeof(arg->message)); + gd32vw553_mqtt_strncpy(arg->client_id, BSP_GD32VW553_MQTT_CLIENT_ID, sizeof(arg->client_id)); + gd32vw553_mqtt_strncpy(arg->username, BSP_GD32VW553_MQTT_USERNAME, sizeof(arg->username)); + gd32vw553_mqtt_strncpy(arg->mqtt_password, BSP_GD32VW553_MQTT_PASSWORD, sizeof(arg->mqtt_password)); + + tid = rt_thread_create("vw553mqtt", gd32vw553_mqtt_thread_entry, arg, + GD32VW553_MQTT_STACK_SIZE, GD32VW553_MQTT_PRIORITY, 10); + if (tid == RT_NULL) + { + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_running = RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + rt_free(arg); + return -RT_ERROR; + } + + if (rt_thread_startup(tid) != RT_EOK) + { + rt_thread_delete(tid); + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_running = RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + rt_free(arg); + return -RT_ERROR; + } + rt_kprintf("[mqtt] MQTT worker started\n"); + return RT_EOK; +} + +static int gd32vw553_mqtt_start(int argc, char **argv) +{ + RT_UNUSED(argv); + + if (argc != 1) + { + rt_kprintf("usage: gd32vw553_mqtt_start\n"); + return -RT_EINVAL; + } + + return gd32vw553_mqtt_demo_start(); +} +MSH_CMD_EXPORT(gd32vw553_mqtt_start, start GD32VW553 MQTT demo with kawaii-mqtt); + +int gd32vw553_mqtt_demo_publish(const char *topic, const char *payload) +{ + mqtt_client_t *client; + int result; + + if ((topic == RT_NULL) || (payload == RT_NULL) || + (topic[0] == '\0') || (payload[0] == '\0')) + { + return -RT_EINVAL; + } + + if ((rt_strlen(topic) >= GD32VW553_MQTT_TOPIC_LEN) || + (rt_strlen(payload) >= GD32VW553_MQTT_MSG_LEN)) + { + rt_kprintf("MQTT topic or payload is too long\n"); + return -RT_EINVAL; + } + + if (gd32vw553_mqtt_lock == RT_NULL) + { + rt_kprintf("GD32VW553 MQTT demo is not running\n"); + return -RT_ERROR; + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + if (gd32vw553_mqtt_running == RT_FALSE) + { + rt_mutex_release(gd32vw553_mqtt_lock); + rt_kprintf("GD32VW553 MQTT demo is not running\n"); + return -RT_ERROR; + } + client = gd32vw553_mqtt_client; + if (client == RT_NULL) + { + rt_mutex_release(gd32vw553_mqtt_lock); + rt_kprintf("GD32VW553 MQTT demo is not connected\n"); + return -RT_ERROR; + } + + rt_kprintf("[mqtt] publishing: %s (%u bytes)\n", + topic, (unsigned int)rt_strlen(payload)); + gd32vw553_mqtt_report_status("Sending MQTT message", RT_EOK); + result = gd32vw553_mqtt_publish_text(client, topic, payload); + rt_mutex_release(gd32vw553_mqtt_lock); + + if (result == KAWAII_MQTT_SUCCESS_ERROR) + { + rt_kprintf("mqtt published: %s -> %s\n", topic, payload); + gd32vw553_mqtt_report_status("MQTT message published", RT_EOK); + return RT_EOK; + } + + rt_kprintf("[mqtt] publish failed: topic=%s result=%d\n", topic, result); + gd32vw553_mqtt_report_status("MQTT publish failed", result); + + return result; +} + +static int gd32vw553_mqtt_pub(int argc, char **argv) +{ + if (argc < 3) + { + rt_kprintf("usage: gd32vw553_mqtt_pub \n"); + return -RT_EINVAL; + } + + return gd32vw553_mqtt_demo_publish(argv[1], argv[2]); +} +MSH_CMD_EXPORT(gd32vw553_mqtt_pub, publish through GD32VW553 MQTT demo); + +int gd32vw553_mqtt_demo_stop(void) +{ + if (gd32vw553_mqtt_lock == RT_NULL) + { + rt_kprintf("GD32VW553 MQTT demo is not running\n"); + return -RT_ERROR; + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + gd32vw553_mqtt_running = RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + + rt_kprintf("GD32VW553 MQTT demo stopping\n"); + return RT_EOK; +} + +static int gd32vw553_mqtt_stop(int argc, char **argv) +{ + RT_UNUSED(argc); + RT_UNUSED(argv); + + return gd32vw553_mqtt_demo_stop(); +} +MSH_CMD_EXPORT(gd32vw553_mqtt_stop, stop GD32VW553 MQTT demo); + +rt_bool_t gd32vw553_mqtt_demo_is_running(void) +{ + return gd32vw553_mqtt_running_get(); +} + +rt_bool_t gd32vw553_mqtt_demo_is_connected(void) +{ + rt_bool_t connected; + + if (gd32vw553_mqtt_lock == RT_NULL) + { + return RT_FALSE; + } + + rt_mutex_take(gd32vw553_mqtt_lock, RT_WAITING_FOREVER); + connected = (gd32vw553_mqtt_client != RT_NULL) ? RT_TRUE : RT_FALSE; + rt_mutex_release(gd32vw553_mqtt_lock); + return connected; +} + +void gd32vw553_mqtt_demo_set_receive_callback( + gd32vw553_mqtt_receive_callback_t callback) +{ + rt_enter_critical(); + gd32vw553_mqtt_receive_callback = callback; + rt_exit_critical(); +} + +void gd32vw553_mqtt_demo_set_status_callback( + gd32vw553_mqtt_status_callback_t callback) +{ + rt_enter_critical(); + gd32vw553_mqtt_status_callback = callback; + rt_exit_critical(); +} + +#endif /* BSP_USING_GD32VW553_MQTT_DEMO && PKG_USING_KAWAII_MQTT */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.h b/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.h new file mode 100644 index 00000000000..2e9b4fd4b1b --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/gd32vw553_mqtt_demo.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef GD32VW553_MQTT_DEMO_H +#define GD32VW553_MQTT_DEMO_H + +#include + +typedef void (*gd32vw553_mqtt_receive_callback_t)(const char *topic, + const void *payload, + rt_size_t payload_length); +typedef void (*gd32vw553_mqtt_status_callback_t)(const char *status, + int result); + +int gd32vw553_mqtt_demo_start(void); +int gd32vw553_mqtt_demo_publish(const char *topic, const char *payload); +int gd32vw553_mqtt_demo_stop(void); +rt_bool_t gd32vw553_mqtt_demo_is_running(void); +rt_bool_t gd32vw553_mqtt_demo_is_connected(void); +void gd32vw553_mqtt_demo_set_receive_callback( + gd32vw553_mqtt_receive_callback_t callback); +void gd32vw553_mqtt_demo_set_status_callback( + gd32vw553_mqtt_status_callback_t callback); + +#endif /* GD32VW553_MQTT_DEMO_H */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index f78f584ade0..c3227e2fd2e 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -20,4 +20,6 @@ path = [cwd] CPPDEFINES = ['GD32H77DXW'] group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) +group = group + SConscript(os.path.join('ports', 'SConscript')) + Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript new file mode 100644 index 00000000000..9ad62191538 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript @@ -0,0 +1,12 @@ +import os +from building import * + +cwd = GetCurrentDir() +src = [] + +if GetDepend('BSP_USING_GD32VW553_AT'): + src += ['gd32vw553_at_port.c'] + +group = DefineGroup('BoardPorts', src, depend = [''], CPPPATH = [cwd]) + +Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/gd32vw553_at_port.c b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/gd32vw553_at_port.c new file mode 100644 index 00000000000..574f2a1a748 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/gd32vw553_at_port.c @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-31 CYFS add GD32VW553 board port with hardware reset + */ + +#include +#include +#include + +#ifdef BSP_USING_GD32VW553_AT + +#include + +#define GD32VW553_DEVICE_NAME "wifi0" +#define GD32VW553_CLIENT_NAME "uart4" +#define GD32VW553_RESET_PIN GET_PIN(C, 5) +#define GD32VW553_RECV_LINE_NUM 1024 + +static struct at_device_gd32vw553 gd32vw5530 = +{ + .device_name = GD32VW553_DEVICE_NAME, + .client_name = GD32VW553_CLIENT_NAME, + .wifi_ssid = BSP_GD32VW553_WIFI_SSID, + .wifi_password = BSP_GD32VW553_WIFI_PASSWORD, + .baudrate = BSP_GD32VW553_AT_BAUDRATE, + .recv_line_num = GD32VW553_RECV_LINE_NUM, + .use_reset_pin = RT_TRUE, + .reset_pin = GD32VW553_RESET_PIN, + .reset_active_level = PIN_LOW, +}; + +static int gd32vw553_device_register(void) +{ + return at_device_register(&gd32vw5530.device, + gd32vw5530.device_name, + gd32vw5530.client_name, + AT_DEVICE_CLASS_GD32VW553, + &gd32vw5530); +} +INIT_APP_EXPORT(gd32vw553_device_register); + +#endif /* BSP_USING_GD32VW553_AT */ diff --git a/components/net/netdev/src/netdev.c b/components/net/netdev/src/netdev.c index 5a4056b97a7..1366946963e 100644 --- a/components/net/netdev/src/netdev.c +++ b/components/net/netdev/src/netdev.c @@ -1390,15 +1390,18 @@ int netdev_cmd_ping(char* target_name, char *netdev_name, rt_uint32_t times, rt_ } else { + const char *resp_addr = ip_addr_isany(&(ping_resp.ip_addr)) ? + target_name : inet_ntoa(ping_resp.ip_addr); + if (ping_resp.ttl == 0) { rt_kprintf("%d bytes from %s icmp_seq=%d time=%d ms\n", - ping_resp.data_len, inet_ntoa(ping_resp.ip_addr), index + 1, ping_resp.ticks); + ping_resp.data_len, resp_addr, index + 1, ping_resp.ticks); } else { rt_kprintf("%d bytes from %s icmp_seq=%d ttl=%d time=%d ms\n", - ping_resp.data_len, inet_ntoa(ping_resp.ip_addr), index + 1, ping_resp.ttl, ping_resp.ticks); + ping_resp.data_len, resp_addr, index + 1, ping_resp.ttl, ping_resp.ticks); } received += 1; if (ping_resp.ticks > max_time) @@ -1427,7 +1430,8 @@ int netdev_cmd_ping(char* target_name, char *netdev_name, rt_uint32_t times, rt_ loss = (uint32_t)((1 - ((float)received) / index) * 100); avg_time = (uint32_t)(avg_time / received); - rt_kprintf("\n--- %s ping statistics ---\n", inet_ntoa(ping_resp.ip_addr)); + rt_kprintf("\n--- %s ping statistics ---\n", + ip_addr_isany(&(ping_resp.ip_addr)) ? target_name : inet_ntoa(ping_resp.ip_addr)); rt_kprintf("%d packets transmitted, %d received, %d%% packet loss\n", index, received, loss); if (received > 0) { From 1ca516047e86ba4a1c8222e38af354efc35868cd Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:25 +0800 Subject: [PATCH 12/19] [bsp][gd32] Add GD32H77D CAN and CAN FD support Add mailbox allocation, nominal and data timing, frame validation, interrupt handling and error recovery. Keep CAN disabled by default. Verified 100 internal loopback frames for both classic CAN and CAN FD, including standard/extended identifiers, varied payload lengths and BRS. External bus operation remains to be tested. --- .../gd32_drivers/config/can_config.h | 36 + bsp/gd32/arm/libraries/gd32_drivers/drv_can.c | 810 +++++++++++++++++- bsp/gd32/arm/libraries/gd32_drivers/drv_can.h | 34 +- 3 files changed, 864 insertions(+), 16 deletions(-) create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/config/can_config.h diff --git a/bsp/gd32/arm/libraries/gd32_drivers/config/can_config.h b/bsp/gd32/arm/libraries/gd32_drivers/config/can_config.h new file mode 100644 index 00000000000..d18bf04eb60 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/config/can_config.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __CAN_CONFIG_H__ +#define __CAN_CONFIG_H__ + +#include + +#ifdef BSP_USING_CAN1 +#ifndef BSP_CAN1_TX_PIN +#define BSP_CAN1_TX_PIN "PB4" +#endif +#ifndef BSP_CAN1_RX_PIN +#define BSP_CAN1_RX_PIN "PB5" +#endif +#ifndef BSP_CAN1_TX_AFIO +#define BSP_CAN1_TX_AFIO "AF4" +#endif +#ifndef BSP_CAN1_RX_AFIO +#define BSP_CAN1_RX_AFIO "AF9" +#endif + +#define CAN1_GPIO_CONFIG \ + { \ + .can_clk = RCU_CAN1, \ + .tx_pin_name = BSP_CAN1_TX_PIN, \ + .rx_pin_name = BSP_CAN1_RX_PIN, \ + .tx_alternate = BSP_CAN1_TX_AFIO, \ + .rx_alternate = BSP_CAN1_RX_AFIO, \ + } +#endif + +#endif /* __CAN_CONFIG_H__ */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.c index ac60157a0f8..4b4c4bf2c52 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.c +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.c @@ -8,18 +8,34 @@ * Change Logs: * Date Author Notes * 2025-18-03 Dmitriy Chernov first implementation for GD32F4xx - * 2025-09-24 CYFS add support for GD32F5xx + * 2026-09-08 CYFS add GD32F5xx and GD32H77D CAN FD support */ #include "drv_can.h" #include "string.h" +#if defined(SOC_SERIES_GD32H77x_H78X) +#include "can_config.h" +#endif #ifdef BSP_USING_CAN #define LOG_TAG "can_drv" #include -#if defined(GD32F405) || defined(GD32F407) /* 42MHz(max) */ +#if defined(SOC_SERIES_GD32H77x_H78X) /* APB2 300MHz(max) */ +static const struct gd32_baudrate_tbl can_baudrate_tbl[] = +{ + {CAN1MBaud, 1, 20, 27, 12, 5}, + {CAN800kBaud, 1, 2, 9, 3, 25}, + {CAN500kBaud, 1, 2, 5, 2, 60}, + {CAN250kBaud, 1, 2, 5, 2, 120}, + {CAN125kBaud, 1, 2, 5, 2, 240}, + {CAN100kBaud, 1, 2, 5, 2, 300}, + {CAN50kBaud, 1, 2, 5, 2, 600}, + {CAN20kBaud, 1, 14, 25, 10, 300}, + {CAN10kBaud, 1, 14, 25, 10, 600}, +}; +#elif defined(GD32F405) || defined(GD32F407) /* 42MHz(max) */ static const struct gd32_baudrate_tbl can_baudrate_tbl[] = { {CAN1MBaud, CAN_BT_SJW_1TQ, CAN_BT_BS1_11TQ, CAN_BT_BS2_2TQ, 3}, @@ -62,7 +78,7 @@ static const struct gd32_baudrate_tbl can_baudrate_tbl[] = #error "CAN driver not implemented for selected device" #endif -#ifdef BSP_USING_CAN0 +#if defined(BSP_USING_CAN0) && !defined(SOC_SERIES_GD32H77x_H78X) static struct gd32_can_device dev_can0 = { .name = "can0", @@ -73,14 +89,14 @@ static struct gd32_can_device dev_can0 = #ifdef BSP_USING_CAN1 static struct gd32_can_device dev_can1 = { - "can1", + .name = "can1", .can_x = CAN1, }; #endif static const struct gd32_can gd32_can_gpio[] = { -#ifdef BSP_USING_CAN0 +#if defined(BSP_USING_CAN0) && !defined(SOC_SERIES_GD32H77x_H78X) { .can_clk = RCU_CAN0, #if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32F5xx @@ -120,6 +136,9 @@ static const struct gd32_can gd32_can_gpio[] = #endif #ifdef BSP_USING_CAN1 +#if defined(SOC_SERIES_GD32H77x_H78X) + CAN1_GPIO_CONFIG, +#else { .can_clk = RCU_CAN1, #if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32F5xx @@ -146,12 +165,42 @@ static const struct gd32_can gd32_can_gpio[] = #endif }, #endif +#endif }; -static void gd32_can_gpio_init(void) +static rt_err_t gd32_can_gpio_init(void) { for (rt_uint32_t i = 0; i < sizeof(gd32_can_gpio) / sizeof(gd32_can_gpio[0]); i++) { +#if defined(SOC_SERIES_GD32H77x_H78X) + rt_uint32_t tx_port, rx_port; + rt_uint32_t tx_pin, rx_pin; + rt_uint32_t tx_af, rx_af; + rcu_periph_enum tx_clk, rx_clk; + + if (get_pin_config(gd32_can_gpio[i].tx_pin_name, &tx_port, &tx_pin, &tx_clk) != RT_EOK || + get_pin_config(gd32_can_gpio[i].rx_pin_name, &rx_port, &rx_pin, &rx_clk) != RT_EOK || + pin_alternate_config(gd32_can_gpio[i].tx_alternate, &tx_af) != RT_EOK || + pin_alternate_config(gd32_can_gpio[i].rx_alternate, &rx_af) != RT_EOK) + { + return -RT_EINVAL; + } + +#ifdef BSP_USING_CAN1 + rcu_can_clock_config(IDX_CAN1, RCU_CANSRC_APB2); +#endif + rcu_periph_clock_enable(gd32_can_gpio[i].can_clk); + rcu_periph_clock_enable(tx_clk); + rcu_periph_clock_enable(rx_clk); + + gpio_output_options_set(tx_port, GPIO_OTYPE_PP, GPIO_OSPEED_60MHZ, tx_pin); + gpio_mode_set(tx_port, GPIO_MODE_AF, GPIO_PUPD_PULLUP, tx_pin); + gpio_af_set(tx_port, tx_af, tx_pin); + + gpio_output_options_set(rx_port, GPIO_OTYPE_PP, GPIO_OSPEED_60MHZ, rx_pin); + gpio_mode_set(rx_port, GPIO_MODE_AF, GPIO_PUPD_NONE, rx_pin); + gpio_af_set(rx_port, rx_af, rx_pin); +#else rcu_periph_clock_enable(gd32_can_gpio[i].can_clk); rcu_periph_clock_enable(gd32_can_gpio[i].tx_clk); rcu_periph_clock_enable(gd32_can_gpio[i].rx_clk); @@ -168,8 +217,11 @@ static void gd32_can_gpio_init(void) #else gpio_init(PIN_GDPORT(gd32_can_gpio[i].tx_pin), GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, PIN_GDPIN(gd32_can_gpio[i].tx_pin)); gpio_init(PIN_GDPORT(gd32_can_gpio[i].rx_pin), GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, PIN_GDPIN(gd32_can_gpio[i].rx_pin)); +#endif #endif } + + return RT_EOK; } static rt_uint32_t get_can_baudrate_index(rt_uint32_t baudrate) @@ -186,17 +238,229 @@ static rt_uint32_t get_can_baudrate_index(rt_uint32_t baudrate) return 0; /* default baudrate is CAN1MBaud */ } +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(RT_CAN_USING_CANFD) +static rt_bool_t _can_timing_segments(rt_uint32_t quanta, rt_bool_t data_phase, + struct gd32_baudrate_tbl *timing) +{ + rt_uint32_t segment_1; + rt_uint32_t min_prop = data_phase ? 0U : 1U; + rt_uint32_t max_prop = data_phase ? 63U : 64U; + + if (quanta < 5U || quanta > 1U + max_prop + 32U + 32U) + { + return RT_FALSE; + } + + timing->tseg2 = (quanta + 2U) / 5U; + if (timing->tseg2 < 2U) + { + timing->tseg2 = 2U; + } + segment_1 = quanta - 1U - timing->tseg2; + timing->prop_seg = segment_1 > 32U ? segment_1 - 32U : min_prop; + timing->tseg1 = segment_1 - timing->prop_seg; + timing->sjw = 1U; + + return timing->prop_seg <= max_prop && timing->tseg1 >= 1U && timing->tseg1 <= 32U; +} + +static rt_err_t _can_fd_timing_get(const struct can_configure *cfg, + struct gd32_baudrate_tbl *nominal, struct gd32_baudrate_tbl *data) +{ + rt_uint32_t clock = rcu_clock_freq_get(CK_APB2); + + if (cfg->baud_rate < CAN10kBaud || cfg->baud_rate > CAN1MBaud || + cfg->baud_rate_fd < cfg->baud_rate || cfg->baud_rate_fd > 8000000U) + { + return -RT_EINVAL; + } + + for (rt_uint32_t prescaler = 1U; prescaler <= 1024U; prescaler++) + { + rt_uint32_t bit_clock = clock / prescaler; + + if (clock % prescaler != 0U || bit_clock % cfg->baud_rate != 0U || + bit_clock % cfg->baud_rate_fd != 0U) + { + continue; + } + if (_can_timing_segments(bit_clock / cfg->baud_rate, RT_FALSE, nominal) && + _can_timing_segments(bit_clock / cfg->baud_rate_fd, RT_TRUE, data)) + { + nominal->prescaler = prescaler; + data->prescaler = prescaler; + return RT_EOK; + } + } + + return -RT_EINVAL; +} +#endif + static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg) { can_parameter_struct can_init_struct; - can_struct_para_init(CAN_INIT_STRUCT, &can_init_struct); + rt_uint32_t baudrate_index; +#if defined(SOC_SERIES_GD32H77x_H78X) + rt_uint32_t interrupt_mask; + rt_bool_t error_interrupt; +#ifdef RT_CAN_USING_CANFD + struct gd32_baudrate_tbl nominal_timing = {0}; + struct gd32_baudrate_tbl data_timing = {0}; +#endif +#endif RT_ASSERT(can); RT_ASSERT(cfg); struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; RT_ASSERT(can_dev != RT_NULL); +#if defined(SOC_SERIES_GD32H77x_H78X) + if (cfg->sndboxnumber == 0U || cfg->sndboxnumber > GD32_CAN_TX_MAILBOX_NUM || + (can->parent.ref_count != 0U && + (cfg->sndboxnumber != can->config.sndboxnumber || cfg->msgboxsz != can->config.msgboxsz))) + { + return -RT_EINVAL; + } +#ifdef RT_CAN_USING_CANFD + if (cfg->sndboxnumber == GD32_CAN_TX_MAILBOX_NUM) + { + return -RT_EINVAL; + } + if (cfg->use_bit_timing) + { + return -RT_ENOSYS; + } + if (cfg->enable_canfd > 1U || + (cfg->enable_canfd && _can_fd_timing_get(cfg, &nominal_timing, &data_timing) != RT_EOK)) + { + return -RT_EINVAL; + } +#endif + if (can->parent.ref_count != 0U) + { + for (rt_uint32_t mailbox = GD32_CAN_TX_MAILBOX_FIRST; mailbox < GD32_CAN_MAILBOX_NUM; mailbox++) + { + rt_uint32_t code = can_mailbox_code_get(can_dev->can_x, mailbox); + + if (code == CAN_MB_TX_STATUS_DATA || code == CAN_MB_TX_STATUS_ABORT) + { + return -RT_EBUSY; + } + } + } + interrupt_mask = CAN_INTEN(can_dev->can_x); + error_interrupt = (CAN_CTL1(can_dev->can_x) & CAN_CTL1_ERRSIE) != 0U; +#endif + can_deinit(can_dev->can_x); + can_struct_para_init(CAN_INIT_STRUCT, &can_init_struct); + + baudrate_index = get_can_baudrate_index(cfg->baud_rate); + +#if defined(SOC_SERIES_GD32H77x_H78X) + can_init_struct.internal_counter_source = CAN_TIMER_SOURCE_BIT_CLOCK; + can_init_struct.self_reception = DISABLE; + can_init_struct.mb_tx_order = CAN_TX_HIGH_PRIORITY_MB_FIRST; + can_init_struct.mb_tx_abort_enable = ENABLE; + can_init_struct.local_priority_enable = DISABLE; + can_init_struct.mb_rx_ide_rtr_type = CAN_IDE_RTR_FILTERED; + can_init_struct.mb_remote_frame = CAN_STORE_REMOTE_REQUEST_FRAME; + can_init_struct.rx_private_filter_queue_enable = ENABLE; + can_init_struct.edge_filter_enable = DISABLE; + can_init_struct.protocol_exception_enable = DISABLE; + can_init_struct.rx_filter_order = CAN_RX_FILTER_ORDER_MAILBOX_FIRST; + can_init_struct.memory_size = CAN_MEMSIZE_32_UNIT; + can_init_struct.mb_public_filter = 0U; + can_init_struct.resync_jump_width = can_baudrate_tbl[baudrate_index].sjw; + can_init_struct.prop_time_segment = can_baudrate_tbl[baudrate_index].prop_seg; + can_init_struct.time_segment_1 = can_baudrate_tbl[baudrate_index].tseg1; + can_init_struct.time_segment_2 = can_baudrate_tbl[baudrate_index].tseg2; + can_init_struct.prescaler = can_baudrate_tbl[baudrate_index].prescaler; + +#ifdef RT_CAN_USING_CANFD + if (cfg->enable_canfd) + { + can_init_struct.resync_jump_width = nominal_timing.sjw; + can_init_struct.prop_time_segment = nominal_timing.prop_seg; + can_init_struct.time_segment_1 = nominal_timing.tseg1; + can_init_struct.time_segment_2 = nominal_timing.tseg2; + can_init_struct.prescaler = nominal_timing.prescaler; + } +#endif + if (can_init(can_dev->can_x, &can_init_struct) != SUCCESS) + { + return -RT_ERROR; + } + can_auto_busoff_recovery_enable(can_dev->can_x); + +#ifdef RT_CAN_USING_CANFD + if (cfg->enable_canfd) + { + can_fd_parameter_struct fd_init; + rt_uint32_t offset = data_timing.prescaler * (1U + data_timing.prop_seg + data_timing.tseg1); + + can_struct_para_init(CAN_FD_INIT_STRUCT, &fd_init); + fd_init.iso_can_fd_enable = ENABLE; + fd_init.bitrate_switch_enable = ENABLE; + fd_init.mailbox_data_size = CAN_MAILBOX_DATA_SIZE_64_BYTES; + fd_init.prescaler = data_timing.prescaler; + fd_init.resync_jump_width = data_timing.sjw; + fd_init.prop_time_segment = data_timing.prop_seg; + fd_init.time_segment_1 = data_timing.tseg1; + fd_init.time_segment_2 = data_timing.tseg2; + fd_init.tdc_enable = cfg->baud_rate_fd > CAN1MBaud ? ENABLE : DISABLE; + fd_init.tdc_offset = offset > 127U ? 127U : offset; + can_fd_config(can_dev->can_x, &fd_init); + } +#endif + + rt_memset(can_dev->rx_message_valid, 0, sizeof(can_dev->rx_message_valid)); + for (rt_uint32_t mailbox = 0U; mailbox < GD32_CAN_RX_MAILBOX_NUM; mailbox++) + { + can_struct_para_init(CAN_MDSC_STRUCT, &can_dev->rx_message[mailbox]); + can_dev->rx_message[mailbox].code = CAN_MB_RX_STATUS_EMPTY; + can_dev->rx_message[mailbox].id = 0x55U; + can_mailbox_config(can_dev->can_x, mailbox, &can_dev->rx_message[mailbox]); + can_private_filter_config(can_dev->can_x, mailbox, 0U); + } + for (rt_uint32_t mailbox = GD32_CAN_TX_MAILBOX_FIRST; mailbox < GD32_CAN_MAILBOX_NUM; mailbox++) + { + can_mailbox_transmit_inactive(can_dev->can_x, mailbox); + } + + can_dev->tx_abort_mask = 0U; + CAN_STAT(can_dev->can_x) = GD32_CAN_TX_INT_MASK; + + switch (cfg->mode) + { + case RT_CAN_MODE_LISTEN: + can_dev->mode = CAN_MONITOR_MODE; + break; + case RT_CAN_MODE_LOOPBACK: + case RT_CAN_MODE_LOOPBACKANLISTEN: + can_dev->mode = CAN_LOOPBACK_SILENT_MODE; + break; + case RT_CAN_MODE_NORMAL: + default: + can_dev->mode = CAN_NORMAL_MODE; + break; + } + + if (can_operation_mode_enter(can_dev->can_x, can_dev->mode) != SUCCESS) + { + return -RT_ERROR; + } + can->config = *cfg; + CAN_INTEN(can_dev->can_x) = interrupt_mask; + if (error_interrupt) + { + can_interrupt_enable(can_dev->can_x, CAN_INT_ERR_SUMMARY); +#ifdef RT_CAN_USING_CANFD + can_interrupt_enable(can_dev->can_x, CAN_INT_ERR_SUMMARY_FD); +#endif + } +#else can_init_struct.time_triggered = DISABLE; can_init_struct.auto_bus_off_recovery = ENABLE; @@ -221,7 +485,6 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg break; } - rt_uint32_t baudrate_index = get_can_baudrate_index(cfg->baud_rate); can_init_struct.resync_jump_width = can_baudrate_tbl[baudrate_index].sjw; can_init_struct.time_segment_1 = can_baudrate_tbl[baudrate_index].tseg1; can_init_struct.time_segment_2 = can_baudrate_tbl[baudrate_index].tseg2; @@ -232,23 +495,167 @@ static rt_err_t _can_config(struct rt_can_device *can, struct can_configure *cfg } can_filter_init(&can_dev->filter_config); +#endif return RT_EOK; } +#if defined(SOC_SERIES_GD32H77x_H78X) +static void _can_message_irq_config(rt_uint32_t can_x, rt_bool_t enable) +{ +#ifdef CAN0 + if (can_x == CAN0) + { + if (enable) + { + nvic_irq_enable(CAN0_Message_IRQn, 1, 0); + } + else + { + nvic_irq_disable(CAN0_Message_IRQn); + } + } +#endif +#ifdef CAN1 + if (can_x == CAN1) + { + if (enable) + { + nvic_irq_enable(CAN1_Message_IRQn, 1, 0); + } + else + { + nvic_irq_disable(CAN1_Message_IRQn); + } + } +#endif +} + +static void _can_error_irq_config(rt_uint32_t can_x, rt_bool_t enable) +{ +#ifdef CAN0 + if (can_x == CAN0) + { + if (enable) + { + nvic_irq_enable(CAN0_Error_IRQn, 1, 0); + } + else + { + nvic_irq_disable(CAN0_Error_IRQn); + } + } +#endif +#ifdef CAN1 + if (can_x == CAN1) + { + if (enable) + { + nvic_irq_enable(CAN1_Error_IRQn, 1, 0); + } + else + { + nvic_irq_disable(CAN1_Error_IRQn); + } + } +#endif +} + +static rt_uint32_t _can_error_code_get(rt_uint32_t errtype) +{ + rt_uint32_t errcode = 0U; + rt_uint32_t state = GET_ERR1_ERRSI(errtype); + + if ((errtype & (CAN_ERR1_RWERRF | CAN_ERR1_TWERRF)) != 0U) + { + errcode |= BIT(0); + } + if (state == CAN_ERROR_STATE_PASSIVE) + { + errcode |= BIT(1); + } + else if (state >= CAN_ERROR_STATE_BUS_OFF) + { + errcode |= BIT(2); + } + + return errcode; +} + +static rt_uint32_t _can_last_error_get(rt_uint32_t errtype) +{ + if ((errtype & (CAN_ERR1_STFERR | CAN_ERR1_STFFERR)) != 0U) + { + return RT_CAN_BUS_BIT_PAD_ERR; + } + if ((errtype & (CAN_ERR1_FMERR | CAN_ERR1_FMFERR)) != 0U) + { + return RT_CAN_BUS_FORMAT_ERR; + } + if ((errtype & CAN_ERR1_ACKERR) != 0U) + { + return RT_CAN_BUS_ACK_ERR; + } + if ((errtype & (CAN_ERR1_BRERR | CAN_ERR1_BRFERR)) != 0U) + { + return RT_CAN_BUS_IMPLICIT_BIT_ERR; + } + if ((errtype & (CAN_ERR1_BDERR | CAN_ERR1_BDFERR)) != 0U) + { + return RT_CAN_BUS_EXPLICIT_BIT_ERR; + } + if ((errtype & (CAN_ERR1_CRCERR | CAN_ERR1_CRCFERR)) != 0U) + { + return RT_CAN_BUS_CRC_ERR; + } + + return RT_CAN_BUS_NO_ERR; +} +#endif + static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) { rt_uint32_t argval; +#if defined(SOC_SERIES_GD32H77x_H78X) + struct can_configure config; +#else struct rt_can_filter_config *filter_cfg; +#endif RT_ASSERT(can != RT_NULL); struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; RT_ASSERT(can_dev != RT_NULL); +#if defined(SOC_SERIES_GD32H77x_H78X) + config = can->config; +#endif switch (cmd) { case RT_DEVICE_CTRL_CLR_INT: argval = (rt_uint32_t) arg; +#if defined(SOC_SERIES_GD32H77x_H78X) + if (argval == RT_DEVICE_FLAG_INT_RX) + { + CAN_INTEN(can_dev->can_x) &= ~GD32_CAN_RX_INT_MASK; + } + else if (argval == RT_DEVICE_FLAG_INT_TX) + { + CAN_INTEN(can_dev->can_x) &= ~GD32_CAN_TX_INT_MASK; + } + else if (argval == RT_DEVICE_CAN_INT_ERR) + { + can_interrupt_disable(can_dev->can_x, CAN_INT_ERR_SUMMARY); +#ifdef RT_CAN_USING_CANFD + can_interrupt_disable(can_dev->can_x, CAN_INT_ERR_SUMMARY_FD); +#endif + _can_error_irq_config(can_dev->can_x, RT_FALSE); + } + + if ((CAN_INTEN(can_dev->can_x) & BITS(0, 31)) == 0U) + { + _can_message_irq_config(can_dev->can_x, RT_FALSE); + } +#else if (argval == RT_DEVICE_FLAG_INT_RX) { #ifdef CAN0 @@ -308,9 +715,30 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) can_interrupt_disable(can_dev->can_x, CAN_INT_ERRN); can_interrupt_disable(can_dev->can_x, CAN_INT_ERR); } +#endif break; case RT_DEVICE_CTRL_SET_INT: argval = (rt_uint32_t) arg; +#if defined(SOC_SERIES_GD32H77x_H78X) + if (argval == RT_DEVICE_FLAG_INT_RX) + { + CAN_INTEN(can_dev->can_x) |= GD32_CAN_RX_INT_MASK; + _can_message_irq_config(can_dev->can_x, RT_TRUE); + } + else if (argval == RT_DEVICE_FLAG_INT_TX) + { + CAN_INTEN(can_dev->can_x) |= GD32_CAN_TX_INT_MASK; + _can_message_irq_config(can_dev->can_x, RT_TRUE); + } + else if (argval == RT_DEVICE_CAN_INT_ERR) + { + can_interrupt_enable(can_dev->can_x, CAN_INT_ERR_SUMMARY); +#ifdef RT_CAN_USING_CANFD + can_interrupt_enable(can_dev->can_x, CAN_INT_ERR_SUMMARY_FD); +#endif + _can_error_irq_config(can_dev->can_x, RT_TRUE); + } +#else if (argval == RT_DEVICE_FLAG_INT_RX) { can_interrupt_enable(can_dev->can_x, CAN_INT_RFNE0); @@ -370,9 +798,16 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) } #endif } +#endif break; case RT_CAN_CMD_SET_FILTER: { +#if defined(SOC_SERIES_GD32H77x_H78X) + if (arg != RT_NULL) + { + return -RT_ENOSYS; + } +#else rt_uint32_t id_h = 0; rt_uint32_t id_l = 0; rt_uint32_t mask_h = 0; @@ -454,6 +889,7 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) can_filter_init(&can_dev->filter_config); } } +#endif break; } case RT_CAN_CMD_SET_MODE: @@ -467,8 +903,13 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) } if (argval != can_dev->device.config.mode) { +#if defined(SOC_SERIES_GD32H77x_H78X) + config.mode = argval; + return _can_config(can, &config); +#else can_dev->device.config.mode = argval; return _can_config(&can_dev->device, &can_dev->device.config); +#endif } break; case RT_CAN_CMD_SET_BAUD: @@ -487,8 +928,13 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) } if (argval != can_dev->device.config.baud_rate) { +#if defined(SOC_SERIES_GD32H77x_H78X) + config.baud_rate = argval; + return _can_config(can, &config); +#else can_dev->device.config.baud_rate = argval; return _can_config(&can_dev->device, &can_dev->device.config); +#endif } break; case RT_CAN_CMD_SET_PRIV: @@ -500,18 +946,72 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) } if (argval != can_dev->device.config.privmode) { +#if defined(SOC_SERIES_GD32H77x_H78X) + config.privmode = argval; + return _can_config(can, &config); +#else can_dev->device.config.privmode = argval; return _can_config(&can_dev->device, &can_dev->device.config); +#endif + } + break; + case RT_CAN_CMD_SET_CANFD: +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(RT_CAN_USING_CANFD) + argval = (rt_uint32_t)arg; + if (argval > 1U) + { + return -RT_EINVAL; + } + if (config.enable_canfd != argval) + { + config.enable_canfd = argval; + return _can_config(can, &config); + } + break; +#else + return -RT_ENOSYS; +#endif + case RT_CAN_CMD_SET_BAUD_FD: +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(RT_CAN_USING_CANFD) + { + struct gd32_baudrate_tbl nominal = {0}; + struct gd32_baudrate_tbl data = {0}; + + config.baud_rate_fd = (rt_uint32_t)arg; + if (_can_fd_timing_get(&config, &nominal, &data) != RT_EOK) + { + return -RT_EINVAL; + } + if (config.baud_rate_fd != can->config.baud_rate_fd) + { + return _can_config(can, &config); } break; + } +#else + return -RT_ENOSYS; +#endif + case RT_CAN_CMD_SET_BITTIMING: + return -RT_ENOSYS; case RT_CAN_CMD_GET_STATUS: { +#if defined(SOC_SERIES_GD32H77x_H78X) + can_error_counter_struct error_count; + rt_uint32_t errtype = CAN_ERR1(can_dev->can_x); + + can_error_counter_get(can_dev->can_x, &error_count); + can_dev->device.status.rcverrcnt = error_count.rx_errcnt; + can_dev->device.status.snderrcnt = error_count.tx_errcnt; + can_dev->device.status.lasterrtype = _can_last_error_get(errtype); + can_dev->device.status.errcode = _can_error_code_get(errtype); +#else rt_uint32_t errtype; errtype = CAN_STAT(can_dev->can_x); can_dev->device.status.rcverrcnt = errtype >> 24; can_dev->device.status.snderrcnt = (errtype >> 16 & 0xFF); can_dev->device.status.lasterrtype = errtype & 0x70; can_dev->device.status.errcode = errtype & 0x07; +#endif rt_memcpy(arg, &can_dev->device.status, sizeof(can_dev->device.status)); break; @@ -521,10 +1021,84 @@ static rt_err_t _can_control(struct rt_can_device *can, int cmd, void *arg) return RT_EOK; } +#if defined(SOC_SERIES_GD32H77x_H78X) +static rt_err_t _can_message_validate(struct gd32_can_device *can_dev, const struct rt_can_msg *pmsg) +{ +#ifdef RT_CAN_USING_CANFD + if (pmsg->fd_frame) + { + if (!can_dev->device.config.enable_canfd || pmsg->rtr || pmsg->len > 64U) + { + return -RT_EINVAL; + } + return RT_EOK; + } + if (pmsg->brs) + { + return -RT_EINVAL; + } +#else + RT_UNUSED(can_dev); +#endif + return pmsg->len <= 8U ? RT_EOK : -RT_EINVAL; +} + +static rt_ssize_t _can_mailbox_send(struct gd32_can_device *can_dev, + const struct rt_can_msg *pmsg, rt_uint32_t box_num) +{ + rt_uint32_t mailbox = box_num + GD32_CAN_TX_MAILBOX_FIRST; + + if (box_num >= GD32_CAN_TX_MAILBOX_NUM || _can_message_validate(can_dev, pmsg) != RT_EOK) + { + return -RT_EINVAL; + } + if (can_mailbox_code_get(can_dev->can_x, mailbox) != CAN_MB_TX_STATUS_INACTIVE) + { + return -RT_EBUSY; + } + + rt_memset(&can_dev->tx_message[box_num], 0, sizeof(can_dev->tx_message[box_num])); + can_dev->tx_message[box_num].rtr = pmsg->rtr; + can_dev->tx_message[box_num].ide = pmsg->ide; + can_dev->tx_message[box_num].code = CAN_MB_TX_STATUS_DATA; + can_dev->tx_message[box_num].id = pmsg->id; + can_dev->tx_message[box_num].prio = pmsg->priv; + can_dev->tx_message[box_num].data_bytes = pmsg->len; +#ifdef RT_CAN_USING_CANFD + can_dev->tx_message[box_num].fdf = pmsg->fd_frame; + can_dev->tx_message[box_num].brs = pmsg->brs; + if (pmsg->fd_frame && pmsg->len > 8U) + { + static const rt_uint8_t lengths[] = {12U, 16U, 20U, 24U, 32U, 48U, 64U}; + + for (rt_uint32_t index = 0U; index < sizeof(lengths); index++) + { + if (pmsg->len <= lengths[index]) + { + can_dev->tx_message[box_num].data_bytes = lengths[index]; + break; + } + } + } +#endif + rt_memcpy(can_dev->tx_message[box_num].data, pmsg->data, pmsg->len); + can_mailbox_config(can_dev->can_x, mailbox, &can_dev->tx_message[box_num]); + + return RT_EOK; +} +#endif + static rt_ssize_t _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t box_num) { RT_ASSERT(can); + RT_ASSERT(buf); +#if defined(SOC_SERIES_GD32H77x_H78X) + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + const struct rt_can_msg *pmsg = (const struct rt_can_msg *)buf; + + return _can_mailbox_send(can_dev, pmsg, box_num); +#else can_trasnmit_message_struct transmit_message; can_struct_para_init(CAN_TX_MESSAGE_STRUCT, &transmit_message); rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; @@ -609,12 +1183,44 @@ static rt_ssize_t _can_sendmsg(struct rt_can_device *can, const void *buf, rt_ui CAN_TMI(can_x, box_num) |= CAN_TMI_TEN; return RT_EOK; +#endif } static rt_ssize_t _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo) { RT_ASSERT(can); + RT_ASSERT(buf); + +#if defined(SOC_SERIES_GD32H77x_H78X) + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + struct rt_can_msg *pmsg = (struct rt_can_msg *)buf; + if (fifo >= GD32_CAN_RX_MAILBOX_NUM || can_dev->rx_message_valid[fifo] == 0U) + { + return -RT_EEMPTY; + } + + can_dev->rx_message_valid[fifo] = 0U; + rt_memset(pmsg, 0, sizeof(*pmsg)); + pmsg->id = can_dev->rx_message[fifo].id; + pmsg->ide = can_dev->rx_message[fifo].ide; + pmsg->rtr = can_dev->rx_message[fifo].rtr; + pmsg->len = can_dev->rx_message[fifo].data_bytes; + pmsg->priv = 0U; + pmsg->rxfifo = fifo; + pmsg->hdr_index = fifo; +#ifdef RT_CAN_USING_CANFD + pmsg->fd_frame = can_dev->rx_message[fifo].fdf; + pmsg->brs = can_dev->rx_message[fifo].brs; +#endif + if (pmsg->len > sizeof(pmsg->data)) + { + return -RT_EINVAL; + } + rt_memcpy(pmsg->data, can_dev->rx_message[fifo].data, pmsg->len); + + return RT_EOK; +#else can_receive_message_struct receive_message; can_struct_para_init(CAN_RX_MESSAGE_STRUCT, &receive_message); rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; @@ -660,11 +1266,21 @@ static rt_ssize_t _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t #endif return RT_EOK; +#endif } rt_ssize_t _can_get_freebox(rt_uint32_t can_x) { rt_uint32_t freebox = 0; +#if defined(SOC_SERIES_GD32H77x_H78X) + for (rt_uint32_t mailbox = GD32_CAN_TX_MAILBOX_FIRST; mailbox < GD32_CAN_MAILBOX_NUM; mailbox++) + { + if (can_mailbox_code_get(can_x, mailbox) == CAN_MB_TX_STATUS_INACTIVE) + { + freebox++; + } + } +#else if ((CAN_STAT(can_x) & CAN_TSTAT_TME0) != 0U) { freebox++; @@ -677,13 +1293,36 @@ rt_ssize_t _can_get_freebox(rt_uint32_t can_x) { freebox++; } +#endif return freebox; } rt_ssize_t _can_sendmsg_nonblocking(struct rt_can_device *can, const void *buf) { RT_ASSERT(can); + RT_ASSERT(buf); +#if defined(SOC_SERIES_GD32H77x_H78X) + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + const struct rt_can_msg *pmsg = (const struct rt_can_msg *)buf; + + if (_can_message_validate(can_dev, pmsg) != RT_EOK) + { + return -RT_EINVAL; + } + + for (rt_uint32_t box_num = can->config.sndboxnumber; box_num < GD32_CAN_TX_MAILBOX_NUM; box_num++) + { + rt_uint32_t mailbox = box_num + GD32_CAN_TX_MAILBOX_FIRST; + + if (can_mailbox_code_get(can_dev->can_x, mailbox) == CAN_MB_TX_STATUS_INACTIVE) + { + return _can_mailbox_send(can_dev, pmsg, box_num); + } + } + + return -RT_EBUSY; +#else can_trasnmit_message_struct transmit_message; can_struct_para_init(CAN_TX_MESSAGE_STRUCT, &transmit_message); rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; @@ -721,6 +1360,7 @@ rt_ssize_t _can_sendmsg_nonblocking(struct rt_can_device *can, const void *buf) } return RT_EOK; +#endif } static const struct rt_can_ops _can_ops = @@ -735,8 +1375,27 @@ static const struct rt_can_ops _can_ops = static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo) { RT_ASSERT(can); - rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + rt_uint32_t can_x = can_dev->can_x; +#if defined(SOC_SERIES_GD32H77x_H78X) + RT_UNUSED(fifo); + for (rt_uint32_t mailbox = 0U; mailbox < GD32_CAN_RX_MAILBOX_NUM; mailbox++) + { + if ((CAN_STAT(can_x) & CAN_INTEN(can_x) & BIT(mailbox)) != 0U) + { + if (can_mailbox_receive_data_read(can_x, mailbox, &can_dev->rx_message[mailbox]) == SUCCESS) + { + can_dev->rx_message_valid[mailbox] = 1U; + rt_hw_can_isr(can, RT_CAN_EVENT_RX_IND | (mailbox << 8)); + } + else + { + CAN_STAT(can_x) = BIT(mailbox); + } + } + } +#else switch (fifo) { case CAN_RX_FIFO0: @@ -782,12 +1441,67 @@ static void _can_rx_isr(struct rt_can_device *can, rt_uint32_t fifo) } break; } +#endif } static void _can_ewmc_isr(struct rt_can_device *can) { RT_ASSERT(can); - rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + rt_uint32_t can_x = can_dev->can_x; +#if defined(SOC_SERIES_GD32H77x_H78X) + rt_uint32_t errtype; + + if (can_interrupt_flag_get(can_x, CAN_INT_FLAG_ERR_SUMMARY) == SET || + can_interrupt_flag_get(can_x, CAN_INT_FLAG_ERR_SUMMARY_FD) == SET) + { + errtype = CAN_ERR1(can_x); + if ((errtype & (CAN_ERR1_STFERR | CAN_ERR1_STFFERR)) != 0U) + { + can->status.bitpaderrcnt++; + } + if ((errtype & (CAN_ERR1_FMERR | CAN_ERR1_FMFERR)) != 0U) + { + can->status.formaterrcnt++; + } + if ((errtype & (CAN_ERR1_CRCERR | CAN_ERR1_CRCFERR)) != 0U) + { + can->status.crcerrcnt++; + } + if ((errtype & CAN_ERR1_ACKERR) != 0U) + { + can->status.ackerrcnt++; + } + if ((errtype & (CAN_ERR1_BDERR | CAN_ERR1_BRERR | CAN_ERR1_BDFERR | CAN_ERR1_BRFERR)) != 0U) + { + can->status.biterrcnt++; + } + can->status.lasterrtype = _can_last_error_get(errtype); + can->status.errcode = _can_error_code_get(errtype); + + if (((errtype & CAN_ERR1_ACKERR) != 0U) || + ((errtype & CAN_ERR1_BOF) != 0U) || + (((errtype & CAN_ERR1_TS) != 0U) && + ((errtype & (CAN_ERR1_STFERR | CAN_ERR1_FMERR | CAN_ERR1_CRCERR | + CAN_ERR1_BDERR | CAN_ERR1_BRERR | CAN_ERR1_STFFERR | + CAN_ERR1_FMFERR | CAN_ERR1_CRCFERR | CAN_ERR1_BDFERR | + CAN_ERR1_BRFERR)) != 0U))) + { + for (rt_uint32_t box_num = 0U; box_num < GD32_CAN_TX_MAILBOX_NUM; box_num++) + { + rt_uint32_t mailbox = box_num + GD32_CAN_TX_MAILBOX_FIRST; + + if (can_mailbox_code_get(can_x, mailbox) == CAN_MB_TX_STATUS_DATA) + { + can_dev->tx_abort_mask |= (rt_uint16_t)BIT(box_num); + can_mailbox_transmit_abort(can_x, mailbox); + } + } + } + can_interrupt_flag_clear(can_x, CAN_INT_FLAG_ERR_SUMMARY); + can_interrupt_flag_clear(can_x, CAN_INT_FLAG_ERR_SUMMARY_FD); + } +#else rt_uint32_t errtype = CAN_ERR(can_x); switch ((errtype & 0x70) >> 4) @@ -854,6 +1568,7 @@ static void _can_ewmc_isr(struct rt_can_device *can) can->status.snderrcnt = (errtype >> 16 & 0xFF); can->status.errcode = errtype & 0x07; CAN_STAT(can_x) |= CAN_STAT_ERRIF; +#endif } static void _can_tx_isr(struct rt_can_device *can) @@ -861,6 +1576,28 @@ static void _can_tx_isr(struct rt_can_device *can) RT_ASSERT(can); rt_uint32_t can_x = ((struct gd32_can_device *)can->parent.user_data)->can_x; +#if defined(SOC_SERIES_GD32H77x_H78X) + struct gd32_can_device *can_dev = (struct gd32_can_device *)can->parent.user_data; + + for (rt_uint32_t mailbox = GD32_CAN_TX_MAILBOX_FIRST; mailbox < GD32_CAN_MAILBOX_NUM; mailbox++) + { + if ((CAN_STAT(can_x) & CAN_INTEN(can_x) & BIT(mailbox)) != 0U) + { + rt_uint32_t box_num = mailbox - GD32_CAN_TX_MAILBOX_FIRST; + rt_uint32_t event = RT_CAN_EVENT_TX_DONE; + + if ((can_dev->tx_abort_mask & BIT(box_num)) != 0U || + can_mailbox_code_get(can_x, mailbox) != CAN_MB_TX_STATUS_INACTIVE) + { + can_dev->tx_abort_mask &= (rt_uint16_t)~BIT(box_num); + can_mailbox_transmit_inactive(can_x, mailbox); + event = RT_CAN_EVENT_TX_FAIL; + } + CAN_STAT(can_x) = BIT(mailbox); + rt_hw_can_isr(can, event | (box_num << 8)); + } + } +#else if (can_interrupt_flag_get(can_x, CAN_INT_FLAG_MTF0)) { if (can_flag_get(can_x, CAN_FLAG_MTFNERR0)) @@ -900,8 +1637,27 @@ static void _can_tx_isr(struct rt_can_device *can) /* Write 0 to Clear transmission status flag RQCPx */ can_interrupt_flag_clear(can_x, CAN_INT_FLAG_MTF2); } +#endif +} + +#if defined(SOC_SERIES_GD32H77x_H78X) +#ifdef BSP_USING_CAN1 +void CAN1_Message_IRQHandler(void) +{ + rt_interrupt_enter(); + _can_rx_isr(&dev_can1.device, 0U); + _can_tx_isr(&dev_can1.device); + rt_interrupt_leave(); } +void CAN1_Error_IRQHandler(void) +{ + rt_interrupt_enter(); + _can_ewmc_isr(&dev_can1.device); + rt_interrupt_leave(); +} +#endif /* BSP_USING_CAN1 */ +#else #ifdef BSP_USING_CAN0 /** * @brief This function handles CAN0 TX interrupts. transmit fifo0/1/2 is empty can trigger this interrupt @@ -985,6 +1741,7 @@ void CAN1_EWMC_IRQHandler(void) rt_interrupt_leave(); } #endif /* BSP_USING_CAN1 */ +#endif /* SOC_SERIES_GD32H77x_H78X */ // void HAL_CAN_ErrorCallback(CAN_HandleTypeDef *hcan) // { @@ -1005,19 +1762,33 @@ void CAN1_EWMC_IRQHandler(void) int rt_hw_can_init(void) { struct can_configure config = CANDEFAULTCONFIG; +#if !defined(SOC_SERIES_GD32H77x_H78X) + can_filter_parameter_struct filter_config = {0}; +#endif + config.privmode = RT_CAN_MODE_NOPRIV; config.ticks = 50; +#if defined(SOC_SERIES_GD32H77x_H78X) && defined(RT_CAN_USING_CANFD) + config.baud_rate_fd = 2000000U; +#endif #ifdef RT_CAN_USING_HDR +#if defined(SOC_SERIES_GD32H77x_H78X) + config.maxhdr = GD32_CAN_RX_MAILBOX_NUM; +#else config.maxhdr = 14; #ifdef CAN1 config.maxhdr = 28; #endif +#endif #endif - gd32_can_gpio_init(); + if (gd32_can_gpio_init() != RT_EOK) + { + return -RT_ERROR; + } +#if !defined(SOC_SERIES_GD32H77x_H78X) /* config default filter */ - can_filter_parameter_struct filter_config = {0}; can_struct_para_init(CAN_FILTER_STRUCT, &filter_config); filter_config.filter_list_high = 0x0000; @@ -1029,13 +1800,22 @@ int rt_hw_can_init(void) filter_config.filter_mode = CAN_FILTERMODE_MASK; filter_config.filter_bits = CAN_FILTERBITS_32BIT; filter_config.filter_enable = ENABLE; +#endif +#if defined(SOC_SERIES_GD32H77x_H78X) +#ifdef BSP_USING_CAN1 + dev_can1.device.config = config; + if (rt_hw_can_register(&dev_can1.device, dev_can1.name, &_can_ops, &dev_can1) != RT_EOK) + { + return -RT_ERROR; + } +#endif +#else #ifdef BSP_USING_CAN0 filter_config.filter_number = 0; dev_can0.filter_config = filter_config; dev_can0.device.config = config; - /* register CAN1 device */ rt_hw_can_register(&dev_can0.device, dev_can0.name, &_can_ops, @@ -1047,14 +1827,14 @@ int rt_hw_can_init(void) dev_can1.filter_config = filter_config; dev_can1.device.config = config; - /* register CAN2 device */ rt_hw_can_register(&dev_can1.device, dev_can1.name, &_can_ops, &dev_can1); #endif /* BSP_USING_CAN1 */ +#endif - return 0; + return RT_EOK; } INIT_BOARD_EXPORT(rt_hw_can_init); diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h index b56cdae35fa..528dc631b93 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_can.h @@ -29,22 +29,46 @@ extern "C" { #define RRESCLMASK (0x3FF << RRESCLSHIFT ) #define SJWMASK (0x3 << SJWSHIFT ) +#if defined(SOC_SERIES_GD32H77x_H78X) +#ifdef RT_CAN_USING_CANFD +#define GD32_CAN_RX_MAILBOX_NUM 3U +#define GD32_CAN_TX_MAILBOX_NUM 4U +#else +#define GD32_CAN_RX_MAILBOX_NUM 16U +#define GD32_CAN_TX_MAILBOX_NUM 16U +#endif +#define GD32_CAN_TX_MAILBOX_FIRST GD32_CAN_RX_MAILBOX_NUM +#define GD32_CAN_MAILBOX_NUM (GD32_CAN_RX_MAILBOX_NUM + GD32_CAN_TX_MAILBOX_NUM) +#define GD32_CAN_RX_INT_MASK BITS(0, GD32_CAN_RX_MAILBOX_NUM - 1U) +#define GD32_CAN_TX_INT_MASK BITS(GD32_CAN_TX_MAILBOX_FIRST, GD32_CAN_MAILBOX_NUM - 1U) +#endif + struct gd32_can { rcu_periph_enum can_clk; +#if defined(SOC_SERIES_GD32H77x_H78X) + const char *tx_pin_name; + const char *rx_pin_name; + const char *tx_alternate; + const char *rx_alternate; +#else rcu_periph_enum tx_clk; rcu_periph_enum rx_clk; -#if defined SOC_SERIES_GD32F4xx || defined SOC_SERIES_GD32F5xx +#if defined(SOC_SERIES_GD32F4xx) || defined(SOC_SERIES_GD32F5xx) uint32_t alt_func_num; #endif rt_base_t tx_pin; rt_base_t rx_pin; +#endif }; struct gd32_baudrate_tbl { rt_uint32_t baudrate; rt_uint32_t sjw; +#if defined(SOC_SERIES_GD32H77x_H78X) + rt_uint32_t prop_seg; +#endif rt_uint32_t tseg1; rt_uint32_t tseg2; rt_uint32_t prescaler; @@ -55,7 +79,15 @@ struct gd32_can_device { char *name; rt_uint32_t can_x; +#if defined(SOC_SERIES_GD32H77x_H78X) + can_operation_modes_enum mode; + can_mailbox_descriptor_struct tx_message[GD32_CAN_TX_MAILBOX_NUM]; + can_mailbox_descriptor_struct rx_message[GD32_CAN_RX_MAILBOX_NUM]; + rt_uint8_t rx_message_valid[GD32_CAN_RX_MAILBOX_NUM]; + rt_uint16_t tx_abort_mask; +#else can_filter_parameter_struct filter_config; +#endif struct rt_can_device device; /* inherit from can device */ }; From 4e4a262641ae46a638de9635d4f17d9c709518c7 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:27 +0800 Subject: [PATCH 13/19] [bsp][gd32] Add GD32H77D OSPI flash support Add the OSPI adapter and GD25Q64E flash integration. Protect MDMA cache maintenance from interrupts and require whole cache lines for DMA buffers; use polling for unaligned transfers. Let the peripheral package select OSPI, OSPIM and MDMA sources. Verified 1 MiB filesystem write/read comparisons and 70 buffer-boundary cases with guard bytes. MDMA was exercised for reads; page programming uses polling. Keep OSPI disabled by default. --- bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + .../gd32h77d-ginopi/board/drv_qspi_flash.c | 480 +++++++++ bsp/gd32/arm/gd32h77d-ginopi/board/fal_cfg.h | 31 + .../arm/libraries/gd32_drivers/SConscript | 7 +- .../arm/libraries/gd32_drivers/drv_ospi.c | 913 ++++++++++++++++++ .../arm/libraries/gd32_drivers/drv_ospi.h | 30 + 6 files changed, 1463 insertions(+), 1 deletion(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_qspi_flash.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/fal_cfg.h create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.c create mode 100644 bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.h diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index c3227e2fd2e..8615a5bcd02 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -12,6 +12,9 @@ board.c if GetDepend(['BSP_USING_SDRAM']): src += ['drv_sdram_port.c'] +if GetDepend(['BSP_USING_FLASH_FATFS']): + src += ['drv_qspi_flash.c'] + if GetDepend(['BSP_USING_FS']): src += ['drv_filesystem.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_qspi_flash.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_qspi_flash.c new file mode 100644 index 00000000000..53321fe1d64 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_qspi_flash.c @@ -0,0 +1,480 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-07-31 RT-Thread add GD25X512ME OSPI flash support + * 2026-08-31 CYFS adapt GD25Q64E QSPI flash + */ + +#include +#include +#include + +#include "drv_ospi.h" + +#ifdef BSP_USING_FLASH_FATFS + +#define DBG_TAG "drv.qspi_flash" +#define DBG_LVL DBG_INFO +#include + +#define GD25Q64E_DEVICE_NAME "qspi_flash0" +#define GD25Q64E_BUS_NAME "ospi0" +#define GD25Q64E_SECTOR_SIZE (4U * 1024U) +#define GD25Q64E_PAGE_SIZE 256U + +#define GD25Q64E_EXPECTED_ID 0xC84017U + +#define GD25Q64E_CMD_WRITE_ENABLE 0x06U +#define GD25Q64E_CMD_READ_STATUS1 0x05U +#define GD25Q64E_CMD_READ_STATUS2 0x35U +#define GD25Q64E_CMD_WRITE_STATUS2 0x31U +#define GD25Q64E_CMD_READ_ID 0x9FU +#define GD25Q64E_CMD_RESET_ENABLE 0x66U +#define GD25Q64E_CMD_RESET_MEMORY 0x99U +#define GD25Q64E_CMD_QUAD_READ 0x6BU +#define GD25Q64E_CMD_QUAD_PAGE_PROGRAM 0x32U +#define GD25Q64E_CMD_ERASE_4K 0x20U + +#define GD25Q64E_STATUS_WIP 0x01U +#define GD25Q64E_STATUS_WEL 0x02U +#define GD25Q64E_STATUS2_QE 0x02U + +#define GD25Q64E_READ_DUMMY_CYCLES 8U +#define GD25Q64E_PROGRAM_TIMEOUT_MS 1000U +#define GD25Q64E_ERASE_TIMEOUT_MS 2000U + +static struct rt_qspi_device *gd25q64e_device; +static struct rt_mutex gd25q64e_lock; +static rt_bool_t gd25q64e_lock_initialized; +static rt_bool_t gd25q64e_ready; + +static rt_err_t gd25q64e_transfer(rt_uint8_t instruction, + rt_uint8_t instruction_lines, + rt_uint32_t address, + rt_uint8_t address_size, + rt_uint8_t address_lines, + rt_uint32_t dummy_cycles, + const rt_uint8_t *send_buf, + rt_uint8_t *recv_buf, + rt_size_t size, + rt_uint8_t data_lines) +{ + struct rt_qspi_message message = {0}; + rt_ssize_t result; + + message.instruction.content = instruction; + message.instruction.qspi_lines = instruction_lines; + message.address.content = address; + message.address.size = address_size; + message.address.qspi_lines = address_lines; + message.dummy_cycles = dummy_cycles; + message.qspi_data_lines = data_lines; + message.parent.send_buf = send_buf; + message.parent.recv_buf = recv_buf; + message.parent.length = size; + message.parent.cs_take = 1; + message.parent.cs_release = 1; + message.parent.next = RT_NULL; + + result = rt_qspi_transfer_message(gd25q64e_device, &message); + if (size == 0U) + { + return result > 0 ? RT_EOK : -RT_EIO; + } + + return result == (rt_ssize_t)size ? RT_EOK : -RT_EIO; +} + +static rt_err_t gd25q64e_command(rt_uint8_t instruction) +{ + return gd25q64e_transfer(instruction, 1, 0, 0, 0, 0, + RT_NULL, RT_NULL, 0, 0); +} + +static rt_err_t gd25q64e_read_status1(rt_uint8_t *status) +{ + return gd25q64e_transfer(GD25Q64E_CMD_READ_STATUS1, 1, + 0, 0, 0, 0, + RT_NULL, status, 1, 1); +} + +static rt_err_t gd25q64e_read_status2(rt_uint8_t *status) +{ + return gd25q64e_transfer(GD25Q64E_CMD_READ_STATUS2, 1, + 0, 0, 0, 0, + RT_NULL, status, 1, 1); +} + +static rt_err_t gd25q64e_wait_status(rt_uint8_t mask, + rt_uint8_t expected, + rt_uint32_t timeout_ms, + rt_bool_t delay_while_busy) +{ + rt_uint32_t start_ms; + rt_uint8_t status; + rt_err_t result; + + start_ms = (rt_uint32_t)rt_tick_get_millisecond(); + do + { + result = gd25q64e_read_status1(&status); + if (result != RT_EOK) + { + return result; + } + if ((status & mask) == expected) + { + return RT_EOK; + } + + if (delay_while_busy) + { + rt_thread_mdelay(1); + } + } + while ((rt_uint32_t)((rt_uint32_t)rt_tick_get_millisecond() - start_ms) < timeout_ms); + + return -RT_ETIMEOUT; +} + +static rt_err_t gd25q64e_write_enable(void) +{ + rt_err_t result; + + result = gd25q64e_command(GD25Q64E_CMD_WRITE_ENABLE); + if (result != RT_EOK) + { + return result; + } + + return gd25q64e_wait_status(GD25Q64E_STATUS_WEL, + GD25Q64E_STATUS_WEL, + GD25Q64E_PROGRAM_TIMEOUT_MS, + RT_FALSE); +} + +static rt_err_t gd25q64e_set_qe(void) +{ + rt_uint8_t status2 = 0; + rt_err_t result; + + result = gd25q64e_read_status2(&status2); + if (result != RT_EOK || (status2 & GD25Q64E_STATUS2_QE) != 0U) + { + return result; + } + + status2 |= GD25Q64E_STATUS2_QE; + result = gd25q64e_write_enable(); + if (result == RT_EOK) + { + result = gd25q64e_transfer(GD25Q64E_CMD_WRITE_STATUS2, 1, + 0, 0, 0, 0, + &status2, RT_NULL, 1, 1); + } + if (result == RT_EOK) + { + result = gd25q64e_wait_status(GD25Q64E_STATUS_WIP, 0, + GD25Q64E_PROGRAM_TIMEOUT_MS, + RT_TRUE); + } + if (result == RT_EOK) + { + result = gd25q64e_read_status2(&status2); + } + + return result == RT_EOK && (status2 & GD25Q64E_STATUS2_QE) != 0U ? + RT_EOK : -RT_EIO; +} + +static rt_err_t gd25q64e_read_id(rt_uint32_t *flash_id) +{ + rt_uint8_t id[3] = {0}; + rt_err_t result; + + result = gd25q64e_transfer(GD25Q64E_CMD_READ_ID, 1, + 0, 0, 0, 0, + RT_NULL, id, sizeof(id), 1); + if (result == RT_EOK) + { + *flash_id = ((rt_uint32_t)id[0] << 16) | + ((rt_uint32_t)id[1] << 8) | + (rt_uint32_t)id[2]; + } + + return result; +} + +static rt_err_t gd25q64e_reset(void) +{ + rt_err_t result; + + result = gd25q64e_command(GD25Q64E_CMD_RESET_ENABLE); + if (result == RT_EOK) + { + result = gd25q64e_command(GD25Q64E_CMD_RESET_MEMORY); + } + + rt_thread_mdelay(1); + return result; +} + +static int gd25q64e_init(void) +{ + struct rt_qspi_configuration configuration = {0}; + rt_device_t device; + rt_uint32_t flash_id = 0; + rt_err_t result; + + if (gd25q64e_ready) + { + return RT_EOK; + } + + if (!gd25q64e_lock_initialized) + { + result = rt_mutex_init(&gd25q64e_lock, "qspi_fl", RT_IPC_FLAG_PRIO); + if (result != RT_EOK) + { + return result; + } + gd25q64e_lock_initialized = RT_TRUE; + } + + device = rt_device_find(GD25Q64E_DEVICE_NAME); + if (device == RT_NULL) + { + result = rt_hw_ospi_device_attach(GD25Q64E_BUS_NAME, + GD25Q64E_DEVICE_NAME, + 4, RT_NULL, RT_NULL); + if (result != RT_EOK) + { + LOG_E("attach %s to %s failed: %d", + GD25Q64E_DEVICE_NAME, GD25Q64E_BUS_NAME, result); + return result; + } + device = rt_device_find(GD25Q64E_DEVICE_NAME); + } + if (device == RT_NULL) + { + return -RT_ENOSYS; + } + + gd25q64e_device = (struct rt_qspi_device *)device; + configuration.parent.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | RT_SPI_MSB; + configuration.parent.data_width = 8; + configuration.parent.max_hz = BSP_OSPI_FLASH_MAX_HZ; + configuration.medium_size = GD25Q64E_FLASH_SIZE; + configuration.ddr_mode = 0; + configuration.qspi_dl_width = 4; + result = rt_qspi_configure(gd25q64e_device, &configuration); + if (result != RT_EOK) + { + LOG_E("configure %s failed: %d", GD25Q64E_DEVICE_NAME, result); + return result; + } + + result = rt_mutex_take(&gd25q64e_lock, RT_WAITING_FOREVER); + if (result != RT_EOK) + { + return result; + } + + result = gd25q64e_reset(); + if (result == RT_EOK) + { + result = gd25q64e_read_id(&flash_id); + } + if (result == RT_EOK && flash_id != GD25Q64E_EXPECTED_ID) + { + LOG_E("unexpected flash ID: 0x%06x", flash_id); + result = -RT_EIO; + } + if (result == RT_EOK) + { + result = gd25q64e_set_qe(); + } + if (result == RT_EOK) + { + gd25q64e_ready = RT_TRUE; + LOG_I("GD25Q64E ready, ID 0x%06x, clock %u Hz", + flash_id, (unsigned int)BSP_OSPI_FLASH_MAX_HZ); + } + + rt_mutex_release(&gd25q64e_lock); + return result; +} +INIT_DEVICE_EXPORT(gd25q64e_init); + +static int gd25q64e_read(long offset, rt_uint8_t *buf, rt_size_t size) +{ + rt_err_t result; + + if (!gd25q64e_ready) + { + return -RT_EIO; + } + if (offset < 0 || buf == RT_NULL || (rt_size_t)offset > GD25Q64E_FLASH_SIZE || + size > GD25Q64E_FLASH_SIZE - (rt_size_t)offset) + { + return -RT_EINVAL; + } + if (size == 0U) + { + return 0; + } + + result = rt_mutex_take(&gd25q64e_lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + result = gd25q64e_transfer(GD25Q64E_CMD_QUAD_READ, 1, + (rt_uint32_t)offset, 24, 1, + GD25Q64E_READ_DUMMY_CYCLES, + RT_NULL, buf, size, 4); + rt_mutex_release(&gd25q64e_lock); + } + + return result == RT_EOK ? (int)size : result; +} + +static int gd25q64e_write(long offset, const rt_uint8_t *buf, rt_size_t size) +{ + rt_size_t remaining; + rt_size_t page_remaining; + rt_size_t write_size; + rt_uint32_t address; + rt_err_t result; + + if (!gd25q64e_ready) + { + return -RT_EIO; + } + if (offset < 0 || buf == RT_NULL || (rt_size_t)offset > GD25Q64E_FLASH_SIZE || + size > GD25Q64E_FLASH_SIZE - (rt_size_t)offset) + { + return -RT_EINVAL; + } + if (size == 0U) + { + return 0; + } + + result = rt_mutex_take(&gd25q64e_lock, RT_WAITING_FOREVER); + if (result != RT_EOK) + { + return result; + } + + address = (rt_uint32_t)offset; + remaining = size; + while (remaining > 0U) + { + page_remaining = GD25Q64E_PAGE_SIZE - (address % GD25Q64E_PAGE_SIZE); + write_size = remaining < page_remaining ? remaining : page_remaining; + + result = gd25q64e_write_enable(); + if (result == RT_EOK) + { + result = gd25q64e_transfer(GD25Q64E_CMD_QUAD_PAGE_PROGRAM, 1, + address, 24, 1, 0, + buf, RT_NULL, write_size, 4); + } + if (result == RT_EOK) + { + result = gd25q64e_wait_status(GD25Q64E_STATUS_WIP, 0, + GD25Q64E_PROGRAM_TIMEOUT_MS, + RT_TRUE); + } + if (result != RT_EOK) + { + break; + } + + address += (rt_uint32_t)write_size; + buf += write_size; + remaining -= write_size; + } + + rt_mutex_release(&gd25q64e_lock); + return result == RT_EOK ? (int)size : result; +} + +static int gd25q64e_erase(long offset, rt_size_t size) +{ + rt_size_t remaining; + rt_uint32_t address; + rt_err_t result; + + if (!gd25q64e_ready) + { + return -RT_EIO; + } + if (offset < 0 || ((rt_size_t)offset % GD25Q64E_SECTOR_SIZE) != 0U || + (size % GD25Q64E_SECTOR_SIZE) != 0U || + (rt_size_t)offset > GD25Q64E_FLASH_SIZE || + size > GD25Q64E_FLASH_SIZE - (rt_size_t)offset) + { + return -RT_EINVAL; + } + if (size == 0U) + { + return 0; + } + + result = rt_mutex_take(&gd25q64e_lock, RT_WAITING_FOREVER); + if (result != RT_EOK) + { + return result; + } + + address = (rt_uint32_t)offset; + remaining = size; + while (remaining > 0U) + { + result = gd25q64e_write_enable(); + if (result == RT_EOK) + { + result = gd25q64e_transfer(GD25Q64E_CMD_ERASE_4K, 1, + address, 24, 1, 0, + RT_NULL, RT_NULL, 0, 0); + } + if (result == RT_EOK) + { + result = gd25q64e_wait_status(GD25Q64E_STATUS_WIP, 0, + GD25Q64E_ERASE_TIMEOUT_MS, + RT_TRUE); + } + if (result != RT_EOK) + { + break; + } + + address += GD25Q64E_SECTOR_SIZE; + remaining -= GD25Q64E_SECTOR_SIZE; + } + + rt_mutex_release(&gd25q64e_lock); + return result == RT_EOK ? (int)size : result; +} + +const struct fal_flash_dev gd25q64e_flash = +{ + .name = "gd25q64e", + .addr = 0, + .len = GD25Q64E_FLASH_SIZE, + .blk_size = GD25Q64E_SECTOR_SIZE, + .ops = + { + .init = gd25q64e_init, + .read = gd25q64e_read, + .write = gd25q64e_write, + .erase = gd25q64e_erase, + }, + .write_gran = 1, +}; + +#endif /* BSP_USING_FLASH_FATFS */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/fal_cfg.h b/bsp/gd32/arm/gd32h77d-ginopi/board/fal_cfg.h new file mode 100644 index 00000000000..6db2fc34f7b --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/fal_cfg.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __FAL_CFG_H__ +#define __FAL_CFG_H__ + +#include + +#define GD25Q64E_FLASH_DEV_NAME "gd25q64e" +#define GD25Q64E_FILESYSTEM_PART_NAME "filesystem" +#define GD25Q64E_FLASH_SIZE (8U * 1024U * 1024U) + +extern const struct fal_flash_dev gd25q64e_flash; + +#define FAL_FLASH_DEV_TABLE \ +{ \ + &gd25q64e_flash, \ +} + +#ifdef FAL_PART_HAS_TABLE_CFG +#define FAL_PART_TABLE \ +{ \ + {FAL_PART_MAGIC_WORD, GD25Q64E_FILESYSTEM_PART_NAME, \ + GD25Q64E_FLASH_DEV_NAME, 0, GD25Q64E_FLASH_SIZE, 0}, \ +} +#endif /* FAL_PART_HAS_TABLE_CFG */ + +#endif /* __FAL_CFG_H__ */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/SConscript b/bsp/gd32/arm/libraries/gd32_drivers/SConscript index 8858d4296ea..475659f1449 100644 --- a/bsp/gd32/arm/libraries/gd32_drivers/SConscript +++ b/bsp/gd32/arm/libraries/gd32_drivers/SConscript @@ -3,6 +3,7 @@ Import('rtconfig') from building import * cwd = GetCurrentDir() +CPPDEFINES = [] # add the general drivers. src = Split(""" @@ -28,6 +29,10 @@ if GetDepend(['RT_USING_I2C']): if GetDepend('RT_USING_SPI'): src += ['drv_spi.c'] +# add ospi drivers. +if GetDepend('RT_USING_QSPI') and GetDepend('BSP_USING_OSPI0'): + src += ['drv_ospi.c'] + # add spi flash drivers. if GetDepend('RT_USING_SFUD'): src += ['drv_spi_flash.c', 'drv_spi.c'] @@ -94,6 +99,6 @@ path = [cwd] path += [cwd + "/config"] path += [cwd + "/usb"] -group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path) +group = DefineGroup('Drivers', src, depend = [''], CPPPATH = path, CPPDEFINES = CPPDEFINES) Return('group') diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.c b/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.c new file mode 100644 index 00000000000..a436b24f85e --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.c @@ -0,0 +1,913 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-07-31 RT-Thread first implementation + * 2026-09-23 CYFS adapt OSPI0 QSPI flash with MDMA cache and buffer protection + */ + +#include "board.h" +#include "drv_gpio.h" +#include "drv_ospi.h" + +#ifdef BSP_USING_OSPI0 + +#include "gd32h77x_78x_ospi.h" +#include "gd32h77x_78x_ospim.h" +#ifdef BSP_OSPI0_USING_MDMA +#include "gd32h77x_78x_mdma.h" +#endif + +#define LOG_TAG "drv.ospi" +#include + +#define GD32_OSPI_FIFO_CHUNK_SIZE 16U +#define GD32_OSPI_FIFO_WORD_SIZE 4U + +#ifdef BSP_OSPI0_USING_MDMA +#define GD32_OSPI_MDMA_CHANNEL ((mdma_channel_enum)BSP_OSPI0_MDMA_CHANNEL) +#define GD32_OSPI_MDMA_BUFFER_SIZE 16U +#define GD32_OSPI_MDMA_MIN_SIZE 512U +#define GD32_OSPI_MDMA_MAX_SIZE 0x10000U +#define GD32_OSPI_MDMA_TIMEOUT_MS 1000U +#ifdef RT_USING_CACHE +#define GD32_OSPI_MDMA_ALIGNMENT 32U +#else +#define GD32_OSPI_MDMA_ALIGNMENT GD32_OSPI_MDMA_BUFFER_SIZE +#endif +#define GD32_OSPI_ITCM_START 0x00000000U +#define GD32_OSPI_ITCM_END 0x00020000U +#define GD32_OSPI_DTCM_START 0x20000000U +#define GD32_OSPI_DTCM_END 0x20040000U +#define GD32_OSPI_AHB_SRAM_START 0x30000000U +#define GD32_OSPI_AHB_SRAM_END 0x40000000U +#endif + +struct gd32_ospi_pin +{ + const char *name; + const char *alternate; +}; + +struct gd32_ospi_bus +{ + struct rt_spi_bus parent; + ospi_parameter_struct init; +}; + +static struct gd32_ospi_bus ospi0_bus; + +#ifdef BSP_OSPI0_USING_MDMA +#ifdef RT_USING_CONSOLE +static rt_bool_t ospi0_mdma_reported; +#endif + +static rt_bool_t gd32_ospi_mdma_can_transfer(const void *data, rt_size_t length) +{ + return data != RT_NULL && + ((rt_ubase_t)data & (GD32_OSPI_MDMA_ALIGNMENT - 1U)) == 0U && + length >= GD32_OSPI_MDMA_MIN_SIZE && + length <= GD32_OSPI_MDMA_MAX_SIZE && + (length & (GD32_OSPI_MDMA_ALIGNMENT - 1U)) == 0U; +} + +#ifdef RT_USING_CACHE +static void gd32_ospi_mdma_cache_ops(int ops, void *data, rt_size_t length) +{ + rt_base_t level; + + /* Keep cache maintenance atomic with respect to interrupt stack accesses. + * DMA buffers must own whole cache lines to preserve neighbouring data. */ + level = rt_hw_interrupt_disable(); + rt_hw_cpu_dcache_ops(ops, data, (int)length); + rt_hw_interrupt_enable(level); +} +#endif + +static uint32_t gd32_ospi_mdma_memory_bus(const void *data) +{ + rt_ubase_t address = (rt_ubase_t)data; + + if ((address >= GD32_OSPI_ITCM_START && address < GD32_OSPI_ITCM_END) || + (address >= GD32_OSPI_DTCM_START && address < GD32_OSPI_DTCM_END) || + (address >= GD32_OSPI_AHB_SRAM_START && address < GD32_OSPI_AHB_SRAM_END)) + { + return MDMA_SOURCE_AHB_TCM; + } + + return MDMA_SOURCE_AXI; +} + +static void gd32_ospi_mdma_report(const char *operation, rt_size_t length) +{ +#ifdef RT_USING_CONSOLE + if (!ospi0_mdma_reported && rt_console_get_device() != RT_NULL) + { + ospi0_mdma_reported = RT_TRUE; + LOG_I("ospi0 MDMA channel %d active (%s, %u bytes)", + BSP_OSPI0_MDMA_CHANNEL, operation, (rt_uint32_t)length); + } +#else + RT_UNUSED(operation); + RT_UNUSED(length); +#endif +} + +static void gd32_ospi_mdma_configure(void *data, rt_size_t length, rt_bool_t receive) +{ + mdma_parameter_struct mdma_init_struct; + uint32_t data_bus; + + data_bus = gd32_ospi_mdma_memory_bus(data); + mdma_channel_deinit(GD32_OSPI_MDMA_CHANNEL); + mdma_para_struct_init(&mdma_init_struct); + mdma_init_struct.request = MDMA_REQUEST_OSPI0_FT; + mdma_init_struct.trans_trig_mode = MDMA_BUFFER_TRANSFER; + mdma_init_struct.priority = MDMA_PRIORITY_ULTRA_HIGH; + mdma_init_struct.source_data_size = MDMA_SOURCE_DATASIZE_32BIT; + mdma_init_struct.dest_data_size = MDMA_DESTINATION_DATASIZE_32BIT; + mdma_init_struct.buff_trans_len = GD32_OSPI_MDMA_BUFFER_SIZE - 1U; + mdma_init_struct.tbytes_num_in_block = length; + + if (receive) + { + mdma_init_struct.source_inc = MDMA_SOURCE_INCREASE_DISABLE; + mdma_init_struct.dest_inc = MDMA_DESTINATION_INCREASE_32BIT; + mdma_init_struct.source_burst = MDMA_SOURCE_BURST_SINGLE; + mdma_init_struct.dest_burst = MDMA_DESTINATION_BURST_4BEATS; + mdma_init_struct.source_addr = (uint32_t)&OSPI_DATA(OSPI0); + mdma_init_struct.destination_addr = (uint32_t)data; + mdma_init_struct.source_bus = MDMA_SOURCE_AXI; + mdma_init_struct.destination_bus = data_bus == MDMA_SOURCE_AHB_TCM ? + MDMA_DESTINATION_AHB_TCM : + MDMA_DESTINATION_AXI; + } + else + { + mdma_init_struct.source_inc = MDMA_SOURCE_INCREASE_32BIT; + mdma_init_struct.dest_inc = MDMA_DESTINATION_INCREASE_DISABLE; + mdma_init_struct.source_burst = MDMA_SOURCE_BURST_4BEATS; + mdma_init_struct.dest_burst = MDMA_DESTINATION_BURST_SINGLE; + mdma_init_struct.source_addr = (uint32_t)data; + mdma_init_struct.destination_addr = (uint32_t)&OSPI_DATA(OSPI0); + mdma_init_struct.source_bus = data_bus; + mdma_init_struct.destination_bus = MDMA_DESTINATION_AXI; + } + + mdma_init(GD32_OSPI_MDMA_CHANNEL, &mdma_init_struct); +} + +static rt_bool_t gd32_ospi_mdma_has_error(void) +{ + return SET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_ERR) || + SET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_LDTERR) || + SET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_MDTERR) || + SET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_ASERR) || + SET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_BZERR); +} + +static rt_err_t gd32_ospi_mdma_wait(void) +{ + rt_tick_t start; + rt_tick_t timeout; + rt_err_t result = RT_EOK; + uint32_t ospi_status; + + start = rt_tick_get(); + timeout = rt_tick_from_millisecond(GD32_OSPI_MDMA_TIMEOUT_MS); + + while (RESET == mdma_flag_get(GD32_OSPI_MDMA_CHANNEL, MDMA_FLAG_CHTCF)) + { + if (gd32_ospi_mdma_has_error() || + RESET != (OSPI_STAT(OSPI0) & OSPI_FLAG_TERR)) + { + result = -RT_EIO; + break; + } + if ((rt_tick_get() - start) >= timeout) + { + result = -RT_ETIMEOUT; + break; + } + } + + while (result == RT_EOK && RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_TC)) + { + if (RESET != (OSPI_STAT(OSPI0) & OSPI_FLAG_TERR)) + { + result = -RT_EIO; + break; + } + if ((rt_tick_get() - start) >= timeout) + { + result = -RT_ETIMEOUT; + break; + } + } + + ospi_status = OSPI_STAT(OSPI0); + ospi_mdma_disable(OSPI0); + mdma_channel_disable(GD32_OSPI_MDMA_CHANNEL); + + if (result != RT_EOK && RESET != (ospi_status & OSPI_FLAG_BUSY)) + { + OSPI_CTL(OSPI0) |= OSPI_CTL_ABORT; + start = rt_tick_get(); + while (RESET != (OSPI_STAT(OSPI0) & OSPI_FLAG_BUSY) && + (rt_tick_get() - start) < timeout) + { + } + } + + OSPI_STATC(OSPI0) = OSPI_STATC_TCC | OSPI_STATC_TERRC; + if (result != RT_EOK) + { + LOG_E("MDMA failed: %d, OSPI: %08x, MDMA: %08x/%08x, addr: %08x", + result, ospi_status, MDMA_CHXSTAT0(GD32_OSPI_MDMA_CHANNEL), + MDMA_CHXSTAT1(GD32_OSPI_MDMA_CHANNEL), + mdma_transfer_error_address_get(GD32_OSPI_MDMA_CHANNEL)); + } + mdma_channel_deinit(GD32_OSPI_MDMA_CHANNEL); + + return result; +} + +static rt_err_t gd32_ospi_mdma_transmit(const rt_uint8_t *data, rt_size_t length) +{ + gd32_ospi_mdma_configure((void *)data, length, RT_FALSE); +#ifdef RT_USING_CACHE + gd32_ospi_mdma_cache_ops(RT_HW_CACHE_FLUSH, (void *)data, length); +#endif + + mdma_channel_enable(GD32_OSPI_MDMA_CHANNEL); + OSPI_CTL(OSPI0) = (OSPI_CTL(OSPI0) & ~OSPI_CTL_FMOD) | OSPI_INDIRECT_WRITE; + ospi_mdma_enable(OSPI0); + gd32_ospi_mdma_report("write", length); + + return gd32_ospi_mdma_wait(); +} + +static rt_err_t gd32_ospi_mdma_receive(const ospi_parameter_struct *configuration, + rt_uint8_t *data, + rt_size_t length) +{ + rt_err_t result; + rt_uint32_t address; + rt_uint32_t instruction; + + address = OSPI_ADDR(OSPI0); + instruction = OSPI_INS(OSPI0); + gd32_ospi_mdma_configure(data, length, RT_TRUE); +#ifdef RT_USING_CACHE + gd32_ospi_mdma_cache_ops(RT_HW_CACHE_FLUSH | RT_HW_CACHE_INVALIDATE, + data, length); +#endif + + mdma_channel_enable(GD32_OSPI_MDMA_CHANNEL); + OSPI_CTL(OSPI0) = (OSPI_CTL(OSPI0) & ~OSPI_CTL_FMOD) | OSPI_INDIRECT_READ; + ospi_mdma_enable(OSPI0); + gd32_ospi_mdma_report("read", length); + + if (configuration->memory_type == OSPI_HYPERBUS_MEMORY_MODE) + { + OSPI_ADDR(OSPI0) = address; + } + else if ((OSPI_TCFG(OSPI0) & OSPI_TCFG_ADDRMOD) != OSPI_ADDRESS_NONE) + { + OSPI_ADDR(OSPI0) = address; + } + else + { + OSPI_INS(OSPI0) = instruction; + } + + result = gd32_ospi_mdma_wait(); +#ifdef RT_USING_CACHE + gd32_ospi_mdma_cache_ops(RT_HW_CACHE_INVALIDATE, data, length); +#endif + + return result; +} +#endif /* BSP_OSPI0_USING_MDMA */ + +static rt_err_t gd32_ospi_transmit(const rt_uint8_t *data, rt_size_t length) +{ + rt_size_t index; + +#ifdef BSP_OSPI0_USING_MDMA + if (gd32_ospi_mdma_can_transfer(data, length)) + { + return gd32_ospi_mdma_transmit(data, length); + } +#endif + + OSPI_CTL(OSPI0) = (OSPI_CTL(OSPI0) & ~OSPI_CTL_FMOD) | OSPI_INDIRECT_WRITE; + + while (length >= GD32_OSPI_FIFO_CHUNK_SIZE) + { + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_FT)) + { + } + + for (index = 0; index < GD32_OSPI_FIFO_CHUNK_SIZE; index += GD32_OSPI_FIFO_WORD_SIZE) + { + OSPI_DATA(OSPI0) = (rt_uint32_t)data[index] | + ((rt_uint32_t)data[index + 1U] << 8) | + ((rt_uint32_t)data[index + 2U] << 16) | + ((rt_uint32_t)data[index + 3U] << 24); + } + data += GD32_OSPI_FIFO_CHUNK_SIZE; + length -= GD32_OSPI_FIFO_CHUNK_SIZE; + } + + if (length > 0U) + { + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_FT)) + { + } + + while (length >= GD32_OSPI_FIFO_WORD_SIZE) + { + OSPI_DATA(OSPI0) = (rt_uint32_t)data[0] | + ((rt_uint32_t)data[1] << 8) | + ((rt_uint32_t)data[2] << 16) | + ((rt_uint32_t)data[3] << 24); + data += GD32_OSPI_FIFO_WORD_SIZE; + length -= GD32_OSPI_FIFO_WORD_SIZE; + } + while (length > 0U) + { + *((__IO rt_uint8_t *)&OSPI_DATA(OSPI0)) = *data++; + length--; + } + } + + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_TC)) + { + } + OSPI_STATC(OSPI0) = OSPI_STATC_TCC; + + return RT_EOK; +} + +static rt_err_t gd32_ospi_receive(const ospi_parameter_struct *configuration, + rt_uint8_t *data, + rt_size_t length) +{ + rt_size_t index; + rt_uint32_t address; + rt_uint32_t instruction; + rt_uint32_t word; + +#ifdef BSP_OSPI0_USING_MDMA + if (gd32_ospi_mdma_can_transfer(data, length)) + { + return gd32_ospi_mdma_receive(configuration, data, length); + } +#endif + + address = OSPI_ADDR(OSPI0); + instruction = OSPI_INS(OSPI0); + OSPI_CTL(OSPI0) = (OSPI_CTL(OSPI0) & ~OSPI_CTL_FMOD) | OSPI_INDIRECT_READ; + + if (configuration->memory_type == OSPI_HYPERBUS_MEMORY_MODE) + { + OSPI_ADDR(OSPI0) = address; + } + else if ((OSPI_TCFG(OSPI0) & OSPI_TCFG_ADDRMOD) != OSPI_ADDRESS_NONE) + { + OSPI_ADDR(OSPI0) = address; + } + else + { + OSPI_INS(OSPI0) = instruction; + } + + while (length >= GD32_OSPI_FIFO_CHUNK_SIZE) + { + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_FT)) + { + } + + for (index = 0; index < GD32_OSPI_FIFO_CHUNK_SIZE; index += GD32_OSPI_FIFO_WORD_SIZE) + { + word = OSPI_DATA(OSPI0); + data[index] = (rt_uint8_t)word; + data[index + 1U] = (rt_uint8_t)(word >> 8); + data[index + 2U] = (rt_uint8_t)(word >> 16); + data[index + 3U] = (rt_uint8_t)(word >> 24); + } + data += GD32_OSPI_FIFO_CHUNK_SIZE; + length -= GD32_OSPI_FIFO_CHUNK_SIZE; + } + + if (length > 0U) + { + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_TC)) + { + } + + while (length >= GD32_OSPI_FIFO_WORD_SIZE) + { + word = OSPI_DATA(OSPI0); + data[0] = (rt_uint8_t)word; + data[1] = (rt_uint8_t)(word >> 8); + data[2] = (rt_uint8_t)(word >> 16); + data[3] = (rt_uint8_t)(word >> 24); + data += GD32_OSPI_FIFO_WORD_SIZE; + length -= GD32_OSPI_FIFO_WORD_SIZE; + } + while (length > 0U) + { + *data++ = *((__IO rt_uint8_t *)&OSPI_DATA(OSPI0)); + length--; + } + } + else + { + while (RESET == (OSPI_STAT(OSPI0) & OSPI_FLAG_TC)) + { + } + } + + OSPI_STATC(OSPI0) = OSPI_STATC_TCC; + + return RT_EOK; +} + +static const struct gd32_ospi_pin ospi0_pins[] = +{ + /* OSPI0 is wired to the board's four-line QSPI flash. */ + {BSP_OSPI0_CS_PIN, BSP_OSPI0_CS_AFIO}, + {BSP_OSPI0_CLK_PIN, BSP_OSPI0_CLK_AFIO}, + {BSP_OSPI0_D0_PIN, BSP_OSPI0_D0_AFIO}, + {BSP_OSPI0_D1_PIN, BSP_OSPI0_D1_AFIO}, + {BSP_OSPI0_D2_PIN, BSP_OSPI0_D2_AFIO}, + {BSP_OSPI0_D3_PIN, BSP_OSPI0_D3_AFIO}, +}; + +static rt_err_t gd32_ospi_gpio_init(void) +{ + rt_size_t index; + + for (index = 0; index < sizeof(ospi0_pins) / sizeof(ospi0_pins[0]); index++) + { + uint32_t port; + uint32_t pin; + uint32_t alternate; + rcu_periph_enum clock; + + if (get_pin_config(ospi0_pins[index].name, &port, &pin, &clock) != RT_EOK) + { + LOG_E("invalid OSPI0 pin: %s", ospi0_pins[index].name); + return -RT_EINVAL; + } + + if (pin_alternate_config(ospi0_pins[index].alternate, &alternate) != RT_EOK) + { + LOG_E("invalid OSPI0 alternate function: %s", ospi0_pins[index].alternate); + return -RT_EINVAL; + } + + rcu_periph_clock_enable(clock); + gpio_af_set(port, alternate, pin); + gpio_mode_set(port, GPIO_MODE_AF, GPIO_PUPD_NONE, pin); + gpio_output_options_set(port, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, pin); + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_hardware_init(void) +{ + rt_err_t result; + + rcu_ospi_clock_config(RCU_OSPI_AHB); + rcu_periph_clock_enable(RCU_OSPIM); + rcu_periph_clock_enable(RCU_OSPI0); +#ifdef BSP_OSPI0_USING_MDMA + rcu_periph_clock_enable(RCU_MDMA); +#endif + + ospim_deinit(); + ospi_deinit(OSPI0); + + result = gd32_ospi_gpio_init(); + if (result != RT_EOK) + { + return result; + } + + ospim_port_sck_config(OSPIM_PORT0, OSPIM_PORT_SCK_ENABLE); + ospim_port_dqs_config(OSPIM_PORT0, OSPIM_PORT_DQS_DISABLE); + ospim_port_csn_config(OSPIM_PORT0, OSPIM_PORT_CSN_ENABLE); + ospim_port_io3_0_config(OSPIM_PORT0, OSPIM_IO_LOW_ENABLE); + ospim_port_io7_4_config(OSPIM_PORT0, OSPIM_IO_HIGH_DISABLE); + + ospim_port_sck_source_select(OSPIM_PORT0, OSPIM_SCK_SOURCE_OSPI0_SCK); + ospim_port_csn_source_select(OSPIM_PORT0, OSPIM_CSN_SOURCE_OSPI0_CSN); + ospim_port_io3_0_source_select(OSPIM_PORT0, OSPIM_SRCPLIO_OSPI0_IO_LOW); + + return RT_EOK; +} + +static rt_bool_t gd32_ospi_width_is_valid(rt_uint8_t width) +{ + return width == 1 || width == 2 || width == 4; +} + +static rt_err_t gd32_ospi_instruction_mode(rt_uint8_t lines, uint32_t *mode) +{ + switch (lines) + { + case 0: + *mode = OSPI_INSTRUCTION_NONE; + break; + case 1: + *mode = OSPI_INSTRUCTION_1_LINE; + break; + case 2: + *mode = OSPI_INSTRUCTION_2_LINES; + break; + case 4: + *mode = OSPI_INSTRUCTION_4_LINES; + break; + case 8: + *mode = OSPI_INSTRUCTION_8_LINES; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_address_mode(rt_uint8_t lines, uint32_t *mode) +{ + switch (lines) + { + case 0: + *mode = OSPI_ADDRESS_NONE; + break; + case 1: + *mode = OSPI_ADDRESS_1_LINE; + break; + case 2: + *mode = OSPI_ADDRESS_2_LINES; + break; + case 4: + *mode = OSPI_ADDRESS_4_LINES; + break; + case 8: + *mode = OSPI_ADDRESS_8_LINES; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_alternate_mode(rt_uint8_t lines, uint32_t *mode) +{ + switch (lines) + { + case 0: + *mode = OSPI_ALTERNATE_BYTES_NONE; + break; + case 1: + *mode = OSPI_ALTERNATE_BYTES_1_LINE; + break; + case 2: + *mode = OSPI_ALTERNATE_BYTES_2_LINES; + break; + case 4: + *mode = OSPI_ALTERNATE_BYTES_4_LINES; + break; + case 8: + *mode = OSPI_ALTERNATE_BYTES_8_LINES; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_data_mode(rt_uint8_t lines, uint32_t *mode) +{ + switch (lines) + { + case 0: + *mode = OSPI_DATA_NONE; + break; + case 1: + *mode = OSPI_DATA_1_LINE; + break; + case 2: + *mode = OSPI_DATA_2_LINES; + break; + case 4: + *mode = OSPI_DATA_4_LINES; + break; + case 8: + *mode = OSPI_DATA_8_LINES; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_address_size(rt_uint8_t size, uint32_t *address_size) +{ + switch (size) + { + case 8: + *address_size = OSPI_ADDRESS_8_BITS; + break; + case 16: + *address_size = OSPI_ADDRESS_16_BITS; + break; + case 24: + *address_size = OSPI_ADDRESS_24_BITS; + break; + case 32: + *address_size = OSPI_ADDRESS_32_BITS; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_alternate_size(rt_uint8_t size, uint32_t *alternate_size) +{ + switch (size) + { + case 8: + *alternate_size = OSPI_ALTERNATE_BYTES_8_BITS; + break; + case 16: + *alternate_size = OSPI_ALTERNATE_BYTES_16_BITS; + break; + case 24: + *alternate_size = OSPI_ALTERNATE_BYTES_24_BITS; + break; + case 32: + *alternate_size = OSPI_ALTERNATE_BYTES_32_BITS; + break; + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +static rt_err_t gd32_ospi_configure(struct rt_spi_device *device, + struct rt_spi_configuration *configuration) +{ + struct rt_qspi_device *qspi_device; + struct rt_qspi_configuration *qspi_configuration; + struct rt_spi_configuration *spi_configuration; + struct gd32_ospi_bus *ospi_bus; + uint32_t source_hz; + uint32_t divider; + uint32_t medium_size; + uint32_t address_bits; + + RT_ASSERT(device != RT_NULL); + RT_ASSERT(configuration != RT_NULL); + + qspi_device = (struct rt_qspi_device *)device; + qspi_configuration = &qspi_device->config; + spi_configuration = &qspi_configuration->parent; + ospi_bus = (struct gd32_ospi_bus *)device->bus->parent.user_data; + + if (spi_configuration->data_width != 8 || + (spi_configuration->mode & (RT_SPI_CPOL | RT_SPI_CPHA)) != RT_SPI_MODE_0 || + (spi_configuration->mode & RT_SPI_MSB) == 0 || + spi_configuration->max_hz == 0 || + !gd32_ospi_width_is_valid(qspi_configuration->qspi_dl_width)) + { + return -RT_EINVAL; + } + + medium_size = qspi_configuration->medium_size; + if (medium_size < 2 || (medium_size & (medium_size - 1U)) != 0) + { + return -RT_EINVAL; + } + + source_hz = rcu_clock_freq_get(CK_AHB); + divider = source_hz / spi_configuration->max_hz; + if ((source_hz % spi_configuration->max_hz) != 0) + { + divider++; + } + if (divider == 0) + { + divider = 1; + } + if (divider > 256) + { + LOG_E("requested OSPI0 clock is too low: %u Hz", spi_configuration->max_hz); + return -RT_EINVAL; + } + + address_bits = 0; + while (medium_size > 1) + { + address_bits++; + medium_size >>= 1; + } + + ospi_disable(OSPI0); + ospi_struct_init(&ospi_bus->init); + ospi_bus->init.prescaler = divider - 1U; + ospi_bus->init.sample_shift = qspi_configuration->ddr_mode ? + OSPI_SAMPLE_SHIFTING_NONE : + OSPI_SAMPLE_SHIFTING_HALF_CYCLE; + ospi_bus->init.fifo_threshold = OSPI_FIFO_THRESHOLD_16; + ospi_bus->init.device_size = OSPI_MESZ(address_bits - 1U); + ospi_bus->init.cs_hightime = OSPI_CS_HIGH_TIME_3_CYCLE; + ospi_bus->init.memory_type = OSPI_STANDARD_MODE; + ospi_bus->init.delay_hold_cycle = OSPI_DELAY_HOLD_NONE; + ospi_init(OSPI0, &ospi_bus->init); + ospi_enable(OSPI0); + + LOG_D("OSPI0 configured at %u Hz", source_hz / divider); + return RT_EOK; +} + +static rt_ssize_t gd32_ospi_xfer(struct rt_spi_device *device, + struct rt_spi_message *message) +{ + struct rt_qspi_device *qspi_device; + struct rt_qspi_message *qspi_message; + struct gd32_ospi_bus *ospi_bus; + ospi_regular_cmd_struct command = {0}; + rt_uint8_t max_width; + rt_bool_t ddr_mode; + rt_err_t result; + + RT_ASSERT(device != RT_NULL); + RT_ASSERT(message != RT_NULL); + + qspi_device = (struct rt_qspi_device *)device; + qspi_message = (struct rt_qspi_message *)message; + ospi_bus = (struct gd32_ospi_bus *)device->bus->parent.user_data; + max_width = qspi_device->config.qspi_dl_width; + ddr_mode = qspi_device->config.ddr_mode != 0; + + if (qspi_message->instruction.qspi_lines > max_width || + qspi_message->address.qspi_lines > max_width || + qspi_message->alternate_bytes.qspi_lines > max_width || + qspi_message->qspi_data_lines > max_width || + qspi_message->dummy_cycles > 31 || + (message->send_buf != RT_NULL && message->recv_buf != RT_NULL)) + { + return -RT_EINVAL; + } + + if ((message->length != 0 && qspi_message->qspi_data_lines == 0) || + (message->length == 0 && qspi_message->qspi_data_lines != 0) || + (message->length != 0 && message->send_buf == RT_NULL && message->recv_buf == RT_NULL)) + { + return -RT_EINVAL; + } + + command.operation_type = OSPI_OPTYPE_COMMON_CFG; + command.device_id = OSPI_DEVICE0_SELECT; + command.instruction = qspi_message->instruction.content; + command.ins_size = OSPI_INSTRUCTION_8_BITS; + command.address = qspi_message->address.content; + command.alter_bytes = qspi_message->alternate_bytes.content; + command.nbdata = message->length; + command.dummy_cycles = qspi_message->dummy_cycles; + command.sioo_mode = OSPI_SIOO_INST_EVERY_CMD; + + if (gd32_ospi_instruction_mode(qspi_message->instruction.qspi_lines, &command.ins_mode) != RT_EOK || + gd32_ospi_address_mode(qspi_message->address.qspi_lines, &command.addr_mode) != RT_EOK || + gd32_ospi_alternate_mode(qspi_message->alternate_bytes.qspi_lines, &command.alter_bytes_mode) != RT_EOK || + gd32_ospi_data_mode(qspi_message->qspi_data_lines, &command.data_mode) != RT_EOK) + { + return -RT_EINVAL; + } + + if (qspi_message->address.qspi_lines != 0 && + gd32_ospi_address_size(qspi_message->address.size, &command.addr_size) != RT_EOK) + { + return -RT_EINVAL; + } + + if (qspi_message->alternate_bytes.qspi_lines != 0 && + gd32_ospi_alternate_size(qspi_message->alternate_bytes.size, &command.alter_bytes_size) != RT_EOK) + { + return -RT_EINVAL; + } + + command.ins_dtr_mode = ddr_mode && command.ins_mode != OSPI_INSTRUCTION_NONE ? + OSPI_INSDTR_MODE_ENABLE : OSPI_INSDTR_MODE_DISABLE; + command.addr_dtr_mode = ddr_mode && command.addr_mode != OSPI_ADDRESS_NONE ? + OSPI_ADDRDTR_MODE_ENABLE : OSPI_ADDRDTR_MODE_DISABLE; + command.alter_bytes_dtr_mode = ddr_mode && command.alter_bytes_mode != OSPI_ALTERNATE_BYTES_NONE ? + OSPI_ABDTR_MODE_ENABLE : OSPI_ABDTR_MODE_DISABLE; + command.data_dtr_mode = ddr_mode && command.data_mode != OSPI_DATA_NONE ? + OSPI_DADTR_MODE_ENABLE : OSPI_DADTR_MODE_DISABLE; + command.dqs_mode = ddr_mode && command.data_mode != OSPI_DATA_NONE ? + OSPI_DQS_ENABLE : OSPI_DQS_DISABLE; + + ospi_command_config(OSPI0, &ospi_bus->init, &command); + + if (message->length == 0) + { + return 1; + } + + if (message->send_buf != RT_NULL) + { + result = gd32_ospi_transmit((const rt_uint8_t *)message->send_buf, + message->length); + return result == RT_EOK ? message->length : result; + } + + if (message->recv_buf != RT_NULL) + { + result = gd32_ospi_receive(&ospi_bus->init, + (rt_uint8_t *)message->recv_buf, + message->length); + return result == RT_EOK ? message->length : result; + } + + return 1; +} + +static const struct rt_spi_ops gd32_ospi_ops = +{ + .configure = gd32_ospi_configure, + .xfer = gd32_ospi_xfer, +}; + +rt_err_t rt_hw_ospi_device_attach(const char *bus_name, + const char *device_name, + rt_uint8_t data_line_width, + void (*enter_ospi_mode)(struct rt_qspi_device *device), + void (*exit_ospi_mode)(struct rt_qspi_device *device)) +{ + struct rt_qspi_device *device; + rt_err_t result; + + if (bus_name == RT_NULL || device_name == RT_NULL || + !gd32_ospi_width_is_valid(data_line_width)) + { + return -RT_EINVAL; + } + + device = (struct rt_qspi_device *)rt_calloc(1, sizeof(struct rt_qspi_device)); + if (device == RT_NULL) + { + return -RT_ENOMEM; + } + + device->config.qspi_dl_width = data_line_width; + device->enter_qspi_mode = enter_ospi_mode; + device->exit_qspi_mode = exit_ospi_mode; + + result = rt_spi_bus_attach_device_cspin(&device->parent, device_name, + bus_name, PIN_NONE, RT_NULL); + if (result != RT_EOK) + { + rt_free(device); + } + + return result; +} + +static int rt_hw_ospi_init(void) +{ + rt_err_t result; + + result = gd32_ospi_hardware_init(); + if (result != RT_EOK) + { + return result; + } + + ospi0_bus.parent.parent.user_data = &ospi0_bus; + result = rt_qspi_bus_register(&ospi0_bus.parent, "ospi0", &gd32_ospi_ops); + if (result == RT_EOK) + { + LOG_D("ospi0 bus registered"); + } + + return result; +} +INIT_BOARD_EXPORT(rt_hw_ospi_init); + +#endif /* BSP_USING_OSPI0 */ diff --git a/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.h b/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.h new file mode 100644 index 00000000000..c71c257ab43 --- /dev/null +++ b/bsp/gd32/arm/libraries/gd32_drivers/drv_ospi.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-07-31 RT-Thread first implementation + */ + +#ifndef __DRV_OSPI_H__ +#define __DRV_OSPI_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +rt_err_t rt_hw_ospi_device_attach(const char *bus_name, + const char *device_name, + rt_uint8_t data_line_width, + void (*enter_ospi_mode)(struct rt_qspi_device *device), + void (*exit_ospi_mode)(struct rt_qspi_device *device)); + +#ifdef __cplusplus +} +#endif + +#endif /* __DRV_OSPI_H__ */ From 9bfc48d972db53ccdff34dba6ff88c88a10d0dfe Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:53 +0800 Subject: [PATCH 14/19] [bsp][gd32] Add GD32H77D MIPI LCD support Add the LCD adapter, SDRAM MPU policy and frame-boundary reloads. Keep display manufacturer source selection in the peripheral package and LCD disabled by default. Verified LCD initialization and display-buffer updates through the LVGL camera preview; visual quality still requires inspection. --- bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + bsp/gd32/arm/gd32h77d-ginopi/board/board.c | 96 ++ bsp/gd32/arm/gd32h77d-ginopi/board/drv_lcd.c | 918 ++++++++++++++++++ 3 files changed, 1017 insertions(+) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_lcd.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index 8615a5bcd02..2312ab5c5c9 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -12,6 +12,9 @@ board.c if GetDepend(['BSP_USING_SDRAM']): src += ['drv_sdram_port.c'] +if GetDepend(['BSP_USING_LCD_MIPI']): + src += ['drv_lcd.c'] + if GetDepend(['BSP_USING_FLASH_FATFS']): src += ['drv_qspi_flash.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/board.c b/bsp/gd32/arm/gd32h77d-ginopi/board/board.c index 862006df241..4f33debbdd6 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/board.c +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/board.c @@ -38,7 +38,100 @@ const uint32_t boot_fuction_table[] = }; #endif +#ifdef BSP_USING_LCD_MIPI +#ifndef BSP_USING_SDRAM +#error "MIPI LCD requires SDRAM" +#endif +#define BOARD_DMA_MPU_SUBREGION_SIZE (512U * 1024U) +#ifdef BSP_USING_OV7670 +#define BOARD_DMA_MPU_SIZE EXT_SDRAM_LCD_SCANOUT_SIZE +#else +#define BOARD_DMA_MPU_SIZE EXT_SDRAM_LCD_RESERVED_SIZE +#endif +#define BOARD_EXT_GUARD_ATTR ARM_MPU_RASR(1U, ARM_MPU_AP_NONE, 0U, \ + 1U, 0U, 0U, 0x87U, \ + ARM_MPU_REGION_SIZE_4GB) + +/* SDRAM board initialization must finish before its windows become cacheable. */ +static void board_mpu_config(void) +{ + mpu_region_init_struct mpu_config; + rt_base_t level; + + RT_ASSERT((SCB->CCR & SCB_CCR_DC_Msk) == 0U); + RT_ASSERT(EXT_SDRAM_LCD_RESERVED_SIZE <= 8U * BOARD_DMA_MPU_SUBREGION_SIZE); + RT_ASSERT((EXT_SDRAM_LCD_RESERVED_SIZE % BOARD_DMA_MPU_SUBREGION_SIZE) == 0U); + RT_ASSERT((BOARD_DMA_MPU_SIZE > 0U) && + (BOARD_DMA_MPU_SIZE <= EXT_SDRAM_LCD_RESERVED_SIZE)); + RT_ASSERT((BOARD_DMA_MPU_SIZE % BOARD_DMA_MPU_SUBREGION_SIZE) == 0U); + + level = rt_hw_interrupt_disable(); + __DSB(); + ARM_MPU_Disable(); + + mpu_region_struct_para_init(&mpu_config); + /* Match the reference project's AXI-SRAM write-through attributes. */ + mpu_config.region_base_address = 0x24000000U; + mpu_config.region_size = MPU_REGION_SIZE_1MB; + mpu_config.access_permission = MPU_AP_FULL_ACCESS; + mpu_config.access_bufferable = MPU_ACCESS_NON_BUFFERABLE; + mpu_config.access_cacheable = MPU_ACCESS_CACHEABLE; + mpu_config.access_shareable = MPU_ACCESS_NON_SHAREABLE; + mpu_config.region_number = MPU_REGION_NUMBER1; + mpu_config.subregion_disable = MPU_SUBREGION_ENABLE; + mpu_config.instruction_exec = MPU_INSTRUCTION_EXEC_PERMIT; + mpu_config.tex_type = MPU_TEX_TYPE0; + mpu_region_config(&mpu_config); + mpu_region_enable(); + + if (rt_hw_sdram_is_ready()) + { + /* CPU-rendered layers can spill out of AXI SRAM into the SDRAM heap. */ + mpu_config.region_base_address = EXT_SDRAM_BEGIN; + mpu_config.region_size = MPU_REGION_SIZE_32MB; + mpu_config.access_permission = MPU_AP_FULL_ACCESS; + mpu_config.access_bufferable = MPU_ACCESS_BUFFERABLE; + mpu_config.access_cacheable = MPU_ACCESS_CACHEABLE; + mpu_config.access_shareable = MPU_ACCESS_NON_SHAREABLE; + mpu_config.region_number = MPU_REGION_NUMBER5; + mpu_config.subregion_disable = MPU_SUBREGION_ENABLE; + mpu_config.instruction_exec = MPU_INSTRUCTION_EXEC_NOT_PERMIT; + mpu_config.tex_type = MPU_TEX_TYPE1; + mpu_region_config(&mpu_config); + mpu_region_enable(); + + /* Keep scanout/IPA buffers write-through. Camera and LVGL draw buffers + * reside in AXI SRAM; the SDRAM heap retains its write-back policy. + * Preserve the existing 3 MiB reservation and heap addresses. */ + mpu_config.region_size = MPU_REGION_SIZE_4MB; + mpu_config.access_bufferable = MPU_ACCESS_NON_BUFFERABLE; + mpu_config.region_number = MPU_REGION_NUMBER6; + mpu_config.subregion_disable = (rt_uint8_t)(0xFFU << + (BOARD_DMA_MPU_SIZE / BOARD_DMA_MPU_SUBREGION_SIZE)); + mpu_config.tex_type = MPU_TEX_TYPE0; + mpu_region_config(&mpu_config); + mpu_region_enable(); + } + +#if !defined(BSP_USING_OSPI1) + /* Block speculative accesses to unused external windows (0x60000000.. + * 0xDFFFFFFF). Regions 5/6 override this guard for valid SDRAM. + * The OSPI0 Flash driver uses indirect transfers, not the mapped window. + * Mapped OSPI needs its own accessible MPU regions before using this guard. */ + MPU->RNR = MPU_REGION_NUMBER0; + if ((MPU->RASR & MPU_RASR_ENABLE_Msk) == 0U) + { + ARM_MPU_SetRegionEx(MPU_REGION_NUMBER0, 0U, BOARD_EXT_GUARD_ATTR); + } +#endif + + ARM_MPU_Enable(MPU_MODE_PRIV_DEFAULT); + __DSB(); + __ISB(); + rt_hw_interrupt_enable(level); +} +#endif /* BSP_USING_LCD_MIPI */ /** * @brief This function is executed in case of error occurrence. @@ -136,6 +229,9 @@ void rt_hw_board_init() rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif +#ifdef BSP_USING_LCD_MIPI + board_mpu_config(); +#endif /* Board drivers, including SDRAM, ran with uncached data accesses. */ rt_hw_cpu_dcache_enable(); diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_lcd.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_lcd.c new file mode 100644 index 00000000000..0e7cd4b9e63 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_lcd.c @@ -0,0 +1,918 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-04 RTT add FL7707N MIPI DSI LCD support + * 2026-09-08 CYFS stabilize FL7707N timing, framebuffer swaps, and backlight control + */ + +#include +#include +#include + +#include "gd32h77x_78x_dsi.h" +#include "gd32h77x_78x_axiim.h" +#include "gd32h77x_78x_tli.h" + +#ifdef BSP_USING_LCD_MIPI + +#define DRV_DEBUG +#define LOG_TAG "drv.lcd" +#include + +#define LCD_DEVICE_NAME "lcd" +#define LCD_WIDTH 720U +#define LCD_HEIGHT 720U +#define LCD_BYTES_PER_PIXEL 2U +#define LCD_FRAMEBUFFER_SIZE (LCD_WIDTH * LCD_HEIGHT * LCD_BYTES_PER_PIXEL) +#define LCD_FRAMEBUFFER_COUNT 2U +#define LCD_FRAMEBUFFER_TOTAL_SIZE (LCD_FRAMEBUFFER_SIZE * LCD_FRAMEBUFFER_COUNT) +#define LCD_FRAMEBUFFER_ADDRESS EXT_SDRAM_BEGIN +#define LCD_FRAMEBUFFER_BACK_ADDRESS (LCD_FRAMEBUFFER_ADDRESS + LCD_FRAMEBUFFER_SIZE) +#define LCD_BACKLIGHT_PIN GET_PIN(A, 0) +#define LCD_BACKLIGHT_PWM_DEVICE_NAME "pwm1" +#define LCD_BACKLIGHT_PWM_CHANNEL 1U +#define LCD_BACKLIGHT_PWM_PERIOD_NS 50000U +#define LCD_BACKLIGHT_DEFAULT_LEVEL 100U +#define LCD_VSYNC_TIMEOUT_MS 100U + +#define LCD_HSYNC 60U +#define LCD_HBP 120U +#define LCD_HFP 106U +#define LCD_VSYNC 4U +#define LCD_VBP 20U +#define LCD_VFP 20U + +#define LCD_PIXEL_CLOCK 46125000U +#define LCD_DSI_LP_CLOCK 12500000U +#define LCD_DSI_HS_RATE 800000000U +#define LCD_DSI_FORMAT DSI_VIDEO_MODE_FMT_RGB565 +#define LCD_DSI_VIDEO_MODE DSI_BURST_MODE +#define LCD_DSI_LANES 2U +#define LCD_DSI_CHANNEL 0U +#define LCD_DSI_TIMEOUT 1000000U +#define LCD_DSI_CMD_MAX_BYTES 64U + +#define MIPI_DSI_DCS_SHORT_WRITE 0x05U +#define MIPI_DSI_DCS_SHORT_WRITE_PARAM 0x15U +#define MIPI_DSI_DCS_LONG_WRITE 0x39U +#define DIV_ROUND_UP(value, divisor) (((value) + (divisor) - 1U) / (divisor)) +#define MAX_VALUE(a, b) ((a) > (b) ? (a) : (b)) + +struct lcd_init_cmd +{ + rt_uint8_t len; + rt_uint16_t delay_ms; + rt_uint8_t data[LCD_DSI_CMD_MAX_BYTES]; +}; + +struct lcd_dphy_timing +{ + rt_uint8_t freq_mode; + rt_uint8_t esc_ck_sel; + rt_uint8_t pll_divider; + rt_uint16_t dlcfg; + rt_uint16_t ck_hs2lp; + rt_uint16_t ck_lp2hs; + rt_uint16_t lp_clkc; + rt_uint8_t dhs_prep; + rt_uint8_t dhs_zero; + rt_uint8_t dhs_trail; + rt_uint8_t dhs_exit; + rt_uint8_t ckhs_prep; + rt_uint8_t ckhs_zero; + rt_uint8_t ckhs_trail; + rt_uint8_t ckhs_exit; +}; + +struct gd32_lcd +{ + struct rt_device parent; + struct rt_device_graphic_info info; + struct rt_device_pwm *backlight_pwm; + rt_base_t backlight_pin; + rt_uint8_t brightness; + rt_bool_t backlight_powered; + rt_bool_t initialized; +}; + +static struct gd32_lcd lcd; +static struct rt_completion lcd_reload_completion; +static struct rt_device_rect_info lcd_dirty_rect; +static rt_bool_t lcd_dirty_valid; +static rt_bool_t lcd_reload_timeout_reported; + +static rt_err_t lcd_backlight_apply(void) +{ + rt_uint32_t pulse; + rt_err_t result; + + if (lcd.backlight_pwm == RT_NULL) + { + lcd.backlight_pwm = (struct rt_device_pwm *) + rt_device_find(LCD_BACKLIGHT_PWM_DEVICE_NAME); + if (lcd.backlight_pwm == RT_NULL) + { + LOG_E("cannot find %s for backlight", + LCD_BACKLIGHT_PWM_DEVICE_NAME); + return -RT_ENOSYS; + } + } + + if (!lcd.backlight_powered || (lcd.brightness == 0U)) + { + result = rt_pwm_disable(lcd.backlight_pwm, + LCD_BACKLIGHT_PWM_CHANNEL); + rt_pin_mode(lcd.backlight_pin, PIN_MODE_OUTPUT); + rt_pin_write(lcd.backlight_pin, PIN_LOW); + return result; + } + + pulse = (rt_uint32_t)(((rt_uint64_t)LCD_BACKLIGHT_PWM_PERIOD_NS * + lcd.brightness) / 100U); + result = rt_pwm_set(lcd.backlight_pwm, LCD_BACKLIGHT_PWM_CHANNEL, + LCD_BACKLIGHT_PWM_PERIOD_NS, pulse); + if (result != RT_EOK) + { + return result; + } + + return rt_pwm_enable(lcd.backlight_pwm, LCD_BACKLIGHT_PWM_CHANNEL); +} + +static rt_err_t lcd_backlight_set_brightness(rt_uint8_t brightness) +{ + if (brightness > 100U) + { + return -RT_EINVAL; + } + + lcd.brightness = brightness; + return lcd_backlight_apply(); +} + +static void lcd_framebuffer_flush(void) +{ + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, + (void *)LCD_FRAMEBUFFER_ADDRESS, + LCD_FRAMEBUFFER_TOTAL_SIZE); +} + +static void lcd_framebuffer_fill(rt_uint16_t color) +{ + rt_uint16_t *framebuffer = (rt_uint16_t *)LCD_FRAMEBUFFER_ADDRESS; + rt_size_t index; + + for (index = 0U; + index < LCD_WIDTH * LCD_HEIGHT * LCD_FRAMEBUFFER_COUNT; + index++) + { + framebuffer[index] = color; + } + lcd_framebuffer_flush(); +} + +static const struct lcd_init_cmd panel_init_cmds[] = +{ + { 4, 0, { 0xB9, 0xF1, 0x12, 0x87 } }, + { 4, 0, { 0xB2, 0xB4, 0x03, 0x70 } }, + { 11, 0, { 0xB3, 0x10, 0x10, 0x28, 0x28, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00 } }, + { 2, 0, { 0xB4, 0x80 } }, + { 3, 0, { 0xB5, 0x0A, 0x0A } }, + { 3, 0, { 0xB6, 0x8D, 0x8D } }, + { 5, 0, { 0xB8, 0x26, 0x22, 0xF0, 0x13 } }, + { 28, 0, { 0xBA, 0x31, 0x81, 0x05, 0xF9, 0x0E, 0x0E, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, + 0x25, 0x00, 0x91, 0x0A, 0x00, 0x00, 0x01, 0x4F, + 0x01, 0x00, 0x00, 0x37 } }, + { 2, 0, { 0xBC, 0x47 } }, + { 6, 0, { 0xBF, 0x02, 0x10, 0x00, 0x80, 0x04 } }, + { 10, 0, { 0xC0, 0x73, 0x73, 0x50, 0x50, 0x00, 0x00, 0x12, 0x73, 0x00 } }, + { 18, 0, { 0xC1, 0x36, 0x00, 0x32, 0x32, 0x77, 0xE1, 0x77, 0x77, + 0xCC, 0xCC, 0xFF, 0xFF, 0x11, 0x11, 0x00, 0x00, 0x32 } }, + { 13, 0, { 0xC7, 0x10, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xED, 0xC5, 0x00, 0xA5 } }, + { 5, 0, { 0xC8, 0x10, 0x40, 0x1E, 0x03 } }, + { 2, 0, { 0xCC, 0x0B } }, + { 35, 0, { 0xE0, 0x00, 0x0A, 0x0F, 0x2A, 0x33, 0x3F, 0x44, 0x39, + 0x06, 0x0C, 0x0E, 0x14, 0x15, 0x13, 0x15, 0x10, 0x18, + 0x00, 0x0A, 0x0F, 0x2A, 0x33, 0x3F, 0x44, 0x39, 0x06, + 0x0C, 0x0E, 0x14, 0x15, 0x13, 0x15, 0x10, 0x18 } }, + { 8, 0, { 0xE1, 0x11, 0x11, 0x91, 0x00, 0x00, 0x00, 0x00 } }, + { 15, 0, { 0xE3, 0x07, 0x07, 0x0B, 0x0B, 0x0B, 0x0B, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0x04, 0xC0, 0x10 } }, + { 64, 0, { 0xE9, 0xC8, 0x10, 0x0A, 0x00, 0x00, 0x80, 0x81, 0x12, + 0x31, 0x23, 0x4F, 0x86, 0xA0, 0x00, 0x47, 0x08, 0x00, + 0x00, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, + 0x00, 0x00, 0x98, 0x02, 0x8B, 0xAF, 0x46, 0x02, 0x88, + 0x88, 0x88, 0x88, 0x88, 0x98, 0x13, 0x8B, 0xAF, 0x57, + 0x13, 0x88, 0x88, 0x88, 0x88, 0x88, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00 } }, + { 62, 0, { 0xEA, 0x97, 0x0C, 0x09, 0x09, 0x09, 0x78, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x9F, 0x31, 0x8B, 0xA8, 0x31, + 0x75, 0x88, 0x88, 0x88, 0x88, 0x88, 0x9F, 0x20, 0x8B, + 0xA8, 0x20, 0x64, 0x88, 0x88, 0x88, 0x88, 0x88, 0x23, + 0x00, 0x00, 0x02, 0x71, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x80, 0x81, 0x00, 0x00, 0x00, 0x00 } }, + { 4, 0, { 0xEF, 0xFF, 0xFF, 0x01 } }, + { 2, 0, { 0x3A, 0x50 } }, + { 1, 250, { 0x11 } }, + { 1, 50, { 0x29 } }, +}; + +static rt_err_t dsi_wait_fifo(uint32_t flag, FlagStatus expected) +{ + rt_uint32_t timeout = LCD_DSI_TIMEOUT; + + while ((dsi_fifo_status_get(flag) != expected) && (timeout > 0U)) + { + timeout--; + } + + return timeout > 0U ? RT_EOK : -RT_ETIMEOUT; +} + +static rt_err_t dsi_write_cmd(const rt_uint8_t *data, rt_size_t len) +{ + rt_uint32_t word; + rt_size_t offset; + rt_size_t remaining; + rt_uint8_t type; + + /* Panel commands must not read beyond an initialization entry's payload. */ + if ((data == RT_NULL) || (len == 0U) || (len > LCD_DSI_CMD_MAX_BYTES)) + { + return -RT_EINVAL; + } + + if (dsi_wait_fifo(DSI_FIFOSTAT_LPCTLFIFOF, RESET) != RT_EOK) + { + return -RT_ETIMEOUT; + } + + if (len <= 2U) + { + type = len == 1U ? MIPI_DSI_DCS_SHORT_WRITE : MIPI_DSI_DCS_SHORT_WRITE_PARAM; + word = data[0]; + if (len == 2U) + { + word |= (rt_uint32_t)data[1] << 8; + } + dsi_dcs_word_count_set(0U); + dsi_lp_control_set(type, LCD_DSI_CHANNEL, word); + } + else + { + dsi_dcs_word_count_set((uint32_t)len); + for (offset = 0U; offset < len; offset += sizeof(word)) + { + if (dsi_wait_fifo(DSI_FIFOSTAT_LPDTFIFOF, RESET) != RT_EOK) + { + return -RT_ETIMEOUT; + } + + word = 0U; + remaining = len - offset; + if (remaining > sizeof(word)) + { + remaining = sizeof(word); + } + rt_memcpy(&word, data + offset, remaining); + dsi_lp_data_write(word); + } + dsi_lp_control_set(MIPI_DSI_DCS_LONG_WRITE, LCD_DSI_CHANNEL, (uint32_t)len); + } + + if ((dsi_wait_fifo(DSI_FIFOSTAT_LPCTLFIFOE, SET) != RT_EOK) || + (dsi_wait_fifo(DSI_FIFOSTAT_LPDTFIFOE, SET) != RT_EOK)) + { + return -RT_ETIMEOUT; + } + + return RT_EOK; +} + +static void dsi_command_mode_supported_set(uint32_t supported) +{ + DSI_FUNCPRG = (DSI_FUNCPRG & ~DSI_FUNCPRG_SDTWCM) | + ((supported << 13) & DSI_FUNCPRG_SDTWCM); +} + +static void dsi_wrapper_rgb565_set(void) +{ + DSI_WRGBDF = 1U; +} + +static rt_uint32_t dsi_byte_clock_cycles_get(rt_uint32_t time_ns, + rt_uint32_t ui_count) +{ + rt_uint64_t scaled_time; + + /* Keep nanoseconds and unit intervals exact until the final ceiling. */ + scaled_time = (rt_uint64_t)time_ns * LCD_DSI_HS_RATE + + (rt_uint64_t)ui_count * 1000000000ULL; + return (rt_uint32_t)DIV_ROUND_UP(scaled_time, 8000000000ULL); +} + +static void dsi_timing_calculate(struct lcd_dphy_timing *timing) +{ + timing->pll_divider = LCD_DSI_HS_RATE / 2U / LCD_DSI_LP_CLOCK; + timing->esc_ck_sel = LCD_DSI_LP_CLOCK > 20000000U ? 1U : 0U; + timing->freq_mode = LCD_DSI_HS_RATE > 200000000U ? 1U : 0U; + timing->lp_clkc = dsi_byte_clock_cycles_get(60U, 0U) - 1U; + timing->dhs_prep = dsi_byte_clock_cycles_get(40U, 4U) - 1U; + timing->dhs_zero = dsi_byte_clock_cycles_get(90U, 6U) - 1U; + timing->dhs_trail = MAX_VALUE(1U, dsi_byte_clock_cycles_get(260U, 4U)) - 1U; + timing->dhs_exit = dsi_byte_clock_cycles_get(230U, 0U) - 1U; + timing->ckhs_prep = dsi_byte_clock_cycles_get(50U, 0U) - 1U; + timing->ckhs_zero = dsi_byte_clock_cycles_get(270U, 0U) - 1U; + timing->ckhs_trail = dsi_byte_clock_cycles_get(200U, 0U) - 1U; + timing->ckhs_exit = dsi_byte_clock_cycles_get(230U, 0U) - 1U; + timing->dlcfg = timing->lp_clkc + timing->dhs_prep + timing->dhs_zero + 4U; + timing->ck_hs2lp = timing->ckhs_trail + timing->ckhs_exit + 3U; + timing->ck_lp2hs = timing->lp_clkc + timing->ckhs_prep + timing->ckhs_zero + 6U; +} + +static rt_uint32_t dsi_horizontal_count_get(rt_uint32_t pixels, rt_uint32_t byte_clock) +{ + return (rt_uint32_t)(((rt_uint64_t)pixels * byte_clock) / LCD_PIXEL_CLOCK); +} + +static rt_uint32_t dsi_horizontal_count_round_up_get(rt_uint32_t pixels, + rt_uint32_t byte_clock) +{ + return (rt_uint32_t)((((rt_uint64_t)pixels * byte_clock) + LCD_PIXEL_CLOCK - 1U) / + LCD_PIXEL_CLOCK); +} + +static rt_err_t dsi_host_init(void) +{ + struct lcd_dphy_timing timing; + rt_uint32_t timeout = LCD_DSI_TIMEOUT; + rt_uint32_t byte_clock = LCD_DSI_HS_RATE / 8U; + rt_uint32_t hsa_count; + rt_uint32_t hbp_count; + rt_uint32_t hfp_count; + rt_uint32_t hact_count; + rt_uint32_t htotal_count; + + rt_memset(&timing, 0, sizeof(timing)); + dsi_timing_calculate(&timing); + hsa_count = dsi_horizontal_count_get(LCD_HSYNC, byte_clock); + hbp_count = dsi_horizontal_count_get(LCD_HBP, byte_clock); + hact_count = dsi_horizontal_count_get(LCD_WIDTH, byte_clock); + htotal_count = dsi_horizontal_count_round_up_get(LCD_HSYNC + LCD_HBP + + LCD_WIDTH + LCD_HFP, + byte_clock); + hfp_count = htotal_count - hsa_count - hbp_count - hact_count; + + rcu_periph_clock_enable(RCU_DSI); + rcu_dsi_preceding_stage_clock_config(RCU_DSIPRESEL_HXTAL); + rcu_dsi_clock_div_config(RCU_DSI_DIV2); + + dsi_dphy_dfe_reset_enable(); + dsi_eot_transmission_disable(); + dsi_clock_stopping_enable(); + dsi_data_lanes_number_set(LCD_DSI_LANES); + dsi_command_mode_supported_set(1U); + dsi_wrapper_lp_cmd_data_source_set(DSI_LP_DATASRC_LPDATA); + dsi_wrapper_tli_dma_mode_config(DSI_TLI_DMA_MODE_DISABLE); + dsi_video_mode_virtual_channel_set(LCD_DSI_CHANNEL); + dsi_wrapper_rgb565_set(); + dsi_video_mode_color_format_set(LCD_DSI_FORMAT); + dsi_video_mode_format_set(LCD_DSI_VIDEO_MODE); + dsi_video_bta_disable(); + + dsi_hs_tx_timeout_set(0xFFFFFFU); + dsi_lp_rx_timeout_set(0xFFFFFFU); + dsi_turnaround_timeout_set(0x1FU); + dsi_device_reset_timer_set(0xFFFFU); + dsi_dpi_resolution_set(LCD_WIDTH, LCD_HEIGHT); + dsi_horizontal_sync_active_count_set(hsa_count); + dsi_horizontal_back_porch_count_set(hbp_count); + dsi_horizontal_front_porch_count_set(hfp_count); + dsi_horizontal_active_count_set(hact_count); + dsi_vertical_sync_active_count_set(LCD_VSYNC); + dsi_vertical_back_porch_count_set(LCD_VBP); + dsi_vertical_front_porch_count_set(LCD_VFP); + dsi_init_counter_set(0xD07U); + + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_ECC_MUL); + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_INVLD_DT); + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_HI_CONT); + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_LO_CONT); + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_HS_RX_TO); + dsi_error_auto_recovery_disable(DSI_ERR_AUTO_REC_LP_RX_TO); + + dsi_dphy_hs_prepare_time_set(timing.dhs_prep); + dsi_dphy_hs_zero_time_set(timing.dhs_zero); + dsi_dphy_hs_trail_time_set(timing.dhs_trail); + dsi_dphy_hs_exit_time_set(timing.dhs_exit); + dsi_dphy_clk_prepare_time_set(timing.ckhs_prep); + dsi_dphy_clk_zero_time_set(timing.ckhs_zero); + dsi_dphy_clk_trail_time_set(timing.ckhs_trail); + dsi_dphy_clk_exit_time_set(timing.ckhs_exit); + + DSI_DPHY_TRIMCTL1 = ((rt_uint32_t)timing.pll_divider & 0x7FU) | + (((rt_uint32_t)timing.esc_ck_sel & 0x1U) << 31); + DSI_DPHY_TRIMCTL1 |= DSI_DPHY_TRIMCTL1_CDPD0; + dsi_ddr_freq_mode_set(timing.freq_mode); + dsi_lp_byte_clk_config(timing.lp_clkc); + dsi_data_lane_switch_count_set(timing.dlcfg); + dsi_clk_hs_to_lp_switch_count_set(timing.ck_hs2lp); + dsi_clk_lp_to_hs_switch_count_set(timing.ck_lp2hs); + dsi_device_ready_set(1U); + + while (((DSI_INTSTAT0 & DSI_INTSTAT0_INIT_DONE) == 0U) && (timeout > 0U)) + { + timeout--; + } + + if (timeout == 0U) + { + return -RT_ETIMEOUT; + } + if ((DSI_WINTSTAT & DSI_WINTSTAT_PLLLKS) == 0U) + { + LOG_E("DSI DPHY PLL failed to lock"); + return -RT_ETIMEOUT; + } + + return RT_EOK; +} + +static rt_err_t panel_init(void) +{ + rt_size_t index; + rt_err_t result; + + lcd.backlight_pin = LCD_BACKLIGHT_PIN; + + rt_pin_mode(lcd.backlight_pin, PIN_MODE_OUTPUT); + rt_pin_write(lcd.backlight_pin, PIN_LOW); + + /* LCD reset is tied to MCU_NRST through R13 on GD32H77x_EVB_V0.1. */ + rt_thread_mdelay(120); + + result = dsi_host_init(); + if (result != RT_EOK) + { + LOG_E("DSI host init timed out"); + return result; + } + + for (index = 0U; index < sizeof(panel_init_cmds) / sizeof(panel_init_cmds[0]); index++) + { + result = dsi_write_cmd(panel_init_cmds[index].data, panel_init_cmds[index].len); + if (result != RT_EOK) + { + LOG_E("panel command 0x%02x failed", panel_init_cmds[index].data[0]); + return result; + } + if (panel_init_cmds[index].delay_ms > 0U) + { + rt_thread_mdelay(panel_init_cmds[index].delay_ms); + } + } + + LOG_I("FL7707N initialized with %u commands", (rt_uint32_t)index); + + return RT_EOK; +} + +static rt_err_t mipi_power_init(void) +{ + rt_uint32_t timeout = LCD_DSI_TIMEOUT; + + pmu_mipi_ldo_enable(); + while ((pmu_flag_get(PMU_FLAG_RDYF) == RESET) && (timeout > 0U)) + { + timeout--; + } + if (timeout == 0U) + { + return -RT_ETIMEOUT; + } + + pmu_mipi_power_enable(); + pmu_mipi_output_isolation_enable(); + return RT_EOK; +} + +static rt_err_t tli_clock_init(void) +{ + RCU_PLLALL &= ~(RCU_PLLALL_PLLSEL | RCU_PLLALL_PLL2VCOSEL | RCU_PLLALL_PLL2RNG); + RCU_PLLALL |= RCU_PLLSRC_HXTAL | RCU_PLL2VCO_192M_836M | RCU_PLL2RNG_1M_2M; + + if (rcu_pll2_config(25U, 369U, 1U, 1U, 4U) != SUCCESS) + { + LOG_E("invalid PLL2 configuration"); + return -RT_EINVAL; + } + + rcu_tli_clock_div_config(RCU_PLL2R_DIV2); + rcu_pll_clock_output_enable(RCU_PLL2R); + rcu_osci_on(RCU_PLL2_CK); + if (rcu_osci_stab_wait(RCU_PLL2_CK) != SUCCESS) + { + LOG_E("PLL2 failed to lock"); + return -RT_ETIMEOUT; + } + + LOG_I("TLI pixel clock: %u Hz", rcu_clock_freq_get(CK_PLL2R) / 2U); + rcu_periph_clock_enable(RCU_TLI); + return RT_EOK; +} + +static void lcd_tli_init(void) +{ + tli_parameter_struct tli_config; + tli_layer_parameter_struct layer_config; + + rt_memset(&tli_config, 0, sizeof(tli_config)); + tli_config.signalpolarity_hs = TLI_HSYN_ACTIVE_LOW; + tli_config.signalpolarity_vs = TLI_VSYN_ACTIVE_LOW; + tli_config.signalpolarity_de = TLI_DE_ACTIVE_LOW; + tli_config.signalpolarity_pixelck = TLI_PIXEL_CLOCK_TLI; + tli_config.synpsz_hpsz = LCD_HSYNC - 1U; + tli_config.backpsz_hbpsz = LCD_HSYNC + LCD_HBP - 1U; + tli_config.activesz_hasz = LCD_HSYNC + LCD_HBP + LCD_WIDTH - 1U; + tli_config.totalsz_htsz = LCD_HSYNC + LCD_HBP + LCD_WIDTH + LCD_HFP - 1U; + tli_config.synpsz_vpsz = LCD_VSYNC - 1U; + tli_config.backpsz_vbpsz = LCD_VSYNC + LCD_VBP - 1U; + tli_config.activesz_vasz = LCD_VSYNC + LCD_VBP + LCD_HEIGHT - 1U; + tli_config.totalsz_vtsz = LCD_VSYNC + LCD_VBP + LCD_HEIGHT + LCD_VFP - 1U; + tli_config.backcolor_red = 0U; + tli_config.backcolor_green = 0U; + tli_config.backcolor_blue = 0U; + tli_init(&tli_config); + + rt_memset(&layer_config, 0, sizeof(layer_config)); + layer_config.layer_window_leftpos = LCD_HSYNC + LCD_HBP; + layer_config.layer_window_rightpos = LCD_HSYNC + LCD_HBP + LCD_WIDTH - 1U; + layer_config.layer_window_toppos = LCD_VSYNC + LCD_VBP; + layer_config.layer_window_bottompos = LCD_VSYNC + LCD_VBP + LCD_HEIGHT - 1U; + layer_config.layer_ppf = LAYER_PPF_RGB565; + layer_config.layer_sa = 255U; + layer_config.layer_default_alpha = 0U; + layer_config.layer_acf1 = LAYER_ACF1_PASA; + layer_config.layer_acf2 = LAYER_ACF2_PASA; + layer_config.layer_frame_bufaddr = LCD_FRAMEBUFFER_ADDRESS; + layer_config.layer_frame_line_length = LCD_WIDTH * LCD_BYTES_PER_PIXEL + 7U; + layer_config.layer_frame_buf_stride_offset = LCD_WIDTH * LCD_BYTES_PER_PIXEL; + layer_config.layer_frame_total_line_number = LCD_HEIGHT; + tli_layer_init(LAYER0, &layer_config); + tli_dither_config(TLI_DITHER_DISABLE); + tli_layer_enable(LAYER0); + tli_reload_config(TLI_REQUEST_RELOAD_EN); + AXI_SPX_RDQOS_CTL(SLAVE_PORT5) = + (AXI_SPX_RDQOS_CTL(SLAVE_PORT5) & ~AXI_SPX_RDQOS_CTL_RDQOS) | 0xFU; + + rt_completion_init(&lcd_reload_completion); + tli_interrupt_disable(TLI_INT_LM | TLI_INT_LCR | TLI_INT_FE | TLI_INT_TE); + tli_interrupt_flag_clear(TLI_INT_FLAG_LM | TLI_INT_FLAG_LCR | + TLI_INT_FLAG_FE | TLI_INT_FLAG_TE); + nvic_irq_enable(TLI_IRQn, 5U, 0U); + tli_enable(); +} + +void TLI_IRQHandler(void) +{ + rt_interrupt_enter(); + + if (tli_interrupt_flag_get(TLI_INT_FLAG_LCR) != RESET) + { + tli_interrupt_disable(TLI_INT_LCR); + tli_interrupt_flag_clear(TLI_INT_FLAG_LCR); + rt_completion_done(&lcd_reload_completion); + } + __DSB(); + rt_interrupt_leave(); +} + +static rt_err_t lcd_hardware_init(void) +{ + rt_err_t result; + + if (!rt_hw_sdram_is_ready()) + { + LOG_E("SDRAM is not ready"); + return -RT_EIO; + } + RT_ASSERT(LCD_FRAMEBUFFER_TOTAL_SIZE <= EXT_SDRAM_LCD_RESERVED_SIZE); +#ifdef BSP_USING_OV7670 + RT_ASSERT(LCD_FRAMEBUFFER_TOTAL_SIZE <= EXT_SDRAM_LCD_SCANOUT_SIZE); +#endif + + result = mipi_power_init(); + if (result != RT_EOK) + { + LOG_E("MIPI LDO ready timed out"); + return result; + } + + dsi_deinit(); + + lcd_framebuffer_fill(0x0000U); + + result = panel_init(); + if (result != RT_EOK) + { + return result; + } + + result = tli_clock_init(); + if (result != RT_EOK) + { + LOG_E("TLI clock init failed"); + return result; + } + + lcd_tli_init(); + DSI_INTSTAT0 = DSI_INTSTAT0_DPILTO | DSI_INTSTAT0_DPIPE; + rt_thread_mdelay(40U); + + lcd.backlight_powered = RT_TRUE; + result = lcd_backlight_apply(); + if (result != RT_EOK) + { + LOG_E("backlight PWM initialization failed: %d", result); + return result; + } + LOG_I("backlight %u%% on %s channel %u (PA0 TIMER1_CH0)", + lcd.brightness, LCD_BACKLIGHT_PWM_DEVICE_NAME, + LCD_BACKLIGHT_PWM_CHANNEL); + return RT_EOK; +} + +static rt_err_t lcd_device_init(rt_device_t device) +{ + rt_err_t result; + + if (lcd.initialized) + { + return RT_EOK; + } + + result = lcd_hardware_init(); + if (result == RT_EOK) + { + lcd.initialized = RT_TRUE; + } + return result; +} + +static rt_err_t lcd_dirty_rect_include(const struct rt_device_rect_info *rect) +{ + rt_uint32_t right; + rt_uint32_t bottom; + rt_uint32_t dirty_right; + rt_uint32_t dirty_bottom; + + if (rect == RT_NULL) + { + lcd_dirty_rect.x = 0U; + lcd_dirty_rect.y = 0U; + lcd_dirty_rect.width = LCD_WIDTH; + lcd_dirty_rect.height = LCD_HEIGHT; + lcd_dirty_valid = RT_TRUE; + return RT_EOK; + } + + right = (rt_uint32_t)rect->x + rect->width; + bottom = (rt_uint32_t)rect->y + rect->height; + if ((rect->width == 0U) || (rect->height == 0U) || + (right > LCD_WIDTH) || (bottom > LCD_HEIGHT)) + { + return -RT_EINVAL; + } + + if (!lcd_dirty_valid) + { + lcd_dirty_rect = *rect; + lcd_dirty_valid = RT_TRUE; + return RT_EOK; + } + + dirty_right = (rt_uint32_t)lcd_dirty_rect.x + lcd_dirty_rect.width; + dirty_bottom = (rt_uint32_t)lcd_dirty_rect.y + lcd_dirty_rect.height; + if (rect->x < lcd_dirty_rect.x) + { + lcd_dirty_rect.x = rect->x; + } + if (rect->y < lcd_dirty_rect.y) + { + lcd_dirty_rect.y = rect->y; + } + if (right > dirty_right) + { + dirty_right = right; + } + if (bottom > dirty_bottom) + { + dirty_bottom = bottom; + } + lcd_dirty_rect.width = dirty_right - lcd_dirty_rect.x; + lcd_dirty_rect.height = dirty_bottom - lcd_dirty_rect.y; + + return RT_EOK; +} + +static void lcd_cache_flush(void *framebuffer, + const struct rt_device_rect_info *rect) +{ + rt_uint8_t *base = (rt_uint8_t *)framebuffer; + rt_uint16_t row; + + if (rect == RT_NULL) + { + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, base, LCD_FRAMEBUFFER_SIZE); + return; + } + + if ((rect->x == 0U) && (rect->width == LCD_WIDTH)) + { + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, + base + rect->y * LCD_WIDTH * LCD_BYTES_PER_PIXEL, + rect->height * LCD_WIDTH * LCD_BYTES_PER_PIXEL); + return; + } + + for (row = 0U; row < rect->height; row++) + { + rt_uint8_t *address = base + + ((rect->y + row) * LCD_WIDTH + rect->x) * LCD_BYTES_PER_PIXEL; + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, + address, + rect->width * LCD_BYTES_PER_PIXEL); + } +} + +static rt_err_t lcd_pan_display(void *framebuffer) +{ + rt_ubase_t address = (rt_ubase_t)framebuffer; + + if ((address != LCD_FRAMEBUFFER_ADDRESS) && + (address != LCD_FRAMEBUFFER_BACK_ADDRESS)) + { + return -RT_EINVAL; + } + if ((TLI_RL & (TLI_RL_RQR | TLI_RL_FBR)) != 0U) + { + return -RT_EBUSY; + } + + /* Commit pixels before asking the scanout hardware to use this buffer. */ + if (lcd_dirty_valid) + { + lcd_cache_flush(framebuffer, &lcd_dirty_rect); + } + else + { + lcd_cache_flush(framebuffer, RT_NULL); + } + + tli_interrupt_disable(TLI_INT_LCR); + tli_interrupt_flag_clear(TLI_INT_FLAG_LCR); + (void)rt_completion_wait(&lcd_reload_completion, 0); + TLI_LXFBADDR(LAYER0) = address; + __DSB(); + /* A sampled VDE/line IRQ cannot guarantee the task is still in blanking. + * FBR makes the actual address change atomic with the hardware frame boundary. */ + tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN); + tli_interrupt_enable(TLI_INT_LCR); + __DSB(); + lcd_dirty_valid = RT_FALSE; + + return RT_EOK; +} + +static rt_err_t lcd_wait_vsync(void) +{ + rt_tick_t start = rt_tick_get(); + rt_tick_t timeout = rt_tick_from_millisecond(LCD_VSYNC_TIMEOUT_MS); + + while ((TLI_RL & (TLI_RL_RQR | TLI_RL_FBR)) != 0U) + { + rt_tick_t elapsed = rt_tick_get() - start; + + if (elapsed >= timeout) + { + if ((TLI_RL & (TLI_RL_RQR | TLI_RL_FBR)) == 0U) + { + break; + } + tli_interrupt_disable(TLI_INT_LCR); + if (!lcd_reload_timeout_reported) + { + LOG_E("TLI layer reload timed out"); + lcd_reload_timeout_reported = RT_TRUE; + } + return -RT_ETIMEOUT; + } + (void)rt_completion_wait(&lcd_reload_completion, timeout - elapsed); + } + + /* Hardware completion, not just waking the thread, releases the old buffer. */ + __DSB(); + lcd_reload_timeout_reported = RT_FALSE; + return RT_EOK; +} + +static rt_err_t lcd_device_control(rt_device_t device, int cmd, void *args) +{ + switch (cmd) + { + case RTGRAPHIC_CTRL_RECT_UPDATE: + return lcd_dirty_rect_include((const struct rt_device_rect_info *)args); + + case RTGRAPHIC_CTRL_POWERON: + lcd.backlight_powered = RT_TRUE; + return lcd_backlight_apply(); + + case RTGRAPHIC_CTRL_POWEROFF: + lcd.backlight_powered = RT_FALSE; + return lcd_backlight_apply(); + + case RTGRAPHIC_CTRL_SET_BRIGHTNESS: + if (args == RT_NULL) + { + return -RT_EINVAL; + } + return lcd_backlight_set_brightness(*(rt_uint8_t *)args); + + case RTGRAPHIC_CTRL_GET_BRIGHTNESS: + if (args == RT_NULL) + { + return -RT_EINVAL; + } + *(rt_uint8_t *)args = lcd.brightness; + break; + + case RTGRAPHIC_CTRL_GET_INFO: + if (args == RT_NULL) + { + return -RT_EINVAL; + } + rt_memcpy(args, &lcd.info, sizeof(lcd.info)); + break; + + case RTGRAPHIC_CTRL_PAN_DISPLAY: + if (args == RT_NULL) + { + return -RT_EINVAL; + } + return lcd_pan_display(args); + + case RTGRAPHIC_CTRL_WAIT_VSYNC: + return lcd_wait_vsync(); + + default: + return -RT_EINVAL; + } + + return RT_EOK; +} + +#ifdef RT_USING_DEVICE_OPS +static const struct rt_device_ops lcd_device_ops = +{ + lcd_device_init, + RT_NULL, + RT_NULL, + RT_NULL, + RT_NULL, + lcd_device_control, +}; +#endif + +static int rt_hw_lcd_init(void) +{ + rt_memset(&lcd, 0, sizeof(lcd)); + lcd.brightness = LCD_BACKLIGHT_DEFAULT_LEVEL; + lcd.info.pixel_format = RTGRAPHIC_PIXEL_FORMAT_RGB565; + lcd.info.bits_per_pixel = 16U; + lcd.info.pitch = LCD_WIDTH * LCD_BYTES_PER_PIXEL; + lcd.info.width = LCD_WIDTH; + lcd.info.height = LCD_HEIGHT; + lcd.info.framebuffer = (void *)LCD_FRAMEBUFFER_ADDRESS; + lcd.info.smem_len = LCD_FRAMEBUFFER_TOTAL_SIZE; + lcd.parent.type = RT_Device_Class_Graphic; +#ifdef RT_USING_DEVICE_OPS + lcd.parent.ops = &lcd_device_ops; +#else + lcd.parent.init = lcd_device_init; + lcd.parent.control = lcd_device_control; +#endif + lcd.parent.user_data = &lcd.info; + + return rt_device_register(&lcd.parent, LCD_DEVICE_NAME, RT_DEVICE_FLAG_RDWR); +} +INIT_DEVICE_EXPORT(rt_hw_lcd_init); + +#endif /* BSP_USING_LCD_MIPI */ From 5b4f646ada587503bc3614ad467103054673cd2f Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:55 +0800 Subject: [PATCH 15/19] [bsp][gd32] Add GD32H77D GT911 touch support Add the board adapter for the GT911 package. Release the interrupt pin after address selection and wait for valid configuration after reset instead of reporting zero resolution. Verified product ID 911, 720x720 resolution and five-point capability. Physical touch interaction remains to be tested. --- bsp/gd32/arm/gd32h77d-ginopi/SConstruct | 7 ++ bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + .../arm/gd32h77d-ginopi/board/drv_gt911.c | 109 ++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_gt911.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/SConstruct b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct index f47b0708313..b099cfee99d 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/SConstruct +++ b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct @@ -67,6 +67,13 @@ Export('SDK_LIB') # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) +if GetDepend('PKG_USING_GT911'): + for group in Projects: + if group['name'] == 'gt911': + local_defines = group.get('LOCAL_CPPDEFINES', []) + if 'memcpy=rt_memcpy' not in local_defines: + group['LOCAL_CPPDEFINES'] = local_defines + ['memcpy=rt_memcpy'] + # include libraries objs.extend(SConscript(os.path.join(libraries_path_prefix, 'gd32_drivers', 'SConscript'),variant_dir='build/libraries/gd32_drivers', duplicate=0)) diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index 2312ab5c5c9..661d27f8b71 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -15,6 +15,9 @@ if GetDepend(['BSP_USING_SDRAM']): if GetDepend(['BSP_USING_LCD_MIPI']): src += ['drv_lcd.c'] +if GetDepend(['BSP_USING_TOUCH_GT911']): + src += ['drv_gt911.c'] + if GetDepend(['BSP_USING_FLASH_FATFS']): src += ['drv_qspi_flash.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_gt911.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_gt911.c new file mode 100644 index 00000000000..051afa88475 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_gt911.c @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2006-2026, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-23 CYFS add GT911 touch support with reset configuration polling + */ + +#include +#include + +#include +#include + +#define DBG_TAG "drv.gt911.port" +#define DBG_LVL DBG_INFO +#include + +#define GT911_DEVICE_NAME "gt911" +#define GT911_I2C_BUS_NAME "hwi2c3" +#define GT911_RESET_PIN GET_PIN(H, 3) +#define GT911_INT_PIN GET_PIN(H, 5) +#define GT911_STARTUP_DELAY_MS 50U +#define GT911_CONFIG_TIMEOUT_MS 500U + +static rt_uint8_t gt911_reset_pin = GT911_RESET_PIN; +static struct rt_touch_config gt911_config; + +int rt_hw_gt911_port_init(void) +{ + struct rt_touch_info info; + rt_device_t touch_device; + char product_id[6] = {0}; + rt_err_t result; + rt_tick_t start; + + if (rt_device_find(GT911_DEVICE_NAME) != RT_NULL) + { + return RT_EOK; + } + + rt_memset(>911_config, 0, sizeof(gt911_config)); + gt911_config.dev_name = GT911_I2C_BUS_NAME; + gt911_config.irq_pin.pin = GT911_INT_PIN; + gt911_config.irq_pin.mode = PIN_MODE_INPUT_PULLUP; + gt911_config.user_data = >911_reset_pin; + + result = rt_hw_gt911_init(GT911_DEVICE_NAME, >911_config); + + /* The package selects address 0x5d with INT low, then must release INT. */ + rt_pin_mode(GT911_INT_PIN, PIN_MODE_INPUT_PULLUP); + + if (result != RT_EOK) + { + LOG_E("GT911 package init failed: %d", result); + return result; + } + + rt_thread_mdelay(GT911_STARTUP_DELAY_MS); + touch_device = rt_device_find(GT911_DEVICE_NAME); + if (touch_device == RT_NULL) + { + LOG_E("touch device %s was not registered", GT911_DEVICE_NAME); + return -RT_ERROR; + } + + rt_memset(&info, 0, sizeof(info)); + start = rt_tick_get(); + do + { + result = rt_device_control(touch_device, RT_TOUCH_CTRL_GET_INFO, &info); + if (result != RT_EOK) + { + LOG_E("get GT911 information failed: %d", result); + return result; + } + if (info.range_x != 0 && info.range_y != 0 && info.point_num != 0) + { + break; + } + /* The controller restores its configuration after the soft reset. */ + rt_thread_mdelay(20); + } + while (rt_tick_get() - start < rt_tick_from_millisecond(GT911_CONFIG_TIMEOUT_MS)); + + if (info.range_x == 0 || info.range_y == 0 || info.point_num == 0) + { + LOG_E("GT911 configuration is not ready after reset"); + return -RT_ETIMEOUT; + } + + if (rt_device_control(touch_device, RT_TOUCH_CTRL_GET_ID, product_id) != RT_EOK) + { + rt_strncpy(product_id, "GT911", sizeof(product_id)); + } + else + { + product_id[4] = '\0'; + } + product_id[sizeof(product_id) - 1] = '\0'; + + LOG_I("%s ready, id=%s, range=%dx%d, points=%d", GT911_DEVICE_NAME, + product_id, info.range_x, info.range_y, info.point_num); + + return RT_EOK; +} +INIT_DEVICE_EXPORT(rt_hw_gt911_port_init); From 2ea1e809a2f9e600552f5f9a93450e5e0fe847ae Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:03:59 +0800 Subject: [PATCH 16/19] [bsp][gd32] Add GD32H77D OV7670 camera support Add DMA and frame-completion handling, error precedence and capture restart. Keep camera adaptation under board/ports and expose the LVGL preview as an independent application option. Verified the sensor identity, QVGA RGB565 capture and preview start/stop, with no dropped frames or capture errors in the test run. Keep the camera disabled by default. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 7 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../applications/ov7670_preview.c | 586 ++++++++++++ .../applications/ov7670_preview.h | 28 + bsp/gd32/arm/gd32h77d-ginopi/board/SConscript | 3 + .../arm/gd32h77d-ginopi/board/drv_ov7670.c | 888 ++++++++++++++++++ .../arm/gd32h77d-ginopi/board/drv_ov7670.h | 45 + .../gd32h77d-ginopi/board/ports/SConscript | 3 + .../board/ports/camera/SConscript | 11 + .../board/ports/camera/cam_boardconfig.h | 24 + .../board/ports/camera/cambus.c | 79 ++ .../board/ports/camera/omv_i2c.h | 56 ++ .../board/ports/camera/omv_portconfig.h | 18 + .../board/ports/camera/sensor.c | 135 +++ .../board/ports/camera/sensor.h | 88 ++ .../board/ports/camera/sensors/ov7670.c | 462 +++++++++ .../board/ports/camera/sensors/ov7670.h | 15 + .../board/ports/camera/sensors/ov7670_regs.h | 357 +++++++ 18 files changed, 2808 insertions(+) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/SConscript create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cam_boardconfig.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cambus.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_i2c.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_portconfig.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670_regs.h diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index 868d3fabdd5..19bc4b9a7c8 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -38,6 +38,13 @@ menu "Applications" help Register rtc_alarm to configure and inspect a one-shot alarm. + config BSP_USING_OV7670_PREVIEW + bool "Enable OV7670 LVGL preview" + depends on PKG_LVGL_USING_LATEST && BSP_USING_LCD_MIPI && BSP_USING_OV7670 + default n + help + Add the camera preview UI and its optional MSH control command. + config BSP_USING_GD32VW553_MQTT_DEMO bool "Enable GD32VW553 MQTT demo" depends on BSP_USING_GD32VW553_AT diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index a37a5f68fc2..d1e91fc931f 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -15,6 +15,9 @@ if GetDepend('BSP_USING_PWM_DUAL_TEST'): if GetDepend('BSP_USING_RTC_ALARM_EXAMPLE'): src += ['rtc_alarm_example.c'] +if GetDepend('BSP_USING_OV7670_PREVIEW'): + src += ['ov7670_preview.c'] + if GetDepend(['BSP_USING_GD32VW553_MQTT_DEMO', 'PKG_USING_KAWAII_MQTT']): src += ['gd32vw553_mqtt_demo.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.c new file mode 100644 index 00000000000..9b3b1f3311e --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.c @@ -0,0 +1,586 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-06 RTT add OV7670 LVGL preview + * 2026-09-08 CYFS implement asynchronous OV7670 preview with internal AXI SRAM buffers + */ + +#include + +#ifdef BSP_USING_OV7670_PREVIEW + +#include +#include +#include +#include + +#include "drv_ov7670.h" +#include "ov7670_preview.h" + +#ifdef RT_USING_FINSH +#include +#endif + +#define DBG_TAG "app.ov7670" +#define DBG_LVL DBG_INFO +#include + +#define OV7670_PREVIEW_PERIOD_MS 10U +#define OV7670_CONTROL_PERIOD_MS 20U +#define OV7670_PREVIEW_BUFFER_COUNT 2U +#define OV7670_PREVIEW_INVALID_BUFFER (-1) +#define OV7670_CAPTURE_THREAD_STACK 4096U + +#ifndef PKG_LVGL_THREAD_PRIO +#define PKG_LVGL_THREAD_PRIO (RT_THREAD_PRIORITY_MAX * 2U / 3U) +#endif + +#define OV7670_CAPTURE_THREAD_PRIORITY (PKG_LVGL_THREAD_PRIO + 1U) + +/* Static storage cannot fall back to the automatically bound SDRAM heap. */ +rt_align(32) static rt_uint8_t ov7670_preview_buffers[OV7670_PREVIEW_BUFFER_COUNT] + [OV7670_FRAME_SIZE]; +#define OV7670_PREVIEW_BUFFER(index) ov7670_preview_buffers[index] + +enum ov7670_preview_request +{ + OV7670_PREVIEW_REQUEST_NONE = 0, + OV7670_PREVIEW_REQUEST_START, + OV7670_PREVIEW_REQUEST_STOP, +}; + +static const lv_image_dsc_t preview_image_descriptors[OV7670_PREVIEW_BUFFER_COUNT] = +{ + { + .header.magic = LV_IMAGE_HEADER_MAGIC, + .header.cf = LV_COLOR_FORMAT_RGB565, + .header.flags = 0, + .header.w = OV7670_WIDTH, + .header.h = OV7670_HEIGHT, + .header.stride = OV7670_WIDTH * 2U, + .data_size = OV7670_FRAME_SIZE, + .data = OV7670_PREVIEW_BUFFER(0U), + }, + { + .header.magic = LV_IMAGE_HEADER_MAGIC, + .header.cf = LV_COLOR_FORMAT_RGB565, + .header.flags = 0, + .header.w = OV7670_WIDTH, + .header.h = OV7670_HEIGHT, + .header.stride = OV7670_WIDTH * 2U, + .data_size = OV7670_FRAME_SIZE, + .data = OV7670_PREVIEW_BUFFER(1U), + }, +}; + +static rt_device_t preview_camera; +static struct rt_thread preview_capture_thread; +rt_align(RT_ALIGN_SIZE) static rt_uint8_t + preview_capture_stack[OV7670_CAPTURE_THREAD_STACK]; +static struct rt_semaphore preview_capture_semaphore; +static lv_obj_t *preview_previous_screen; +static lv_obj_t *preview_screen; +static lv_obj_t *preview_image; +static lv_timer_t *preview_frame_timer; +static lv_timer_t *preview_control_timer; +static volatile enum ov7670_preview_request preview_request; +static volatile rt_bool_t preview_ready; +static volatile rt_bool_t preview_active; +static volatile rt_bool_t preview_capture_enabled; +static volatile rt_bool_t preview_capture_thread_ready; +static volatile rt_int32_t preview_display_buffer; +static volatile rt_int32_t preview_ready_buffer; +static volatile rt_int32_t preview_capture_buffer; +static volatile rt_uint32_t preview_frame_count; +static volatile rt_uint32_t preview_display_count; +static volatile rt_uint32_t preview_drop_count; +static volatile rt_uint32_t preview_error_count; +static volatile rt_err_t preview_last_result; +static volatile rt_tick_t preview_start_tick; + +static rt_int32_t ov7670_preview_acquire_buffer(void) +{ + rt_int32_t index; + + rt_enter_critical(); + if (!preview_capture_enabled) + { + rt_exit_critical(); + return OV7670_PREVIEW_INVALID_BUFFER; + } + + for (index = 0; index < (rt_int32_t)OV7670_PREVIEW_BUFFER_COUNT; index++) + { + if ((index != preview_display_buffer) && + (index != preview_ready_buffer) && + (index != preview_capture_buffer)) + { + preview_capture_buffer = index; + rt_exit_critical(); + return index; + } + } + rt_exit_critical(); + return OV7670_PREVIEW_INVALID_BUFFER; +} + +static void ov7670_preview_capture_entry(void *parameter) +{ + rt_int32_t buffer_index; + rt_ssize_t size; + rt_err_t result; + rt_uint32_t error_count; + + RT_UNUSED(parameter); + while (1) + { + rt_sem_take(&preview_capture_semaphore, RT_WAITING_FOREVER); + while (preview_capture_enabled) + { + buffer_index = ov7670_preview_acquire_buffer(); + if (buffer_index == OV7670_PREVIEW_INVALID_BUFFER) + { + /* With two buffers, a ready frame must be consumed before + * capture resumes. Never overwrite the displayed or ready frame. */ + rt_thread_mdelay(1U); + continue; + } + + size = rt_device_read(preview_camera, 0, + OV7670_PREVIEW_BUFFER(buffer_index), + OV7670_FRAME_SIZE); + result = size == OV7670_FRAME_SIZE ? RT_EOK : + (size < 0 ? (rt_err_t)size : -RT_EIO); + + rt_enter_critical(); + preview_capture_buffer = OV7670_PREVIEW_INVALID_BUFFER; + if (!preview_capture_enabled) + { + rt_exit_critical(); + continue; + } + if (result == RT_EOK) + { + if (preview_ready_buffer != OV7670_PREVIEW_INVALID_BUFFER) + { + preview_drop_count++; + } + preview_ready_buffer = buffer_index; + preview_frame_count++; + preview_last_result = RT_EOK; + rt_exit_critical(); + continue; + } + + preview_error_count++; + error_count = preview_error_count; + preview_last_result = result; + rt_exit_critical(); + if ((error_count <= 3U) || ((error_count % 30U) == 0U)) + { + LOG_E("frame capture failed: %d", result); + } + } + } +} + +static void ov7670_preview_frame(lv_timer_t *timer) +{ + rt_int32_t buffer_index; + + RT_UNUSED(timer); + /* LVGL timer callbacks run after the previous refresh has finished reading + * its image sources; only then can capture reuse the old display buffer. */ + rt_enter_critical(); + buffer_index = preview_ready_buffer; + if (buffer_index != OV7670_PREVIEW_INVALID_BUFFER) + { + preview_ready_buffer = OV7670_PREVIEW_INVALID_BUFFER; + preview_display_buffer = buffer_index; + preview_display_count++; + } + rt_exit_critical(); + + if ((buffer_index == OV7670_PREVIEW_INVALID_BUFFER) || + (preview_image == RT_NULL)) + { + return; + } + + lv_image_set_src(preview_image, &preview_image_descriptors[buffer_index]); + lv_obj_invalidate(preview_image); +} + +static void ov7670_preview_stop(void) +{ + if (!preview_active) + { + return; + } + + rt_enter_critical(); + preview_capture_enabled = RT_FALSE; + preview_ready_buffer = OV7670_PREVIEW_INVALID_BUFFER; + preview_active = RT_FALSE; + rt_exit_critical(); + + if (preview_frame_timer != RT_NULL) + { + lv_timer_del(preview_frame_timer); + preview_frame_timer = RT_NULL; + } + if ((preview_previous_screen != RT_NULL) && + (lv_screen_active() == preview_screen)) + { + lv_screen_load(preview_previous_screen); + } + if (preview_screen != RT_NULL) + { + lv_obj_delete(preview_screen); + } + + preview_previous_screen = RT_NULL; + preview_screen = RT_NULL; + preview_image = RT_NULL; + LOG_I("preview stopped"); +} + +static void ov7670_preview_back_event(lv_event_t *event) +{ + RT_UNUSED(event); + ov7670_preview_request_stop(); +} + +static void ov7670_preview_start(void) +{ + rt_err_t result; + lv_obj_t *back_button; + lv_obj_t *back_label; + + if (preview_active) + { + return; + } + if (!preview_capture_thread_ready) + { + preview_last_result = -RT_ENOSYS; + LOG_E("capture thread is unavailable"); + return; + } + + if (preview_camera == RT_NULL) + { + preview_camera = rt_device_find(OV7670_DEVICE_NAME); + if (preview_camera == RT_NULL) + { + preview_last_result = -RT_ENOSYS; + LOG_E("device %s not found", OV7670_DEVICE_NAME); + return; + } + + result = rt_device_open(preview_camera, RT_DEVICE_OFLAG_RDONLY); + if (result != RT_EOK) + { + preview_camera = RT_NULL; + preview_last_result = result; + LOG_E("camera open failed: %d", result); + return; + } + } + + preview_previous_screen = lv_screen_active(); + preview_screen = lv_obj_create(RT_NULL); + if (preview_screen == RT_NULL) + { + result = -RT_ENOMEM; + goto _failed; + } + lv_obj_set_scrollable(preview_screen, false); + lv_obj_set_style_bg_color(preview_screen, lv_color_black(), 0); + lv_obj_set_style_bg_opa(preview_screen, LV_OPA_COVER, 0); + + preview_image = lv_image_create(preview_screen); + if (preview_image == RT_NULL) + { + result = -RT_ENOMEM; + goto _failed; + } + rt_memset(OV7670_PREVIEW_BUFFER(preview_display_buffer), 0, + OV7670_FRAME_SIZE); + lv_image_set_src(preview_image, + &preview_image_descriptors[preview_display_buffer]); + lv_image_set_scale(preview_image, 512U); + lv_image_set_antialias(preview_image, false); + lv_obj_center(preview_image); + + back_button = lv_button_create(preview_screen); + if (back_button == RT_NULL) + { + result = -RT_ENOMEM; + goto _failed; + } + lv_obj_set_size(back_button, 96, 44); + lv_obj_align(back_button, LV_ALIGN_TOP_LEFT, 16, 16); + lv_obj_add_event_cb(back_button, ov7670_preview_back_event, + LV_EVENT_CLICKED, RT_NULL); + + back_label = lv_label_create(back_button); + if (back_label == RT_NULL) + { + result = -RT_ENOMEM; + goto _failed; + } + lv_label_set_text(back_label, LV_SYMBOL_LEFT " Back"); + lv_obj_center(back_label); + + preview_frame_timer = lv_timer_create(ov7670_preview_frame, + OV7670_PREVIEW_PERIOD_MS, + RT_NULL); + if (preview_frame_timer == RT_NULL) + { + result = -RT_ENOMEM; + goto _failed; + } + + preview_frame_count = 0U; + preview_display_count = 0U; + preview_drop_count = 0U; + preview_error_count = 0U; + preview_last_result = RT_EOK; + preview_start_tick = rt_tick_get(); + rt_enter_critical(); + preview_ready_buffer = OV7670_PREVIEW_INVALID_BUFFER; + preview_capture_enabled = RT_TRUE; + preview_active = RT_TRUE; + rt_exit_critical(); + lv_screen_load(preview_screen); + lv_timer_ready(preview_frame_timer); + rt_sem_release(&preview_capture_semaphore); + LOG_I("preview started: %ux%u RGB565", OV7670_WIDTH, OV7670_HEIGHT); + return; + +_failed: + if (preview_frame_timer != RT_NULL) + { + lv_timer_del(preview_frame_timer); + preview_frame_timer = RT_NULL; + } + if (preview_screen != RT_NULL) + { + lv_obj_delete(preview_screen); + } + preview_previous_screen = RT_NULL; + preview_screen = RT_NULL; + preview_image = RT_NULL; + preview_last_result = result; + LOG_E("preview start failed: %d", result); +} + +static void ov7670_preview_control(lv_timer_t *timer) +{ + enum ov7670_preview_request request; + + RT_UNUSED(timer); + rt_enter_critical(); + request = preview_request; + preview_request = OV7670_PREVIEW_REQUEST_NONE; + rt_exit_critical(); + + if (request == OV7670_PREVIEW_REQUEST_START) + { + ov7670_preview_start(); + } + else if (request == OV7670_PREVIEW_REQUEST_STOP) + { + ov7670_preview_stop(); + } +} + +void ov7670_preview_init(void) +{ + rt_err_t result; + rt_ubase_t buffers_begin = (rt_ubase_t)ov7670_preview_buffers; + + if (preview_control_timer != RT_NULL) + { + return; + } + + if ((buffers_begin < 0x24000000U) || + (buffers_begin + sizeof(ov7670_preview_buffers) > (rt_ubase_t)GD32_SRAM_END)) + { + preview_last_result = -RT_ENOMEM; + LOG_E("preview buffers must be placed in internal AXI SRAM"); + return; + } + + preview_display_buffer = 0; + preview_ready_buffer = OV7670_PREVIEW_INVALID_BUFFER; + preview_capture_buffer = OV7670_PREVIEW_INVALID_BUFFER; + preview_last_result = RT_EOK; + result = rt_sem_init(&preview_capture_semaphore, "ovprev", 0, + RT_IPC_FLAG_FIFO); + if (result != RT_EOK) + { + preview_last_result = result; + LOG_E("cannot initialize capture semaphore: %d", result); + return; + } + + result = rt_thread_init(&preview_capture_thread, "ovcap", + ov7670_preview_capture_entry, RT_NULL, + preview_capture_stack, + sizeof(preview_capture_stack), + OV7670_CAPTURE_THREAD_PRIORITY, 10U); + if (result != RT_EOK) + { + rt_sem_detach(&preview_capture_semaphore); + preview_last_result = result; + LOG_E("cannot initialize capture thread: %d", result); + return; + } + result = rt_thread_startup(&preview_capture_thread); + if (result != RT_EOK) + { + rt_thread_detach(&preview_capture_thread); + rt_sem_detach(&preview_capture_semaphore); + preview_last_result = result; + LOG_E("cannot start capture thread: %d", result); + return; + } + preview_capture_thread_ready = RT_TRUE; + + preview_control_timer = lv_timer_create(ov7670_preview_control, + OV7670_CONTROL_PERIOD_MS, + RT_NULL); + if (preview_control_timer == RT_NULL) + { + preview_last_result = -RT_ENOMEM; + LOG_E("cannot create preview control timer"); + return; + } + preview_ready = RT_TRUE; +} + +rt_err_t ov7670_preview_request_start(void) +{ + if (!preview_ready) + { + return -RT_ENOSYS; + } + + rt_enter_critical(); + preview_request = OV7670_PREVIEW_REQUEST_START; + rt_exit_critical(); + return RT_EOK; +} + +rt_err_t ov7670_preview_request_stop(void) +{ + if (!preview_ready) + { + return -RT_ENOSYS; + } + + rt_enter_critical(); + preview_request = OV7670_PREVIEW_REQUEST_STOP; + rt_exit_critical(); + return RT_EOK; +} + +void ov7670_preview_get_status(struct ov7670_preview_status *status) +{ + if (status == RT_NULL) + { + return; + } + + rt_enter_critical(); + status->ready = preview_ready; + status->active = preview_active; + status->frame_count = preview_frame_count; + status->display_count = preview_display_count; + status->drop_count = preview_drop_count; + status->error_count = preview_error_count; + status->last_result = preview_last_result; + rt_exit_critical(); +} + +#ifdef RT_USING_FINSH +static const char *ov7670_preview_request_name(enum ov7670_preview_request request) +{ + if (request == OV7670_PREVIEW_REQUEST_START) + { + return "start"; + } + if (request == OV7670_PREVIEW_REQUEST_STOP) + { + return "stop"; + } + return "none"; +} + +static void ov7670_preview(int argc, char **argv) +{ + enum ov7670_preview_request request; + rt_bool_t ready; + rt_bool_t active; + rt_uint32_t frames; + rt_uint32_t displayed; + rt_uint32_t dropped; + rt_uint32_t errors; + rt_uint32_t fps_tenths; + rt_tick_t start_tick; + rt_tick_t elapsed_ticks; + rt_err_t last_result; + + if ((argc == 1) || + ((argc == 2) && (rt_strcmp(argv[1], "start") == 0))) + { + ov7670_preview_request_start(); + rt_kprintf("OV7670 preview start requested\n"); + return; + } + if ((argc == 2) && (rt_strcmp(argv[1], "stop") == 0)) + { + ov7670_preview_request_stop(); + rt_kprintf("OV7670 preview stop requested\n"); + return; + } + if ((argc == 2) && (rt_strcmp(argv[1], "status") == 0)) + { + rt_enter_critical(); + ready = preview_ready; + active = preview_active; + request = preview_request; + frames = preview_frame_count; + displayed = preview_display_count; + dropped = preview_drop_count; + errors = preview_error_count; + start_tick = preview_start_tick; + last_result = preview_last_result; + rt_exit_critical(); + elapsed_ticks = rt_tick_get() - start_tick; + fps_tenths = (active && (elapsed_ticks != 0U)) ? + (rt_uint32_t)(((rt_uint64_t)frames * + RT_TICK_PER_SECOND * 10U) / + elapsed_ticks) : 0U; + rt_kprintf("OV7670 preview ready=%d active=%d request=%s " + "captured=%u displayed=%u dropped=%u errors=%u " + "fps=%u.%u last=%d\n", + ready, active, ov7670_preview_request_name(request), + frames, displayed, dropped, errors, + fps_tenths / 10U, fps_tenths % 10U, last_result); + return; + } + + rt_kprintf("usage: ov7670_preview [start|stop|status]\n"); +} +MSH_CMD_EXPORT(ov7670_preview, start or stop the OV7670 LCD preview); +#endif /* RT_USING_FINSH */ + +#endif /* BSP_USING_OV7670_PREVIEW */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.h b/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.h new file mode 100644 index 00000000000..24d15c51b03 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/ov7670_preview.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef OV7670_PREVIEW_H +#define OV7670_PREVIEW_H + +#include + +struct ov7670_preview_status +{ + rt_bool_t ready; + rt_bool_t active; + rt_uint32_t frame_count; + rt_uint32_t display_count; + rt_uint32_t drop_count; + rt_uint32_t error_count; + rt_err_t last_result; +}; + +void ov7670_preview_init(void); +rt_err_t ov7670_preview_request_start(void); +rt_err_t ov7670_preview_request_stop(void); +void ov7670_preview_get_status(struct ov7670_preview_status *status); + +#endif /* OV7670_PREVIEW_H */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript index 661d27f8b71..a3b7185ac2f 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/SConscript @@ -18,6 +18,9 @@ if GetDepend(['BSP_USING_LCD_MIPI']): if GetDepend(['BSP_USING_TOUCH_GT911']): src += ['drv_gt911.c'] +if GetDepend(['BSP_USING_OV7670']): + src += ['drv_ov7670.c'] + if GetDepend(['BSP_USING_FLASH_FATFS']): src += ['drv_qspi_flash.c'] diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.c b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.c new file mode 100644 index 00000000000..759e79d438c --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.c @@ -0,0 +1,888 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-06 RTT add OV7670 camera support + * 2026-09-08 CYFS synchronize frame capture completion and retain error checks + */ + +#include +#include +#include + +#include "drv_ov7670.h" +#include "ports/camera/sensor.h" +#include "gd32h77x_78x_dci.h" +#include "gd32h77x_78x_dma.h" +#include "gd32h77x_78x_i2c.h" +#include "gd32h77x_78x_misc.h" +#include "gd32h77x_78x_rcu.h" +#include "gd32h77x_78x_timer.h" + +#ifdef BSP_USING_OV7670 + +#define DBG_TAG "drv.ov7670" +#define DBG_LVL DBG_INFO +#include + +#define OV7670_I2C_BUS_NAME "hwi2c2" +#define OV7670_SCCB_ADDRESS 0x21U +#define OV7670_SCCB_WIRE_ADDRESS (OV7670_SCCB_ADDRESS << 1U) +#define OV7670_XCLK_TARGET_HZ 24000000U +#define OV7670_CAPTURE_TIMEOUT_MS 500U +#define OV7670_SCCB_PSC 0U +#define OV7670_SCCB_SCL_DELAY 1U +#define OV7670_SCCB_SDA_DELAY 0U +#define OV7670_SCCB_SCL_HIGH 0x98U +#define OV7670_SCCB_SCL_LOW 0xF1U +#define OV7670_SCCB_RETRY_COUNT 3U +#define OV7670_SCCB_RETRY_DELAY_US 1000U +#define OV7670_SCCB_TIMEOUT_MS 20U +#define OV7670_SCCB_RECOVERY_DELAY_US 5U +#define OV7670_SCCB_RECOVERY_PULSES 9U +#define OV7670_SCCB_ERROR_FLAGS (I2C_FLAG_NACK | I2C_FLAG_BERR | \ + I2C_FLAG_LOSTARB | I2C_FLAG_OUERR | \ + I2C_FLAG_TIMEOUT) +#define OV7670_SCCB_CLEAR_FLAGS (OV7670_SCCB_ERROR_FLAGS | \ + I2C_FLAG_STPDET) +#define OV7670_CLOCK_SAMPLE_COUNT 4096U +#define OV7670_CAPTURE_LINE_WORDS 162U +#define OV7670_CAPTURE_LINE_BYTES (OV7670_CAPTURE_LINE_WORDS * \ + sizeof(rt_uint32_t)) +#define OV7670_CAPTURE_SIZE (OV7670_CAPTURE_LINE_BYTES * \ + OV7670_HEIGHT) +#define OV7670_DMA_WORD_COUNT (OV7670_CAPTURE_SIZE / \ + sizeof(rt_uint32_t)) +#define OV7670_LINE_CROP_BYTES ((OV7670_CAPTURE_LINE_BYTES - \ + OV7670_WIDTH * \ + OV7670_BYTES_PER_PIXEL) / 2U) +#define OV7670_DMA_FLAGS (DMA_INT_FLAG_FEE | DMA_INT_FLAG_SDE | \ + DMA_INT_FLAG_TAE | DMA_INT_FLAG_FTF) +#define OV7670_DMA_INTERRUPTS (DMA_INT_FEE | DMA_INT_SDE | \ + DMA_INT_TAE | DMA_INT_FTF) + +struct ov7670_device +{ + struct rt_device parent; + struct rt_i2c_bus_device *bus; + struct rt_mutex lock; + struct ov7670_info info; + rt_bool_t initialized; +}; + +static struct ov7670_device ov7670; +rt_align(32) static rt_uint8_t ov7670_frame_buffer[OV7670_CAPTURE_SIZE]; +static struct rt_completion ov7670_capture_completion; +static volatile rt_bool_t ov7670_capture_active; +static volatile rt_err_t ov7670_capture_result; +static volatile rt_bool_t ov7670_dma_complete; +static volatile rt_bool_t ov7670_frame_complete; +static volatile rt_uint32_t ov7670_capture_flags; + +static rt_uint32_t ov7670_timer_clock_get(void) +{ + rt_uint32_t ahb_clock = rcu_clock_freq_get(CK_AHB); + rt_uint32_t timer_clock = rcu_clock_freq_get(CK_APB2); + rt_uint32_t multiplier; + + multiplier = (RCU_CFG1 & RCU_CFG1_TIMERSEL) ? 4U : 2U; + timer_clock *= multiplier; + if (timer_clock > ahb_clock) + { + timer_clock = ahb_clock; + } + + return timer_clock; +} + +static rt_uint32_t ov7670_xclk_divisor_get(void) +{ + return (ov7670_timer_clock_get() + OV7670_XCLK_TARGET_HZ / 2U) / + OV7670_XCLK_TARGET_HZ; +} + +static void ov7670_xclk_start(void) +{ + timer_parameter_struct timer_config; + timer_oc_parameter_struct output_config; + rt_uint32_t divisor = ov7670_xclk_divisor_get(); + + rcu_periph_clock_enable(RCU_GPIOE); + rcu_periph_clock_enable(RCU_TIMER0); + + gpio_af_set(GPIOE, GPIO_AF_1, GPIO_PIN_9); + gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9); + gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_9); + + timer_deinit(TIMER0); + timer_struct_para_init(&timer_config); + timer_config.prescaler = 0U; + timer_config.alignedmode = TIMER_COUNTER_EDGE; + timer_config.counterdirection = TIMER_COUNTER_UP; + timer_config.period = divisor - 1U; + timer_config.clockdivision = TIMER_CKDIV_DIV1; + timer_config.repetitioncounter = 0U; + timer_init(TIMER0, &timer_config); + + timer_channel_output_struct_para_init(&output_config); + output_config.outputstate = TIMER_CCX_ENABLE; + output_config.outputnstate = TIMER_CCXN_DISABLE; + output_config.ocpolarity = TIMER_OC_POLARITY_HIGH; + output_config.ocnpolarity = TIMER_OCN_POLARITY_HIGH; + output_config.ocidlestate = TIMER_OC_IDLE_STATE_LOW; + output_config.ocnidlestate = TIMER_OCN_IDLE_STATE_LOW; + timer_channel_output_config(TIMER0, TIMER_CH_0, &output_config); + timer_channel_output_mode_config(TIMER0, TIMER_CH_0, TIMER_OC_MODE_PWM0); + timer_channel_output_pulse_value_config(TIMER0, TIMER_CH_0, divisor / 2U); + timer_channel_output_shadow_config(TIMER0, TIMER_CH_0, + TIMER_OC_SHADOW_DISABLE); + timer_channel_primary_output_config(TIMER0, TIMER_CH_0, ENABLE); + timer_primary_output_config(TIMER0, ENABLE); + timer_channel_output_state_config(TIMER0, TIMER_CH_0, TIMER_CCX_ENABLE); + timer_enable(TIMER0); +} + +static void ov7670_xclk_stop(void) +{ + timer_channel_output_state_config(TIMER0, TIMER_CH_0, TIMER_CCX_DISABLE); + timer_channel_primary_output_config(TIMER0, TIMER_CH_0, DISABLE); + timer_disable(TIMER0); + gpio_mode_set(GPIOE, GPIO_MODE_INPUT, GPIO_PUPD_NONE, GPIO_PIN_9); +} + +static void ov7670_sccb_bus_config(void) +{ + /* Use the conservative SCCB timing from the GD32H77DI DCI example. */ + i2c_deinit(I2C2); + i2c_timing_config(I2C2, OV7670_SCCB_PSC, OV7670_SCCB_SCL_DELAY, + OV7670_SCCB_SDA_DELAY); + i2c_master_clock_config(I2C2, OV7670_SCCB_SCL_HIGH, + OV7670_SCCB_SCL_LOW); + i2c_enable(I2C2); +} + +static void ov7670_sccb_bus_recover(void) +{ + rt_uint32_t pulse; + + i2c_disable(I2C2); + rcu_periph_clock_enable(RCU_GPIOA); + rcu_periph_clock_enable(RCU_GPIOC); + + gpio_bit_set(GPIOA, GPIO_PIN_8); + gpio_bit_set(GPIOC, GPIO_PIN_9); + gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_8); + gpio_mode_set(GPIOC, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_9); + gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, + GPIO_PIN_8); + gpio_output_options_set(GPIOC, GPIO_OTYPE_OD, GPIO_OSPEED_60MHZ, + GPIO_PIN_9); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + + for (pulse = 0U; + (pulse < OV7670_SCCB_RECOVERY_PULSES) && + (gpio_input_bit_get(GPIOC, GPIO_PIN_9) == RESET); + pulse++) + { + gpio_bit_reset(GPIOA, GPIO_PIN_8); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + gpio_bit_set(GPIOA, GPIO_PIN_8); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + } + + gpio_bit_reset(GPIOC, GPIO_PIN_9); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + gpio_bit_set(GPIOA, GPIO_PIN_8); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + gpio_bit_set(GPIOC, GPIO_PIN_9); + rt_hw_us_delay(OV7670_SCCB_RECOVERY_DELAY_US); + + gpio_af_set(GPIOA, GPIO_AF_4, GPIO_PIN_8); + gpio_af_set(GPIOC, GPIO_AF_4, GPIO_PIN_9); + gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_8); + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_PULLUP, GPIO_PIN_9); + ov7670_sccb_bus_config(); +} + +static rt_err_t ov7670_sccb_wait_flag(rt_uint32_t flag) +{ + rt_tick_t start_tick = rt_tick_get(); + rt_tick_t timeout = rt_tick_from_millisecond(OV7670_SCCB_TIMEOUT_MS); + + while (i2c_flag_get(I2C2, flag) == RESET) + { + if ((I2C_STAT(I2C2) & OV7670_SCCB_ERROR_FLAGS) != 0U) + { + return -RT_EIO; + } + if ((rt_tick_get() - start_tick) >= timeout) + { + return -RT_ETIMEOUT; + } + } + + return RT_EOK; +} + +static rt_err_t ov7670_sccb_wait_idle(void) +{ + rt_tick_t start_tick = rt_tick_get(); + rt_tick_t timeout = rt_tick_from_millisecond(OV7670_SCCB_TIMEOUT_MS); + + while (i2c_flag_get(I2C2, I2C_FLAG_I2CBSY) != RESET) + { + if ((rt_tick_get() - start_tick) >= timeout) + { + return -RT_ETIMEOUT; + } + } + + return RT_EOK; +} + +static void ov7670_sccb_transfer_finish(void) +{ + i2c_automatic_end_disable(I2C2); + i2c_flag_clear(I2C2, OV7670_SCCB_CLEAR_FLAGS); +} + +static void ov7670_sccb_log_failure(const char *phase, rt_uint8_t reg) +{ + LOG_E("SCCB %s failed at reg 0x%02x (SCL=%u SDA=%u TIMING=%08x STAT=%08x)", + phase, reg, + (unsigned int)gpio_input_bit_get(GPIOA, GPIO_PIN_8), + (unsigned int)gpio_input_bit_get(GPIOC, GPIO_PIN_9), + (unsigned int)I2C_TIMING(I2C2), (unsigned int)I2C_STAT(I2C2)); +} + +static rt_uint32_t ov7670_pin_edge_count(rt_uint32_t gpio_periph, + rt_uint32_t pin) +{ + rt_uint32_t previous = GPIO_ISTAT(gpio_periph) & pin; + rt_uint32_t edges = 0U; + rt_uint32_t index; + + for (index = 0U; index < OV7670_CLOCK_SAMPLE_COUNT; index++) + { + rt_uint32_t current = GPIO_ISTAT(gpio_periph) & pin; + + if (current != previous) + { + edges++; + previous = current; + } + } + return edges; +} + +static void ov7670_clock_log_failure(void) +{ + rt_uint32_t xclk_edges; + rt_uint32_t pclk_edges; + + gpio_af_set(GPIOE, GPIO_AF_13, GPIO_PIN_3); + gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3); + xclk_edges = ov7670_pin_edge_count(GPIOE, GPIO_PIN_9); + pclk_edges = ov7670_pin_edge_count(GPIOE, GPIO_PIN_3); + LOG_E("clock diagnostic: XCLK edges=%u PCLK edges=%u CTL0=%08x CNT=%u CAR=%u CH0CV=%u", + (unsigned int)xclk_edges, (unsigned int)pclk_edges, + (unsigned int)TIMER_CTL0(TIMER0), + (unsigned int)TIMER_CNT(TIMER0), + (unsigned int)TIMER_CAR(TIMER0), + (unsigned int)TIMER_CH0CV(TIMER0)); + LOG_E("clock gates: CHCTL0=%08x CHCTL2=%08x CCHP=%08x CHBRKCTL=%08x", + (unsigned int)TIMER_CHCTL0(TIMER0), + (unsigned int)TIMER_CHCTL2(TIMER0), + (unsigned int)TIMER_CCHP(TIMER0), + (unsigned int)TIMER_CHBRKCTL(TIMER0)); + LOG_E("PE9 mux: CTL=%08x AFSEL1=%08x OMODE=%08x ISTAT=%08x", + (unsigned int)GPIO_CTL(GPIOE), + (unsigned int)GPIO_AFSEL1(GPIOE), + (unsigned int)GPIO_OMODE(GPIOE), + (unsigned int)GPIO_ISTAT(GPIOE)); +} + +static rt_err_t ov7670_write_register(rt_uint8_t reg, rt_uint8_t value) +{ + rt_err_t result; + rt_uint32_t attempt; + + for (attempt = 0U; attempt < OV7670_SCCB_RETRY_COUNT; attempt++) + { + result = ov7670_sccb_wait_idle(); + if (result == RT_EOK) + { + i2c_flag_clear(I2C2, OV7670_SCCB_CLEAR_FLAGS); + i2c_master_addressing(I2C2, OV7670_SCCB_WIRE_ADDRESS, + I2C_MASTER_TRANSMIT); + i2c_transfer_byte_number_config(I2C2, 2U); + i2c_automatic_end_enable(I2C2); + i2c_start_on_bus(I2C2); + + i2c_data_transmit(I2C2, reg); + result = ov7670_sccb_wait_flag(I2C_FLAG_TI); + } + if (result == RT_EOK) + { + i2c_data_transmit(I2C2, value); + result = ov7670_sccb_wait_flag(I2C_FLAG_TI); + } + if (result == RT_EOK) + { + result = ov7670_sccb_wait_flag(I2C_FLAG_STPDET); + } + ov7670_sccb_transfer_finish(); + + if (result == RT_EOK) + { + if (attempt != 0U) + { + LOG_W("SCCB write recovered at reg 0x%02x after %u retries", + reg, (unsigned int)attempt); + } + return RT_EOK; + } + + if ((attempt + 1U) < OV7670_SCCB_RETRY_COUNT) + { + rt_hw_us_delay(OV7670_SCCB_RETRY_DELAY_US); + ov7670_sccb_bus_recover(); + } + } + + ov7670_sccb_log_failure("write", reg); + ov7670_sccb_bus_recover(); + return result; +} + +static rt_err_t ov7670_read_register(rt_uint8_t reg, rt_uint8_t *value) +{ + rt_err_t result; + rt_uint32_t attempt; + + for (attempt = 0U; attempt < OV7670_SCCB_RETRY_COUNT; attempt++) + { + result = ov7670_sccb_wait_idle(); + if (result == RT_EOK) + { + i2c_flag_clear(I2C2, OV7670_SCCB_CLEAR_FLAGS); + i2c_master_addressing(I2C2, OV7670_SCCB_WIRE_ADDRESS, + I2C_MASTER_TRANSMIT); + i2c_transfer_byte_number_config(I2C2, 1U); + i2c_automatic_end_enable(I2C2); + i2c_start_on_bus(I2C2); + + i2c_data_transmit(I2C2, reg); + result = ov7670_sccb_wait_flag(I2C_FLAG_TI); + } + if (result == RT_EOK) + { + result = ov7670_sccb_wait_flag(I2C_FLAG_STPDET); + } + ov7670_sccb_transfer_finish(); + + if (result == RT_EOK) + { + i2c_master_addressing(I2C2, OV7670_SCCB_WIRE_ADDRESS, + I2C_MASTER_RECEIVE); + i2c_transfer_byte_number_config(I2C2, 1U); + i2c_automatic_end_enable(I2C2); + i2c_start_on_bus(I2C2); + result = ov7670_sccb_wait_flag(I2C_FLAG_RBNE); + } + if (result == RT_EOK) + { + *value = i2c_data_receive(I2C2); + result = ov7670_sccb_wait_flag(I2C_FLAG_STPDET); + } + ov7670_sccb_transfer_finish(); + + if (result == RT_EOK) + { + return RT_EOK; + } + + if ((attempt + 1U) < OV7670_SCCB_RETRY_COUNT) + { + rt_hw_us_delay(OV7670_SCCB_RETRY_DELAY_US); + ov7670_sccb_bus_recover(); + } + } + + ov7670_sccb_log_failure("read", reg); + ov7670_sccb_bus_recover(); + return result; +} + +int gd32_camera_sccb_read(rt_uint8_t slv_addr, rt_uint8_t reg, + rt_uint8_t *value) +{ + RT_UNUSED(slv_addr); + return ov7670_read_register(reg, value); +} + +int gd32_camera_sccb_write(rt_uint8_t slv_addr, rt_uint8_t reg, + rt_uint8_t value) +{ + RT_UNUSED(slv_addr); + return ov7670_write_register(reg, value); +} + +static rt_err_t ov7670_sensor_init(void) +{ + rt_err_t result; + int version; + + result = rt_i2c_bus_lock(ov7670.bus, RT_WAITING_FOREVER); + if (result != RT_EOK) + { + return result; + } + + ov7670_xclk_start(); + rt_hw_us_delay(10000U); + ov7670_sccb_bus_recover(); + + result = (sensor_init() == 0) ? RT_EOK : -RT_EIO; + if (result != RT_EOK) + { + ov7670_clock_log_failure(); + } + if (result == RT_EOK) + { + result = sensor_reset(); + } + if (result == RT_EOK) + { + result = sensor_set_pixformat(PIXFORMAT_RGB565); + } + if (result == RT_EOK) + { + result = sensor_set_framesize(FRAMESIZE_QVGA); + } + if (result == RT_EOK) + { + ov7670.info.pid = sensor.chip_id; + version = sensor_read_reg(0x0BU); + result = (version >= 0) ? RT_EOK : -RT_EIO; + if (result == RT_EOK) + { + ov7670.info.ver = (rt_uint8_t)version; + } + } + if (result == RT_EOK) + { + /* Window and scaling registers take effect on a frame boundary. */ + rt_hw_us_delay(100000U); + } + + if (result != RT_EOK) + { + ov7670_xclk_stop(); + } + rt_i2c_bus_unlock(ov7670.bus); + return result; +} + +static void ov7670_gpio_init(void) +{ + rcu_periph_clock_enable(RCU_GPIOA); + rcu_periph_clock_enable(RCU_GPIOB); + rcu_periph_clock_enable(RCU_GPIOC); + rcu_periph_clock_enable(RCU_GPIOD); + rcu_periph_clock_enable(RCU_GPIOE); + rcu_periph_clock_enable(RCU_GPIOG); + rcu_periph_clock_enable(RCU_GPIOH); + + gpio_af_set(GPIOG, GPIO_AF_13, GPIO_PIN_9); + gpio_af_set(GPIOH, GPIO_AF_1, GPIO_PIN_15); + gpio_af_set(GPIOE, GPIO_AF_13, GPIO_PIN_3); + gpio_af_set(GPIOA, GPIO_AF_13, GPIO_PIN_9 | GPIO_PIN_10); + gpio_af_set(GPIOC, GPIO_AF_13, GPIO_PIN_8); + gpio_af_set(GPIOE, GPIO_AF_13, GPIO_PIN_1); + gpio_af_set(GPIOH, GPIO_AF_13, GPIO_PIN_14); + gpio_af_set(GPIOD, GPIO_AF_13, GPIO_PIN_3); + gpio_af_set(GPIOB, GPIO_AF_13, GPIO_PIN_8 | GPIO_PIN_9); + + gpio_mode_set(GPIOG, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_9); + gpio_mode_set(GPIOH, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_14 | GPIO_PIN_15); + gpio_mode_set(GPIOE, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_1 | GPIO_PIN_3); + gpio_mode_set(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_9 | GPIO_PIN_10); + gpio_mode_set(GPIOC, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_8); + gpio_mode_set(GPIOD, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO_PIN_3); + gpio_mode_set(GPIOB, GPIO_MODE_AF, GPIO_PUPD_NONE, + GPIO_PIN_8 | GPIO_PIN_9); + + gpio_output_options_set(GPIOG, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_9); + gpio_output_options_set(GPIOH, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_14 | GPIO_PIN_15); + gpio_output_options_set(GPIOE, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_1 | GPIO_PIN_3); + gpio_output_options_set(GPIOA, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_9 | GPIO_PIN_10); + gpio_output_options_set(GPIOC, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_8); + gpio_output_options_set(GPIOD, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_3); + gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_100_220MHZ, + GPIO_PIN_8 | GPIO_PIN_9); +} + +static void ov7670_dci_configure(void) +{ + dci_parameter_struct dci_config; + + /* Start each snapshot with an empty FIFO, including after an aborted frame. */ + dci_deinit(); + dci_config.capture_mode = DCI_CAPTURE_MODE_SNAPSHOT; + dci_config.clock_polarity = DCI_CK_POLARITY_RISING; + dci_config.hsync_polarity = DCI_HSYNC_POLARITY_LOW; + dci_config.vsync_polarity = DCI_VSYNC_POLARITY_HIGH; + dci_config.frame_rate = DCI_FRAME_RATE_ALL; + dci_config.interface_format = DCI_INTERFACE_FORMAT_8BITS; + dci_init(&dci_config); + dci_interrupt_enable(DCI_INT_OVR | DCI_INT_ESE | DCI_INT_EF); +} + +static void ov7670_dci_init(void) +{ + rcu_periph_clock_enable(RCU_DCI); + rcu_periph_clock_enable(RCU_DMA1); + rcu_periph_clock_enable(RCU_DMAMUX); + ov7670_gpio_init(); + ov7670_dci_configure(); + + nvic_irq_enable(DMA1_Channel7_IRQn, 4U, 0U); + nvic_irq_enable(DCI_IRQn, 4U, 0U); +} + +static void ov7670_dma_prepare(void) +{ + dma_single_data_parameter_struct dma_config; + + dma_channel_deinit(DMA1, DMA_CH7); + dma_single_data_para_struct_init(&dma_config); + dma_config.request = DMA_REQUEST_DCI; + dma_config.periph_addr = (rt_uint32_t)&DCI_DATA; + dma_config.memory0_addr = (rt_uint32_t)ov7670_frame_buffer; + dma_config.direction = DMA_PERIPH_TO_MEMORY; + dma_config.number = OV7670_DMA_WORD_COUNT; + dma_config.periph_inc = DMA_PERIPH_INCREASE_DISABLE; + dma_config.memory_inc = DMA_MEMORY_INCREASE_ENABLE; + dma_config.periph_memory_width = DMA_PERIPH_WIDTH_32BIT; + dma_config.circular_mode = DMA_CIRCULAR_MODE_DISABLE; + dma_config.priority = DMA_PRIORITY_ULTRA_HIGH; + dma_single_data_mode_init(DMA1, DMA_CH7, &dma_config); + dma_interrupt_flag_clear(DMA1, DMA_CH7, OV7670_DMA_FLAGS); + dma_interrupt_enable(DMA1, DMA_CH7, OV7670_DMA_INTERRUPTS); +} + +static void ov7670_capture_finish(rt_err_t result) +{ + if (!ov7670_capture_active) + { + return; + } + + ov7670_capture_flags |= DCI_STAT1; + if ((result == RT_EOK) && + ((ov7670_capture_flags & (DCI_STAT1_OVRF | DCI_STAT1_ESEF)) != 0U)) + { + result = -RT_EIO; + } + dma_channel_disable(DMA1, DMA_CH7); + dma_interrupt_disable(DMA1, DMA_CH7, OV7670_DMA_INTERRUPTS); + dci_capture_disable(); + dci_disable(); + dci_interrupt_disable(DCI_INT_OVR | DCI_INT_ESE | DCI_INT_EF); + ov7670_capture_result = result; + ov7670_capture_active = RT_FALSE; + rt_completion_done(&ov7670_capture_completion); +} + +static void ov7670_capture_update(rt_uint32_t dci_flags, + rt_bool_t dma_error, rt_bool_t dma_finished) +{ + if (!ov7670_capture_active) + { + return; + } + + ov7670_capture_flags |= dci_flags; + if ((dci_flags & DCI_STAT1_EFF) != 0U) + { + ov7670_frame_complete = RT_TRUE; + } + if (dma_finished && !ov7670_dma_complete) + { + ov7670_dma_complete = RT_TRUE; + } + + /* The two IRQs may arrive in either order. An overflow takes precedence + * over completion, even when the DMA IRQ is serviced first. */ + if (dma_error || ((dci_flags & (DCI_STAT1_OVRF | DCI_STAT1_ESEF)) != 0U)) + { + ov7670_capture_finish(-RT_EIO); + } + else if (ov7670_dma_complete && ov7670_frame_complete) + { + rt_bool_t complete = (dma_transfer_number_get(DMA1, DMA_CH7) == 0U) && + ((DCI_STAT0 & DCI_STAT0_FV) == 0U); + + ov7670_capture_finish(complete ? RT_EOK : -RT_EIO); + } +} + +void DMA1_Channel7_IRQHandler(void) +{ + rt_bool_t error; + rt_bool_t finished; + + rt_interrupt_enter(); + error = (dma_interrupt_flag_get(DMA1, DMA_CH7, DMA_INT_FLAG_FEE) != RESET) || + (dma_interrupt_flag_get(DMA1, DMA_CH7, DMA_INT_FLAG_SDE) != RESET) || + (dma_interrupt_flag_get(DMA1, DMA_CH7, DMA_INT_FLAG_TAE) != RESET); + finished = dma_interrupt_flag_get(DMA1, DMA_CH7, DMA_INT_FLAG_FTF) != RESET; + dma_interrupt_flag_clear(DMA1, DMA_CH7, OV7670_DMA_FLAGS); + + ov7670_capture_update(DCI_STAT1, error, finished); + __DSB(); + rt_interrupt_leave(); +} + +void DCI_IRQHandler(void) +{ + rt_uint32_t flags; + + rt_interrupt_enter(); + flags = DCI_STAT1; + dci_interrupt_flag_clear(flags & (DCI_INT_FLAG_EF | DCI_INT_FLAG_OVR | + DCI_INT_FLAG_ESE)); + ov7670_capture_update(flags, RT_FALSE, RT_FALSE); + __DSB(); + rt_interrupt_leave(); +} + +static void ov7670_rgb565_byte_swap(void) +{ + rt_size_t index; + + for (index = 0U; index < OV7670_FRAME_SIZE; index += 2U) + { + rt_uint8_t value = ov7670_frame_buffer[index]; + + ov7670_frame_buffer[index] = ov7670_frame_buffer[index + 1U]; + ov7670_frame_buffer[index + 1U] = value; + } +} + +static void ov7670_compact_frame(void) +{ + rt_size_t row; + + for (row = 0U; row < OV7670_HEIGHT; row++) + { + rt_memmove(ov7670_frame_buffer + + row * OV7670_WIDTH * OV7670_BYTES_PER_PIXEL, + ov7670_frame_buffer + + row * OV7670_CAPTURE_LINE_BYTES + OV7670_LINE_CROP_BYTES, + OV7670_WIDTH * OV7670_BYTES_PER_PIXEL); + } +} + +static rt_err_t ov7670_capture(void) +{ + rt_tick_t timeout; + rt_base_t level; + rt_err_t wait_result; + + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH | RT_HW_CACHE_INVALIDATE, + ov7670_frame_buffer, OV7670_CAPTURE_SIZE); + + level = rt_hw_interrupt_disable(); + ov7670_dci_configure(); + ov7670_dma_prepare(); + ov7670_capture_result = -RT_ETIMEOUT; + ov7670_dma_complete = RT_FALSE; + ov7670_frame_complete = RT_FALSE; + ov7670_capture_flags = 0U; + rt_completion_init(&ov7670_capture_completion); + NVIC_ClearPendingIRQ(DMA1_Channel7_IRQn); + NVIC_ClearPendingIRQ(DCI_IRQn); + ov7670_capture_active = RT_TRUE; + dma_channel_enable(DMA1, DMA_CH7); + dci_enable(); + dci_capture_enable(); + __DSB(); + rt_hw_interrupt_enable(level); + + timeout = rt_tick_from_millisecond(OV7670_CAPTURE_TIMEOUT_MS); + wait_result = rt_completion_wait(&ov7670_capture_completion, timeout); + + level = rt_hw_interrupt_disable(); + if (ov7670_capture_active) + { + ov7670_capture_finish(wait_result == RT_EOK ? -RT_EIO : wait_result); + } + rt_hw_interrupt_enable(level); + + if (ov7670_capture_result != RT_EOK) + { + return ov7670_capture_result; + } + + rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, ov7670_frame_buffer, + OV7670_CAPTURE_SIZE); + ov7670_compact_frame(); + if (sensor.hw_flags.rgb_swap) + { + ov7670_rgb565_byte_swap(); + } + return RT_EOK; +} + +static rt_err_t ov7670_device_init(rt_device_t device) +{ + rt_err_t result; + + RT_UNUSED(device); + result = rt_mutex_take(&ov7670.lock, RT_WAITING_FOREVER); + if (result != RT_EOK) + { + return result; + } + if (ov7670.initialized) + { + rt_mutex_release(&ov7670.lock); + return RT_EOK; + } + + ov7670.bus = rt_i2c_bus_device_find(OV7670_I2C_BUS_NAME); + if (ov7670.bus == RT_NULL) + { + LOG_E("I2C bus %s not found", OV7670_I2C_BUS_NAME); + rt_mutex_release(&ov7670.lock); + return -RT_ENOSYS; + } + + result = ov7670_sensor_init(); + if (result == RT_EOK) + { + ov7670_dci_init(); + ov7670.initialized = RT_TRUE; + LOG_I("OV7670 PID=%02x VER=%02x, %ux%u RGB565, XCLK=%u Hz", + ov7670.info.pid, ov7670.info.ver, + ov7670.info.width, ov7670.info.height, ov7670.info.xclk_hz); + } + else + { + LOG_E("sensor initialization failed: %d (PID=%02x VER=%02x)", + result, ov7670.info.pid, ov7670.info.ver); + } + + rt_mutex_release(&ov7670.lock); + return result; +} + +static rt_ssize_t ov7670_device_read(rt_device_t device, rt_off_t position, + void *buffer, rt_size_t size) +{ + rt_err_t result; + + RT_UNUSED(device); + RT_UNUSED(position); + if ((buffer == RT_NULL) || (size < OV7670_FRAME_SIZE)) + { + return -RT_EINVAL; + } + if (!ov7670.initialized) + { + return -RT_EIO; + } + + result = rt_mutex_take(&ov7670.lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + result = ov7670_capture(); + if (result == RT_EOK) + { + rt_memcpy(buffer, ov7670_frame_buffer, OV7670_FRAME_SIZE); + } + rt_mutex_release(&ov7670.lock); + } + + return (result == RT_EOK) ? (rt_ssize_t)OV7670_FRAME_SIZE : result; +} + +static rt_err_t ov7670_device_control(rt_device_t device, int command, + void *args) +{ + RT_UNUSED(device); + if (args == RT_NULL) + { + return -RT_EINVAL; + } + + if (command == OV7670_CTRL_GET_INFO) + { + rt_memcpy(args, &ov7670.info, sizeof(ov7670.info)); + return RT_EOK; + } + + return -RT_EINVAL; +} + +#ifdef RT_USING_DEVICE_OPS +static const struct rt_device_ops ov7670_device_ops = +{ + ov7670_device_init, + RT_NULL, + RT_NULL, + ov7670_device_read, + RT_NULL, + ov7670_device_control, +}; +#endif + +static int rt_hw_ov7670_register(void) +{ + rt_uint32_t divisor; + rt_err_t result; + + rt_memset(&ov7670, 0, sizeof(ov7670)); + result = rt_mutex_init(&ov7670.lock, "ov7670", RT_IPC_FLAG_PRIO); + if (result != RT_EOK) + { + return result; + } + + divisor = ov7670_xclk_divisor_get(); + ov7670.info.width = OV7670_WIDTH; + ov7670.info.height = OV7670_HEIGHT; + ov7670.info.frame_size = OV7670_FRAME_SIZE; + ov7670.info.pixel_format = OV7670_PIXEL_FORMAT_RGB565; + ov7670.info.xclk_hz = ov7670_timer_clock_get() / divisor; + ov7670.parent.type = RT_Device_Class_Miscellaneous; +#ifdef RT_USING_DEVICE_OPS + ov7670.parent.ops = &ov7670_device_ops; +#else + ov7670.parent.init = ov7670_device_init; + ov7670.parent.read = ov7670_device_read; + ov7670.parent.control = ov7670_device_control; +#endif + ov7670.parent.user_data = &ov7670.info; + + return rt_device_register(&ov7670.parent, OV7670_DEVICE_NAME, + RT_DEVICE_FLAG_RDONLY); +} +INIT_DEVICE_EXPORT(rt_hw_ov7670_register); + +#endif /* BSP_USING_OV7670 */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.h b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.h new file mode 100644 index 00000000000..c071401594b --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/drv_ov7670.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef __DRV_OV7670_H__ +#define __DRV_OV7670_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define OV7670_DEVICE_NAME "ov7670" +#define OV7670_WIDTH 320U +#define OV7670_HEIGHT 240U +#define OV7670_BYTES_PER_PIXEL 2U +#define OV7670_FRAME_SIZE (OV7670_WIDTH * OV7670_HEIGHT * \ + OV7670_BYTES_PER_PIXEL) + +#define OV7670_CTRL_GET_INFO (RT_DEVICE_CTRL_BASE(Miscellaneous) + 1) + +enum ov7670_pixel_format +{ + OV7670_PIXEL_FORMAT_RGB565 = 0, +}; + +struct ov7670_info +{ + rt_uint16_t width; + rt_uint16_t height; + rt_uint32_t frame_size; + rt_uint32_t pixel_format; + rt_uint32_t xclk_hz; + rt_uint8_t pid; + rt_uint8_t ver; +}; + +#ifdef __cplusplus +} +#endif + +#endif /* __DRV_OV7670_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript index 9ad62191538..d8d321e5022 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript @@ -9,4 +9,7 @@ if GetDepend('BSP_USING_GD32VW553_AT'): group = DefineGroup('BoardPorts', src, depend = [''], CPPPATH = [cwd]) +if GetDepend('BSP_USING_OV7670'): + group += SConscript(os.path.join('camera', 'SConscript')) + Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/SConscript new file mode 100644 index 00000000000..b28f03b6825 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/SConscript @@ -0,0 +1,11 @@ +from building import * + +cwd = GetCurrentDir() +src = Split(''' + cambus.c + sensor.c + sensors/ov7670.c +''') + +group = DefineGroup('CameraPort', src, depend = [''], CPPPATH = [cwd, cwd + '/sensors']) +Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cam_boardconfig.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cam_boardconfig.h new file mode 100644 index 00000000000..4236e722dc5 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cam_boardconfig.h @@ -0,0 +1,24 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * Board configuration for the GD32H77D OV7670 port. + */ +#ifndef __CAM_BOARDCONFIG_H__ +#define __CAM_BOARDCONFIG_H__ + +#define OMV_XCLK_FREQUENCY (24000000U) +#define OMV_CAM_BUS_NAME "hwi2c2" + +#define OMV_ENABLE_OV7670 (1) +#define OMV_OV7670_VERSION (70) +#define OMV_OV7670_CLKRC (0x00) + +#define ISC_I2C_ID (2U) +#define ISC_I2C_SPEED (0U) + +#endif /* __CAM_BOARDCONFIG_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cambus.c b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cambus.c new file mode 100644 index 00000000000..80ca6f1df89 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/cambus.c @@ -0,0 +1,79 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2023 Ibrahim Abdelkader + * Copyright (c) 2013-2023 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * GD32 SCCB adapter. The low-level transfer is shared with drv_ov7670.c so + * that its timeout and bus-recovery behavior remains in one place. + */ +#include + +#include "cam_boardconfig.h" +#include "omv_i2c.h" + +int omv_i2c_init(omv_i2c_t *bus, rt_uint32_t bus_id, rt_uint32_t speed) +{ + if (bus == RT_NULL) + { + return -1; + } + + bus->id = bus_id; + bus->speed = speed; + bus->inst = rt_i2c_bus_device_find(OMV_CAM_BUS_NAME); + bus->initialized = (bus->inst != RT_NULL); + + return bus->initialized ? 0 : -1; +} + +int omv_i2c_deinit(omv_i2c_t *bus) +{ + if (bus == RT_NULL) + { + return -1; + } + + bus->inst = RT_NULL; + bus->initialized = 0U; + return 0; +} + +int omv_i2c_scan(omv_i2c_t *bus, rt_uint8_t *list, rt_uint8_t size) +{ + RT_UNUSED(bus); + RT_UNUSED(list); + RT_UNUSED(size); + return 0; +} + +int omv_i2c_enable(omv_i2c_t *bus, bool enable) +{ + RT_UNUSED(bus); + RT_UNUSED(enable); + return 0; +} + +int omv_i2c_readb(omv_i2c_t *bus, rt_uint8_t slv_addr, + rt_uint8_t reg_addr, rt_uint8_t *reg_data) +{ + if ((bus == RT_NULL) || !bus->initialized || (reg_data == RT_NULL)) + { + return -1; + } + + return gd32_camera_sccb_read(slv_addr, reg_addr, reg_data); +} + +int omv_i2c_writeb(omv_i2c_t *bus, rt_uint8_t slv_addr, + rt_uint8_t reg_addr, rt_uint8_t reg_data) +{ + if ((bus == RT_NULL) || !bus->initialized) + { + return -1; + } + + return gd32_camera_sccb_write(slv_addr, reg_addr, reg_data); +} diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_i2c.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_i2c.h new file mode 100644 index 00000000000..fe5be44f46c --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_i2c.h @@ -0,0 +1,56 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2023 Ibrahim Abdelkader + * Copyright (c) 2013-2023 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + */ +#ifndef __OMV_I2C_H__ +#define __OMV_I2C_H__ + +#include +#include + +#include "omv_portconfig.h" + +typedef enum +{ + OMV_I2C_SPEED_STANDARD = 0U, + OMV_I2C_SPEED_FULL = 1U, + OMV_I2C_SPEED_FAST = 2U, + OMV_I2C_SPEED_MAX = 3U +} omv_i2c_speed_t; + +typedef enum +{ + OMV_I2C_XFER_NO_FLAGS = 0U, + OMV_I2C_XFER_NO_STOP = 1U << 0, + OMV_I2C_XFER_SUSPEND = 1U << 1 +} omv_i2c_xfer_flags_t; + +typedef struct +{ + rt_uint32_t id; + rt_uint32_t speed; + rt_uint32_t initialized; + omv_gpio_t scl_pin; + omv_gpio_t sda_pin; + omv_i2c_dev_t inst; +} omv_i2c_t; + +int omv_i2c_init(omv_i2c_t *bus, rt_uint32_t bus_id, rt_uint32_t speed); +int omv_i2c_deinit(omv_i2c_t *bus); +int omv_i2c_scan(omv_i2c_t *bus, rt_uint8_t *list, rt_uint8_t size); +int omv_i2c_enable(omv_i2c_t *bus, bool enable); +int omv_i2c_readb(omv_i2c_t *bus, rt_uint8_t slv_addr, + rt_uint8_t reg_addr, rt_uint8_t *reg_data); +int omv_i2c_writeb(omv_i2c_t *bus, rt_uint8_t slv_addr, + rt_uint8_t reg_addr, rt_uint8_t reg_data); + +int gd32_camera_sccb_read(rt_uint8_t slv_addr, rt_uint8_t reg, + rt_uint8_t *value); +int gd32_camera_sccb_write(rt_uint8_t slv_addr, rt_uint8_t reg, + rt_uint8_t value); + +#endif /* __OMV_I2C_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_portconfig.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_portconfig.h new file mode 100644 index 00000000000..f5b939c14bf --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/omv_portconfig.h @@ -0,0 +1,18 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + */ +#ifndef __OMV_PORTCONFIG_H__ +#define __OMV_PORTCONFIG_H__ + +#include +#include + +typedef rt_uint32_t omv_gpio_t; +typedef struct rt_i2c_bus_device *omv_i2c_dev_t; + +#endif /* __OMV_PORTCONFIG_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.c b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.c new file mode 100644 index 00000000000..3bf72f8337c --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.c @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Minimal OpenMV-compatible sensor layer for OV7670. + */ +#include + +#include "cam_boardconfig.h" +#include "sensor.h" + +sensor_t sensor; + +int sensor_init(void) +{ + rt_uint8_t pid; + rt_uint8_t ver; + + memset(&sensor, 0, sizeof(sensor)); + sensor.slv_addr = 0x42U; + + if (omv_i2c_init(&sensor.i2c_bus, ISC_I2C_ID, ISC_I2C_SPEED) != 0) + { + return -1; + } + + if (omv_i2c_readb(&sensor.i2c_bus, sensor.slv_addr, 0x0AU, &pid) != 0) + { + return -1; + } + if (omv_i2c_readb(&sensor.i2c_bus, sensor.slv_addr, 0x0BU, &ver) != 0) + { + return -1; + } + if (pid != OV7670_ID) + { + return -1; + } + + sensor.chip_id = pid; + if (ov7670_init(&sensor) != 0) + { + return -1; + } + + sensor.detected = true; + RT_UNUSED(ver); + return 0; +} + +int sensor_reset(void) +{ + return (sensor.reset != RT_NULL) ? sensor.reset(&sensor) : -1; +} + +int sensor_read_reg(uint16_t reg_addr) +{ + return (sensor.read_reg != RT_NULL) ? sensor.read_reg(&sensor, reg_addr) : -1; +} + +int sensor_write_reg(uint16_t reg_addr, uint16_t reg_data) +{ + return (sensor.write_reg != RT_NULL) ? + sensor.write_reg(&sensor, reg_addr, reg_data) : -1; +} + +int sensor_set_pixformat(pixformat_t pixformat) +{ + int ret; + + if (sensor.set_pixformat == RT_NULL) + { + return -1; + } + ret = sensor.set_pixformat(&sensor, pixformat); + if (ret == 0) + { + sensor.pixformat = pixformat; + } + return ret; +} + +int sensor_set_framesize(framesize_t framesize) +{ + int ret; + + if (sensor.set_framesize == RT_NULL) + { + return -1; + } + ret = sensor.set_framesize(&sensor, framesize); + if (ret == 0) + { + sensor.framesize = framesize; + } + return ret; +} + +int sensor_set_hmirror(int enable) +{ + int ret; + + if (sensor.set_hmirror == RT_NULL) + { + return -1; + } + ret = sensor.set_hmirror(&sensor, enable); + if (ret == 0) + { + sensor.hmirror = (enable != 0); + } + return ret; +} + +int sensor_set_vflip(int enable) +{ + int ret; + + if (sensor.set_vflip == RT_NULL) + { + return -1; + } + ret = sensor.set_vflip(&sensor, enable); + if (ret == 0) + { + sensor.vflip = (enable != 0); + } + return ret; +} + +bool sensor_is_detected(void) +{ + return sensor.detected; +} diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.h new file mode 100644 index 00000000000..a6084b6e2cf --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensor.h @@ -0,0 +1,88 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * Minimal sensor abstraction used by the GD32 OV7670 port. + */ +#ifndef __SENSOR_H__ +#define __SENSOR_H__ + +#include +#include +#include + +#include "omv_i2c.h" + +#define OV_CHIP_ID (0x0AU) +#define OV7670_ID (0x76U) +#define SENSOR_HW_FLAGS_YVU422 (1U) + +typedef enum +{ + PIXFORMAT_INVALID = 0, + PIXFORMAT_RGB565, + PIXFORMAT_YUV422, + PIXFORMAT_GRAYSCALE +} pixformat_t; + +typedef enum +{ + FRAMESIZE_INVALID = 0, + FRAMESIZE_QQVGA, + FRAMESIZE_QVGA, + FRAMESIZE_VGA +} framesize_t; + +typedef struct _sensor sensor_t; + +struct _sensor +{ + rt_uint8_t chip_id; + rt_uint8_t slv_addr; + struct + { + rt_uint32_t vsync : 1; + rt_uint32_t hsync : 1; + rt_uint32_t pixck : 1; + rt_uint32_t fsync : 1; + rt_uint32_t jpege : 1; + rt_uint32_t gs_bpp : 2; + rt_uint32_t rgb_swap : 1; + rt_uint32_t yuv_order : 1; + } hw_flags; + bool disable_delays; + bool detected; + pixformat_t pixformat; + framesize_t framesize; + bool hmirror; + bool vflip; + omv_i2c_t i2c_bus; + + int (*reset)(sensor_t *sensor); + int (*sleep)(sensor_t *sensor, int enable); + int (*read_reg)(sensor_t *sensor, uint16_t reg_addr); + int (*write_reg)(sensor_t *sensor, uint16_t reg_addr, uint16_t reg_data); + int (*set_pixformat)(sensor_t *sensor, pixformat_t pixformat); + int (*set_framesize)(sensor_t *sensor, framesize_t framesize); + int (*set_hmirror)(sensor_t *sensor, int enable); + int (*set_vflip)(sensor_t *sensor, int enable); +}; + +extern sensor_t sensor; + +int ov7670_init(sensor_t *sensor); +int sensor_init(void); +int sensor_reset(void); +int sensor_read_reg(uint16_t reg_addr); +int sensor_write_reg(uint16_t reg_addr, uint16_t reg_data); +int sensor_set_pixformat(pixformat_t pixformat); +int sensor_set_framesize(framesize_t framesize); +int sensor_set_hmirror(int enable); +int sensor_set_vflip(int enable); +bool sensor_is_detected(void); + +#endif /* __SENSOR_H__ */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.c b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.c new file mode 100644 index 00000000000..d310b0e5a98 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.c @@ -0,0 +1,462 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * OV7670 driver. + */ +#include "cam_boardconfig.h" +#if (OMV_ENABLE_OV7670 == 1) + +#include +#include +#include + +#include "omv_i2c.h" +#include "sensor.h" +#include "ov7670.h" +#include "ov7670_regs.h" + +static const uint8_t default_regs[][2] = { + // OV7670 reference registers + #if (OMV_OV7670_CLKRC == 0) + { CLKRC, CLKRC_PRESCALER_BYPASS }, + #else + { CLKRC, OMV_OV7670_CLKRC }, + #endif + { TSLB, 0x04 }, + { COM7, 0x00 }, + { HSTART, 0xE7 }, + { HSTOP, 0x01 }, + { HREF, 0xb6 }, + { VSTART, 0x02 }, + { VSTOP, 0x7a }, + { VREF, 0x0a }, + + { COM3, 0x00 }, + { COM14, 0x00 }, + { SCALING_XSC, 0x3a }, + { SCALING_YSC, 0x35 }, + { SCALING_DCWCTR, 0x11 }, + { SCALING_PCLK_DIV, 0xf0 }, + { SCALING_PCLK, 0x02 }, + + /* Gamma curve values */ + { SLOP, 0x20 }, + { GAM1, 0x10 }, + { GAM2, 0x1e }, + { GAM3, 0x35 }, + { GAM4, 0x5a }, + { GAM5, 0x69 }, + { GAM6, 0x76 }, + { GAM7, 0x80 }, + { GAM8, 0x88 }, + { GAM9, 0x8f }, + { GAM10, 0x96 }, + { GAM11, 0xa3 }, + { GAM12, 0xaf }, + { GAM13, 0xc4 }, + { GAM14, 0xd7 }, + { GAM15, 0xe8 }, + + /* AGC and AEC parameters */ + { COM8, COM8_FAST_AEC | COM8_AEC_STEP | COM8_BANDF_EN }, + { GAIN, 0x00 }, + { AECH, 0x00 }, + { COM4, 0x40 }, + { COM9, 0x18 }, + { BD50MAX, 0x05 }, + { BD60MAX, 0x07 }, + { AEW, 0x95 }, + { AEB, 0x33 }, + { VPT, 0xe3 }, + { HAECC1, 0x78 }, + { HAECC2, 0x68 }, + { 0xa1, 0x03 }, + { HAECC3, 0xd8 }, + { HAECC4, 0xd8 }, + { HAECC5, 0xf0 }, + { HAECC6, 0x90 }, + { HAECC7, 0x94 }, + { COM8, COM8_FAST_AEC | COM8_AEC_STEP | COM8_BANDF_EN | COM8_AGC_EN | COM8_AEC_EN }, + + /* Almost all of these are magic "reserved" values. */ + { COM5, 0x61 }, + { COM6, 0x4b }, + { 0x16, 0x02 }, + { 0x21, 0x02 }, + { 0x22, 0x91 }, + { 0x29, 0x07 }, + { 0x33, 0x0b }, + { 0x35, 0x0b }, + { 0x37, 0x1d }, + { 0x38, 0x71 }, + { 0x39, 0x2a }, + { COM12, 0x78 }, + { 0x4d, 0x40 }, + { 0x4e, 0x20 }, + { GFIX, 0x00 }, + { 0x6b, 0x00 }, // PLL Bypass + { 0x74, 0x10 }, + { 0x8d, 0x4f }, + { 0x8e, 0x00 }, + { 0x8f, 0x00 }, + { 0x90, 0x00 }, + { 0x91, 0x00 }, + { 0x96, 0x00 }, + { 0x9a, 0x00 }, + { 0xb0, 0x84 }, + { 0xb1, 0x0c }, + { 0xb2, 0x0e }, + { 0xb3, 0x82 }, + { 0xb8, 0x0a }, + { 0x43, 0x0a }, + { 0x44, 0xf0 }, + { 0x45, 0x34 }, + { 0x46, 0x58 }, + { 0x47, 0x28 }, + { 0x48, 0x3a }, + { 0x59, 0x88 }, + { 0x5a, 0x88 }, + { 0x5b, 0x44 }, + { 0x5c, 0x67 }, + { 0x5d, 0x49 }, + { 0x5e, 0x0e }, + { 0x6c, 0x0a }, + { 0x6d, 0x55 }, + { 0x6e, 0x11 }, + { 0x6f, 0x9e }, + { 0x6a, 0x40 }, + { BLUE, 0x40 }, + { RED, 0x60 }, + { COM8, COM8_FAST_AEC | COM8_AEC_STEP | COM8_BANDF_EN | COM8_AGC_EN | COM8_AEC_EN | COM8_AWB_EN }, + + /* Matrix coefficients */ + { MTX1, 0x80 }, + { MTX2, 0x80 }, + { MTX3, 0x00 }, + { MTX4, 0x22 }, + { MTX5, 0x5e }, + { MTX6, 0x80 }, + { MTXS, 0x9e }, + + { COM16, COM16_AWB_GAIN_EN }, + { EDGE, 0x00 }, + { 0x75, 0x05 }, + { 0x76, 0xe1 }, + { 0x4c, 0x00 }, + { 0x77, 0x01 }, + { COM13, 0xc3 }, + { 0x4b, 0x09 }, + { 0xc9, 0x60 }, + { COM16, 0x38 }, + { 0x56, 0x40 }, + + { 0x34, 0x11 }, + { COM11, COM11_AEC_BANDF | COM11_BANDF_SELECT }, + { 0xa4, 0x88 }, + { 0x96, 0x00 }, + { 0x97, 0x30 }, + { 0x98, 0x20 }, + { 0x99, 0x30 }, + { 0x9a, 0x84 }, + { 0x9b, 0x29 }, + { 0x9c, 0x03 }, + { 0x9d, 0x4c }, + { 0x9e, 0x3f }, + { 0x78, 0x04 }, + { 0x79, 0x01 }, + { 0xc8, 0xf0 }, + { 0x79, 0x0f }, + { 0xc8, 0x00 }, + { 0x79, 0x10 }, + { 0xc8, 0x7e }, + { 0x79, 0x0a }, + { 0xc8, 0x80 }, + { 0x79, 0x0b }, + { 0xc8, 0x01 }, + { 0x79, 0x0c }, + { 0xc8, 0x0f }, + { 0x79, 0x0d }, + { 0xc8, 0x20 }, + { 0x79, 0x09 }, + { 0xc8, 0x80 }, + { 0x79, 0x02 }, + { 0xc8, 0xc0 }, + { 0x79, 0x03 }, + { 0xc8, 0x40 }, + { 0x79, 0x05 }, + { 0xc8, 0x30 }, + { 0x79, 0x26 }, + + { 0xFF, 0xFF }, +}; + +#if (OMV_OV7670_VERSION == 75) +static const uint8_t rgb565_regs[][2] = { + { COM7, COM7_RGB_FMT }, /* Selects RGB mode */ + { RGB444, 0x00 }, /* No RGB444 please */ + { COM1, 0x00 }, /* CCIR601 */ + { COM15, COM15_OUT_00_FF | COM15_FMT_RGB565}, + { COM9, 0x38 }, /* 16x gain ceiling; 0x8 is reserved bit */ + { 0x4f, 0xb3 }, /* "matrix coefficient 1" */ + { 0x50, 0xb3 }, /* "matrix coefficient 2" */ + { 0x51, 0x00 }, /* "matrix Coefficient 3" */ + { 0x52, 0x3d }, /* "matrix coefficient 4" */ + { 0x53, 0xa7 }, /* "matrix coefficient 5" */ + { 0x54, 0xe4 }, /* "matrix coefficient 6" */ + { COM13, COM13_GAMMA_EN | COM13_UVSAT_AUTO }, + { 0xFF, 0xFF } +}; +#elif (OMV_OV7670_VERSION == 70) +static const uint8_t rgb565_regs[][2] = { + { COM7, COM7_RGB_FMT }, /* Selects RGB mode */ + { RGB444, 0 }, /* No RGB444 please */ + { COM1, 0x0 }, /* CCIR601 */ + { COM15, COM15_FMT_RGB565 | COM15_OUT_00_FF}, + { COM9, 0x38 }, /* 16x gain ceiling; 0x8 is reserved bit */ + { MTX1, 0xb3 }, /* "matrix coefficient 1" */ + { MTX2, 0xb3 }, /* "matrix coefficient 2" */ + { MTX3, 0 }, /* vb */ + { MTX4, 0x3d }, /* "matrix coefficient 4" */ + { MTX5, 0xa7 }, /* "matrix coefficient 5" */ + { MTX6, 0xe4 }, /* "matrix coefficient 6" */ + { COM13, COM13_GAMMA_EN | COM13_UVSAT_AUTO}, + { 0xFF, 0xFF } +}; +#else +#error "OV767x sensor is Not defined." +#endif + +// TODO: These registers probably need to be fixed too. +static const uint8_t yuv422_regs[][2] = { + { COM7, 0x00 }, /* Selects YUV mode */ + { RGB444, 0x00 }, /* No RGB444 please */ + { COM1, 0x00 }, /* CCIR601 */ + { COM15, COM15_OUT_00_FF }, + { COM9, 0x48 }, /* 32x gain ceiling; 0x8 is reserved bit */ + { 0x4f, 0x80 }, /* "matrix coefficient 1" */ + { 0x50, 0x80 }, /* "matrix coefficient 2" */ + { 0x51, 0x00 }, /* vb */ + { 0x52, 0x22 }, /* "matrix coefficient 4" */ + { 0x53, 0x5e }, /* "matrix coefficient 5" */ + { 0x54, 0x80 }, /* "matrix coefficient 6" */ + { COM13, COM13_GAMMA_EN | COM13_UVSAT_AUTO }, + { 0xFF, 0xFF } +}; + +static const uint8_t vga_regs[][2] = { + { COM3, 0x00 }, + { COM14, 0x00 }, + { 0x72, 0x11 }, // downsample by 4 + { 0x73, 0xf0 }, // divide by 4 + { HSTART, 0x13 }, + { HSTOP, 0x01 }, + { HREF, 0xb6 }, + { VSTART, 0x03 }, + { VSTOP, 0x00 }, + { VREF, 0x0a }, + { 0xFF, 0xFF }, +}; + +#if (OMV_OV7670_VERSION == 75) +static const uint8_t qvga_regs[][2] = { + { COM3, COM3_DCW_EN }, + { COM14, 0x11 }, // Divide by 2 + { 0x72, 0x22 }, // This has no effect on OV7675 + { 0x73, 0xf2 }, // This has no effect on OV7675 + { HSTART, 0x15 }, + { HSTOP, 0x03 }, + { HREF, 0xC0 }, + { VSTART, 0x03 }, + { VSTOP, 0x7B }, + { VREF, 0xF0 }, + { 0xFF, 0xFF }, +}; +#else +static const uint8_t qvga_regs[][2] = { + { COM3, COM3_DCW_EN }, + { COM14, 0x19 }, + { 0x72, 0x11 }, // downsample by 2 + { 0x73, 0xf1 }, // divide by 2 + { HSTART, 0x15 }, + { HSTOP, 0x04 }, + { HREF, 0xa4 }, + { VSTART, 0x02 }, + { VSTOP, 0x7a }, + { VREF, 0x0a }, + { 0XFF, 0XFF }, +}; +#endif + +#if (OMV_OV7670_VERSION == 75) +static const uint8_t qqvga_regs[][2] = { + { COM3, COM3_DCW_EN }, + { COM14, 0x11 }, // Divide by 2 + { 0x72, 0x22 }, // This has no effect on OV7675 + { 0x73, 0xf2 }, // This has no effect on OV7675 + { HSTART, 0x16 }, + { HSTOP, 0x04 }, + { HREF, 0xa4 }, + { VSTART, 0x22 }, + { VSTOP, 0x7a }, + { VREF, 0xfa }, + { 0xFF, 0xFF }, +}; +#else +static const uint8_t qqvga_regs[][2] = { + { COM3, COM3_DCW_EN }, + { COM14, 0x1a}, + { 0x72, 0x22 }, // downsample by 4 + { 0x73, 0xf2 }, // divide by 4 + { HSTART, 0x16 }, + { HSTOP, 0x04 }, + { HREF, 0xa4 }, + { VSTART, 0x02 }, + { VSTOP, 0x7a }, + { VREF, 0x0a }, + { 0XFF, 0XFF }, +}; +#endif + +static int reset(sensor_t *sensor) { + // Reset all registers + int ret = omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, COM7, COM7_RESET); + + // Delay 2 ms + rt_thread_mdelay(2); + + // Write default registers + for (int i = 0; default_regs[i][0] != 0xff; i++) { + ret |= omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, default_regs[i][0], default_regs[i][1]); + } + + // Delay 300 ms + if (!sensor->disable_delays) { + rt_thread_mdelay(300); + } + + return ret; +} + +static int sleep(sensor_t *sensor, int enable) { + uint8_t reg; + int ret = omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, COM2, ®); + + if (enable) { + reg |= COM2_SOFT_SLEEP; + } else { + reg &= ~COM2_SOFT_SLEEP; + } + + // Write back register + return omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, COM2, reg) | ret; +} + +static int read_reg(sensor_t *sensor, uint16_t reg_addr) { + uint8_t reg_data; + if (omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, reg_addr, ®_data) != 0) { + return -1; + } + return reg_data; +} + +static int write_reg(sensor_t *sensor, uint16_t reg_addr, uint16_t reg_data) { + return omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, reg_addr, reg_data); +} + +static int set_pixformat(sensor_t *sensor, pixformat_t pixformat) { + int ret = 0; + const uint8_t(*regs)[2]; + + switch (pixformat) { + case PIXFORMAT_RGB565: + regs = rgb565_regs; + break; + case PIXFORMAT_YUV422: + case PIXFORMAT_GRAYSCALE: + regs = yuv422_regs; + break; + default: + return -1; + } + + // Write pixel format registers + for (int i = 0; regs[i][0] != 0xff; i++) { + ret |= omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, regs[i][0], regs[i][1]); + } + + return ret; +} + +static int set_framesize(sensor_t *sensor, framesize_t framesize) { + int ret = 0; + const uint8_t(*regs)[2]; + + switch (framesize) { + case FRAMESIZE_VGA: + regs = vga_regs; + break; + case FRAMESIZE_QVGA: + regs = qvga_regs; + break; + case FRAMESIZE_QQVGA: + regs = qqvga_regs; + break; + default: + return -1; + } + + // Write pixel format registers + for (int i = 0; regs[i][0] != 0xFF; i++) { + ret |= omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, regs[i][0], regs[i][1]); + } + return ret; +} + +static int set_hmirror(sensor_t *sensor, int enable) { + uint8_t val; + int ret = omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, MVFP, &val); + ret |= + omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, MVFP, + enable ? (val | MVFP_MIRROR) : (val & (~MVFP_MIRROR))); + + return ret; +} + +static int set_vflip(sensor_t *sensor, int enable) { + uint8_t val; + int ret = omv_i2c_readb(&sensor->i2c_bus, sensor->slv_addr, MVFP, &val); + ret |= + omv_i2c_writeb(&sensor->i2c_bus, sensor->slv_addr, MVFP, + enable ? (val | MVFP_VFLIP) : (val & (~MVFP_VFLIP))); + + return ret; +} +int ov7670_init(sensor_t *sensor) { + // Initialize sensor structure. + sensor->reset = reset; + sensor->sleep = sleep; + sensor->read_reg = read_reg; + sensor->write_reg = write_reg; + sensor->set_pixformat = set_pixformat; + sensor->set_framesize = set_framesize; + sensor->set_hmirror = set_hmirror; + sensor->set_vflip = set_vflip; + + // Set sensor flags + sensor->hw_flags.vsync = 1; + sensor->hw_flags.hsync = 0; + sensor->hw_flags.pixck = 1; + sensor->hw_flags.fsync = 0; + sensor->hw_flags.jpege = 0; + sensor->hw_flags.gs_bpp = 2; + sensor->hw_flags.rgb_swap = 1; + sensor->hw_flags.yuv_order = SENSOR_HW_FLAGS_YVU422; + + return 0; +} +#endif // (OMV_ENABLE_OV7670 == 1) diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.h new file mode 100644 index 00000000000..5b582ebb799 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670.h @@ -0,0 +1,15 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * OV7670 driver. + */ +#ifndef __OV7670_H__ +#define __OV7670_H__ +#define OV7670_XCLK_FREQ 24000000 +int ov7670_init(sensor_t *sensor); +#endif // __OV7725_H__ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670_regs.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670_regs.h new file mode 100644 index 00000000000..2a24fa2204c --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/camera/sensors/ov7670_regs.h @@ -0,0 +1,357 @@ +/* + * This file is part of the OpenMV project. + * + * Copyright (c) 2013-2021 Ibrahim Abdelkader + * Copyright (c) 2013-2021 Kwabena W. Agyeman + * + * This work is licensed under the MIT license, see the file LICENSE for details. + * + * OV7670 register definitions. + */ +#ifndef __REG_REGS_H__ +#define __REG_REGS_H__ + +#define GAIN 0x00 /* AGC - Gain control gain setting */ +#define BLUE 0x01 /* AWB - Blue channel gain setting */ +#define RED 0x02 /* AWB - Red channel gain setting */ +#define VREF 0x03 /* Vertical Frame Control */ +#define COM1 0x04 /* Common Control 1 */ +#define BAVE 0x05 /* U/B Average Level */ +#define GBAVE 0x06 /* Y/Gb Average Level */ +#define AECHH 0x07 /* Exposure Value - AEC MSB 5 bits */ +#define RAVE 0x08 /* V/R Average Level */ + +#define COM2 0x09 /* Common Control 2 */ +#define COM2_SOFT_SLEEP 0x10 /* Soft sleep mode */ +#define COM2_OUT_DRIVE_1x 0x00 /* Output drive capability 1x */ +#define COM2_OUT_DRIVE_2x 0x01 /* Output drive capability 2x */ +#define COM2_OUT_DRIVE_3x 0x02 /* Output drive capability 3x */ +#define COM2_OUT_DRIVE_4x 0x03 /* Output drive capability 4x */ + +#define PID 0x0A /* Product ID Number MSB */ +#define VER 0x0B /* Product ID Number LSB */ + +#define COM3 0x0C /* Common Control 3 */ +#define COM3_SWAP_MSB 0x40 /* Output data MSB and LSB swap */ +#define COM3_TRI_CLOCK 0x20 /* Tri-state option for output clock at power-down period */ +#define COM3_TRI_DATA 0x10 /* Tri-state option for output data at power-down period */ +#define COM3_SCALE_EN 0x08 /* Scale enable */ +#define COM3_DCW_EN 0x04 /* DCW enable */ + +#define COM4 0x0D /* Common Control 4 */ +#define COM4_AEC_FULL 0x00 /* AEC evaluate full window */ +#define COM4_AEC_1_2 0x10 /* AEC evaluate 1/2 window */ +#define COM4_AEC_1_4 0x20 /* AEC evaluate 1/4 window */ +#define COM4_AEC_2_3 0x30 /* AEC evaluate 2/3 window */ + +#define COM5 0x0E /* Reserved */ + +#define COM6 0x0F /* Common Control 6 */ +#define COM6_HREF_BLACK_EN 0x80 /* Enable HREF at optical black */ +#define COM6_RESET_TIMING 0x02 /* Reset all timing when format changes */ + +#define AECH 0x10 /* AEC[9:2] (see registers AECHH for AEC[15:10] and COM1 for AEC[1:0]) */ + +#define CLKRC 0x11 /* Internal Clock */ +#define CLKRC_PRESCALER_BYPASS 0x40 /* Use external clock directly */ +#define CLKRC_PRESCALER 0x3F /* Internal clock pre-scaler */ + +#define COM7 0x12 /* Common Control 7 */ +#define COM7_RESET 0x80 /* SCCB Register Reset */ +#define COM7_RES_VGA 0x00 /* Resolution VGA */ +#define COM7_RES_CIF 0x20 /* Resolution CIF */ +#define COM7_RES_QVGA 0x10 /* Resolution QVGA */ +#define COM7_RES_QCIF 0x08 /* Resolution QCIF */ +#define COM7_RGB_FMT 0x04 /* Output format RGB */ +#define COM7_CBAR_EN 0x02 /* Color bar selection */ +#define COM7_FMT_RAW 0x01 /* Output format Bayer RAW */ + +#define COM8 0x13 /* Common Control 8 */ +#define COM8_FAST_AEC 0x80 /* Enable fast AGC/AEC algorithm */ +#define COM8_AEC_STEP 0x40 /* AEC - Step size unlimited step size */ +#define COM8_BANDF_EN 0x20 /* Banding filter ON/OFF */ +#define COM8_AGC_EN 0x04 /* AGC Enable */ +#define COM8_AWB_EN 0x02 /* AWB Enable */ +#define COM8_AEC_EN 0x01 /* AEC Enable */ + +#define COM9 0x14 /* Common Control 9 */ +#define COM9_AGC_GAIN_2x 0x00 /* Automatic Gain Ceiling 2x */ +#define COM9_AGC_GAIN_4x 0x10 /* Automatic Gain Ceiling 4x */ +#define COM9_AGC_GAIN_8x 0x20 /* Automatic Gain Ceiling 8x */ +#define COM9_AGC_GAIN_16x 0x30 /* Automatic Gain Ceiling 16x */ +#define COM9_AGC_GAIN_32x 0x40 /* Automatic Gain Ceiling 32x */ +#define COM9_AGC_GAIN_64x 0x50 /* Automatic Gain Ceiling 64x */ +#define COM9_AGC_GAIN_128x 0x60 /* Automatic Gain Ceiling 128x */ +#define COM9_SET_AGC(r, x) ((r & 0x8F) | ((x & 0x07) << 4)) + +#define COM10 0x15 /* Common Control 10 */ +#define COM10_HSYNC_EN 0x40 /* HREF changes to HSYNC */ +#define COM10_PCLK_FREE 0x00 /* PCLK output option: free running PCLK */ +#define COM10_PCLK_MASK 0x20 /* PCLK output option: masked during horizontal blank */ +#define COM10_PCLK_REV 0x10 /* PCLK reverse */ +#define COM10_HREF_REV 0x08 /* HREF reverse */ +#define COM10_VSYNC_FALLING 0x00 /* VSYNC changes on falling edge of PCLK */ +#define COM10_VSYNC_RISING 0x04 /* VSYNC changes on rising edge of PCLK */ +#define COM10_VSYNC_NEG 0x02 /* VSYNC negative */ +#define COM10_HSYNC_NEG 0x01 /* HSYNC negative */ + +#define HSTART 0x17 /* Output Format - Horizontal Frame (HREF column) start high 8-bit */ +#define HSTOP 0x18 /* Output Format - Horizontal Frame (HREF column) end high 8-bit */ +#define VSTART 0x19 /* Output Format - Vertical Frame (row) start high 8-bit */ +#define VSTOP 0x1A /* Output Format - Vertical Frame (row) end high 8-bit */ +#define PSHFT 0x1B /* Data Format - Pixel Delay Select (delays timing of the D[7:0]) */ +#define MIDH 0x1C /* Manufacturer ID Byte - High */ +#define MIDL 0x1D /* Manufacturer ID Byte - Low */ + +#define MVFP 0x1E /* Mirror/VFlip Enable */ +#define MVFP_MIRROR 0x20 /* Mirror image */ +#define MVFP_VFLIP 0x10 /* VFlip image */ +#define MVFP_BLACK_SUN_EN 0x04 /* Black sun enable */ + +#define LAEC 0x1F /* Reserved */ + +#define ADCCTR0 0x20 /* ADC Control */ +#define ADCCTR0_ADC_RANGE_1X 0x00 /* ADC range adjustment 1x range */ +#define ADCCTR0_ADC_RANGE_1_5X 0x08 /* ADC range adjustment 1.5x range */ +#define ADCCTR0_ADC_REF_0_8 0x00 /* ADC reference adjustment 0.8x */ +#define ADCCTR0_ADC_REF_1_0 0x04 /* ADC reference adjustment 1.0x */ +#define ADCCTR0_ADC_REF_1_2 0x07 /* ADC reference adjustment 1.2x */ + +#define ADCCTR1 0x21 /* Reserved */ +#define ADCCTR2 0x22 /* Reserved */ +#define ADCCTR3 0x23 /* Reserved */ + +#define AEW 0x24 /* AGC/AEC - Stable Operating Region (Upper Limit) */ +#define AEB 0x25 /* AGC/AEC - Stable Operating Region (Lower Limit) */ +#define VPT 0x26 /* AGC/AEC Fast Mode Operating Region */ +#define BBIAS 0x27 /* B Channel Signal Output Bias (effective only when COM6[3] = 1) */ +#define GBIAS 0x28 /* Gb Channel Signal Output Bias (effective only when COM6[3] = 1) */ +#define EXHCH 0x2A /* Dummy Pixel Insert MSB */ +#define EXHCL 0x2B /* Dummy Pixel Insert LSB */ +#define RBIAS 0x2C /* R Channel Signal Output Bias (effective only when COM6[3] = 1) */ +#define ADVFL 0x2D /* LSB of insert dummy lines in vertical direction (1 bit equals 1 line) */ +#define ADVFH 0x2E /* MSB of insert dummy lines in vertical direction */ +#define YAVE 0x2F /* Y/G Channel Average Value */ + +#define HSYST 0x30 /* HSYNC Rising Edge Delay (low 8 bits) */ +#define HSYEN 0x31 /* HSYNC Falling Edge Delay (low 8 bits) */ +#define HREF 0x32 /* HREF Control */ +#define CHLF 0x33 /* Array Current Control */ +#define ARBLM 0x34 /* Array Reference Control */ +#define ADC 0x37 /* ADC Control */ +#define ACOM 0x38 /* ADC and Analog Common Mode Control */ +#define OFON 0x39 /* ADC Offset Control */ + +#define TSLB 0x3A /* Line Buffer Test Option */ +#define TSLB_NEGATIVE 0x20 /* Negative image enable */ +#define TSLB_UV_NORMAL 0x00 /* UV output value normal */ +#define TSLB_UV_FIXED 0x10 /* UV output value set in registers MANU and MANV */ +#define TSLB_AUTO_WINDOW 0x01 /* automatically sets output window when resolution changes */ + +#define COM11 0x3B /* Common Control 11 */ +#define COM11_AFR 0x80 /* Auto frame rate control ON/OFF selection (night mode) */ +#define COM11_AFR_0 0x00 /* No reduction of frame rate */ +#define COM11_AFR_1_2 0x20 /* Max reduction to 1/2 frame rate */ +#define COM11_AFR_1_4 0x40 /* Max reduction to 1/4 frame rate */ +#define COM11_AFR_1_8 0x60 /* Max reduction to 1/8 frame rate */ +#define COM11_HZAUTO_EN 0x10 /* Enable 50/60 Hz auto detection */ +#define COM11_BANDF_SELECT 0x08 /* Banding filter value selection */ +#define COM11_AEC_BANDF 0x02 /* Enable AEC below banding value */ + +#define COM12 0x3C /* Common Control 12 */ +#define COM12_HREF_EN 0x80 /* Always has HREF */ + +#define COM13 0x3D /* Common Control 13 */ +#define COM13_GAMMA_EN 0x80 /* Gamma enable */ +#define COM13_UVSAT_AUTO 0x40 /* UV saturation level - UV auto adjustment. */ +#define COM13_UV_SWAP 0x01 /* UV swap */ + +#define COM14 0x3E /* Common Control 14 */ +#define COM14_DCW_EN 0x10 /* DCW and scaling PCLK */ +#define COM14_MANUAL_SCALE 0x08 /* Manual scaling enable for pre-defined resolutions */ +#define COM14_PCLK_DIV_1 0x00 /* PCLK divider. Divided by 1 */ +#define COM14_PCLK_DIV_2 0x01 /* PCLK divider. Divided by 2 */ +#define COM14_PCLK_DIV_4 0x02 /* PCLK divider. Divided by 4 */ +#define COM14_PCLK_DIV_8 0x03 /* PCLK divider. Divided by 8 */ +#define COM14_PCLK_DIV_16 0x04 /* PCLK divider. Divided by 16 */ + +#define EDGE 0x3F /* Edge Enhancement Adjustment */ +#define EDGE_FACTOR_MASK 0x1F /* Edge enhancement factor */ + +#define COM15 0x40 /* Common Control 15 */ +#define COM15_OUT_10_F0 0x00 /* Output data range 10 to F0 */ +#define COM15_OUT_01_FE 0x80 /* Output data range 01 to FE */ +#define COM15_OUT_00_FF 0xC0 /* Output data range 00 to FF */ +#define COM15_FMT_RGB_NORMAL 0x00 /* Normal RGB normal output */ +#define COM15_FMT_RGB565 0x10 /* Normal RGB 565 output */ +#define COM15_FMT_RGB555 0x30 /* Normal RGB 555 output */ + +#define COM16 0x41 /* Common Control 16 */ +#define COM16_EDGE_EN 0x20 /* Enable edge enhancement threshold auto-adjustment */ +#define COM16_DENOISE_EN 0x10 /* De-noise threshold auto-adjustment */ +#define COM16_AWB_GAIN_EN 0x08 /* AWB gain enable */ +#define COM16_COLOR_MTX_EN 0x02 /* Color matrix coefficient double option */ + +#define COM17 0x42 /* Common Control 17 */ +#define COM17_AEC_FULL 0x00 /* AEC evaluate full window */ +#define COM17_AEC_1_2 0x40 /* AEC evaluate 1/2 window */ +#define COM17_AEC_1_4 0x80 /* AEC evaluate 1/4 window */ +#define COM17_AEC_2_3 0xC0 /* AEC evaluate 2/3 window */ +#define COM17_DSP_CBAR_EN 0x08 /* DSP color bar enable */ + +#define AWBC1 0x43 /* Reserved */ +#define AWBC2 0x44 /* Reserved */ +#define AWBC3 0x45 /* Reserved */ +#define AWBC4 0x46 /* Reserved */ +#define AWBC5 0x47 /* Reserved */ +#define AWBC6 0x48 /* Reserved */ + +#define REG4B 0x4B /* REG4B */ +#define REG4B_UV_AVG_EN 0x01 /* UV average enable */ + +#define DNSTH 0x4C /* De-noise Threshold*/ + +#define MTX1 0x4F /* Matrix Coefficient 1 */ +#define MTX2 0x50 /* Matrix Coefficient 2 */ +#define MTX3 0x51 /* Matrix Coefficient 3 */ +#define MTX4 0x52 /* Matrix Coefficient 4 */ +#define MTX5 0x53 /* Matrix Coefficient 5 */ +#define MTX6 0x54 /* Matrix Coefficient 6 */ + +#define BRIGHTNESS 0x55 /* Brightness Control */ +#define CONTRAST 0x56 /* Contrast Control */ +#define CONTRAST_CENTER 0x57 /* Contrast Center */ +#define MTXS 0x58 /* Matrix Coefficient Sign for coefficient 5 to 0*/ +#define LCC1 0x62 /* Lens Correction Option 1 */ +#define LCC2 0x63 /* Lens Correction Option 2 */ +#define LCC3 0x64 /* Lens Correction Option 3 */ +#define LCC4 0x65 /* Lens Correction Option 4 */ +#define LCC5 0x66 /* Lens Correction Control */ +#define LCC5_LC_EN 0x01 /* Lens Correction Enable */ +#define LCC5_LC_CTRL 0x04 /* Lens correction control select */ + +#define MANU 0x67 /* Manual U Value (effective only when register TSLB[4] is high) */ +#define MANV 0x68 /* Manual V Value (effective only when register TSLB[4] is high) */ + +#define GFIX 0x69 /* Fix Gain Control */ +#define GGAIN 0x6A /* G Channel AWB Gain */ + +#define DBLV 0x6B /* PLL control */ +#define DBLV_PLL_BYPASS 0x00 /* Bypass PLL */ +#define DBLV_PLL_4x 0x40 /* Input clock 4x */ +#define DBLV_PLL_6x 0x80 /* Input clock 8x */ +#define DBLV_PLL_8x 0xC0 /* Input clock 16x */ +#define DBLV_REG_BYPASS 0x10 /* Bypass internal regulator */ + +#define AWBCTR3 0x6C /* AWB Control 3 */ +#define AWBCTR2 0x6D /* AWB Control 2 */ +#define AWBCTR1 0x6E /* AWB Control 1 */ +#define AWBCTR0 0x6F /* AWB Control 0 */ + +#define SCALING_XSC 0x70 /* Test Pattern[0] */ +#define SCALING_YSC 0x71 /* Test Pattern[1] */ +#define SCALING_DCWCTR 0x72 /* DCW control parameter */ + +#define SCALING_PCLK_DIV 0x73 /* Clock divider control for DSP.*/ +#define SCALING_PCLK_DIV_BYPASS 0x08 /* Bypass clock divider for DSP scale control */ +#define SCALING_PCLK_DIV_1 0x00 /* Divided by 1 */ +#define SCALING_PCLK_DIV_2 0x01 /* Divided by 2 */ +#define SCALING_PCLK_DIV_4 0x02 /* Divided by 4 */ +#define SCALING_PCLK_DIV_8 0x03 /* Divided by 8 */ +#define SCALING_PCLK_DIV_16 0x04 /* Divided by 16 */ + +#define REG74 0x74 /* REG74 */ +#define REG74_DGAIN_EN 0x10 /* Digital gain control by REG74[1:0] */ +#define REG74_DGAIN_BYPASS 0x00 /* Bypass */ +#define REG74_DGAIN_1X 0x01 /* 1x */ +#define REG74_DGAIN_2X 0x02 /* 2x */ +#define REG74_DGAIN_4X 0x03 /* 4x */ + +#define REG75 0x75 /* REG75 */ +#define REG75_EDGE_LOWER 0x1F /* Edge enhancement lower limit */ + +#define REG76 0x76 /* REG76 */ +#define REG76_WHITE_PIX_CORR 0x80 /* White pixel correction enable */ +#define REG76_BLACK_PIX_CORR 0x40 /* Black pixel correction enable */ +#define REG76_EDGE_HIGHER 0x1F /* Edge enhancement higher limit */ + +#define REG77 0x77 /* Offset, de-noise range control */ + +#define SLOP 0x7A /* Gamma Curve Highest Segment Slope */ +#define GAM1 0x7B /* Gamma Curve 1st Segment Input End Point 0x04 Output Value */ +#define GAM2 0x7C /* Gamma Curve 2nd Segment Input End Point 0x08 Output Value */ +#define GAM3 0x7D /* Gamma Curve 3rd Segment Input End Point 0x10 Output Value */ +#define GAM4 0x7E /* Gamma Curve 4th Segment Input End Point 0x20 Output Value */ +#define GAM5 0x7F /* Gamma Curve 5th Segment Input End Point 0x28 Output Value */ +#define GAM6 0x80 /* Gamma Curve 6th Segment Input End Point 0x30 Output Value */ +#define GAM7 0x81 /* Gamma Curve 7th Segment Input End Point 0x38 Output Value */ +#define GAM8 0x82 /* Gamma Curve 8th Segment Input End Point 0x40 Output Value */ +#define GAM9 0x83 /* Gamma Curve 9th Segment Input Enpd Point 0x48 Output Value */ +#define GAM10 0x84 /* Gamma Curve 10th Segment Input End Point 0x50 Output Value */ +#define GAM11 0x85 /* Gamma Curve 11th Segment Input End Point 0x60 Output Value */ +#define GAM12 0x86 /* Gamma Curve 12th Segment Input End Point 0x70 Output Value */ +#define GAM13 0x87 /* Gamma Curve 13th Segment Input End Point 0x90 Output Value */ +#define GAM14 0x88 /* Gamma Curve 14th Segment Input End Point 0xB0 Output Value */ +#define GAM15 0x89 /* Gamma Curve 15th Segment Input End Point 0xD0 Output Value */ + +#define RGB444 0x8C /* REG444 */ +#define RGB444_RGB444_EN 0x02 /* RGB444 enable, effective only when COM15[4] is high */ +#define RGB444_RGB444_FMT 0x01 /* RGB444 word format. 0 = xR GB 1 = RG Bx */ + +#define DM_LNL 0x92 /* Dummy Line low 8 bits */ +#define DM_LNH 0x93 /* Dummy Line high 8 bits */ +#define LCC6 0x94 /* RW Lens Correction Option 6 (effective only when LCC5[2] is high) */ +#define LCC7 0x95 /* RW Lens Correction Option 7 (effective only when LCC5[2] is high) */ + +#define BD50ST 0x9D /* Hz Banding Filter Value (effective only when COM8[5] is high and COM11[3] is high) */ +#define BD60ST 0x9E /* Hz Banding Filter Value (effective only when COM8[5] is high and COM11[3] is low) */ +#define HAECC1 0x9F /* Histogram-based AEC/AGC Control 1 */ +#define HAECC2 0xA0 /* Histogram-based AEC/AGC Control 2 */ + +#define SCALING_PCLK 0xA2 /* Pixel Clock Delay */ +#define SCALING_PCLK_DELAY 0x7F /* Scaling output delay */ + +#define NT_CTRL 0xA4 /* Auto frame rate adjustment control */ +#define NT_CTRL_AFR_HALF 0x08 /* Reduce frame rate by half */ +#define NT_CTRL_AFR_PT_2X 0x00 /* Insert dummy row at 2x gain */ +#define NT_CTRL_AFR_PT_4X 0x01 /* Insert dummy row at 4x gain */ +#define NT_CTRL_AFR_PT_8X 0x02 /* Insert dummy row at 8x gain */ + +#define BD50MAX 0xA5 /* 50Hz Banding Step Limit */ +#define HAECC3 0xA6 /* Histogram-based AEC/AGC Control 3 */ +#define HAECC4 0xA7 /* Histogram-based AEC/AGC Control 4 */ +#define HAECC5 0xA8 /* Histogram-based AEC/AGC Control 5 */ +#define HAECC6 0xA9 /* Histogram-based AEC/AGC Control 6 */ + +#define HAECC7 0xAA /* AEC algorithm selection */ +#define HAECC7_AEC_AVG 0x00 /* Average-based AEC algorithm */ +#define HAECC7_AEC_HIST 0x80 /* Histogram-based AEC algorithm */ + +#define BD60MAX 0xAB /* 60Hz Banding Step Limit */ + +#define STR_OPT 0xAC /* Strobe Control */ +#define STR_OPT_EN 0x80 /* Strobe Enable */ +#define STR_OPT_CTRL 0x40 /* R/G/B gain controlled by STR_R (0xAD) STR_G (0xAE) STR_B (0xAF) for LED output frame */ +#define STR_OPT_XENON_1ROW 0x00 /* Xenon mode option 1 row */ +#define STR_OPT_XENON_2ROW 0x10 /* Xenon mode option 2 rows */ +#define STR_OPT_XENON_3ROW 0x20 /* Xenon mode option 3 rows */ +#define STR_OPT_XENON_4ROW 0x30 /* Xenon mode option 4 rows */ +#define STR_OPT_MODE_XENON 0x00 /* Mode select */ +#define STR_OPT_MODE_LED1 0x01 /* Mode select */ +#define STR_OPT_MODE_LED2 0x02 /* Mode select */ + +#define STR_R 0xAD /* R Gain for LED Output Frame */ +#define STR_G 0xAE /* G Gain for LED Output Frame */ +#define STR_B 0xAF /* B Gain for LED Output Frame */ + +#define ABLC1 0xB1 /* ABLC Control */ +#define ABLC1_EN 0x04 /* Enable ABLC function */ + +#define THL_ST 0xB3 /* ABLC Target */ + +#define AD_CHB 0xBE /* Blue Channel Black Level Compensation */ +#define AD_CHR 0xBF /* Red Channel Black Level Compensation */ +#define AD_CHGB 0xC0 /* Gb Channel Black Level Compensation */ +#define AD_CHGR 0xC1 /* Gr Channel Black Level Compensation */ +#define SATCTR 0xC9 /* UV Saturation Control */ +#endif //__REG_REGS_H__ From 8d9cd5e804ad7ed698e10e5055d7cb16953a2554 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:04:01 +0800 Subject: [PATCH 17/19] [bsp][gd32] Add GD32H77D LVGL support Add the camera rendering and IPA display pipeline with matching GCC and MDK DTCM heap layouts. Place LVGL adaptation and configuration under board/ports, selected by the LVGL package option. Verified camera preview rendering and buffer updates on GinoPi. Keep LVGL disabled by default. --- bsp/gd32/arm/gd32h77d-ginopi/SConstruct | 13 + .../board/linker_scripts/link.ld | 10 + .../board/linker_scripts/link.sct | 9 +- .../gd32h77d-ginopi/board/ports/SConscript | 3 + .../arm/gd32h77d-ginopi/board/ports/lv_conf.h | 119 ++++ .../arm/gd32h77d-ginopi/board/ports/lv_port.c | 643 ++++++++++++++++++ 6 files changed, 795 insertions(+), 2 deletions(-) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_conf.h create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_port.c diff --git a/bsp/gd32/arm/gd32h77d-ginopi/SConstruct b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct index b099cfee99d..63da5bfe77e 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/SConstruct +++ b/bsp/gd32/arm/gd32h77d-ginopi/SConstruct @@ -67,6 +67,19 @@ Export('SDK_LIB') # prepare building environment objs = PrepareBuilding(env, RTT_ROOT, has_libcpu=False) +if GetDepend('PKG_LVGL_USING_LATEST'): + def is_lvgl_frogfs_source(item): + path = os.path.normcase(os.path.normpath(str(item))) + frogfs_path = os.path.normcase(os.path.normpath( + os.path.join('packages', 'LVGL-latest', 'src', 'libs', 'frogfs'))) + return frogfs_path in path + + # FrogFS is disabled, but the upstream RT-Thread SConscript still lists its sources. + objs = [obj for obj in objs if not is_lvgl_frogfs_source(obj)] + for group in Projects: + group['src'] = [src for src in group['src'] + if not is_lvgl_frogfs_source(src)] + if GetDepend('PKG_USING_GT911'): for group in Projects: if group['name'] == 'gt911': diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld index ff93ac14c60..910347b684b 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.ld @@ -147,6 +147,15 @@ SECTIONS PROVIDE(_sp = _estack); } > AXISRAM + /* Select the CPU-only pool before the generic .bss.* rule below. + * TLSF initializes this memory itself; it is not a DMA buffer. */ + .lvgl_heap (NOLOAD) : + { + . = ALIGN(8); + KEEP(*(.bss.lvgl_heap)) + . = ALIGN(8); + } > DTCMRAM + .bss (NOLOAD) : { . = ALIGN(4); @@ -227,6 +236,7 @@ ASSERT(SIZEOF(.vectors) > 0, "missing interrupt vector table") ASSERT(ADDR(.vectors) == ORIGIN(CNVM), "vector table must start at CNVM base") ASSERT(SIZEOF(.reset) > 0, "missing Reset_Handler") ASSERT(SIZEOF(.enet_dma) <= LENGTH(SRAM1), "ENET DMA data exceeds SRAM1") +ASSERT(SIZEOF(.lvgl_heap) + SIZEOF(.dtcmram) <= LENGTH(DTCMRAM), "LVGL pool exceeds DTCM") /* input sections */ GROUP(libgcc.a libc.a libm.a libnosys.a) diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct index afecf312524..dbe02f138f8 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/linker_scripts/link.sct @@ -6,12 +6,17 @@ LR_IROM1 0x08010000 0x001F0000 { ; load region size_region ER_IROM1 0x08010000 0x001F0000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) - .ANY (+RO) + ; Prefer CNVM for code and constants, matching the GCC image layout. + .ANY2 (+RO) .ANY (+XO) } RW_ENET 0x30004000 UNINIT 0x00004000 { *(.enet_dma) } + ; CPU-only LVGL allocations must not fall back to external SDRAM. + RW_LVGL_DTCM 0x20000000 UNINIT 0x00040000 { + *(.bss.lvgl_heap) + } RW_IRAM1 0x24000000 0x000C0000 { ; RW data .ANY (+RW +ZI) } @@ -22,6 +27,6 @@ LR_IROM1 0x08010000 0x001F0000 { ; load region size_region LR_IROM2 0x08200000 0x00780000 { ER_IROM2 0x08200000 0x00780000 { ; load address = execution address - .ANY (+RO) + .ANY1 (+RO) } } diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript index d8d321e5022..20cc30976c9 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/SConscript @@ -7,6 +7,9 @@ src = [] if GetDepend('BSP_USING_GD32VW553_AT'): src += ['gd32vw553_at_port.c'] +if GetDepend('PKG_USING_LVGL'): + src += ['lv_port.c'] + group = DefineGroup('BoardPorts', src, depend = [''], CPPPATH = [cwd]) if GetDepend('BSP_USING_OV7670'): diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_conf.h b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_conf.h new file mode 100644 index 00000000000..ea527b706a9 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_conf.h @@ -0,0 +1,119 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-04 RTT configure LVGL for the MIPI DSI LCD + */ + +#ifndef LV_CONF_H +#define LV_CONF_H + +#define LV_COLOR_FORMAT_DEFAULT LV_COLOR_FORMAT_RGB565 +#define LV_DISABLE_ASSERT_HANDLER_INCLUDE_WARNING 1 +#define LV_USE_GINO_FACTORY_PROFILE 1 + +#define LV_HOR_RES_MAX 720 +#define LV_VER_RES_MAX 720 + +#if defined(BSP_USING_OV7670) && (defined(__GNUC__) || defined(__ARMCC_VERSION)) +/* The RT-Thread port selects rt_malloc before loading this file. Its automatic + * SDRAM fallback is unsuitable for CPU-rendered image scratch buffers. Only + * CPU-owned LVGL allocations use DTCM; DMA/draw buffers remain in AXI SRAM. */ +#undef LV_USE_STDLIB_MALLOC +#define LV_USE_STDLIB_MALLOC LV_STDLIB_BUILTIN +#define LV_MEM_SIZE (256U * 1024U) +#define LV_MEM_ADR 0 +#define LV_ATTRIBUTE_LARGE_RAM_ARRAY __attribute__((section(".bss.lvgl_heap"), aligned(8))) +#endif + +#define LV_USE_SYSMON 0 +#define LV_USE_PERF_MONITOR 0 +#define LV_USE_MEM_MONITOR 0 + +#define LV_USE_THEME_DEFAULT 1 +#define LV_USE_THEME_SIMPLE 0 +#define LV_USE_THEME_MONO 0 + +#define LV_USE_FLEX 0 +#define LV_USE_GRID 0 + +#define LV_USE_DEMO_BENCHMARK 0 +#define LV_USE_DEMO_SMARTWATCH 0 +#define LV_USE_DEMO_MUSIC 0 + +#define LV_USE_FS_STDIO 0 +#define LV_USE_FS_POSIX 0 +#define LV_USE_FS_WIN32 0 +#define LV_USE_FS_FATFS 0 +#define LV_USE_FS_LITTLEFS 0 +#define LV_USE_FS_ARDUINO_ESP_LITTLEFS 0 +#define LV_USE_FS_ARDUINO_SD 0 +#define LV_USE_FS_UEFI 0 +#define LV_USE_FS_FROGFS 0 +#define LV_USE_FS_MEMFS 0 + +#define LV_USE_BMP 0 +#define LV_USE_LODEPNG 0 +#define LV_USE_LIBPNG 0 +#define LV_USE_TJPGD 0 +#define LV_USE_LIBJPEG_TURBO 0 +#define LV_USE_LIBWEBP 0 +#define LV_USE_SVG 0 +#define LV_USE_RLE 0 +#define LV_USE_LZ4 0 +#define LV_USE_GIF 0 +#define LV_USE_QRCODE 0 +#define LV_USE_BARCODE 0 +#define LV_USE_LOTTIE 0 + +#define LV_USE_ANIMIMG 0 +#define LV_USE_ARC 0 +#define LV_USE_ARCLABEL 0 +#define LV_USE_BAR 1 +#define LV_USE_BUTTON 1 +#define LV_USE_BUTTONMATRIX 1 +#define LV_USE_CALENDAR 0 +#define LV_USE_CANVAS 0 +#define LV_USE_CHART 0 +#define LV_USE_CHECKBOX 0 +#define LV_USE_DROPDOWN 1 +#define LV_USE_IMAGE 1 +#define LV_USE_IMAGEBUTTON 0 +#define LV_USE_KEYBOARD 1 +#define LV_USE_LABEL 1 +#define LV_USE_LED 0 +#define LV_USE_LINE 0 +#define LV_USE_LIST 0 +#define LV_USE_MENU 0 +#define LV_USE_MSGBOX 0 +#define LV_USE_ROLLER 0 +#define LV_USE_SCALE 0 +#define LV_USE_SLIDER 1 +#define LV_USE_SPAN 0 +#define LV_USE_SPINBOX 0 +#define LV_USE_SPINNER 0 +#define LV_USE_SWITCH 1 +#define LV_USE_TABLE 1 +#define LV_USE_TABVIEW 0 +#define LV_USE_TEXTAREA 1 +#define LV_USE_TILEVIEW 0 +#define LV_USE_WIN 0 +#define LV_USE_IME_PINYIN 0 + +#define LV_USE_FILE_EXPLORER 0 +#define LV_USE_FRAGMENT 0 +#define LV_USE_TRANSLATION 0 +#define LV_USE_FREETYPE 0 +#define LV_USE_TINY_TTF 0 +#define LV_USE_FONT_MANAGER 0 +#define LV_USE_IMGFONT 0 + +#define LV_FONT_MONTSERRAT_12 0 +#define LV_FONT_MONTSERRAT_14 0 +#define LV_FONT_MONTSERRAT_16 1 +#define LV_FONT_DEFAULT &lv_font_montserrat_16 + +#endif /* LV_CONF_H */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_port.c b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_port.c new file mode 100644 index 00000000000..4302276b2e5 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/board/ports/lv_port.c @@ -0,0 +1,643 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-08-04 RTT add LVGL port for the MIPI DSI LCD + * 2026-09-08 CYFS port the board demo with internal camera rendering and IPA updates + */ + +#include + +#ifdef PKG_USING_LVGL + +#include +#include +#include + +#include "gd32h77x_78x_ipa.h" + +#define DBG_TAG "lvgl.disp" +#define DBG_LVL DBG_INFO +#include + +#define LCD_DEVICE_NAME "lcd" +#define TOUCH_DEVICE_NAME "gt911" +#define TOUCH_POINT_COUNT 5U + +#define LCD_BYTES_PER_PIXEL 2U + +#if defined(BSP_USING_OV7670) +#define LVGL_DISPLAY_WIDTH LV_HOR_RES_MAX +#define LVGL_DISPLAY_HEIGHT LV_VER_RES_MAX +#define LVGL_USE_DIRECT_FRAMEBUFFER 0 +#define LVGL_USE_IPA_FRAMEBUFFER 1 +#define LCD_DRAW_BUFFER_LINES 32U +#elif LV_USE_DEMO_SMARTWATCH && !defined(BSP_USING_LVGL_BOARD_DEMO) +#define LVGL_DISPLAY_WIDTH 384U +#define LVGL_DISPLAY_HEIGHT 384U +#define LVGL_USE_DIRECT_FRAMEBUFFER 0 +#else +#define LVGL_DISPLAY_WIDTH LV_HOR_RES_MAX +#define LVGL_DISPLAY_HEIGHT LV_VER_RES_MAX +#define LVGL_USE_DIRECT_FRAMEBUFFER 0 +#endif + +#ifndef LVGL_USE_IPA_FRAMEBUFFER +#define LVGL_USE_IPA_FRAMEBUFFER 0 +#define LCD_DRAW_BUFFER_LINES 150U +#endif + +#if !LVGL_USE_DIRECT_FRAMEBUFFER +#define LCD_DRAW_BUFFER_SIZE (LVGL_DISPLAY_WIDTH * LCD_DRAW_BUFFER_LINES * LCD_BYTES_PER_PIXEL) +#endif + +static rt_device_t lcd_device; +static struct rt_device_graphic_info lcd_info; +static lv_display_t *lvgl_display; +#if !LVGL_USE_DIRECT_FRAMEBUFFER +rt_align(32) static uint8_t lcd_draw_buffer_1[LCD_DRAW_BUFFER_SIZE]; +#if !LVGL_USE_IPA_FRAMEBUFFER +rt_align(32) static uint8_t lcd_draw_buffer_2[LCD_DRAW_BUFFER_SIZE]; +#endif +#endif +static rt_uint16_t lcd_viewport_x; +static rt_uint16_t lcd_viewport_y; +#if !LVGL_USE_DIRECT_FRAMEBUFFER && !LVGL_USE_IPA_FRAMEBUFFER +static volatile lv_display_t *g_flushing_display; +#endif +static rt_bool_t display_ready; +#if LVGL_USE_DIRECT_FRAMEBUFFER +static rt_bool_t flush_error_reported; +#endif + +#if LVGL_USE_IPA_FRAMEBUFFER +static rt_uint8_t *lcd_scanout_framebuffer; +static rt_uint8_t *lcd_render_framebuffer; +static lv_area_t lcd_pending_area; +static rt_bool_t lcd_pending_valid; +static rt_bool_t lcd_pipeline_faulted; +static rt_uint32_t lcd_ipa_error_flags; +#endif + +#ifdef BSP_USING_TOUCH_GT911 +int rt_hw_gt911_port_init(void); + +static rt_device_t touch_device; +static lv_coord_t touch_x; +static lv_coord_t touch_y; +static rt_bool_t touch_pressed; +#endif + +#if LVGL_USE_IPA_FRAMEBUFFER +static void lcd_ipa_init(void) +{ + rcu_periph_clock_enable(RCU_IPA); + NVIC_DisableIRQ(IPA_IRQn); + ipa_deinit(); + ipa_interval_clock_num_config(255U); + ipa_inter_timer_config(IPA_INTER_TIMER_ENABLE); +} + +static rt_err_t lcd_ipa_copy(const void *source, void *destination, + rt_uint32_t width, rt_uint32_t height, + rt_uint32_t source_stride, rt_uint32_t destination_stride) +{ + rt_tick_t start; + rt_uint32_t flags; + rt_err_t result = RT_EOK; + + if ((IPA_CTL & IPA_CTL_TEN) != 0U) + { + /* This configuration gives IPA exclusively to the synchronous port. */ + lcd_ipa_error_flags |= IPA_INTF; + ipa_deinit(); + __DSB(); + return -RT_EBUSY; + } + IPA_CTL = IPA_FGTODE; + IPA_INTC = 0x3FU; + IPA_FMADDR = (rt_uint32_t)source; + IPA_DMADDR = (rt_uint32_t)destination; + IPA_FLOFF = source_stride / LCD_BYTES_PER_PIXEL - width; + IPA_DLOFF = destination_stride / LCD_BYTES_PER_PIXEL - width; + IPA_FPCTL = FOREGROUND_PPF_RGB565; + IPA_DPCTL = DESTINATION_PPF_RGB565; + IPA_BSCTL = 0x10001000U; + IPA_DIMS = 0U; + IPA_IMS = (width << 16U) | height; + __DSB(); + start = rt_tick_get(); + IPA_CTL |= IPA_CTL_TEN; + while (1) + { + flags = IPA_INTF; + if ((flags & (IPA_INTF_TAEIF | IPA_INTF_WCFIF | IPA_INTF_LACIF)) != 0U) + { + lcd_ipa_error_flags |= flags; + result = -RT_EIO; + break; + } + if (((flags & IPA_INTF_FTFIF) != 0U) && ((IPA_CTL & IPA_CTL_TEN) == 0U)) + { + break; + } + if ((rt_tick_t)(rt_tick_get() - start) >= rt_tick_from_millisecond(100U)) + { + result = -RT_ETIMEOUT; + break; + } + } + if (result != RT_EOK) + { + /* Stop this port's engine before LVGL can reuse its source buffer. */ + ipa_deinit(); + } + __DSB(); + /* The scanout windows are write-through. Drop stale CPU lines after DMA, + * without writing any CPU cache contents back over the IPA result. */ + rt_hw_cpu_dcache_ops(RT_HW_CACHE_INVALIDATE, destination, + (height - 1U) * destination_stride + width * LCD_BYTES_PER_PIXEL); + return result; +} + +static rt_err_t lcd_ipa_present(void) +{ + rt_err_t result; + rt_uint8_t *old_scanout; + rt_uint32_t row; + rt_uint32_t lines; + rt_uint32_t offset; + rt_uint32_t stride = lcd_info.width * LCD_BYTES_PER_PIXEL; + rt_uint32_t width = lv_area_get_width(&lcd_pending_area); + + result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_PAN_DISPLAY, lcd_render_framebuffer); + if (result != RT_EOK) + { + return result; + } + result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_WAIT_VSYNC, RT_NULL); + if (result != RT_EOK) + { + return result; + } + old_scanout = lcd_scanout_framebuffer; + lcd_scanout_framebuffer = lcd_render_framebuffer; + lcd_render_framebuffer = old_scanout; + + /* Only the hardware reload releases the old front buffer. Synchronize the + * changed rectangle with IPA so the next partial frame retains other pixels. */ + for (row = lcd_pending_area.y1; row <= (rt_uint32_t)lcd_pending_area.y2; row += lines) + { + lines = (rt_uint32_t)lcd_pending_area.y2 - row + 1U; + if (lines > LCD_DRAW_BUFFER_LINES) + { + lines = LCD_DRAW_BUFFER_LINES; + } + offset = row * stride + lcd_pending_area.x1 * LCD_BYTES_PER_PIXEL; + result = lcd_ipa_copy(lcd_scanout_framebuffer + offset, lcd_render_framebuffer + offset, + width, lines, stride, stride); + if (result != RT_EOK) + { + return result; + } + } + lcd_pending_valid = RT_FALSE; + return RT_EOK; +} + +static void lcd_flush(lv_display_t *display, const lv_area_t *area, uint8_t *color_p) +{ + lv_draw_buf_t *draw_buf = lv_display_get_buf_active(display); + rt_uint32_t width = lv_area_get_width(area); + rt_uint32_t height = lv_area_get_height(area); + rt_uint32_t stride; + rt_uint32_t offset; + rt_err_t result = -RT_EINVAL; + + if (lcd_pipeline_faulted) + { + lv_display_flush_ready(display); + return; + } + if ((draw_buf == RT_NULL) || (area->x1 < 0) || (area->y1 < 0) || + (area->x2 >= lcd_info.width) || (area->y2 >= lcd_info.height) || + (area->x2 < area->x1) || (area->y2 < area->y1) || + (color_p != lcd_draw_buffer_1)) + { + goto failed; + } + stride = draw_buf->header.stride; + if ((stride < width * LCD_BYTES_PER_PIXEL) || ((stride & 1U) != 0U) || + (stride > sizeof(lcd_draw_buffer_1) / height)) + { + goto failed; + } + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, color_p, stride * height); + offset = (area->y1 * lcd_info.width + area->x1) * LCD_BYTES_PER_PIXEL; + result = lcd_ipa_copy(color_p, lcd_render_framebuffer + offset, width, height, + stride, lcd_info.width * LCD_BYTES_PER_PIXEL); + if (result != RT_EOK) + { + goto failed; + } + if (!lcd_pending_valid) + { + lcd_pending_area = *area; + lcd_pending_valid = RT_TRUE; + } + else + { + if (area->x1 < lcd_pending_area.x1) lcd_pending_area.x1 = area->x1; + if (area->y1 < lcd_pending_area.y1) lcd_pending_area.y1 = area->y1; + if (area->x2 > lcd_pending_area.x2) lcd_pending_area.x2 = area->x2; + if (area->y2 > lcd_pending_area.y2) lcd_pending_area.y2 = area->y2; + } + if (lv_display_flush_is_last(display)) + { + result = lcd_ipa_present(); + if (result != RT_EOK) + { + goto failed; + } + } + lv_display_flush_ready(display); + return; + +failed: + /* No CPU fallback: hold the last submitted image, never reuse an uncertain + * scanout buffer. The console remains available for diagnostics. */ + lcd_pipeline_faulted = RT_TRUE; + LOG_E("IPA display pipeline stopped: %d flags=%08x; reboot required", result, lcd_ipa_error_flags); + lv_display_flush_ready(display); +} +#elif !LVGL_USE_DIRECT_FRAMEBUFFER +static void lcd_clean_dcache(void *address, rt_size_t size) +{ +#if __CORTEX_M >= 0x07 + rt_hw_cpu_dcache_ops(RT_HW_CACHE_FLUSH, address, size); +#else + RT_UNUSED(address); + RT_UNUSED(size); +#endif +} + +static void lcd_ipa_init(void) +{ + rcu_periph_clock_enable(RCU_IPA); + ipa_interval_clock_num_config(255U); + ipa_inter_timer_config(IPA_INTER_TIMER_ENABLE); +} + +static void lcd_flush(lv_display_t *display, + const lv_area_t *area, + uint8_t *color_p) +{ + rt_uint32_t width; + rt_uint32_t height; + + width = (rt_uint32_t)lv_area_get_width(area); + height = (rt_uint32_t)lv_area_get_height(area); + + /* LVGL serializes flushes, matching the reference project's strategy. */ + while (g_flushing_display != RT_NULL) + { + } + g_flushing_display = display; + + lcd_clean_dcache(color_p, (rt_size_t)width * height * LCD_BYTES_PER_PIXEL); + + IPA_CTL = IPA_FGTODE | IPA_CTL_FTFIE; + IPA_FMADDR = (rt_uint32_t)color_p; + IPA_DMADDR = (rt_uint32_t)lcd_info.framebuffer + + (rt_uint32_t)2U * + ((rt_uint32_t)lcd_info.width * + ((rt_uint32_t)area->y1 + lcd_viewport_y) + + (rt_uint32_t)area->x1 + lcd_viewport_x); + IPA_FLOFF = 0U; + IPA_DLOFF = (rt_uint32_t)lcd_info.width - width; + IPA_FPCTL = FOREGROUND_PPF_RGB565; + IPA_IMS = (width << 16U) | (height & 0xFFFFU); + IPA_CTL |= IPA_CTL_TEN; +} + +void IPA_IRQHandler(void) +{ + rt_interrupt_enter(); + + if (SET == ipa_interrupt_flag_get(IPA_INT_FLAG_FTF)) + { + ipa_interrupt_flag_clear(IPA_INT_FLAG_FTF); + if (g_flushing_display != RT_NULL) + { + lv_display_flush_ready((lv_display_t *)g_flushing_display); + g_flushing_display = RT_NULL; + } + } + + rt_interrupt_leave(); +} +#else +static void lcd_flush(lv_display_t *display, + const lv_area_t *area, + uint8_t *color_p) +{ + rt_err_t result; + rt_bool_t swap_submitted = RT_FALSE; + + RT_UNUSED(area); + + if (!lv_display_flush_is_last(display)) + { + lv_display_flush_ready(display); + return; + } + + /* Direct mode reuses the old scanout buffer after flush_ready. A failed + * wait must retain ownership, and retrying it must not submit another swap. */ + do + { + if (!swap_submitted) + { + result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_PAN_DISPLAY, + color_p); + swap_submitted = (result == RT_EOK); + } + if (swap_submitted) + { + result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_WAIT_VSYNC, + RT_NULL); + } + if (result != RT_EOK) + { + if (!flush_error_reported) + { + LOG_E("framebuffer swap failed: %d; retaining buffers", result); + flush_error_reported = RT_TRUE; + } + rt_thread_mdelay(1U); + } + } while (result != RT_EOK); + + flush_error_reported = RT_FALSE; + lv_display_flush_ready(display); +} +#endif + +void lv_port_disp_init(void) +{ + rt_err_t result; + rt_uint32_t framebuffer_size; +#if LVGL_USE_DIRECT_FRAMEBUFFER + rt_uint8_t *back_framebuffer; +#endif + + lcd_device = rt_device_find(LCD_DEVICE_NAME); + if (lcd_device == RT_NULL) + { + LOG_E("cannot find %s device", LCD_DEVICE_NAME); + return; + } + + result = rt_device_open(lcd_device, RT_DEVICE_OFLAG_RDWR); + if (result != RT_EOK) + { + LOG_E("cannot open %s device: %d", LCD_DEVICE_NAME, result); + return; + } + + result = rt_device_control(lcd_device, RTGRAPHIC_CTRL_GET_INFO, &lcd_info); + framebuffer_size = (rt_uint32_t)lcd_info.width * lcd_info.height * + LCD_BYTES_PER_PIXEL; + if ((result != RT_EOK) || + (lcd_info.width != LV_HOR_RES_MAX) || + (lcd_info.height != LV_VER_RES_MAX) || + (lcd_info.pixel_format != RTGRAPHIC_PIXEL_FORMAT_RGB565) || + (lcd_info.bits_per_pixel != 16U) || + (lcd_info.framebuffer == RT_NULL) || + (lcd_info.smem_len < framebuffer_size * + ((LVGL_USE_DIRECT_FRAMEBUFFER || LVGL_USE_IPA_FRAMEBUFFER) ? 2U : 1U))) + { + LOG_E("invalid %s framebuffer", LCD_DEVICE_NAME); + rt_device_close(lcd_device); + return; + } + + lcd_viewport_x = (rt_uint16_t)((lcd_info.width - LVGL_DISPLAY_WIDTH) / 2U); + lcd_viewport_y = (rt_uint16_t)((lcd_info.height - LVGL_DISPLAY_HEIGHT) / 2U); + +#if LVGL_USE_IPA_FRAMEBUFFER + if (((rt_ubase_t)lcd_draw_buffer_1 < 0x24000000U) || + ((rt_ubase_t)lcd_draw_buffer_1 + sizeof(lcd_draw_buffer_1) > (rt_ubase_t)GD32_SRAM_END)) + { + LOG_E("LVGL draw buffer must be in AXI SRAM"); + rt_device_close(lcd_device); + return; + } + lcd_scanout_framebuffer = lcd_info.framebuffer; + lcd_render_framebuffer = lcd_scanout_framebuffer + framebuffer_size; +#endif + + lvgl_display = lv_display_create(LVGL_DISPLAY_WIDTH, LVGL_DISPLAY_HEIGHT); + if (lvgl_display == RT_NULL) + { + LOG_E("cannot create LVGL display"); + rt_device_close(lcd_device); + return; + } + + lv_display_set_color_format(lvgl_display, LV_COLOR_FORMAT_RGB565); +#if LVGL_USE_DIRECT_FRAMEBUFFER + back_framebuffer = (rt_uint8_t *)lcd_info.framebuffer + framebuffer_size; + lv_display_set_buffers(lvgl_display, + back_framebuffer, + lcd_info.framebuffer, + framebuffer_size, + LV_DISPLAY_RENDER_MODE_DIRECT); +#elif LVGL_USE_IPA_FRAMEBUFFER + lv_display_set_buffers(lvgl_display, lcd_draw_buffer_1, RT_NULL, + sizeof(lcd_draw_buffer_1), LV_DISPLAY_RENDER_MODE_PARTIAL); +#else + lv_display_set_buffers(lvgl_display, + lcd_draw_buffer_1, + lcd_draw_buffer_2, + sizeof(lcd_draw_buffer_1), + LV_DISPLAY_RENDER_MODE_PARTIAL); +#endif + lv_display_set_flush_cb(lvgl_display, lcd_flush); + lv_display_set_default(lvgl_display); + +#if !LVGL_USE_DIRECT_FRAMEBUFFER + lcd_ipa_init(); +#if !LVGL_USE_IPA_FRAMEBUFFER + nvic_irq_enable(IPA_IRQn, 2U, 0U); +#endif +#endif + display_ready = RT_TRUE; + +#if LVGL_USE_DIRECT_FRAMEBUFFER + LOG_I("%ux%u RGB565 direct framebuffers at %p/%p", + lcd_info.width, lcd_info.height, + lcd_info.framebuffer, back_framebuffer); + LOG_I("vertical blank framebuffer swapping enabled"); +#elif LVGL_USE_IPA_FRAMEBUFFER + LOG_I("AXI SRAM partial rendering: %u lines, %u bytes at %p", + LCD_DRAW_BUFFER_LINES, (rt_uint32_t)sizeof(lcd_draw_buffer_1), lcd_draw_buffer_1); + LOG_I("IPA back-buffer flush and sync, vertical blank swaps at %p/%p", + lcd_scanout_framebuffer, lcd_render_framebuffer); +#else + LOG_I("%ux%u LVGL viewport centered on %ux%u RGB565 panel", + LVGL_DISPLAY_WIDTH, LVGL_DISPLAY_HEIGHT, + lcd_info.width, lcd_info.height); + LOG_I("partial buffers (%u lines) at %p/%p", + LCD_DRAW_BUFFER_LINES, + lcd_draw_buffer_1, lcd_draw_buffer_2); + LOG_I("reference IPA flush strategy enabled"); +#endif +} + +#ifdef BSP_USING_TOUCH_GT911 +static void touch_read(lv_indev_t *indev, lv_indev_data_t *data) +{ + struct rt_touch_data touch_data[TOUCH_POINT_COUNT]; + rt_size_t point_index; + rt_bool_t active_point_found = RT_FALSE; + + RT_UNUSED(indev); + + rt_memset(touch_data, 0, sizeof(touch_data)); + if (rt_device_read(touch_device, 0, touch_data, TOUCH_POINT_COUNT) == TOUCH_POINT_COUNT) + { + for (point_index = 0; point_index < TOUCH_POINT_COUNT; point_index++) + { + if ((touch_data[point_index].event == RT_TOUCH_EVENT_DOWN) || + (touch_data[point_index].event == RT_TOUCH_EVENT_MOVE)) + { + if ((touch_data[point_index].x_coordinate >= lcd_viewport_x) && + (touch_data[point_index].x_coordinate < lcd_viewport_x + LVGL_DISPLAY_WIDTH) && + (touch_data[point_index].y_coordinate >= lcd_viewport_y) && + (touch_data[point_index].y_coordinate < lcd_viewport_y + LVGL_DISPLAY_HEIGHT)) + { + touch_x = (lv_coord_t)(touch_data[point_index].x_coordinate - lcd_viewport_x); + touch_y = (lv_coord_t)(touch_data[point_index].y_coordinate - lcd_viewport_y); + touch_pressed = RT_TRUE; + } + else + { + touch_pressed = RT_FALSE; + } + + active_point_found = RT_TRUE; + break; + } + } + + if (!active_point_found) + { + for (point_index = 0; point_index < TOUCH_POINT_COUNT; point_index++) + { + if (touch_data[point_index].event == RT_TOUCH_EVENT_UP) + { + touch_pressed = RT_FALSE; + break; + } + } + } + } + + data->point.x = touch_x; + data->point.y = touch_y; + data->state = touch_pressed ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL; +} +#endif + +void lv_port_indev_init(void) +{ +#ifdef BSP_USING_TOUCH_GT911 + rt_err_t result; + lv_indev_t *input_device; + + touch_device = rt_device_find(TOUCH_DEVICE_NAME); + if (touch_device == RT_NULL) + { + result = rt_hw_gt911_port_init(); + if (result == RT_EOK) + { + touch_device = rt_device_find(TOUCH_DEVICE_NAME); + } + if (touch_device == RT_NULL) + { + LOG_E("cannot initialize %s device: %d", + TOUCH_DEVICE_NAME, result); + return; + } + } + + result = rt_device_open(touch_device, RT_DEVICE_OFLAG_RDONLY); + if (result != RT_EOK) + { + LOG_E("cannot open %s device: %d", TOUCH_DEVICE_NAME, result); + touch_device = RT_NULL; + return; + } + + input_device = lv_indev_create(); + if (input_device == RT_NULL) + { + LOG_E("cannot create LVGL input device"); + rt_device_close(touch_device); + touch_device = RT_NULL; + return; + } + + lv_indev_set_type(input_device, LV_INDEV_TYPE_POINTER); + lv_indev_set_read_cb(input_device, touch_read); + lv_indev_set_display(input_device, lvgl_display); + + LOG_I("%s registered as LVGL pointer", TOUCH_DEVICE_NAME); +#endif +} + +void lv_user_gui_init(void) +{ + if (!display_ready) + { + return; + } + +#ifdef BSP_USING_LVGL_BOARD_DEMO + extern void board_demo_init(void); + + board_demo_init(); + lv_refr_now(NULL); +#elif LV_USE_DEMO_SMARTWATCH + extern void lv_demo_smartwatch(void); + + lv_demo_smartwatch(); + lv_refr_now(NULL); +#elif LV_USE_DEMO_BENCHMARK + extern void lv_demo_benchmark(void); + + lv_demo_benchmark(); + lv_refr_now(NULL); +#elif defined(PKG_USING_LV_MUSIC_DEMO) + extern void lv_demo_music(void); + + lv_demo_music(); + lv_refr_now(NULL); +#else + LOG_W("no LVGL demo is enabled"); + lv_refr_now(NULL); +#endif + +#if defined(BSP_USING_OV7670_PREVIEW) && !defined(BSP_USING_LVGL_BOARD_DEMO) && \ + !LV_USE_DEMO_SMARTWATCH + extern void ov7670_preview_init(void); + + ov7670_preview_init(); +#endif +} + +#endif /* PKG_USING_LVGL */ From fe35aac7c2fdbc286dec5c883ef6ffe50dda6c44 Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 16:04:04 +0800 Subject: [PATCH 18/19] [bsp][gd32] Add GinoPi peripheral demonstration applications Add the optional board console and backend for storage, CAN, MQTT, PWM, SPI, I2C and camera commands. Put the option under Applications and select the preview dependency explicitly. Require an LVGL thread stack of at least 8192 bytes for this demo. Verified demo startup and camera preview start/stop without the previous stack overflow; measured peak LVGL stack use was 71%. Keep demonstrations disabled in the default UART1/PIN configuration. --- .../arm/gd32h77d-ginopi/applications/Kconfig | 32 + .../gd32h77d-ginopi/applications/SConscript | 3 + .../gd32h77d-ginopi/applications/board_demo.c | 1788 +++++++++++++++++ .../applications/board_demo_backend.c | 1687 ++++++++++++++++ .../applications/board_demo_backend.h | 137 ++ 5 files changed, 3647 insertions(+) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.c create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.h diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig index 19bc4b9a7c8..fcd511fe2a3 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/Kconfig @@ -96,4 +96,36 @@ menu "Applications" endif + config BSP_USING_LVGL_BOARD_DEMO + bool "Enable LVGL board demonstration" + depends on PKG_LVGL_USING_LATEST + select BSP_USING_LCD_MIPI + select BSP_USING_TOUCH_GT911 + select BSP_USING_OV7670 + select BSP_USING_OV7670_PREVIEW + select BSP_USING_FS + select BSP_USING_FLASH_FATFS + select BSP_USING_USB + select BSP_USB_USING_HOST + select RT_USBH_MSTORAGE + select BSP_USING_CAN + select BSP_USING_CAN1 + select BSP_USING_PWM + select BSP_USING_PWM2 + select BSP_USING_PWM30 + select BSP_USING_SPI + select BSP_USING_SPI3 + select BSP_USING_I2C + select BSP_USING_HARD_I2C + select BSP_USING_HARD_I2C1 + select BSP_USING_GD32VW553_AT + select BSP_USING_GD32VW553_MQTT_DEMO + default n + help + Enable the LVGL board console for storage, CAN, MQTT, dual PWM, + OV7670 camera preview, SPI3 loopback, and I2C address scanning. + + config PKG_LVGL_THREAD_STACK_SIZE + range 8192 2147483647 if BSP_USING_LVGL_BOARD_DEMO + endmenu diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript index d1e91fc931f..130142ef748 100644 --- a/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/SConscript @@ -21,6 +21,9 @@ if GetDepend('BSP_USING_OV7670_PREVIEW'): if GetDepend(['BSP_USING_GD32VW553_MQTT_DEMO', 'PKG_USING_KAWAII_MQTT']): src += ['gd32vw553_mqtt_demo.c'] +if GetDepend(['BSP_USING_LVGL_BOARD_DEMO', 'PKG_USING_LVGL']): + src += ['board_demo.c', 'board_demo_backend.c'] + group = DefineGroup('Applications', src, depend = [''], CPPPATH = [cwd]) Return('group') diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo.c new file mode 100644 index 00000000000..51e9b791889 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo.c @@ -0,0 +1,1788 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-08 CYFS implement the board dashboard for peripherals, storage, camera, and MQTT + */ + +#include + +#if defined(PKG_USING_LVGL) && defined(BSP_USING_LVGL_BOARD_DEMO) + +#include +#include +#include +#include + +#include "board_demo_backend.h" + +#ifdef BSP_USING_OV7670_PREVIEW +#include "ov7670_preview.h" +#endif + +#define DBG_TAG "app.board.demo" +#define DBG_LVL DBG_INFO +#include + +#ifndef BSP_GD32VW553_MQTT_HOST +#define BSP_GD32VW553_MQTT_HOST "broker.emqx.io" +#endif + +#ifndef BSP_GD32VW553_MQTT_SUB_TOPIC +#define BSP_GD32VW553_MQTT_SUB_TOPIC "rtt/gd32vw553/sub" +#endif + +#ifndef BSP_GD32VW553_MQTT_PUB_TOPIC +#define BSP_GD32VW553_MQTT_PUB_TOPIC "rtt/gd32vw553/pub" +#endif + +#define BOARD_DEMO_WIDTH 720 +#define BOARD_DEMO_HEIGHT 720 +#define BOARD_DEMO_SIDEBAR_WIDTH 132 +#define BOARD_DEMO_HEADER_HEIGHT 64 +#define BOARD_DEMO_CONTENT_WIDTH (BOARD_DEMO_WIDTH - BOARD_DEMO_SIDEBAR_WIDTH) +#define BOARD_DEMO_CONTENT_HEIGHT (BOARD_DEMO_HEIGHT - BOARD_DEMO_HEADER_HEIGHT) +#define BOARD_DEMO_PAGE_INNER_WIDTH (BOARD_DEMO_CONTENT_WIDTH - 32) +#define BOARD_DEMO_REFRESH_MS 150U +#define BOARD_DEMO_STORAGE_POLL_MS 1000U +#define BOARD_DEMO_KEYBOARD_HEIGHT 260 +#define BOARD_DEMO_LCD_DEVICE_NAME "lcd" + +#define COLOR_NAV lv_color_hex(0x242A2D) +#define COLOR_NAV_ACTIVE lv_color_hex(0x365B56) +#define COLOR_PAGE lv_color_hex(0xF1F4F5) +#define COLOR_SURFACE lv_color_hex(0xFFFFFF) +#define COLOR_TEXT lv_color_hex(0x1F2933) +#define COLOR_MUTED lv_color_hex(0x64727D) +#define COLOR_BORDER lv_color_hex(0xD6DEE2) +#define COLOR_ACCENT lv_color_hex(0x0F766E) +#define COLOR_INFO lv_color_hex(0x2563A6) +#define COLOR_ACCENT_SOFT lv_color_hex(0xE1F0EB) +#define COLOR_WARNING lv_color_hex(0xB45309) +#define COLOR_DANGER lv_color_hex(0xB42318) + +enum board_demo_page_id +{ + BOARD_DEMO_PAGE_OVERVIEW = 0, + BOARD_DEMO_PAGE_FILES, + BOARD_DEMO_PAGE_CAN, + BOARD_DEMO_PAGE_MQTT, + BOARD_DEMO_PAGE_PWM, + BOARD_DEMO_PAGE_CAMERA, + BOARD_DEMO_PAGE_SPI, + BOARD_DEMO_PAGE_I2C, + BOARD_DEMO_PAGE_COUNT, +}; + +static const char *const board_demo_page_names[BOARD_DEMO_PAGE_COUNT] = +{ + "Overview", "Files", "CAN", "MQTT", + "PWM", "Camera", "SPI", "I2C", +}; + +static const char *const board_demo_page_symbols[BOARD_DEMO_PAGE_COUNT] = +{ + LV_SYMBOL_HOME, LV_SYMBOL_DIRECTORY, LV_SYMBOL_LOOP, LV_SYMBOL_WIFI, + LV_SYMBOL_SETTINGS, LV_SYMBOL_IMAGE, LV_SYMBOL_SHUFFLE, LV_SYMBOL_LIST, +}; + +static lv_obj_t *demo_screen; +static lv_obj_t *demo_pages[BOARD_DEMO_PAGE_COUNT]; +static lv_obj_t *demo_nav_buttons[BOARD_DEMO_PAGE_COUNT]; +static lv_obj_t *demo_header_title; +static lv_obj_t *demo_header_status; +static lv_obj_t *demo_keyboard; +static lv_timer_t *demo_refresh_timer; +static enum board_demo_page_id demo_active_page; + +static lv_obj_t *overview_status[BOARD_DEMO_PAGE_COUNT]; +static lv_obj_t *overview_uptime; + +static lv_obj_t *files_source_buttons[BOARD_DEMO_STORAGE_COUNT]; +static lv_obj_t *files_source_status[BOARD_DEMO_STORAGE_COUNT]; +static lv_obj_t *files_up_button; +static lv_obj_t *files_path_label; +static lv_obj_t *files_status_label; +static lv_obj_t *files_table; +static lv_obj_t *files_empty_label; +static lv_obj_t *files_preview_title; +static lv_obj_t *files_preview_panel; +static lv_obj_t *files_preview_label; + +static lv_obj_t *can_status_label; +static lv_obj_t *can_baud_dropdown; +static lv_obj_t *can_id_textarea; +static lv_obj_t *can_data_textarea; +static lv_obj_t *can_extended_switch; +static lv_obj_t *can_table; + +static lv_obj_t *mqtt_status_label; +static lv_obj_t *mqtt_topic_textarea; +static lv_obj_t *mqtt_payload_textarea; +static lv_obj_t *mqtt_rx_topic_label; +static lv_obj_t *mqtt_rx_payload_label; + +static lv_obj_t *pwm_status_label; +static lv_obj_t *brightness_slider; +static lv_obj_t *brightness_value_label; +static lv_obj_t *pwm_frequency_dropdown; +static lv_obj_t *pwm2_switch; +static lv_obj_t *pwm2_slider; +static lv_obj_t *pwm2_value_label; +static lv_obj_t *pwm30_switch; +static lv_obj_t *pwm30_slider; +static lv_obj_t *pwm30_value_label; + +static lv_obj_t *camera_status_label; +static lv_obj_t *camera_counter_label; + +static lv_obj_t *spi_status_label; +static lv_obj_t *spi_frequency_dropdown; +static lv_obj_t *spi_length_dropdown; +static lv_obj_t *spi_run_button; +static lv_obj_t *spi_log_label; + +static lv_obj_t *i2c_status_label; +static lv_obj_t *i2c_result_table; +static lv_obj_t *i2c_scan_button; +static lv_obj_t *i2c_log_label; + +static rt_device_t board_demo_lcd_device; + +static struct board_demo_snapshot demo_snapshot; +static rt_uint32_t files_sequence; +static rt_uint32_t file_sequence; +static rt_uint32_t can_sequence; +static rt_uint32_t mqtt_sequence; +static rt_uint32_t pwm_sequence; +static rt_uint32_t spi_sequence; +static rt_uint32_t i2c_sequence; +static rt_uint8_t storage_mounts; +static rt_uint32_t storage_poll_tick; +static rt_bool_t storage_polled; + +static void board_demo_show_page(enum board_demo_page_id page_id); +static void board_demo_update_files(void); +static void board_demo_update_storage(void); +static void board_demo_update_runtime(void); + +static void board_demo_files_request_path(const char *path) +{ + char status[64]; + int result; + + lv_label_set_text(files_path_label, path); + lv_label_set_text(files_status_label, "Loading..."); + result = board_demo_request_fs_list(path); + if (result == RT_EOK) + { + result = board_demo_backend_get_snapshot(&demo_snapshot); + if (result == RT_EOK) + { + board_demo_update_files(); + LOG_I("storage list completed: %s", path); + } + else + { + lv_label_set_text(files_status_label, "Storage state unavailable"); + LOG_E("cannot read storage state for %s: %d", path, result); + } + } + else + { + rt_snprintf(status, sizeof(status), "Storage scan failed: %d", result); + lv_label_set_text(files_status_label, status); + LOG_E("cannot scan storage path %s: %d", path, result); + } +} + +static void board_demo_copy_string(char *destination, const char *source, + rt_size_t destination_size) +{ + if (destination_size == 0U) + { + return; + } + + rt_strncpy(destination, source, destination_size - 1U); + destination[destination_size - 1U] = '\0'; +} + +static void board_demo_set_label_text(lv_obj_t *label, const char *text) +{ + if (rt_strcmp(lv_label_get_text(label), text) != 0) + { + lv_label_set_text(label, text); + } +} + +static lv_obj_t *board_demo_create_label(lv_obj_t *parent, const char *text, + lv_coord_t x, lv_coord_t y, + lv_coord_t width) +{ + lv_obj_t *label; + + label = lv_label_create(parent); + lv_label_set_text(label, text); + lv_label_set_long_mode(label, LV_LABEL_LONG_WRAP); + lv_obj_set_pos(label, x, y); + lv_obj_set_width(label, width); + lv_obj_set_style_text_color(label, COLOR_TEXT, 0); + return label; +} + +static lv_obj_t *board_demo_create_line(lv_obj_t *parent, const char *text, + lv_coord_t x, lv_coord_t y, + lv_coord_t width) +{ + lv_obj_t *label = board_demo_create_label(parent, text, x, y, width); + + lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_DOTS); + lv_obj_set_height(label, 22); + return label; +} + +static void board_demo_style_table(lv_obj_t *table) +{ + lv_obj_set_style_radius(table, 6, 0); + lv_obj_set_style_border_width(table, 1, 0); + lv_obj_set_style_border_color(table, COLOR_BORDER, 0); + lv_obj_set_style_bg_color(table, COLOR_SURFACE, 0); + lv_obj_set_style_pad_all(table, 0, 0); + lv_obj_set_style_pad_hor(table, 10, LV_PART_ITEMS); + lv_obj_set_style_pad_ver(table, 12, LV_PART_ITEMS); + lv_obj_set_style_border_color(table, COLOR_BORDER, LV_PART_ITEMS); + lv_obj_set_style_border_side(table, LV_BORDER_SIDE_BOTTOM, LV_PART_ITEMS); + lv_obj_set_style_bg_color(table, COLOR_ACCENT_SOFT, + LV_PART_ITEMS | LV_STATE_PRESSED); + lv_obj_set_scroll_dir(table, LV_DIR_VER); +} + +static lv_obj_t *board_demo_create_button(lv_obj_t *parent, const char *text, + lv_coord_t x, lv_coord_t y, + lv_coord_t width, lv_coord_t height, + lv_event_cb_t event_callback) +{ + lv_obj_t *button; + lv_obj_t *label; + + button = lv_button_create(parent); + lv_obj_set_pos(button, x, y); + lv_obj_set_size(button, width, height); + lv_obj_set_style_radius(button, 6, 0); + lv_obj_set_style_bg_color(button, COLOR_ACCENT, 0); + lv_obj_set_style_shadow_width(button, 0, 0); + lv_obj_set_style_pad_all(button, 6, 0); + lv_obj_set_style_text_color(button, lv_color_white(), 0); + if (event_callback != RT_NULL) + { + lv_obj_add_event_cb(button, event_callback, LV_EVENT_CLICKED, RT_NULL); + } + + label = lv_label_create(button); + lv_label_set_text(label, text); + lv_obj_set_width(label, lv_pct(100)); + lv_obj_set_height(label, 22); + lv_label_set_long_mode(label, LV_LABEL_LONG_MODE_DOTS); + lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER, 0); + lv_obj_center(label); + return button; +} + +static lv_obj_t *board_demo_create_page(enum board_demo_page_id page_id) +{ + lv_obj_t *page; + lv_obj_t *title; + + page = lv_obj_create(demo_screen); + lv_obj_set_pos(page, BOARD_DEMO_SIDEBAR_WIDTH, BOARD_DEMO_HEADER_HEIGHT); + lv_obj_set_size(page, BOARD_DEMO_CONTENT_WIDTH, BOARD_DEMO_CONTENT_HEIGHT); + lv_obj_set_style_bg_color(page, COLOR_PAGE, 0); + lv_obj_set_style_bg_opa(page, LV_OPA_COVER, 0); + lv_obj_set_style_border_width(page, 0, 0); + lv_obj_set_style_radius(page, 0, 0); + lv_obj_set_style_pad_all(page, 16, 0); + lv_obj_set_scroll_dir(page, LV_DIR_VER); + + title = board_demo_create_label(page, board_demo_page_names[page_id], + 0, 0, BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_font(title, &lv_font_montserrat_16, 0); + return page; +} + +static void board_demo_hide_keyboard(void) +{ + lv_keyboard_set_textarea(demo_keyboard, RT_NULL); + lv_obj_set_hidden(demo_keyboard, true); + lv_obj_set_height(demo_pages[demo_active_page], BOARD_DEMO_CONTENT_HEIGHT); + lv_obj_scroll_to_y(demo_pages[demo_active_page], 0, LV_ANIM_OFF); +} + +static void board_demo_keyboard_event(lv_event_t *event) +{ + lv_event_code_t code; + + code = lv_event_get_code(event); + if ((code == LV_EVENT_READY) || (code == LV_EVENT_CANCEL)) + { + board_demo_hide_keyboard(); + } +} + +static void board_demo_textarea_event(lv_event_t *event) +{ + lv_obj_t *textarea; + + if ((lv_event_get_code(event) != LV_EVENT_FOCUSED) && + (lv_event_get_code(event) != LV_EVENT_CLICKED)) + { + return; + } + + textarea = lv_event_get_target_obj(event); + lv_keyboard_set_textarea(demo_keyboard, textarea); + lv_obj_set_hidden(demo_keyboard, false); + lv_obj_move_foreground(demo_keyboard); + lv_obj_set_height(demo_pages[demo_active_page], + BOARD_DEMO_CONTENT_HEIGHT - BOARD_DEMO_KEYBOARD_HEIGHT); + lv_obj_update_layout(demo_pages[demo_active_page]); + lv_obj_scroll_to_view(textarea, LV_ANIM_OFF); +} + +static void board_demo_nav_event(lv_event_t *event) +{ + enum board_demo_page_id page_id; + + page_id = (enum board_demo_page_id)(rt_ubase_t)lv_event_get_user_data(event); + board_demo_show_page(page_id); +} + +static void board_demo_show_page(enum board_demo_page_id page_id) +{ + enum board_demo_page_id index; + + if (page_id >= BOARD_DEMO_PAGE_COUNT) + { + return; + } + + board_demo_hide_keyboard(); + demo_active_page = page_id; + for (index = BOARD_DEMO_PAGE_OVERVIEW; + index < BOARD_DEMO_PAGE_COUNT; index++) + { + if (index == page_id) + { + lv_obj_set_hidden(demo_pages[index], false); + lv_obj_set_style_bg_color(demo_nav_buttons[index], COLOR_NAV_ACTIVE, 0); + } + else + { + lv_obj_set_hidden(demo_pages[index], true); + lv_obj_set_style_bg_color(demo_nav_buttons[index], COLOR_NAV, 0); + } + } + + if (page_id == BOARD_DEMO_PAGE_FILES) + { + board_demo_files_request_path(demo_snapshot.fs_path[0] == '\0' ? + "/flash" : demo_snapshot.fs_path); + } +} + +static void board_demo_storage_source_event(lv_event_t *event) +{ + const char *path; + + path = (const char *)lv_event_get_user_data(event); + board_demo_files_request_path(path); +} + +static void board_demo_files_refresh_event(lv_event_t *event) +{ + RT_UNUSED(event); + board_demo_files_request_path(demo_snapshot.fs_path[0] == '\0' ? + "/flash" : demo_snapshot.fs_path); +} + +static void board_demo_files_up_event(lv_event_t *event) +{ + char path[BOARD_DEMO_FS_PATH_MAX]; + char *separator = RT_NULL; + char *cursor; + rt_size_t root_length; + int source; + + RT_UNUSED(event); + board_demo_copy_string(path, demo_snapshot.fs_path, sizeof(path)); + source = board_demo_fs_source(path); + if (source < 0) + { + return; + } + root_length = rt_strlen(board_demo_storage_roots[source]); + if (rt_strlen(path) <= root_length) + { + return; + } + + for (cursor = path; *cursor != '\0'; cursor++) + { + if (*cursor == '/') + { + separator = cursor; + } + } + if ((separator != RT_NULL) && + ((rt_size_t)(separator - path) >= root_length)) + { + *separator = '\0'; + board_demo_files_request_path(path); + } +} + +static void board_demo_files_table_event(lv_event_t *event) +{ + char path[BOARD_DEMO_FS_PATH_MAX]; + const struct board_demo_fs_entry *entry; + uint32_t row; + uint32_t column; + int length; + int result; + + RT_UNUSED(event); + lv_table_get_selected_cell(files_table, &row, &column); + RT_UNUSED(column); + if ((row == 0U) || (row > demo_snapshot.fs_entry_count)) + { + return; + } + + entry = &demo_snapshot.fs_entries[row - 1U]; + length = rt_snprintf(path, sizeof(path), "%s/%s", + demo_snapshot.fs_path, entry->name); + if ((length <= 0) || ((rt_size_t)length >= sizeof(path))) + { + return; + } + + if (entry->is_directory) + { + board_demo_files_request_path(path); + } + else + { + lv_label_set_text(files_preview_title, entry->name); + lv_label_set_text(files_preview_label, "Reading..."); + result = board_demo_request_file_preview(path); + if (result == RT_EOK) + { + result = board_demo_backend_get_snapshot(&demo_snapshot); + if (result == RT_EOK) + { + board_demo_update_files(); + } + } + if (result != RT_EOK) + { + lv_label_set_text(files_preview_label, "Cannot read file preview"); + LOG_E("cannot read file preview for %s: %d", path, result); + } + } +} + +static int board_demo_hex_digit(char character) +{ + if ((character >= '0') && (character <= '9')) + { + return character - '0'; + } + if ((character >= 'a') && (character <= 'f')) + { + return character - 'a' + 10; + } + if ((character >= 'A') && (character <= 'F')) + { + return character - 'A' + 10; + } + return -1; +} + +static int board_demo_parse_can_data(const char *text, rt_uint8_t data[8], + rt_uint8_t *length) +{ + int high; + int low; + rt_uint8_t count = 0U; + + while (*text != '\0') + { + while ((*text == ' ') || (*text == ',') || (*text == ':') || + (*text == '-')) + { + text++; + } + if (*text == '\0') + { + break; + } + if (count >= 8U) + { + return -RT_EFULL; + } + + high = board_demo_hex_digit(*text++); + if (high < 0) + { + return -RT_EINVAL; + } + low = board_demo_hex_digit(*text++); + if (low < 0) + { + return -RT_EINVAL; + } + data[count++] = (rt_uint8_t)((high << 4) | low); + + if ((*text != '\0') && (*text != ' ') && (*text != ',') && + (*text != ':') && (*text != '-')) + { + return -RT_EINVAL; + } + } + + *length = count; + return RT_EOK; +} + +static void board_demo_can_baud_event(lv_event_t *event) +{ + static const rt_uint32_t baud_rates[] = + { + CAN125kBaud, CAN250kBaud, CAN500kBaud, CAN1MBaud, + }; + uint32_t selected; + + RT_UNUSED(event); + selected = lv_dropdown_get_selected(can_baud_dropdown); + if (selected < sizeof(baud_rates) / sizeof(baud_rates[0])) + { + board_demo_request_can_baud(baud_rates[selected]); + } +} + +static void board_demo_can_send_event(lv_event_t *event) +{ + const char *id_text; + const char *data_text; + char *end; + rt_uint32_t id; + rt_uint8_t data[8]; + rt_uint8_t length; + rt_bool_t extended; + int result; + + RT_UNUSED(event); + id_text = lv_textarea_get_text(can_id_textarea); + data_text = lv_textarea_get_text(can_data_textarea); + id = (rt_uint32_t)strtoul(id_text, &end, 16); + if ((id_text[0] == '\0') || (*end != '\0')) + { + lv_label_set_text(can_status_label, "Invalid CAN identifier"); + return; + } + + result = board_demo_parse_can_data(data_text, data, &length); + if (result != RT_EOK) + { + lv_label_set_text(can_status_label, "Use hexadecimal byte pairs, up to 8 bytes"); + return; + } + + extended = lv_obj_has_state(can_extended_switch, LV_STATE_CHECKED) ? + RT_TRUE : RT_FALSE; + result = board_demo_request_can_send(id, extended, data, length); + if (result != RT_EOK) + { + lv_label_set_text(can_status_label, "CAN frame is outside the valid range"); + } +} + +static void board_demo_mqtt_start_event(lv_event_t *event) +{ + char status[64]; + int result; + + RT_UNUSED(event); + result = board_demo_request_mqtt_start(); + if (result == RT_EOK) + { + lv_label_set_text(mqtt_status_label, "MQTT worker started"); + LOG_I("MQTT start command accepted from the UI"); + } + else if (result == -RT_EBUSY) + { + lv_label_set_text(mqtt_status_label, "MQTT is already running"); + } + else + { + rt_snprintf(status, sizeof(status), "MQTT start request failed: %d", result); + lv_label_set_text(mqtt_status_label, status); + LOG_E("cannot start MQTT: %d", result); + } +} + +static void board_demo_mqtt_stop_event(lv_event_t *event) +{ + char status[64]; + int result; + + RT_UNUSED(event); + result = board_demo_request_mqtt_stop(); + if (result == RT_EOK) + { + lv_label_set_text(mqtt_status_label, "MQTT stopping"); + LOG_I("MQTT stop command accepted from the UI"); + } + else + { + rt_snprintf(status, sizeof(status), "MQTT stop request failed: %d", result); + lv_label_set_text(mqtt_status_label, status); + LOG_E("cannot stop MQTT: %d", result); + } +} + +static void board_demo_mqtt_publish_event(lv_event_t *event) +{ + const char *topic; + const char *payload; + char status[64]; + int result; + + RT_UNUSED(event); + topic = lv_textarea_get_text(mqtt_topic_textarea); + payload = lv_textarea_get_text(mqtt_payload_textarea); + result = board_demo_request_mqtt_publish(topic, payload); + if (result == RT_EOK) + { + lv_label_set_text(mqtt_status_label, "MQTT publish requested"); + LOG_I("MQTT publish requested from the UI: %s", topic); + } + else if ((topic[0] == '\0') || (payload[0] == '\0')) + { + lv_label_set_text(mqtt_status_label, "Topic and payload are required"); + } + else + { + rt_snprintf(status, sizeof(status), "MQTT publish request failed: %d", result); + lv_label_set_text(mqtt_status_label, status); + LOG_E("cannot publish MQTT message: %d", result); + } +} + +static void board_demo_pwm_slider_event(lv_event_t *event) +{ + lv_obj_t *slider; + lv_obj_t *value_label; + char text[16]; + + slider = lv_event_get_target_obj(event); + value_label = (lv_obj_t *)lv_event_get_user_data(event); + rt_snprintf(text, sizeof(text), "%d%%", (int)lv_slider_get_value(slider)); + lv_label_set_text(value_label, text); +} + +static void board_demo_brightness_event(lv_event_t *event) +{ + lv_obj_t *slider; + rt_uint8_t brightness; + char text[16]; + + slider = lv_event_get_target_obj(event); + brightness = (rt_uint8_t)lv_slider_get_value(slider); + rt_snprintf(text, sizeof(text), "%u%%", brightness); + lv_label_set_text(brightness_value_label, text); + + if (board_demo_lcd_device == RT_NULL) + { + board_demo_lcd_device = rt_device_find(BOARD_DEMO_LCD_DEVICE_NAME); + } + if ((board_demo_lcd_device == RT_NULL) || + (rt_device_control(board_demo_lcd_device, + RTGRAPHIC_CTRL_SET_BRIGHTNESS, + &brightness) != RT_EOK)) + { + LOG_E("cannot set display brightness to %u%%", brightness); + } +} + +static void board_demo_pwm_apply_event(lv_event_t *event) +{ + static const rt_uint32_t frequencies[] = {1000U, 10000U, 20000U}; + uint32_t selected; + + RT_UNUSED(event); + selected = lv_dropdown_get_selected(pwm_frequency_dropdown); + if (selected >= sizeof(frequencies) / sizeof(frequencies[0])) + { + return; + } + + board_demo_request_pwm(frequencies[selected], + lv_obj_has_state(pwm2_switch, LV_STATE_CHECKED), + (rt_uint8_t)lv_slider_get_value(pwm2_slider), + lv_obj_has_state(pwm30_switch, LV_STATE_CHECKED), + (rt_uint8_t)lv_slider_get_value(pwm30_slider)); +} + +static void board_demo_camera_open_event(lv_event_t *event) +{ + RT_UNUSED(event); +#ifdef BSP_USING_OV7670_PREVIEW + if (ov7670_preview_request_start() != RT_EOK) + { + lv_label_set_text(camera_status_label, "Camera preview is not ready"); + } +#endif +} + +static void board_demo_camera_stop_event(lv_event_t *event) +{ + RT_UNUSED(event); +#ifdef BSP_USING_OV7670_PREVIEW + ov7670_preview_request_stop(); +#endif +} + +static void board_demo_bus_request_feedback(lv_obj_t *status_label, + lv_obj_t *log_label, int result) +{ + const char *reason; + + if (result == RT_EOK) + { + if (board_demo_backend_get_snapshot(&demo_snapshot) == RT_EOK) + { + board_demo_update_runtime(); + } + return; + } + + reason = result == -RT_ENOSYS ? "Feature disabled" : + (result == -RT_EBUSY ? "Test already running" : "Request failed"); + lv_label_set_text_fmt(status_label, "%s: %d", reason, result); + lv_obj_set_style_text_color(status_label, COLOR_DANGER, 0); + lv_label_set_text_fmt(log_label, "FAIL %s: %d", reason, result); + LOG_E("bus test request: %s (%d)", reason, result); +} + +static void board_demo_spi_run_event(lv_event_t *event) +{ + static const rt_uint32_t frequencies[] = {1000000U, 5000000U, 10000000U}; + static const rt_uint16_t lengths[] = {32U, 64U, 128U, 256U}; + uint32_t frequency_index; + uint32_t length_index; + int result; + + RT_UNUSED(event); + frequency_index = lv_dropdown_get_selected(spi_frequency_dropdown); + length_index = lv_dropdown_get_selected(spi_length_dropdown); + if ((frequency_index < sizeof(frequencies) / sizeof(frequencies[0])) && + (length_index < sizeof(lengths) / sizeof(lengths[0]))) + { + result = board_demo_request_spi_loopback(frequencies[frequency_index], + lengths[length_index]); + board_demo_bus_request_feedback(spi_status_label, spi_log_label, result); + } +} + +static void board_demo_i2c_scan_event(lv_event_t *event) +{ + int result; + + RT_UNUSED(event); + result = board_demo_request_i2c_scan(BOARD_DEMO_I2C_BUS_NAME); + board_demo_bus_request_feedback(i2c_status_label, i2c_log_label, result); +} + +static void board_demo_create_sidebar(void) +{ + lv_obj_t *sidebar; + lv_obj_t *brand; + lv_obj_t *button; + lv_obj_t *label; + enum board_demo_page_id index; + + sidebar = lv_obj_create(demo_screen); + lv_obj_set_pos(sidebar, 0, 0); + lv_obj_set_size(sidebar, BOARD_DEMO_SIDEBAR_WIDTH, BOARD_DEMO_HEIGHT); + lv_obj_set_style_bg_color(sidebar, COLOR_NAV, 0); + lv_obj_set_style_bg_opa(sidebar, LV_OPA_COVER, 0); + lv_obj_set_style_border_width(sidebar, 0, 0); + lv_obj_set_style_radius(sidebar, 0, 0); + lv_obj_set_style_pad_all(sidebar, 0, 0); + lv_obj_set_scrollable(sidebar, false); + + brand = lv_label_create(sidebar); + lv_label_set_text(brand, "Gino"); + lv_obj_set_style_text_color(brand, lv_color_white(), 0); + lv_obj_set_style_text_font(brand, &lv_font_montserrat_16, 0); + lv_obj_align(brand, LV_ALIGN_TOP_MID, 0, 24); + + for (index = BOARD_DEMO_PAGE_OVERVIEW; + index < BOARD_DEMO_PAGE_COUNT; index++) + { + button = lv_button_create(sidebar); + lv_obj_set_pos(button, 8, 82 + (lv_coord_t)index * 70); + lv_obj_set_size(button, BOARD_DEMO_SIDEBAR_WIDTH - 16, 62); + lv_obj_set_style_radius(button, 6, 0); + lv_obj_set_style_pad_all(button, 0, 0); + lv_obj_set_style_bg_color(button, COLOR_NAV, 0); + lv_obj_set_style_shadow_width(button, 0, 0); + lv_obj_add_event_cb(button, board_demo_nav_event, LV_EVENT_CLICKED, + (void *)(rt_ubase_t)index); + demo_nav_buttons[index] = button; + + label = lv_label_create(button); + lv_label_set_text(label, board_demo_page_symbols[index]); + lv_obj_set_style_text_color(label, lv_color_white(), 0); + lv_obj_align(label, LV_ALIGN_TOP_MID, 0, 9); + label = lv_label_create(button); + lv_label_set_text(label, board_demo_page_names[index]); + lv_obj_set_style_text_color(label, lv_color_white(), 0); + lv_obj_align(label, LV_ALIGN_BOTTOM_MID, 0, -9); + } + + label = lv_label_create(sidebar); + lv_label_set_text(label, "RT-Thread"); + lv_obj_set_style_text_color(label, lv_color_hex(0xAAB6BF), 0); + lv_obj_align(label, LV_ALIGN_BOTTOM_MID, 0, -18); +} + +static void board_demo_create_header(void) +{ + lv_obj_t *header; + + header = lv_obj_create(demo_screen); + lv_obj_set_pos(header, BOARD_DEMO_SIDEBAR_WIDTH, 0); + lv_obj_set_size(header, BOARD_DEMO_CONTENT_WIDTH, BOARD_DEMO_HEADER_HEIGHT); + lv_obj_set_style_bg_color(header, COLOR_SURFACE, 0); + lv_obj_set_style_bg_opa(header, LV_OPA_COVER, 0); + lv_obj_set_style_border_width(header, 1, 0); + lv_obj_set_style_border_color(header, COLOR_BORDER, 0); + lv_obj_set_style_border_side(header, LV_BORDER_SIDE_BOTTOM, 0); + lv_obj_set_style_radius(header, 0, 0); + lv_obj_set_style_pad_all(header, 0, 0); + lv_obj_set_scrollable(header, false); + + demo_header_title = board_demo_create_label(header, "GD32H77D", 16, 23, 180); + lv_obj_set_style_text_font(demo_header_title, &lv_font_montserrat_16, 0); + + demo_header_status = board_demo_create_label(header, "Starting services", + 200, 12, BOARD_DEMO_CONTENT_WIDTH - 216); + lv_obj_set_style_text_align(demo_header_status, LV_TEXT_ALIGN_RIGHT, 0); + lv_obj_set_style_text_color(demo_header_status, COLOR_MUTED, 0); +} + +static void board_demo_build_overview_page(void) +{ + lv_obj_t *page; + lv_obj_t *button; + lv_obj_t *label; + enum board_demo_page_id index; + + page = board_demo_create_page(BOARD_DEMO_PAGE_OVERVIEW); + demo_pages[BOARD_DEMO_PAGE_OVERVIEW] = page; + + for (index = BOARD_DEMO_PAGE_FILES; index < BOARD_DEMO_PAGE_COUNT; index++) + { + button = lv_button_create(page); + lv_obj_set_pos(button, 0, 40 + (index - BOARD_DEMO_PAGE_FILES) * 76); + lv_obj_set_size(button, BOARD_DEMO_PAGE_INNER_WIDTH, 66); + lv_obj_set_style_radius(button, 6, 0); + lv_obj_set_style_pad_all(button, 0, 0); + lv_obj_set_style_shadow_width(button, 0, 0); + lv_obj_set_style_bg_color(button, COLOR_SURFACE, 0); + lv_obj_add_event_cb(button, board_demo_nav_event, LV_EVENT_CLICKED, + (void *)(rt_ubase_t)index); + label = board_demo_create_label(button, board_demo_page_symbols[index], + 14, 24, 26); + lv_obj_set_style_text_color(label, + (index == BOARD_DEMO_PAGE_CAN || index == BOARD_DEMO_PAGE_SPI || + index == BOARD_DEMO_PAGE_I2C) ? COLOR_INFO : COLOR_ACCENT, 0); + board_demo_create_line(button, board_demo_page_names[index], 52, 10, 200); + overview_status[index] = board_demo_create_line(button, "-", 52, 36, + BOARD_DEMO_PAGE_INNER_WIDTH - 98); + lv_obj_set_style_text_color(overview_status[index], COLOR_MUTED, 0); + label = board_demo_create_label(button, LV_SYMBOL_RIGHT, + BOARD_DEMO_PAGE_INNER_WIDTH - 30, 24, 18); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + } + + overview_uptime = board_demo_create_line(page, "Uptime 0 s", 0, 592, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(overview_uptime, COLOR_MUTED, 0); +} + +static void board_demo_build_files_page(void) +{ + lv_obj_t *page; + lv_obj_t *preview_panel; + lv_obj_t *button; + lv_obj_t *label; + int source; + static const char *const source_names[BOARD_DEMO_STORAGE_COUNT] = + { + LV_SYMBOL_DRIVE " Flash", LV_SYMBOL_SD_CARD " SD card", LV_SYMBOL_USB " USB Host", + }; + + page = board_demo_create_page(BOARD_DEMO_PAGE_FILES); + demo_pages[BOARD_DEMO_PAGE_FILES] = page; + + for (source = 0; source < BOARD_DEMO_STORAGE_COUNT; source++) + { + button = lv_button_create(page); + lv_obj_set_pos(button, source * 188, 38); + lv_obj_set_size(button, 180, 64); + lv_obj_set_style_radius(button, 6, 0); + lv_obj_set_style_pad_all(button, 0, 0); + lv_obj_set_style_shadow_width(button, 0, 0); + lv_obj_set_style_border_width(button, 1, 0); + lv_obj_set_style_border_color(button, COLOR_BORDER, 0); + lv_obj_set_style_bg_color(button, COLOR_SURFACE, 0); + lv_obj_add_event_cb(button, board_demo_storage_source_event, + LV_EVENT_CLICKED, (void *)board_demo_storage_roots[source]); + files_source_buttons[source] = button; + label = board_demo_create_line(button, source_names[source], 12, 9, 156); + lv_obj_set_style_text_color(label, COLOR_TEXT, 0); + files_source_status[source] = board_demo_create_line(button, "Not mounted", + 12, 35, 156); + lv_obj_set_style_text_color(files_source_status[source], COLOR_MUTED, 0); + } + files_up_button = board_demo_create_button(page, LV_SYMBOL_UP, + 456, 114, 44, 44, + board_demo_files_up_event); + board_demo_create_button(page, LV_SYMBOL_REFRESH, 512, 114, 44, 44, + board_demo_files_refresh_event); + + files_path_label = board_demo_create_line(page, "/flash", 0, 124, 440); + files_status_label = board_demo_create_line(page, "Not scanned", 0, 168, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(files_status_label, COLOR_MUTED, 0); + + files_table = lv_table_create(page); + lv_obj_set_pos(files_table, 0, 198); + lv_obj_set_size(files_table, BOARD_DEMO_PAGE_INNER_WIDTH, 228); + board_demo_style_table(files_table); + lv_table_set_column_count(files_table, 3U); + lv_table_set_row_count(files_table, 1U); + lv_table_set_column_width(files_table, 0U, 44); + lv_table_set_column_width(files_table, 1U, 398); + lv_table_set_column_width(files_table, 2U, 112); + lv_table_set_cell_value(files_table, 0U, 0U, ""); + lv_table_set_cell_value(files_table, 0U, 1U, "Name"); + lv_table_set_cell_value(files_table, 0U, 2U, "Size"); + lv_obj_add_event_cb(files_table, board_demo_files_table_event, + LV_EVENT_VALUE_CHANGED, RT_NULL); + + files_empty_label = board_demo_create_line(page, "No files", 16, 300, + BOARD_DEMO_PAGE_INNER_WIDTH - 32); + lv_obj_set_style_text_align(files_empty_label, LV_TEXT_ALIGN_CENTER, 0); + lv_obj_set_style_text_color(files_empty_label, COLOR_MUTED, 0); + lv_obj_set_hidden(files_empty_label, true); + + files_preview_title = board_demo_create_line(page, "File preview", 0, 440, + BOARD_DEMO_PAGE_INNER_WIDTH); + preview_panel = lv_obj_create(page); + files_preview_panel = preview_panel; + lv_obj_set_pos(preview_panel, 0, 472); + lv_obj_set_size(preview_panel, BOARD_DEMO_PAGE_INNER_WIDTH, 144); + lv_obj_set_style_radius(preview_panel, 6, 0); + lv_obj_set_style_border_width(preview_panel, 1, 0); + lv_obj_set_style_border_color(preview_panel, COLOR_BORDER, 0); + lv_obj_set_style_bg_color(preview_panel, COLOR_SURFACE, 0); + lv_obj_set_style_pad_all(preview_panel, 10, 0); + lv_obj_set_scroll_dir(preview_panel, LV_DIR_VER); + + files_preview_label = board_demo_create_label(preview_panel, + "No file selected", + 0, 0, BOARD_DEMO_PAGE_INNER_WIDTH - 24); +} + +static void board_demo_build_can_page(void) +{ + lv_obj_t *page; + lv_obj_t *label; + + page = board_demo_create_page(BOARD_DEMO_PAGE_CAN); + demo_pages[BOARD_DEMO_PAGE_CAN] = page; + + can_status_label = board_demo_create_line(page, "CAN initializing", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(can_status_label, COLOR_MUTED, 0); + + can_baud_dropdown = lv_dropdown_create(page); + lv_obj_set_pos(can_baud_dropdown, 0, 68); + lv_obj_set_size(can_baud_dropdown, 150, 42); + lv_dropdown_set_options(can_baud_dropdown, "125 kbit/s\n250 kbit/s\n500 kbit/s\n1 Mbit/s"); + lv_dropdown_set_selected(can_baud_dropdown, 3U); + board_demo_create_button(page, "Apply", 162, 68, 82, 42, + board_demo_can_baud_event); + + label = board_demo_create_label(page, "ID", 0, 122, 90); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + can_id_textarea = lv_textarea_create(page); + lv_obj_set_pos(can_id_textarea, 0, 142); + lv_obj_set_size(can_id_textarea, 120, 44); + lv_textarea_set_one_line(can_id_textarea, true); + lv_textarea_set_max_length(can_id_textarea, 8U); + lv_textarea_set_text(can_id_textarea, "321"); + lv_obj_add_event_cb(can_id_textarea, board_demo_textarea_event, + LV_EVENT_ALL, RT_NULL); + + label = board_demo_create_label(page, "Data", 134, 122, 240); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + can_data_textarea = lv_textarea_create(page); + lv_obj_set_pos(can_data_textarea, 134, 142); + lv_obj_set_size(can_data_textarea, 270, 44); + lv_textarea_set_one_line(can_data_textarea, true); + lv_textarea_set_max_length(can_data_textarea, 32U); + lv_textarea_set_text(can_data_textarea, "01 02 03 04"); + lv_obj_add_event_cb(can_data_textarea, board_demo_textarea_event, + LV_EVENT_ALL, RT_NULL); + + can_extended_switch = lv_switch_create(page); + lv_obj_set_pos(can_extended_switch, 424, 147); + lv_obj_set_size(can_extended_switch, 48, 26); + label = board_demo_create_label(page, "EXT", 484, 150, 60); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + board_demo_create_button(page, LV_SYMBOL_UPLOAD " Send", 444, 68, 112, 42, + board_demo_can_send_event); + + can_table = lv_table_create(page); + lv_obj_set_pos(can_table, 0, 204); + lv_obj_set_size(can_table, BOARD_DEMO_PAGE_INNER_WIDTH, 412); + board_demo_style_table(can_table); + lv_table_set_column_count(can_table, 4U); + lv_table_set_row_count(can_table, 1U); + lv_table_set_column_width(can_table, 0U, 52); + lv_table_set_column_width(can_table, 1U, 110); + lv_table_set_column_width(can_table, 2U, 52); + lv_table_set_column_width(can_table, 3U, 340); + lv_table_set_cell_value(can_table, 0U, 0U, "Dir"); + lv_table_set_cell_value(can_table, 0U, 1U, "ID"); + lv_table_set_cell_value(can_table, 0U, 2U, "Len"); + lv_table_set_cell_value(can_table, 0U, 3U, "Data"); +} + +static void board_demo_build_mqtt_page(void) +{ + lv_obj_t *page; + lv_obj_t *label; + lv_obj_t *rx_panel; + + page = board_demo_create_page(BOARD_DEMO_PAGE_MQTT); + demo_pages[BOARD_DEMO_PAGE_MQTT] = page; + + mqtt_status_label = board_demo_create_line(page, "MQTT stopped", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(mqtt_status_label, COLOR_MUTED, 0); + + label = board_demo_create_line(page, "Broker: " BSP_GD32VW553_MQTT_HOST, + 0, 76, 326); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + label = board_demo_create_line(page, "Subscribe: " BSP_GD32VW553_MQTT_SUB_TOPIC, + 0, 116, BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + board_demo_create_button(page, LV_SYMBOL_PLAY " Start", 344, 68, 100, 40, + board_demo_mqtt_start_event); + board_demo_create_button(page, LV_SYMBOL_STOP " Stop", 456, 68, 100, 40, + board_demo_mqtt_stop_event); + + label = board_demo_create_label(page, "Publish topic", 0, 158, 200); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + mqtt_topic_textarea = lv_textarea_create(page); + lv_obj_set_pos(mqtt_topic_textarea, 0, 184); + lv_obj_set_size(mqtt_topic_textarea, BOARD_DEMO_PAGE_INNER_WIDTH, 44); + lv_textarea_set_one_line(mqtt_topic_textarea, true); + lv_textarea_set_max_length(mqtt_topic_textarea, BOARD_DEMO_MQTT_TOPIC_MAX - 1U); + lv_textarea_set_text(mqtt_topic_textarea, BSP_GD32VW553_MQTT_PUB_TOPIC); + lv_obj_add_event_cb(mqtt_topic_textarea, board_demo_textarea_event, + LV_EVENT_ALL, RT_NULL); + + label = board_demo_create_label(page, "Payload", 0, 244, 200); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + mqtt_payload_textarea = lv_textarea_create(page); + lv_obj_set_pos(mqtt_payload_textarea, 0, 270); + lv_obj_set_size(mqtt_payload_textarea, BOARD_DEMO_PAGE_INNER_WIDTH, 88); + lv_textarea_set_max_length(mqtt_payload_textarea, + BOARD_DEMO_MQTT_PAYLOAD_MAX - 1U); + lv_textarea_set_text(mqtt_payload_textarea, "hello from GD32H77D"); + lv_obj_add_event_cb(mqtt_payload_textarea, board_demo_textarea_event, + LV_EVENT_ALL, RT_NULL); + board_demo_create_button(page, LV_SYMBOL_UPLOAD " Publish", 418, 372, 138, 44, + board_demo_mqtt_publish_event); + + label = board_demo_create_label(page, "Last received topic", 0, 436, 240); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + mqtt_rx_topic_label = board_demo_create_line(page, "-", 0, 464, + BOARD_DEMO_PAGE_INNER_WIDTH); + label = board_demo_create_label(page, "Last received payload", 0, 500, 240); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + rx_panel = lv_obj_create(page); + lv_obj_set_pos(rx_panel, 0, 528); + lv_obj_set_size(rx_panel, BOARD_DEMO_PAGE_INNER_WIDTH, 88); + lv_obj_set_style_radius(rx_panel, 6, 0); + lv_obj_set_style_pad_all(rx_panel, 10, 0); + lv_obj_set_style_border_width(rx_panel, 1, 0); + lv_obj_set_style_border_color(rx_panel, COLOR_BORDER, 0); + lv_obj_set_scroll_dir(rx_panel, LV_DIR_VER); + mqtt_rx_payload_label = board_demo_create_label(rx_panel, "-", 0, 0, + BOARD_DEMO_PAGE_INNER_WIDTH - 24); +} + +static void board_demo_build_pwm_page(void) +{ + lv_obj_t *page; + lv_obj_t *label; + rt_uint8_t brightness = 100U; + char brightness_text[16]; + + page = board_demo_create_page(BOARD_DEMO_PAGE_PWM); + demo_pages[BOARD_DEMO_PAGE_PWM] = page; + + pwm_status_label = board_demo_create_line(page, "PWM idle", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(pwm_status_label, COLOR_MUTED, 0); + + label = board_demo_create_label(page, "Display brightness", 0, 78, 200); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + board_demo_lcd_device = rt_device_find(BOARD_DEMO_LCD_DEVICE_NAME); + if (board_demo_lcd_device != RT_NULL) + { + (void)rt_device_control(board_demo_lcd_device, + RTGRAPHIC_CTRL_GET_BRIGHTNESS, + &brightness); + } + rt_snprintf(brightness_text, sizeof(brightness_text), "%u%%", brightness); + brightness_value_label = board_demo_create_label(page, brightness_text, + 470, 78, 60); + brightness_slider = lv_slider_create(page); + lv_obj_set_pos(brightness_slider, 0, 112); + lv_obj_set_size(brightness_slider, 450, 18); + lv_slider_set_range(brightness_slider, 0, 100); + lv_slider_set_value(brightness_slider, brightness, LV_ANIM_OFF); + lv_obj_add_event_cb(brightness_slider, board_demo_brightness_event, + LV_EVENT_VALUE_CHANGED, RT_NULL); + + label = board_demo_create_label(page, "Output frequency", 0, 154, 150); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + pwm_frequency_dropdown = lv_dropdown_create(page); + lv_obj_set_pos(pwm_frequency_dropdown, 0, 178); + lv_obj_set_size(pwm_frequency_dropdown, 170, 44); + lv_dropdown_set_options(pwm_frequency_dropdown, "1 kHz\n10 kHz\n20 kHz"); + + label = board_demo_create_label(page, "PWM2 channel 2", 0, 250, 180); + pwm2_switch = lv_switch_create(page); + lv_obj_set_pos(pwm2_switch, 200, 244); + lv_obj_set_size(pwm2_switch, 48, 26); + pwm2_slider = lv_slider_create(page); + lv_obj_set_pos(pwm2_slider, 0, 288); + lv_obj_set_size(pwm2_slider, 450, 18); + lv_slider_set_range(pwm2_slider, 0, 100); + lv_slider_set_value(pwm2_slider, 50, LV_ANIM_OFF); + pwm2_value_label = board_demo_create_label(page, "50%", 470, 279, 60); + lv_obj_add_event_cb(pwm2_slider, board_demo_pwm_slider_event, + LV_EVENT_VALUE_CHANGED, pwm2_value_label); + + label = board_demo_create_label(page, "PWM30 channel 3", 0, 346, 180); + pwm30_switch = lv_switch_create(page); + lv_obj_set_pos(pwm30_switch, 200, 340); + lv_obj_set_size(pwm30_switch, 48, 26); + pwm30_slider = lv_slider_create(page); + lv_obj_set_pos(pwm30_slider, 0, 384); + lv_obj_set_size(pwm30_slider, 450, 18); + lv_slider_set_range(pwm30_slider, 0, 100); + lv_slider_set_value(pwm30_slider, 50, LV_ANIM_OFF); + pwm30_value_label = board_demo_create_label(page, "50%", 470, 375, 60); + lv_obj_add_event_cb(pwm30_slider, board_demo_pwm_slider_event, + LV_EVENT_VALUE_CHANGED, pwm30_value_label); + + board_demo_create_button(page, LV_SYMBOL_OK " Apply outputs", 0, 440, 160, 46, + board_demo_pwm_apply_event); +} + +static void board_demo_build_camera_page(void) +{ + lv_obj_t *page; + lv_obj_t *preview_panel; + lv_obj_t *icon; + + page = board_demo_create_page(BOARD_DEMO_PAGE_CAMERA); + demo_pages[BOARD_DEMO_PAGE_CAMERA] = page; + + camera_status_label = board_demo_create_line(page, "Camera idle", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(camera_status_label, COLOR_MUTED, 0); + + preview_panel = lv_obj_create(page); + lv_obj_set_pos(preview_panel, 0, 76); + lv_obj_set_size(preview_panel, BOARD_DEMO_PAGE_INNER_WIDTH, 390); + lv_obj_set_style_bg_color(preview_panel, lv_color_black(), 0); + lv_obj_set_style_border_width(preview_panel, 0, 0); + lv_obj_set_style_radius(preview_panel, 4, 0); + lv_obj_set_scrollable(preview_panel, false); + icon = lv_label_create(preview_panel); + lv_label_set_text(icon, LV_SYMBOL_IMAGE); + lv_obj_set_style_text_color(icon, lv_color_hex(0xAAB6BF), 0); + lv_obj_set_style_text_font(icon, &lv_font_montserrat_16, 0); + lv_obj_center(icon); + + camera_counter_label = board_demo_create_label( + page, "Captured 0 | Shown 0 | Dropped 0 | Errors 0", + 0, 486, BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(camera_counter_label, COLOR_MUTED, 0); + board_demo_create_button(page, LV_SYMBOL_PLAY " Open preview", 0, 530, 150, 46, + board_demo_camera_open_event); + board_demo_create_button(page, LV_SYMBOL_STOP " Stop", 162, 530, 100, 46, + board_demo_camera_stop_event); +} + +static lv_obj_t *board_demo_create_bus_log(lv_obj_t *page, const char *text, + lv_coord_t y, lv_coord_t height) +{ + lv_obj_t *panel; + + panel = lv_obj_create(page); + lv_obj_set_pos(panel, 0, y); + lv_obj_set_size(panel, BOARD_DEMO_PAGE_INNER_WIDTH, height); + lv_obj_set_style_bg_color(panel, COLOR_SURFACE, 0); + lv_obj_set_style_border_color(panel, COLOR_BORDER, 0); + lv_obj_set_style_radius(panel, 6, 0); + lv_obj_set_style_pad_all(panel, 12, 0); + lv_obj_set_scroll_dir(panel, LV_DIR_VER); + return board_demo_create_label(panel, text, 0, 0, + BOARD_DEMO_PAGE_INNER_WIDTH - 28); +} + +static void board_demo_build_spi_page(void) +{ + lv_obj_t *page; + lv_obj_t *label; + + page = board_demo_create_page(BOARD_DEMO_PAGE_SPI); + demo_pages[BOARD_DEMO_PAGE_SPI] = page; + + spi_status_label = board_demo_create_line(page, "SPI loopback idle", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(spi_status_label, COLOR_MUTED, 0); + + label = board_demo_create_label(page, "Clock", 0, 90, 150); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + spi_frequency_dropdown = lv_dropdown_create(page); + lv_obj_set_pos(spi_frequency_dropdown, 0, 116); + lv_obj_set_size(spi_frequency_dropdown, 170, 44); + lv_dropdown_set_options(spi_frequency_dropdown, "1 MHz\n5 MHz\n10 MHz"); + + label = board_demo_create_label(page, "Transfer length", 200, 90, 150); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + spi_length_dropdown = lv_dropdown_create(page); + lv_obj_set_pos(spi_length_dropdown, 200, 116); + lv_obj_set_size(spi_length_dropdown, 170, 44); + lv_dropdown_set_options(spi_length_dropdown, "32 bytes\n64 bytes\n128 bytes\n256 bytes"); + + spi_run_button = board_demo_create_button(page, LV_SYMBOL_PLAY " Run loopback", + 0, 182, 160, 46, board_demo_spi_run_event); + label = board_demo_create_line(page, "SPI3 | SCK PE12 | MOSI PF1 - MISO PF0", + 0, 244, BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + label = board_demo_create_line(page, "Loopback log", 0, 278, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + spi_log_label = board_demo_create_bus_log(page, "No loopback results", 308, 304); +} + +static void board_demo_build_i2c_page(void) +{ + lv_obj_t *page; + lv_obj_t *label; + rt_uint16_t row; + rt_uint16_t column; + + page = board_demo_create_page(BOARD_DEMO_PAGE_I2C); + demo_pages[BOARD_DEMO_PAGE_I2C] = page; + + i2c_status_label = board_demo_create_line(page, "I2C scan idle", 0, 36, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(i2c_status_label, COLOR_MUTED, 0); + + label = board_demo_create_label(page, "External bus", 0, 86, 170); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + board_demo_create_line(page, BOARD_DEMO_I2C_BUS_NAME, 0, 122, 170); + i2c_scan_button = board_demo_create_button(page, LV_SYMBOL_REFRESH " Scan", + 190, 112, 112, 44, board_demo_i2c_scan_event); + + label = board_demo_create_line(page, "Address map", 0, 180, 240); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + i2c_result_table = lv_table_create(page); + lv_obj_set_pos(i2c_result_table, 0, 210); + lv_obj_set_size(i2c_result_table, BOARD_DEMO_PAGE_INNER_WIDTH, 278); + board_demo_style_table(i2c_result_table); + lv_obj_set_style_pad_hor(i2c_result_table, 3, LV_PART_ITEMS); + lv_obj_set_style_pad_ver(i2c_result_table, 4, LV_PART_ITEMS); + lv_obj_set_style_text_align(i2c_result_table, LV_TEXT_ALIGN_CENTER, LV_PART_ITEMS); + lv_table_set_row_count(i2c_result_table, 9U); + lv_table_set_column_count(i2c_result_table, 17U); + lv_table_set_column_width(i2c_result_table, 0U, 42); + lv_table_set_cell_value(i2c_result_table, 0U, 0U, ""); + for (column = 1U; column <= 16U; column++) + { + lv_table_set_column_width(i2c_result_table, column, 32); + lv_table_set_cell_value_fmt(i2c_result_table, 0U, column, "%02X", column - 1U); + } + for (row = 1U; row <= 8U; row++) + { + lv_table_set_cell_value_fmt(i2c_result_table, row, 0U, "%02X:", (row - 1U) * 16U); + for (column = 1U; column <= 16U; column++) + { + lv_table_set_cell_value(i2c_result_table, row, column, ""); + } + } + label = board_demo_create_line(page, "Scan log", 0, 504, + BOARD_DEMO_PAGE_INNER_WIDTH); + lv_obj_set_style_text_color(label, COLOR_MUTED, 0); + i2c_log_label = board_demo_create_bus_log(page, "No scan activity", 534, 78); +} + +static void board_demo_update_storage(void) +{ + rt_uint8_t mounts; + rt_uint8_t changed; + int source; + + if (storage_polled && + (lv_tick_elaps(storage_poll_tick) < BOARD_DEMO_STORAGE_POLL_MS)) + { + return; + } + storage_poll_tick = lv_tick_get(); + mounts = board_demo_storage_mounts(); + changed = storage_polled ? (mounts ^ storage_mounts) : 0U; + storage_mounts = mounts; + storage_polled = RT_TRUE; + for (source = 0; source < BOARD_DEMO_STORAGE_COUNT; source++) + { + board_demo_set_label_text(files_source_status[source], + (mounts & (1U << source)) ? "Mounted" : "Not mounted"); + lv_obj_set_style_text_color(files_source_status[source], + (mounts & (1U << source)) ? COLOR_ACCENT : COLOR_MUTED, 0); + } + + source = board_demo_fs_source(demo_snapshot.fs_path); + if ((source >= 0) && (changed & (1U << source))) + { + /* A replacement drive may not contain the previous subdirectory. */ + board_demo_files_request_path(board_demo_storage_roots[source]); + } +} + +static void board_demo_update_files(void) +{ + char size_text[24]; + rt_uint8_t index; + int source; + + if (files_sequence != demo_snapshot.fs_sequence) + { + files_sequence = demo_snapshot.fs_sequence; + lv_label_set_text(files_path_label, demo_snapshot.fs_path); + lv_label_set_text(files_status_label, demo_snapshot.fs_status); + source = board_demo_fs_source(demo_snapshot.fs_path); + for (index = 0U; index < BOARD_DEMO_STORAGE_COUNT; index++) + { + lv_obj_set_style_bg_color(files_source_buttons[index], + source == index ? COLOR_ACCENT_SOFT : COLOR_SURFACE, 0); + lv_obj_set_style_border_color(files_source_buttons[index], + source == index ? COLOR_ACCENT : COLOR_BORDER, 0); + } + if ((source >= 0) && + (rt_strcmp(demo_snapshot.fs_path, board_demo_storage_roots[source]) != 0)) + { + lv_obj_remove_state(files_up_button, LV_STATE_DISABLED); + } + else + { + lv_obj_add_state(files_up_button, LV_STATE_DISABLED); + } + lv_obj_set_hidden(files_empty_label, demo_snapshot.fs_entry_count != 0U); + lv_label_set_text(files_empty_label, + (source >= 0 && (storage_mounts & (1U << source))) ? + demo_snapshot.fs_status : "Storage unavailable"); + lv_table_set_row_count(files_table, + (uint32_t)demo_snapshot.fs_entry_count + 1U); + for (index = 0U; index < demo_snapshot.fs_entry_count; index++) + { + lv_table_set_cell_value(files_table, index + 1U, 0U, + demo_snapshot.fs_entries[index].is_directory ? + LV_SYMBOL_DIRECTORY : LV_SYMBOL_FILE); + lv_table_set_cell_value(files_table, index + 1U, 1U, + demo_snapshot.fs_entries[index].name); + if (demo_snapshot.fs_entries[index].is_directory) + { + size_text[0] = '\0'; + } + else if (demo_snapshot.fs_entries[index].size >= 1024U * 1024U) + { + rt_snprintf(size_text, sizeof(size_text), "%u MB", + demo_snapshot.fs_entries[index].size / (1024U * 1024U)); + } + else if (demo_snapshot.fs_entries[index].size >= 1024U) + { + rt_snprintf(size_text, sizeof(size_text), "%u KB", + demo_snapshot.fs_entries[index].size / 1024U); + } + else + { + rt_snprintf(size_text, sizeof(size_text), "%u B", + demo_snapshot.fs_entries[index].size); + } + lv_table_set_cell_value(files_table, index + 1U, 2U, size_text); + } + lv_obj_scroll_to_y(files_table, 0, LV_ANIM_OFF); + lv_obj_invalidate(files_table); + LOG_I("storage table updated: %s, %u entries (%s)", + demo_snapshot.fs_path, demo_snapshot.fs_entry_count, + demo_snapshot.fs_status); + } + + if (file_sequence != demo_snapshot.file_sequence) + { + file_sequence = demo_snapshot.file_sequence; + lv_label_set_text(files_preview_title, demo_snapshot.file_name[0] == '\0' ? + "File preview" : demo_snapshot.file_name); + lv_label_set_text(files_preview_label, demo_snapshot.file_preview[0] == '\0' ? + "No file selected" : demo_snapshot.file_preview); + lv_obj_scroll_to_y(files_preview_panel, 0, LV_ANIM_OFF); + } +} + +static void board_demo_update_can(void) +{ + char id_text[16]; + char length_text[8]; + char data_text[32]; + rt_size_t used; + rt_uint8_t frame_index; + rt_uint8_t data_index; + + if (can_sequence == demo_snapshot.can_sequence) + { + return; + } + can_sequence = demo_snapshot.can_sequence; + lv_label_set_text(can_status_label, demo_snapshot.can_status); + lv_table_set_row_count(can_table, (uint32_t)demo_snapshot.can_frame_count + 1U); + + for (frame_index = 0U; frame_index < demo_snapshot.can_frame_count; frame_index++) + { + rt_snprintf(id_text, sizeof(id_text), + demo_snapshot.can_frames[frame_index].extended ? + "%08X" : "%03X", + demo_snapshot.can_frames[frame_index].id); + rt_snprintf(length_text, sizeof(length_text), "%u", + demo_snapshot.can_frames[frame_index].length); + used = 0U; + data_text[0] = '\0'; + for (data_index = 0U; + data_index < demo_snapshot.can_frames[frame_index].length; + data_index++) + { + used += (rt_size_t)rt_snprintf(data_text + used, + sizeof(data_text) - used, + "%02X%s", + demo_snapshot.can_frames[frame_index].data[data_index], + data_index + 1U == + demo_snapshot.can_frames[frame_index].length ? + "" : " "); + if (used >= sizeof(data_text)) + { + break; + } + } + lv_table_set_cell_value(can_table, frame_index + 1U, 0U, + demo_snapshot.can_frames[frame_index].transmitted ? + "TX" : "RX"); + lv_table_set_cell_value(can_table, frame_index + 1U, 1U, id_text); + lv_table_set_cell_value(can_table, frame_index + 1U, 2U, length_text); + lv_table_set_cell_value(can_table, frame_index + 1U, 3U, data_text); + } +} + +static void board_demo_update_bus_log(lv_obj_t *label, const char *text) +{ + lv_obj_t *panel = lv_obj_get_parent(label); + rt_bool_t follow = lv_obj_get_scroll_bottom(panel) <= 0; + + board_demo_set_label_text(label, text); + if (follow) + { + lv_obj_update_layout(panel); + lv_obj_scroll_to_y(panel, lv_obj_get_scroll_y(panel) + + lv_obj_get_scroll_bottom(panel), LV_ANIM_OFF); + } +} + +static void board_demo_update_i2c_table(void) +{ + rt_uint16_t address; + rt_uint16_t row; + rt_uint16_t column; + char text[4]; + const char *value; + + for (address = 0U; address < BOARD_DEMO_I2C_ADDRESS_COUNT; address++) + { + switch (demo_snapshot.i2c_addresses[address]) + { + case BOARD_DEMO_I2C_ACK: + rt_snprintf(text, sizeof(text), "%02X", address); + value = text; + break; + case BOARD_DEMO_I2C_NACK: + value = "--"; + break; + case BOARD_DEMO_I2C_PENDING: + value = ".."; + break; + case BOARD_DEMO_I2C_ERROR: + value = "!!"; + break; + default: + value = ""; + break; + } + row = address / 16U + 1U; + column = address % 16U + 1U; + if (rt_strcmp(lv_table_get_cell_value(i2c_result_table, row, column), value) != 0) + { + lv_table_set_cell_value(i2c_result_table, row, column, value); + } + } +} + +static void board_demo_update_runtime(void) +{ + char text[96]; +#ifdef BSP_USING_OV7670_PREVIEW + struct ov7670_preview_status camera_status; +#endif + + if (mqtt_sequence != demo_snapshot.mqtt_sequence) + { + mqtt_sequence = demo_snapshot.mqtt_sequence; + lv_label_set_text(mqtt_status_label, demo_snapshot.mqtt_status); + lv_label_set_text(mqtt_rx_topic_label, + demo_snapshot.mqtt_rx_topic[0] == '\0' ? + "-" : demo_snapshot.mqtt_rx_topic); + lv_label_set_text(mqtt_rx_payload_label, + demo_snapshot.mqtt_rx_payload[0] == '\0' ? + "-" : demo_snapshot.mqtt_rx_payload); + } + if (pwm_sequence != demo_snapshot.pwm_sequence) + { + pwm_sequence = demo_snapshot.pwm_sequence; + lv_label_set_text(pwm_status_label, demo_snapshot.pwm_status); + } + if (spi_sequence != demo_snapshot.spi_sequence) + { + spi_sequence = demo_snapshot.spi_sequence; + lv_label_set_text(spi_status_label, demo_snapshot.spi_status); + board_demo_update_bus_log(spi_log_label, demo_snapshot.spi_log); + lv_obj_set_style_text_color(spi_status_label, + demo_snapshot.spi_busy ? COLOR_INFO : + (demo_snapshot.spi_passed ? COLOR_ACCENT : COLOR_DANGER), 0); + lv_obj_set_state(spi_run_button, LV_STATE_DISABLED, demo_snapshot.spi_busy); + lv_obj_set_state(spi_frequency_dropdown, LV_STATE_DISABLED, demo_snapshot.spi_busy); + lv_obj_set_state(spi_length_dropdown, LV_STATE_DISABLED, demo_snapshot.spi_busy); + } + if (i2c_sequence != demo_snapshot.i2c_sequence) + { + i2c_sequence = demo_snapshot.i2c_sequence; + lv_label_set_text(i2c_status_label, demo_snapshot.i2c_status); + board_demo_update_i2c_table(); + board_demo_update_bus_log(i2c_log_label, demo_snapshot.i2c_log); + lv_obj_set_style_text_color(i2c_status_label, + demo_snapshot.i2c_busy ? COLOR_INFO : + (demo_snapshot.i2c_result_code != RT_EOK ? COLOR_DANGER : + (demo_snapshot.i2c_device_count ? COLOR_ACCENT : COLOR_WARNING)), 0); + lv_obj_set_state(i2c_scan_button, LV_STATE_DISABLED, demo_snapshot.i2c_busy); + } + +#ifdef BSP_USING_OV7670_PREVIEW + ov7670_preview_get_status(&camera_status); + if (camera_status.active) + { + board_demo_set_label_text(camera_status_label, "Camera preview active"); + } + else if (!camera_status.ready) + { + board_demo_set_label_text(camera_status_label, "Camera preview unavailable"); + } + else if (camera_status.last_result != RT_EOK) + { + rt_snprintf(text, sizeof(text), "Camera idle, last result %d", + camera_status.last_result); + board_demo_set_label_text(camera_status_label, text); + } + else + { + board_demo_set_label_text(camera_status_label, "Camera ready"); + } + rt_snprintf(text, sizeof(text), + "Captured %u | Shown %u\nDropped %u | Errors %u", + camera_status.frame_count, camera_status.display_count, + camera_status.drop_count, camera_status.error_count); + board_demo_set_label_text(camera_counter_label, text); +#else + board_demo_set_label_text(camera_status_label, "Camera disabled"); +#endif +} + +static void board_demo_update_overview(void) +{ + char camera_text[96]; + char storage_text[96]; + char header_text[96]; + char uptime_text[64]; +#ifdef BSP_USING_OV7670_PREVIEW + struct ov7670_preview_status camera_status; + + ov7670_preview_get_status(&camera_status); + rt_snprintf(camera_text, sizeof(camera_text), + "%s | Captured %u | Shown %u | Drop %u | Err %u", + camera_status.active ? "Active" : + (!camera_status.ready ? "Unavailable" : + (camera_status.last_result != RT_EOK ? "Error" : "Ready")), + camera_status.frame_count, camera_status.display_count, + camera_status.drop_count, camera_status.error_count); +#else + rt_snprintf(camera_text, sizeof(camera_text), "Disabled"); +#endif + + rt_snprintf(storage_text, sizeof(storage_text), "Flash %s | SD %s | USB %s", + (storage_mounts & (1U << BOARD_DEMO_STORAGE_FLASH)) ? "ready" : "--", + (storage_mounts & (1U << BOARD_DEMO_STORAGE_SD)) ? "ready" : "--", + (storage_mounts & (1U << BOARD_DEMO_STORAGE_USB)) ? "ready" : "--"); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_FILES], storage_text); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_CAN], demo_snapshot.can_status); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_MQTT], demo_snapshot.mqtt_status); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_PWM], demo_snapshot.pwm_status); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_CAMERA], camera_text); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_SPI], demo_snapshot.spi_status); + board_demo_set_label_text(overview_status[BOARD_DEMO_PAGE_I2C], demo_snapshot.i2c_status); + + rt_snprintf(uptime_text, sizeof(uptime_text), "Uptime %u s | CAN RX %u TX %u", + (rt_uint32_t)(((rt_uint64_t)rt_tick_get()) / RT_TICK_PER_SECOND), + demo_snapshot.can_rx_count, demo_snapshot.can_tx_count); + board_demo_set_label_text(overview_uptime, uptime_text); + + rt_snprintf(header_text, sizeof(header_text), "CAN %s | MQTT %s\nUSB Host %s", + demo_snapshot.can_ready ? "ready" : "unavailable", + demo_snapshot.mqtt_connected ? "online" : "offline", + (storage_mounts & (1U << BOARD_DEMO_STORAGE_USB)) ? "mounted" : "not mounted"); + board_demo_set_label_text(demo_header_status, header_text); +} + +static void board_demo_refresh(lv_timer_t *timer) +{ + RT_UNUSED(timer); + /* Camera preview has its own screen. Refresh the dashboard after returning, + * without reallocating hidden labels or polling storage during each frame. */ + if (lv_screen_active() != demo_screen) + { + return; + } + if (board_demo_backend_get_snapshot(&demo_snapshot) != RT_EOK) + { + return; + } + + board_demo_update_storage(); + board_demo_update_files(); + board_demo_update_can(); + board_demo_update_runtime(); + board_demo_update_overview(); +} + +void board_demo_init(void) +{ + enum board_demo_page_id index; + + if (demo_screen != RT_NULL) + { + return; + } + if (board_demo_backend_init() != RT_EOK) + { + LOG_E("cannot initialize board demo backend"); + return; + } + +#ifdef BSP_USING_OV7670_PREVIEW + ov7670_preview_init(); +#endif + +#if LV_USE_THEME_DEFAULT + lv_display_set_theme(lv_display_get_default(), + lv_theme_default_init(lv_display_get_default(), COLOR_ACCENT, COLOR_INFO, + false, &lv_font_montserrat_16)); +#endif + + demo_screen = lv_obj_create(RT_NULL); + lv_obj_set_style_bg_color(demo_screen, COLOR_PAGE, 0); + lv_obj_set_style_bg_opa(demo_screen, LV_OPA_COVER, 0); + lv_obj_set_scrollable(demo_screen, false); + + board_demo_create_sidebar(); + board_demo_create_header(); + board_demo_build_overview_page(); + board_demo_build_files_page(); + board_demo_build_can_page(); + board_demo_build_mqtt_page(); + board_demo_build_pwm_page(); + board_demo_build_camera_page(); + board_demo_build_spi_page(); + board_demo_build_i2c_page(); + + demo_keyboard = lv_keyboard_create(demo_screen); + lv_obj_set_size(demo_keyboard, BOARD_DEMO_CONTENT_WIDTH, BOARD_DEMO_KEYBOARD_HEIGHT); + lv_obj_align(demo_keyboard, LV_ALIGN_BOTTOM_RIGHT, 0, 0); + lv_obj_set_hidden(demo_keyboard, true); + lv_obj_add_event_cb(demo_keyboard, board_demo_keyboard_event, + LV_EVENT_READY, RT_NULL); + lv_obj_add_event_cb(demo_keyboard, board_demo_keyboard_event, + LV_EVENT_CANCEL, RT_NULL); + + for (index = BOARD_DEMO_PAGE_FILES; + index < BOARD_DEMO_PAGE_COUNT; index++) + { + lv_obj_set_hidden(demo_pages[index], true); + } + board_demo_show_page(BOARD_DEMO_PAGE_OVERVIEW); + lv_screen_load(demo_screen); + + demo_refresh_timer = lv_timer_create(board_demo_refresh, + BOARD_DEMO_REFRESH_MS, RT_NULL); + if (demo_refresh_timer == RT_NULL) + { + LOG_E("cannot create board demo refresh timer"); + } + + board_demo_update_storage(); + board_demo_files_request_path("/flash"); + LOG_I("GD32H77D LVGL board demo started"); +} + +#endif /* PKG_USING_LVGL && BSP_USING_LVGL_BOARD_DEMO */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.c b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.c new file mode 100644 index 00000000000..9b596ea2d42 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.c @@ -0,0 +1,1687 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2026-09-08 CYFS implement board demo services for storage, buses, and MQTT + */ + +#include + +#if defined(PKG_USING_LVGL) && defined(BSP_USING_LVGL_BOARD_DEMO) + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "board_demo_backend.h" + +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) +#include "gd32vw553_mqtt_demo.h" +#endif + +#define DBG_TAG "app.board.backend" +#define DBG_LVL DBG_INFO +#include + +#define BOARD_DEMO_WORKER_STACK 8192U +#define BOARD_DEMO_WORKER_PRIORITY 17U +#define BOARD_DEMO_WORKER_TICK 10U +#define BOARD_DEMO_CAN_WORKER_STACK 2048U +#define BOARD_DEMO_CAN_WORKER_PRIORITY 18U +#define BOARD_DEMO_CAN_WORKER_TICK 10U +#define BOARD_DEMO_CAN_POLL_MS 10U +#define BOARD_DEMO_QUEUE_DEPTH 8U +#define BOARD_DEMO_CAN_DEVICE_NAME "can1" +#define BOARD_DEMO_PWM2_DEVICE_NAME "pwm2" +#define BOARD_DEMO_PWM2_CHANNEL 2U +#define BOARD_DEMO_PWM30_DEVICE_NAME "pwm30" +#define BOARD_DEMO_PWM30_CHANNEL 3U +#define BOARD_DEMO_SPI_BUS_NAME "spi3" +#define BOARD_DEMO_SPI_DEVICE_NAME "spi3loop" +#define BOARD_DEMO_SPI_BUFFER_MAX 256U +#define BOARD_DEMO_I2C_PROBE_TIMEOUT_MS 20U +#define BOARD_DEMO_I2C_LOCK_TIMEOUT_MS 100U + +enum board_demo_command_type +{ + BOARD_DEMO_CMD_FS_LIST = 0, + BOARD_DEMO_CMD_FILE_PREVIEW, + BOARD_DEMO_CMD_CAN_BAUD, + BOARD_DEMO_CMD_CAN_SEND, + BOARD_DEMO_CMD_MQTT_START, + BOARD_DEMO_CMD_MQTT_STOP, + BOARD_DEMO_CMD_MQTT_PUBLISH, + BOARD_DEMO_CMD_PWM_APPLY, + BOARD_DEMO_CMD_SPI_LOOPBACK, + BOARD_DEMO_CMD_I2C_SCAN, +}; + +struct board_demo_command +{ + enum board_demo_command_type type; + union + { + struct + { + char path[BOARD_DEMO_FS_PATH_MAX]; + } fs; + struct + { + rt_uint32_t baud_rate; + } can_baud; + struct + { + rt_uint32_t id; + rt_uint8_t data[8]; + rt_uint8_t length; + rt_bool_t extended; + } can_send; + struct + { + char topic[BOARD_DEMO_MQTT_TOPIC_MAX]; + char payload[BOARD_DEMO_MQTT_PAYLOAD_MAX]; + } mqtt; + struct + { + rt_uint32_t frequency; + rt_uint8_t pwm2_duty; + rt_uint8_t pwm30_duty; + rt_bool_t pwm2_enabled; + rt_bool_t pwm30_enabled; + } pwm; + struct + { + rt_uint32_t frequency; + rt_uint16_t length; + } spi; + struct + { + char bus_name[RT_NAME_MAX]; + } i2c; + } data; +}; + +static struct board_demo_snapshot demo_state; +static rt_mutex_t demo_state_lock; +static rt_mq_t demo_command_queue; +static rt_thread_t demo_worker_thread; + +const char *const board_demo_storage_roots[BOARD_DEMO_STORAGE_COUNT] = +{ + "/flash", "/sd", "/udisk", +}; + +#ifdef RT_USING_CAN +static rt_device_t demo_can_device; +static rt_thread_t demo_can_thread; +#endif + +#ifdef RT_USING_PWM +static struct rt_device_pwm *demo_pwm2_device; +static struct rt_device_pwm *demo_pwm30_device; +#endif + +#if defined(RT_USING_SPI) && defined(BSP_USING_SPI3) +static struct rt_spi_device demo_spi_device; +static rt_bool_t demo_spi_attached; +#endif + +static void board_demo_strncpy(char *destination, const char *source, + rt_size_t destination_size) +{ + if (destination_size == 0U) + { + return; + } + + if (source == RT_NULL) + { + destination[0] = '\0'; + return; + } + + rt_strncpy(destination, source, destination_size - 1U); + destination[destination_size - 1U] = '\0'; +} + +static int board_demo_send_command(const struct board_demo_command *command) +{ + if ((demo_command_queue == RT_NULL) || (command == RT_NULL)) + { + return -RT_ERROR; + } + + return rt_mq_send(demo_command_queue, command, sizeof(*command)); +} + +static void board_demo_bus_log(rt_bool_t spi, const char *format, ...) +{ + char line[160]; + char *log; + char *next; + rt_size_t used; + rt_size_t length; + va_list arguments; + + va_start(arguments, format); + rt_vsnprintf(line, sizeof(line), format, arguments); + va_end(arguments); + length = rt_strlen(line); + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + log = spi ? demo_state.spi_log : demo_state.i2c_log; + used = rt_strlen(log); + /* Keep complete recent lines when repeated progress fills the log. */ + while (used + length + 2U > BOARD_DEMO_BUS_LOG_MAX) + { + next = strchr(log, '\n'); + if (next == RT_NULL) + { + used = 0U; + break; + } + used -= (rt_size_t)(next + 1 - log); + rt_memmove(log, next + 1, used + 1U); + } + rt_memcpy(log + used, line, length); + log[used + length] = '\n'; + log[used + length + 1U] = '\0'; + if (spi) + { + demo_state.spi_sequence++; + } + else + { + demo_state.i2c_sequence++; + } + rt_mutex_release(demo_state_lock); + LOG_I("%s: %s", spi ? "SPI" : "I2C", line); +} + +static int board_demo_queue_bus_command(const struct board_demo_command *command) +{ + rt_bool_t spi = command->type == BOARD_DEMO_CMD_SPI_LOOPBACK; + rt_bool_t *busy; + char *status; + char *log; + rt_err_t result; + + if ((demo_state_lock == RT_NULL) || (demo_command_queue == RT_NULL)) + { + return -RT_ERROR; + } + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + busy = spi ? &demo_state.spi_busy : &demo_state.i2c_busy; + status = spi ? demo_state.spi_status : demo_state.i2c_status; + log = spi ? demo_state.spi_log : demo_state.i2c_log; + if (*busy) + { + rt_mutex_release(demo_state_lock); + return -RT_EBUSY; + } + + if (spi) + { + demo_state.spi_frequency = command->data.spi.frequency; + demo_state.spi_length = command->data.spi.length; + demo_state.spi_passed = RT_FALSE; + demo_state.spi_mismatch_index = 0xFFFFU; + rt_snprintf(log, BOARD_DEMO_BUS_LOG_MAX, + "QUEUED spi3 | max %u Hz | %u bytes\n", + command->data.spi.frequency, command->data.spi.length); + demo_state.spi_sequence++; + } + else + { + board_demo_strncpy(demo_state.i2c_bus_name, command->data.i2c.bus_name, + sizeof(demo_state.i2c_bus_name)); + demo_state.i2c_device_count = 0U; + demo_state.i2c_result_code = RT_EOK; + rt_memset(demo_state.i2c_addresses, BOARD_DEMO_I2C_SKIPPED, + sizeof(demo_state.i2c_addresses)); + rt_memset(&demo_state.i2c_addresses[0x08], BOARD_DEMO_I2C_PENDING, 112U); + rt_snprintf(log, BOARD_DEMO_BUS_LOG_MAX, "QUEUED %s | 0x08-0x77\n", + command->data.i2c.bus_name); + demo_state.i2c_sequence++; + } + + /* Publish queued state before the worker can publish progress. */ + result = board_demo_send_command(command); + *busy = result == RT_EOK; + if (result == RT_EOK) + { + rt_snprintf(status, BOARD_DEMO_STATUS_MAX, "%s request queued", + spi ? "SPI" : "I2C"); + } + else + { + rt_snprintf(status, BOARD_DEMO_STATUS_MAX, "Request queue failed: %d", result); + rt_snprintf(log, BOARD_DEMO_BUS_LOG_MAX, "FAIL request queue: %d\n", result); + if (!spi) + { + demo_state.i2c_result_code = result; + } + } + rt_mutex_release(demo_state_lock); + return result; +} + +int board_demo_fs_source(const char *path) +{ + const char *component; + const char *cursor; + rt_size_t root_length; + int index; + + if ((path == RT_NULL) || (path[0] != '/') || + (rt_strlen(path) >= BOARD_DEMO_FS_PATH_MAX)) + { + return -1; + } + + /* Reject dot components before DFS normalizes a path outside its volume. */ + for (component = path + 1; *component != '\0'; component = cursor) + { + for (cursor = component; (*cursor != '\0') && (*cursor != '/'); cursor++) + { + } + if (((cursor - component == 1) && (component[0] == '.')) || + ((cursor - component == 2) && (component[0] == '.') && + (component[1] == '.'))) + { + return -1; + } + if (*cursor == '/') + { + cursor++; + } + } + + for (index = 0; index < BOARD_DEMO_STORAGE_COUNT; index++) + { + root_length = rt_strlen(board_demo_storage_roots[index]); + if ((rt_strncmp(path, board_demo_storage_roots[index], root_length) == 0) && + ((path[root_length] == '\0') || (path[root_length] == '/'))) + { + return index; + } + } + + return -1; +} + +static rt_bool_t board_demo_path_is_allowed(const char *path) +{ + return board_demo_fs_source(path) >= 0 ? RT_TRUE : RT_FALSE; +} + +static rt_bool_t board_demo_path_is_mounted(const char *path) +{ + struct dfs_filesystem *filesystem; + rt_bool_t mounted; + int source; + + source = board_demo_fs_source(path); + if (source < 0) + { + return RT_FALSE; + } + /* Keep the mount record valid while USB removal updates the DFS table. */ + dfs_lock(); + filesystem = dfs_filesystem_lookup(path); + mounted = (filesystem != RT_NULL) && (filesystem->path != RT_NULL) && + (rt_strcmp(filesystem->path, board_demo_storage_roots[source]) == 0); + dfs_unlock(); + return mounted; +} + +rt_uint8_t board_demo_storage_mounts(void) +{ + rt_uint8_t mounts = 0U; + int source; + + for (source = 0; source < BOARD_DEMO_STORAGE_COUNT; source++) + { + if (board_demo_path_is_mounted(board_demo_storage_roots[source])) + { + mounts |= (rt_uint8_t)(1U << source); + } + } + return mounts; +} + +static void board_demo_sort_entries(struct board_demo_fs_entry *entries, + rt_uint8_t count) +{ + struct board_demo_fs_entry temporary; + rt_uint8_t current; + rt_uint8_t previous; + rt_bool_t move; + + for (current = 1U; current < count; current++) + { + temporary = entries[current]; + previous = current; + while (previous > 0U) + { + move = RT_FALSE; + if (entries[previous - 1U].is_directory != temporary.is_directory) + { + move = temporary.is_directory; + } + else if (rt_strcmp(entries[previous - 1U].name, temporary.name) > 0) + { + move = RT_TRUE; + } + + if (!move) + { + break; + } + + entries[previous] = entries[previous - 1U]; + previous--; + } + entries[previous] = temporary; + } +} + +static void board_demo_fs_list(const char *path) +{ + struct board_demo_fs_entry entries[BOARD_DEMO_FS_ENTRY_MAX]; + struct dirent *directory_entry; + struct stat file_status; + DIR *directory; + char full_path[BOARD_DEMO_FS_PATH_MAX]; + char status[BOARD_DEMO_STATUS_MAX]; + rt_uint8_t count = 0U; + rt_bool_t limited = RT_FALSE; + int result; + + if (!board_demo_path_is_allowed(path)) + { + rt_snprintf(status, sizeof(status), "Path is outside demo storage roots"); + goto _update_failure; + } + if (!board_demo_path_is_mounted(path)) + { + if (rt_strncmp(path, "/flash", 6U) == 0) + { + rt_snprintf(status, sizeof(status), + "Flash is not mounted or formatted"); + } + else if (board_demo_fs_source(path) == BOARD_DEMO_STORAGE_SD) + { + rt_snprintf(status, sizeof(status), "SD card not mounted"); + } + else + { + rt_snprintf(status, sizeof(status), + "USB Host: no FAT/FAT32 volume mounted"); + } + LOG_W("storage path is not mounted: %s", path); + goto _update_failure; + } + + directory = opendir(path); + if (directory == RT_NULL) + { + rt_snprintf(status, sizeof(status), "Cannot open %s", path); + LOG_E("cannot open storage directory: %s", path); + goto _update_failure; + } + + rt_memset(entries, 0, sizeof(entries)); + while ((directory_entry = readdir(directory)) != RT_NULL) + { + if ((rt_strcmp(directory_entry->d_name, ".") == 0) || + (rt_strcmp(directory_entry->d_name, "..") == 0)) + { + continue; + } + if (count >= BOARD_DEMO_FS_ENTRY_MAX) + { + limited = RT_TRUE; + break; + } + + result = rt_snprintf(full_path, sizeof(full_path), "%s/%s", + path, directory_entry->d_name); + if ((result <= 0) || ((rt_size_t)result >= sizeof(full_path))) + { + limited = RT_TRUE; + continue; + } + + board_demo_strncpy(entries[count].name, directory_entry->d_name, + sizeof(entries[count].name)); + if (directory_entry->d_type == DT_DIR) + { + entries[count].is_directory = RT_TRUE; + entries[count].size = 0U; + } + else + { + entries[count].is_directory = RT_FALSE; + entries[count].size = 0U; + if (stat(full_path, &file_status) == 0) + { + entries[count].is_directory = S_ISDIR(file_status.st_mode) ? + RT_TRUE : RT_FALSE; + entries[count].size = entries[count].is_directory ? 0U : + (rt_uint32_t)file_status.st_size; + } + } + count++; + } + closedir(directory); + + board_demo_sort_entries(entries, count); + if (limited) + { + rt_snprintf(status, sizeof(status), "%u entries | Listing limit reached", count); + } + else if (count == 0U) + { + board_demo_strncpy(status, "Mounted, empty", sizeof(status)); + } + else + { + rt_snprintf(status, sizeof(status), "%u entries", count); + } + LOG_I("listed %u entries from %s", count, path); + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.fs_path, path, sizeof(demo_state.fs_path)); + board_demo_strncpy(demo_state.fs_status, status, + sizeof(demo_state.fs_status)); + rt_memcpy(demo_state.fs_entries, entries, sizeof(entries)); + demo_state.fs_entry_count = count; + demo_state.fs_sequence++; + demo_state.file_name[0] = '\0'; + demo_state.file_preview[0] = '\0'; + demo_state.file_sequence++; + rt_mutex_release(demo_state_lock); + return; + +_update_failure: + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.fs_path, path, sizeof(demo_state.fs_path)); + board_demo_strncpy(demo_state.fs_status, status, + sizeof(demo_state.fs_status)); + rt_memset(demo_state.fs_entries, 0, sizeof(demo_state.fs_entries)); + demo_state.fs_entry_count = 0U; + demo_state.fs_sequence++; + demo_state.file_name[0] = '\0'; + demo_state.file_preview[0] = '\0'; + demo_state.file_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_preview_append(char *buffer, rt_size_t buffer_size, + rt_size_t *used, const char *format, ...) +{ + va_list arguments; + int length; + + if (*used >= buffer_size - 1U) + { + return; + } + + va_start(arguments, format); + length = rt_vsnprintf(buffer + *used, buffer_size - *used, format, arguments); + va_end(arguments); + if (length <= 0) + { + return; + } + + if ((rt_size_t)length >= buffer_size - *used) + { + *used = buffer_size - 1U; + } + else + { + *used += (rt_size_t)length; + } +} + +static void board_demo_file_preview(const char *path) +{ + rt_uint8_t raw_data[384]; + char preview[BOARD_DEMO_FILE_PREVIEW_MAX]; + rt_size_t printable = 0U; + rt_size_t used = 0U; + rt_size_t index; + int descriptor; + int length; + + rt_memset(preview, 0, sizeof(preview)); + if (!board_demo_path_is_allowed(path)) + { + rt_snprintf(preview, sizeof(preview), "Path is outside demo storage roots"); + goto _update; + } + if (!board_demo_path_is_mounted(path)) + { + rt_snprintf(preview, sizeof(preview), "Storage disconnected or not mounted"); + goto _update; + } + + descriptor = open(path, O_RDONLY, 0); + if (descriptor < 0) + { + rt_snprintf(preview, sizeof(preview), "Cannot open %s", path); + goto _update; + } + + length = read(descriptor, raw_data, sizeof(raw_data)); + close(descriptor); + if (length < 0) + { + rt_snprintf(preview, sizeof(preview), "Cannot read %s", path); + goto _update; + } + if (length == 0) + { + rt_snprintf(preview, sizeof(preview), "Empty file"); + goto _update; + } + + for (index = 0U; index < (rt_size_t)length; index++) + { + if (((raw_data[index] >= 0x20U) && (raw_data[index] <= 0x7EU)) || + (raw_data[index] == '\r') || (raw_data[index] == '\n') || + (raw_data[index] == '\t')) + { + printable++; + } + } + + if (printable * 100U >= (rt_size_t)length * 85U) + { + for (index = 0U; + (index < (rt_size_t)length) && (used < sizeof(preview) - 1U); + index++) + { + preview[used++] = (char)raw_data[index]; + } + preview[used] = '\0'; + } + else + { + board_demo_preview_append(preview, sizeof(preview), &used, + "Binary preview (%d bytes shown)\n", length); + for (index = 0U; index < (rt_size_t)length; index++) + { + if ((index % 16U) == 0U) + { + board_demo_preview_append(preview, sizeof(preview), &used, + "%04X: ", (unsigned int)index); + } + board_demo_preview_append(preview, sizeof(preview), &used, + "%02X ", raw_data[index]); + if (((index % 16U) == 15U) || (index + 1U == (rt_size_t)length)) + { + board_demo_preview_append(preview, sizeof(preview), &used, "\n"); + } + } + } + +_update: + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.file_name, path, + sizeof(demo_state.file_name)); + board_demo_strncpy(demo_state.file_preview, preview, + sizeof(demo_state.file_preview)); + demo_state.file_sequence++; + rt_mutex_release(demo_state_lock); +} + +#ifdef RT_USING_CAN +static void board_demo_can_add_frame(const struct rt_can_msg *message, + rt_bool_t transmitted) +{ + struct board_demo_can_frame *frame; + rt_uint8_t length; + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if (demo_state.can_frame_count < BOARD_DEMO_CAN_LOG_MAX) + { + demo_state.can_frame_count++; + } + if (demo_state.can_frame_count > 1U) + { + rt_memmove(&demo_state.can_frames[1], &demo_state.can_frames[0], + (demo_state.can_frame_count - 1U) * + sizeof(demo_state.can_frames[0])); + } + + frame = &demo_state.can_frames[0]; + rt_memset(frame, 0, sizeof(*frame)); + frame->id = message->id; + frame->tick = rt_tick_get(); + frame->extended = (message->ide == RT_CAN_EXTID) ? RT_TRUE : RT_FALSE; + frame->transmitted = transmitted; + length = message->len > 8U ? 8U : message->len; + frame->length = length; + rt_memcpy(frame->data, message->data, length); + if (transmitted) + { + demo_state.can_tx_count++; + } + else + { + demo_state.can_rx_count++; + } + demo_state.can_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_can_set_status(const char *format, ...) +{ + va_list arguments; + char status[BOARD_DEMO_STATUS_MAX]; + + va_start(arguments, format); + rt_vsnprintf(status, sizeof(status), format, arguments); + va_end(arguments); + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.can_status, status, + sizeof(demo_state.can_status)); + demo_state.can_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_can_open(void) +{ + rt_device_t can_device; + rt_err_t result; + + can_device = rt_device_find(BOARD_DEMO_CAN_DEVICE_NAME); + if (can_device == RT_NULL) + { + board_demo_can_set_status("can1 device not found"); + return; + } + + result = rt_device_open(can_device, + RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_INT_TX); + if (result != RT_EOK) + { + board_demo_can_set_status("can1 open failed: %d", result); + return; + } + + result = rt_device_control(can_device, RT_CAN_CMD_SET_BAUD, + (void *)(rt_ubase_t)CAN1MBaud); + if (result != RT_EOK) + { + rt_device_close(can_device); + board_demo_can_set_status("can1 baud setup failed: %d", result); + return; + } + + demo_can_device = can_device; + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + demo_state.can_ready = RT_TRUE; + demo_state.can_baud_rate = CAN1MBaud; + board_demo_strncpy(demo_state.can_status, "can1 ready at 1 Mbit/s", + sizeof(demo_state.can_status)); + demo_state.can_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_can_set_baud(rt_uint32_t baud_rate) +{ + rt_err_t result; + + if (demo_can_device == RT_NULL) + { + board_demo_can_set_status("can1 is not ready"); + return; + } + + result = rt_device_control(demo_can_device, RT_CAN_CMD_SET_BAUD, + (void *)(rt_ubase_t)baud_rate); + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + demo_state.can_baud_rate = baud_rate; + rt_snprintf(demo_state.can_status, sizeof(demo_state.can_status), + "can1 ready at %u kbit/s", baud_rate / 1000U); + } + else + { + demo_state.can_error_count++; + rt_snprintf(demo_state.can_status, sizeof(demo_state.can_status), + "CAN baud setup failed: %d", result); + } + demo_state.can_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_can_send(const struct board_demo_command *command) +{ + struct rt_can_msg message; + rt_ssize_t written; + + if (demo_can_device == RT_NULL) + { + board_demo_can_set_status("can1 is not ready"); + return; + } + + rt_memset(&message, 0, sizeof(message)); + message.id = command->data.can_send.id; + message.ide = command->data.can_send.extended ? RT_CAN_EXTID : RT_CAN_STDID; + message.rtr = RT_CAN_DTR; + message.len = command->data.can_send.length; + message.nonblocking = 1U; + rt_memcpy(message.data, command->data.can_send.data, message.len); + + written = rt_device_write(demo_can_device, 0, &message, sizeof(message)); + if (written == sizeof(message)) + { + board_demo_can_add_frame(&message, RT_TRUE); + board_demo_can_set_status("CAN frame sent"); + } + else + { + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + demo_state.can_error_count++; + rt_snprintf(demo_state.can_status, sizeof(demo_state.can_status), + "CAN send failed: %d", (int)written); + demo_state.can_sequence++; + rt_mutex_release(demo_state_lock); + } +} + +static void board_demo_can_poll(void) +{ + struct rt_can_msg message; + rt_ssize_t length; + rt_uint8_t count = 0U; + + if (demo_can_device == RT_NULL) + { + return; + } + + do + { + rt_memset(&message, 0, sizeof(message)); + length = rt_device_read(demo_can_device, 0, &message, sizeof(message)); + if (length == sizeof(message)) + { + board_demo_can_add_frame(&message, RT_FALSE); + count++; + } + } + while ((length == sizeof(message)) && (count < 8U)); +} + +static void board_demo_can_worker_entry(void *parameter) +{ + RT_UNUSED(parameter); + + LOG_I("CAN worker started"); + board_demo_can_open(); + + while (1) + { + board_demo_can_poll(); + rt_thread_mdelay(BOARD_DEMO_CAN_POLL_MS); + } +} +#endif /* RT_USING_CAN */ + +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) +static void board_demo_mqtt_receive(const char *topic, const void *payload, + rt_size_t payload_length) +{ + rt_size_t copy_length; + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.mqtt_rx_topic, topic, + sizeof(demo_state.mqtt_rx_topic)); + copy_length = payload_length; + if (copy_length >= sizeof(demo_state.mqtt_rx_payload)) + { + copy_length = sizeof(demo_state.mqtt_rx_payload) - 1U; + } + rt_memcpy(demo_state.mqtt_rx_payload, payload, copy_length); + demo_state.mqtt_rx_payload[copy_length] = '\0'; + board_demo_strncpy(demo_state.mqtt_status, "MQTT message received", + sizeof(demo_state.mqtt_status)); + demo_state.mqtt_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_mqtt_status(const char *status, int result) +{ + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + board_demo_strncpy(demo_state.mqtt_status, status, + sizeof(demo_state.mqtt_status)); + } + else + { + rt_snprintf(demo_state.mqtt_status, sizeof(demo_state.mqtt_status), + "%s (%d)", status, result); + } + demo_state.mqtt_sequence++; + rt_mutex_release(demo_state_lock); +} + +static void board_demo_mqtt_update_state(void) +{ + rt_bool_t running; + rt_bool_t connected; + + running = gd32vw553_mqtt_demo_is_running(); + connected = gd32vw553_mqtt_demo_is_connected(); + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if ((demo_state.mqtt_running != running) || + (demo_state.mqtt_connected != connected)) + { + demo_state.mqtt_running = running; + demo_state.mqtt_connected = connected; + demo_state.mqtt_sequence++; + } + rt_mutex_release(demo_state_lock); +} + +static int board_demo_mqtt_command(const struct board_demo_command *command) +{ + const char *operation; + int result; + + if (command->type == BOARD_DEMO_CMD_MQTT_START) + { + operation = "start"; + result = gd32vw553_mqtt_demo_start(); + } + else if (command->type == BOARD_DEMO_CMD_MQTT_STOP) + { + operation = "stop"; + result = gd32vw553_mqtt_demo_stop(); + } + else + { + operation = "publish"; + result = gd32vw553_mqtt_demo_publish(command->data.mqtt.topic, + command->data.mqtt.payload); + } + LOG_I("MQTT %s command result: %d", operation, result); + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + if (command->type == BOARD_DEMO_CMD_MQTT_PUBLISH) + { + board_demo_strncpy(demo_state.mqtt_tx_topic, + command->data.mqtt.topic, + sizeof(demo_state.mqtt_tx_topic)); + board_demo_strncpy(demo_state.mqtt_tx_payload, + command->data.mqtt.payload, + sizeof(demo_state.mqtt_tx_payload)); + board_demo_strncpy(demo_state.mqtt_status, "MQTT message published", + sizeof(demo_state.mqtt_status)); + } + else if (command->type == BOARD_DEMO_CMD_MQTT_START) + { + board_demo_strncpy(demo_state.mqtt_status, "MQTT worker started", + sizeof(demo_state.mqtt_status)); + } + else + { + board_demo_strncpy(demo_state.mqtt_status, "MQTT stopping", + sizeof(demo_state.mqtt_status)); + } + } + else + { + rt_snprintf(demo_state.mqtt_status, sizeof(demo_state.mqtt_status), + "MQTT operation failed: %d", result); + } + demo_state.mqtt_sequence++; + rt_mutex_release(demo_state_lock); + + board_demo_mqtt_update_state(); + return result; +} +#endif + +#ifdef RT_USING_PWM +static rt_err_t board_demo_pwm_apply_channel(struct rt_device_pwm *device, + rt_uint32_t channel, + rt_uint32_t period, + rt_bool_t enabled, + rt_uint8_t duty) +{ + rt_err_t result; + rt_uint32_t pulse; + + pulse = (rt_uint32_t)(((rt_uint64_t)period * duty) / 100U); + result = rt_pwm_set(device, channel, period, pulse); + if (result != RT_EOK) + { + return result; + } + + return enabled ? rt_pwm_enable(device, channel) : + rt_pwm_disable(device, channel); +} + +static void board_demo_pwm_apply(const struct board_demo_command *command) +{ + rt_uint32_t period; + rt_err_t result; + + if ((demo_pwm2_device == RT_NULL) || (demo_pwm30_device == RT_NULL)) + { + demo_pwm2_device = (struct rt_device_pwm *) + rt_device_find(BOARD_DEMO_PWM2_DEVICE_NAME); + demo_pwm30_device = (struct rt_device_pwm *) + rt_device_find(BOARD_DEMO_PWM30_DEVICE_NAME); + } + if ((demo_pwm2_device == RT_NULL) || (demo_pwm30_device == RT_NULL)) + { + result = -RT_ENOSYS; + goto _update; + } + if (command->data.pwm.frequency == 0U) + { + result = -RT_EINVAL; + goto _update; + } + + period = 1000000000U / command->data.pwm.frequency; + result = board_demo_pwm_apply_channel(demo_pwm2_device, + BOARD_DEMO_PWM2_CHANNEL, + period, + command->data.pwm.pwm2_enabled, + command->data.pwm.pwm2_duty); + if (result == RT_EOK) + { + result = board_demo_pwm_apply_channel(demo_pwm30_device, + BOARD_DEMO_PWM30_CHANNEL, + period, + command->data.pwm.pwm30_enabled, + command->data.pwm.pwm30_duty); + } + +_update: + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + if (result == RT_EOK) + { + demo_state.pwm_frequency = command->data.pwm.frequency; + demo_state.pwm2_enabled = command->data.pwm.pwm2_enabled; + demo_state.pwm2_duty = command->data.pwm.pwm2_duty; + demo_state.pwm30_enabled = command->data.pwm.pwm30_enabled; + demo_state.pwm30_duty = command->data.pwm.pwm30_duty; + rt_snprintf(demo_state.pwm_status, sizeof(demo_state.pwm_status), + "PWM updated at %u Hz", command->data.pwm.frequency); + } + else + { + rt_snprintf(demo_state.pwm_status, sizeof(demo_state.pwm_status), + "PWM update failed: %d", result); + } + demo_state.pwm_sequence++; + rt_mutex_release(demo_state_lock); +} +#endif /* RT_USING_PWM */ + +#if defined(RT_USING_SPI) && defined(BSP_USING_SPI3) +static void board_demo_spi_dump(const char *direction, const rt_uint8_t *data, + rt_uint16_t length) +{ + char line[64]; + rt_size_t used; + rt_uint16_t offset; + rt_uint16_t index; + + for (offset = 0U; offset < length; offset += 8U) + { + used = 0U; + line[0] = '\0'; + board_demo_preview_append(line, sizeof(line), &used, + "%s %03u:", direction, offset); + for (index = offset; (index < length) && (index < offset + 8U); index++) + { + board_demo_preview_append(line, sizeof(line), &used, " %02X", data[index]); + } + board_demo_bus_log(RT_TRUE, "%s", line); + } +} + +static void board_demo_spi_loopback(const struct board_demo_command *command) +{ + struct rt_spi_configuration configuration; + rt_uint8_t transmit_buffer[BOARD_DEMO_SPI_BUFFER_MAX]; + rt_uint8_t receive_buffer[BOARD_DEMO_SPI_BUFFER_MAX]; + rt_uint16_t mismatch = 0xFFFFU; + rt_uint16_t index; + rt_ssize_t transferred; + rt_err_t result; + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.spi_status, "SPI loopback running...", + sizeof(demo_state.spi_status)); + demo_state.spi_sequence++; + rt_mutex_release(demo_state_lock); + board_demo_bus_log(RT_TRUE, "START spi3 | mode 0 | 8-bit | no CS"); + board_demo_bus_log(RT_TRUE, "SCK PE12 | MOSI PF1 <-> MISO PF0"); + + if (!demo_spi_attached) + { + result = rt_spi_bus_attach_device(&demo_spi_device, + BOARD_DEMO_SPI_DEVICE_NAME, + BOARD_DEMO_SPI_BUS_NAME, + RT_NULL); + if (result != RT_EOK) + { + board_demo_bus_log(RT_TRUE, "FAIL attach %s: %d", + BOARD_DEMO_SPI_BUS_NAME, result); + goto _update; + } + demo_spi_attached = RT_TRUE; + } + + rt_memset(&configuration, 0, sizeof(configuration)); + configuration.data_width = 8U; + configuration.mode = RT_SPI_MASTER | RT_SPI_MODE_0 | + RT_SPI_MSB | RT_SPI_NO_CS; + configuration.max_hz = command->data.spi.frequency; + result = rt_spi_configure(&demo_spi_device, &configuration); + if (result != RT_EOK) + { + board_demo_bus_log(RT_TRUE, "FAIL configure: %d", result); + goto _update; + } + board_demo_bus_log(RT_TRUE, "CONFIG max %u Hz | %u bytes", + command->data.spi.frequency, command->data.spi.length); + + for (index = 0U; index < command->data.spi.length; index++) + { + transmit_buffer[index] = (rt_uint8_t)(0x5AU ^ index ^ (index >> 3U)); + } + rt_memset(receive_buffer, 0, command->data.spi.length); + board_demo_spi_dump("TX", transmit_buffer, command->data.spi.length); + board_demo_bus_log(RT_TRUE, "TRANSFER started"); + transferred = rt_spi_transfer(&demo_spi_device, + transmit_buffer, receive_buffer, + command->data.spi.length); + if (transferred != command->data.spi.length) + { + board_demo_bus_log(RT_TRUE, "FAIL transfer: %d / %u bytes", + (int)transferred, command->data.spi.length); + if ((transferred > 0) && (transferred < command->data.spi.length)) + { + board_demo_spi_dump("RX", receive_buffer, (rt_uint16_t)transferred); + } + result = -RT_EIO; + goto _update; + } + board_demo_spi_dump("RX", receive_buffer, command->data.spi.length); + + result = RT_EOK; + for (index = 0U; index < command->data.spi.length; index++) + { + if (transmit_buffer[index] != receive_buffer[index]) + { + mismatch = index; + result = -RT_ERROR; + board_demo_bus_log(RT_TRUE, "FAIL byte %u: TX %02X != RX %02X", + index, transmit_buffer[index], receive_buffer[index]); + board_demo_bus_log(RT_TRUE, "Check PF1-PF0 loopback connection"); + break; + } + } + if (result == RT_EOK) + { + board_demo_bus_log(RT_TRUE, "PASS: all %u bytes match", command->data.spi.length); + } + +_update: + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + demo_state.spi_frequency = command->data.spi.frequency; + demo_state.spi_length = command->data.spi.length; + demo_state.spi_mismatch_index = mismatch; + demo_state.spi_passed = (result == RT_EOK) ? RT_TRUE : RT_FALSE; + demo_state.spi_busy = RT_FALSE; + if (result == RT_EOK) + { + rt_snprintf(demo_state.spi_status, sizeof(demo_state.spi_status), + "Loopback passed: %u bytes", command->data.spi.length); + } + else if (mismatch != 0xFFFFU) + { + rt_snprintf(demo_state.spi_status, sizeof(demo_state.spi_status), + "Mismatch at byte %u", mismatch); + } + else + { + rt_snprintf(demo_state.spi_status, sizeof(demo_state.spi_status), + "SPI loopback failed: %d", result); + } + demo_state.spi_sequence++; + rt_mutex_release(demo_state_lock); +} +#endif + +#ifdef RT_USING_I2C +static rt_ssize_t board_demo_i2c_probe(struct rt_i2c_bus_device *bus, + rt_uint16_t address) +{ + struct rt_i2c_msg message; + rt_uint32_t saved_timeout; + rt_tick_t probe_timeout; + rt_ssize_t result; + + rt_memset(&message, 0, sizeof(message)); + message.addr = address; + message.flags = RT_I2C_WR; + + result = rt_i2c_bus_lock(bus, + rt_tick_from_millisecond(BOARD_DEMO_I2C_LOCK_TIMEOUT_MS)); + if (result != RT_EOK) + { + return result == -RT_ETIMEOUT ? -RT_EBUSY : result; + } + + /* The recursive bus lock keeps this temporary timeout private to the probe. */ + saved_timeout = bus->timeout; + probe_timeout = rt_tick_from_millisecond(BOARD_DEMO_I2C_PROBE_TIMEOUT_MS); + if ((bus->timeout == 0U) || (bus->timeout > probe_timeout)) + { + bus->timeout = probe_timeout; + } + result = rt_i2c_transfer(bus, &message, 1U); + bus->timeout = saved_timeout; + rt_i2c_bus_unlock(bus); + return result; +} + +static void board_demo_i2c_scan(const char *bus_name) +{ + struct rt_i2c_bus_device *bus; + rt_tick_t start_tick = rt_tick_get(); + rt_uint32_t elapsed_ms; + rt_uint16_t address = 0x08U; + rt_uint16_t probed = 0U; + rt_uint8_t count = 0U; + rt_uint8_t state; + rt_ssize_t transferred; + rt_err_t result = RT_EOK; + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.i2c_bus_name, bus_name, + sizeof(demo_state.i2c_bus_name)); + rt_snprintf(demo_state.i2c_status, sizeof(demo_state.i2c_status), + "%s scanning...", bus_name); + demo_state.i2c_sequence++; + rt_mutex_release(demo_state_lock); + board_demo_bus_log(RT_FALSE, "START %s | 7-bit addresses 0x08-0x77", bus_name); + board_demo_bus_log(RT_FALSE, "Address-only probe | timeout %u ms", + BOARD_DEMO_I2C_PROBE_TIMEOUT_MS); + + bus = rt_i2c_bus_device_find(bus_name); + if (bus == RT_NULL) + { + board_demo_bus_log(RT_FALSE, "FAIL: bus %s not found", bus_name); + result = -RT_ENOENT; + goto _update; + } + + for (address = 0x08U; address <= 0x77U; address++) + { + transferred = board_demo_i2c_probe(bus, address); + probed++; + if (transferred == 1) + { + state = BOARD_DEMO_I2C_ACK; + count++; + board_demo_bus_log(RT_FALSE, "ACK %s address 0x%02X", bus_name, address); + } + else if ((transferred == 0) || (transferred == -RT_EIO)) + { + /* The GD32 address-only transfer reports an address NACK as EIO. */ + state = BOARD_DEMO_I2C_NACK; + } + else + { + state = BOARD_DEMO_I2C_ERROR; + result = transferred < 0 ? (rt_err_t)transferred : -RT_ERROR; + } + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + demo_state.i2c_addresses[address] = state; + demo_state.i2c_device_count = count; + rt_snprintf(demo_state.i2c_status, sizeof(demo_state.i2c_status), + "%s | %u/112 | found %u", bus_name, probed, count); + demo_state.i2c_sequence++; + rt_mutex_release(demo_state_lock); + if (result != RT_EOK) + { + board_demo_bus_log(RT_FALSE, "FAIL 0x%02X: %s (%d)", address, + result == -RT_ETIMEOUT ? "bus/probe timeout" : + (result == -RT_EBUSY ? "bus in use" : "transfer error"), + result); + break; + } + } + if ((result == RT_EOK) && (count == 0U)) + { + board_demo_bus_log(RT_FALSE, "No response: check power, SCL/SDA and pull-ups"); + } + +_update: + elapsed_ms = (rt_uint32_t)(((rt_uint64_t)(rt_tick_get() - start_tick) * 1000U) / + RT_TICK_PER_SECOND); + board_demo_bus_log(RT_FALSE, "%s %s | %u/112 | %u devices | %u ms", + result == RT_EOK ? "DONE" : "STOPPED", bus_name, + probed, count, elapsed_ms); + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + board_demo_strncpy(demo_state.i2c_bus_name, bus_name, + sizeof(demo_state.i2c_bus_name)); + demo_state.i2c_device_count = count; + demo_state.i2c_result_code = result; + demo_state.i2c_busy = RT_FALSE; + if (result == RT_EOK) + { + rt_snprintf(demo_state.i2c_status, sizeof(demo_state.i2c_status), + "%s: %u device%s | %u ms", bus_name, count, + count == 1U ? "" : "s", elapsed_ms); + } + else if (bus == RT_NULL) + { + rt_snprintf(demo_state.i2c_status, sizeof(demo_state.i2c_status), + "%s is not available", bus_name); + } + else + { + rt_snprintf(demo_state.i2c_status, sizeof(demo_state.i2c_status), + "%s stopped at 0x%02X: %s (%d)", bus_name, address, + result == -RT_ETIMEOUT ? "timeout" : + (result == -RT_EBUSY ? "bus in use" : "transfer error"), result); + } + demo_state.i2c_sequence++; + rt_mutex_release(demo_state_lock); +} +#endif /* RT_USING_I2C */ + +static void board_demo_handle_command(const struct board_demo_command *command) +{ + switch (command->type) + { + case BOARD_DEMO_CMD_CAN_BAUD: +#ifdef RT_USING_CAN + board_demo_can_set_baud(command->data.can_baud.baud_rate); +#endif + break; + case BOARD_DEMO_CMD_CAN_SEND: +#ifdef RT_USING_CAN + board_demo_can_send(command); +#endif + break; + case BOARD_DEMO_CMD_MQTT_START: + case BOARD_DEMO_CMD_MQTT_STOP: + case BOARD_DEMO_CMD_MQTT_PUBLISH: +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + board_demo_mqtt_command(command); +#endif + break; + case BOARD_DEMO_CMD_PWM_APPLY: +#ifdef RT_USING_PWM + board_demo_pwm_apply(command); +#endif + break; + case BOARD_DEMO_CMD_SPI_LOOPBACK: +#if defined(RT_USING_SPI) && defined(BSP_USING_SPI3) + board_demo_spi_loopback(command); +#endif + break; + case BOARD_DEMO_CMD_I2C_SCAN: +#ifdef RT_USING_I2C + board_demo_i2c_scan(command->data.i2c.bus_name); +#endif + break; + default: + break; + } +} + +static void board_demo_worker_entry(void *parameter) +{ + struct board_demo_command command; + rt_ssize_t received; + + RT_UNUSED(parameter); + LOG_I("command worker started"); + + while (1) + { + received = rt_mq_recv(demo_command_queue, &command, sizeof(command), + rt_tick_from_millisecond(20U)); + /* rt_mq_recv returns the byte count on success, not RT_EOK. */ + if (received == (rt_ssize_t)sizeof(command)) + { + LOG_I("processing command %d", command.type); + board_demo_handle_command(&command); + } + else if (received != -RT_ETIMEOUT) + { + LOG_E("command receive returned %d, expected %u bytes", + (int)received, (unsigned int)sizeof(command)); + } + +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + board_demo_mqtt_update_state(); +#endif + } +} + +int board_demo_backend_init(void) +{ + rt_err_t result; +#ifdef RT_USING_CAN + rt_err_t can_result; +#endif + + if (demo_worker_thread != RT_NULL) + { + return RT_EOK; + } + + rt_memset(&demo_state, 0, sizeof(demo_state)); + board_demo_strncpy(demo_state.fs_path, "/flash", + sizeof(demo_state.fs_path)); + board_demo_strncpy(demo_state.fs_status, "Storage not scanned", + sizeof(demo_state.fs_status)); + board_demo_strncpy(demo_state.can_status, "CAN initializing", + sizeof(demo_state.can_status)); + board_demo_strncpy(demo_state.mqtt_status, "MQTT stopped", + sizeof(demo_state.mqtt_status)); + board_demo_strncpy(demo_state.pwm_status, "PWM idle", + sizeof(demo_state.pwm_status)); + board_demo_strncpy(demo_state.spi_status, "SPI loopback idle", + sizeof(demo_state.spi_status)); + board_demo_strncpy(demo_state.i2c_status, "I2C scan idle", + sizeof(demo_state.i2c_status)); + demo_state.spi_mismatch_index = 0xFFFFU; + + demo_state_lock = rt_mutex_create("boardui", RT_IPC_FLAG_PRIO); + if (demo_state_lock == RT_NULL) + { + return -RT_ENOMEM; + } + + demo_command_queue = rt_mq_create("boardcmd", sizeof(struct board_demo_command), + BOARD_DEMO_QUEUE_DEPTH, RT_IPC_FLAG_PRIO); + if (demo_command_queue == RT_NULL) + { + rt_mutex_delete(demo_state_lock); + demo_state_lock = RT_NULL; + return -RT_ENOMEM; + } + +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + gd32vw553_mqtt_demo_set_receive_callback(board_demo_mqtt_receive); + gd32vw553_mqtt_demo_set_status_callback(board_demo_mqtt_status); +#endif + + demo_worker_thread = rt_thread_create("boarddemo", board_demo_worker_entry, + RT_NULL, BOARD_DEMO_WORKER_STACK, + BOARD_DEMO_WORKER_PRIORITY, + BOARD_DEMO_WORKER_TICK); + if (demo_worker_thread == RT_NULL) + { + rt_mq_delete(demo_command_queue); + rt_mutex_delete(demo_state_lock); + demo_command_queue = RT_NULL; + demo_state_lock = RT_NULL; + return -RT_ENOMEM; + } + + result = rt_thread_startup(demo_worker_thread); + if (result != RT_EOK) + { + rt_thread_delete(demo_worker_thread); + rt_mq_delete(demo_command_queue); + rt_mutex_delete(demo_state_lock); + demo_worker_thread = RT_NULL; + demo_command_queue = RT_NULL; + demo_state_lock = RT_NULL; + return result; + } + +#ifdef RT_USING_CAN + demo_can_thread = rt_thread_create("bdcan", board_demo_can_worker_entry, + RT_NULL, BOARD_DEMO_CAN_WORKER_STACK, + BOARD_DEMO_CAN_WORKER_PRIORITY, + BOARD_DEMO_CAN_WORKER_TICK); + if (demo_can_thread == RT_NULL) + { + board_demo_can_set_status("CAN worker creation failed"); + } + else + { + can_result = rt_thread_startup(demo_can_thread); + if (can_result != RT_EOK) + { + rt_thread_delete(demo_can_thread); + demo_can_thread = RT_NULL; + board_demo_can_set_status("CAN worker startup failed: %d", + can_result); + } + } +#endif + + return RT_EOK; +} + +int board_demo_backend_get_snapshot(struct board_demo_snapshot *snapshot) +{ + if ((snapshot == RT_NULL) || (demo_state_lock == RT_NULL)) + { + return -RT_EINVAL; + } + +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + board_demo_mqtt_update_state(); +#endif + + rt_mutex_take(demo_state_lock, RT_WAITING_FOREVER); + rt_memcpy(snapshot, &demo_state, sizeof(*snapshot)); + rt_mutex_release(demo_state_lock); + return RT_EOK; +} + +int board_demo_request_fs_list(const char *path) +{ + if ((path == RT_NULL) || !board_demo_path_is_allowed(path)) + { + return -RT_EINVAL; + } + + board_demo_fs_list(path); + return RT_EOK; +} + +int board_demo_request_file_preview(const char *path) +{ + if ((path == RT_NULL) || !board_demo_path_is_allowed(path)) + { + return -RT_EINVAL; + } + + board_demo_file_preview(path); + return RT_EOK; +} + +int board_demo_request_can_baud(rt_uint32_t baud_rate) +{ + struct board_demo_command command; + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_CAN_BAUD; + command.data.can_baud.baud_rate = baud_rate; + return board_demo_send_command(&command); +} + +int board_demo_request_can_send(rt_uint32_t id, rt_bool_t extended, + const rt_uint8_t *data, rt_uint8_t length) +{ + struct board_demo_command command; + + if ((data == RT_NULL) || (length > 8U) || + (!extended && (id > 0x7FFU)) || (extended && (id > 0x1FFFFFFFU))) + { + return -RT_EINVAL; + } + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_CAN_SEND; + command.data.can_send.id = id; + command.data.can_send.extended = extended; + command.data.can_send.length = length; + rt_memcpy(command.data.can_send.data, data, length); + return board_demo_send_command(&command); +} + +int board_demo_request_mqtt_start(void) +{ +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + struct board_demo_command command; + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_MQTT_START; + return board_demo_mqtt_command(&command); +#else + return -RT_ENOSYS; +#endif +} + +int board_demo_request_mqtt_stop(void) +{ +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + struct board_demo_command command; + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_MQTT_STOP; + return board_demo_mqtt_command(&command); +#else + return -RT_ENOSYS; +#endif +} + +int board_demo_request_mqtt_publish(const char *topic, const char *payload) +{ +#if defined(BSP_USING_GD32VW553_MQTT_DEMO) && defined(PKG_USING_KAWAII_MQTT) + struct board_demo_command command; + + if ((topic == RT_NULL) || (payload == RT_NULL) || + (topic[0] == '\0') || (payload[0] == '\0')) + { + return -RT_EINVAL; + } + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_MQTT_PUBLISH; + board_demo_strncpy(command.data.mqtt.topic, topic, + sizeof(command.data.mqtt.topic)); + board_demo_strncpy(command.data.mqtt.payload, payload, + sizeof(command.data.mqtt.payload)); + return board_demo_mqtt_command(&command); +#else + RT_UNUSED(topic); + RT_UNUSED(payload); + return -RT_ENOSYS; +#endif +} + +int board_demo_request_pwm(rt_uint32_t frequency, + rt_bool_t pwm2_enabled, rt_uint8_t pwm2_duty, + rt_bool_t pwm30_enabled, rt_uint8_t pwm30_duty) +{ + struct board_demo_command command; + + if ((frequency == 0U) || (pwm2_duty > 100U) || (pwm30_duty > 100U)) + { + return -RT_EINVAL; + } + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_PWM_APPLY; + command.data.pwm.frequency = frequency; + command.data.pwm.pwm2_enabled = pwm2_enabled; + command.data.pwm.pwm2_duty = pwm2_duty; + command.data.pwm.pwm30_enabled = pwm30_enabled; + command.data.pwm.pwm30_duty = pwm30_duty; + return board_demo_send_command(&command); +} + +int board_demo_request_spi_loopback(rt_uint32_t frequency, rt_uint16_t length) +{ +#if defined(RT_USING_SPI) && defined(BSP_USING_SPI3) + struct board_demo_command command; + + if ((frequency == 0U) || (length == 0U) || + (length > BOARD_DEMO_SPI_BUFFER_MAX)) + { + return -RT_EINVAL; + } + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_SPI_LOOPBACK; + command.data.spi.frequency = frequency; + command.data.spi.length = length; + return board_demo_queue_bus_command(&command); +#else + RT_UNUSED(frequency); + RT_UNUSED(length); + return -RT_ENOSYS; +#endif +} + +int board_demo_request_i2c_scan(const char *bus_name) +{ +#ifdef RT_USING_I2C + struct board_demo_command command; + + if ((bus_name == RT_NULL) || (rt_strcmp(bus_name, BOARD_DEMO_I2C_BUS_NAME) != 0)) + { + return -RT_EINVAL; + } + + rt_memset(&command, 0, sizeof(command)); + command.type = BOARD_DEMO_CMD_I2C_SCAN; + board_demo_strncpy(command.data.i2c.bus_name, bus_name, + sizeof(command.data.i2c.bus_name)); + return board_demo_queue_bus_command(&command); +#else + RT_UNUSED(bus_name); + return -RT_ENOSYS; +#endif +} + +#endif /* PKG_USING_LVGL && BSP_USING_LVGL_BOARD_DEMO */ diff --git a/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.h b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.h new file mode 100644 index 00000000000..e7dbef2fba6 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/applications/board_demo_backend.h @@ -0,0 +1,137 @@ +/* + * Copyright (c) 2006-2026 RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef BOARD_DEMO_BACKEND_H +#define BOARD_DEMO_BACKEND_H + +#include + +#define BOARD_DEMO_FS_PATH_MAX 128 +#define BOARD_DEMO_FS_NAME_MAX BOARD_DEMO_FS_PATH_MAX +#define BOARD_DEMO_FS_ENTRY_MAX 32 +#define BOARD_DEMO_FILE_PREVIEW_MAX 1536 +#define BOARD_DEMO_CAN_LOG_MAX 16 +#define BOARD_DEMO_MQTT_TOPIC_MAX 64 +#define BOARD_DEMO_MQTT_PAYLOAD_MAX 256 +#define BOARD_DEMO_STATUS_MAX 80 +#define BOARD_DEMO_I2C_ADDRESS_COUNT 128 +#define BOARD_DEMO_I2C_BUS_NAME "hwi2c1" +#define BOARD_DEMO_BUS_LOG_MAX 3072 + +enum board_demo_i2c_address_state +{ + BOARD_DEMO_I2C_SKIPPED = 0, + BOARD_DEMO_I2C_PENDING, + BOARD_DEMO_I2C_ACK, + BOARD_DEMO_I2C_NACK, + BOARD_DEMO_I2C_ERROR, +}; + +enum board_demo_storage_id +{ + BOARD_DEMO_STORAGE_FLASH = 0, + BOARD_DEMO_STORAGE_SD, + BOARD_DEMO_STORAGE_USB, + BOARD_DEMO_STORAGE_COUNT, +}; + +extern const char *const board_demo_storage_roots[BOARD_DEMO_STORAGE_COUNT]; + +struct board_demo_fs_entry +{ + char name[BOARD_DEMO_FS_NAME_MAX]; + rt_uint32_t size; + rt_bool_t is_directory; +}; + +struct board_demo_can_frame +{ + rt_uint32_t id; + rt_uint32_t tick; + rt_uint8_t data[8]; + rt_uint8_t length; + rt_bool_t extended; + rt_bool_t transmitted; +}; + +struct board_demo_snapshot +{ + rt_uint32_t fs_sequence; + char fs_path[BOARD_DEMO_FS_PATH_MAX]; + char fs_status[BOARD_DEMO_STATUS_MAX]; + struct board_demo_fs_entry fs_entries[BOARD_DEMO_FS_ENTRY_MAX]; + rt_uint8_t fs_entry_count; + + rt_uint32_t file_sequence; + char file_name[BOARD_DEMO_FS_PATH_MAX]; + char file_preview[BOARD_DEMO_FILE_PREVIEW_MAX]; + + rt_uint32_t can_sequence; + char can_status[BOARD_DEMO_STATUS_MAX]; + struct board_demo_can_frame can_frames[BOARD_DEMO_CAN_LOG_MAX]; + rt_uint8_t can_frame_count; + rt_uint32_t can_baud_rate; + rt_uint32_t can_rx_count; + rt_uint32_t can_tx_count; + rt_uint32_t can_error_count; + rt_bool_t can_ready; + + rt_uint32_t mqtt_sequence; + char mqtt_status[BOARD_DEMO_STATUS_MAX]; + char mqtt_rx_topic[BOARD_DEMO_MQTT_TOPIC_MAX]; + char mqtt_rx_payload[BOARD_DEMO_MQTT_PAYLOAD_MAX]; + char mqtt_tx_topic[BOARD_DEMO_MQTT_TOPIC_MAX]; + char mqtt_tx_payload[BOARD_DEMO_MQTT_PAYLOAD_MAX]; + rt_bool_t mqtt_running; + rt_bool_t mqtt_connected; + + rt_uint32_t pwm_sequence; + char pwm_status[BOARD_DEMO_STATUS_MAX]; + rt_uint32_t pwm_frequency; + rt_uint8_t pwm2_duty; + rt_uint8_t pwm30_duty; + rt_bool_t pwm2_enabled; + rt_bool_t pwm30_enabled; + + rt_uint32_t spi_sequence; + char spi_status[BOARD_DEMO_STATUS_MAX]; + char spi_log[BOARD_DEMO_BUS_LOG_MAX]; + rt_uint32_t spi_frequency; + rt_uint16_t spi_length; + rt_uint16_t spi_mismatch_index; + rt_bool_t spi_passed; + rt_bool_t spi_busy; + + rt_uint32_t i2c_sequence; + char i2c_status[BOARD_DEMO_STATUS_MAX]; + char i2c_bus_name[RT_NAME_MAX]; + rt_uint8_t i2c_addresses[BOARD_DEMO_I2C_ADDRESS_COUNT]; + rt_err_t i2c_result_code; + char i2c_log[BOARD_DEMO_BUS_LOG_MAX]; + rt_uint8_t i2c_device_count; + rt_bool_t i2c_busy; +}; + +int board_demo_backend_init(void); +int board_demo_backend_get_snapshot(struct board_demo_snapshot *snapshot); + +int board_demo_fs_source(const char *path); +rt_uint8_t board_demo_storage_mounts(void); +int board_demo_request_fs_list(const char *path); +int board_demo_request_file_preview(const char *path); +int board_demo_request_can_baud(rt_uint32_t baud_rate); +int board_demo_request_can_send(rt_uint32_t id, rt_bool_t extended, + const rt_uint8_t *data, rt_uint8_t length); +int board_demo_request_mqtt_start(void); +int board_demo_request_mqtt_stop(void); +int board_demo_request_mqtt_publish(const char *topic, const char *payload); +int board_demo_request_pwm(rt_uint32_t frequency, + rt_bool_t pwm2_enabled, rt_uint8_t pwm2_duty, + rt_bool_t pwm30_enabled, rt_uint8_t pwm30_duty); +int board_demo_request_spi_loopback(rt_uint32_t frequency, rt_uint16_t length); +int board_demo_request_i2c_scan(const char *bus_name); + +#endif /* BOARD_DEMO_BACKEND_H */ From 7f82e6002fe99ce2556f40eff2fc8ef91249d62f Mon Sep 17 00:00:00 2001 From: CYFS <2805686936@qq.com> Date: Tue, 22 Sep 2026 17:49:26 +0800 Subject: [PATCH 19/19] [bsp][gd32] Add GinoPi CI and peripheral attach configurations Register gd32h77d-ginopi in the Arm BSP CI matrix and provide 33 attach configurations for peripherals, packages and optional applications. Each configuration extends the minimal UART1/PIN default. Enable memheap automatic binding for the SDRAM heap test and use an 8192-byte LVGL stack for the board demo. All 33 configurations were compiled with GCC 13.3 during hardware validation; affected configurations were retested after fixes. These configurations require the matching GD32H77x_78x CMSIS/series packages and GD32VW553 at_device support. --- .github/ALL_BSP_COMPILE.json | 1 + .../.ci/attachconfig/ci.attachconfig.yml | 200 ++++++++++++++++++ 2 files changed, 201 insertions(+) create mode 100644 bsp/gd32/arm/gd32h77d-ginopi/.ci/attachconfig/ci.attachconfig.yml diff --git a/.github/ALL_BSP_COMPILE.json b/.github/ALL_BSP_COMPILE.json index fc3600e713a..5587bea24dd 100644 --- a/.github/ALL_BSP_COMPILE.json +++ b/.github/ALL_BSP_COMPILE.json @@ -331,6 +331,7 @@ "gd32/arm/gd32470z-lckfb", "gd32/arm/gd32h759i-start", "gd32/arm/gd32h759i-eval", + "gd32/arm/gd32h77d-ginopi", "gd32/arm/gd32e503v-eval", "gd32/arm/gd32527I-eval", "gd32/arm/gd32e230-lckfb", diff --git a/bsp/gd32/arm/gd32h77d-ginopi/.ci/attachconfig/ci.attachconfig.yml b/bsp/gd32/arm/gd32h77d-ginopi/.ci/attachconfig/ci.attachconfig.yml new file mode 100644 index 00000000000..c58b6cd2bb3 --- /dev/null +++ b/bsp/gd32/arm/gd32h77d-ginopi/.ci/attachconfig/ci.attachconfig.yml @@ -0,0 +1,200 @@ +# Copyright (c) 2026, RT-Thread Development Team +# +# SPDX-License-Identifier: Apache-2.0 + +# Each project extends the minimal UART1/PIN default configuration. +# Serial V2 and UART DMA are not supported by this SDK port. +peripheral.uart_v1: + kconfig: + - CONFIG_BSP_USING_SERIAL_V1=y + - CONFIG_BSP_USING_UART0=y + - CONFIG_BSP_USING_UART2=y + - CONFIG_BSP_USING_UART3=y + - CONFIG_BSP_USING_UART4=y + +peripheral.ethernet: + kconfig: + - CONFIG_BSP_USING_ETH=y + +peripheral.usb_device_hs: + kconfig: + - CONFIG_BSP_USING_USB=y + - CONFIG_BSP_USB_USING_DEVICE=y + - CONFIG_BSP_USB_DEVICE_USING_HS=y + +peripheral.usb_device_fs: + kconfig: + - CONFIG_BSP_USING_USB=y + - CONFIG_BSP_USB_USING_DEVICE=y + - CONFIG_BSP_USB_DEVICE_USING_FS=y + +peripheral.usb_host: + kconfig: + - CONFIG_BSP_USING_USB=y + - CONFIG_BSP_USB_USING_DEVICE=n + - CONFIG_BSP_USB_USING_HOST=y + +peripheral.sdram: + kconfig: + - CONFIG_BSP_USING_SDRAM=y + +peripheral.i2c1: + kconfig: + - CONFIG_BSP_USING_I2C=y + - CONFIG_BSP_USING_HARD_I2C=y + - CONFIG_BSP_USING_HARD_I2C1=y + +peripheral.spi3: + kconfig: + - CONFIG_BSP_USING_SPI=y + - CONFIG_BSP_USING_SPI3=y + +peripheral.pwm: + kconfig: + - CONFIG_BSP_USING_PWM=y + - CONFIG_BSP_USING_PWM1=y + - CONFIG_BSP_USING_PWM2=y + - CONFIG_BSP_USING_PWM30=y + +peripheral.sdio1: + kconfig: + - CONFIG_BSP_SDIO_USING_SDIO1=y + +peripheral.sdcard_fatfs: + depends: + - peripheral.sdio1 + kconfig: + - CONFIG_BSP_USING_FS=y + - CONFIG_BSP_USING_SDCARD_FATFS=y + - CONFIG_RT_USING_DFS_V1=y + +peripheral.rtc_alarm0: + kconfig: + - CONFIG_BSP_USING_ONCHIP_RTC=y + - CONFIG_BSP_USING_ALARM=y + - CONFIG_BSP_USING_ALARM0=y + +peripheral.rtc_alarm1: + kconfig: + - CONFIG_BSP_USING_ONCHIP_RTC=y + - CONFIG_BSP_USING_ALARM=y + - CONFIG_BSP_USING_ALARM1=y + +peripheral.watchdog: + kconfig: + - CONFIG_RT_USING_WDT=y + +peripheral.can1: + kconfig: + - CONFIG_BSP_USING_CAN=y + - CONFIG_BSP_USING_CAN1=y + +peripheral.canfd1: + depends: + - peripheral.can1 + kconfig: + - CONFIG_RT_CAN_USING_CANFD=y + +peripheral.ospi0: + kconfig: + - CONFIG_BSP_USING_OSPI0=y + +peripheral.ospi0_mdma: + depends: + - peripheral.ospi0 + kconfig: + - CONFIG_BSP_OSPI0_USING_MDMA=y + +peripheral.flash_fatfs: + depends: + - peripheral.ospi0 + kconfig: + - CONFIG_BSP_USING_FS=y + - CONFIG_BSP_USING_FLASH_FATFS=y + - CONFIG_RT_USING_DFS_V1=y + - CONFIG_RT_DFS_ELM_MAX_SECTOR_SIZE=4096 + +peripheral.lcd_mipi: + kconfig: + - CONFIG_BSP_USING_LCD_MIPI=y + +peripheral.touch_gt911: + depends: + - peripheral.lcd_mipi + kconfig: + - CONFIG_BSP_USING_TOUCH_GT911=y + +peripheral.camera: + kconfig: + - CONFIG_BSP_USING_OV7670=y + +package.lvgl: + depends: + - peripheral.touch_gt911 + kconfig: + - CONFIG_PKG_USING_LVGL=y + - CONFIG_PKG_LVGL_USING_LATEST=y + +package.gd32vw553_wifi: + kconfig: + - CONFIG_BSP_USING_GD32VW553_AT=y + - CONFIG_BSP_USING_GD32VW553_MQTT_DEMO=n + +package.gd32vw553_mqtt: + depends: + - package.gd32vw553_wifi + kconfig: + - CONFIG_BSP_USING_GD32VW553_MQTT_DEMO=y + +application.board_demo: + depends: + - package.lvgl + - peripheral.flash_fatfs + kconfig: + - CONFIG_BSP_USING_LVGL_BOARD_DEMO=y + - CONFIG_PKG_LVGL_THREAD_STACK_SIZE=8192 + +application.usb_cdc: + depends: + - peripheral.usb_device_hs + kconfig: + - CONFIG_BSP_USING_USB_CDC_EXAMPLE=y + +application.sdram_heap_test: + depends: + - peripheral.sdram + kconfig: + - CONFIG_RT_USING_MEMHEAP_AS_HEAP=y + - CONFIG_RT_USING_MEMHEAP_AUTO_BINDING=y + - CONFIG_BSP_USING_SDRAM_HEAP_TEST=y + +application.filesystem_test: + depends: + - peripheral.flash_fatfs + kconfig: + - CONFIG_BSP_USING_FILESYSTEM_TEST=y + +application.pwm_dual_test: + depends: + - peripheral.pwm + kconfig: + - CONFIG_BSP_USING_PWM_DUAL_TEST=y + +application.rtc_alarm0: + depends: + - peripheral.rtc_alarm0 + kconfig: + - CONFIG_BSP_USING_RTC_ALARM_EXAMPLE=y + +application.rtc_alarm1: + depends: + - peripheral.rtc_alarm1 + kconfig: + - CONFIG_BSP_USING_RTC_ALARM_EXAMPLE=y + +application.ov7670_preview: + depends: + - package.lvgl + - peripheral.camera + kconfig: + - CONFIG_BSP_USING_OV7670_PREVIEW=y

lcUiIYoms1WmE-3AQRsMj?%w6sUI)wT@P0RZ_#{f7 z5!rtAWl0niUVA%lbgRAHEiC5${rd;8XQ1^N{P6?1Wvb&J)B0;|vUaQS^V{u%=QJ<| zvXs$M8gTR5938_<3D@yB*~*58tL$wvN||RBzv#J>FHdn-@#Xx!x$g}obCF(PSUAC^ zo~Fh@G)`h#ga6X+J3%D`B@;zdl&_-vZ@;mP-zF1u3O8B&{luaASLx_=<57n_! zPX8u+`qcg8vbhC@WCzbW!}mHwSl^K%0|LAti0FrgWZtPY;4ibO!wycg(ow=?`=d>o z$E4q0_$3-{FfzFA(c`ddr;e9FHJGBO^h+r2j}SQ%`DjpQDs>vcFHyRg*W@eP;J` zLZBVmR)F0;;fmnd^{#6*HAIDWbyK$3p;e2sz(I8pQeQk7g*)PK- zJgeLl846nGriroHjdKLZYrJn=`#@26eov`!fzr3~9=!@9qlsoAP0P;o1wQ|^@d%3d zr@DmWXmhV;`9TUd)(%o{6aTUl`f-ni}QcF`fM%r1yJOJFF&l zM_Xegj+a#=c1z;VW(<|~x2{CBwLP>PzR|-vRQt|$Z{a+zj?C@HvQlEr&n~?d_MfvB zdFiJ3X?h9Mu8{aKpZr@352u3m_kop!cM<5!TKBCtP+{lhwuR*}ky$AVb-kJ)2(fE- z!O$=T^Ykoyht~f0x&-fCktCc21vA2=y@cHz8zUU&Y{{u-5ER^|`2y6Zwy>g+NM`2pqwdIZP}Bq;nQzU`W1et+4Nr zB3XEa#5qRFO&{*dper68%?5)w=s239uuv}&{?ZVh1 zWFnEt_YZOYcAmQaUb>h$<6akuxK`(Hs{8eK z1(HQv;F(@B2-aXf#~ux-K{_R-*Zv)UQAxJYB~nAs$Wo5WAZbXMD)G0}L-~|sDf99V zTCS@6{!y)QMd7fwKq^%gPM+3IP3G6IjV@FAR9kxp(QbMbPp^pumc`Jdy-NmAsd0H6 zPpQ2vl>8W+Lx7*Yp8>p6u#lb*5D_z-5Rmo4d>&*bFY#4ZRU?Is0eaSFy>8@l_hhYy zQPpnEgkx>9#i#SUR8rsWDBP5lW88&Ofd;_!V^ zK}5CB7BrH;=7T;l~iZ*Dcx6)ME%Rz%EbLn}jsk57#8z^TpvkliN;FKX^3Q??-!n8`Ky z;$}Tc4n7|YuG%z6eMP5|pM%@wP^FO`Qu&CZb8Tvhnzuv)R_ygz1?8XWMkeVfyx@_$ z&AI0q{`<1xMZJ#VLp>40z3=!S)Dtbbn#$9T;)ho~YY!LiecJ-%ooC~>o&^OQRr~0RTk9R<9@sK&O0djkL8>pjiXyM5%=WXdFjY`8ij2C*U5Pd&Krq z?!y4&#Gs0N)_zo*ig0Ra78uk5k||i1z?am`2&NAVzD`h9!>&V#^7eWsC2l{voK+^6No{{y;p~fQ-!mAF}qRsH4V9+w@l>G z575ab6wgpi(~Rq=%z2@pSuaCMFJn#9*xL_t?LUPpQzLVxattx&Z(9dh*Y6h=$E?$OCqD0Qm)()(JpfiXt@T%;sWPeY4>odj{t;bF&Z|42CFX$SFD9Dap2t~Gw)koqV7Vm)~?pw^My)mzYh26yqr$;TYck9(C>7Tj{OxchOn~|X@p<(oZutj zHh>+)H7$OIqrb9zN>I7lJ2-@YQTR+=^O)m;eI@&5=nIeutgZFJfJ-Spo>38M9CDVY zC8?#DW|I~Lsq7aY;f{!6WuLRqnP}@^LTkj|WK_gx{aIf(s(m&Ib=dCj zac~yDA0PLQ<-wP+lIW4@b&W;bU;_D|5j!*eS)x{Dq4beg7GS#!-IIC&Hs ztNFA|;8o^;0qkw*&}bpxT=dN=M4EhVWKpD@kQ_A8p(;y#y3)~S%$)FLr?LkIwVmdr zFlGMbJ_5Y<`+h1sIfw*Z6bW8n8G|#8rHxn#FZ#%apEYF?6cG1yIt`j_k57|%v*Z0@ zmN8m~m^wNb8{$cBqRBpIWqAccKVbL^nZfjQbOtqUHk~U}JlIMn_Va8M?*}E5MBd+> zEJZ4n>5`L}$6F*^H~O~`m*vn*`{B-oP=qCQWQh!#H&QBzv7HoT#Fs8zg3s_r>}N&! z`%AGmf2*UfY2;+|(qq53qP^Z$+N(h8){fh;~{?A6f-_mW6IGV`L7ZkeiP;7vxqKrxGm2a!ls7sQI4q zAP2^OBz2mfsqj(^z2!#SpH6&j5Ao_9Ic&I-im#h)<@cr$PO{ z@{_nh@g>&kH^0>f7IfWd!=w=f>2=N4Qjh`NnW%)Oc4~dkQw$0_6apF`88ujxlGBTq zFURRmq;QszT`(9BqrZ%EPPR8&xRE`+ZdmRp9ONtMfuHI-pFQ95taQvSTNNdvwh4vN zRWq}zEG&`C-OjAnIiz&s^sBvxV5DR}0si$_ufJiL>o>H36@gY}uVUm>SEG~!_hHxw z#RCPAN+sF}=5YIJ90AN(IEV<#G#q1#kEAIYYg*2$afkEpw_)0T|E|c^4rXI-O--6e z?CGE48ujhP-%BT4>1ArG)vFX{(rFO;aA5C{cdCxGA+GZ{%2nAYrf}HCajWz(Qin?- zC}b%5q`pjA=oWqa__3e>u4y0vA2uA#b3?PI*50YuT2oW=wm1C5wI`iFJm)@}xsuW) zDQh=3&Ap&b5@A!N|80-r#>|td}0tgJU$D$f%QK*kuSKhl+zn|kZs6ZX50pCGjms8 zq8e2*c97|uwe%Ozj6q~H5pO35MR9k9Zlx$}%CG9_rik9!aZ^^)7w6)%`us%#5ox-A z_(iTT^u^DgP>;hhzShIZ3FU3n`Le{-e1G?7t>4)`*`R4W#60*=uT zcvevlh^<4n0v3&;MvfTf-gd0-1lyLZrW&wQuFyPf>RvWq+$fomY$?0nYNgxlj7;}C zcl$kk{4EqIg%tdy8kMg5-u0g;TTma9&PKI6H#av!VU?yyYNlr>_l1wB;{{@9aH;0! z!~`$~M^-EBMbi}X^H-kX)(S6p+-4_a@}^*#+w;DpwYs(@?!9d-M(^Rl9jIi9XHuMGfb*mqv=w2(l2csy4Oq^kL<4Mpvdzy1jzc=Q#_CZtoYg8enk}5_9I}+AP z(s)m3ajhyO;Eh2rX`W_u>zCTC7BcRy#_5({N~Jm%AH=t8VcLx!u$OZf%29gJ3-|73 z)fwvR*IMAHAfe-aalw?+@vcJg$NVm4F}e)zS#Y-f86O(+`ekPnU}VJ5QYCLFj{4hG zit!f?3Fh-}($jwt@t~1vI7^D$(9z`iQ2`t_a*={5Jr~3o`^P6>tMU}{hg;rP zT;(=o5I9O4E_jJ&^kj+(_QBn__TzrQX&RlV;U3~O_YzYJ#m&rX!WA#15lo7x5(@nF znAV`6Ak90}g|UCdBp^+uT*t#)AYyf?EjumuqG&PZGa|dGsVT(>-~jt8)~w8-X1bEo zPtq^qOhOSA1pwt~FBfq5fhG;}_VIy`3xoBx3#rMeP+{rjT2TL`nD96%2$+t=FZwLE zOVHPdbr`p~-(J)uSL@;}cxMB?j^>#sT!MUj@Qh%&2Hkbg=Y_aCZ}kFcuCTYSttI0Z zr#xq&yEBnXY-?+)Kb%}&`&mar$sBxhqwEitROJ2KD$JtBGEBmgEd=dG8@I$-PJ2mZ zuN!VHdJ;7BB+K($5i@0{O!WQfB!t1aFegB9U5X)0!}0aFiM+whqr;ci*8W#-^jeru zoAe778{9M^{9h9#4nA%fEy9ZwoIrcT3V9Oqr%If_K=_HzX-7BWeEfHK`iwxIfXm zpRg%kO1oq5H?!I;g$C7raYO8;IV=MCDG0=aK=NG`9M;Y^1?Gy z>sOouGhS+xGVDK0@~+4@gLXE!V<}fnmm2i5Vs1+>9G(uv&_uV=R@hT9mGIS-q1=VK zuRcJB@(nq$UkZ~F!|8@Qr032GMKKzhlakAAKFyukc~mw`$vR1x`*y*&sN!lj z^<;HUz3|GE@JnHj=fn|rKGN}~A$9b%9zT}y=cZiyykG5p3skTVbPN}_C(bc8ldhHi z_oMPpeh}9|mAR;qt;nH6VWk*eV`2s!Zlx>#h$lr*6I4GhRT4F#(l!#*%th-}16v16 zkny)7sUL3tWu=I>U#;Pi!|?Zj)#kr}W$SWvN*SCRZANc0O ziiZceK|Q++cubx&GjgMw z!c;Uaj5>d{t7UGfr3K9_@JqPAxeO`&vB#{%Su7;d<|=_~F_|iqMhHD-d&yMUEO+Gx z*0_oDZ;pj7h-G1S_|8lh1i&pVqu{tMDzEkox>z)|s$i7}VrZ1zMNdC@@#|UXeC}FF zLb11*TAm?rCBcnl7+cW?C?c)fkpv$WKq54-ZV_XS@st_{3~)5qhvN5vdxrJJU||TDksL?+*{w)KqFtSdoIc z<(3bEsm4NmCGbr)u!vf9rg@}Ux)$?)Av$*r`_uE-daq!?}s)9gyG_CGwmbyU<{|NT9b4C#;#g33_R zEuACXAf3|EAtfygNDLrIgCHm^Eh!}(5*J7gjevj%NJ;+=_jf&yf4G)QMThy!Iq%r} zwd4CJ3N8ChR} z$CRC`x}*AQe-}5W>iWrgFsjz%@V#`!C6)TEx@ zQ|J_f^=F+DK%%i{`UId*H%9hCYKp?02$Q3>DA+_RuYNJ5=giL0_!t#bRSF`7qJS4Kw#hngj*l`G{9^Ca02|UOHL$RSSZ1I zoQSB$Z$3LKD`0uA4Ia6|oMy@|ED-d2hNA|}7MFP(`RTdYG=V(?YlN)>hWyhkgfGD$ ztLb(RHGe39sqcAV&|in!d5`Piw9se{+i#Ql=qPE z&HGZk)9jFGn992rlMg-iWO)bT66%ZrQ3goanqWW7BfD*@NVaiaqUSqYYZh`LP7!& zd$wVK=Doi9yeA*j!ivpuqV<%#j>t3T;@?o(>Q8t?sC{sGIgABW@`}{xOG-7kaMetz|VzN%dpUj1v9EqShcQo>t5G|K7MwgVBiZ zgHz=*7tS9ndu*zS=uT?GM4QA>FNMSKn?OZ)WEhP5*H!(395e$cSeqX;$}VH!LToIR zL^oj`OTNrawvI@>6b0?5ryVnwmn}2&e7%(KZE|o(H3=SXiI`4P6{N3;fZAE3fPA#D zYs_tl%PQBk7E2z}!;97_VR`|LU+b@7sIU&Opv09PvlQlXC6L$V96~a2rl?e`t^YN` z)YDjZZWgxU6FH9)#_O+JSJJ)D$$3ae=bV*a=YX;|(uA*}Ji_=0Mc7iPx9bRhQ0gU$ z*po%m|BOK~(;y>lG!lt}mhd5by|Q1%<97C2mj6ffs;7LG5^2@_T5HFp ztaQ8Cr=*2fQj$OkS9ieMtRwxiDps_OQKVrfT#<|!#hSF;>{_4$fESye%@0>&d1BZI z-8Rp1wmQf^CDU`twSNQT`;X=Z-ZY3_(Qp_$VUjIX7j=Va64jE=abtv@UeyN3hWco{ zrYh%EZCGc3))+?ip#=q>wCVzsT) z3yz`LwxCU5KTSU+gh1eq!$Oz-h z0HVR`)#qWO%q-|-W+2iR^QH9Ur5qdHmx3`0$kQs0p00x8B>KXbMgW(60Yk~Y-PUA0@~#{L$fYJ){DYjGop+{OfCn@C8}AXbaw1c-z*z848fyp-S#q~N zHvMKGkeBJOwf_B^c-z+t5~I|>CA^?30@FSW<%h|WDbz42H&={)*8rQ6gg$u={fRIB zt?{2fb(JtTbBCGzv#!?lM3T8WierVaeZsDl>YH$ zFC68d9qD9)SomZanVEAfuU>-D`ocb*z1(+a%z5I8)J(idAN*?t2kh^Ez?4oW%AlMy zQ5Dn|`kCx{m3G$jbD}-P8?|5S%@vk# zHjXWkc>2zt{27Lv^}c)Ny@r&i{0U3&NoVfN*nCyL!+!^;%70HeCRsvZYN z{BrCan=5v*58smK5!}N^LI-rjgOgxkB13ky@tcHviG{_HmN4Yp7r92dt1#C5^1eWa z1Xs=9^3`K)?^!oLP%+faU*4d7e~{}-M|ezK7fzh~b`Hug(B!n(=E;%TTett}c+;MV z*G?J~vh`-B;M$tk2P6KC7Y$yX;=@;;YP6a!x_ozMYm2m4IrTvo>+9_u&5~MLN;~Zq z6{bbGlUewGdZ$r~i@71`D>gy(kyo6#kM7@RrzB(;kU`e=!%SK9c!wMEuz zFkqv@hqkK~<>jSU)+sl3nUJtCB7JI=S(tto${>gjLMcP8rth{Knzd)5vs__!UjOgx zm$>A$#o7eeL9Bk!^_G-(-Eet0JHNiIvcM4->Zq}Fi6-=|^^C6`&2zrd(%0*J!T;Vf zvm!KBRpXS4*3zBj+3S-IAEUkUmsBP~%&rE#y9DLWf9j}E$!BC`fn^;yTvAk`zZa#t zZIcVVsAW!*dr?gCT8uHQr=|5hHKYGZzJfyo(&X2J{hPI^6KS_s2Xl9qPQ@{}Pz0YA zIaEt;l9f;n!91h`CR(@qe;L5_zMP=sL( zK?=R2V)~aX&WfF0;4?<_mb)nYD6#s-Q(?9_#k~Bcc)vTsRg-E?R4q)1^Uv#(_fyJ! zRP%ONL|MayT9VMCfYi7|z7aO&Yyo*~>_=ZKcAD!st&LJU$L!Ip!9Q0ExACQB%Pl zgAGfyRl{Z&;zt=S%Y5^N-Hm@i7@8XXpV7q+u2Z&NNsNP#V~Qt@d&MAOp428Cf_0-+ zTP{fY6Uv>m>T{I6dI}Y}Ldv*RXH0{G!|ELqg{xmbSWuQq`M`5yRs8}}-*MAPC;KUl z0GsJK-Kx-vdS*rjTZ#(Uor0wxlCZ)dvtq|Syv-_@^$+*b>Ck$O3&yIBO!Y0?Hj082 z@hKRWe#|BsN59O#F@?QX1ju&Jita@rvLLNWfp6<^A3TLAXtfl(V8D6H(|*ZcM2tl* zn>@OqvW{nzia;iz-g2%A9>3)sIs5*<1AWuf%TX>C-#V~7cX|71iQcsjk8Cu5` zFfGoIn7*g}lew=hRa8Dp30Nxb-yhtp?dfbO+47-efR_8^8*}w>#__Rmkf##!KtH~P z-CtpT{|WQOx;b%Zow(}-K^<(jc={}9iK=0@&=Q^!!@=($sLqi#^sz4?#@1*;5LInh zf#t@RfrXz9<03m%KI{R$?Jn9yULY?1xzCr!2K!0r;n02T=vK2EFS;3c*$uzLTS)tQ z=PaIMNQaVK;|04Vo+J2VL_;l!v7mfEVb4^sdQ(*7zvR!^T~|Js;|gzkzZ82qwUH5P zSfj>G+dy9E${NE!Ole(hSZ(M`W5VA{A7wbyM+E60L&GJlg+_R^;%7=0#TF`mrimSU zn+fj+qN{C<3LVB-J?V;`V1MJ1Z`ivaOs!&|P^jj-^~o}j#i1+%v>gRV=j5|t7gbT< zJz$Mt(j((}4a-OCv8SA!ov9Rb(km5B09#0jn%FA6LtW>6!?HkZZ8;m1Ne@Dz;BWFAvSE?pS-#8C^#pAhYJG2mM$No@E zj=Uo`?;vKUrU^7hrQmkCJje|egN6}tx3Sjj-Zn?^@xiBGm+)XJNnVSuHp!4EUjE!s z02)=#5;{IQy%#I50NuYb^gSIL(_&94)nx~tEchB2(t#Sg!cB`V24gQm$mz8WGkbUoeO_bqOYElz$n zaaQ}|ZAxTREqWh*y$v-k(qZGf!@2_X?4W;>tvx6LNhbQjYW-R1ma_-=Xuw@A{$!;& z*uWQP$yFPl4iA5i9qWJgFgVzbVQe6|{+YH1Epe=9-i$b=HbP^J<2;_BNOt;ocXQ9s z&~S{h&h3MA*2ql7Q$}*t?vM1iPzH!7Zn91%>+?VYTQU_C^ES zKUmibOBk8t6M2*g@zGdO^vf`;4v}z5cY^2jm!zUEtu}Ae@o_sZpBWRn^P|(5l#@ND zz45A!Bp$~wn58kHb}Gt$MWV^>;;^e`=6k9z!k%-+M#fg`Si(ADfj^1Rw3!`1k zDGzI!OaH>1>Kaa>lA^r}bC?ppkU9keeRuxqy&lTyg_lNu>!TS6`DbWR9CS%wG0r*aVI^v?M1BS-a*V{E$5o*P9ElvE=vNfCEM z^z>%YTb4gn$*t6iU)om5JyA5wx3uZyLbBNd?p0QyQKhhW`J8yJFPZfewbU0yEJ0|l z|2A8LgYV{Fq$ZF*t{wQ*85bloKqvHdieH&clU#*bZ(9Y}`PUei`&V$OLLr4Eo<%PM z6lu^9{F;0+?q=aa7fjou8s6^e^quBxKIK&TOIm9b-*{#rd(EausKApV0gd}{{slT) zyR;o}fz=4hPb!2E8NW_>ZCuDZ+s_V!kx@8i@apx(vSV5x$3B|-}CQBv) zrGb1_2t=7Y3SN}Mk>Meq8q;%@FWBeKsN~c6l*fn-2v0@}5 zB_$>LWOm`bo6rsfOZHESEpg~~StSSXjZ!Je>+uTp`>5RoXD>A^OCFCIKY8m^IkQ_& zh9AnkrKPLq9kisDo|y-_A+h)!kxU0bpTg9uPvAnd7X8J#U#f^I+0|C;#MBr5+H}mU z|2`D{v`SY9rFhXd)hUrHb`v*;lS{J6hT0VkhK5sxFFd2bo90?_U-QQJ{y85w zyg1ogdW4(koLQnfSVJxgiwZM0y??JN3RbVH!6-wf2;+w|p%6$J8|0x-3FCK+l#twaofV&N1o_Sc~6oAqC@l9%qI?m9`Sax z@Di3VvAK9u{%Vh1cy`2%AyNOYn@qfNry1lv{m=WkQ;-(_98IooDqPSfr31y1) z!^4JjGy`xme}M;=dQ1huh2TNBOK`4t>kWpKTpql=PWx)Dm<)#Y z-CqP5Ixl4OCwYlM{AAP$+JxZX#uG~Ud9d^x;QFR_ytxwhX-N`C8@&FKEjyPqpdibo z?26D|NjbXjG7FzPxMbogPh=V2aL59QJiz@7`VL)j=B8?V0o%og)WsRo^B*$sJ4$1uVMDX)a^ zj=q!&iIP=HBM+y6xX`LreR8(tCFOXO91wlLoIH}dv*SIc{89AaX5;P$nw|v04I+v}(og}&znV(u8vQ;* z=Eq%1JuudSd|0|@UAl6+Ii?tuy7&!f7+Gc0K;%CXDRF8 zw%$`{=+b%l5@2-QEIe^i*w`SvYF!A~AGkTV7I$?^-44Z}+=MU?Sj+2oy_Lhl;#VuM zdikz4L(R@_@_C8w-)uWzxk@QhOh_>I-=dw)7SQ2Jq4_vqgN@W+xbG+RoDRF607q-w z29Nv6Cvh&xIf~^G(_sxf=sNnp0xn!GzF}S#)IakMQG;UaEY^n!l|YHN(CiK75c(A} zIXjI~-8Er0JW;SWXe?smEILK4?qC>_J`AdAm#@_zRyx~digGpPMcZjY!BWjy(f(V;)sI*k*K8aom zU$2M2;`=>^AK4wGcl0Zq1s&l?*uh(IeF>HUI4?Qg!%ov_y}kn>XA$8P6|Q8Jmk~&z zEC7FHO8i`!w>Jb2XVzB7JQ_c}@)EKZ-c2)?@*G~|h*Z=Url!{aZ1RltyJeW@W-`B# z9xek(*IRiTkLvVcyUo77H*X9Ibf}TfZHC?X9rz$fBAZ$E5KmY{OyMe?NJ%DEF zD!a2*_(yOjIvv6EZCUV;IR3d(=k@g>@I-okXb*VtqMsLSDDkJ6)b{%+HWLnkk~)aC zd_pZ?+P4N3$|PZQSa1I8Hq$iWLnlq#((xDt9N=cc1PGs6ge3|>90tLGoxes`mC!;% z>dy-9=u8Y^!B55RSpyLquEjYZRj)G`N;zRL-{)6xAcC@FwoBzR-q z&(JCJiIq@>9Fk1N&6fGBTvb60>1j|AFxe5a)iw+C8hqc9s3?X`kchv%s1IU>D%149 zHGI!OE^ylE$F?P$0Ya14wv)(9ZZzDsbJjt@AdE}DygXmWINf$OD1CF-uEwIKp6aEZ zk(Hxt`!as_oBr+)O(;xe5DVFVeCfw9>2-N909MKMd(!SOTDys3Kgxk-QpjPT;xpY2 zHfF>daEiX**R>e|YHS+QCQlz95NAbNdA~H3quMa+<(~jo_QX)wY)&}eQKy!oBTVe| zX3<26nvhXB*VHz1*H~d;AH=GLg^VZW1uh@&YNR`HPOiC@m*~6ESphtHoWZd0Hz$>b zqHsL!pW4fqP(@G+k}cCAaS^CcYY5p-2ruR(i5}?cCmlu64D#>v)XS#sC!uWRu^}=j ztYnZegw3E_TKZyuGMTC5i{Z!yKc>NTLvW0QIi*HWo)qgbiitehv5tMna8h^abjQc+ z$q!y)g4k94?}ri`DZ~uYi7Kqk3|m0Kj?$4PuHt0NydRl|OQjOte`sSi?Y-bSr%mZ% z*uHq$lCiZ#tsAdx4=5(s9BYm2v(pPL1HR346ZD<>$GJ`uSsx@X z6dPo5zr~6Qz2`sh#m;Ez$+UU7(!q5OvPvjDi|fbG@$0s0B44w8;N{a&q0}2EDOmh0 zL;SJ-9dD8ilPY-uf{_eCX02wR`^@0C*z3@cbq)){r%QszR@JN=guQsyUWrRON-Ln$Ab_(4@nxq}Uq0&rPa<3lFS+|eH~ zJO%6`AH`giu>97tn|$ea)P*C z(d`^BI8`k$A1xN=m=KVbXX5^Z46%Yt+zO8|K?BCsl)=QQ0*_eSb!C@66bT#;$@{}j)0S6IRO{UXLv{OsK=^zfI zGp43rT*TjNypausf$0d)_aO7iS=k|`Z));6GC8quMWS`|v*q(D1`DiSE z&KBVlleYM7H<4lLbJZJX_^m)^Ku}%b=_rxlQ(pD$I|+oh2)oW3vZn+CfU;3)-T%r0s&JU2NRSR*?Iu9Myv-n?DWkX8=7mO&kNp*}pTa0uL3jNwkjAv>mt8HJ zEb-UO0@@WQu=MnHj+@7Z2@iU?8s@DsH^T2q8M0DR$~#Os(nF`5=ZB50&e@_1|je35UX>JYbMzpsEI~>&@}qkbfZj=MvcDPJcxoWVtqaboItPYP#s6 zps)szC({a``ujxIIr$0zGIrR(x-#&#v zjt7)k1f;_QSDoz=DqZiopSQ=J8-7*^gDXR$;kIaP1xq4zf&cRD+_y+qvg@(}t@2i( zG95IyZySQ+86jyB+D*mLi7zAxDTDu(iBv+o#|pl2j@JW2uI=Iht^4@H81rl>ohazs*AT%^&@jPUf$RqBDgnX|>KURS$v`B8|``IrJ6#B{FlpL({li+sW16nP< zp}}=eK>K+&@Y%c-WY$%4RJMS`OF)Sms-cu8v)0LbEper=o?Ut0^lZM({^H!<8MBdX z9&|hjtjbv#8PWMrr=-Gul+IFN@UKYAU(Ir<4xH4!W)`S;nQb= z$hkm6f&+gxC_)hQ2tm*248J1>bO7zk$hl@htRs!pmkQ+@hB<1SZ3O+z1np*Gd-{9-P7j0 z6zZ5V{c<4A@2pv5kJMz(B(s;9K>ODv?QJ^?bWPZhSdwX6T_sa z4TVJYsPWJf@7u8JaZ&yO1Dz*MQ8(89DFPWODL6$17#uvBBS&Z zAEbAYA%MV_4i2y4EYmLoRiDu}C>Eh#wO0MOLiexcVW;1P;*vtvOluWuOyt!7x)zXQ zZFJzw-KE5&uvWw1ySPHk``=#*JX49p{h$y~Z2`R_IYFNXll&^3mP*&#e*OvXr(X;< zHmT{cWAdL9n1Q!g+{c+HjQ*YS@##sOPewtDt?Yb?ZBsd8PYp3&DkXD9{i-rYz9oMO zgQe1?Rzg;1y!Q8uaC$kYZF6%NeU;M_$bXeUTLDBy3W|ys7Z+K>cD}yCo2E*YnBS+= z91q>&Kjdwr$tHdPUhD7gy5*KmnR#0ZwiPIEwlw7@Ss-MMfS~+K%8;!De#=>AL*Rx$ zZU+3(X11H8+aYkTl<02n?lCes3hroAZZ&fckrxP}v7Z`;KH3<(#%C?vHz$@uUr{-t{qd{_=#)WqQDNG$5;UZkEIz=ATnmmg%RxGQ!My z3ZxOpLT&Cek}epoC#N!B*K-shP3)e(AOqZ5KIt2|X4~P;xWe63C6i@)tp@sw8>JUR zG!B#b->K~Dnc=cf`kCuTZ)D!WBGQ<8(|w>!a;uC;>=Q>>EZkYIV^kcRx6puC&N7ld|+TkYocOM+%5*}7+T3<}3Ny23&j=i`sn5BkS zha0CYz=LC_mulPp+SZ7H08r1FG zcgjpFN1_f-242On1TWVqEPfQYim=@^pE*~&7I6Lj%mm%;FFu(Ph# zrF-yTp)F|VmZgbtYnMEluiKeYSJ#X}Xo|hBn4}F}pfMHKDc7eZDxh_3vIWj#SSR4| zL-Rh&07NhO9eeapIE>&@IXO9i5BPPj?Ls)@P+0P-Y)Kd(yUCLkBy$+X z&>rZNj2BN*s(<}E$gy->ar#rI$+K03Ev}COrKM7Wf>Fj;%rW>!P2*%+L*-K-WP?ls zPE!@M#*+L}QlzkWR%-~$%d>&43_r1_Y{y}|?}q`dAlT>P5U2&=B2hGIjOy^8@N& zXr7^Uvya?kHZp1QTwhPK$QknH8+@lvh#2sY=!zO1rdo~u zL9_SHs#-*3ropl+vhU$Vu!Y;{*=Fv|%<02*I$jl9J$WUUT9HCv?KM`3Ngp}s_ z+t(vnG_NIfN`4%Ctc+rAFys`>R^of|-vOD8nSgCe;6FG$eU36Osn4G|?~C0>jT@Ox zZO1$bglfNDx?#wvF7SwiS}{w$N+e+vr>hN&B|v65FowDr!x z;P$9uz|<3o;22uL&a_#T$t^p4T67IYnZNoj0V;_DN2G|~D!%j&Dk=}HN?}3uaI`8+ zwinAb3a9%uZw^TqZ%n6`7Dm9#=qodOQmeVSm zSIa3V1jrC)6%~LFIsu?eqkjU-wUYr>9x5@Gf2}~)+4v60*8L{`hCHFK=MGb*ZO&%F zgu}E4ahD7^*n-$GLm(8^?_^U~N~!8;97pkVQRWezgJo~Voa?JsX|VZiK-LVtr2 zlUtBe2iC@%?>aOKpUnpT0kt5}I(c%{r+&0N1cG9Mve}{|1c|%UdP}G7p9LCN);~Ws zI$a8BFU*Kv>$cVh4gqMi@Vrp_i?vaos0WY^!C{gtp@-rgm-(uTB7!yNK;U=ODWgq! z2dlH62*<+{sS;Lr7oz3e#XF1v_WR2RCPY2sD_w7HIkMoP2GRlsmsHs$4S|(f$-gc` zcMo#G{W(Jk>>gk$P@Ue$02Hj9fnc-6^iCOF?YAoAJTqq3;oSz1ocFi4GgeJZB+qb28W64U#(4o_U*Xw6vbL{)@>Ld+VV?Y%?J^i>_4lLQM z#+@)e{3)=<*?f`DKkI`|B71l6_D#9m?}|XK43<^SwFWe}e0}-yWr>&mWj@$D{U9-Q9>xfkr4ne_cEq2?_d17OFL0 zgVrrIE|EAou9UtUcAF2r*u5o^QADHmE8oFzb8*bcst}efN%zyeQ?t7vSqE2C*OhPyHUMB;ktO zLt1E)4ApS@8NnO2;bd4N^kd$V?*>}H>%SQBebl;Dm=$~q$euAnzC{xbW_mSe3jscR zWDnTxq(3@GSEo~ROb>+|8-yI+ZZ>sFjLU_@#lsl(wQY&wmYzL0ef3Htl0y-1u^T)uxQFz4ho0l;+?a{FxZKM zhCmFs|M0$Y--a9j;%!dg>YLSGA@zyVpvqZd`j{Ro_*yxpA=h{D6=1Fo(bn&>CR2kZ zj6VaHjsh7m#Ap54jenAlSjMhI-ag#5V(mdee2fAB<|gZdsQ z#4DS(Gu?u&XlHcUnBmbU_&}+F_g04#sb2{^C*XWN>sK@nJOF@k4rLvdcVsdz2C@mT zAn^5MvfifB0YZI|P54tiJ-jm8;NW1eTfRITU21T9L}1#*%euZ06ciDi@k1t6M@n3% z?tt9H&nQ(wouQjN2& z8j6{cB-s5PLr$QN0J3s`30El~-<%gzU-9UHQ=DqTaN8b%Y?m{jY@7}1dDz2ykD40z zuie3Fq7NXVd*mksyLh{mTr`8kE6w1Mk-(YwN?u!~K*wU~74XkAJ!<5UIBns*eUM?xzEkF2&yLZv3<<}q-Py;u*UN6~M> z2TF8rcL@=*qJ18~V&+(vIU%ueAyuS1@ueiXb8s?{%jP(s!kb@5WlN3)WI$s`RI)Mx%GLy(I8{GjiW&IdHJA(MkE1JTuBn3DT75eAAu zks=09W!<=H!|yemOQ#>-n%;0s2Z6C7P)#wSByKJbBguxm*G;BQV;Fi{R#ocIE~!bA zJ#-@P23(}vc3$7h0l`(E@~ty=v2(_jDekoba~WBB!^g)x@{kTtm;~=VmcoL3fB**+ zsBQs@AR1$SbRU)Q-p{-0XL-bjZa9_xeGUUsD#DjcR;{g98XrMS;+?n4Fo+ymrGA#C z&XN*dcZaUXz zxcOCy^kps%PPhXHANW))U_#{ojW&3E@MAkLl5;AQL{C0B22Z{8`Cy`Pxer*g{%k&s z?ZHd5RSQDh);v^vHuGzgikAz5=8CH5CphRS~_0pW0$$ z@gVyWl@G!%b3aT4ak=<&DnDknQ~ghFRTr8c@JmEyd|5|R@v}D4N0kjPbfAV^=MH$% zW!M1OlPWGp$fwT5MDPU)BK|Pp^vH|NkexCHm`hSqRP5sEMES*~g+)X}BqSKvO{(9M zA?G`U1tZ3lkX)7cW7R~-^2yDm`ejs*We_GQu=Qp0V&Y|OoeGUi@r$`7$$c4#hwYmm zA90S z5R?MoGkIxuC~&$|xpNMpDIPmRyEmyOFN~b}C&u=SDu#E)fFdUiCn)002-^Y=B#rBH zk-gR#_Cn~W7Nxu#84&ErVt`Tz*6H60 zsP=%wthoRzyy_D`J5R&iilrmtkt-8EX`{0n7*WdTJ_j={g^$I9`-0AEc9Tk2% zf@g85+WJjiR-D4qbZs1nP6>K{K;nH&TX&nNE&Yv~_|2|*^#fh{HnI2#{`+Q`#!;0F zC(F*XU0bH17Cs;Upo0l2UBf+6b2lp^_AmED!&sS6{V_iZ`8N*FKw$9$slPg%F-!X# zZorIoi<1xj*Y(ITa{%kzlP5=tql z)*ljp8iIW~E^f*k_rQX-JwYB;r5ysu~9 z`HC-B-=bgDSQ=a(T;IZ#MMbacohq+FZhqbcaQx9Gkj&}>KZhaB1oX>IoBaKTMV-J< z+;4GF(x5bE4uiR{xE=}t!K?U?54*yo2xq*zvJgZvFEy?%1P(ErzeM_^tFbH|6$*>S zAI?}OfEJc_ng>^wGmATg9kwhv-EwvtFaXqZ`K9cT7ykYL&7Uhc?DwBk>iqww1u!s3 zNcT*P0#j5{$m+7!{j>@&kt!}dPX(8Qlf^}mTj1det!wk_LHJ(askTNsC&xi!uc$BG z<0Bl%Smu+>>)oa6-QJhe!p_3PAA!g@2h2%*;9LGnHVXIr2RVqLny~MBT~A*( z#PVJba#R9OjDIV)%C1gRKCQxX6R=cVEaOZ2t*00i>XaBVV8O1t-EQJtd#65|J)R;o zGeBKk3{;VHkS#|Egg%F(3QMvIMFjvIbDfCR7@IoM_d`}Syw2O+5f_``}#L)^9BJNmITBBhdaO_Yf8f|P~CX$0Pbc!On zdC`Ew*0hyza6l204=zzm{XOcK`kg*z$sGQT%~+Y&(Q;OKhAl@i3%S=57kGapg?xw+ zKS0o$MDG=^so3kG`EZdpGWt|dOSyiKIHOuH4glDLD|u~HK{x*rZbYO7a3G;cfEIxJ z;aK9XOiS=Yq4f39m8{$azW&Jfk-*an>6sSqtbEpBI6>-XLu;tgPL zWW3L)aS50#T{+$%N>L#}3{*@)^kuryHslDKi=UT7+2$ZSTUei;Mn13VEA7LF6_e~KJvsnoad`xYcCHh4WH^LRti_Nz zwJVo4e-#5N{fCwSC+V3=_}dC&(S7`of8T+bolh>#xK*c&aDrY>pNSJsR)%54W@>Pp zf^8U@x3aPVJ{arW)&BwahMr!+19573?T`Oy35rt3$`ZsrI(fi@SqK81-Q!hdg>Nfe zJWsMtdhVGeDckq5^a4N)t@_?iou&IzSn;7`0(`wt+1{DL!+La%NbvI;A~3T$khnWK ztj|s*eU$%}0ab;vrJ41X&ZuK`-)mfpAL3~@)&BBG;(!uDpQ2J%8B4$X1;5l~$OCJx zXVlbZ7T`b5pC$xv27rHm0e`RY5P)%bzJD*O0h*&fn1@NW3qK?=q;%5nhjwQJjvx5W ze-j18;SvB(dk#OD{@1p&w8XRhy57HC{*{#)FSgu{qC3gl-2hr*U)NPQawRQCjl~5+ zt+V0-F=t3j&&rzcHoLq8u#kR;fuLl*E+uML*ZnBhz*;$C6n{slF#^WPoKJ*|b!R4P z6K049c|Ehd48n4y?Ec-mGZG;A0jZosV;yf20@(O~AI~19YG-c`?wRo|L2GAFyMoV> zDL7g-TYy-eo10Kysdf%GR6KrIbZ_rbR8L%W^g;W@MSJV+6bK;8I9tVD^8^x;G_XWQ zdyj}y{-@ftJtg#bC})#|_;Vu&df;jMx2h%<$1CNt`mZhM;`;Alu9M*X&~dlGHCo|C zuXoSY6|`-P^o6p5{vJHOWx$7AV3tz7!W)N8xgYmq=lik^{S_FMIP9Npk0*JWx_%q9 z0q}DQP*5~Ivp645%XxK@(b?S%Qhs`Xmr5u_B`!Xml!QcGLxVl0=KH^Gv_o1Y((lgl z|IIfucZoIPdX1)30*`}2MjXKuhr%P@hdah34i`U=Q;5`w4lW_O}yRL8yRn>AQ0$h zqQQZ{BCYgck!@(O(FRx7b*=Q*_AgccID}0@255Qa!Qj`R{X8Z2^5^5)!)Io#l7M8< zwp));lia{H2Xw=6H&A3Up}AZBS;=eL71>)wH(J8mcA|nwL?&lx5kFoC3aW$j4sf&p zi}_uNeVM@;R}fBj8;PMQanL=XDWzAT&p8AHMU#O4I#p?rz?X_3eeuJ67c^?fJbGnv zYx)#z%nHZjE|mDlCRLuHJD)fE18W0rCJ4rlsF}A06HF6t%>8dH!SCgD%uhf;zSj7`ZF#b6!#N`(0eP z1z|810q0wf+Yd%>c79bG006+!zuwrzz~QWV*EtO==b8F7k;u~9!>^8W2S5PnXldOv zXXY{#;Ec*h7-Mfb{09$SrHt7$m@I(=#2m?h+f^2juS#7VO$gLJ!?%zybFDczv^8w`1!Lkt?&AaLKX_P- zHVfy+4Q+ct24*kgDoP=FjSkJ0`>l_p+Cpxw!6@$9u}%eQRBJa(#PbjsVq){5o{eg0 z2H>qaK0kL3#zBW9G(t-^H`*(-3;<2C&m=GL;075vg1d791D3kU6&{X8SnLtG%qCJfJfI#Ue9T14k~1f&-)opGy!HChGIsu+{wDojp)<0hBccghHjN6cY9z zZ*>oMgSAR@xto9G7cSl3jd^VFfn`Nv`p-qw#XDI3V5vhUcx{UDbfC!s&AfrBM?^&y z=b2?$)A9daL$H)tti{M zU+_b4t?MZxAf`=FOw_x$&DOX$vI_|L2UhDcp(3%q!Cykqa(_V)2E628BA7JhJ-t-? zYYqVLBaXpQyOFDilD|A}c^N`;-&O zf);NY76b%vENQ?osb0wcU??E#6b*tmVJdLT zjyG@K2Q78jzaCuJ(pEPd(zg#Ex$8K}PZlxh{D$JM#v&<}<8qRz} zxg|L!@@Fb*v(B};&0Ams8MpK=j+dAtWe_;356><+d|PxlslhLSOzGDgrhZ{!f)P4u zUpmq8f2QY~m6E-`%`Y9c1H@AOs5%cv1CmRr^3KCyLrNNU&Y6B=%%Lhum8PswW|gz})Hyd8q22+^K%Rs3(=hcd3h_9Ukx5ypv(Ujj_-uVt>Slhwe>;|2Wa;$Ew{=Id zVbPzXHwxO9F)q!K)7cJ{2K zBqLC&9cZ0M6H91I=XGe5il5N0Cf7CY!01tO74(trJ%it7w=z0AH5ty^X9Ff)s8(#N z?PpUw-iQ*{bbI)B{m3&pS%>{esDdCf9yf|j&Jz92sc!2ef5_a0=Yz}lny+PMy>Ywj zL)?Qxl;r)-5ij_ljFz0LDxa7HQeLtbrSU9D%%3UD!$(E0te5Wjf6{TSO5Ek<0Hb{# zw?*GIg>IUY+g4T6c~#yP}Z=_ut4yzM_et!e-$enUGtj;KI zC$hUHt{9=0VQWb4o9de@iebA8Fe~28$e0E8d8_JvKTeUTxYID4nI6QRJd`Yq{0@k( zptbPd!UvUEBRGSWF7_4!!0=d6+iUv=o0%|ZoYRMYW|jkb0Dmf#WAE#GcUzCf@7|`D zB_>w;U=Zo|BeBr3Z6gQaM_z z_v^gG>bNY0H;Psxsnpb0yzb&7?XNb)gq}dYcyb7 zN{ed`iPk+IiPSysB)BITLWpHc2BNw5e7(&k)tz>JGO?ftxXT8?wb=w9P}AOBV~??2 zKn3OLnPmOt%aa3`eA3Y&lSLbC_015)_X*1bu27oSi%5`T z9jYO={hp3R+-yBPqERFu9w3@EkQS5j0OMP(pQf2Df;F6)3lg;-HEzD{NwIzQ#NOV% z{clPiK=pL@4wsf@+9i;}BJ<>AvDI6A%qftRdPSvT)vpdmoGQR&nr6T8CuDhXr(&tr z))OP#b`S?LLy&pyV2LCJ#wV$^WXM8$5U(a3a`fxJ+Y!pzqnpOh+am7tcz9WS&-0N< zIO~i@AGzMAsND3bo9OF10cLItlQO1$k2CFpMab1v$b?|Sq(9Ad-d7-{;OuN&@dgy? z3Az8k5lNz_FN1LQeuYPjVOB<(?x!c_Aj025OD0P}d?yTG`BXlE^Z8YLz|k*lj0QkE zsRIpe?)z2=Y2oRuFDeD&{rxlR84-Z@^xQXO`&lmb3j)6QrZK^CV3HVGS82*0)S15P zRHnxS|A2YE3+Pa`#drD+W@ctUmv{ge0iGi-o9I$LiIA#e0AgE~4u~8q{w=>bJZrH_ zuh@Ag;kOTp7SO}b0@2~b7NGYEVjeWUfm?^+bs|3)v|4=loYDzL*lM6Z?oqu04E3L^z&eO%fX?i{v`OYA($g;xTcX*OM`&{ z?}%Hbk6sj|1HTNsp6_XBUwc0rxN;jxXW(=UNOUJ8#KB;i9-ZH>WRKgcN)&tM2@==O z(rz>MBqf7>{sP{VkF5TE;){8u?4ifA&eZzHBJqf0W>i((!dcyYgBJ@S%tElSpliSa z4m{Dk*;yY-d;P|OJMAND*mI!#)RJjD+sIl1M+mr?c6}Io)l~pw8s~8_A($yiD{Kd( zl=4`2R5GS(0jstooBc2UWu#0lPm~;kWdZ-t&=4@tg41}X2FKrt^-c`j6Yc z?HJWD;#A5yWRFNl#tGRg`)jXk$q3mUvXZ^`3?X}Ei)51|$;u{#Z0=Y0?|1tvkH#bC zoX`9H8rSu_qR|l*3|KWi%v&99V(B#VNch`~z0mspF}(7BT_g@%j=ayiLa8z@ zPK`f6;|2go!X$k1URT2>jJrOq>mqLUk)-w za9aZHx4rOp3Kc!dG&%OYZYngTtH9<{Hvx7ESq$X$cdbVQKPgm=$o?B~X_t(zy4p_> z8RH^t{54Y78*#iq)q`hyS-&#opLC4oBTRBxs5NHL2pSBcQl&a{Hg6VZ$51Htz(-bLNg&>u)HRr_2G>_N!iyfXoTKp2MQ(sIuIE@H0 zBOWS`b@JKQh{j+A+`D(z+zP>!_R~g?Y9XiO=VpnJ=EdOweXDGE{lplP{JP)0A~6Hp zpwkC?OPP*qhq8Rv&od0p3L|;ln;dfn@Y#wmER0y&l!G5G#zmT5Fkmk!;e0;rmS|~< z$aX|_Ilo=GZf@^wZEt0I4y9OTdghDm_RN7_&lDB=3LFfZUL5rQFlaU!vKmvLHQxVF zw*Gg2f86%2UV>-8tJcXHw8{T+c(;5fUS4^yH{3LH_WNIwNnIO)kUu=Rz=-Kcw&cj~tmooaW7&dmW7%`jbm)9l3h||WX_YI+pe4w&A6rA-0x+qI zsTF4~&JQxre;@q)>2bE*_I9C$U90Us4W?(MdVQ9p7YFqJ!q3ir(_idl%Ef4wYTssM zh2$YPHq0@IWrXwsKaDR+Qc8DBP$oNVH%TUfe@w8>VQS|yXCa)gM}8Muw?5~?c-Qg6 z4(r2_>**@U;3L=XWDB{sRnmo>*WmN_|LBxkKYjoyDec>P5_?AFF=;y*XZf?Io1Si$ zI&&x^bF!xP?>YQDA|&Cwojglz#u9OQ#jY z*8f7i?neqht9BeOFllDvqds4=V(~{HE@Ex`d)s!DLw;hhBBj>xvEmf#bL#}{ev4_o z?T4(KF_PBqHapvjulziIZ9{6ZH?(y(A9%UK$i7fDvw}-;LOH9%ApQVH_<97r8qwa*CxMv{Q#Y@_Kdu#Xz?wkScRh9S znWv-ac~N1;b^4k2<~^5{tg9xmk5L8O1Z%wp%~pM64-F^yMd$|INRkixlY%Oeo^X?<^8{Q4Ez1k6~Dop=k;k85y`mnGi@u z-2@qA9%+z!70E8OLc6;t{-#RVdf*uEEcHchck_B8t#try6r1Jb`r{d_qt&E)vk_F7 zKN?)_eR&bkR?bGc0489@D6}cov!>DOv};782q)0}#yv-Gn7>Rk;ui^)U8pHMP#5wNBA?_!8a4xF4kbw3?OV z@{G26-0-eO5%r!8_;2_mG6yY2SNBG8pZtYq1LUhZD(TPYmZKltI)YWqH)q4XO3`$9 z|9|R13~(~ZI|LVQ6$8@(WzqQSR7H?NQxD1mc(|V&wV>m(ynVxmHRn5EuSp z%lp3h%c3F3qy?7ccr=7{;8b9dI60lq`bAz@q2%;@W`?Y)wuM$K1Fv9>*eBei+A$Mu z)n8*wQ&_J6Rfk|Xf^*B8L?nq5c8Eq+p34BVC8rG?^`mzjx{-LSZmV$q>;_l{FP zmQL%NyY|hLR+T(2r`hshxBFL#^{#`bXR=0^$JSYBP3Kk3%@Wd5LyBYcmeOE`$()YC z_p9d{E06xeInSsR;=6hV8-@?JT}L);lU@6nCtR3luBVjQT*svG3kiRLat#jpTBr#& zs)lOs55oMCQyv{(>#DWiIqcjxBylhwJ98?_5r3R-e4MGH1E1Ofz6ft|2(A@M4>r7= zIq+rOjppO0Sv}Fr0aGSYkR=pS)8v>EZY-p>Ow}m%Am&kLf z?ZtIC;yd^vMDXW~wX`~gWwHL^uN|fsYVasTq85=D$-nrHgp34A2RVFeTU+oPT?F70 zrwlCNU->cP-pJmk>qdw91jMyiRq@rv->?}ujLh^bEJp2H;V-!fr4lBX)J+9>kVW9) zR%mO*f5N)RA}sk65qNiwe*O9j`F`G8FJ@93h0}kg^Sg3d(aB>eWxnpaKUv%<7q6(U z{`1Ih&lvDO5ZRHU@S1Y{6J) zt?~P+YlhcxIlP=iqMv;Ht_w8*yTKZ8urbdj#bJt;=cb6y z@!sCzq+?x^)64)w#h{=8CKR{cwu*2ja*2I;nc6>_QVJEzhCm&vFq2!jDUU&-<@C&q zAJF&zt$oE`{C>h(2dxqVBB7*Y=xmxSJ+fr|xU1kb5U3|MT6n^kLMi(y+a!1+yaQKF zE*SDjU1#=}WKar}y?J9TTRr?^rU^@Lv7%c*y%; zBe|-iMoW3b_VxD!<^Oyam@mfeHkH}brgGNk7ik#j8g$2y$6o&I)s`CcgM_j;BeoWq zwj1J%u`be_Y`vHP{z`tnr5@By0rXO_wFNe&s7LCWJUXmG4zM2RjDg?xo_UquxhvLJ znH5PaBxG`uCTHYkNWWL6G$t9c8#3*ClHO=vUzRH;m^k#da@4WzW{;kM0Z#%4Z>u+q z%wUoP5%HS}g=6oP>!vnAe#J$@p5LfY_+-fsv~xeSSwWMB*Y&)SbWv~=Z{(G$Q|;9wfTKo-V6x7u&L2cW0oes z0PQ?OL7_Iv@8Gu`q)v#5*RrRp@DB1`?XIW%KP^BP?m~ZI9IFq@QyMKTQ#P{*->-L`5(1b$RMSGlbZA? zX+7v{;}lrxOF-T(Gt0FieECa&)Ctu-R^$bSd|ifW_CyXf<9Bi9cXDq=!eiScUqeq< zmo2dm>i!`JFh<>!THbE@xnE{mV>{)ZttKfwj|eyvBFBV$mgH*VBd_07TmS7Ux-C?< z&PsWVnCl|aQ~!l!isVZ~vy)@g-oK2y;&?OSX#Y%GzN&j&YWu=Nkj|GVd4)BXiO5A6fb;iB5?94P*Kiy=RP#jDET-w9Jj{xKH7d#jue}<)q1>s1zVT zxKNYlU0E5Os4JrJ-Ajh|4kvKU!5C)!3MAW09KMvW7D}DH5;war{B!FBp2q(S3H zM<<@dbuXjm&PBRh9aN8Eu=P03;!y$K8x=haZ?(1dec&9#>jveJFqVPXd_!18Jo8nx z1Ojh+w`5}7*n2|}tV00N*?vh+p!`DEDaYAO=36lTl3l`ZxmgXWS>K1^R4bQ#uRI)a zX0>(_OfOI0_eS-}Sz$C;qwS(da)39t-D27+Qv|LkA2*{vk*bM|Iv@?HWf}|yhpVB> zbThz&w1MdM!%{b{?Sqni{USdc)~a`GG3bCxZyAK=xt6##x(z3C;|lt}%w}1oEER;l zRwpnhltd`8M_X#efDbGTW2v{_C{?&g(ry8+RhA`$xx6}CcQL`PF$1ISXdW&tiC!Zh z)u|11V_cv6Wc-z#x$rv$ST08_(b=419ht)v%Dj^go~WkjzdrP}xXNRiTCY19$RB#V zBl**;o!g{voKjt8s5Nq2Q*2WHgy^N8(&vG3Ry^+#-7dKpYMFq;I|w|vt*b$@>aM4U zt9I_HDuy4pxpEq5W$UAd3wI%f8W zn~^PlHeRcIVnpACH;>-`0jC{qH3w&bqd%8H$xn}|sh@vAJ*1?n3MoV;zP{o*Tp%m? zAbW`*9HVxi1&`~{OH#J?(+t0z>ZWERfdW4&bLB<0f~B&SrWOF$;Sd45DCDHfFTC-C ztc^J2ojZ5%@EG^S8B!|rkC~eKV>05&2=3uPL95PqZF9iTI z1qP`!XNubZXI+=GHHygK4uNTbrFBXz6z|r8!pp#|@cf6;H~u2%u)9=xWFQrjXI16- z>l1V@nMp~Xmcylxa1tY7%O$=fR-hT+NQUzWr#tW#<)FwyG*@4o9L9u(41-p_Td8+C z{O}@U_wY-RK+l`Zw4|gJSJBt9<{-dI_|GxGaV#5&m4#P7X^Pp{ToGAIav`ibwSFN=BWpymEpa88vOic9q!}{+Q1(w)> z&ncvA=qx!B^grZgqvYoIiuBCkxTjHl_{@m|%rZuz+&xUCH_eQs=Z{LD@d%?Qw zcJ$|+sV?L!GcVkb+?7|4Q{u6ks-4w^a4oIIX&4K{jRwqR2R!rZk6yr)8A1Rd z^}B)RbS?oTwVST01yUFa2vu-vR?;tEc*-TM53yFf7g^M}pfFV3>UQBNZ7+PX2m&z>rv8mtk77^jbp-yEEj}cl`#!`q)uSgz;|mlx}DqY zJ9oXT2?be~1yhgnj|qvlw%v#I>#o!K4p+@_vv7LYQU_>AS(F8Ix#)VdEVyHPJp%m3 zmA~$O*gsJmWw-q=Sjj)LT!E4W`?i?KWoFm={pe!a@-7rw;FY)-HpwZ!{O~42F{l^d z!oGC*G9@OY_}R=Wj*ni4!Xo!0k}cFe+TqJG#0@Re!yG~4v{T{~B+XgHYoHq1S8Ux= z1a}MUY@_1uUVm*?@y%XHM_XI);T3cDaaj&sK2zdX0i-1?zuK}UN&0GvKjW19Zs+}hF5Jq;N#J654-u%z;Rf>*7zp};85OX=CcJphx#r$>;ycvnqZWXW z2@_xl?4-izJM>g?P3-e^!$3A!DYy^sEt3vg)w}Y7GAGmjGHpA=>+9=sX5 zZ*gwKzLMovk&cJ-g!UCSQ(xT-`EK<%ZxF_5ghth9aAc;YlFhH+pZtZ{((IpW<`hq) zhNl1mNrTseN5XT;MkHeZsj$72bRW6Gm}SxSD+L85MiaClF02HYBooFcdaU74A~mFJ zDzM1Mgh)p8sH6D1M+<@~s38Q4T#-`lnz}**Iv{ZU_>xES=Z~$wKG4?o=V^Wuhzkr= zX3ujNzIrX#6wo5$whc-&W~(}(%XSxCcIm>s^OxH%9jlv8?e`pK{n~ov;cL%WM&Fw- zmnykO?kRxB~S@s5}eg*&XVp7?6?( z^}8ZrOjwHOs42IrGB!0+joB~=bY&%Uq>myCKrBPVCxif!1$C@gH$a3|$@ozN;R+u? zec$ef#YLH@Vxl1kz3AjiK-;4d&~vh-@m~bd5m&VcSBM!2%1@+d>GDiC63JMUb%dFL zq_loq!g;ro@9)p|PWJZirX6{CcrabyhyoAILXxd$$Acriq{pGJslFKDIKP@Kw6>)q z9EfBlaBMOhx}x2Y5_5Yme1Z+r5Cl2NrED$y^{ld$5kM$PQ1R{mE zu4PkT&}c#Bpnd^T3I3AA9ov_ z`x%OVw-aFGVx%qM@7$S7gMqq}XzovX)T>}qepc7cKQFC4^Eo)bZ_Aa9IVvDvr23>X zUV-r2M_;7i4Tru;h{@F@-@rGV7+V$erdb(ySAmbWf-9u_IHm~A%qZQD!UQT*7JSmg zb&bJ5YwJ0w*Aq2>+^Yg0Rrt zyG#UBp`XKwlUJ24->TkvH5}s~o%fbwHaLLZ^3JvQ4o@QT9sWZE2v2B@JJbCX*q?uD zHi94dVwQK=nfi`Y1ye~_j_Z`6jJm59c=$Ehu3Wyn)|lL98OZjOj`&!{R5l4XUCQ_N z_xF3LsjxgoAG|%iL@o6P^wU3SYP08S=Ais-1{;cQfP-<6*(@Q-hEWk}6x6L-G|l^T z%ezNrMHqI#=+sSJVhXOvV@oNx#{UF@uxg4QK}PV~LX!E|SypxGF7gV7Q9w2^Vow(Xd>v8uhkZ{xH zb~4i+wh;$194_5!g`F-Nmt0JBW8<1|B&e8ba@9D5^c_w`Pj04Bpyf<=30D9nsTbWw z&oBQm01uzVIZ7?&s(ivC><`;SO`kQCk==lb61N6D*kGv#WJqjQ)^RswM)a)QO5<m!SM<0!F*U%mvvJc|iURbI#t9r8N2rc&e`cW<>qgrDhT0F8m+ z1YEL?P5ayz%ODQ7MMW;KRX-8nQHi4oIj2TOIy`D)q?cp}5j}E-~Dotzp9}`yc1KA-P!UXfI=EH}L=S>jM7O&7yc0-*W zG1TVHEd9r4hU_IsptG|XF^B?0+w+-aQ)))6h4SKu+u?-#jvVn}FOfp+(i`d!g)_z_ z5O|foh5G}-{cm{(sR3WNE}ipWXBlxMAzLJiR`>*mPymw7FjV-Idh0@!EUam58G!|U z?){sCBFIyJG?CeHlnu_h{8%**_OZHp`oUqAOuT8D9$%SLdS}$Te7k(kA3fSX-ncgx zcz$MlQj9Sxf8M*jm^}-WI9JGXd3Pm6d8|Kg)PKS(;uW#Nzs2jnW>&kza?Q(lrmbp7 z{6CI(w)}lthLl;__4`<#7uT>pYMK%+=dQ1FXmUHbqpc_*}J zkWBM8F&vQ%i|w!L`?9&wno^7b#1}^X7cZP!(E*uxWvh+FQupFaQN>&W-4OZ+Zc!#4 zYOj7t1+#9FW|#B6tI zphkZa27-|bU>t+>Ykoe9mX=~ZC1Y3RfPqk}!-+-7G4KZx-3fW!J@yLLR8(4!q z>ITN(;FJuTl+a9qVGFMW5tL#~+@R$^+`lAqf^W}n)Y%6|kjce|<)CV1EU#(vg-kF; z1*+oIqRqUUz0-lMmyJ22YgE_Ny2_8w3dHJIl}=1)adFX&2!1XKhb1gspfSe|U)36`{uY@s(75$#v-UCDVn8|Wzs-gctAN;-A>lQzxzF>X z5GNJ<>J>cMkm=>(9>5`KYZ-$Er@4F#S_wy+NQy(U%rrC>CV@o`Q%jQh3$TH< z`<*zEHJr|$2Cg>-VWb51?2E3vr7Ezg)#qlEW{us!FQ0O=n2gkuE1KR<`}omQf#j_f z5>snG`KPAbXA?3}FbxJo%yw-ob2gZl&pQ}iRv4CO16PbE@ud&)C&X@?G55Q3q2355 zvgczpZuM-dN9jDg!7WKCzxE#+bq?Fw`uczR`nH1CE4f@E{GI3tvvZ2J4Jelts~ufg z+^jGN`)KIDV$ePt=JY2&;6EEvOozXueHqJZSV1sE6!K#WwuEX%aQ_Tv$G7tRwn8%zu|qYhYqW+ z(m@|eS`m4~h?`-LGlOdI-RtJ<{Im$FND2%d^Vc!*VHA}q%B$tdGyh_%PnC4UbH{f~ zC>bdzIl`<^bhQt$$mJ0JY#Z51H&ZlQesK;GL&xJ!_f+q5sthxz?K*ugGD_oqdjaHBA_LBa_8E_It=1~x%FiDiFJzA zFJejez@By#e!8q-wp72!a;4Hs2H?vX=;=ArJ?Z(oIjbax2=K=L7NMx9ILtA*>3-ui zQN)_cL}8`qu<`XZUVix3O;PY;n2^1UyGgL4rW-}wTgf#hB-M{^&P72<7`@(Tp1UB0 zgc#m{>)Zr)1k+s{ztgy$Kdcx$@L>qM{ljLs^QE0d1T1o{nWyzF0z9pHEEQ6X41U`9N7wArS%dIVhRPg7De|({>?KSI?^1Xkh717=|Q!HA1EcL$VW? z1(U{`b<>W-zHusr%414I0^K-288L5*|Duq^9OhlhV|X1O911D-ZYTChonAVGy-I?m zdJs?9*W9FoFL@K8Gm;B}PpKJ?0}6fw1mK2psD0GBJBW(C`kHK`{-^#2o+lfE)C2xt zqQ{_^L**XW6&Q(f$ZM<|Meskq=c={qW2_w?|2@oVrNE)6m_w1;tegSCM{9}_P3P$r z-exYpA6^j<#B zq@B?`bV1mRDI|$jx{TI8`c3v4j;vfI@ay6&se9I6I()^wU5x0o9IzCS0xy3eTWt>M?l@4I+J&fY68I7g(} zG^?>lU8b-c-GmCGGu+WxoszhmS6-xpxx%CviC6`@ln#;SKinq{uqNzNgNx6QVr-S& zs9nh{#q3J1NAGCu(Ub3T*hsdx*b%o^3N62lrpW8h(;}=@=Gn)0ONXfyLQQR>ByLZa z@}b}-UH1HUz8{9S9=>Qjcwtl$gtoD;K%0`H|GTjfOmZ0ibf&G4IIJ21JtXI@!T~v*&;*gWh%cc|rWY7zq;@=}aC!r#K zkD7ISTWouseQ4Jt47Y}uhc2a?O2t?-UG~9#&C2V@+dea(()RGES1*12=8fMxRp#NR zN8*^Pn?UCK1`hP_`Cjh-+S^-xI_8rt_PJEy<3F6V7rOkAx~ITWHvu;Lg32yU6e~$> z(vG!jDYgVsv%-UrVyad?@o$TIX_Svo@+~j>6a$tz-Yes_9mn61`O(v1AapCjfGVf* zom{#KXBeKsRZNs5SG$x6f+fj(tA!$vAW(bz)};WX;uv)8N}Zpq?z|EEgUGL*wEuBX z`vPZP=|>e`w>q*uUFFW_@+{BBvirajvKAEI4!CleqA~EitbL9lNUJzfSY;14pIFX|(0v zQm2c$6^~fsgoyxxiJvKsHLDsTL`>d|SYv%*a|*LqY8kWA7nd4K-zgpc+34Tcc!x}K zxmA(GzvSlAjp`x5{lH6*)h$3GO+)@RhkQyq$3Jdrt5)H)gx6c;Xtf> z(jIu5c_kvzk_0tF=zYVj8Ofp=UsU-Up)!sYH!bFUKfXDUY}U_}5m^6%M9{L4(eeP7 zM5VB*x?1qgoza;Yr!}JdBnD~%yblYnf`hFJ3QvfMvZTjWU12bHsq?KS2PT9s5_0tF z$gV1){%Vfl*u4_6(b9%f)KxDaC1$;mveH5?Cr*PT4?FHv<1i(}q8p?3S%X{gwFqfv z{kU!E*Wz@Q+g9%;ZJ=JUZhTCg54j^L%g9)6F0P2k%eNm8!hqk?^V;>*D>p?6Xv~1u zU}~BTJc!Pfr(9|c2I8k7N*J(W(POe!cD%``9B(OtzgQ0%ayTQ@KJ^s{Y`R0~@vwPN&C<%cjPs!s{zf#l z%!ozNq_d8Wj+-Iu`{w2R`^obKO_bu%ien~u;6}s~GiIlzo7w8#0X7!MoaA~k?>~>! zs5I}11TLr!X}%o#k9~|%h-6wtNX6Tcx1jK2+n~_OdRl68ow0i2O`YR==SZ$jrTkK> zs#W2^*;$hs{bpAiTUXa=T`mlhJ{$ENb}|UWwY@*xV#Xu;=}KFbSnyj~4!+r}SZjKm zA~YhDsy`PWVNxh1H)vt%E>x@AqDQqWs*&QV%chzUeuW^WO@eOKa`1|L-^ z4V75Bie2z!PjMOq9)saTYK^G(<+!i3w6s7j6iN+pTJ*g2o}SSbYk=n!oc;ZZLmCdY zl=n4j8_jUU%^t$XJONP-*KF(#)oO@}^@knTPQ=N~!{rKfnGupmsBI7!zoMQ5(y=>fYgf)KJqA6g`^yLvrJb7{9UT~FL~PR zeU%(`$PrRT;Yacn71PfkeyQ{A)Fxh){KUQiPiE!j>l-~h21(*R$AX`N(M#l(OFL$59e?r~$>LooCI@B`b+yP7zZUHG3vYRSY z5eUrKm`hs|(Jd*C_-D;LG5pa*_KIpZU+08SlF$e$6e;E9DaZpT-8wi7`K;OBrHoA< zNsvLWrohdaUtEkXN!w)znHOf&jIk6!hMJ*q`q6PDZu7+ zd?Nn&7&I=E6j6PSLaE70OOf|~d%#8)f@hx@TF<_jp#D&nHBf$uGD9;XAa>KO8QhY% z5pj?HQ5W@fbq{~tmS|{fJpO0D1K;utn8;wfDX6SiIOaX=UIkSg=)5&2DNC=L zoKOFs7N8t3!90mG!z;9>QV>~7oo~R?<9rIc%+u~3iJhRKi-Wm#sle^|(Pz{ICJ#!B zZF7xYB1n3?03GwvUjI{EY+G=rP?H?VfMh2WCUD&F(&}lLFEur z3_ziB??ukKY2WowfpVMyg0H$*HPCP3Y}I&fsa~&d8KL(7w}>!&G%EOPTx_klxn(`^ zqo4O&^g@YtHbqa!OFi`Ov*@q=zfEWZdU2x1K7S_lCLY?&dPx|QkA4_@ja=!AN})N& z^*GNtkU~8$g{g%|=(6U~g&cyTLoP`S9JO;uutFC2DzZ=KL$H&UkMg&<>2bP|R7~aFJdb5DyA^0WxyLBr7 zd>`PA&J=ek9$ST9+`8}nZqh!X&vL3(F~0+j1K8Mhwt?>X_sn4F#0lW zg8va1invPBTq0QX5(3zAfcH|eXqK&Q3^GkP96&aC0NJ9nE!%`cyJfAus^XdD6YIBC zGxFko0vjCOZrzvyE32Cm_-mvD2T0wA-xCpLWy1uUCNsgMKf-RHz{vt83MJfNwD_35u z39(VIRGk=De0JacHzbigqkH0Jx%i5=S(;zo5`3Hoqxcc?!tQCH_e!m`2Z#A{)>x1l z32%>v6B~>Ea$C^ki0xYp`^Y5M;jbcHGA$n!lqZBiD~0~@0OcFmyNxGSR;roe5ANT;AroD2y^-T!U#o1g zc^8avphA8oo_Qd41&9693)3bnH;HBo^#G0^FBUl;$S+HffF}9)qw<}%P>IcT53m0c z;y>pV*97H{TXqS13>~+qvdC+VTb24AZqLoNGh&fX?7;}$Q#vri}P@%#!@c}?Pp{AdG`k#*IY}_H-5+>#9#dFhl;G@^uvO% z(LFUS*x>6Wun1ocWH96B%VaFaS3+hu<**VK@uGLZ8}t5+&SJsW<43arc*>H9fQn%) zZY#$A$Nnn*9Yo43+r3eVvUZf(Ph~$X$9|pJHzJbfPGQh2(wyfzhCbxk-fa7;i;W@2 z`neR_8bYl__nPCwg*SF7wU&Je@Yp-n-FcGIjrAwDKL2wE^ z%@|k~cUN-XWQe$ceojrnL{p&KA~`ZL@+Y`9KzGTh6Q)k>931dhi;D(|z&G>~zO!us zfJg-)yURbU-Oy?O&<|jl%a3@ty6(OHy{|?6QBYYS4=U;GbKHoX)6-KR!Ph&iTlo3; z0VWoOlA8iW_ag(YvNGKU3|jb5pR<@wQP?vjW0~>C3&{c-vvOL-h=|KU(KGvW$~qmN z?r~2$Pa#}n)GcJ@nIiR2!P$}s<_-}Zt$MdRd;XvmWL5i<1@FnYE)@M7A8(# zBPl`{r3ole6aj5qw^ys>8F(0_0e_U(_tA{P0_DF&tV3L0J>{SmlSMOPTO%k>RLQ^B ztfsIaj6oDt7O;!v$1&qFV!DJG30R+^f=s`?Jg`u>`Y~{jPmiZ zhw43Rr1{|F-X2TV=xXETyTk|<<8^(4M}gu-Gn^P~$>8iGT z4w7Y?#RUbc8}-l54_b|lOYd}(E7v)s_BgYqhj&D2tPw{qH%wxjmj^df>y-W;T)IsD zIcbj);kSz=^ba-#?3*Ntsh(s_l02yl!ijV(>wr*Uc%g8Q6-DFuK8jRu3iK7M@(+^v5&TmQ95zz!*2+dl@S zhwP&s2)_LTmu9B;S=e#|frIgab%#$C> zu3DXxM}52xv{$#9Ho5CcziQ8Tt#i9z`jw20(lh@vG}^(F`12zmnj%?)NghT(OV8M+ zR4g~nKTE z&_}poA{}_W#W|nTa=&ddFrquNk_cMfpqRrjhzjz@3`@d;pk}IpnDb}Z9;Yi604d+~ ztxFxSVAN5{*MRwXMpBZn&z~LqMtw*@6w$#wyIsC)jBPUK~4_~YCT>we{|)+b{nwnGEZYAj>>ym_8&`(0`_n=kl@0{a}Db2m~p#0ATrL+u>dfg}lJi${M(G2^k^Rcgn!;q^tF zWV~A~24USxR4jE6A#R6oY~M}qRTgYT_NuD)8CXf3(P*um4jxjG7-Y95gDjtxW|;8b zGafTMMiq;A4JI=R87a#wdfUe>v~0!KiE!tc9`G_Ic@pkcLRi(YG!A# zks(k6c>EY*Pqq&a4`2M;y%ph{JC4?DSrbPzhGwkGs_*4LqJOaa zr>`?r$l=HPxfH`D655*a?|rW>8w>A}s$W%*|F+5yakXzgEfeh1sjA*SGo|-hmmh2a zT;xA*-cJRi&_jQVPL$Y99um9g7YNZ97nJGGI2klnO>fn>+|ls279)F(3~25BS}fg@>(MGBMNNq{ zUya-b4|<$3^IsFRbUFX7cOw65Vl6knlGZ$tVmCN*aMCh!V2Y(6Lv|pXtw~Ll5VF*! z5fm~>j4FI{Ayn9FPf+K&e8H`_L&OmjOWr>phf_rg1HO;VU)Vg2QI>+SYsY(* z-(Mo&vX`;3@ttJy)D@F(yy{Z=`V9IuB;nkrTJC<5D7RXN@EuL*Hxx{AF_;iF_PCpU z+2o3vuK31TIc#CK$Ud|kBtIf}7j{RMdY~^1wHwVKndo~?hrv=|kynibelk40Go*>< zGN?COmzIXtEkY$@Y3ucU$3Qxi_ArOxTiJRQ!w=c)D#U*p-+nhI`8p-`2MrRmD*x9Z zvL|jz0I8>am1Y&Fr0~<_ps`8@(}3ehh^I7lFB7|K$eGadwah`&u97XDOr}d+j57WD zO)BZ$g9pD(-dvnU_t5*1-%aiP?I?vb^0Yhw2F46vV`OqiKyVfQQCc0M49-?n{YW1y zL00_-aBu#scV@2cpVR5qWsT)mrjjKF&mhdm!HiVS3*N@1RHxuO2rsJHZv;9uKIB_9 zS0z*V;$5)GTZB32ri=mMUHp5=VQ+G>Y`)fspV%|S(xG$#s`_nu`eyh?Hdf9=-Zzgx z`%^1u+&2=9`yWdyxmYQS2+6!? zc#RsLX7LuUgJ3Wp6L4ZbZD}`@cKrxIav}nE4I#q7%L}~a1wRSTl>6|xlNk`9(txYG zdr2U%FHOwzdU(glPrvoW#PSFC9tb=TV3yaY(XZnwQR8SVd$HDK6Y?rKDT$3{x2ozW zR3P`ixMlE+3Z=f5W_tPZVUZ@$o!2qFc{$c62lU|JN12}+_!g+&3lJW#tbF*g6IL?7 zgtFuP@A=+##UtOpyJsg?QVJS&<8>Hgg(wueb3=8}qQb(0!rwBL3J3$}zC8!EI+azY zQH5Eu-3x@e)>rQt8O?0$uhE9OQlF{eSqwI6OF*6yLLk$2Wx^ArbDgK$nWK}gITVY4 zEAmn9&RC%;L^Q57Z~5>pd%HU}mXz3;m}IH3d1R!j6awZN3_+}{-9Uq8%ipn9($vcR zS-%&f1;G%daeeS6+;=~WD){u;OIe$m=CCh;%ScR&3-QfmI=Kjl`cVu*++5!U8ROJ2 zh?p)(i~eQhPI9rvr*j=Z@Q1}Ad=9-G9e;l*dK|d`6f?%|C^kmywS^covF5f&y6c3LGUfiT3ugD(6)k=q3A*s?7X=}<}jZY&`kynvc_NeL@#zC0Lun3foxpI*L! zGWuZcX#3p}^~sI%9l0`F?#RmTwNI8~s%avx31XDG6~|%~xM91sP4t9wR zeqccAs}1j}A^D^v1Hy%+s2Np|2kLFYOrOl<(1AHjT*r?7Nw1JJ=(Q=wbx!=Dx|{R@ z;URKp07;qHX&Uyx-kIKT^hJszJ#<^6h z*H$cMx#&=*dl&mf?dJil7fUlL>DQ#FJtJQyy^)bZhHmlC2vXeEO=wt9Q;tO!P1-Z{ zNMRX5kzJ-?QAf9SQ90D=VQT)T{sNKcN%Q`aamjIfMxwxXU)C;3Bj$fprXtK=2`CiV z=^>n5#j|e;4BAiSOH1MwR#G0`+V$pP!?n_lQ&@!1k*WdKjwI#?J{s2={qmZq+sg=b zR9Jo-rQXvN*6uXZndjG*llbZRvBC!rdTtY#+7n7yT3sIqm%1ubtBh~nK_cord(6BX>1O$>j3Q;w+c=Pw{&bwIYG%rlt-yA-j!xCPf)xU4N_r67s`MsE! zA-r|sLn|OP9$nwj&E5HrbR;4^#6)YI?JKqg`F80vRk+jC*_n-YOymI#9 zQ5k3PI&?xq;tie$k<$ngtQ==zS+(KvN{bKRoBd8+w;B#N&pJ50_^(+*_4a7OB+j2S zmq))!R;Z;lFA1oyTV|B2jW~%u_dE0Z{j>Sx z{><@Tu&rrooq-YF6-cN6Y3eh+So8B;xIy217Tc>UCLwU+jkJ1O!zQL))SQcQgliV=p)j;^5*5L}bKAmcTa8KHT0CO%d5i8^jC@rEDl*cXyN=`7BElic+lVs{MwevgT zYATpIz-@BUI_>$y$!Y7?FN=JQ!VLT)!rT$0%zyRbs<<~5)jNI>bnlxzMKQ8xdJ{M%a zjWET|-P`8GC;#!66O&fmLR6QaMfTn^yNI$fQ`swIW`ram+1XjyA)Eip@0`E$J>T;^oxXLspZk8l#`F1jia8}V zJ6=$CJd-b#ts2;(3)JMdcHAO<_-!K>%c8`LW1nDIrjwe~o>|AT^XI%=CW9*MrwM*R?F_0K`lI8u^B~IW#;`3Mtwx6EKfkb~DH=AlGlZ@Dd3S!P)0QD*V+X|q) zP#W<-!ZuP za1-Gou`0usC5?RD0W1-3NzT09Q06olg&)PSkWUH!$jr97a~OOI6+;t~2hS0DnZPi7 zbh^$7AUHRP^NqN?+}(q5dq00Z1eKcH3JjHj3F8$TAt%9b5Wt8S1J$dk}m%_i(tK z_(ga3sB)0t`89JxJc4YTT(g9*;FE%6FbHynE2rh z;oD*Yu=&^FteJ3(kNi)y%&wi-@P)wd6BYDNZ@Q%!6tjW0fBAkOjRCa1!QVrA2jr6MQu?^bMi#;^2kUy^sV zVcF-G7rC4Yg&YxfRGb`^k_xF%zxn+Ra;277|DSm!0;I;*?!|Zqqvcas)zAx30>2y8 z1daNZgN}-`vn4#}!bc3qttt&ljTGZt)_oZ4Tvjox-}WB<@|d#Dj|@eGXqGHjF`4gn z^W@=JutkM)vUH6J6ALnmdu8oXy=Od(LbGXo7W>E1nYT-%E3^~6_2251k#~BH%cWz#%x`+HFK)&o*9gWTlXZe2BhOX|a zfpY>HKVZb?s|ZTe>WO*X2p)5k^XHF@g5)593`8o%<^0ElmP07H{n8J!_$`*e){BH8 z1*`LvElVX>TmLnU{JTdm?U_G_Xy<2m)}asc&giF%f!=2@7AxQj=<#TRMR)psS6+mC z&~f*Li2wM?n86J*QCM~Uxx-f|^k+__S>{TC%FRxm_TWiUIh8k|Wkt;<^pj@Ol?#g- zJt`&o#jBNvrP&`9hdwB<yOt zU%cb3%YdA+kCxWfOSy3K!^*vmcsG~v;^APPBA7A967#1_=$%hyJ27rc0fYWC2V!BS z7~3tA(fB`!Gf(ec@}2)gLw>6duGL46q+2c&X;fZ<33MO)x{ zv~HDg>3QGGY5c+tV3l}YY>4{(D_Lt$LAOVlsNEpt{}_8ujjP6C{vsFiXD>R&+Pg%QF%5N*Muz8 z-1qV;T_6%Ol;=`x`Yyes$euIn$?y*+lo&>C&r6=eNp_~r^ulhU&XKHHbc&`qq;*0z`AAWq=oXZY|TwE0DLb?AK!qGTv+ea*`r;1FXzm1lk z1`;3+^=Ypy^Uq^^s3(-v2QGnU-MF$K>w4~qiZxDRW9tPyNENq@udg7)V%sme8a^?M z5KCfv1o5@v(1?TNL_zia&!Xq=$N5P>0l#CwM!_5|n4$3(D!of(#w>Q5!A7Yqx*9iep$-=1J0f zcfAu9APDWFa@d_$U6ul0$O}h{(MI<;sQ#qHSYR*<2y{M&97;`)7NQHXmNgQdvC0Pf zg!?uJ0_d}U*S{aHju|+%zGt6v<@3tIyiixdjdGc6jRa{O1!;ks*by3RT&MWN%RTk2 zArCdKVx?n-80ky!#}1E;Q4U17n9%%6X=tQ|sl4wKSlrBoU5mUD z+ljU(x-qv)y-4-ni@~>!a_cxMqvq?>god`>ZS06=R}SSO?t0IKk&P&CPsEtd#sUh6UCBYi|#zzHc~ks-vuL0@!*eSuIIWLLyFpmx?g_IiTv$`-{6r z1FejfbxeA=4MxF^+`T_Mnv08xXkX{n+%D0>ydu%~o8$I#d^}B^9ZvE$o^5aOuVLls z4thkTA?v2Cflt++DZt+tnkU?ZYfeU#!trf1JS=FIni3~u%Li)y`@gEV#~Q+Fbqzjx z@h=l7BXC-e`I+$VmhReQFsY(((D6#LzfeP~!Tt)`>+9>`efT#WV6Y=0CT3?i651k# zO0>UT$Vq6d{!z=G4a+gq*$m4GobzCO8nQjatTix1E7TTJ&HABPJa}XfJ;6$rbs%1-Jsiq@y!%AH@nF*D;bxVsX zOfCcc+ZSb(@Nvygbi1F?2h+wOS`wdQC+11XTw%k}dd%Oq zDGDQjjVq{(3ys#Ra#56Y3~o$@_WNP&y8+XDA`S!CvBO^v_x+`}1?;hhOKC&UA(nDf z8VeY=?=`mW&dzWRKDzVrW|y&au*va{ zJA50ftNK*BCEQQL5Y$Obs4SYMO;u7q8Zyi-wxF3SDpafZ>b9iGDEzkilg&n_vsp)| zXJSD zIjAfLZ3}cwE6m%XJCw7%=c5$_eIZc{QYAy)03~K>%YStE@koh}$H68&fLI~=7O1K5 zMMdpz@#)6~+Ic{&x|2W1@vVr>(#7x|S7%bm*VnIKdsGVxh%7~iP6W=ZwSDtu#YM!slyP3O2rFbvT(S+!?J|>X)r>sfW z_wZ)R7T6KAsjkjn(%*J7gl{B9O*zPYB6j;6z^KhxTm%fp^xEU9VOVLx;yyJi>tE{0 zh{4u_frAVD&s(?yuP(ZG{;XBKcG6+=t3-+iZeY|`9^pSgB=cD?DV$)4L*`DYgZ!EI z9LcZ|*NW8HheY@*{Ez;&g_NwpINIt90Zf0i*|SDnzl9nyjd}!hlZ56Nl|J>p?T<~f z)kJgN;8$g+;FxFmY$vldnZ&h$oDKq=;pE?m1f_ zMA9pJ6^k4nYgM_Pf9t{&9Z^5qXs9$Of%I{m!qm5gN_)WF0Ck9BEOo%?0%Ooz1dVln zR)nQ{TPQAQcz(46_%)l_#Nop7?*&_rp5B++xc^ZEN4ublMO@*H724^@(OJb{EgM%)xS}^wP;f$-K9n2LZrmGKWWJWz8Gvv01>Rt4mZL_(=a{&@L9aZc_NbZ#`SxKK37ENK|uI-R(tJaBu9G% zU4gDXn~W_?j9>J8UT}F2eRS~gb)DhH`tp*Pkz}+QWOg^x)Y&LxXK7*;-{(p610f@Z8?t|nRxe|SO+>QTELTzk2+Sb zcz^eb!6BNGO%=yNSVZI<2cf^Zo*n>MY+dNmCEDVNydnpzsP)-bL|e6~5ztA`8smQd zGut7Uy%H(EnRga}23{naXxryyGxI*e8yYh8uhbyy@kP%Y$H@WFFfRrp&yGE$y9iS( zFX)_4KzI>gqBpAGS_vjQaSAZPCFvc;MN^Dtam=zWwqJ8^zp567wZ* z2?o>C?JbL-$YPvx8K(PCh|bdCDOpw=h5w}-*tZ6ANUmfTpe|-_u);@2M#<4 z`FEZB?#jj6A-ip}2oo1LQ^0V3YKQ#O(HG%_x-sJ1o5P9_4zKv#`hChJ(^fFOcX58l z8`5s|i^2M1e79o8)5}Z#A$SIGd(FbpAD&LMDMiWu4~+9?bCWbQ$C%g4!-F7H3*gm! zX4B*2J^+^XZN3b?fbqH+&?^gdi|Q_UONXl#rZim!FH#1Mk^f|7OLBw|zpEb^ns@#d zds1(ZtZ3I6a|I5Burq33;F-!;eK0MDfO(**YX8Qx4Gk7WOsG@#z3s#hEzK1z`@EcT zr+fOLVZ5ARGEDzQiRsu^8K2*`pA5L?WNu45Tku(SmQ{IsFOS1M5p}o$udrZfH6$V| z{;i+vS<~yyXIHZ&RQ!p}(!kZ%rV!_2%rS*UTgBbVApb7t$*@n%_)Ry|f!W1Bg zg6&mOvUJTC?QNUo&%V<10wob3Q&NYzIAS4O2M(k`i~kXTVeUiz!8ZvjxJO2f-THq2 z{tcoI!gTgtSIF`{O1ZpcPS;l^YSu2za!lcB5th~CP44@DG=X=0a^BsZBQbXmml**CIV#YJEFs~oS<*2KJ(qrC8-RGnTC^fKY2jTO=Wj>3Q0{#C{t zznsq^rH@`nS2~^m)dTW9J~75CecF!T<9<-9p1gQ=a-ezl?)Pus+&%XZ(~-+mdEfu+ zi>IIp6lkubl0htA%W}wHMg7m4o8R4*yVmyYSq6K=-ck8wEu2*NQFaB0Y+Ec|F1KK_ zEG;1*u=BTg>N5ey*Ns6CbBal4p#gIkx9) ztN%&+pmCAr2=C^x<6z+2@qe3i(gu zh<@!h8E_-XWBaTrt^PD@?ksdGD=P=^t*ovZwpgaUg)m?0?{?N={}JehKA^*CYYHa=@O3y!#!@v&SFzf0a(8Mw191;u z1)(Br{>OY>;#KdBm>=V5MDgOYKV&^%Q##8YxhiTtfn>u(-J0cAPKCr918zLB8!~|J zv9@`aKWNMTnwL6O>v~7W6;I7pOHSi11XV73q*#NNI#D)m3|`b3PH-Dmvie)PN$hY0 zQLun+`RM)fO{+LuBpJOWm|k;K6ezEYgH)6vc-5U&rB+KHUtHuP)3#yz?7Zj9?b(Lh z>VYg=Le`bIO3O+V2MDfOg)yEY?IhA~Oeag-bACo9(JU$lnLSRLY^pXUj`mgygJR}ij%L}xZU|}l zO)y`AXjIrUwd?7?ZCg{BNXh}_IYpv{!Z|EC?-1@@_@>^JZm+kxk;L;)*5-cmFcHb? zK{1<*4*IwFV%*7!r}&AZ_I30WnciDWfIQHbCDKCXoX~&SfctF`;g?LV6yMSjHQwNp zEEP7iToL!!6aL$`AH%+3ZI<^c%f`Qb?B^|79Pn_qe$VcCSo>tksC*RA!S_oH28V|| zj`vmv2Z2uvdv9;R89j|N8(WPeD&w+0Jev&5H^2VANNplKCuDi~=2ev|cMEi8_i<@R zo(F+P<`$NgWE9O9ZVAE;cT4uSkc=^!CY=6vMOp9zx_@8f{O*oT3M|Ah-IPXk8wxyp zMTvDA@9j_cR&aK)X8!%!zR{BNVL*^)U8(J>CL0BWGeeptW6NFvUwnLgz;9N@)vrrn zYinrq16?bgqW1Yw_Qlat=|D8IJ4^;1r|UCb!*y_*8=zK3F+am!<|2$E@1nAbQAGzk zD@Rg?E&E8>RP2HisN*KCEQXdgMj>CR)Ea}Qc=%;!;oaS=&nOZeV*_5QwB_QYk{-g{ zFt3({q6lnk*wweJ>BI?X+=^>>Yga{hl`hM1l8$-I6i1dR55dMy2O@b5>H?9Nj*lOU zLJ)JV^_lAIcM5b0bjYtfTKt*J|LX3eb;mFUDJ7_U+-ov5k|v(7nf6#l3vT2h|wL_G#vohKQ0ALDr1#*{D_vjkDQB zPwQB$-wT@H=FtE$n$v*W(S#?M^>Ygs1THl*j>+$%@SbagS-Fzbq+v%b_c^GF;*Y`D z@cXwh2oH`S#`W$jzN`!mE#VKDf0Q`LgRp;gld)HXoDczXWXoLFg5?tyK17Zz%}7^p zA+2QG5kJYK+20@XJ{OVaaYgQ(nZ;y>F$K?dgG4eRJ|3(yfE9tS8KO165EX`5LSvuj zgDl}Mc}@N_@czC&8ysr;PM33ItkMdUq>x(xwg(V28&+B>YHIe|NbRPnu>AlG{or6F zP*xbvR`8?T&|4vQm@`A60)c#ppwXcrdDM**HAqt!o9oEqz`BdNqxas7nfstGP<@*H z(>uX$iyac?aTXz1ojBLYy`@9g?lztr=tRf1*@x&3%YN_m4NF@i0IF;M8q(uzk34{4uomdjyKi_vr6oob=zo| zhPbi#$0t?X)^4k|f<<4F98aDrt@$ARC*8$)RMk?Il=xE~jeDjCBbj#Dsbi5^Azmmm zAW}gnE>5l%2TG1B3qM$&B{A5CO@=6U#!rwI_ePt<087@g5G{nf??n-EU6#3-$PdBZ z3`{lVEr@S{vtO}qfOk)Q1Iv*i$+`kT+!5?`C0@xwnqX37Ajkqa-!!a+fK5R1T^po} zwwj{$6S8trto|xu?YvxD;h#5U3UFU1qZ8#CkuUL$WeoTS?je@&Kf0sUWVA`w-8sn@ zB}~dk=VTFoGK|?ANSm?SKZWq1S_tA)<(0%w1sI-TQ-!~IvSQh~kCeS#K$WT!MH+dX zknYB;fH_sjGR|1exBmMlEkN2eoV}Gl_`Yl{b62N;AqJHr8u{dlKWii;?8#elc8%>| z2H1lO9t5q5hBB=*l&y*TKeevDD#g9+V*ygcjqO_G{ipE+V~p+BXg4w2|ClIK&{&!c z5*MK&2oWsaKtFlP)@mlyj&~E>9-eq=cKL&tYuBo|@4Q?b*uFad8L_6L_Lzj|rnhV$ z@qHoxz>xH?vgbvd3ElQJv|~MLNmT8SKOpf&w$)*hH$`pW5jG_~N?rdU@-EGaG<0p| zxr0rLxOB-D2(slST~3hBVw_h15)EVmv$J6{!3d{whfLf+U zWS&1#NO(-D(C?MqAzyplI?(Yt!jr=JLxepok}_H=)cLSK46aahC6?NaXTs-jrMP^p`S#SG*h0Xy5;|U+N@4 z-LyOL*s0~n8ldUo;-O4A?Ge?lQnP6!>b~cLz>Z#`!nuerRP^@k6A0||KeU3JwbW3l zJ5Ek~+cB{;d{WLU14Vkpd4n7rKuS=4#?Xm^bnja>-#=Sco_<^ZdtF|nWjWGstNxuX zhf$seDT5Uqs8orU4zFKWI=*OH73ThxJO-6Ga1>j3c z>Ph-iBC9fgJB&@Ru1hepz34fVis`h>dB?xzF?Q9TFGrUOhal5Mf-g#uviD_~sPEyI zU+aSI_M*#!wjV&4^zgTCz43^<9+l!~4e-W>{xZ!<+1z=_V_I#kQE70xUmheWEG*2= zkB90X}w$6dd(CZZmC8NMuVHA(JNE9E4}V^f8N5p^seP=QV!9ZjI9 zjU&gjOz?XK2EnBXV2e@Yue|bo{WOc|>w}W52jw#&YkmTeX%~GF%mSYR=s&5p?PmDj z-*94&QztI0AWBXvU-Ldy8ld^=GLVNOD^u7iRu|Xx>lfWRy+;3z#IvE11X#UJglDC? zC4k(oJ1U<@z0|b#*1~rBw`^9Xbdr8M@r!FrB?G6@_|tdSL$ny(!vFRN*eM43R&iueIhVDe$r4`ChNm$%Il+j2yX@9B9Q z#azjyx~Huti^fT`CBLFBi?vA^!qiSu+=iK#uoc8oE6h{D^wQ`SW87q!lGwtp=5DL< z^b-1$J_o(HWhLE@U`I-=1es1a(e2excV)_mXOPFD7Ivh}nGi`cMD?+BKnqp>NVEv% zG6gyzckp$<0^Kb}hDBCpVSoi!d9(sm!Qvub)i-~snaQF2OKN$rlk6eks92^f;xGD5 zMs9}DdnXG{P zYVAKcf1)5_lf4c*B5&Exq&Xj-KX~!T$KIYW6a2_XcFHGLzb(pTV<9MhSgx3Wz8r*E(GP`9Rt9C_G&s(Q+cGRL15!E3e;P(?F-QIkyz~#B zswLr2Rv@nBaM3LJf3WHt(932S`PC@qa=tBxsH1o7);Q+rAwhuY0FoMfU$ zmMRya{Fw0Wic^Yc9FEowguRwV7z%X`d%)1(8&_Hb*-IYDt{^obH|4#4anA6YWXrf# z7etnVfywq*`(M`ZFD%Ro85tR2rp)|xl?E`n>PoZ|p3`VQMWuVm2iGb#uH=~5VUbip zSP_Up+$|sCykW_#G*(s)e8QX9tD5Bg?{hT7%$oqT;FzJ^Wm=L0>RzUFuDMLXh>J@` zcOAw}3QKcr_8juq&0R+^u`b;%{MqH@UyiIM9E3w+JCe1uTa#6EW4ab<8X|7g&&rTJ zQrLEz>sx7Hh*wHu^uIWnxfq-*8*2%;ZE;#V`Q&5(|4Fg_Yn$u)X6aQLx}02Y{)WYcwsQ^c1XtkY0%tW>PMmp#`IeL)s%1iYUWB)hmi(2 zY7)rbn;vXTPYsVAWF0gC{{`I6wRLp|19S2)fi2PHOh#+y=_yvKzo7VFxq8!N=#eZN zooeVe-cT_R>{7x+F={cDB+jjlV%cwlt;F-zOEBd zOhQh}7N46zc&@R>APL)44w-%KWy(vW3pVftN^Y^DNB zCD(`}r+X19 zWx%F@Hl75_XGMx)zV@g`;ZNEmU_T-MTHFsJvTw!>xOm1MI78fWHpArIf@sOoB%r_% z)oq{WlhEhWx=ks^?;}6Rr===0UK1Kxh!K^b3O#1GiDM3tW33Ii_GtHecBb3st6iCB zq*VfX@p<4EY&FGj%<}VdwWZzXVyEQ!yFB*%n^>x*A7v5R5E{GZtv0Cp{`ag^J2TDS zVdfNC)AvL_zkfPAmN$gs72*dA7W@wWjB|tWuJpV`p9)1JyErTtEsNNggr-wt=sAvf4)VKnI0_Xx*hEp%+3>|4CMoZY zaGJoSjX7X`!oVq~agV?2?W!9CM~tN~v0@6egj52N{Bu&9{E_ zg#WJvNO~ATK~5RCw_35Wcpq=kgAkKY?`Tc>FZ3GPSXp{}w= z;K+V?coVd0{*QurkhA1CZBQNLYZJu=_U{5}MD_vc!nKKl@=1kXB|E#WtJfn{7H1AT^rpmbNTSNZkxKX89$Xx`g|Y=!dbvcA^R-t|95b9LzyA_7RZ@yqg1> z)@u&rG90pA6fGNnhKp&q4RXGOF1!6V3$+hqCxv97{tGQCg3oomF{v})KYAYC98iu` z7MeK#qC*Z9u;YdV9lgCpp<|GrZ`e$_en(di_d5<=z#IzuE4{Eq@c2M%$dxP8d(Rys zZ#@1;${dU%An{8-HSujSnnG^Zh8V7Zss;w^y;a7=!?PV~NxHnR zEY#`sK@bJY^5S6tHfU&Snz?jdfi2CeUSvCdJ-cz*!<#-!->&9-Z(X#7{n9r3Tr`Sc z+qIq!2Z^z5BO`hGg1%dTxZJ2zP9$Cj?20mjQ=wJ6t=zu|WaW{*Ct$(_B&Xv{%UQ!U zr*GEP;Q9+E|GZZA=^RqJ1vPe|WgQ3A8+`jF6gk>hMHA4q2L6cH$8*=qk;ZN0I9-Xf zTc4=*JNW+EfPyuB`u!++K~2z7g!npbr3R4;7~Z9K>-*J0Z5tD|PSAs2_*r<&xYW_1 zr%e_62z(?R@4#M&s%r;7bS#4U2#f+tVg*ePya}$eHQ$NU3Aj0BldP?+DWVmID%&0- zXsP#oU%SPamA|6Dd-VgWB>(;8%o(5M>=`hK7IE;HNf~fW@{jF9!1rj~uYVznTrU@Q z6~FsHZF^hPe>zy)zvfr9poTV;s$JjxunZ#`o8^Ilfh@^JtI9*LQeU`jH76A{^jUMK z?O`#hk^*pV_&|gu)pxxAHL7i z8>5(?{uVcCvX-9dZn(Zxu~BJ)raD6UvdbT;L*UStt>I;!QFkPG{(T$p8sQB4o=6LS z7(|UX`M8yuo-CFJ-XOH(rarlhuQ-_YAA*UR2xL@%97;W2p{(V&2to;srXbEzAt`lD z4xfYtuT+ha`3=YC+9`E*ufCd5uZOq#B^nEjdHqcJeV&NF&>$h>%eo)otf<}C*hm>o zC8t95dvkMItwvbnK9hn$t;1D8uZG4(3tuc=QH~^x6>1Jni;TN>9<^dV1m~8Ltx=M< zqang=*mufnswD*3QGwMzEZDa%*}<=Ca!-ddbI_MSFB$kd%@k80OcLNU%u)d)Hg zs2Vv_IH?Guc7W;DN+yGa7kld`N5qdSV_nx(?Hfk6hz?q=dk3!VpZLpeT~&&H|NdrI zXe+)^n1E80H`0^vnsx3-UBJ=?$@>NB9o)#P&f8%Fi7dnph?VqqWtuJ%b7F2b76olK zgW#_>;+!JHuhn9U2Ie#rfNWz02>n1^?n+&QuA3w2n;4n#%&x=?iA>|7XzkMg)x!(tKqD~qz|nn4i)d}Ui1@=S`0;faYH z_L0io`tt|w+@^81^q1=F(BV0<{S9F24ds}K4B;1kJZxDRg{C!a_U(uyNmIw;d^4a+ zZ6$H*7As2bW*SKA%v22Y9_+y&|7Y3gr{d6o0E`wtue z@qQU}Cs>!q(XMXJ{(?C?Sh4TRmoNQ+|8Di~c6I*;OY7=~J5?!M_jwJg*x0OrgbvCA zG|S6JAmagEaq)Baw!Hiw!x~MiJD5NpC zA8wcK_ixh`fRDfY10mRW`zzNd8L1}>;H+9f7J5k&ZpYZ^FW0GkP` zkh*tHFex213p#7?cpNO9nVx>!$rq?yI$~j|KlEX80^6tU3A76oc zPtx`KCLVg4nq+ctKPk$nA_oZzhM_7(@H8FH$3hS)e~0I=-u+8sKdfWm4n^!ja+W-q zq&wV!9sFtq?U!aSNLmd$xeJS^j11U^C$VKo`26sgf`Ae}vld`Yhv;Amum`s;cZsma z0tX8S1q`@7|Nd5$MeCOu;b!xusq-3CwAMO4SCZa`%0==3NPN*ONZ zH3{hX3c=4-MMbbhFSzq+Y1d~q>auzkOQ?1jzZpJYBYiS{hqoT*<^1|O_qxaBx6|F# z^>q<;dl!4}qytVi>aZPR6<83`?j`{D_xlYIb>6cf51g7kU}X!hGezx@x3~9jkzS?2 zw}Uf~KSRd!HaNq>t`mx%!tCZBs7)fY^|X$%z|#y7yx_s!0`~*Z0})IxrI^}o3wa;o8cLxxy+7! zI^Tz59D*WiJvWT>^sFk!fC_O4Nqum6?yrpoL8Jf0x;l@8>W&`&n(v>&cbDWQ@O-b# ztTs%~%*>3A);Ww<#a|QAQS)nXB^k1g17yEzJ$J7wXNns83o?oAR*|iSHE5?SSbn-> zUhGJpD@$cV{-LxVkZ5@5477@V0nD%+L@v7DV&u6zY0;DWh{BBpM|2@LTMU z{w^ZM@Bj;qj}IFi`tImX%crFD6V*0kGD4HJpg&c-F$HO>7+LIg$hs-eSp`u86cNVN z)_verAW4s9LbXcg8E}L0a7Yjz4^QSg>C@W^1gDo-k?{6j`eosy*qp3`@bE23xK96* zKI#GTXK|4)sOK*eJ7>Ybd_3?J9>G%mSfzYG8i&yzo0vSeV*FPqPk{Zr^}d;3U-ZyB zDC!;j%GUg%jXie;whM2u!mLc|i@U6dZmNnSfR^@f)#VcW3d={IJsvfNkA?}Fk zv^;>2LeO+sRbn`}lX@NkqyV1AOMqeP{wbh%n{4_S(0E~{AE0|oe_ZA>+BhwAOYFLi zZ0t&;g@NZT{>5n+WNsLH><@#w*9R=GwXF9!uITAqc?jvt-5&EhAMNT(#pXu!jVtiy zg;{wIGcL|k%D?yZDMI`M#n7I&glW01?5nwk&D?xtYCgli(VG5P&NW3vnfNe+8~7gP za_n34cCCRsrg~_I$k$h`AnCDDQc+jF0EgJyckf^^#5uQz@FvSzcIofs zG1$I*mPU=e=t1Xcc{8Qq?^iC!PO%sg1W)qo{^i^wtm`B|_?VuW>I2J<2QB(;11X>o@9V&g=UFct^)~z)86k-OZ?sfm3)NbS-^v$A?our&0ezFfH7OgET6Ho>ML5xmO@>O{{ z)^FtG?~5MOv39%FL~T~Lx?yX-G@j`|-AE_=9IyUJWSd+rsVLa>soRrA(xuXJi#V}3 za@kf)W6Lwc;#{=pkyh&utnyqpG>KvXkAO<=PwX1)z0*+Ro;rg|y)^E_EuY93Wcu|D zQiJm1guvZBr~JXF?gevOFlx$O5chkvTH^(iNC*$xrwHKP7ylBgnT0`h~aPj@(pZ%OwU7^89ecOWhSjj>7|7@d{*moB*RZ-r^*08l0P zXY1fCU74kh@fqU(o=K1Nbb$jH&Izb00SE%0ZmTBCPD0FSFZ*q1R+6GWEKg!6_l$TB zuFd`6$75G$lDTMS(_677_;j=}F(r~-lAx3iyI(7R;9(g5Ny4Or(FoOUP=ltD8TWynpY{!6UzB+Kx$Sr=&(2yxWpvLFMB z(az2es8blFJl*~M>C$OocO6;sx8+&87zuTX6ORn{e-Po15fApSA20tpJ!q zJ-y2m)IY`LP4?AH{PSn3CE#SYzu6g%WSi>ovNGN{ zA3<6VIvd#0K|&kUTuE#s#KbE`zv0F@31U3+fb-zB*ZEPm^tp@qUD0JIkNp0P_a&-4 z1eV;+{G5scB>80bKhW6ymIi=>zpu=X^Xw)xM5gw@M9sh~C@efNI;wm_()IV3d(R{} zSH(YI+$HBlzgOn}2X{mS+Ni=jgh>Tfe76CJ0@4a{7HC$u-%{-Sh8KE1yHE$TIFtWf zOUuLeUvZnYc&v>uUi5zQ-@BK64EM35m>2;=Eo|#)9Q^%HL3@gnSnssd)=o}b=w3+s zc7Ar!pDDJx$QN|=@D!$imlXvZ-&lsoE2~~DyRUnB8`pc`WzS#lh*p@tJbK&0@Qa7P zf?JGA(XhdN^<>(M^7A9)8fpXk<9DrBtvr!wA9{LJRg+q8mJZr-8-H{Ll@`=bTPv$W zc}13SCLIWm@uyOIxiD6}WcziKF|4m_l_s#Lxn)OaQPhSNw6Pc;ygp3t2_avE?BjZeu$n+UJeZTKLLJES2*L+SqViz>RQp@3cQs& zPz`X!z-bS!MptjD-t9l^Zls)oUch1mjl<-nVIS42nI&u>Hu5^cvjdABQLK5AklpQJkRBmgAP!*G4(0v0(4_Gn82H9UzUl0fg%lR z=AS>4A7fqz1b|q5V1MxJB->{x%|ZAC1VZ2TkDv%_Iqc+vT=la{!%7|pL}J6!eCbD% z{@0_~{=puNGjlvrSNmiGQGNl51K^_YAQ!sb$iCKVNd^ZiBssGAAE(D|oE^?U} zRy`!BD5-UP79S5oU3he|&(>{#h7a?~ecv;vFvUD)WdvV8N$$;H2=WJfq}j#s=)J<^ zM}~0T#pHc_lB2Q*=Af{w33z65+{j})N6Ji2F0K5p@4o6?#KtF;fCnE=F9U9t(JO+E zbL|ljAMqmll+8Tl;Z4;WQ?T+pJD8D{k~-gT3cB`lJ&!|<4A<)N6++%@kf-OrV%Qj^ z3q3Y}Kq|=%4Ko>?D0Cv_pl9=jL)Ywdo(3Em(~vUDP7w`XFh(51-aYbPNk!i*)4^o9 zYxnFlbb!>|7$lJJ`SbnP^Iy5&mfzOL1ya!`aEnX!V^5X>gy{VI9HwRdl>_OwobLHW zRF}gK;j$?D`BNA6153M6=+6dr)=Ll*-|sZuj%hq8E0^9~--X0CDZhCfNKLb!J*moz z$~!#W?GO4_oqd*n`}{e+gR7+_Xe}-!BTx{p)Nl4q*6#1^pLLp@Jz`1u=|S&6HMde{ zvK;^QLZnIvtPRjH49pYs^7AW0T#lUhYtROz z*bkG^aciaS<2s_=`$GqbN9wq7Pcd1Cp<;%`yvf@UP;KA8-=(Ust{xv6+Py?i-#0xM zM&UhZ_Vob!@?6JL@JmgNPc?(8^AfQXm#bD_DMYXRrh?eqC3JmFNIKdjymH|f`t`TT zn-eu|_Vz}jLaMq|hSw>guMpyDS>Q<3!3KUTvX7 z5h0JtDee7s>yDJnj5Z6WUBW!tRC1)(DuR|+Azdf?4FtjG&4RSKNM5FaPoY65eEQ4fsY zVW{;SORUzeAYf!FwT&^qPnN{qlxZ*<6{co>|l zqr<}~Jr9ctENz5u3Eif7W+T@9@zI?&iGHiyC5~|P-b63aBg)@}=RxbuHr~3+X(H#D zH*eYa4pXV#`a`0v@PZ?cwFvt$@kfie*P>;rDu2amMaECZ*%IhSq8F$aW+Pt%R9!)& zGZ?9jlc%C0*BtlN);C+s?axIAPZ#EPLiOn8$>RP|>!adtE6F}tpu5mue*r1F+kCjf z<`ZQEFgPO-=wzY`%EOWE;;t-yUfy_%XD`d^I)FW(;AnV$>V7Kf#61MaI{MYMvZ z<})S~;E{SDZ{1y-jytUMAkinkL<@D*RIW3%y~R~Kf^G5dyX6?>1Kby`Bf zo2=sklft{H{2>b;q0fTk10P#kI8x-{{EhgW4xOFY)!!WLNJrn*WO&4V2V=+ zHU+7tr66sy`zi&_ABeJi*6p_X16FPgmYp%<)yu;pBMcJGE64k5ysx-!-MWW9gb3@5 zj0gJqP?20uQLBL_7PyRQaaS)pH81lZeu}__J`uOSyS=^L9J-u06mdJ|6u659*LaN^ z1||ZVKYldeeYHTrLQS?cey>>P2E-As?;e@@ET$YxPo!t89fEpz>)@ngj!9!k{53n* zC}`5Cc^VuyCK`2ayah=k!yQwo72s@1h3j@cy}rEV_|H2~7^e!_O?#2#U zkr5+0>kPh^RZ@>2y zAB_8a*GlWay8^sJ0QQeSy!6II4J^M7R^4IWN%n6~P((x?L!g>;{d(tsaDTecom?$* zjOX#5ovo3po7?>|m=k7JFcU^>MsuX^}A|lVO-ojfdtw@C# zP3?ydzn7P>l?NS!J3JTM#j!(Ln|yZtrOd3Y*=5mir~r`xXs^(SKyUu;?rTm?PTJd^ z+;S)i_p`ttD=St9d9KltGE;2@J0*#>h9RgO zj)JT#2DU^Fs+b%1-on3OGYS9a&!0cxHOM!@3UHz3@@avK=f5m(7CO>wNx$00>RbFb zvHGezvIxi?9_+6f!jJgqXjXJ=aQd=0fLaq$)LyWSPfRqx{|cWK(4w(MhDc-NDhyt3 zY;IC3?tl%}(ZM0PcM+~=rZ;2}a?XQjxz5f`e7G6Gn`CDPB%%eI@0kP%wszUKoCzWy zdYgy5)foKzAq77Yhix9i&O+X({h5`HvXf8E2N_KuZYW?kFHd&i{6#3!%z!`N*P00p z^QaeZ)$g82P~x=3Vii1pp+nH^GS4%o4tTFTWA^wiE4vsqA0Hn(yBp5Q-?JnE3%S?6 z)Ccq70v(gW^7||9x2(T$+_>S=I0frBc%{u78+=XMSkZIOq)t`9x==RNXa+>T7vt;B zqEL}dnfAjBQqRaJ{q=&mH!nkM2t&-GD6wjb##+YorA2M)6JLsHvp=p&W)!8&Lg>ev zbln0;6_Xo~0Ahi8x$I0w_O!#ORG1;29LJ*C06Rn`$V(I6_5LcQ{K_VWI7zMyRd(`7 z*%8vzADxy0k*bEJwYRsL+)h6e28&=K$)BUvo6PxDRM zXbgU+Q0fDVJ0wy7yoI( z99{+^tDP*DPp(Mb5v3c`$&ba1ls|kQd5z(=_Cue$y!WZ7Q^?D_8iDiOV|AyG0Bk|CcRsNTm=pU{ zu+@BoZppgiPt-vlu%ARQra|beBHgAOGXCLgxemvqMPue<_|yFD_Fb>;3;y33)G@I1 zR+?Q_MTIhL*L`Jc=^Hv776T_UtSW9(bBse+UB#d=p))@2INn}yt`;gCg1GTxYasfP z_9j}c%^c0{7VK5YO+*@>b1$?221D;rxS#D%Snd4WDJt`#W%~BNUBxVYh&yn2Uo*s6 z*(OtZ+|pxr>_VBdGd(ZV{R5b+Y{uKBI!4Blj+_bkadB}9G5g*Uv+ArbROt(dfOoE#ssBu0&{_4V+nup5Mvi~du5?CZwFA9~TeGon+Ne5LY(2%k4iNEoj7^PG%K z-5)B4JPc%YzY-p763u>SRmEOVP-i(Zdiuvn${f$4(x5frZ~n7OX&){wF1R@Aj7rUy zL6;CBdbezJd2tbWpC?g;DGBF*UYjaFijhTW-)aEe-t%?wZ|%RpRKX5itaMYl?#_(a zUms41lPj6dn#E}Gf291-{1U|XkxS!5lZ>x*^41gX|JMT46P|xBf&Qvt z*}{&rwtv7}uCM>H%{<4>7tZw;?0Sc1ZE%Q^ku<;%01`yUhK3eg?|-PRwKgb)i!tk# zP1fCaw=()19UZT-@4`e%K39v4LY4gmCA<2{#>N%J9T?#Zt?gg-&;SpH2LLAhT5YoK z{5NkV1vbK%U4t_P>H%SC>5B*&Q^XtSXq#(mg~^}IKnD&}4OUdUb+t+32(-s%Jz%Oj zKU&rsdK;QH1hNCL153r^UFrhi$pUMeuLMJ>(u=HeKszWD8aKEXcFYZ|?Zbix&St0t zVe-n%!O5Da0yos^(7XHPu)Ev0k5VftEEGsn2heZCe)pWS!>^Bn=KODLJ-ZV$&wuXP z&~?M|K>G0rcim*EmQKaq_{KkvwM`&v;!$3cmcTP#4-XGFHwYeT+Nhlb z#7|mE$|KCX+pxhS!)yF;cK2w^`2 zLxP9e%lg3NC6S(?0?k6Sbf;0<5<(Ig9>`p&3L$sKv%jxKxc0m}~; z`3kV-e977(!onxx20VAtj$fErSp(k(8J1~lYs=jGhE45<;`<*?z}x^{I0lFZ41>gY zQqroy#hd7NPOo6V1CsuB_9K{!w>zlM{{HI)e?J&KNt<_J;((b)==}LZ7&!UkHDTHW z$kOZR;IAAIdQT<6p{<-Di^roQ-<}A_;FAM1Br}s!69>*LFeSqH4YlHSc5gcf6m!e* znuQGwo_$F|&TWS>{k4$; z5jq4wm$jcm1@NVK?Y?H^?R{yk^c8%qZ0+uSZ+Ko`4>(y&R1_y9yw1idLhld3)%Ce) z1$dP+eI!xCAPmp2V}k2{v^Nzjn}-Me?C(8xPU)w#Kt3$m~N z?eBnD!qnK9gifbq1lXiskpIlV$!Yc4%}z^;#{Ty3am>4ZngcVs*lTw$Iv>&Y*TRyyFdW*%RB&cWQdlLcYSq-5l8 zC!M(051Z+yIeH4}g0w1`|Bl$Dl-kA%&=F;?*i&x}ym z2~~sv?PkBtiA@`!V|9bf3%B(wEWRfHm-;CC?5~Hd z$4CDVc@Ys2KyKog!Z$QUg~hmKovbjNv>~b*1w)J5V|QQr4OWjVDR2)0GhU}$vJI@? zx4pzG8Q0{A`V8U&wUq`XX2Q(ySK;jD3F@6M=xwA8zTxR<4#^B-f~Pa`1%qbc0=AVb zOYUoIlvhT5@jdp}GAe=Zl}?5w4SOlfjA;W4phyW^0+wN>#^4fb^IadG)~I|n19v>9 zZ5=6v{|Q=amd8f)X?y;Z1{G4UYpqLW!MwrFF*u@otuG!Z+~|J@G2M~ zyy2J|VBs*o+eu+nGBPA}J_4_zz$6jmKf}%wM8io-)hVfMXl3Of`Ly2h-ouAr?T=Nv zsUQxbvSe+()c*J|ux$scP%>G7&jb-?ST-lecw-#uhJ!L(5y&5NjiIgYSC7B7nzhGm zR6oc*Mul^=^w{V*|8)@Jhj+VmN#lS|ZMQJ`BlSwQ8#D+oIKFk)et|(`;@C}8 zP!voO(^Q&!!I!q8uigiG2FnD~U{TS0i}$#d*l2^qJX~T)GhUdV>#NIbX!n3-BjH4B z0!_4vavZ+@xumwGge#fKY0GQZs6#XgnfOBzDPjnZbx{o0ImFmm1oCUqPqsw>Fk3cZu3c?P|24qTaeDLR>Rz2IG3mXf2v;Z@0M;u@l za3RBllB4jb7DP_@`7;N9w^vtJPYVk#e8{5f>#~;uJ_#V+nD_5>1e;HG9JmJHMxh`h zZD4%(-L*SODDl8Y(SBvRj(kY%uJHWMV|4>5_Gqv=gX{n_XK>-31v(!RxnK*1cT|Zq zhTS}U;8weQ`w}(#r|0tk&(~E{+%`5fB~w(-D}=$_w8DSF$KGC$C3bE>?v_qP z)Y}{4!F(`-639|PNC328XxGsA_(h-ZX)pgg8y+48YACP-kaGC#{3qv5>V=~0Q}GOdV5BN#CT1$>d~uD zCDp4(Z`<0UC?o(JN!Cuz$vHJ`2yab|0O-QP{1W=-0e!QV3V2ivzHs@hs(V?02*6$) zs1*vNy}9VrkRQc#;JxuVw-Z7g7E*wg%q=XSQZggg_Tr%L!DcsnpeF+W`aZ;{ z!PEoRerG2qxR67xHX4>u#8$u+KUU{-?IoU%Zx+T0&Te`J28itl?egbSL#b(KgsAaq zg>*rlGY-Fys8zEd56T#rjwD4>V3;&w{`~bTP0%7d$MNxu@pi79Kp91Sy$f|wj|T!? z1A%bTA_1jOx8J7$ZZ~FJUQ>gbx)IQ>#c5}23%AJ%l(YaL0+R(?H}-YP+8bdbG%=Ib z)v_#+7NRKx+#WP}J)xqeHx-ehi6f&G(^ql?+`|$^K_ep=0>~aIqJMx72zlxhl-r4$ z*N_y~*We3Rx!Z`BGbWClh8&jYsY*tK%mi7!d}^=~Lw4^_1&*)EToZMn#hJ#uon6Y5 zBN{J963OD^u6#9In!7;q?83l1X1+A!w;_x~gs`ZnsEEjj!wbfo>V}4f>T2;DI9ofr zA3pz9VX=d+1~|05*S=0Z^ms^3MjC~IK^Nz9;EC+gFD#S{r@ z@3Hbo1z`H%Xw=rWle8E+>mr|ZE;h#;9(2$cxpMAOlDi92`r^j?`t6uiOWGgI!+2vR zZk20X4stb}ipq3JyWyU&bMcz?FB*XX8GIkm;BPBQb2+|UW%qH*l#f~hw(B{nrcz&! z_c^+UB~x#4R&k%P3zx&Cc$A@=(bpaQfS&%g`Hr!%>+4Nmt6Oe8#J{_m_HleP)z*-S zEqpsOEPDSYoH+%(6#S$OrwUaez6R>c+g*NF7rKEw7`{SvUo$naFWZiH&1}4-*`mvm zgu^08L{J62%(TJH+@~}W^h!>D+5*$$GY5B;jZ=Nr2F!(qav?R$19x78e63pmh-i0r z_uY->wvr5tP+Mr{F)2?+qZA97N#X9?*P#^c&pC(ZiCCg zo@>laTG|L^TJ`Q7nKEO`OE*oGm6e54G$WskwC7@I?`$sGi_`wHFo2&72n|d=0P2~E z+Xz8z8yY#vp3$kiTjOX?AWQ+gF51t+%=~lbaYVj=ZhAeyy_J=suhkL=Y4%d`KJU|z ziC7IEqn5~FMmff*eH%^Zd<9N0-48KCxT^B>8k-!C~Xk#vvv-~{#w3BVN$ z)MU4wjwojOkd0*b;$!F(PQ7(ZKf5E&$mS$RuqLTePv<#x|1`{LJ|zHag8oe6>s^pC zQ8*hm{WyYR!5-V%{QP_X4B%fvaw1H-aF{@V3tX3A6#z|%shQcU7ccyIE=X;=6*0MI z2M6;*-v3HuyC)T*;*vLK2oW^ED8vf1!~p$!;kL1vZcfUb!4yp_(4eWN75rKW#i!v% zo0yoe{1-BCD_)y_m233cwQKk9a|N{T{Qe!)@B?tud~w*sV1_!Uo1O%)u_m_JT71r0 zG928+AEltG{-S&%TtJ5}m${h23kwU?s!SoB_2r8f7NRUQTK|a*D{tSCdmkUP=aYSa3esOTp|ZB0_gpuYF8BUUN+HJd;qojzIOp`ld_I{;ge;z4uKjXK-=n zF}Ry_42+*VX&SioZ)I!|9ReHV+L}{}9TW=PcXNZyp9c}pQwtxq9GsC-%))|VUmRWl zWa3xC{(WhRQ5(wyyatej6711%Bmx}klf7}iol{hSP&fzR_KS-TSy))Frc2RW4ks8Pf3kUQfN=siFK;kPohT@Ph6Pqp zJnN$D^Ku8!Nn*9ijfFGwAr27Krm_K;6XFSmiaoE^s3>G=KYzpw&{?&0b?OE%fkG=5 zq+yc9%mM~PRiM_RaMQxH*mM`v55PqH0G#ncg!!_egP>Im;*bog3FYWqhp0$ z30<%Xyk26L9^tTTx33S7tl7uACO3`VQofFlP)GcVM-g#%hR1-z|hpH9v|f zqhMeFm1~j)j5>VrJpq(-44imqw#Ko0BjHB-^| z2n;XpZ(T6QwyPm;{lpn*#&%n|-aJ_Q3*i*yfB zT{Q^_Oo_conpl|R@<*3>dJlj~g+ZQNH4u?^lBEQCQAoK$c4-zed2%0p)}=L#f&s2z zqJ7&d<*lWamDkVqj^<_sJR>2wPPF1vDN&r9R3O=k4#_@3|)Z93Gym@xo z1rL-WFQWl7j9Krty#&!gxuh{SJ6@8AZU%Hf%2leN+ zm+;=h&32AER&lHAZ2G_gh@1{V5$PeH_1wjCApM13<9MxP;5141_6+?Tim8)uZ4u8f zUGSWdLOBdQgO9;%I-`I4?zrGN^@Domw*cgOW>HtX{WxQEnKFY(UcDsE_>KpgG71UZ z)8#wMvVK>>O)G*M>Hd7@ctv#uVUJL1>2^i_Hxw0>FoWlgb8H?4<+|JVC?)vYQ0E8)%J*J$x>Qde8Z{?_d3T(q>xy@6>l< z>u-zpR;z13`rMdQYCD$6>O5byp87tdweI!)+TPi73fl^?JO)bU`;R#I??)t5UrsuX zR@M_v-tts{@YH)icsn~oaT$csfv^QF2DWq`n2629tSi&y?gKRz92^XokJ6SuA|E*N zRY*jG6y8nyq$GWqlo33*et^rW%E~MtP^-PY9adiWL@r-+QMxCYb=muy(<@((6-^^m zay=~}ZRL@ARP>$qw{p7M027rHva?7bnx}D1=)Cufz9+>)Fn;s4?DMY^*!kOw{#6eE zgyI+f!bir47uf1GmzvrAS1=tmWUupP=CH+EVNmw^y_L0<$6LMUfZX-W9=%g9_Nx1q zgb}Sb2FN@Y`tzoB|!VZ*jf0 z5c*eS8W^y-K)X<(;WWABhtb_EreoM%hx3w58p9Hqg?A0OnKr3->}6*+4|qQ?Qzz>s z^gU~0zdJnyI2}$hJX7!c_d&){G^YiC+=Y=4L(@I$YQHxv-;QFBduJ{h;$l@js+vXm za1nH0u(aQWBDPj0qN zOpxpI!kY(suyi^|rI)~cv{#aI84?!Z#{yf_=oEm_42V+Wh4<2(6n5w8iVE`6c>ClL z?IHIp>Zn*)==24ld+zy`)a&AYf1km(7NL>E9rne~u(iH~&~g8UX@jO*4P1vtX80i0j4P!iryK*(FakZr)X(u z1+HduLO6=$+@@#aMS1w~K)Ap$rIM$4yF#Vo6S&Vle}21t;7?9%pDuID_Jn7cb~$ks zgb~}>ne_)`C%v|T6qZIK;m1wkKiri8eevk*CduFC7cU-wawTkbW)lo_(|Z1el;s+n z-Qd6I`S=koM;q@Q6I8W>PBDZi%W=lQMPe%{^wB+Nwsz%DUTZ73dEg5T&AIkcwAXnt zgTcX+`C*y~NUA`Pcv`-2IP>0yutOfpi$XN~SOfMOZmTzUWk#f096p!BpSU{F!olfc_)NA|F-3F{)J2IgPu4Zks%XROReG&q6oTpoAeQ71A9kQ~^tARn;YzDH3&q zcmj%14Y=`q^+=2j3C>n&)HOmfV}P^!dZW8m#ph=>ZLKi;gDs+@Plq?IbX3a9sm1Frm}N>5wcwe&THr_^3Fj3`?HVo|S(=J!kEByrgiz;pfU9uK zv_tVd!541Blb;1|)8gD536f#hs-`Tmd$z`?)VSPSRKTbV!+v5f!pGqCpiTEA4>r#Y zxOJEi0QUa_Hl}PaveeerUg3U(MI$Y%zSOfxe!u9>mqxON$I2;dHs}bDH(d-@gCZ~j zn|}wbT62`xtWCEEi*wY@$T5AWbv1~U+8>;K(XLzMcblT{0wJ*L8>kbihn6*pIyKca znXf!@)hrp|2_o}9d0RE-T4X2HcqP*YNUN!}iozCsx8@QnOsimiJqlu^zyxh|? zDSv9Un7UhbT1CT|nVB&EF;S3yQaI3fFYfv90+M`}F`EJts6>)?shbfQx<$KnIuDc3 z2dnc0NTcbg0_!U15;fIQvZQ?{x?(T=>glIE#z9guPDsgndK+QTIJK{($*RA^j~JgJo4 zPWAK(@7dUHqcW6QDg-TLpYC{fuu#5ot7K5>aJu4GmHVW~k+?g(-}y)zx7~gAPrGg5 zz0ui>`+Cd&er&c;{o|!jeXR3F9r0GZ0fXS|zR!7%?NBFTa##j4@Vh}>Pn^H^XkzVK z)(Ei-&yZgy{KQt-LP+c7Ew(6Q9_+0l&SKiWt{(9(l_7Yyv!XJXYRA8l9h zg)$H+{PEeR4XXwQRCtvIlaq~#b+Y7>6SS+PWlT*>T0jfl9mB1T|FC@!vpYGOHZav2 zPE#8+7>hDQBN=mifmqF2;u=H~$J<`V*)JJ4gSuLrW;+Ay7674ng2IZ5z5vz2d9LtlT=D<40D~}iuDQ$S z1=0trK;Fvo&KgJuot@k6^}YAH*`MNqKUhCLS_g8VsOYWJE9iR%CJB_h06^$uE3o~# zfHD2LDyLBpujOi4W%_KWolTt=;3Aq!!2DnlH-Jb4t0}}%b%h^w_?IOohkIHHBvN|$ z16EL+&}$~^oB|3o(F!X8x>K=ge2iqNzyG+a^GZ~Y9+$8lnOj=YPP|-i{r9ZSSAQyA zyQ~Anvti|9O>{L_f+Ow2r>r{5D)js|koP0VhaLm3I5TBG@`_SzKnO z1%amWoJ9&ug8LjGHv_u$L=y%qDCiJ;|MuJHf%y^=Xkl@HRXig$e|(Q$UhBI^2B(WAgU)Hcu5Z z)Cyd>1Q9^Sf=sUIdi*3(DZRELrj;Z+QyUvDP!Q1c0~D0>lE44_QCWa!hKryudhlQe zG~z%mBMq;8bhr#remUNMzDBXZZY#Osaj~b|zn6v%5hrxu)ArfHd!vIoRn&rPAmN>@ zJVf7~^4TB{?Q)&&qLip15&Zk{A^9nV8ekigZgfPUw2GjQIOF0&ClEnEd0l35@(a*4 zruM^53Zpkfyub)Kx*Uj^hZvjRd7<0^L|QBBaJ3sa^c!RC{E_pJ9V^cttYTng)$G1B z3@-xW_uF5fRQ^j5eF~k@C)YVgJz3!nM@7c`j-uCwJ8 z6(EkwijS87*8KZ-tMpbMy1TDtQE4nvEqCB!Vk)2kU z>*XE-IUO%leB<7OZV@v6e*QeM0vLs>0VfW zMMxW5^?*D@9!jb}BHY@rQJIt(8_G%lDx|Cy@FA-9;*jbFF!+vK1pTIA9vp=}N<;&Oc6R{8Xq2qNjA*v*+h!Z@M>wgCaEB27A8A@o$YhIvG#?Ef)RM7X(vA=jX?V_orrSLRP3ya{% zU9OOpPcPPrn4##HchfD)6jqx>G+7`-!U&i^wQwDQh#MGA6|x-S3r&~ztJ`RI`KUKI z(pd`SIYx2N0tEOO3Q=|A%7U2GsS>R|7c6 z1W}bx(h=iXccBu%R?rW(!fj+KcAV`<`1zUj_)XniQ|s*UWpxBGDIu2M^)*?7+i%P3 zpfBT3!0FFXrs(lg=(O|WnJBQd`C&`Z0`QgF46v>)@qgJfY$h&?r2ox(nLm|Rpm*%T zg#&BF(~-PyO3>-IjSOiRV?$`l)P$267=ClmvuU&tZEfdH05{>cl@|A}V9=6icOBY0 z(!bWSgMt#?CDL%SN()QJ67eB4LZ;P&h|sPyKc0|T^*1#IA589O37b#UiE=Q6LP-~7 z#$@P@xbw#6vW2ixB8e1wQxq{gQHzfV&PEVYi^HpI(BjTg#_2vY-pEIVtFy&qU2t}~ zkx6Vb)SrK%m8#RILxF7g13K9leiz2AeBB=o@2TZ*XL zo-{(lJ05Sh&d@EM2hQf}%e#Az(jHIoe%MwB!DUa6c;!iv9#Ms}yEuE+5NrRNLNiD` zA?48)pbHAXYuPTGfs=V46U-!^%BDJsjfJzwRVjo9df!jLn334#2_ZvNWd0u(ZoTMT z;n*Y?mW{7QtKFdB>FukfBV(cnA_f_2ml?A^)p3%1TJ;5fK7FpTX)zyj#747VvLSO( zT<;w6v}RpHk>T)k4-6Z;4J(>O%=~6UNWLvENxk)n*G*L~&Yv5#vk0S2NG3>+lvtXlq{=W7X6C!-Yp9f^UWwzP%BC?v665@~MSo3#sdY zs^a6hC;e?DL-w{<%C|-1()osEPByRe0WoeHRXsNY542%ISWu_i(@z&>;I10spojR& zQ4o`xi?Y3b9kV=o?fpU&sHGsTU~%N?sZXCodjyG+G1icopU0I)^Mj=c$l@V;5`S0utXyC6Ui-%%6A_^~N3q8M!Aj|Z zLKpUmk0yr9FF=EFqQp<^&Cbr=+H$M=3K?>vRo8Y;rk~PM$Pkg1mgWhH(zt16mTFxc zDq~(SwDP0rRZ~+FkVh~cNkXkqNZbXmGK|`9ZExp&g=vq%iKj*ea>d>ZoeUsehv1I; z`Ks-(s@GOnP!Oa>RDpS*Ap~EdS;c3V06{`olnK>oUo%~?Fbap!Ty0M*16 z1_P|;Ndf|lhTolJbw}WuR%(EX<~!48byx@{(9?^1&P0(1q&s&kA7|+FCpcD5fQOI} zswz{uDYWKS%5>|0A63CV;Pi?^Z43VKX$T^VoU`;w25x15)@)3Izg5Y+st~2J$j**& zs3zRfU-;lPC^MfTRMChEjEQ+Zef784aJ3UD zkJ-^d-?DS_w7Wcj@dnPn_q{oxDn>Kfh zM!f^QP`s2?`SI65na(-cxl;{RPKFUSj(4o?kFqPH?!K%9pA(eOrT-_P{+H5UNlDoN zJih|*z!z&`L2uJw-Tz%@_b~sB^l;u;Tf`*!pqDE{J&- z2Qor6RSG_lEC!#ZfE0^_b~P-{9r$4@Z zV?lRyERa zw9LMIK+jF3M5Tg;8hm*gt7~RE?m**Kwcy576(33DHD-0j&43=#`<#a6I8N%=SL>FO z>oLc@Uv}wm`fA6qKlLpY`FK@6kveW6qGhVIK~1BX|tpGQl#X zEHZ`Ti-u`AV<||l*t=ivz>%tgWI|TAKlf~4%1#Q&ILDMI$Tvd(1X4qGA>hpwWPw&9 zkJD|eVPBNg&S^2}Tm+7~qw-AmrW!A))Oo_4fJ6^WJXXt4Ad$q#4?ITyb@08ZMXQi? zKgY)ahM`?#EI4;c@c`F_L(q^|j7Xj5)vGe-aL9-!N+u3@biw+zi0@Jv|pf z#7Q?WY8*d^-4&b@nFu1?*0%+&q|BJiyk0Qh1+VaZya_HgVDm}Elkx>o%PP@6b3O5( zFa!<(bkrAS!_T2qAdL*b4)A+B+uN6xm9eq2=L>3Ak2d{qQUdYnQ;3<6xcLr3m;QW6 zIe$4Pr+8^)ULA3VFjGNhNLqlntn5o0IY5h$&}Zo_y2&s9`qjW(2cjAP zQqQomKJi`~YkUAwt{;s%(bq3}{CKk7;^X^qeaH7;D5m-Q0nN>BBt65!2Of^n^8T!e z;RYs#yxDIgIulj}#e|<<RtUw$BGb}o!cW@A7463SuL*{r+h8qp`FViIJDy4K2 zgP6N;>BWpp((Jl-?%Yu(a#PR&l_+GANQ8bM=gE{*>-5VH#X^X%Ub24 z3(L##h>!K4baJ8jImct8UGbR~nJ6%%Oi%j$e)}KLDR{$RT2PPl<}HV_`FdLTS*Hk_AXo{ z2>c-v3TzCXAYA}?l!JpqlC~YZCUEIMs@m~J#$;5>Yz!!R;5T<)wd?|5)-&&hyTn4l zBP$D8*UzVZQVpbyF2g{_6rA7O>;-0@k2lFb(4?IAXo6HJXT?Wba}X=0nGmG;nVv%i zqC8cqOhKwNXbTw}FCjeQL{SMMi)-*hrPx7*>m~X0jceEssyqU3JW11u*wz;B1r_H% ze2)*YS`Zx2=|FyTZHku8Z3OH}&|Cv8LCsq;k!@hu1J}$njOqJ_N8sm_k&=S1GRRS6 zGL*%h8J5Acf)gImmfMRe8BA?)C7?l7l%IzZO0P#;698~wk6l9OgE~4PYeEwu+JOe?J~1|L>ZI?0055vxw$Cj z6LqR3baEIl-#AH((WkGpdc6hO1Nit}jIR#aLz~R2SFd8TqyXa6wE{OpPlVjfJ|kiZppzl<86;IK z*Ts|kGC-%GP8Uej2PIcSRq}x1Nl8fw2p|JCZRha=sxGj?yac8xjn$7*s=pX8=l*$+ z?bKQhOuM)oAGHA1Mi*LeZ#5dgMRG1}cxtV!t^fP4;)j!&$UJB(to!Ht!MHSt`$P)qAo+LO&aMNc zR%QyPG+CFl@B>(L@!7;QNM!l6>S1PT3MUk02sESVsEPJZ5Nh(cE?#D0yeRcu@#9D| zV^Gf)Vmb_C`AoWeXMcI13LIA8hpGnMIaOe|S^)7*O>Q6?0E>hro9ox<)dN)WrYJ76 z$4=v&2I`|dzyIOvzIj!FAx+L)xMz-8kBLG<+c`g~;|Hl$l1kpmA$sAK4v1$}^8AuS z5tU4FJvB&iTF&kv9c?kQ2$vkj2Kji|7Y^u7R0tx7hx12J14f0J^c$s(AS2HPEu)$Q zB{F7cNKwxgtxJA*2%2=-;QYhK8ETX>Ul)#Ze)YFHdLLK6Y_*Y=Rk2BlX=ickm)X9@(DZ{r z2PY7ZOVX z1DLlx2GXUcUB>3!B(xe~fM_WF386M1C)J{W`d50n^pkDa}lrqc;lyB`qd0nP`O;{WVY;lDMY9; z!=Wi|Gj24&YlkDK>JCg|V>-~N6OPCyNgubB3`fCUicTl~WY)uw zb*n2+$>~kKW>!{l$PwHkxFl-|80jQndR;^rN(4YDnv{?)_;Z+ziv4aTR_nD2)Qor2 zLJ*z;-CMDSw)P^;QH_nJURx$TikJ5ZS5zl2%df|2wtnef@K>N?%oiuRur&j zpEC$G2bHEG?N;cJ7D$)#_Vxx$c`xFONWJBGr3QgSp>yYMgQg#Vh=mi$orxqG*=Jh| z)C+`*etd1f4CsFXV8w?gi9{LK`VV}LH#Vlezpi5ye-_`1#fFEfkiNEhHdG1|-B4+2 zFP5_#`jS)Z{G6eZ;^M_|YN~yHCM^R41He{||1g9G5`V&_amZ@z$-~KTku&CQ(;>); z!C?rHG~{5o{n-KiHnQ6l6q?V?XEyghIuA;&Fp1^pcntO8a^t&9OMxirG*+ctT8G6#>2LMY04n^px8k!7$Bre8NQf@9$QJy0bm zOnmuLF||T_Pe+s`F-{Wxo|fkc_E4bM*vKwv2I&KJUT#|g?AyqO$;yDkS!WUWZ10Td4-4wWt4q7)dPMe3iufX^!5*(@$pk6YgM3Q zfR}rGd%dNrpmOAJdVS<}_L8^2Q!T!%I3)}QgCGlVBq#l6`6Z(J`i}*f@in<$YctPo ze>P!NfBS4oI2XgK9^ih*pV<)6i-lN&>Z`s!zTbP%O1qCAPF`AnRK2`tWo_kZcxypu za@~6}=jG#_Uthj_ftv#|ef*9fa{PCs7|a;~OHV{uPG2eOnbKm&V!|W>g#iA2zb0gT z3ts7H-ez3D16O;&iUFnU$^di z{LlAr*(M`B-3ORFs(<_3Hm{lb^ncP2-?K7=Y9+uQin&#M=No}=UyhE#zRBv@*@G!+ z5RD!G-RSz4k#SBh%K?Y>3(3+Ec&)SW$L65Z;l;bzO};BJ6oDNH2?+$8=UfkC5E0ay zIe6C_7!*kc%g3ii%#cX__}lpGCLX1|^VnN~n_6DVa|@oQydxjnf8<6L5GJ+a>;&e6 zSN<$V`^(j#)YQ7HHkkvrd_j~6|1%hi@4-;lz8;($M?@ztDqo~!vvj#UrRhjE<_MvHobh0*20@$pmPjL~^?}!(= z6WQv%h7o)0rGTD-BqR}*NMMRUz$*)Wo5Y->`sdF#VG07vkI839+HI++ad{WTb`tKg zy!_Apa3A#IF)<7kpS4jGxX_WM-%|u!#=PXysQ&o`J84dabBUM0NlH(j_h|q!oF~fcf7(H3Qeac0%Fg!GbIuizs{vFXup%7c?Qmv43aa7P2cQ%U+s2`Xr(( zgqV0vI$ft2I+suUV?J$daKhYpPO^MioVsNuLc}wB^7+lszHRoprBKCx7P`9hUbKD# zj*gDoD|Ta18ZXx+D*ni&d{{IV{rdxKRF1tfZ=bq9?td2@`K);hzLFnoCBc(aU(YP# z4pwHjSm0dM?fC0kZ!>C}oI#_O+#lna$p&LUs}JV!i~(rfA=G_U;65e#xF+vfv7Bvz={p>^&#NqzR7>H@&0SqH0})}vIO#U zX}rKY4O-%)R>Bt2MacFbEaEPSyWAnjOq}^1Q9Oq@wPMqx7#G z4T}_Th~%fd>QnlEEr8%tcd^9YpYMy|+({j;;+;E-78DWT6H@4R&BV0F4;GK$7W}fp zFbK>=r6;0HWT^w;%>>D(oH9>jGNMEHT{+AuE2ib=kLhs z<_N6TM`lDoT)!=mFrY6LemVfV;HmdlfPPz3#M6g?(u1X1#&>4x=<1`>MtjL{_Tw-h zWCCHiOvXLPuZBWv2!Vlwp30OT5WEU`K33M&dL#9w-5=5~mgLqbb+f~L(z$t80gB4o zN9OL5GpZ{~8XA)^YO>MiP@y%|@trsmwtJ@;87j&4lJI*sy}3*?ckglkb+Nf1cFb>C zyFYm8_&AY)ashvA#&+3vbpI&U#%%F+W{h{~qW<6R71Em=Q};QiKkU+z-AO4g55qib zn1Lu3`JTf-;gohE&Tas46Q^swEhD+R6Jq71>Pkf6` zfQv%--PJ7lota2+s!=xma$8=`BuFz}cE5H}$D@Nu>Awq8aZw*+RNtY<%961(2qQ$m z3?+k1Mr-Q?m?!mr{%QOHYKs}U8tb6l3o>#tZ9@TK9|)3eoVTUYkyKrvvqK7-~yWG8*8JQXTlrTpjmXx;=PLQg}nJD zW+d?=FBC#+6)Bg7#O`AQoq4Rz;0`I}q@+?Ps8o$eJ=D^R)x$%DPn$aIUDrye{aVSZ z#U3$lBAwVv8<0D)1P`P6#aPRzx!jH~_EMF4fvDOzcfBdnfiE}^t$#EPUY^gg;=4rG6B+iOJj!E5-$vBAuP5CUJ z6{9a``#inU)RC7Fyk)RqT7&VSH}RZv<5ID{;2vb}+1slucbknT)efwtB%K0lliA2!P)>TDt1H58i~*^78iWhwyfQ zCZz*c-@d7@O~yz7g-PAwV0Bg18Fj{ejVWZ;0hxd(EHuEW|AfGU?V}85-gJ$K04xo0 ztgG$c53mlL(@Bfd5um5)f(+*tz-Y?Lg>iRpTCn7oPp3as^z{KXfpGH7BW?j367;YX zeTWNORI)$Z6T7CzV4qEGdYExOrQqLg+wbr9O=B0YDDDqIRr%>?4MD~lZsVAlx*r6Rq`vrh*uMjMeg#;XEE$CL$4+M z;5KNkpH);e!7a1~nGCj)e?dOnvAW=bhmcbn5NyE33h;SyYHEKi(*AtVWcz1^3SM;s zxEBEkTLtMUJ3BO;z|079@_Dh7UtgA`WcGIREOqp@D%bj5OeNhSs9Cs#Rtzk1~=QOXUlt z7Z4eH6^f1b6gi^b_4R3|7gq^v!|;3(cn4vY#=<-EFr0~M_Vmjyg$25umYg2j6WCq6rp!|*NIQ1ylksX>Zc>sh8f;zA_X;NpIGEBw1O*j0 z6JN|rMqo`+!sLE-_~G;rXu6KOhJym(ooC@cecW;xs_Z=6G3wwnr(h?8GOKa2qyKbu zqbqU=_AVRtl7M?@X)2hW3C8qRJZpUnxLC*3M+og>jZufdxW@hY)JdOz_bg1}$|qnn zG_!J5-(4Dcs-saoy1WCzKdSLYNFD(>jguKDxt-p$ekcBmy3Vuck3Q&UnTk%`liC=2TJZLc6wG_N0j8blem z-j~UE(DdV@PnSf{>X~-~nDl;D%Nia@B>A=TE3=TCq>?>i zM^oKGLR>=*M*b1!+-c^QCXCVknl6!6$P`oy2oxS&2Ib4 zlBcqCZ=)+x4sY{0ZU34)rnI8}m+G_3(KvbB#C~DsBxU*8rNf*jg5|Yq1rH+1q4c4^ z-cr4xyd0}eZWTgIE6&u0x;gnhQ8b8w%gtpK71} zU{nGjp7P1%m6gqq6wP|xvasBN_vzfDZ0Vm`30T2|{8Fek{+e=rTB-e-u>u4H2%1Vk zmPUJcK134T-U!E&=VpQPKo4q5+6fj#n52aV0jQ7Ml?zK-Nu}J^EZ8Ni5I*$gIv( zD2PC-Fl+TCyt#d!BIW{8-H16PPE;!aYE*Ql8hCrlMZ1=n&@oVvh^1xfueCHK*S*|) z+wT*zy1zGFqmlI#g|faemL{LKAK&SMyaKULwW8sh<~q!3CZ=aBSUj!c?OI|UjIH>o z2RflDwcBe&6vJ}`Y5g!LcI8&a{@Po0a>v_#RK9h{%Y%H!`+a8H!qNd~En{AUO34Vg zL`}@hVC_V=tM*gW5FtUvi*+TwbJ_*+fZ!xaM}!PnI*ZoezOf;T(d5C zfQ^z=6^C&=0L42$oxJ1VB4;<7VKuNV#4dCtj`;STT{aF}%-cDUoMN!1K zOi{L9qag9pPOSui#HH4M zYa(J|F~F^fkPR40v4iPJ68#(03?O{fe_>uF19D+rid#Vdojz_UDzXC$xs+;f*EBrc z*PLG4{aN{{uj;~SW?(?72KkGZ9sjIA7~bc3x1y0dEqa5la=9;6BFCWXXlx9Dyxp+A z^=C;xPB~>5-X=$&dVc-V*8WetX{+xEWNSl32dpt6UDNu4ScD3ot`Ls(bCa121uu6x zom6}hxC2-tJPqRLRlBHs^7NlT3<}JTx)x2&q<^?3f6>j4;E2K%=owV zWF11YW&Fmbd{#V~I`SGlI)g5*HQXF7)B^b&S{5!TmPktdBw$V|x?DRbS!+Z^B6vwI z;@15CG*njJ{l7?26nmv0gs?&WQ-ipoL)gd`{_>OJZXo!cPUuyt4#la%HgQn_d8uj50DiAm7~0owo50CrKT01?|vF$ zeyU^lKz<n+XJhU{LZP@Aq!OY0W$hU8gq08gM z9?Qjv3{v6Y?B-&)Vi6vj|MZS-Vl0=l#M5XPFDOr6&R(1rEiD)BW9q^|ww1l3qY<;Z zdXKHlRj2g*laP3*X*6QyXOCXUFs%EE%(H`Cyu2Lr;!s};6Jt3oyu(y2Yj1i@Q|wN% zKN}QsFM{I+m1ir(&cV(OU&0#quRu=Ht_rFJEMDsRTz9rl(5Ix7kE3w^eCz?z*nn9q z;|v81W%;eG+)mVhb8(Eowk?(#C|CQxQEvf)rj9s*zbuVtBOF!!ThH5wsyh0liFfFwOSzrz-4C1>$3JmM-0tVqZQd1Mz18i;rSv z?|O{u0y6}e^4&L{y9*dWlvpmW`be#4_f6LXEOETkwHajDERnid@}Fln+wmETf15M7 zR2=T<^2bcucn$pzO=lhsb=$vx`#MP)OOl4>Mv^8;lVl4~2-%Y@d$J{4vPafL*(yX4 zvSbNKktEqkl4MJg%9c{X@0{m*{QU78&(YBxW0HruV;o{(*6-CfWM%CNjN7rSe#4foyw^b?=5ETg#JlK3DPavXf~HI;v0XTJ*Qw zCKRaWOdkLP7q5Ej$&GZXQBV0lX@-&FG%ICgb6)k7Gk2Z*aFpuA6nf+iy}2IYh(P4k zkRpLd3XXIkarUqV_Ut`8RF#v&(9I1IVic(@@wSrVUI(k&szAF^`Zu7j>La`1^$auGfR2EzEnS|IztT_oHUWub%VaG9G`};F@Xdd4g+ojIP*MZ z-2c0|{X^WA7Uh`)jrArw_2-^(FQT6;vI(9k2#;5J#!hHKDyWlL%E+bJ!vf=w%D$QO zY5XuIl;~|2Q);`uv99A<(YBV(9@ebYrL=X%zWsDHEl(E)EgtXfVEAxq`CX*a`ah?` zaw)Ix2%6Rp+pcpht^SyI{~FYi{q#(qXJ_>>rTiuNsB<#EJ|A4KrVwDM4!L*NU?-u8 z<}6D0RuG>3@-^_!J#mzWo31t|N<0o!#{zPzx_-2pD$&m40H%Q(A@i6eVxSbVwF z-83!_`2U+a83_rN@9M25nMX~M$jKdr5*$yUFl951dJnfqSx#u(+4h?)6btn znkf38#yYr}LbLNH{UdFhBHy@FW&a^-G0?rUkQQ&_q3k1C*tBSTH_J_uIvhmCTk2 z`Xi@tYRI}%R4yBy3M0XJ&^1+5>i+8Pd0Cz9^4^+8Mj?@-iwq(RJjU$~=cQARXo~Fo z@L>PAfL5X@0A3_7ww=OP@tH~K|FYx?`qti=2Vs0Gj{(IjI2aA2`svfdkjx_! z?&c;5$0RZ{13k4Ez6!orh!b{kghj?r`BUC7=kIFh7b(iacPK1$dH&)t4gIe?6EgGK zn$j)1?P?3Ib$RDrvht32jWf6`zA_a`M{s|-eLW>bb#D6I<-H?kRbDznf){B+>u;#y zD}hh_Xd43-7ynl;NB!ZL6ia`d5JBN#A|2mB_uOfOtNhfQ4a<<}ZCzG-`L0E&Hkz{G z?OR$%1KXYPaofZz`342}ad1T$8-Mnx`%f!Og*|P2PGRGt@5-N8l3g@^#i)sT)T;V( zY!}KjF}eUYI4ySEQd%nszqM4GY9Lrr;j(YGy48%8w@HVyU||TV8>Jnew8SvZ`fkh; z=vR*@2>aGrbbp+R9+~!j?@$5evmS9jg+j+%nIi$6DeY}<^q>g9F?ow(69&`P%uKjv z($M$FAttqO`P*)&y8g^>zO~b|W|R}i_1NZ+9UFWGl~<9HgK>1SJyv$HWZ;k778?1L!dS{G9 zJ)4I46TgQY4k_gQLOKlBXdDYBm6~BULQ{&A*>g{!#A9}5nerD3+ibQayg-mdb;E_W z-PNd{SdBBG6^&NIbSG51gmhH?HlO-utOa~8-cruny>lmkq}_ElDv*Gh_ykH?0E?Q+!l+FQeJ;DoWf4at!}NrOt|&mZ@o*^`F6O%(s@b^*HI zJ=fBNO*S3rD`NmWC@n~kz>-ZuW(s%vjtC4F!nu2$ssyy|JEktrIX1ezp72q^eVKh> z_WQxpScs0P&l&3(@oMZIu)O#k^PqT}cj#lF~d3eP236rsE&~P`ofsNVbj7ZKV&FNb%TTYS= zGPH82zBste>*=Sq0rAnc#S`)i|MoQGt($lE9Q6HRs_>7-NWL1(zhlg`c+c~v4=dEC z4r&ArE&V;0nm;ldC5kz(()yn+%yn)7ldCZbDe33`=0|_jS6aG1GX3E8`|$4vHA`<# zv9hwBmNv2WxQ`vv+R7}TcqmZ*p`p~z?IDkQ#v5P6N`aT3*I70L!bxq=S<1vBZR~_X zeX)KEMO}_ZaQ{T$(1h_JW~?k|G?;7iYu-Y*IN;iH1@nLPX4*l^|1KRDSvJCa&ml9 zpk2hP9?j?1jJ%{4{l8t2c2^--oTQWUj8MxI*GlT0W)p&#i03&Q0lZ zT}kazRP`k6h~mv7b}HB8I14rSa z?z?dem&TQbW={pdc-%>f&gg@JH_nKY7kj8zrMI{$IJmq<| ze!A=Yh}bmuO|hqcby;weou6CvP0|&}hj7Y&^?vLs-9d>Xb8>qW-}g#rQ_E=*h}>Ct zR}^+c`+c|WzABVFlXkszf!OR+MQAIBlBPjB@f;38p`%<;O*Z?p<~Ks<1l#6zCa>__ ze8;grN|->gaD9wh@dbrYeD5Ibj z_?z;wY{vYGC;F8Pblnh?j8S}jtEJii(^2R`>>%z4 z)8e;q=@s>VT?)Xn1Ho6+89(av4u>%VL|&5`nSYjNXOGU*9#W-fg-$2|&-dy+KKht| z0h#o-K~I9|?$PCM*+s0m)U+B;A=dO$iMAaS0wF0RpKi-ANiC|?(6SMYTG!MBwFJ7C zA3Nwy;6j%bWIkR7EDis7hR-7uU3*>Nn>p%6nbjp3yC-y7CwU1lmZ*GtwyD2G$= zopt&U;+wr<$psG|Zc-2&bwi*Cw*co91G#F{-=TVFQDt&2)h32@AHPQfOSKF78LyLR z%njW1AX#234Tz+#;b{;#@9 zxztc`-sa+MU@s!82jD-MB9Y6u;8Snh0KMjB$Lm-$Z7Jj}pU+CCo?ZA9eaKf1S~wN% zW5N8$N0VRuUcR_SV@WAlEbpo1q`J!>r* ztrI7xSJoIlt4bzEKK1nTt0^n%cB=+h48kq8g2=YdGZ~+T*t@1QOEfwnafOQRnNx6o zvz4f|W;f9S^Hzl1GU}EJQz;;_Zg!Y!JEYi$-x0}plevp*ys7<)3YAXCI>jFQInAUO zTa5IH0!+C*1akJGa>#keE8B;y2O>oTTf4yv1oRq!!J_;+{4W%JIXR-~x{UEcE%SEr z%;D19Roc216z;msUXkm~QJHl_3~h7iwuO zckP~D_~|f;4|BVVEHxpSsvEy$q=~*qMq4^{hsOu!>Lwp;Zl)vpe=cuput{5qO}gt? zDYMpLxphh@x`<6*(&yL94W*nK;(FpCOVI$>M#iSMdw8I_4sY}r%sKw7+5>YovQ~!n z`%K~W8qbeAb#!P=;u9UV+*qpcc>2@v*oV9%xybbgg%1o0UVzf5oGyAdFR#TtITOfB;oQI8V`X{7~ zo|89BP|MKUblLcVE$OF_nYH#aU(sqF*epQ$6Q%GNT~#!VN+w1W()K>^L%;IGEKM++ zYgtpM1<5|~8sTiB&-h=L$L*B-^d)o2zkieZMxv2GWC5GG6*(p+=a`<#XRlgs`NKj& z3^@roB*JzrBkEL5sMyimelZ^QV&gRg$b9sh>G;dOA&eCGxa!YxG~ex3Qv+j;&r9+t z>QjH(rkEcW2Jr3pZ~e@l{d<*;wjaGU6)cl{tck&Vd>4Zeq~e7+%GZhqrr{H5nZT-1 z<|eP1vC)l&`B9J!DNYZ~<5`Z#-P|^}f-E!RToI2z4-Zg5u2GH6P8)sMsYkq5oqv%; zp*sFjr$x`dDH0I%R4qEQ*JzUZL%URo$U&dSr2fdb2o;j74nEcDH*$I;nkeX6lC>`Q z`pyp5jW_|w=Wt8iurl!fYXQh=mU@Y=T}+Kjw+a%PlcUw7)|&aPUghK*5R`1&_0s5i zs)-?eW>%{mT@_=8-A7RdL51uM;YK{xcN?wsh|Op@P;Bk2S^w5cfO>ccCt=bHZ~0=0 z7@W1!(>4Mu5A?FLO^kRS_-22Y@>dkT8h%f*a)kQ}L%UYDqKeLhPaUGy=H|-!re9D% zqVX)3LfwBXiRlUetLDXgX`xtv7xnvGxBx>noL0A#<%{`7trFT)Enq93_j@y0dGri> zeB|DA4o!v$|DtBwgcr$)ny$SSJ!(*cCadr##Dui`&%MnY7lJ(b4hNX7j!^u=4zQUu z9@whKHaEj?(js#zxfRlUg|4O=`V4Js1`P~A{K6umcW2ikIH)dF4i(O$<6gH&Z8F_+ zY_~#04r?V5_A!7sc&_^xyKl{_qOhl8TG!({~@HL+9I25 zQtTlilDtul_oi;!GO`_1Lpi@i!#nlGM~I7+TWzc&JcHk^DI~#5XaGEdin=(B2`A}P zw&6qX#8gCPey@bqAe3lfK>X*gIsZ_DP4UonVAo^qNqB7L6fRQDN0OOibr4_~^|a=0 zc+MOwBu3P`%kYLUyWM!}9D9`ZaqhA3hJHi^uC6HvaCs?~X|tL*0%oo|)zA=v-4T7_ z|FqtB^fZ&mb8Q!>Le{;os{%TqPC!CIs!c<5Q&v}g zVPV%4q(@QAlCwDgyVP6mdG%kzd}fYBcw<93bbXh1y&m&e<{0krgZjr$K^Rn{1!f&; zyFBz**|ES>OnS{LjLe=Grv`m{=SfO^{*2H>*s#IAVsPh4LB>!K_t0HJIuMX9<{=XisU@! z21aI;S9MH{I;YJn`HtTu9jU3S8=6`~ejbD!C@YG#Jc!|oy-Z>o9Y#?EwEwwfzccRc zdyx8FWK=p}<=vx>^l@HlN&Fp^1h<6TH#dVV-o>eRg~TOml7au5gP7s(#ehn&lhU`v zocyLJqzE`Fo*2vtXmoMtRB@?$Bn!(ng46U$PK+*XH*atTi%$Gw7PDcB@OF}ccq z)!wOP02|C zv&ZuL@C;|15O{q*w<0L=uHqlRGhhU2X|-b8`>wyg0{)7I(b3(=|3%<7K7S?yPaeW> zhpLCMC1buSJUpnIr^!S7#<9Ib)bge&Frg7u1W>7*Q&wtURIq!l5}*pjB$+*uzx(a; z(>t#!TCZ`nk>UczGFa^xEQyc2BDi&vwkQ_Z3WVC6SvTUg-7gq&bj*rZG>)Rydl$&7 z2NF)QZb#K6BL!mk?6q$2#x*p4-h5ObdUJ%v4zDK||F5hPngE)D?!gJlqcGA3BvQ=` zYzzkfV$7oksH@?}Rl6|A|L=HdWHXQoB3f9T-xXSxa8e@?T0GK8*-Ont?Sm_iSIw(e zs(R)n6k{~*@AA)4Gz`gRr9XUX&6js_J+^bsivHZXqx|(*y^&er_0O!JVI)N7Xzn6B zXOn%Y#uaHd-(ucr)a-S>~RwEABw@@#t^Cu6s~k?TV5}wK4u3sa^l7W9=y3SQ7%xz@#GbB;6-d( zLpjbolrXG@sezkG%fQe`HvK{p`3lyR9C-$KiP>si>{xUMxM}`A5&;Vf^{(-7T-L38 zbe>^$u7>l;WdtZCAL9(mw%3fbk%-}AQgN5Pw{IuiYWbj)#%NjA zUJ=#Yohzbc!1KaF`ge$0y9%$RmM>q`|%78GO1zSd^9B!7F@ zWwU)je$gSmcrjZ~1jNY*Y=(rL4=`4~p0->PW8(I}lPfz(|CJW8n9)Wn4``eC+arVA4Zduf*9@^bj*f%D< zXZIo>{}$8RcO}zuL>U~}T&XG7{ZyJC!kAPXwA5ey_Q|8U-ZtT&pAW$y0b~-B*^sLe zF?yRnO?LZpA!43xzVR|*NbSs6z70$*s^{vLxrS~Ks2R__()jA_{^$Euo!%VLj5xWE zO1(cY!?jJ`(8A)@iB3$d;YEw71JtHIAW1Anjk4U$9L4%7gdn2Rai1~0v`iwi? z4|Me>O{Hvo-zknf%EcNHZXv+(MB3e|=bu>b-^$8x1mGNCZyn8k(HJVGUVeT8ABB~3 zfs6H@zL#2Q{v987(=U<=;D%!5gWsKRk0n9+NB0y0M3Ab&pHU4x3%I)=dDvWlXBqnC z?k~p1#mt`vPA#unHNmmbTg9C4j63M2Q3#0Y3V7gp_k@Mg0Nx6w=VaF$Xah zk{L0|Pdl?82&cBksOu1oj`9@FHg9=owfCVI*A_#*TPPoFRkYjzA#qFWB{3M~QQyQp zfX4IOS132vV0l_u4MMmWAh6J$VD*V1fV%!SpNnK3_^&Waj@r2WGqnWf_v90bIACZ~ zImb?>u)WJ8%6i;w<>;Pq|GcQqk@y>^=w#7YIzz)bKk+|*6Jl=I})b zi1-Ki5#nEBIkBDUp-gP1*@@C+n6=B4$1yJiAO~VhHBn`okir31IYy7d9w#8#oDSn% zX=tG1&d0?0#0lsKFm${l!BGMdAGC_ALF)+oU}0gwP2N_HpBERSV%A3LrtBQ#oxyH# z*4a57-e*{{*^g}Z>%yyt5h?e0e|I-h5CEvfJR7_fxULp`cfAu*O*AkuF%i8M@=n6FLx8CWe1*H>){A)dE{&($H*o}AAbQq5oZ{wfO6_!;4-EA zeQDhfdF40Iinz-PB2ELN>35kp!tiWRD05KaqK?3D3?8;t9i8q+DnVPN9+9;I6f!Xi zd16D4#lU*_!a&t+g=l?p z`vL~@m`9Mfmyvu4Dv*7ZIsFRr1v)BKvrJ^%u{QqJ4)ZN-Ry(-!24*&X8(M#VwshP3 ziu?zUAGdU{up4j?0Sw=8kkDcFD5)*{6Hoz_TG>cvmo9-U~I$XDI$63eVzWjYf2R!5NwE=#KdH_ezBy{+FC$Nh-)A5UXPPN zOrEnmDk6h|!VDL`+Q9wHM>($(N3Oih+|#7N)>z4}afY&u@n@Lm7PV1Xm2qNgB2ne! z8%+x)1J7^&g8eg7jhM}?7@F8)?rL#}vsd(7e|?u%t8@OAJ}C7Mh$;vO&T2V)@iPX3 zl@NcBTcO9B0ZCx?n}Ry`Cq#Xz>1RuT_~B)dKzaq%YI#kiUGJw><*c6cjsndW&c05v zl@c*&F>C}@bHzwT(L1Bm*7N8S&5M1=ZYDR_!{A`gwL8#FDN2%J4^uu{8Iv>m?#eOF zNaiy|@T2{7N@2B#nM!0*`KW$Y;9VSBSi`l9WA`d6<<|MFFI*lX&sx!Cyx622|3frl&HjhV$FU6>0o@n1Z(kb2QFzMCY-iDH zUK5M?#-rO6SErtN6cE303$@_$8`U%h8w8F|GyUsWIE0;)HY8w4f^~x5rvn@7=l{+C zELSNnBpC02XKeG=8Bd|99Gkk~PQeY-1T;JF6-Uw^<5|A0C$^a&_)LE%=Kp?*`Gt}y z)&eDxNiy>8DOyR`2q}4eVj~G0KKGraVlNP%7F_klU7kV-n*jV?X8S3rl_X(rbDqI> z%c$oV6LSDa$wP&>JsIH~>rm-J2dIKnCp5k02bMg3uK^th2nI<^#WPVN+9MC7lvBWouW z7%-=mx6w)Ds;aC91qFi+Rj`Zx_@PT^qRST)61t)$O4Z$jr?oerUYL7pR1?>AO^l_} z?Z`az1aY1%os(YCnn-JW)rCMIbmf@VYKvt!(D|WO0paa*!1QzR%;nX>RI8`!EgQd> zw$ChyMkKY8v$aT`5zUt#3~H=}b*=1UEaJ|gj`=U|pmS{e9LU8f@7~|AsPLS4e~75g z&JvDa=nq`Xqyub39hUG=ax0V$Umz+6tDWLxTJ3fkN6KJV(C5WJBm(1$C~5-Z9;B`L zg6oAFH?gnD^TSwE6fJNSLcZb@?5jf7PJ^nBLy@edN<0sGfAIS6;9W6LcHSw3EN|_1 z@hPQ>L)%gP~c3B|#31jS)B3dZicGgs;Vg7Z(`d@LXB z>0<02A8@(OV)F|#Cc^W+|DaJ#X6OCb!ob6I!}{Qk-WB^nG$i{E9LRDy8#+`BZwkD> zuoeMpk24crg@y0|0t8)DQPJm6agFRhXg{*Z8*u0QnEz8C(2-g@1le|$Ny*O}*F(bQ zW4n})eMf_N14Qi=lY>eCL3;?K!7X`P*HP}~(#oo;{C8=|zoqMcOQG^%ID@bZ+5z-x zZIx|P7uQDdN|z#7)I7Wl8~E#JU0?%M$Q~v027nq~QxT5(&#^;Wg1G+GFPA zaTZph!>d30uvT+b@(k;BX?EoksdO8b?^a;^J~%P&RP`R$4#evzq>&f<1diUdY2~WzI9c;FE!9cZl9C~=>ncwo*^gc(rSA!ou{KJ+JFZ1K!AGDpe zxY8f?Z|}Q(!d@{`|8)P&sW>9hx$&+t+ZY>u0cgPwS2}hXwWWq9a)=P)HSqIS0?{6P zq6!W&61%6nz&<$2EY^L1wI zpMm>{Ze!WAwWU%-Ky7IAN+*c2g*RHu-J}8gAc$<9St?A5nW!0F?GYrgHtM4hX$@$Upaoirv}3Js~;Hmb^;WmH(u)fiz+I~vNEl0y>8-@@V- zSSTT?F5;x|`8;IyeyE|<^nndrTb&J7k|n;G*)Z+RA(CW&0j`CD0p0 zl$h9El7)VmU3U%Q8m+6$Tf{nT&&(M_h$Ln2)i$)dJmv3n)KjQO_PbZDhQ=a?z{1#E zlG@q*Qf)~B=~vl8HTZ*m zpVeJ5{Wb1%7s|KMu6zlOP#Z!Mn2EVPS9XBP3j}G5ttg+kgaLO=aG@3T*@MF^x?dig z5@>?s``N{RhfZ19S7w-Wx!rrIxOmR{pZm8Lox$*0fQ<3k%T{^{(#|ycw?DCa-?HH| zP}X_Iiw)j`*kHx%w$bWGH=NQT|UM|!Lo!=E<3KCXZ5fhcoR_x(GhUYGrRu?KnB z!xw0V&7nuG-=}}PjsJ@$Ek4xl@*R6KzW>tg&9r!k>PbXi5j)xGb3U=O!CI{*d3@*3 z)^bA9aqI5J?;8&PGF`v>Zzom!DwkrL>F4jJo24SL@G`je!T+nFB#%l=Qm37_!*S$E z+fi@DizgP2%iccj_*h;yo;O9JJkF3ezBl}jwu4=&LI0fIl{{zZ)IN$}!UXx+?2oT5 zAFGZV87baWtXXg93${p4jS|?+mpS#vBJz!soj-ZrFK*lA7@IVP^v5+Z@e;aw)vpoN zdz`VeY7Gl{`M_Hsp{P7A`L1YNoW@B@OGMQ_`Pk?9^TB7(-mBgVSsO7_sY>1mTV`^y zf41g*=K4N=(Oor`&{O30r0v~| z2HU!d;&}T(2tt}FgZ%vbh8~?mP8o_xcrc>)xLi16a?k@|9`O`B|Hl7)!L|k73NmoO z!o=twz*a82xPm8cf1O)d1!>yS{Z5WV&i(BIa~lcEeFdLx)t;ZNoyvrjZ&WBz*x-3%e#qbet9BTKv*~kK$*t*+UcS(w!Xf;ByLTyWO$n(JcL{c z$unSQ{>VtRdg=7|$&*_)X@J?I#R#wSMb5D~X4|kO!{i30d)wy@&7@tlK5_XcsA+hx4t(_6k$fz^sPHxH zi6K_b@(hKV!Y~xgPsN7f3`i4>2+I7_#I73+V`(t z8I+yTe+>FPx30i)b|IY~KlV~(^^OR9`aMzK;SuQUECC~eoUX0wl;%`Dgz;@#>t^?7 ze_gDsMviPeO!EOm1bb)$&ALy3fH{Z{ zdjk%GO~3Z@a$U&_Q3(GhJg*?CRn(C%QIp-u9Nt(p`}C$J8Cpc8h7`w#gIJOI8yO+~ zXnD2358n1H%-irZs7aQaN&$6&F<=)Z?xVwTv1D5I*DYP~xjgd7p~Il zm)_;yVaR3s8YuGd;FSE;EfSjQOeL8c-`&@|VHaVi!tI=5q|V;Tk&6rng8A{I7gu0G zg4}0!R*<|b@yXBLS@2hm7xgRtdUs~p0yYCbkLDO&Al~3Y48qjd+}zyGOzw+TNSO^A z4}s<3dDk?JyLA%6vC~Td#Trc*2#D18pe+@>*1#SyL4_YKI($B#9K&I-fdxZP<#L8k zJ5gqwF_pi~;{M28VX0x|NbUfg(1x<0?EQr74v&FEa=Mm7gQEPN>$zGSvYeXwp71&) z5P6&S@`&3Rg*ua-vqL`1!ZheD7`Xzk->})KbR}{XQ8jTu}dvx&T&_A7vaRF;zJU?y8oT_3uBE5g%l|u#b2xnNs@o~&> zArM`FtQ_F0;GH{nqSx-$)y`6c!e<;3&2_;PAY7+6%pCs&*dpc?x+v`jJ|62{_vlU&f%&iB1ryyZ!om==!WCK%1Sr}Z z4?qL7WeN^#@e(=!>zjw@y?Zb$NyI#n2%qJQL`Fj&Eg27Dtr+mE8Kn*-eph)2Er16v z{Y}CXmjAB>Xd>^?j7$~2$#CH9FVcy#2itN8AAa7w_CYKoFSkdclM<6d%AE2S-g!*! zMx?Rvre-_Yn8{X3_wggMI^5mAZHfDBS;S&uNFHI?`vtrTWK|_wJbAi~hgnn7?b1U< z_TKAB(~bnvBd$4)@3?<+4KCBplD_W0pLOmK)jN}`H{~^$?O;>Y2h*;vRfzJX;Vt#H zZj0?+k<^NJ-yfRBq!-g$+_F-%(iRo<&02-_8i?g9!-v=fcoO>QN+a7e@Z$&KJP~r zS_8jOe&{`-x0-E7+X4V%>0YT{>^y{#@(ErAe zzMuxr1lYL+&gRg32nk{GkJW{&&MXGjh%8{cbJP8)KU#nMm;Si)l!j}tmez*p^_nJN zbaP~@N~a!FFL0*?A@it@db`yQy*sA=k*Ek<-{~0|e)5(_N^pquDGLh=j8rI;GBB$^ z68SM$y*}DVi|3nseS>xz(^&aX6k`{PPVehvsul9-@UsBYVoeD#BdY78JSS zs!e{N=1n;C z1*re)OX>kBX)0I|Rut~Vj#M9XO8(#W&Eu5?Qu2Ol5Di|#q>7Q>DvO3_Ios-t-`lGZud-Q3)|e3UiI3ha)zbLu^XGDpeoxom z3i_e+v`w?YZ}|7(C;zqD!@+YIsShfeZl#}pI=Sc{48gkp_zU*@KKA-rTOxzo4aM=7o?M^mi*~dxCZ<-9_QOa>{G!uS&hNY6<0HSYNDGcIt8kcC z$U1fpEW2_T@l%q;gSQesPfj9l;m4lRCk6&a%#Lrtk1Krt?%gt6@|o0tN;Gbd9{E^X zTX#8Toepl=@a#{AI|fY{$JGB=oPudu9<>E3MQkXrh2^;XZ^w>(pF8XSe7*^-hfZH^ zZZ0jsBVoG|jrBj-mb(3*7t`Hvhl;^5k0LqicGA2iODGv5Y#dh`Ws5we`|0t~CW@1Zq` zZRWY!a^|5a&@dE%>-K}+JRo+yPXtP5>xDzU`_H|vWGB)bd71khxk%?jd{;qjuX3L1 z+z#FX=7L-S(|~_Kwg}~w5^}<@P8>k+ve)_ZcSM-P4?eI8;X>lqYS#LntQ-l{i5KA3 z$F`7iiSf}RoLi7S#WL#~qS6GC0oVx4L!(1OLusE2lx;L4K0ape2L|{zvWWM;T^r|r zmL}_LAd~)~!hIImC!S8T9}g@nJY5-{b+GA#-J#(t<8irHXg9qi-B~zMD6yfSFvf5xa;w{YREjL&P=(k*W8(y;C8RsCN1`zMeFU?W3b$sa z2~oX?JMVO5rYf6=9Yvu0n%5Q;(~A@FN`J0yhZAAs)w{-UR#fk+FK-`0#}616PGyon{5PVsYz?o1@A`75pF+iI#cg=){Qgeo!*KKW^QqvK6(DrJ zy9Yzgb5rJ=IpAqWLI+*w?=Sy%dSt-F7b}7K`i|{vLF+3cspL%}aduyJuyTRp*!#mH zB6m}S9va4kKCBAtbtVaa4JGZXhb}3Olm;#Bn)|xLUbHIo#69kW3ZZ=G46$9d@*7CJ zKf9un#*JF?ze~_`4$hlO0e0Z9ek;GJ|(c)zdN=dl5qm zqIgmlQGL|^t^|XDkve#cp=EnhY>+rv1`ZnVnf?7spNHJ-51+&v5tH|lCmMi+=!J5r z%|fh398Oiz4_`gc!nxL4;pOEe5E-M98zY+D&XQu!Yj4XKH&K&wOd#?aabl4fJ7Jwf z?mv747Us+-@3`QlU%CxMqor}*m#%V~neN!I-JO+cJ66aO+w4vB^?b=g)SNr~+Mp$S zq0!SKg&31VR!n|9*Wkp&6KYw?dRpH5O~d=LLD!f($(Wxv3cJ=zmg;3=SDr^dy*sw* zFtgGzKYOVBtj2Ph%lgoCPwJQ0r$G{kfgx$_i)Q-iheukRJtOaE{Y3d)8W#aq+rjgH zf8v^ahJ-gvd!lnpEiBs0zwxtj1)3T|j`=^CF1%fbPfu-*e(@tO55vW+W6R60Xep?p zH$W|PDi#S4xhN7M4nsI8@LpVlJ^RYQAODp3_M6348OM0wi?bEYv0{7 z-^zA4y@BakY+v`#*^E4q|I%Z2Y?x~kwAivUW_-+j|AvzAL{8C|oPOJAmLp~(oof6s zHrc|rYAF9=lf7CSTy4j*oy*BsTE>Y}HjJ^I+<*N{)qab*n)}(@X|%eI$T9i(vx9yA z*UOAS{BNX5@4};ZWb2q^@Tp(RYxS1j%?6-Ev|9V@?~Me)EyZCT9)BGp=g2=le4k=h zyh|(cE%zOX7^&FNqXtGseTJ{<^@!?6j>$>U%QcnXFGwP|ANnLr|Ab%U(^A02fX*zX z;I)dLO^WHG-jBV-7%gS=lF&CqHQgDQQ7J)Isr+FPYM0M5v*X%6px$h|5=LSdJ8<9t zPjpCfV%jqOx13YoQmK32Z3&~u2yxM0G+wMZE4bLyt3z7++L|kkM|b>et{r=>QSK6!!&R-#<1ivH}8Z@^Wnq2Mn;aE z8S`s-zZZ5%hWH-q^9Ja>SJrQ1yv7cSdAq|Ro}Gr7W{S3(uC$shL-3*7y7;{uWzv8B z`i1#ZxN{2Zxlf)zK7q31Tf?0uHXuEHgx*&;e(W~^t`F@k{@ODD)@XoQ5Ns}7*w0-I zw~+d#QG7CcY^zi=bk+TN1=bY<)>l!pAmaE5t|Od5zdx*2V0`|X|L1f6ELg+myN_U@ z-jGd;rr)y%Lv(AiUvNfUkiU&u1L=LyN6!c-hVqB0Swa5xuo5%d^73Ans$K#kL%geo&xl(mEW zNB5kU$p*tpLKAIum75!GKZt<=?w!TfPmecjeOqePMbRd4qoT#C?pd(>2l<{~(r!fh3fN&T7TrqIA{$$J5YGBW* zt7#W+&rh2E0Qj3j>DnA&dgkVZw6)h1?sE8?NvSopwSTZ=QSurM>2YCxP>o`Rh4+m{ zVIkMXjeWA`9-7Lkvo8n!kCYpJ?@!7pw@vCWr3~Xlz&ghtvug)8ZV&9Hoc|1zjSP+;2rKG_u^WTa5H%$`ZbiIUMn=5x z8oT*op^BZIKvxH0(=Es&<%UoJ!>N<`eHNS=&|%sirmLGBzw3A9CGWm1%T%xrMpl3L z2LEl^&aGo&Xm}-uYX6!@N&2$%_jX-|8*K19Z%E#h-MJ+e%4mv6ioJ6NU8+p0Cn!mo z`*Rfq65uY~V^QM)6C8zJL`w$Ylh)nyPuRYYjEou&<1{fZ3Rm- z@C#CRpF$}F?UX8;a%1y<|IyZ5NoPxixBWITGTLogmR(dda~r8Lpbpr|bb6wghkk|m z!&NMI$AVw?pamc^`wO)V51>u6 z06Qo-d7rE-5iycf&ca)_o+u~>H}<2*+u9wDxR2GpOSHos<4P!khuyk97LwS%JzqFh zXJ=V@`sH#5i>Y?HO!JK_D+2>sc5@qtn;qTmm5;xlR->N8ivf9XYTJH_g4*;!r%QVd z;um|hJQf?+v45aF>(HshH`6D@+sdDy62uzuYVf}a=yhb%wF?VNPF0s6I?GjV;O*PL zt3fK*jquX1xIy8oQvh6B)CVjb{{8RW%m%b2C;4J0yMq6o#3ZYIutGfUdbz^b zanZG|W8+#z$tQ#kMcbrh?jygs+iG`gerL^DG7tNIxAWp(s!6iv2w$=I%p96s;34%F zGM%02gy-xLiT{ZoEgiVZwPAZ4<|f$R@#*<9_-hK1s8jM3En5rq!D&N?ZZR6YE)n{$XN8S!~~ zq%Yp`{-LZtNp$NGv}S(h=O?|kIq@vFlVo;dqF$|i{*)PsEA!mrO{xODwDdVS0RmsF zI#dr~i1ol$+ok{?bq^{rR-LqMbBiZD1XY8YNxLN^ve{)I%xC4$)-Zd%I5{i#xD5EdK%(rz)?csn|$JVKa1%NjRjz-Fy;X~7Q zI|>{C%Btmr&1}qODQmtL{#$>2=#LJqGH^fi^qYV8J&TtFfP-^hjp6Ah%Eic8ilz!`dF>Sf3*+U@qw;I7eYU+LClx9y zvCP;eOrQ|Q8ka4_%G7f8mD4Q0RfV*lsCmOc<I|HZ9u>qain@T5E7= z?v;_@iNCyG2r3fPf81MgoN69O7QVJSY|c&3DYQdBgDy)nLRLqm@MTXx*$ay}`3P2w zy0!1|(EML8u>1NRko`{A)<5mtP5QGM1h$3T*2)gEUB`{T-nzkP;k8cZYz8hG@xKEH z1~6{!?tJ$CFGnItT_>Una6Ine`(3`vb2hk9VP03^mOpf;k&Tspw`J+Tq}TrT+Yo`6 zr`WIm%vZvk6Uuq28R}))U>@WhC=8&>5t--7?r!Ku`ZB<^e}Po2FK#HScb%!Y4jf4-^OeowmXqjvShAPKXQwqvW(_^ON4*-qUr8P!4HgM4;1$ z?}J$c<7zml_RE+pZfI>_YH2i~YbrzNZ?QR?^iH32vE}IhSA@7h5Xyefj<{EuKl@!j z>nZg6TSeC+p+m;tdQeZ2?7)vlH;8_Mw5or`MPUqMfXh$ZP_wLkTQIT#}(=+ zfKM665R!`xHFkV@VDN#FB4Z0$65k%A*$3hpkix?jCFNbX-zYppa*4Nkj zrsG;BDF4xiA~M0a?(p~`O=hUjg^Q5;bva6DSjgMc5L(TzHY_5a16sy@kYn+!7pO(We@iYJ;T|0w$u zlY{*ql#avTOaivfb_e<0n&eSYx_c7b6;2r?nQ|M%E^Uq_n&EecMHHdZ*gw?N_^q$4 z%C?-wON=dm_w%H?VCw=Be^Nr-Yk=UNoaS> z_`7#$Nv)_O=I7@j%RwS3uE~$TE9y4yR21T(dESD9{(wdFGvLz6lbZ=*4K4{brZ^)@ zgBIH}_Mb(b1#JoGyY|=QcJl(FrJQg*(jur<| zXVT@NETf{L=q)gFo@!68 zKr;vR$PFUDHCt8IEd7hedCopX>A)|L&y@~v8q9rj(@U{O))!HIr7(J~Sd!|!Y;WI| zT)TD+x0<(TPnq{lpoibSRee-DGRw+-0`>f-L8RO|;#Yv*hurF?a62n&V&hBN3!I8% z3P@7hOiCiQn#te(tlsD(yD;58*?QQjqR6z?>%Y(mfR7ja6mD69Z|qtrQ0#M4s?DK@ zSDYOu)Gf|9GBh9$B)Z!f6BKv0X(sIqA45iIAp!xI!=}9j2M}~1^JOU}=f$`u?~%dU zgOxU;XO}ZdJ|{IZM%sjoI0}Ge=jsMaAfc&X{li~f*U0tS*$zb#yXaXr1_J1IWh@xV z96idK))mFdB9QcYZcApDvK&OM4o;sjQj4_hAM^MU_mVcSO+HcGBYO#{;O|6EN%1KU zvKJ5&=Nhe-cr8^U2#=#1HnDNq34FyIbbUE%J2W~GO=E_VDh5}27j56$8CK$%4IX8972*3$mZ!N>l>#Qf0#Pt35 z3euo{<7{3&+5)WyZO997{Lr)Ct0>x+5m^7B>a5AhlYLnJb~v1;3OQ&>^2UmUSyL12 z2Z0A;Y>*U)oc72?$3cmh@PlZ|@sLm4)dYV9VNLow&gSFH0vjx)@6a#pk+2SJQ|D%C z*{hNJw5Eo7O>(u!&{ZmO2(H7gBu$inSBgM%q3YKha zC*@FG&(HS?9Zh@1N!Ak8 z5*08O*$MurjF*#H-?VI=v&yrq+U&HBV__A!YEA(*moheJA7c;8b1s(}r%JP_l6mep zr->wWM;(c~Q&`BoZ=!S0b$hd<2-nmSml$%)yr~qjS{8S=QIKK!L^X*l8?!l$RVZIV zGCd9{$7-VVx;;2J3}v*+g^0KHj2HuCi5&9^8)fye4|^*0>SuV+%C37H6pkC@okWgC zbs@`0DXr9CD{EuG-aHu^Ygtw|ws>;#?NJ2(64PemQp;@|mr-Kt6!rg2&icpXHiS8C z*?#oFA8p$vsI?;16J$1qnfTAvkz;`9<&wuogjB$yYTky`OXX9 z2KSXq;fTiyqTpn{&xK5-a>uUOpx=j3KYV?&GmJ#K&f}tDS}lCgE8;{x`WId{rVPci z3oEM_6Y}sx$Cy=++>yO&UfR{wbrp7kg9kl^5Poyxm{trrT9XH+d*$SO@Gq(BL!1c` z3kKF-7yr;jaSmtqIK80g5Sbg+d6?$0*%Vd^`e0WHuFs>Y$`9T{=V-(1sN~i@pirZ9A(QBIDoLxUG z4mvX1+rzrd7ux~cAU5yRgzbj|(C4Ur+C!%cF$aAk1p{bgOq)KmZN@;%GzF|WjxXL5 z6B7stDwArXc~7_!M`p2W4tkbFx?(Ez$hl9C)l5yUro#2@5t94SccmRE~(!L2F*Nr5pDCkPtzOWmf4r2(AE4L6coDeK~$BvkDta z_;pJwARw#Efl6y_b#`;Za%o?P#+Jxhd-zzmf;VGyQVP$`W&4 zdC2aSm**G{jLG5F3AcqktrYJW7UgK+523h)9-S)0GO3_SyOyykFd=a}xw<0C8@t;&80$2As-(@zBXaHo^p`o+^717p;4`Jq+$aJ99QhLR0tr~sEGW#r>YAc< zj(Nnz#nJSVkZwq|t$jJV-ZU{E(PVSWe(aL)wr#XbLzS}XH1Ia(rbk3PV(HaFv%1>8}nfB!NKhN3jy_4a!@S}yJ7IC*RR|#xp=>HMNwUjK zvXYdMgjAG7rTp&m`Ch;N_*`9|uB&j~@7L=&?)!0@PFnnndRGgqIB4DbMb2+y`t4-0 zZ~wWR#a%k2lo&_t>rM^*wzXqw=HZ>Ta58ygor5fFkS3U6jdoVva>zib(wl_0%k|)aqBXpS5Ox4 z&pyscSIc>KSR`NO#+MlJp{~-j1-~h|#y`s#rT;qxw^Hvl&S?D9+YB#ez1p2F`Ttq~ z7}t#jb|<#y_Rr1BoS{nzm|7P_!YTcDj-!B&l=z?I7fUCSf6)rSOEur6) zM&o@7^M;1l*?VFOxMejqm2WC~F4$Z-P<1QeE z$-3(b6Is=6<`NjYprf1jOO|UHxR)zD@7V2H?M^7s7-Tk-V&~T%c9X+apxuY+IH~mj z53r1q+eWU1yVBg#WHC&Nbx#jBwrpe8OeSg?R^^w9#7t?ZRFPOnNS;$uOAum1UrM-h zwONLU9fV*kQD;(4yenClP+C~IBLRJqUFnNv1I8^gprg{LxpJnl&_>&7MC;}o*{kQf zak5_XxV>1a_!-`R47uJw*7ecTRZBz^6RrFsD(5E;z5kONo; zlF3hf-r|NpO|mUae9GG&ayT?GO;B)Lx_B`gjv!5D0PgoBlYn$KHZ`R;+VVQ7^)9U+ zhjQnXw{Wa9Zu-9~clUGjyt=OK}Bi+7;uIVl|8Z1CeOmwsa zag%v`d;bhHHxsy>ey=b0)%UHc@A1jf#pE$9C+DcFEal!pF;dSNy&r+caUb)LoLFA| zB)1y#W%g+wH3M`I9n<~f{hW*d4E$VO%@j+kymRLm-^*d2aSt+u34k#$WNh%`d%C;F zsS059feHcL<5Sa@oXsvJ#l>?_upo2}6Hs1AJuY6nDBHBmlIfAnYw=5?qKDC~Ao(Fm5S z-LQwmCniS3V`t3hi4oT#Nt!4so2maZ8ZxucG?5xGOKdj z;xVs8ZC^e5Kb;Xq7^(slKX*uZ^nHDIDIhm7=|N~B8_tSNb!E=w`OkPUQHdHHt7zSVypgfK{?0QnJ(+`HhP)tx~fO=ibvDKWi8+LBy)w?hi$H)`j2<9gqWj@I0rUk2(JsY4&* z4)G*d#m6`O>opQlzI*ci@5G#SP7QjZN>4aKh{ZH%TFqj01yim7fpV)$OcP-rH;uXZ zpGsXV?IM)K3Kk7)VdvK#bTnyrE%U77SGo9{=5NspLp&Y(Vy_ZuF8qpNx=A8OK8Q2+ zB5V|?(O!906|v+3sh^z|<;l%c@J zsYFYg4TeCLZb(<%$!pQ>Z*EwxZq1dYg3ffqW%=@@)kO+_rUe`4P0sAe{S^Hsv{7e2 zYGcZC*si!rJdMLSinScYGW+sJ*&)5llQ?-Kbt06X&G_z}-olvxu-%u5`b4ME8POY7 zX8tzm&(>4yHZ@(Li{3*s`j)`|J~wCM`$mH|_tb~?6aGO>hyDe{ODIFT+{Qd7N(7ug z%4v(HiK;oUJ+6edp}5y8Y+OY)^4lf-cW>j*=eMMek-(@ZnvHEii^ncESIp+z-{H6$ zp>i_GTGhlXjpa|Ozq!iX%mi+V@7o{pVMpS3g^73XVD@#b936aOdqIvjaPFv=b%^_g z3#;hI^9k577Y)w))?qc$GLS3mM$_(n@1Dq{W~f9j<|x>f9jqqHkfra9EU+Y)f0pIx zXsg6H_+)_fNn(bbcep;OtN36G6^B6hz|E`oO2{4D*cqjrQ`~iW;LFj#$?fHhfvbrj z_SI%mk-@*K|4^bxZ27P`O`bQFASl+PNrWx>sq_(vt!wl?j0DqdF}Au$eWr6i>gzO3h+>B+4AN=ZIE9j**Ne@eH~ zsHt&gFYLQ5mvy_iE;}4L4p)t$k&-HbSOMKhjX_nVGbJ+_x{&8}1gVvUSz`$H z>K$Ap^XRL*N|WrV0JL7eR3#>qvM+6>bxI$BzZB)BrR7y-s(}5SVOZ!~SRC(NUI(L9 zsA%xIbs|hb1h6ZtAGom0^(pQCj46j`YL}yjY-X-7Kwsq}Dkqw}r-o^ijs|W7!5eW3 zUPi$-Se^~8%jxPd=RdQr|NHYW@>MjM^Tkdus`$tYax%()enGLke!h8Dy{?S*m7&S7 zjlypYclU)oi3$Sy1Y>hQGmXvG@9cY6GY-JQhL+y>$t(gYND{o1Y3NX#jYAB{#h*A6<$)FcGMf=Zf{Ygy;g57{CDNPT?1 zA%NSPz0>F?X~lF%v$&ts9*2#r*DCF<+#AHdgSEk|$}v)Ds%+92lqoaS0h(&TU7I zsp<4W*>m{tVILlfoD175yQSkPuj_u6LCXaD)qVtJV)qRtQAI6syBcP*FI~KJsTTbO z-eL@N9i{havZgEHIR=u{x@=D>%U-~mV(dzUa(-cHid`HOyS<+lOa%>}SD%<(`}pGybXnQW-c)U_x;vPnnLdw|e^(Ci%0V;#X`52` zlaHU&kW}Fkh>;)^M`N|y1xg6v%rtkNJmH!Ad8;3;vKc=M=14Q)tBzbrq*h6(tbQ(? zT;a!7brFB556NC4bDJE{Npj4{cQgkkx#SJ)Zb{XL!uk$@qvhQU(bJr*l2lNf^{ZO4 zsHslMM*x(S*@I*?<}irD@dCPj|G<8?T#o?X#r{L*rP^%LuL+n8zl*rd6ju1pBQyp5%Oyb zr)WDq-n+Ta&;R6|-Th=yF=BLm070HV8!{ii*#6|_?;NV>X~LcRryf>_Q3N{Z?Na2F zrb+Pz8Ta~0DZ0+yk^I|OPb<4@?W;mXeMia0};jf?mJ$_d{)iaJ34|X z&s;DNwJtY(#{9O)u;hBbBUQhIniP#D{kk2d#qzrf?QOr#1Sn=}xMoDVuBnBKMaD67 zNZr(q9$sKpuJnIvE6b%*=q=|#-YIaWf{#!|n&kGC;~{D?CSEl=yDP?6%fMt;8!M-v zqrdjBS%#9va5ZC;!*v7RE%Zr+a$gSJ@!^d&K9W~N@b&OsYpf5s*p@-b2}7VyDQgVw z{oX6BI1^gRoNC5CGaU!naMV{L*_b9wlAC}2_;tqw2Yk)K-|IYYh{c5+Yeph7DTh-A~~H_lSBIoPnf?SYvXblZB&k@+G@OB$bb-e?TEIU++4_Mk(?S68^w2xBtj!=1zO@0 zTiT_xGdU}QoZi1`Qnz!`?EiGMYgJ0Mnz60YdF%NtQOYTfktrg|1R<%&6jC$`QFkEj zhImwHil0aUz}1p<0Rb=GzJ(P2v}u$+4V8ktGBc5oJDRWCfOpoL7pB zn3ijmQX4cjfwc_75m)YLDkU4;g!q1+;HC|Yd0UyKU$av8 zY|iE#ke1S6-%;J9lMa#*_S@f1`S3mv=>=ef?*4LLq#kqAm zFeG4YnY<@jeoHY(-k-29mJ)d0F+T`Q2`JHgw?4`-wco80OH4?>iiYC3K#PA1-c{7^ zJWR*0spQ`xv6`4O*Iz|NN5IQbG2Bv8+n_fT0J~5T)j};M^7J3 zQPfj_x?oQ-M`CHTPQeU}y?KmTGE~{;&S!UQ`3|5&c<3LjQeYI7I%OJ`+&%Bt>fsJs zFv821!^Rt*R$GdngY6a)P1HAq#yGu@O{90ebg zqDjYhQ);bYw^S#tTfbnz7DAcJ8Lxhsj=o1!#ItTD4I5aH8SFTRfa^v6x}MTFM5z}q z_UU;Qv(c~+M`BcSOG;d^)(6q$*NY2{Dh9@oB==Nd#PJ_a7U6eW(s(*HYm460mR5HN z4sPt2Mi7Jkk+v^f5A2+)Yn~Jq&OD8QbQXW_c|X5Nxkfl!T*wH#ON2}W8YDb61FjDdnnrXvNCbROiJHGAed35nMf)F4b^}A?_&Hxc|}ETZmXj-rbGIP5z`HB z-PfUp9f4o_cpM+$rC7RlAq2ZsrKJctUWC8_cClPx`K%Wd9~XvG{@-JS;K36v#SeF> zG3W}3MTsmc8~k`?I#x3!()iQcy0iLkLw&e;-jFm42j^jZseY%3)NMHPTU(XY3~m#n z^-e%+t;CEnZ|MYV7=-Xg8~^@5cg*|yS6>nd<$8;J?vn=u-)j6Jhqz_BZV_fewq0l! z_?d3x7vlrNbECwmEuR%#rWn`IpQ(+)wGo6;!;&FNhA4`f(?~rAxFeJxy5xbX3fk=F zkVKQWl>?mL65WI>PD)NFYN07#$l;;r*!~G_WAGkwpjLfiN$)~#=GnTdrpu8^{Y_`5 z2Iz2qHcc{Cji>wfn&0{?|Fm1{%L96;BydCw%| zIlxT9nC+kx>`6*{kg?6xTK@d!r;x96=6yrZ55(}9QVthS&mwvUt2$=oy1F{FFtf`_ z3(|^;33i;VK38nPmZHe@0F6U`b^%GNI8W1%zi~=a;&@7P2&%)syp!d2Xqy$8q=bM;$yo7-cK5yLfQ#GhF+3b7Tv=yg7?H z&BO||d_}U_y%o6Qw%qg+W)&13uqQhkB8xRv>x4$MdInt@#f%3M0}?oG{rz9hF2m_W zk<&v0Kv8^|i8b%LMnd`0V){ARNkZXcz&L(CCn6*yL}Y+T0JKPB!829qnh7T48s|^f zUBs4$jP$lKF(K#~nT#mYkN*9ZXu{48rhpEK6?)fH_GD60=@u?)R@F#5QuH1M8SWNN zRwLZLQqcu|j3-_ileyJ34wzpR>*>yr|H?Z;?zOKa8FnRA+7T3wai(=SYGfQs=ZK9w z5=DClcA71-GarqJ?D5ac($uP=uNB&9s1ODP2WVQ<#9{^1S;=kQJjbgU`<5F+P4`-I zhWYZynx|1aOy}k8IiLA#>O3<~n>(wx2zQKYX`vmWIOH_>^6lBS^l}#}#TJzE_a0jy z@SJviQ#?{FZ`GSmF-45rbWu}pJchBs_U+g=zR8if`J6(~G%!GjFRfMUuLZh0O-qulrCU72XvBY`YUrfu71W@piQp#{Rzdnut! zojI~_A4xM>ISdC`clRfpS?1YSzRUZqHG{96D-0Q6X=%ItmW1h0b74)^j*1<#J0qCP z)0~oK0d{0o>Qu<-bc9T=bP#i495L86yAf$GH0J<;3)n*RMQVObm}yQ-LVgBE>|{w% zHp68Vf*pj0E`+6cYV!k+gb3mOXw-s#b?(tfJ8M}d$zy6l#T~Xa@a0wo?rrscGjYsv zD?Zn0F%wdFCduf!_H4o4aYpyR^0HGh%W3=5J`N*%kl-sJE-)yYXM+e<>yo+kaJHM2%t)JL)Lco&efSSPpHIw{X zJek4_U#xafl6~jr!68d28p784xBv@QNP{CFe6pLUr$^g?C%znWRk&NS^zs=Y%W1*u zT^EmVI&CJWY8BYW2=@$Btk5o6;%-9W_Hrq-#rBcsuPU4ms(BE4-z)JIW=)86pm-nJ zlkpzymylTe@})O_ZD7E#*#6Gghk)Hy%|PSG-j--~xz^_Sl z!Cv~NpB&Fi@r1-g1X=+wA*YZHbHN!%SR^y)k9=BN^M|VvGG!ed9f73D0L3H?msn+H zRRoL>V&PClTqG|;6jW~ia4R4w`7m9a6LjD&4L144%m(C_3Z}&53S;R#RNzhac=(b3 zmYiRHT~YZ)Y{0UqWi2onVUlB6i~EE{D7=C3fW^N+$(2v6t}g~}0KAFlX2^M=HpFEw z4vFc9M@#1-7O@z7nYQC&J*|1v%RMN~vD#2?br_j=)_~ zCxpNAgghg~Mvg4!`_<#pbXj54*0M(DZ#AH3fS^-SvL*BwDj6157 znEAH3dw7V!<3wbL$t93+U%}fKc`byCK6YB)?ZeE>ePmJ>Jbc)}dr3Nl13zmO=BHh3 z`-2*&1J%XE#rKQef4Oi~?(W8)`b>>*>&Jes3fT(Ylbal*d$SJj$mV#YwX_+=uVj)^ zCqtl;u_U?i=KpH}Om^+u2`MPPCf74({`&Q#QNro6B`Dr~gvCv*k{6nV`=mEOr1=v&+V!B6Z(=D|hS#v4#w z;No3aSU`=jLoEF`^HWe!eE+TgN={COGaVBdM@&p^YC|Ear}(?L{?C*8+qT%hhA!cr z!Ae`WIKxdclQ}HzCRt(b(>z_a2=5M-u(;UgE}x#znvSmwUb6O|ib9qBY2`PVIFd); zM3NCZrRdZR7dlR1JPMOG?ywbehB(03MGNVF z`$%tAkAJQk7&cH&KCJ#hc#kkKyda*Wi8?=}D^wz)km5IPfsiYEo2+p5| zV1T0z=4ieK<7`C(7Z=xPg3%|uiIFE4sv0k$n+8Y|k%qNwLEyetFA(X- z{_AfTGI|`oisix(t;8x(t}Q-mZ@F#?uM!#zxsmbnSSOEfBAVT@r|-n$j2J zKnCd_MbRf~?5(bhqWkwB;A8|37++^bp_)L_l$2LUNK;WUqN-e~s9sh<@lAX-yG+qO z!B?S18+G#TN*<JMXKMGw5ZZE+fKCmImJW41OkbCKkRt3r&UXKqgJ z$>rMz4Uz=9*&#sBKWh+bGjYL4Armq_Ztg99%X6@ylPm#-NYl{$bb5s{}rg1 zVvsZKJ=B|FAalm8Y!CkTUIByZe)xIF0m`Htr@Ur;PDx#oCIElkn(PtOdnjzZm!00d z576uB?k~UR0%skF5btWe%EzXEq3PibTCYTejAol;_KwMbs=h5_uEo1)4RVFG2Crji znW*>%s&{r~dGDo{EkHKhv#NInsE8vjhVP2LocG$&RKukUh}d~+Sv2g15{Re6=aynh z7vuKr_@CL?*?6~7q4N6p@%LY)3MH$zQQ-%6xPpCbex0PGy*GKh(kI#(nSJNKy@yEw z9;Uqh;)C2+d?fBZ@)#n>i8&V%@y*)z9yT^V`?IHR4U_vQ4hJ|Aof*zgLGIm{!MKp*5_9g*dxAaMx_19ip=#rofeR<>J7HsxkINua*nNlY>Ox~NC`mS%UK}F-IrLg-rVN~oS za}w3Da6SU9zB=jV%#8BPwlzgHqdN)4Cc}=>!y_Yua{X`LD#(+cpoMSWb@;Tl*CTL? z5L6tSqKYeR{4YK9B97*EoPw#E^i-R(#vj?XgrjEzVLX27M~tdriWBFI@|oWUl785P zbUpg~Zi96#P->Jjc&pA}a%pk*)7NGO#IV^mrNx&oC)4{D&ew0=%YEW0|Iur?!igOz zknKyQ3RZI+*ElPm*AE-1smXycab@b9Z9P#ZWG1ccLeg22Nty$U0r<%CdV3WpVh9uC z>r>osnnEP{mXZ8DGE;p2eogwBfBH*-9ltQmP zfhf>+q9I5lu;k>Wgq|6ODCOIy5tO`1o{Du(81q%*s-3~N16oed4sr`qC3oc)mXLL* z*QuS?al8k|m6lF?qgrh;z~lb*jBrX$38l8g1HJNhLeYf2UM9DdLIjn zTAc-T&cogP&xf|{8?99mPnMKjT}wt5;A~nYa_DA|W1L3O#$9gv29Jd>4-;i20>z%t zza5vnb~~8_e2j0rq`0gwt+RH|2%X$aW&CqxKgZ{@yzU>ua95( zR#p^G-D;Tl+t|0fUikH^Z(ZP^&cQR|Pq<#3VSWz?TF6-$&*RtvkxJwXsGGM(DbE|1 zqANhWvbd_Pr`PL>DGIygXN(Z8w*LgE>mLs`R)%cArh;fk#g!60{t*%Poz1jodFXk$-#)Sw zr?#&bwELBY1|HpMx5cn z{|0luf)rzGd%N80_BCzmdWVk3=N2mH!z<~Ynx)O4Q`>3y1m+viocdx z%16=ix6qYgONZ@P)7tyEd<&~bfxj@XV?6p03};~?L)M|Q&fv4+7wV*~Hfych4!#Wy z+U`h?yuS1DqN&}8hH`Mo>ve8hr!o%wVT$k3rpDr3jr#~ThRP(@f603(Xc0hNAjroA zrwn{DoTj1Pn*}BNmg`~q!8bCv4G=k6B-}A8wuaCuT`3^-o1UWtj;FoPx4u@gwy8qIe!9_JF)OzdpoGdl08d1RoSuo&-4@m}+Y-!!>%=34LOIti|IQ@!&iv3eb5lsSy z{tkJ0s%cH%Lqb+C4;D$)0u2E>>+yy^$hl6^P<=kTg}*6a-3KYPQc`w+v6iGdnPv}WjCPu z$~eCGR6uA>W`9RmBvS{uOwc`H zAcp3l6^ywx%w8^Y+NEd>ZP!`;M?pRWQ{98b#?;C zE1)$uUez`pkd^&O!75tT`C`zFA2%|CJZmS=Lo^`=gI4J!DMpIhH5)(KmSQRw8HUW5 zm>7(!4{|5yhhIBU@4~>zC!ksb*lT)_*R`!R#1T8YYGNv^7{u z)oS^tnDwMDntH2(9od^j&?9nl4hd8jR!1_Y&AMb1ZrQ8J%I*B%n4GG?H|-=fvQ9r* zxl{MMWAB*=$K*O1mVAnQNzUqaCYo1UAd_vdliN{qhAY@tz@_H(_{Bey;|G6^emS2} zSUq|#R>3EuC;zNi-+l9-Z-qKH$}MWTr@ze+mD<{LE-b!$yvgr3;WXFc*nz%u-63ZN zg+4ZuwzOT0bmnPRV1l~c1DugZ&d=M{cGD(fmD@fTAK+|lY#g_*c8x?FQgZ(7v69Ur z`f37qjw5`{;SN8{A5-3DNscL9WNGPv!9kV5AEhRD1;ZVRbXRU22|^^HYsSgcZaQlM z`JmO=l~=oR9=W1}!*ehS5-Og`9sB2yH0QnMNTA*-99zg0-G3lld!PUI))Vb6vPdaN zb2H><;3mZ)LSh{@7Ed zsoCpV=n&U~H?n}OP3*ukiKLLrhg_Io*tLGLhGXGPg&p;W5CqP8)=qCNd;F<1DTzgi zS=Hd_kS(4tz^Krm5!LV>C@~|j_(J1y77)*lvoB6VZ(AR*?EJtG4$3r*7*%^{U2z2? zV7b#gY)4$_T~un{s#CR`pzHI0>NY+SrEG^slBZ+;sfW+MoDcaHXA}6j60Vqb)N5z^ z)pnrvF;APxJD!N8j_vQ;u5Tz{u8>J|`%K%I8gVH?+BC9)Arr>w&`@<&tw->#Q@%(F zU<->CrNRv8G4Q01j7sr72T?^9sW6mH1?tnR7h_&c4al{wXXa)n-y-W!RLr@;m}r#O z)p7ms9ct`%A@(&6&OgC$1E~7%aR`SWY5JWyYR^J5#g?=76vY;5P6#E1dlAN*Ra%M> zamS}r(iYFD*K7oS%0do#=2)$gdVI0IHonT=Ho2Fbf!1u3C6IO2YAKOEv_y?jN;=2KYDNz@0JIprLqSOOl3W+g@*YX)}RC$x<9{d z%j1WsmS@r5+ngVDLeAAjqz#cF%6s9PbcMlnOj9fU$IjGZz=vJvslz!J-5@rGH*PSaF`^MYR4MRe|e+#Z^Z^IH5)@eHG`{kOf2sa+EjNKsiSfM-yH>#uqMQe zWN>1=cLDv7G-HFHZ3;-Ye=D+D=H5qe;*G~efvE#WQAAP69 z7&wjI%!9a~#P(*-x|OS7gAQrrn4ty$_z|hoFB|1bzlvv86eM5&A`LWtu>|& zWZ?B?T&cBVF#O-rJ*}9t@%*&n^ztu|TEU_H+}jAS{ssth{+AZVZT_y$h7Ui+r?v=- zJ@5kM<%{r9`}?Zgd1(Y`HU8yU)PNHbvF{H8@du_i<*fwU^0h_JjC8SldfEFc0lXcV z{S&WvE-vX+f7+Z;NEw!>TxMcX&dA7wdPh&M56>))v1*S|X#--6`Ut~rg%!rOVbvI! zovtw9z29tfj``|dO=J}_wlSORiNvx3l`r}S$fZs$2M7@C_oiqH-e>B-n|lEt>ipyE zUT2B=&sCT{9mP@?GcQ$>1*$N2sN!(MFfZ7jH*$X<9+_iDkE{F&DKdNyn8doe++t~< z7#2Tult%XOt)8X$9cukw&QlnA?AP;!ZF2=&8DD5tiS<7)XO0Blx5Rio_$a_18u=n= zcvT!?hTv9MUf|_J^KDBuH6IWb7qds`fB!CjTjhk8JUB;hkX&b2uusbfn+G|&(xH69GXqOuBF5y& zq%62iIpWSda%>YidJZ%Bg$1wAM=t(&_v+QdvBk&BAX>}){91qd;-w2;-mtrPo|k_| z7olWiqJKhC61J0!!X<_BVrhXb7N<^Kb#CkIgmdnAlxzCc z>IUO|2^}LwnZdo4X&HI0+{EVDpAECRJ}y}<#D0lTo7}O;3!=t1nnz!LqdH4x8}%4& zt?*$>YTuq2U%?cgH@gnlQ8zx4-IKGo^Jc~&mIlKT;bca;B0fS!Zg}sh5@VNGY3_Jp z+uW7${&StK7}t=pm~-bc3K!5#G_RvPzC-W~NwK5z~s3d#*v^3_wB<+PQRVvebrRFW3rgHQ@EGBH^<1^sD_ zit|w4Gr4tBllS{)r-X0x7y>%N@h$H5F;R}Vbn(lrEimt#GD*b>pww8==RF18*z*jl zjlLO~$EBIt?cOA51@iCrq7or1UXAD;<;~MBUAhz>?usr?VDZYp-nm} zN2qMxLPQkNuOKfU>zl9042n>y;g%9Vm>A!QoveRmuk?sTOrVlc-!q&uv8j26mo)I^ z2hIM-LRXxn1|N(?Xy21V54?uvq=o{Ctge>1(SzKAA+p&otiApMEH&#VKgEDBH2#BX z_gIeYPIH1F_@U=J3!8}woadMmC>Svl`NcVj?tY%Q-H8k)cZZ{osYu^+&_7Np=>3Hf?9XD2T&y$B8)jDSHGn&gYN<6-JR zEk;pCn8xMENK04QwM9b!hqfO{urP)VO?iU~^wjo^$3y%maS{q;_U4AG9)=?M_II_L zcdu|uyu^pv_J`_m6k9`m{b3#^2!9ZYtUU+r^AaF#4I>wRLUMpql?IIXZr8xY%owGt z&=-Q7lgo5+tZ1!v>nj_U5Yw2s8KGV@$QA1mu9tFa2{xfbD@&^x?6C6d2ZA1T69}=~ zJ9qlgZU1=ROIeDSA&`UbeGb@L${tM?W{%c z5DyJRONNfBT>Pos_LY9;&h58&P;4oVXeqZEH`&Y<$;iaezS#)g)Mxf}(0P1QFFNz0wMnq7Ue+22`kK5 zuur_$V4XfT#kGMjo_a(DAnlWp@4p?r&983LW1(1lp1jNc?+azD-0Pf~p1x_3Xu4@l zR%Z~!#2F6{g@Et*WefQI7mL?7wP$Z9s3b2Vis~bhtmRFfT;!kczXH+kA5~j@( z@?0(MYb^dre*SW_wSIvj6O}ogkSh#~MEZ3AK4No|EB#5Vm7^Xw7bbw1>z?_3N9D4A zHt$X@w5$}GKc4ySXNGX~_q%wyxIFsua12S6l5%o{b8UDlnl0$J^PJl3Jj2*wqoE&t zATjBr_>Hy??~{K1bX53<8zpbAqW5Iz$bwak8&n2&^ye_W!6OVs7<8;yRXdLwmRwb| z86=xsp07fThoGR~M~QU$^V)axkG)IpnV~>vDK^!*KuR7FV#cjE%4yJU}xv7S48 zi>IUHv7l&dzsA(I0U~nLE?0P}CSbddj{ZXLo49jUAsE^QSi=C>1&B6q5{2l8jPpN% zif%UwbXtstXT8NKROoHbAG=UCp+_+zGa zV%&yxYn7M`qlp-Yd0O;~qd9#MmNE(oD2}F9|Fn#L`xS_c&ZCf6u$vB14{Vxc%Kr3v zr+cOPXQI9Y0_X`;JyjLY!mm3+h}dvi7eOQ7K40TP9N>C3WKJV7sJ&*d7a{_v|(^vSEI&a z|BaqlQeG7)Qo{nt0aOK!okNjkYI3{pa79mjBrKs$5PbA^HpMlWEGYgv6J0V zx$nL{n)>}EQ`VCqLGNl};tmGdM;Ada$gsy-9oYCdA%SU#JY4m3`N^=y;FWCcf__n| zAlk?^`cb|R3sdcd$c#q8NC9~@LV-v|ZgFg`FQbmZ^?O=3wcP>(uRCbe9f+3k{C_Qg zAvYHP2U>in_=w)EN|!Rf zuZ}zjR7`xraWB_j+S+C@F|rLG>1;q_LBXCZ?Oh5#eqwa})V|+dR)#T8RNm{u{gZL` zL_kUXGuO|%K1q*}_XOr}bvSlh$*lw} z1xH4u*=Jy!l1cMOGdsu~KgR*~s+NKA>C-}v&8V?wd=UoMOco$A+$qPB0|qPBEmtr1 z%Y<&k6q{wwqEjdP0x~p6mfKHB2Xd6AByxipM!W4nNR%=x?stc^42ZTI$6j&v?a{kZ zIPXGot~tyZ-Sy%79Sxw&9$Shh_9b#1B7mm$d^xa8(#ecApIG`1-94^L?7%z`(sI6A zEBShtqn{P{X%wK_#UC#6S+CB$oBlTRRTop50e3h_)C?m3Cguw7PP{z(3q#k+6M%vl z=Gn=aPJ3?p(2^p3hzsktGv=W#WRV6d;WSgbuC^KIcz=oOG}EPv|ChrOENvmE;F&G~C= znYb6|Ji^ESA>8uo=g&{A`zIz6U$i(%yJocOYo9$U6HQwq-?p$~|2WY#p|o@|zxfC! z)2vyUcNj#`v8$>AQ@(Ywo^J^@e$9tL$5!{j#7MTtWuE~RcW)uw@4_5eOveon*Qzhf zzLLu%b*N2RFm81IJidp^y(LDG_AVwP(slRL{nU)yH*4U5z@?FX7;fpXtupfRZ{EH| zhYD7A+9@3vTN}kLR#mL#c{x4=oe^K5%ZJ%yg>( z(4w4sbx-v@>ec`;x?1Ns`h?*v`-UJKz z+E1uBwj3cKeVA)(9$>hUd*%`MhO`AE_zBT2d?Omk51{^D3|hSO<$mwUyXTN7i^qnO zQTE_Lhxd$ZoBg!RhB@`B885edy*Ixeu=T6O0{HvqKfm6*oPgJWUPuT?V3vQ{!c@{x zBu)DQv7V~1Dd#s@!@-YwomJYUJ=&KXF|no?1$meh?r?_qH&~}R;T)t<>O6fG*{&Y4 z2zz8Pfuhk`K5G{*@9M8W%xc&^mdcs2$kNf27m8$j`cSgZ>SlCa7PB(Ji+Sl-Y84lK zn3Ldv3!cD|o(fsMYl9JH5OTdRyEC{B58zByk9d!BHD$5Y+#K3Aee-CD;#XSro5GKs zGZNA6quizE-YL}H(LGc3%+22Xd`0;NU`JlOa-^Q`vx|+hG8ckAKEHH2c&RO995_YU zOecR`W}0G+kLO>goDXu5uJW2t%o)K0*S$sT&N-bCW2=&G_GtUCRl`X8F5@uOe&X>; zpk9e;I)RR_UGA({6Z=g#A3r`to=dEiuG z#w_!s&5yh3gM;MWo$-9ajUlYhuQX?KeWl-5)nyy$!0%WrGe1~hsA*91h67Wa6W{1s zo-Qj`m9XZ1zok@Ex^&yY+6pk-kH*hcJ!YWtq#y?49#i(L zn!$rno?{oCAoXQu3u?xJ$ zmWQ;Q?AI zKk&lh7Ys>2hP8j*q^j8LM3Hf!cdCE<7^wB_hdk>ngRy^L+O2S1uQ3;$wUj zNC@6E32Mv9Vh)t0l|v%_CMNOf4kT`97c&Zx>{2@xFTxdT{`RoKVMrn1f!0Y9>Dsdg z_hW#+{~DI>78SOeHAX`Bny0BfyVWz({B|5GmNv;4Rb&kUf=YB!!t4$Xh#>Nfo?*X# z{zj57!M^}#3R>dzfr>Of>B~2{da53m@!Qw7D?K{}rN&l>WT+M3eZ}Etbo%sZWXW{Q zZub7lJXQw4OC+BGm$&&l5C0f!``5P4tHH)&ip4QzWK@Y3xS zv>iIV#px*A8=uek&U_EhUjQ85Rx-V4=AQm*s&-X%B0q`9z+ZGQr!ViW)KWNfIgZk{ z-w;g7IbtV9uo1q-^8J^>>tm97*iLziKJ_eIxVY_e>j8Rw=i0GD2`XOE9Xy)5Z|^_W z2_EV;Iu&7}TXtIabS3R)d>x_k_WG$Bq@_2G=0E)vT(ovEUB&}+u_3gEKjazrv6Sfi z2_VeEPIsH^&Flrh{80d#GQi~&&IW~%*vcV*Y2L5#Z2r#PrOwVPAOXCd^OnP%V{!7q?}|wL zy)c0#CQ_G%AL44ZzG}L(Qew=|@=&si`n+SMnPk4oW!U&D%Fy1vIhDD+=@JE4gmo~A zxi$6A)HO<+*Yvcl-5jdSWnUb)x@wsy>ithNDtuzG+*m~XhG>$8aje=~s9$59SibPO zu|f@S{jQ9Zqx6}6nz8-H`%<-NtzBRNpU_WS-j!($LxnWs?pbZYw(48LvG~d%;-J9~ zuxgY?Fa@lJKCQkx`L{zv~!ZRb*2qs(5wAM~yBs2_ec(q0LjefAUa*s3Qy>H@^Qe zCQHA5S>ZQ7fZ7cA9Cr49{{F+9N?(|yncVM!+l}0Di@vt#if-rA&MO_W!{=7ABL3`G z2=5b!01C~u#<^98`{Oq(%(0ksEZ@hPu-LUvUoa5qR2(TR6 zIO6(dk%NdPpE;vK%x~{8)xC9YwWqex1w)o3k{T4ey0&Hp%m-y%2?UM?s)>k2-lOAI zrn4y@v4FbvP!!AqC51T?$`(|w zQ{{!OEw;?_(Z%ookEZjEr~3cje?~fHCkaV59UMA1W;Unn>=oIvlAX%Po=Nr=a)gkT z%xq<3lOnu@Y(hrH@8R>iegEs-yWHZuUe9qouIqliXSS3E=gK6k6xNc1(8lnfQWGtJ z7Ve2yxR~2iJ+|ko($V#H11{HQw^to2Co1w=u@ld4a|-B1UQ*H1t@**HO5IZt$O7%t zNpR?>ENv?Dv#=+5sR(Q#G7`OUEKU!5W#>w0E_djdN8+M)l5J7Nn_>nWLO}@IBWqPy z#G~Yl?rF_qPM5YzeVu0>XviP&)=Vgs0%$#2=IH@^=6D0zJ`5CVuI$ZMienPoY8eMT zvirdcrmH9XhcLWbOyzu#oZhZUsb)zx*g|-yJBCPF6vH)iD01vOn^ogl1tqO4Ih41a z9xD!7E9+VJIh5Q)T#F=?YezK6I{@d$bD8jqY)v$>Am|_=vYx9LIDR(1f@^ z5pyd>Q4h=qU#xj(a5xj$d@;B^G_Ar|9GB zdvM{slMqZMyc`2*_c?%cU!5kRg)Jm+tBUTY7gA(41bb)w*q|Juwk zz_>X%X@V=T;xN{zR0NAXI+=KYl4DV{qM*RRKl55Ip*jlY1zD6NL9}_CNCcewUzJ~q zZ&`H_!>Yqzx7LF{Rc-8cL|{v7|Du%iO_bs5juSJpV`I>#VCMx3hM|Tx_#NSP^c0FT z!rEMCngeuss&{gue){fB_4_Oc0Y2ah+yB~B&pNT7FThFUu7-y6W-}3#5V-*d5R_X~ z_gN_yu-dyv9Za9q7ZuUqU;^86I|>usHk$&VPSDMak2jxfNFDr&2N^3UKtEp_$X%b$ zc7JI}HM^$()x@e7XmbbO@2*(&st54vF2wUea$f*;c`y;iRu=r>+BvestVo0jjFG@& zVD!<2HBLje40k88^ow&1%rM^(%f9=K0|oohsbi3wcjwbk zD9-X;yN5Il8lMJ2R=FXd;NRs8Zp^L>R>Uot3prg98y~cVHY|$ovIs@TfN3gKz0Wtx z56P z%Bwu|>lX(}AhJx}tF*`gXmh(QO!w=*e^lQm9f-)uIG^@nz?McTHelw)>p6Mzn{{^( zWSf4%rgyx^OWi-jKJbniBbDVjBDE32tL_8uBEr9;Bj7hfGPx;ZmPhpHd#OMfLVXbp zPM`UNJ4CFg{mr~h+e=izKZ1J#r}Z3-%AY;w)T;mPRWFs@Z&f|>yKrJguHQ%pKjX*x zA3_OT=NmN<`-OJqiB9^$>svtDhS9rZzh*G-F~AL=$V?#D;cRqoJ4I&(KPS~{3|*hJ zOLw$rL=-$uHod!ONF>#KZqbU+jN4_q5NySuX;rZd9qkwDUVi_Pk&&Uu{t&Zii36t+ z$oiGh_9}xTJm)o(@bS%?0a5zwh?%6>P_jUl9=8{Fsi;&@)ORWdr%%?V*}7KBWPGDI zYFRQ`a3u5Bny>rNI=sB-Eb4`O=hMLcE;p@43HWM*yJtSeGUrJqRs7Am-?>3yRKNnE zpr9}TXF-k~aWX%{3kJ1LL$vJzW#vzUK1u4DvW4fb?bC*r+AT}_DnPr(Ar2iV!d1##x}9vAu9I~Nq>=_S|@QT+O!4aoEn*b ztCf(}097n|)S*b%It_pCJ4~B4Kw1SnCU%gUJ;>=JPQJMJcB7rj~qVC_G{i0b`UQ^xJXO4-Ej`{EbOvu&q zf<^&XFypTaWW0j}Qq{rR2)hO_d_qvL7oKjFU6i4r3ggs+anK!TpFu^!gefp_Z&CW$ zT~$@baui;hyK*#g7C+@|ARJ;#(P7zSJP+_$FjL0AfBV}0DMWci(sws!&l-VjE47fp zafU7unQ3?k&lsZnfbsr`TFUPbjA5zH7mtEityPH*_;x`Jix#4x_7;J&W4X!mw@9LCH7+Yb2KU;G z7W3a58#mH^LYVx=k9+RREjl7X=dN^(jocTwzFoXh2U?)V12Qt?mUvH=ZBoW8jH2gW zzHFagCTi-gy!|FPS62^CPPI<7c97uxbu}p$rJm~0X(uQ=E_VsPqD$G>vMHV256nL3 z`k>`iA6Bb%5=ez8DJl{uJ3xdJIe+BmFPPe{$owi4%qpewxhOcJhP4e24ap-eiAgiP zybS(}G|XIdhb32hA?RMlC4tKkX+#Q76U4w+^Em|qUL^OQ_fl-oeR0ao9eMMHD?Vh_ z8m9wrS@lW^)g^{Ok3^*GjKtuK^xG8)Exi|9I##x6w%iWO_FZENS~J(~npsEMDURDm z=A)blue+ttMu=|&sgcAhkHoi^l*XvHYZ1qAZ{t6nT;EeKOd*Q0)QC?5;VRya~x*- zpT5}6y*z5`9(8_jWADe>-!pOSBj`tPaIv5~Pkp`1l}2?C4OSPdIxq~+nI1Tr{ri5y z`Gh0<3EWe{UNT;1U`WfzfOUT^J|2Fj0xc>m-1y#c97sUvX=!$8RK$c6PJe+19Fhp@ z4{kNAf6+=jzIWh7z#;ST?>is}1&^IzXNA+tT&i2DJ{1vhT z$j?ZDD+N&A>q|>#@(MB!>SqJC1_!S=jy0FKp6N76=!n~S=a6StRB*;XPy>E4|6@&8 zll>{l$$=)R#ZtpTpd5m}2s2n?w7&YVY@z(Kh(FhD)@vOV>YFXL0-V;q|4Co3wo8K% z85N@kfsZ=p)vQXIeyJDIKE9SIA%5pLol1U}4T?JCT-socUG!;Ay4uLx%=sF7rBHCC z% zM&*jw7RWx($_4DD&3KCxn9WBif4EXhHuA90HA(^>B!Vl|XzbCFlsZ zQhv4a-?qNvua|!*Td#ax+@4Ug1(GJ>;x#5FeLYX8M}Y|-pcZa?&jDrie<;s1W8+BN zrN-`&lh^j&oL>F8LaP2B3hLrEKT5$Q)VA^fG;!#qxCwD=@4QP6n{G|AhM~w-?W$Hl zeq(X){?C54?wUN`rI7*b0Jv5$Maap=fvv-K-G?`O$hyP121r@|H8+XErQpf9eA52$lMWR*B%Na|0}*b_4Es8 zvbEsVpccp`svh`^&RZIZP)DTjajEM>-ww##^_JxNa;3Nr{pCuK-1E}|aM70*2P2IN z1t}E5Z)+t$XY{OZmpWwj%Izw}YD+UCh-Y5Bbg%W=62RVw{Le$eLdK$U0xw8Y z@IV$EI6>S!f~gE-j?5oOk;e@;3Z;bxl(JpVU2>pJJTw2mio2hYo;By!OjmA;A?NnL z+ULLn#mX^EPoR-?xu~-eO%jZ_?pojQdKs$TVC4R3x{TLBAQ?t6@M#C%bpkpa?$v{D zV5Klb|Ap3g`!tf$v<}O{;^KRdxaE(3XlIAOV&PMAThswb54?oNIIY944Hqh4H~`dl z+3!3)>3{CvqRRf_G0-Z`Q>GkblHNDQRhy z@Z0VU_`=|~!IlUdN3DD~m4ZN2M=NHe*?juPqxwjkmfk2_b|L+0B>cOVl2aD@=}Os1>iN5w*%=U~q6(L7{EZi%bAF@0Q9+p-*?ep>6&R zs>l%CYUkkQR?*ma-CYxOt*I%fFo)C{3^yRB0)7ehwzlks3`Yk6H$@0@#T3ixU^0=*3@&Je&d;^S|j+2(4nV*f+yVaJKj~%^aZ!#2OalIlHrx z+Gy{wl6vrI28=~53HlU)0Pw-ozY%(!7#Jj=ffv4Fc>ao8?HN}dnuaOHFHp(OpvI2C zoDPl~7-qmSKks&aE5e%Rr*c_DGQY>luKm<4))afq;O4+8eVn@TA8vWWPy!s84L^p> z#qu;oWA37e)9azW-%bVZ^HMb*zK}1oPb<~H8GQAaWe*-17yjvTOjYwk3M|?IH_E-i z$6RGxa?;<$tm%KW$Q?PfE5lc_+EBfbJ+;}(7C2^H|6La<+GhelXY9-@9+hSJiWHpR zd(Qv3X!m@#sPII(D}l7()Nke^9ht>=y2EpVGL<@qGqQ^5p1%B5Tw8pV%LPUs+nG&j zm@8(sdIc$TPOQ;W;W0EqV)H(g;9rC*4x zuDNOW9*V4)#5S&d8c>(qn{2-Ui?=ENc>B!E85-sEur7ol4Osv zM5YRdwcggDuYMGt8PCF>Cy_`?mg-pYBpW^T{P3Te(?|p{xbUGL{n^u})Gu%JiL9K( zw46Hrz|3uZ`qL?#O4ReUMJK)I01Tyu06m|NuLMG<>Oo(_ZHzMQ;y6eHug+g+!=&M@ zEA8XI{Mz~`&_W<8r^S)ASbi;4jmzkjqSgrZd^@qcZjudLYuh&m?W$DNe!crYFMuHu zT)$v2vQLAV0sXHp6}=T19Lj_}au46Fq!ppkivC0PzZtGTms2R{=;oX7M_GcIMKIC9 z-X7G$7k#_X4JYB58-~AH+4AlCWL%%EkwekHe9u;-iUB~&B1+TMZr`6N(hjj*ZD>x6 zJRdWMXIG@bz1m_PtS0ZfAY;v*Nmj%ml%;>@o4jkhqWYCC{qX;fW8C+bo<3ak`81-$ z75_dt)&>%H_q`!76=*e=iy8_pN>I!#qUeG+%4b0Zq1$;{G`#38)~T->dqIRWFS~dX zRbaXR4yf0P)Wl%dql7TvJUD^=0@)jwPS!w=;L3@t1-A~ApP6GB&YawHUGQj(T8lNn z(E_|u+!6EI5q96f>`lPQG`V*F=~BK*KJJZR*mWq4P_0}%3I>+XL67Dlvr>gQDIO5tRC5>V-u-%7@qQ?0b$SB*OCqamsV;ReODX%dY;G^HrNfafq8j0_(uD{z<{2C z*~;EO(2~Fg4z@qKlKZ|;RP#o=5T0u2@gb&aGf^n<0iiID^`)9gcdBz!?al1i+(e{v7zgj08;!-dA|fXN&=%JlG;< zlmyPCpF@HV;M}+A9{P)VvVc6~vl${$>Sj0bJ+WUc=6)0!#3_-B=jXrXvu517aL^o; zqr`_}+-y~Qc%O1N)2+4MWqf>MV#&qOtriR!A@X1t0sBbtXxdHM&0D9dR)6j;3-$kV zx{tVcYUS4xQo87WYC5y~Tp}uztm?KR|Lz`mYYMBK==Vi3esnDlXTI0KH<>%Q;KFZT zTDbckqc6(%857&kh4O(^r;v->A8b$F8mT@WBZ+D~o^+sbqa~7f-nK>Rv668-oK!>wsJ!?9$HdX{hA+39(d}Ana$02DY<)Q2jV=_ z?w9@;mE0tzY8W-7&^Fb&)#{<+uh#Y4w1DgxEP)Ja`}_V^ON78NP-HJsDyC@ zRwx=(^Q<{dBn~?M%zCW_uV3GW00bzb?!?4?^;20I90^5=DcqFgIrdPw;UU35Y4&tt z0fMQ(s)Lp$)Z^Dt;?v!OPqNB%+wHJUm_K~(X+ulacl#sMcm{uJCHK=6&qwB>C~)*i zxdlA5S!1OAt~Ofyzy6@8AY=97+{>(n+a$Aw{L~SE5C#E8Z~UxP;nsTH@VXn=6f)Ur zeNI53^ab%07IP6O1FUhsFZk*I)YZd-dWyhPhumow-T(OA*UPK0kdj@fnASjO00tmPW<8MKH!}L{JrU0a^5QSCEgyWa<14ymlX5YM$k~L_JnEqK~v#7c{3fp1G`SA6)T|raTOQnBVovPmh)&x)?Zs!SreaT9o z6|?1S^2&zo3r!c4$o5p2@Q?d_kI1{jE$K~zLx9u|p~0lk!+#nXs|QC@duIVEm(%_S z?wfZC^^3J@1$8Ku20g&x)zZB3q;;E6p;8Z5st-9g?qy%a$Dyv(8d}k%z*Q7hAJ>D+ zQ&m$)QFun3ePC7TO5JVU?_%@!5ptQJ_2-Z8SiR9_Q!5a)Ps7JwWSsRUUObSTAy9DF z(J+umjVK9e11^&qBF9iap5r!BH}br%)`biuEd)PLcz&ee);Awu^3TP2kggRzqG@&MF+R38LBaC?1C6Zr- zcHSrdVsD;62={*=Vn+Zbbpk{I{5#N~Qf?U8!S-$!9AuOvM6HW-{3c?K%Ui5(H_-Q+ zd&dlhtKcqk47M8Xghyx~B_TNG3 z`Z-xo_sR{NYMW*HG|;R8skl#v-Modm%V#yhNBu&zCJ#RZeh<>58T8Z~7D|oQLJlo? zz)qH^0v}U7+?ci}CSN_K(h25CR(z&#oFHj9OrK?7Q~SY(8=263C!g8hA=f`^r-%%$(9Lwnx=K>|l_Utt`Y;sikvP+F zm~)$}+E=G>N5Zg^CjUX@gmK$%+*`uj5P zxs0>#seH*sNQ`!5uK8-{mdGGB_cG+MGojC|xCpIGmP4Op!<~j-ihPGOePBq-Pv@2| zZ};6=q^H8E!q{<4__MgTdp}d;oCi)soH2MV9BsgJg{^0{T!1hrOg`XkQOA7X)1H%-=j+s-K?v_+(q=s7 zZ&A@xU+45byggY)+s$BNqjzJ9k{a|Rzp!QFP_Ywx3%Ej91^`9EkTp_7Tztu;_O-3} z(;X|q-*&rVO1xD$2 z;)>wuIP2&EVg!QKtN!@R>eqCD2g}?U+yRfr|NRT0^0TrHFb4KiFd~TQL*>%Q)lvq% zRN_W}qBb@LO#nUf+IqldIRVZhbh(GV!0dZle;2o>wQ$pq@Zo>7KyZ{%a3=9q0lUEJT}ssV3RXoO}PZv#jl>H~)}s zp6E(2(l%065cl&np6~c{WO$Kq_(&!((kEv{sIpk{(M#;giepntrQd4E`!R3@C39Q9 zv5=}nuWWgP6Q3G$0c-iA5Fy=;h@Jsz4h-H&eLvg)Safnzch!d3QYtepHnNT+Z)o9jsF-L`p>O) zMvaO@IELu8KeG>y=U0?ce&pAoFD6`O{Pv2fHbR1|dbRR)nWE%`kI*!cdPbuNizgp= zxM?~zDR}K2gwx>x|4{oC058pNVh2Xl3P`b?5`%C7ZEl`9fkHn3u}t~?mm;VqtwmK( zsmpWx>^XKPD+-cpx7y2t)}F6%Xbi3Y@*MhbS!S<(sd`8uZvENtv4qro_2tKl zUe2rQAC)a{xl-R%>m;Jb(6VqKUq=jSY8NgXL_hl^BVC9l`sy+KsImI{gYv52B;B?` z_rE88(|gy{)RS=Xu@(+6%q;Xcf!8zOdB1Z_GA|C5{F*H{fh-qsjrUz6-d?}TK}To1 zxAz_X3~+F-@u_FIW~ku?B(FZnK;p!)FgOjLnro!`g!q=So*r*vB>D@+DFu>O$8_Jk zWRtqi^dp6^`#6N$hbI!5rK4@tc8MXa@iX~4X3BBIG5!WrLDPB&BI=XGlG*&et-Z@z zreh2D-gvX@n0@(oK=k`xHkFT~^NZvw4%GrwhPMN5+$ccl<4S1B!dbsKFOn7}boXNU zg3VppA_N!2%qjU2<`VQ(ICbY#T7oZFnOJ=j)a3@~`jBT(VOrZ9wEjUICV#yGZM#D? zk6VKU{b!7Nx0qJ&)k~cz3?!D(Y}S@e?qWrwJQZj~gl4Qje~(Chkv`ZX3WgDL0EZ51 zyA;*&97!kyoUOUtr-QkyW8jxi_x?J+`*CvJnD`Q_wZ%$41*;-T0U>v}+-n)ZN~|52 z9R7^1ij4e}6QN@|j$mh$XIVoM2P|$5sfFj?8<$@>eC*O@6?5LBy2Bd(@82$n>@e?H50$w?%335XnWXH@Pu(?BZDE?33{UG)$X&Fuc< zFV^c&aPe=w{*i}IE-)2-RV=A#B+Y{qASeKAMK@VnjR;!gkr2tNjSB^D$M zaFLf^A_;3B@n>5^cktgo`uFMdS;25>OxG)vW%Q@L#*HVES!XoS&qp1WTafGk6=2v? z3b~n%hgLII8yb?Yv4Vm=hdY}Sm7g)WeSJkmOp@N4N%x!s;z?_pVk@CKPL6?ceHhI1 zUI|xt^{YUq;nDks9(=}exZ&^5t|&m@|Dl7A_|pS=ZQgVYSF}FQ6)Fq*&M`O8F6q3# zxjhe9kpfUG3%t0h2b*rT0fzPE64xR7&Z0T?l7_7qh z>Grr<;Lm!^){As643eM94^I0?HPwyn)dWcy*uud?<~{jL~BQCg0R3dEw6N2MYVjwhTDZhnUp0nceDgKLG@*+s z_lvH%99jCw=d3~$JAw#SZK1bT2(3u*n8hcm;}C3xjf3y`ouqjfH#|bYg8s znvSru;B}&EluumVdM_)MrjQ>>C1^&mwO^Vjby0keR;^TPXV0QTySF4n3E0{(nAk$S z}DklJYwIcAJ)-o_mO7r{TD;cQ4Ql&L+HO z$J=Fa_11|56RN!KXc2Pof{9srUnpsaIr)^VO917?i+ejB@F#BQM5M*u2Rkhm$2CH6 zi@p-wvvY6+-r$6O|DE-E=4Y$rj%BrfI}GmQ6M(rJFz?3atB!1UsBLA8PD?7hhIiH+ zW<#h3zWpqsBU-T(t=vcFcM|0!LB#D$BcQ1TIi8Q1uII z?>uu}I8}+Cx%hhHv_NN?w}$q!>I{U{tDHo7)S@mE_h8XS?BNRY$|7a6}#)6O+PYsdr}yghJNCnhE=`N1kh+|*>g zKyj_IsOY^E5ffZrl58SGu5MWaVHVOO!onq{^|XYlZ*c)dtVpWc?zt#Il~?u}ckgb; zeH$16rw@O2fw#pC4BZP3dMktwg+K?wb+TTTuD6ubc%Yu&sWCx|Ec9(sM+z!3Tp=16 zuVu|ZYuTWTF~Y>$-kG}CY?;#3L&Qnm|NixY>EWn+I7|BsuSIwsxjq36dnl@dhLuF* z54}*UMYMM}Y5`&MuC%;m*2{(**E3@AH%cus^M~8bje2w2_PTpIc443il6s<2I9rc%nV%aV7CiHcOu%t8+f;Dh*^6P3eg`kvV00x z|Nax`bgluGM5c^rG;QVmEA@oK8Y<}M znX^tO7o{H;J(>#HX3uw%D_Nd*au^l9CNlN0yxig{D@XiSkUG9Gp26@jND)5MB+l?` zK$^JJnm|OL0rWr&y$N7cAxnUvht3CoF$sw@HLhu>Kmf%+PV>doIvmKNS@)$GUZml7 zE3>8icYc>Y+n8#6vYq5m{hy1Ndu;45tXxS9lk*HBYiHvULRF)K`5e-czHU)-MY|xZZu3P6US8zm4e%^R_mif5=w0E{q*x^f&T7w zkrt^}^hy#`(k#R>H59@6(SL2)$yx zV1Q$$XQz)+>e*J5t|-m`oe4-nna*9`K6~H0<5;Nu>j@~vVCnxa97h>5hhYsDh=Cpr zJI0!ZlH-u#1f2(x!!F`I^A&O>g{k%(&d_1%{^bD5MFD~Q3EG`NnDW~xKjn@8Vwx7N9M?DZ z*HRG*<@ztTy(0?@j=&+@>Q*P-NsEZkQjXrR#qa+8povjJ-cGOxrBF}CeW^e@$h{22 zgkEh+!g-qB<%;7q*pvM8nH``osmi?on*n9-3@=4Rm86mgF@mf`)-H`Z^a7#iZnY>j zGIs=+u?gl#gl&|Wt~1wTo?c>YzXTwZDGa)YBlzF9Qqz|{TTva_g_>x2d14eX%4+i^ zYcM7ZJ-o4{8dsvN#VHquyT@u!HNnwI`+dF6fz>wL@PHmg1#*m5UyuS z2S_PY?r#jymd%JgbBBVRBi;3srYQ#_8S$^@Dd<7Kq9r?zlz+af z!T0sr;eUstcqt0@_@QTBYen{iQS)&q)o?*utzqmFHKaUK%{>D>H3S=nv?%b(3`$KP z;j7+u?wCkOz2qHFBpV-Ib2At+!`g+Lk^~XwQS%7alrDO!Rx2`g%NWDX)^qAwPF&S! zYoi2)x)`;fImBHtg3I!+00$S2{$7+%9p~NZ-heWH@gPB)T%c3TE}!tDE%B-qclFy2 zj0G_})#WTpCaYdV1#(tAxUhqwowbAes%_%jEBoIm3UwCygampePIa!T3OaM_7ya#@ zy0u;-dvMuxaF&*{Nn0NmaVMIkPq%?7`N!b5_p8I%C)hj=5l`!mBL1@JAViYWpQ9tm z1*IHK`G#>KdNsi>2TzyGLtco_~IA*1A95XjrVC_CHR2;MeYI!ksNl zs(X zfxeo%+0wpn5os=H=35* zK7QICNRI3fe0knfn4c=Mt3gaO-Y%S=)is z?o8Pjg)$mwAP|%F zo)Z|Fcl#o8Z8JaM1tVDqjL1~Q_%qeRf-K_G@b)Pqf>_|e0eR-!8o-qVtXX5^9^_QI zcZ`f+S1U9MboBIUen6oIVqxXl3Psy<7n+zkE-p)6eUF$IFU1(W&T(w=pSx0AL{|Bj zgQ`K(k z>Ajve;7Qa(LB`|1tyDNU!4wnVw8Q5HLRvXukr2y-^w1kD_(%ZhA9Dm8>v~RUciWddBt&n(2wR0W+No$ouAw7uxMeFltA%qq__w?>~^< z?%z27e_jByUt*SYH0s0XC;$({Ahx%+UnvDI9w@Rw2|&4_lf8Xv`d!(b;^~bC(eqIu zE@BjH+jiKrFK22PWNuLT@NK|;Qic9)CBOFuyjFGmJ#L^r&bv9+Ku|iUWWTQ+;M zv$DKCW(bp!PD0l#G(xrj+l8UoJe#S)10ZZ($nuk>ls8~3ZtOG!!fjUDGh>p z9Tx=Ou6aHCU$uvX4gKX%WPUhXFzHKDO9ZK4KT>d_UPj=meDpyZYbWw1f}|RQ%RpfQ zr=)LIwOUYtEe|TLyp?5}|Jcwt1|#!Vi*oXu1_^)tp<;hS%m3x#y?vopbkBc?3to!N z?C>20vdG#}NV3q#GcHg}edKApN;|7v_@;=*P92Ev9LjFrX@WJsEs3CYXgOQm=PkL1 z2H>s}H5gyePt%ily~g+R+;%}cx7G)_C?kER2_GugjQc#SF?M*?&)P=7|Lj98zp}%o z_m7BEK z?2|{?6+L7x#fPzAyvy$ul(SPo{O2H|8ZDrpV=D6O&bAxQD@$7Zx2srsa`laP<=(9% zoceGA?iT(jPvRht(y!S5weBmbbrvjCrzabyKl4r(t;(*8`<%3fJJ{u-^gUlxx=PsO zS{m>v+##=x){FtjD*ypiMSwC_QB*s*Zo+yO;VQ;>%Xw;x?sV?cC)fSmafr*6K3jK{ z@ENo_o|)M^@(Eq+aI5Xz7EA3WQE={Xb~GLv7#*#C(9cwFebZKmx-+%5*0WeYQ_Sbv zJBN9bFSZ6dMb7awS_z(w?c^2eEr@Nr)*zN>X>5#7)U;;SxDDgOw4r*l>Ep9;{(?4( zc$+}6ESKjQq+G-nujt^0S?a*HfQzBSx%&C}brdCD&+I9{7pTt1^~}xU2n5%>abv1Z z|Nh?F0Bkov29)D;Q3jZsm{!&p)==!QHcg>%Vcq%i#>$?xtt-48b>_bOiSwj4|FCto zJ3ro(d_d3DPY$oFC5pP_k@Ln!j}wzB>D=@>o2v;YKT_E<#r@zFtV4=bEzPK zdZte3gSUeD?Lr)7PlZ^!YYN7efcir5CfrajbZx96i3zMux;>97)H*`SIXc4y)!qXo z!6wzhIwiEoF=Y|MN_VU zW?5y(uQ$SDc7Nd7$RxT{;__=uB4?DmTsJEJy(4Lgg2A_b!RS(Jz2_56Q?~3;_MHgU zC6=(sn32StE(1U@w1EXO#BzGDJ@Ua_JOQsll(Z_$m!MYG*TU4B9;)UHNu z5lt^b5o8g3DNIhgYqOpxtfMU2D4cJ<$TC`hJ;}lqVHM2RBS`yko<_^Tu+Anmnm~yQ z!5W#;@xG|&)`yM#1<_rZgLs*%%uKiA)Z^Y*^30QwkRLP*&&LtY9v%5$=o?l_>lv0A zZt!<_XFY-}vAzA5#VGU9SpSW%uPEba57s4Xvj6-&`qT=B<4{ttMZ?a2z6x$%m?Q{vLz6A# z8yd)S3TJ9;OJ?`k5(UUgXDiSMnoEMY8*1wAhUbb2Tnh4;QQ{aH8G_QU$c_s8G$2)) zaPve`s&slwQgw=~jF*KO2O}$>=C9xHZ{?E5;qTeDt^HLWHcsV=|CIxZq_2&wF~e?G zXpPr>H~G=Nr}%=|vx5Se{x|OPZsN32Q(LcIp8PD3&dj>o?R929XR1IV`T?0ATzLmIRMOj!EGa1H{1&LfD1E-!1-*f=|D zjC&RgKLHGU$AbqHZS?f?09X_$)I!k!H{(_R;>vQp+OQ=2`uDevE4&g=#{)R?4-adC z<$r|*#Z)7*5$bh4Lm*5!iT+t9)fRxAz+Z*7qU`W)=sHZmy=sr`xiKXG8 z=8Oqym+I^50bnw>)!W;F1@>2;pgC-sWn{YZ=<81D}AmH+dq5z;MPn z_`$Z1!HyHga1gP8b{e$;IG+F$=EusQIuMP+oLD~&k&uvZ-M9h#baZ&cK02R9hn6Y~ zKB#itrw}cMdYJH00I2~Tor5~S>kD`T;f-)~9 zDexpZJbDCe40WY1qoWgg=0RuHRB3tgv9WP#&FjaSmy1P!hvj?qzN%QF76~KlH<~E;=3&1^5XXG-#lBK%?z#{$_S)q4>MA1~8yO{e5kuh8gaZ&- zayw?e7d7aCSg zI2~A5R5w1fwr-zyB?=9j43OvFaN+SQ>#sl?V_CEDU=tc?UQ*&%_NWbS2IxUZ4uJh& z506m%Y9_YmBG%x1F+~TYd>1javNj7cP;m=PBjJ_Zc%cgPGv9SsLHLt%d`SvQD=T4S z1ujz8KpTOAVL0ldd6R7H(%^?{Ri0A1^4t@MIK=O+(x<@xOzxTYs)zsnwdD=7lK0pa zV@BFsm3+c(S>!$Wf;V)jJuxY!?BOL8jUazb+q_rr z*UpvY<+^%YZgB@!85FEIPS1a#MH&zMU{xaYr=LZiCU zbS~E56ugZ9oOhkP=4Zp0vofd$w%Kj_9{pwTBAqi|L^BuyCQs>Eza07VcV{znTx;fAwZmmR;Dfk3E( zgmSFxxq=a_dh0d~>-)7vH<^!a=L@CCJHJ(-<;CK)`mnTBWAu5rwu@?4SF0;fwTv3V zGkoBuQ#tr>@6o6(09kg;E`IuJERgsI$Cg?v{$&Y`*H&L!t8t!g0`{c~3M(KW-~z!? z3VB~6e!3@FHOi6AjT^q-zkL&vmgegD!&fsY=(FBBGD6Y1b4JwcUla$D->+Y9&^^&c ziSh)j?aCr$mJKwkCG8E1hs=1&HHdh9k(55M~#B>P{5MxcD{*ot!>vVrJX$9Lev z#ExG|v;EE3bzZ*ZdW}Ei%;|bKlY0{T7UAjpbhuk4SN?W64IJ?tmNAtS3Zm*^J=K5H z9AOQwYPzpalhC6T969e+)pP>66W$_~OGFVPAkjk%5JpPiRF;pX?S#?AOR2x#04@nz z7*Hl*lVpYlk(2@`*HUsL{IIQ^Et2BAROhUz3Xh|ZZ2raPl2#vsZ)|XI$?Yk_N^Yv!@&%dw8gI!ac=1&7|3|NfDA>yS zx>xP$R_z%f{-Mzr-KTxHvYydDTUvzt_rv@F#SEU7>?aFXO~)Uveq%+n0=^X{8Gm0q z^2sYLT|eve1x~mpKqmp%sDliKZjn~o$|=B0A{&m*B06)-r~B|1h~<0$whBMV@87>G zYC!tyLgc`{4?SZwKPB9tq)${-7!#}kBmn>ufECaGw*s?+^Zma-CV}l23Q&H`yIqGL zEij25ZrJVqI|jX2+U?g{I06RyLzq+OfySdB9}4TA<)eAaKAjvwFB5rK8~v+*0B}Zl zRzWDH^3$pR&d!b`KnV7}Oy5ZboV+4%lcKFeP(8Z~omYq#UJPRn3 zX-Fx6^%dt+>Q+{%?qPmge1^Z?53{<-$J4%yU5yoc`Rk*+nf$k`RPv1h^STG8 zBB`CQm%r=$KoSIeIv0&gf59JsZS_n4bAr%>)k`U^$p0V#|I?p8ZwCgb+e7*y|fb(+DBz5uQ zfAF@ZbJVZJ-1{&!`QyheEcO@qzCnp`2kFqSosqK%wBFPdbJH96dsAjkAg9pHa@`lM9^g%*~0lyFr+E|Xu>r(!w&~aCg z^;8gvfaMg*KGgcviojj0*SQH8bs)vrr-9bm1Thn2E}Zz!USL=_SrG93LiYpw1b{S& z42JeADhdiX5r3Ro_mBXTWu3k!P$CCyD^rvBRT}Km9`sYf6co&)u=B&ps%h&ci47<@ z_;s}34(D?ac_-gn1Wh^1!21Z5HbpCko0~2e`e;Qqh*3aR{&@ljH<#MYls)|KvZtdZ zc94X)^XNA~hlPQ(ZmkTmzYaujd95_&kj_KhSr<+8X_Vt=fb{ei zC_oj)(9UVdzZv)jMaFKZ?F8UF4GV$hpWCK1N?Tnv5vqvnxlDyb)~M9|E^_=zXs>1eJ5o!ed7!snjE)H^IUK~saS$Llf-%v2Dub33Ly75fef$-F6*tpo z$hC{-0*24;b-hl!yGjSEE^*B@?tYXi(MXBKUk`i%Tz6 z>vs(06UctFPYV}NMEv&zJl!$=#0vYd$OuKoNI={7XNV8~{ONbP{tQZ2Lcy^Cycn+Z zz9bb+^A>p5fyxgi1A$H|CNb=_m;N4$Q$XD|bO2eu1TA*YWcT@fKNxh^dp!gg&RO-A z==9M_wd2@H8yIZiM0`eQZTxiF4l#y@H9x@QUZOjaHR>pzGXVR!Yu)KDxX5}yl}fYQ zMbp!efe_BAb@<=`-l0A`G@(|gJA?&_$`3{_J-zGvqHkute*FqbMsp099GjUYuzdhw za}hfleCg-mU z|38|}JD%#k|KmdDp_9ZhLy{tnk)2gaR)p+5a_qhLN@kS3Lb#Bfy~!wK93y09hs;FQ z@9lm(e)s*)^|;4%={Vo-=lyxTU$5s2uz5S~jm^!z78YQ}pK<7B2!2yt4Y-aPh}*#- z0zER`wzgccvapC|v>XF9l;Olzh&)rm@67J}zz)W+fa(K4qaKXu*ny_%dn<^H}vW0>7WJZ3-WAl;V*Ce8+=uwRdWEy5wMb8cp(5Rj_7cQ z$>(BTf)7q|oi%fy31ICIi&(j@2)#J_)Xm!=bR`V}v2xTAo$wo7eESSu-oXBa|M|(N z!D;-|=2<&+^BbjnIMt4U7RE;v0pH9n<8oj;m-Z6h_zWZIz1~T{4t%hLsvy1bWTr!J zadmYV8|Eu$fM*K=(tjfFvfvELeU9l(=!b>^VaLx~f1l)B&?6=$v}9C(DJ+R@u^cUw z&U#;HIk+X8Cl4MAxSU^fMs!7u69;YsAZ&mC+46 zoiwC?dLWqVt|JKST22q-a(N{rB;YO!GaC$lkmJ9|lU>yD0qtBsT%4SG6EIU)Am%~^ z4mikx{J-VXAb0BzpxZBiHNf8R^cvqkIDpLwN4WHzz;{*flor2$PXbVBDnPdGWckn_ zny$3^o+h+;tt$#X+2g-kO-IYcIJj+kutY8_cK{sa$mh?HfP4m195g#Z6JGA8rY0Xa zh9I-y1(PbsI+vx~p>0}>t46lAUe+1@bKsMZrPMntbgdogG9dwTF=0)m>pkPX*8^Ab z61@h0H9ttNI+ic~@f5WEAq0?U``rwd;=Yw9Qu<=b&i#~|yVM>+3Z-1;=4|nD4*=_B*Z|8k zSkowAVbBJuNyf9=0ydM6?xd%rSXx=VWyP49E<#-(K>AYqp`$72(lY@1us(&4LBeTS zfh897%hmPu4%7`H`#Fd-2Z~?qI{f_l8muN^m?VD{wBixH;u3N8c#vB6;JqN3I-#?Q zQAQ|L|BPjOQ3~l*&rDQLk>&1e=~&Cg3gykfne>0s>?N#ETXjI41hq!HxSbT#sfvDr z#@`$U?JlzEt0!@KjwL zVpl@eI`t)cVg}zdyqOKm#j(S~yR(ePCjEntZ+96$M3_!+7C(_BDGeUn?>-4*=qgpR zci={^fk#nv>-*8<`tcLqg1o$CX#qli1FW-NCHkl7moDNLx!HpJGB*zQ^U+;EK^Sv+ zkgQPc=4=>AylmO^Cc^A`f>~X5f>Ry6NuRj}J^7QBuh(7kJ1Rap<_02-@PQzCL)`li zZah8w;|2|k_*YRT`bef)9i&hfV%rh$$VcA#<53O2>#a6^%GT++K2Ga&1cR4_i`_G5 zCF}W)>gf59VDVPiNb2uPt%QDaNcjq=xUXitN>f^CO%4E^#U7-miz!>ET~Rm1f3_e# zaf{#=MI_NScdflr|LZmf7-U!{yO|dAw}f>g5EucL)!S-HY46Tz2S8b z-##;=cVG{4O$db;`ED9&L>VE&!r511`R&(MBG*m^-OJZiqh{XWoft}w@zURT#TUyS zgfbgepWHg)>VJ5u!g(w;T`k-=%)?S`WhPf1=ra_EotSy(?MNsHoNkWId8J|h*Y^I zD}7)Ia$pbrFqDHTEK$Fd+Mk~3i(DP9zz_sFTE{~~aZ?82+(IqDs5@#)71Pbf&%Yn^ z;QVS#H=H+&Nl~rQRc~wcCZE9Nuo(h4p=jD8_cE?6 zP=YZAM2fI>UPMlAF7SOG>X9a$*qtrg{clO8!Aij#3{L_30*oVorvMzo=g+|dD@C!S zk5nu`gRRpwJi-eWoRbYo&wxB)!*m5F2=sd6;N*q_5^Qns=4B%4H0Gh-ZV3E0_RKa^MDoEa!py*<@R~ya!tdYyBg5ZCLW(s`rp{usTa2%tsO?s)yQ2F$r@QF zC&NHT2kKp~scLA!o$%u4v1(N*{kcuze@mv_98gs?HLq^Ab=Wl>f$Eel;m3vAC&X=r zemA*(3;vCrTA=Yie)2>e8eWBBlO8xor)EBbJ-KCFMYUU0)*5x_fSu-S_chz|8K2E! zn>NG2k*Ih*4h3vlxT0&RZY~BUq?HQ?bU;7=jQW6|J32jsM!nu8!%)ADu654v<>h5C zjNeyOt&#(9vW4E^#ES2an)wu9{wS6T+_T#L_ak5F@85$1r2%-^e)9c!7E=%k(&@!) zcewG1$uZzPx45WYLCLR%yp`hnMFWV8X5WRXpoe%jbEs|4d&m{O`)wRajfVr&-ihSKM1HxM-TOYx?t|>!ZC;&z^UA(yP^t@|{?T!ypMb^4GVvG$_qrvUPeb z#P(6SFFC=tJH5uh?KIS~$`cq1Ukc>Wlwhrb;{^CIgbZ+T(5kkc*x%=8uLoZ#9Bo4M zaK=Ld>u7fgW<@4?uoe$GJjBTKCRCPc$IT#xPQ{W@kYd2!fJGBXqtcp8b~ zb+n|&Sz(5D<Of)&)Zz4#7mJ(3y8D^~1Ud_v=vGknC8n=vOA|axuo7 z51juwT{g1;hWU0a5d7v~WD1eada=#9xdHP^bO)C2ZPptH8k}0#Q4@qS{JBd=L&MOE1j`mY(*BdEUA{wa=GhmgQM|HSs2an_JC#Dw3+~U^m%)TMQVTyaN*qZ9 z@H7?5fRyL*VmZ#l;*GffU~EC&49W-jGuw<8BXM>JTM(${Ic>cyPRtWCXckOrehH%*j)cU4Mo-6G#8uKxvI&G?q)p(92?)i>3}Fwi zFCh)YX_N4`eE-F;a-y}GGH#V4o`i@L`fXwEgomE_^9o#I3%tdzki1Ony_~R&Q+Dbr z@#bwCn!xb`QhIJbN8{@SyyaUO11u@QX$=8x`8w@OpJk}8QNa0m@m-tGY6~43JBa=U zG_dG})(?cCUT{?hL)*VslC@-pVQDUm@n zjL*f+0fd1>(p>?XhmdnnX83mszl^rdUvO)=AY(%l9w(JfgX=weCbEt}ej9gpP*D^* zxrhT>*)MA`c<+l1z&m(;z7j`E>Y6;!+Lpx5^w!y4S5zuoG2*^_n6@qbll3r5SydJL zxB2gbGEw;B0NQrm{sR`HLJ5a7YsnKnGNinBv-D$K~sRC{lHI%8vqs%AUfP2c*cgB9_a6HlNNdKK=HyQ zYB-KhtsurIh=7Mt4@Cq0eJ{VI%?nwlM6P`K{+&qrKked-7JEiq6o@-_<9ClwiI^2j z$;rsT>k&xuUX#6^`5GG= zgD~MKFz?y`JW+s}HHb{+<>yO(82Og@&DUimL( zyR7wm-(Ac%lRH%oy!Xo5XRFCK+?<^^8jpViqBv!Fx8$34;%zu#PC}@i^(4Fx?SXZ4 z@AGxzFH8a_FuE4KDB1UHf}bc^!PC|CMckw4ZWtcRH9rEdlb1$F7J8|a)YXBdhd64x zLjPkfklBwd6}Kd+V_vh)@fJT7Jd|mN<0QBqWddh~L& zyP(R!0tjmTc76h@W!m;HeEQ(-_ypx0us%|yl-cedc6oq8@OHrj0h7Yt%_+iP#?WSI zgamXu8qr7EGBiTH+%$-Dc?a~(GGA$RRaFzI#A}5olMY%OEsrM~IiDV$5~yhqzmz7u zQ(CnWlI{lY1JnZ4#mT75T|e8+N;E=&a0HJ$Ji~FU(*OpDV=ag$3CnHcr+fa_Qj+#p za>uI}Xw?W-&Qb;j$o<7qb`qB0=i$V_xQ0S$=HPN-)TpgnVc~B_Pw|6ty=?a8ligmR zoUiP;xfEO2*c83s4@Pd^1i%2p>k$SqcYAN|Mzy;(linu47FMhTw>De;fGMx(PAzAD zl`a<{uK0y3nab?x>iU%Ojn~Z;e?umcYnd>Nc7sNLHK{5&?~+txvvX*;Hi-Rp7ML0y zV*D7PMuy!yVB^E&cZBemQ~k_}<5#fo>y7(acBile-j=XTe()#APs64ElR{!|liRuY z=cEm1iZtW zHlk|`$vew25L9579{wnyik~zt%ma{6`jo(2pIW%|gib~UMs#>K;e=!mb>d%(g0jYB;_$)Z%wN%QVMJ&_(gqDy)R zEpNAyy$sV==h|(}Hza4zP3L+gJ$e%aI;bcCq?f|hCQatnHj>B_%3l0BfI8`}^Q8p) zttjhay}y#dn##J!=O!7g22%HNQpq?kl{t0X(_Sz~gJ(lW0i4=l?tY*Uxz;--MD$o5W|vL+ z-Hup(kHFJ8GQBH=fi->>PdKSyYCa$LJNiA~yNmt(+xBT3aOy}uegOCSvD+-vWLQdv zb>x}u)=A$oar*93EO#d!pRp;m-C4LSGxb?dg=UEw$0&_Hl3TIM_uMJd#$aaWXGDw8 z$yhAxzrmMO@D7T})RY8Lv9>km^Bq^F0eT_u6!L_R<{*&Jk=H7^Boy8KVcCWIDFyfI z6eCmwjfOyKItx{JaOK3ugfCDSUFKP+QV5+<*fr=Z0jbu}5fC&Y=}JtIpmfcNOY!hX zNNnwSu^TU0UUtI2s^I?Z6Q>NNn7AEFY|pnPDAk@1>tyF9Ay2%<>}AVRx^}Cf;}#LF z8Hz_&-6fj3sL)nL?QS9sOGQ8YMah2^>>f=sQ??ELYfv97Q&s~}l_f_STYPDvPin2x z{PzU~`S|e6^P!4>6%XyZ`2I@Y9#oN(oBXDEU+v)xa zx1J8eh83I#PCc?cRC2)Wf#|tmB%*!JvWhmQ8ydmkUt7+?_yMY;;q1Fg`3%f*M1?PU z>0i0%-J^7bR|-^yRzyZeSBu)7Z||6Nb15n)ckCZ~Clst}kFM;veySQ59P95>XaekT z1*ao@-iUL7|0Xi-azxb%&e_JtwKq2 z78MgCel&7U@+$j(Wy-Rw_-k;<=-sSvHgaBsGSk$wG;q^2H5I{qU61Qk_X2E$6U-tb zBfS^sX2Uv-q4-Yv4xDdL^$Myufgq^YYEaduHWSFyxIZip>JgGxOzdN!B^u>iM-S-{ zX=ht5-`z#gJj}N~g{n_nsZqDXa~lV?Fg8~3y_)sg^|DmgpcF(tm6?<+?2 zcV3tY|J2c?{({p90_9mc+3YZ9$@RZ}%>!F8atJus(~nP%Me=u8U}j%ZhcWbJs*(pu>!3cLc{m0K5=p+r*OwZkV9p95TV$AorLREQ&Ux^ z_831OUyeEld1u~>uPdPh5uHDKLiTj3t)+-~df%C}5qZdq*|zwjFM zI(IkM4q_F3^Tz2s45;Oi+7I}q_3TEE#adQs4o}Z=p2Td-_%L*r^DBmQWLXP19h`(* zyB!_Wgl3L5OD2lV&6SDH(tHfeuYz%_1T!u!E{nYDM2FBEA{_m|ey&S!Mo17wIIJ@( zg;H)D5p4CK(F>Mn=hfOA=clvhK1@gyEo}v7PVqh0#U2i5Z$E4g*$W@G*s@q(jcj=E zJS&Mb1TXl_|CA)C{ykvOG1G#-6Vps`W~PM0Pbh8)Q8s8bqwgg@Y~l}zd!1W7w%UHO z(Jwe%3l1J&nRg55uw-@n9bk{@Xkgf;wE~;7NNhjsu~ND?3rQ&@NxicafGiVbEZL?tvhsam9gPzZSn_f0VFRtIUxB;k!xS02u8^}$60~s=Tf3$pBA7=8OD41P&wI=3 z{5VUrSgi;h{Z^MtC61Qtw9uE8Qo3n+y2`SuvMJpt34CTL>44?gm9Fd+6q4)zj$?hDz5aPU-&AYt-Z9_#!ZV_-Q8|Xfzu>zXXxsh;Pg7)v!mBR z+)tS=s^qtA2bxULfFYX+J95d&A9Xup<#OW4B;#y_4cPP8H8_AoBDg<0C#1xi4y9)h zm;4P?Pqs6S7zc;)7e$lR#CHWz$zLndzObSdU$azHtch{cz8N!l!)H43%Val+O$F33 zL{co>HzRozjZ#>sDqfou4>M=&29LSjGm=VJlD|_IteJ4x{K24?;Ams38;&{P1Ebe; zwfXo1$Q#$RYeY^fC}pycF3Ey}+QUDWe6~`?{tg!yY<6)seDsZZ7haIqQ`Ladw@C3_h!S+xgQhQd z7#g528}_*FH$i*W8?T&D;2cWD=ogFFQkEW&Y52YkFQ>6kf3IbGqLB zIP?mmi1X@T*0@rWfUtmm;R}+9$fzFB-;c+x?7RMfWujFI1S-V11QoHNc>qnb6!{T5 zzhQ7!kX?a?UlE(uTFDuK2{#jlbsS?%$$IrP4$kFmA{=U#SR&a-=!fO&>)QH@_wssS z^78ZGOVO-P=RQX85QwgW#&As{X%JUkQ(Zm7VCdYRiN1>zy-hU@-)kthk^cp$7fpDM(yU=7H`T9*%oL3Hx~a#UA(+1+Blok!6kh!m6O% z>hpk}95N(OZTB>ea|$2xc0mZ3-_Rs>es)^1NIRz%R*I)=Zz*Lqf7D@@96{kp z{!#!bbHi8cRi2zwMWdGU_Ja$KucVo=BUc?SY0#9F0k;Pd9scs0eSL^-2ar2q9Rd#} z*u+l%{aG2v9OuUk=mUY(((>!3tKZLSnX7BR|FyN8tY2^)Wm$2(PM~ig!(%xaUa{mR zKgP!ij|C$?3P(d*#=jhie>oTbvjK^7Yu;oarh{YlVsURgaqNj zHK-8q^~LZ|yat(@{K^%$t$rMAwWf2FQ^anpuDW0JxPQL(48#|sND!az#@AoST(E+d z&e}d)h{1b?Pni`F5dr&+*34(Q&y`mNUrvj{8-Q(T=C8#1-NShivP3dBT@9vMHFX2sG{3okzvSe$Nhv9JC>`Iv#fC_8A&E2-%FD{2 zKr7%mGx1N@Q(cqqO|7vdKK2gJW_kq#TyqZx3<%tUx-I9g4a6p{+LfvoBLBM<(Fw3` zs7)}_ij_45=>c?JcA>qpp^;UkTGYV{k z0omf2Vxpp64({xXTarB!uu=T}9hSMvT5OClSIG2~)m=P1%9Yu{QF{;@%TuER*(-2Y zE(viVw?}{7`jU`6WKpI4r-uv8MTOtC={hhl0AD_^Irv-Rw93i)vIK*r623dIOn#=I zU_DV!Yytskh{>p_GceZuhtUQjL*EAFclF4aNJa@??}3ta(D9$>c)Ple4M)l44$n@# zoT?tUxw3cU%;M2)Q`55lgH&uFH81&#DIkG4|A#DmY5o!f1h{kg$K*8%;p)!d_IGnWK02@Q{6R)>M>tK>Y7WwT%wz)B5>PI^**1BO{a+`OKI&OS)ep$r@hD_y^s5E ze4S3vR!!Z-(Q&u=`1e$kmms_9iEm5EIz+;dL_eIdirMU;(#&PTuzVw&8-U>Qvni-b zR!S2BPOEellCq7n7s6ml?|d~_cod|VAJ!5B#UJ;tV8+U&N?TsBaYn1$$BF&7&rOQC zN6?Z&fv1?`kTWkH%7!YfT2;l7_!#Nh&FPsTclUS z)d6UlVxFUKrZu(_lh7-phuQe<5Y-bwN=gb$s}l=gnU~G?$d0?j3`A&ZBRefVjnX01 z=>Fv9=DIgdqY=_f(!@FmW;z@RYn_fN_nnpI>{=G)zD zbSqQbi;a@RA-WioA`g|Fj6w_l^9%$7_rUq-@XYl1=5)jO7MW$J`P9Lh69^SA;hHpU z3vSS;dJ>#V!NYaTJ^hbo`ZXcymZfQfM`U*ps8ADGCccJ`=zX3tc(XE@tx*gIc0`0D_ptyCc%`3k&m1_QbB} z4W?cVZEGhdXhd#KS@3J75a3>?+(G+66X|;j{AC-FbeLlxMqH$>tST9Ye8f9udH*~5 zy=3qjz_H-H7itDGC@c0(#tQsN^Zo;so$-ovm>G?_`h6^p8;wQuRT)*vTSU(*(_QJG zy!r4rCu>d4>xqtdY7nD|r{``v9h?FZv&!-7u3O#^$!u_$T8=*8O31lC%G7gEe+w%W zRo{Q4$^8FbfRt~n`T6E_;S3SgL;N;L0-g5s-4vnE)gWh`$hwTBnRJ%y{7^`ejgdlv z-XJMMjDP(QG0*qPuRUWLpJDDM6amAi48<@xDmav}HV+N&2+>fI&^%PRH#LjBT6&*0 zOIen(69(HygUalmU_}8#1FO4W`S$Yy_^k~%$mM+F{nUF4&Xc*X!w7Q}iLijVa5iSi zamax)72X)NO}{ORjgk^JnI5Uizcw>qO5#|YjnS$9zC`q&C*?0X@C(yw~&HCBY8SMFU5Hk<={ zVz)tP{&Ei%XODB3iEvxf`n?>Q^a-=L-*~)0ExUJK#~Z$HScEf2A19C^M2;_u!;^LN z?0vCFv?@f^bab-PEVUuch6<;W;YsYhguqwi#Bck0bo1;37T{tD2gMoSyhu+=3w9%6d*)B=?B=#dU+H&#HXqB}frjRI z_|5PpH^QmJWoTY^(BceG9|F_ z`efq;-EYCjZf3?9F&>^Bh>@Jlc+Hq4z0lC;2CsXQ3b2VrX(?rV;Ey|9wLU4GWq)?k zsbL^20(QUKAoTx)!~*PUrvmT@q3~fFK%r4c+*nqBaaiN+9nBnlbITC-@iaDWulNXl zi2^ma2DZ2j*pg&{Z#%~CWC7mA3ShyUu6(%#ks2xKG`Lj+-8g|y2k>U_o|EQDl)G&~ z`y@vN-sBiL&avT1+FU4}l}4}L&>X)JQ*+_;8P%>+<3fdYq16OZedhv>#Sh!Az-fEF zCvmLqj zK7nY6Us)Pwt*$X|U8B$O{Sav-bvnqM=t_1+x;kYpY=|8ldFjc`EAA+&-W?rY!)us<3{iFkw!$1XQ9V6GQ#yKAyoElZieA(emOif*YIB!_ z6Lm)TJC~^NF5O_(OqiCGNKQ_@tn(hKAkk>1-d%_cfjG~t-$;~R%=&c5!WkTWFm_hk z1S$GwvrCQwwhL16-^)#apPXVR{o4h^UEA-2Z6#$CMTV7g| z105ktT#XHlXYFYa;DXD3KP4`gjoJ3roc;Y6!eWP%6E~V~8UlFAylvme^AWVfWqa1U z$*FILdvP4xd!b6&xK+}I{PZ4E#^5%;7X_Nv-wt0N(Wup1ftIF>3Nsnf?0M-##N1c$ znay9>y{Y+mF4UkSLxiRHZJtodNTWOKkGy%PtS*p-{%Hn9qljtT+u)yuPbBcMKk~WV ze>m~d{R9hddlf{+>%CIy&3_T8CS{`(@4M?S3T0`Q*iAK8HssrR2n+M^z13Bkz`vO? zq#(b1_#$)mmY2}eL4@kSGFlOuA|5{+bx}3;P*=Z|AgFlFR%=O4@!+uIUaVssf)WSB zD&|jAWMH3c7Ko z%sT0Ka_As4j>@RK3YO}zF_H*+=}9oQRCw%}Pizjm_*j}lR37Z@Lebb^3Or9-=3pU? zYd58k=sZM6+0`r>g1&5gDZ|S%Z5&0tY~7nmx#q^7l!&96#ZcVoU4 zF}xBwPbX-xt7$%8B2*g%&%Ce4>pYLdsp8}pP;9QrMM*-oU*h&++<-4BQI{;+YaMUj z%a9jQ{Rzs$IIVt(;K(YAAOLLn_wU2@q=6L>lff}wQzMwz3p^Uh5GiSl7L|hkeD1z(S2I7H;4eCYXazumA2)=rxdnV6V_Tklaie-sN#QnC~~rs-Hh3nXNUcLXaV7Ll#7bGPxE{a~^wm zwn9f4eQF*i!C+^#hCVfk&Hl+e!6fUjWbCgIhVO9!Yxt?Qs-GJKev(GBov##%?QuM# zIbpYNvOFk98#h^^2{uR)hrCKYR0+nL!zj8?E6MccSuQA}U;&OK)0jzLkQC(V<&6W( z5_p}*A;7l&@8?fw{glF?l8v*OGOt5~8>>*Nt6%PwAeY zKUsR7Kq#9}_P6Eul7%%GiriW^H|as@5SV z@4pJp3r9DY2)M6@6EVva0CDeeRToj@)MoVK3$_@35pZyGd>;+-JY~pbDa{t&)8SzX{hUDct+ol(7ziG zMmO;LdyCI**3ABPZJ<$b>6(I%>~qwwdi~OIAMwobO%>;ywK}r&*U%+;d|K(W2SuG-X?YTBP-@Q~zy-J1r+*`lmPcP`2Pju*+Aqiqp zZ>(JpRYP2LH8rBhedgecTB?JMH8r-UL_0^`b2Z@aM@mD8w)>(c36Qd2_?!~pOIE1U z6|-N6+ALq)I5B3Y{OREfke7v>LH_>AG$Ry3MwDpU>2Cw9if;HG&R_9aeJIuoRSb{_ zfcEq7Y)JMP<@;}GYim!o_?>6^9`FfB!Epf@RuB=Y-getHFX2cX{P^+1;H1+)Hg5mQ z`Sulv4p|hx5VfDfd8krt<7G;%h)rUdb0MrQ;#btLGK+M0W|ug%`Fq0>R^E9S0CsYl z0^MrE1_@Z2r%Vz^G%yIf>inUFo^du4u@l)GU+VAG^a0o}8ff8@j% z3C9UCR^)Rj%G4-c<11pp%|a<9){WRN6-1a=n|>#pHnLh=xKM?YdI!>-lC^vnDU@=Fkbb^c!uLA?AZ9LQ@axa(yv;2(Cs=OZMe z0JKeBEjE`R%_LHSAP`BC!O)+r$&A&+zBcii7wh0L=WhRvaLfy~AQK1cY|V zJVoq_IyuV6&Q;nj){8>Xt8pbHNZqjkLAu)s=G$_(yV_9#SQFaWm2&om z8iA_Dmad>yq~7ZYkU@aKz<*n%4c|KO)i4KNosPVm%bxPs{f{1!u+)2q^~b4F?`kpi zGbfie_oJE<;lu*cS&FIOhQa>-0aHu8Q2ichIej+`n{*h| z^)TUl2%BXR%ej6&U-N!J-^1VU`kRC{K~$OxDm>2Y2wIC|h`=xh(xeZ_sJ6D`u76=u z-`Uv-hNWguAmG*n02g*tUuIUDe-daVx6lRPa+sr6g%^~lC~T(v{tQO|^J5zRE)RGF zpxFIWWu-0`7GITeX)aG{NA7G>&MU^^5!aErB;Cz$W48E{(TJB|ucSsCdDYkN9sOu+ z^;A@ay1IDS4?kiVf*rq(4oJ&ocC*boc1`gwS5vZ=!yy>&wmp_QkVa=oixmxhdJ}%H zg|sL<-ze^uo4Pg}K74~&6TD!13!MiguRu+jh?pKEiteR2JzFXjTWaoJN4C_o%v3s> z=31X)*Pv11(Cb1o<<=eOM^BM5JacktK(bYevFf@4> zim0B7zCG`pp+SDK_ix#Ld6=yfq_RCEnhHjb;~t=HMrOUN(%72IQ}mCsNzJoODU%b9 z7T^*Ne^|y3n65`*Ciivr&HWmvChe-Rin&yC4PkG(tl?JN(3N7fKwU3muxBH7M3Ft=Wj3o_?TLSXe=C zq6MFEVCzJ+mMTXeleC~QnIZtEJhr@MkDq~@1I)QU6Vf~= z#1GH)VuSO4;{gnSiA06Qvr>QO+^e`vNg~5?RS{b;@hN-6M|@)IuXaL!mhn_I`%Yj_ z?(l2lJI{uCT>I(^wG*xr{S&a(ovkUk9V?5WIu0g$*85+07r^c<;aXr!?ScBFo1gbFiut1Y<>5f{+%w?%aOucmeo>Oq&G^N zW#78K*Q4(S?;b_WzKctv=e`9e73pPfuxsAjz4?$Dz5qJyQdL7l$4zql*+pbiBOU>Y ztO>sx_u&2~KUZTtF)}-wD3>b~9cw12Xwot(kNgT8-Gv-#u2o>JK{LTTO~OLb%*=1a zQ~?M)0M=~)6}q$A%YA&RPpAdhQA!e!X`s4mW`-)F%DstEQPr|au1fpB^FgX0Vr+y~ zCaYLS@S3z-u5^wHX$Y=(Cd|x@py{laOcBeus4U)kiU!w`<977a&mDKB)re2QfV!fK z(&nwRMiG2I`Y_xHuZ`$$LWgQnlUl$!Xsr)8b2;U1-f!RCtzZvl=@z6V)3d34ISp3Wty8Gmu0-)0|nnchsOZxGFT@y(PM zbxq-FLe5pkKq*kwV+}39!)({ML!elhy&9OB%GnEda}t76*i8s3MCCbDX(zC@Em3sD z&fTk-`CMVmmYR~0L5}YeTCgL=@wEM5Q^&4(2Z#CKq5?!$ykiHk!3hhV0RPhbd@IPy z4~XquxO(_hDDf_3j<4ULir|#r6O&h==um$BnWCFmGQWn?#N1qtvU6#v6GX8KHK$y& z7dQ!)DV}U^McjV(!MY2+Zj+;<_r=60q8_(7Fv#k=0nVb?=U6FI{Pf>?DX>Tn2m_fQ z-|v~jT>oG-d>R>k%|DHaV3pIo5X<^{q1GOajOg@k#<9QlziI^NW6qv6Bj5?kMuspvqK{Zp&2zr*U)61jQoxv`8o-h1xAa<{XI+ayQ7|<^-lV#!%MmWBb~jqO@hbFT zD^PYT5Sas9)g*9WC1uZ_kr&fyyQmN(Z9|q?c7#c@ zTQ_KF>(}y9;p=Z@1;E;Ym5VVS9IqEGP+-^PhH)S7r;()h6++Y7Jr&?(usfNaJ=KGk z69oTJMEIa%UIB~M;`j24|Hs10toy&Ue6o)3P3t1?;$P3zFA?}#c%9cv;~f zGNKdb+p8GbaGVab^TjL~*k;ItoD(t!>qQ=>be!~&oZ-_;Gg%mIU?LaaLG*cq+N}K| z$dPzt6j?rXPi_5QdwcupAli|BY*S#}r6bV!r`*3+rA7`oJ%8_*`8?Ss6h8mg?Z#fWMr3#L=&FDia!(zJ708J_-{@R}QJE74USbkW= zF7bN%1I#R%-8*7@-DfFY<6EXg%nQ|9S?L6v#ETJcOp}!IFJMfll&Hwa)_q=H>tS`#pNLRc-<$z=iZfCOLJFCn ziWw9HE2Od!u-R%*dF0zo4(3nqXK1h zd6@8zZ~AUsY1!W$9K4)4K-kstKAKTi;y>iA)P7t>{A*C*YpO;5@8pXDl!Nob4?$F| z$qDy}r_Xa|?CW$n;SyKYy@1hv2kXM8i{1I=fUTaIoxO4i9q_)irpC?Kcq64)=UVb- zuq8D%*;pJJXC=M521q`wa6LIL9>m_4XTH0svnS>NGgMfBD@#+ufdK!X|6vi_j}yqB zI?~l&#+8;SHi?{^GQEla|4;|L~zUxjv)T8BteXyt~+#F?X-hN>njCR%|loU>v2O$GOgiX*LCs_&~ z`JB4AkkD#;69n49d@v__rG*r~$u`jooEhLZ&}Pd7?4*cb63(&dEX1e`JeIB_t0j?o zIYUXw$+4^jl||rlcjSasH_3=rw*#zMzy=HRezK;1a29<8rdPlpvnKQn1l+Tef%8U? z(oIcS6MJQHh90pjF|8!v)o^lipYP{O0L7ICg|a6$mY3Iz`%rSg6`_grKK&WN9e87E zV}mnHl%=f)BB$rT^70bn@@wsN&=p7>bvXr8{ioTjbD)X58(6u78)}LlY6Jtyw*Z&Z z2M=JkducHYh&2j_?ek?!+pse>IQ^w@>nS8XIp~s02!o_#1jl9=Q~#RU>*HKC$x>eZ z^$XG+y}iA1IRwYJbFZ`6+i|OHfN3?gumcIQrKP3o?mLR1<%y$W8szuRBSM?VA0z7O z`#06;BF`l|@cuwWks|iZ0@JH@#AR0$$JGjs(qLn>D?6=`rHh#47-ENgiiNWJYBp05 zh~%Nn!DW;oB?^|hq(1~XlJh1O<1x|r6S!O1G?7G`->DqXkNMk@x*{>_c{0qCpL-mL zcwTRQyxZZ2_o$Zjvx)z#QaJ)Tet7tMnP{iN;CRd43s%P0nX_ z>no`Aj(g%ae@_-JSG+8_XSc0QZ%Xzlc+8jdF;UCr_Q}DH7u~UO z#)?Z73WljF86r>Db1`c!WL>ZIbHwluW|dV$;+#%hGpY|=hbMQFY~CcZOZl>f~Zu)A;13o z3-26xK}D{QjIk&Z#j@d0OSR6m(^b! zXPKG5@i*nlNbq#>l-c2ufMhllc_1R@xN~x(UF_OlrL*O+GR-)Vzh2MTFr{sxisggC zZe^iBUrkD=$G}e}31q?#l9K$X7pPgJ!5;q89kR`GRT;9H4|8s|xc@4E3-{*=u0;9V z{~#Emm2igyQ^@i~zqi`RbK^~XZpfXlWqtB*{%F5Iu;A-9YbH?NN-(!@|G@_0Zzv#p zxv$?sxw*Pjea;rUjeE7Vf>Qw-mQCN=j^g9Qn_&({Dj=DI%`LvGyiX=vrfcQVXt~6L z&~{M`@{|4@?c~C@9Zz47m&M;Y)BmkbI95}qNUypgLK|fk?ye6-g zrF&0ofEv8>W4{n@mGax3;CE%sZC!RY?yk<#2`!@V9opEi7D+z~k~qY}`9Kp2J(#Pj ztL!IK?;Xy1b0oC&^)G?Ew0CyiH@I;;9uji2R;QJ);$LVfnzu+nS>?O)^9aT|_@x&svp>oi zVi2v?s$O)IPss!J8M{09s@$z?cln}DbQ zhv&6YhKOL$1t)(CDY3-jFx0YNrlzKTmM&7~v9}Cpu;&Gfu3jKx-SF8TYVxwR_xO;U zd?!)jWuk6Tv?p6G!A1EIfNgCRx%3o$ny2#ATD z%mrOBf4;UeR1P~a9UJzS&oZI77AVB);LZnjQ~Ufja08S1US5=q-@gyJ0l3xC45q;- zoUu|lv9aA_FE3Ae_$ekj`o-NEu!XrQs!~y}xah^3x$!nMmX)C)U*6cLaI?=LvQPl= z1lo60e!&4?ZL|9Z*QKbj&dADInS#1LwPJ5=0bdvx=0J~cI z=L*HpEa=iRywH6(H00XRfWilu(%9hnOV|3~nE3>D+y_oEC^Yb|j zzH)PNqB+fkvv7C3iBhcaKCyr-z8Qk-Zf=?)3P>u!F;3puxkvX$G9mvT^wA zk!D&TQ503DXjI$J*%DDR^v#2kjhoobbS>n(k*_n|_Go-aG2!XOuAfr~22+?Sqtz=*>KkTF{aIu9#roVzd zcI#tb>2Q-=-wk0zdp#2h_gbrGYBsHjW5#XmzrCLJ*!X73RnG`~evU8JL9A`?G@i4c zTKD^78imLBw;b|twHc;ZzhA}{BGG_z;1vlbMcef?v~T)Glthu+k1PUi6~GhU_WHr6=bir z!~t{;S&m<}63*f;jZ&ZqX2SB`-U#x%qyFX9l>__iw(xj!ZHV6)NEluTO7kYvFSBBQ zXxXjvgt?C7rCAQiJGDd|?ozY|>-Fw3Dk*eN8EUEUVuOCHCrkIz+FH~@<{BA|q#&^@ z!IT{KS3R!v2ZZgR+2*PPZIQ&@6yI-h2gs#Aq191Y8~T1>@nhQRBIg>h`j?@i$*{72 zew;14HQskl<2sV#esaHYDD4@#aAPcdTWdf<=i5JeCDyjutG_aH*e~D$>?xbx`Hf!` zvjvg1Ijx|T|38|t|Lp7OBf6lO2(c$eB`(bn`R#Mu?L)wDpUD_@J#fG`fS?&XG#jR)O#$~LnM;OBkuyK z&Sbze$t2(O)z7a9*jXY=W&pQ2Ijz+@KNG#-Qm-R^x*22mk-+UX7>4->Ypld~M`E&L zf?|YGB!6LzE0K0lQ0VoXxuWk|&nBY`T}mXvb)sZ)auT)`1~E@pJ3D37p{<2p2l`sz z^}008J{@Jtt4Ph84^r228(rCX8L5bcdF0Y!=#=9?)RN=wcES0H27L${0Vs7`Gh27Z zUc<2I>zmu>ZCy}*U6lg(F2D7-E97H4d^FJf0dwEbz?m)y?oGhdc12tV{QcB=sag@d z%~L-^4H&vXuP!|WB!bU6L1@$ydLtROV4IjOcl?*${h1JO5ftjHW+1bEdSD#P_V z?-^fQ_w{d4Vy74P9-rNW4DEy8K{L0rJePBCp0FcNZ@SG<)IL&DHL>(W*lX%?_s`lv zeyAv9X~IU#MHS)y1H@y-}MxmDrFF+@O6c|#DqGW}l>1b(Ta48Ir zB2d)?>B$K2D$t#x#VQ5IfHi;%?_-JMPtg?zbQw(ekO)x_pM~eV6?Oufy(GblY$b5+ za#2Uj+aJK3Hx@zM*$Hvq@Nk%?LAnHl)|mZ;Rz0lzE`*YG0Do6~9`tIt;V-2w5HvbA zHXtnCPeKAoV9Rm_(lfBV!5;5;dhCV?#D84eyYPgS60}9&M{rtBFhs#x5}>fI!@VE~ zZf;m&9(jrB=l1)Cfd?GSXXjGn6*)dWuIv?UwLZBZcn#X#U^NYU2;jAG)Po!3btkGE*EZVp4r!q&hJ)fvabWU(se4Y zEpsuG-6HDsK-T~M#@nH z>(qZ`CHlKp+t%?#_;Shu;sQcXlK!)K<>UZvlrjY@FEWZxdVzqNmX~f6Wf;hCDO(_0 zQDiY3sfE&@R6q|vM%Kk6=}0>aijUOD+q(sTeGZVkV@ zo0D*7Ft*&?JQDKdaHA0&_#WnDxlpL3-z59@2zN})-qK%aMF|L)r>*ZGaZ^siOnB_fR#G1P8)V(Kp?E06~GgZvb}CNCK&BPyVCLXPz%% zVBZQyj2L>M-kDTsoWUJ>|O*1Es3?agPmy_fnpZ_rBo(pZHEl)_?5ZGzSj# z@}Jd3n&NNVlQ#NLt?xFGYfLIKnF`s2Kc_QheZH z#oB8mU3&<8H*A@C8ozoo&+yadG{n+P7X{VvNwdR*ORpWgdlJY#CP^SdRSq|dx%Nm7 zLeGnyiJ0WtWmy6y;;RbnHv=iAX{b7=I{4q#UHkRp+ti31#x9L+IdL}VR^w&lMPGhK z4}1!|Il>LSU`JxbVM)ZL0n<;I*u|nk3;y)tAq#H+TqHbw55Ah0nj0#3t2EQ;4q*hL zjSrRQ+^h`^4c*-8!45NF{ow^nr*yf&bpwlAmh0O7Xyv&oGat042W^T1<91jEMD}%k zx6QoH)^FGC>3bK0`__#`>82!M0Mt3wLl$U6a{#Z@#(TcIkZg?(DmFpd&~> zS#I=*7clj%_Vqe2q5{WyHzq;iO6p5fOGi&j%kP*fDW>aWmw;nH77iJf{&t&i049;v z)=1epYKErY$>&qWJd2$R zoFACeU0QjLKc5|^x8|7(->~7LBFQ2TSY#hqqP@yVp_Ib1zETG1B)Vmx4S{ww~; z$3Q~V{y077gC)N3(kSUhw<#G1!>>y%(``;DV;(+fBt5TWK=;wng3+MI1 z7T2ZYi|fFlWja`b@t3-4V*b+k2VV&An}$Un8mQnk*4ENuEO>2et3=60tZZ;20O|k3 z)7(64;Q;<3FLLjV_E$bTtLGXSC|~9QbRR;~VxkEgT{3&{*i(Tx0av37G2t+>aMp_d z4+@_x(YuJZCN$ATU-kB&KB>KVYF+T+@SA!|#aj))&2uLgrF!iw7nOoX5a93yg~9>? z*DnX-UDR)hW&84(O1WA#J4O2``bSSMfwZ^3rA%>=R_^473VN=`KaY>mNE)DX7pvu( z3nLM7@y0^@Qf2@#rA;ma_s zWI}0nt$0V)NvM2e3U_XlqaqG+Z#L9a%U05;wbm8AAr4tkKY#v&V(&UNHH>G?)7HJ# zJ(x1&hWHee)el=rta;F8$hO`ltzy|+(qq2!)SFbhv-eqZf>+fh}Q#oM9yE@7x!rLU&f*!mdy0uO5UWw0T-Q{zNV zy-F^5=ff_?W8?r;XPM&1QQi#Ix)C0QCj)+eUq5D!;V};{Omn)`(lKtv^_bYG;p_9@ zXCg@A(wdK)<}ChgFC(8MGS4f0siAmc6mE~~GoP~WQ&diFF1;qU%hB$vsQqNp^5+x! zNDLB-h|EtHFVR5zS98cQA(-^CK*4a?*^2!&Q#{g4r?7Cj;j*QtGL==jgeuY9`FMeU zHlG;@(&PsF+eUcS@y{~Xq51sB=3>*~!_I0aW>NP>LO-I;~&0w;!O>O?!(4`)O z5gnO+!pv|ad1r-Xy-u*7>XwB18}uoEGPS{+LE=RT8$R0RonP7js%}0@(mp%H`c#7t zLo3f6%OwD@6Ca9;uJDkUeSj|PF2J3d!Ndu_Fe1c6vvv6P<9L&lw0sI2h}63rO>xl- zStmEMvd!IXJ7odqjs0Wo)-BQk(H2#*MtU)x6F+plOOuT>T^L6`3=Qi=C69UIxyWO< zG=@f>f4T+Ojf(2~wCkZpk-FS*`RuAzRW&u=Do9uuKZv{fL1M+Uc&dCJ)cj!0WZIuk z)<0NjJ+Uf>JA>#OLzIj%G;w5<{lDP9B3IVf zuA``+SgSLpVS2ApY!)oP_10pMRIzyQ^}Kw22_O15W12liimzIVpyP|ZWhbv9whBF9 zkH8WK=3J9;K;{VD7=7BTV)a2-s)`di*0PqSm|nBdWQL;dCZ4_}<9qVtUhD-+TupXr zgLTJLL*eVRk~?XI7By=lHMuLY^*Wk*@{!M;0zN7#I#RdJb`$zS*F%DnlapUpH<)N5 z3?K5;>o6sLo3kfW9l8^4h$0(oO$rDNV33+7mqaMTkrP{!-Ho3kVkzFE8<@i`Wf;k` z&nAqbP@o`YNt5D}`Ec!!=WR9iDQOV5WcmeaK7sXW{_NLPJ)GS7?<{J<98@Egs&{{U zVait=*BhPPWDNITRjkDUNC5;O;QUO+&Tc|)RF0K$|D(X&On&%fbN%_sz?fyc^A|x&j@IA@<2Xqv$(K=yGHPwCtAU8^265+UKU;h@)H+jsV zByKZf#{3PPh(IxVpq60#0)7s@*oZ16|8eJI?E59+;DB8>`j!P zx35P(21746o*_}Kck4i9bYZKex*Ak-%2Znic%KujaA@ox6(ptP4=e$Qxi}H3LkPBm zJeZcZuPClab9CGNTtX{WqOssX2e8odDZ zQLmOSrY8$78EuiCcGVsFb0)q!$yZmh(nLM(k##Wc_PNXUA|7LVD)aq^)|$TzYK`5Z zKMIx?@iw_Heaeu(-5ag1`u^niQ?}l)SwU|%<<;;t!SXC~^nY0MoOS;m@r`udk}wwMC} z#mZ6hNr-?33OYJbKKZWxFFpV{g_hM6FdzaUb~taa=50w~SPtUhNy%EH7#zFdC}0%H z)T5%DP+qRAuvn6j+j>gZ`faNzr%EUqVh)o`Hbeo!wP%B?S-W?(L{261I8UX<>J@LQ zNnmo%!v9CSBM<5Aq*c^7PU?E}Q zv>sD+>STzfEYJYfYmG_0$?(xlSKIYWUEREi4{92L8d9u&$ugH&wofnJ1f8M#^4#NP z!5M=O%EevG6tPb{r}1xY9G!q&#R!-v;Lz;F1gc6Za^m8_ z?B|J}Rf?bH-gPw|HfU;9K`TDXc*S$a*kMg}Ye+qs7jf2MRlA-!vgF`l`YJz8+G@Z; zKwJOhoBm0sOG|T0667ZG!`=%qHApFoM;^;xU*+fDMM{A>X8K~CJxtx8^aS(HK14P- z!(4gDVu(*M)=e6-y7TX;hNvGq{_Z~D@SvSRPlo>$jpYqw5{bSFMPOf}N&#aa5W7gO zOQ3%KnocSfx~@%FK78ry)W;}#jVp&B$t0u4K6KRBD^>3luR|$ek0{iDnBkL)0Wa}w zkir!d0+@2v(tt;Uo&I6zCQm*8Rxq;}b!V31tx;!sfEsLk3B-sSFxF7#(dGX0ZtY$O zDhf43Nl{c=`cgIv-4pa7lSS9sm7%dbqJ!ilo!bVxL-hD9LUK$A{;zK5Q$4@*{E|_~ zmkQiEFog}1u>m~z|Lz7G{`SJRrP%%RfvN5j2Az3b@-5+vp24zPR5@ARpxr9h@C<1^ zGDL;0r9&TSPwzP^p3p~k>gUsilFp}ixtOlZ*y>il^XHlMMR&*7{ZC59&B$aIGc>1M zqHArU5=>|?V5^S~VDCa>+ui542vM)31BiL>HK?*F5WW`$W#2{iQS*E!eaIAz|L*!n za7aK<=Gg)HY1<%aw4sS+iTdl>Rq?W#c+cOrV_qezBc-?>2fru}fsqBoT`A|Od7K_B zthes9K!0B=@7rb3g^KRuEhzgt@B7l|1<|>CbmM0OGdc?GJxF7 z*Y-|hdcBvP=ubAke$`l{6+APN#C|zHI?|%q$8w$bNVVg02HrD}F)G4m+ zz^Yr4#P4D{r#ofH7=I#bvPrd&-*uC(lKjk6_cZPendLl-f2f&s`3)kZ6L9+R|5>XG za9xr0l+-0MQ%W)cnNdwu8BI$5=-P5xq2DsmoC5#E$mb?K9}J2f;=WL*jU#-ENAJn* zByv!(e192aT{|1hhOWF@np_H$*-h6RuSI7E^$w4aZZ1&v_- zIAi^+jh|H0{&@&xl1x&n&f`Bn34;wCRRL$uoqVa$F1H`aHp;6wf!XeHWCp399f71H znvUr^1}!yGVX1~}@{_0>$z~tR45bq*%^&{EQ zpA6(t9k!yqjH?F!rPE4L8I9oz*}E9Y#uE6gEOQc=BUFg42BHFygx!lh6aI!8@U zBWWaK-wj@Pl44Qpykh0@_QA>64_%L7N|wUHZ`K0ccExJgg-z)zGt55lBG&gU zb4$f#DIm3H+AUDYC)Z~oGb8!WT~adgNw?vQcU1`{LN}s@i4#+=TuLAooJ;b_^cq*PW1MF1+GaXk?`^TD7ak zcEx8eiHqzmzZX9-_y6)ut723ottX!`ti@MfwHoGe7S%a3q50v4E#|6szx#Z^+J(Nz5&rt?okP(x0gPRZ85 zb>ckcZo3^*X=RbZU%u!)j<2oYt0u{)#K2bZW%(`DAQ z-0db>gAdLAeHWU0Ctu#+vZsf$J=SYAVkWvbA{nKXJE4T`tN_-UC4|o)Mr!#ql@~4VTPJxr3agQy-BatL?}+K47c{J;$teU z6axi^b@#FD+yvHEt*n()D-b8d+f)#`|RBh6(ZtseM-8eEm{ zzo>n({DCWPpvl(TqC0w1t&-_U&QI$ZxvcKB!h|QH-JA3RZo40|SMY8NCmb64)GLQQ zeEH`2!o7OWCrkTy?ejzT)0rPT+xdT>F=hSr>Nyo6h$}=z!Bx2dY@B(|b1+GBy70jVo#dFC17@e|y<>RJ{2AwEzl8S{m94$L8@5 z&SQ$jx!?Q+QR~C159mp#9S$_uK_A-Id+QDMJcrJ@wlS|tF#4*AvT|Z#b)r;(((6Il z?nj!L^KN4L-?#7<1f6q-4BTLE3SyCLXTzjyx{98hcqJ9MPzAjjanFm4W3d;_ugNpt zl>0BX2cR7gZj3;)ROtBdNg*#E;TifEFpf=?R7XbtSyZc6nxWB)*TGSCdN}_*9KN2J zm6cxI6O$KT#L_A4vA0TzB4XOkY+QdU>hY6ja3?Wu-2Je?$L-wDJx$(n^eipk3;J4A zh`Y#4yU_mr>vy@v-B#|>k9lAyZVG$+yI(!@OCeW}ni|^M5ae9-M{A`bz10@DP;&q-|)HI)@eeV4}?U_1O6!=O;Rkq@svrx*sk=utTl?t=9v z-Vxenqj%sGiIfU9*^O6`6qTt(Ik&i3t{M=WT-V3Eb7}m@==(tINvz3Yv24b5Ld5~i zV4g+}L%GHYLK~T+d5Ve><5ech)FehAqowCZ#Y!VyYY;s`g;N;Pbnu$p3kWexA(f&t zlq$(!%0Xq5h7JF@6hV<~@R3lPYm8+4;b41O$x41ZhNNpmGJ);w93|;QTS7`cm#t`C z-M~^BmGUJfDfGlYk7GiXKvRNd!^LEVjTvLjAADA&A@@kGD5DYaCF#1V zohj|1%#n9Y1a@6QBoXGiSFgHepqM`Kh<-*1Md#BHROXajv_<5T7~x;2VK5%0mI}qt z-$F}$8H;3WCoqh3&m)vdQGxgBy{?p?hCxvigqhF`@bN@2T#_{AzNPJzl6oV#IV=W( zs-$gJ709$G>#n0h(;lK05B1WFYz$&eG&bxqbPb;`3=ii?MStP-|1u z@xVgn8OS4AF)m-Pk{LyU1(RRt0SV_b-2cLrg57d&!c`@Q3Q(xI>=$-|$s?VN_ zkGjsYD9GY;*}IXs0Dx`DeetvQg>mcJ5*Nd!LOHa=)^T zLYId;`3N&+vsV_uY6UO&6m@mp?p?y`vM*5MfC11WmN<**LJo$WK25(z1Uf+;_ule< z9>F+UI+k z!hPb7YesNM07d9t+Z!6AaQaKB!ggV;$Jkb&7Pw*-_l{1`kKmA)!ww>$Yu6_4Zr_zC zBVeYl#c^TjCN7~w%F*2`mn9-74sDysxI4?5;|y^5!G>+V9PKIX>6O0&?WwMI;6*S$ zj$hpMvjr;6cY`pe0r~LOB&vifTxEI)0mho_DVPpzLd$$}W<~s~2GO(h`>s5H+$Q1A9+BeZ zcA%L)-TG9{FPjYWbA+^hs?tLWr+3#|x<1rDI^O+`0=%hBovC2eaQNrp3A^-~R0Md0 z|A1KM__ztTuCJ%(4POSN3OQpdj5ULgRg|d!T$2T`Yxm|;m|SzxMrrkN2`Dm}j&hm* z1UXK|Q(%jm@yR31Yqho%?+ML#DH`=NL~LvGEp&?L;!V-O zTYrJRepev_zL2h$acqIFMocR;xzs5GSWt0SuA3GPHL%vdEO#we`WvyclD1@b1ez#y zbkfn`;p^(OS;oxkUSc=v0@%Yr<**`1HZl_2Idk>))8q3H)4b~H_V)H{*JDnflVLRW zZ`#O#z}GWx+**j#sYIS0ST8567hnX7$kr-WMpL`2jn6U;T03?4859kG8jJ9eiEWN4 zk9LXbLuD!%JD9BL77Nf8YoI~-_hmCkMF#m$x>l=Lt+JoU0~pnu^R(@&52aFZ|)LR@&2(mpX6t(avJj)t76`I{R#z^+MW)UY7T*IkU`cfB+iV)%B7> zrxB7La{H$RtxZj32dY|H#89{&|EZiG!LLOGoZ!zWeOa@wPBguvk7N^D+dmpvBZ2VY5u~SkL>cbxN}PU--$-LsNn8d8ald8 zRDcHnR@ed^?>|>g&~3a8kXmRXL958`yP@Wlc7_HApd}mf$w+r^3cGHEWr?~OOr3t3hDGIK*4b+6FlAU^zB3G@CHHHjYw=zz zRVA7>8)}#~tH_X5lRTf^Z*JT}B~26xFy1cJDsV~Q7QNe9=H;~sw)-AaNmuep8O*ks z<}a{E6&6BQ3(|5(Nx_@Q3D+xV$8BZ*S{@Zz90Vu?$NtJ!L-Al{g{F?^o&}SeeUrNw znN9r1&5HU zoX{{lbn-Zk=W`&X{GEIPCOW3TJF-+P3YXc)oPC#NshA$pcW09kC}4uEorD>JXZW8D zAt{3mwI_BH z@A?mszP*fDD`EDD$Qwbp;E^Ayf42k%P&&Ea$KzkSJYT?RpozpUx5uN5giv#CEv>CS z|BeUG)3bHBZ$GAF{!h0cQbFO<>?Wuy1)nk^M<81pL|Gq4mw>Y~6l(Ra2DdJwmcA`sdu#$EODR=zm{2$)~)A z8;QFP2j>nzs}fLqLrYUL>_bNOOkj>P!Ce-_xN4@Mc#O{oY0$h9olrD>BjD0+9*uNE z;-)X_Wt5Svd9XZRdjwsQ9Ac;MZk< zIsz3KtC$j1m7S@3mDPEy#tJo-FBWB_NzL=AY}=Nv!$5^QdFbgQB*E_yNKvOnNV?E8 zRE8p5Ul$g-Ke)lJ-B<{Y2&cDjjmxEy%vI!tU}Q_wFkN=VI&fQR`i+&}Fmoryb--1c zN+wA-$;3QZ79knv|04Ze)Gn`Q(*-XpDfS#+?^4S=y812k%tem7AuINXk||V4;?Mpl zYDz&NH_^;dhlO)u+ZBIX2tfsID(~3&L`om#n}zk`e*-QtbPFAKMCj_S&^+&CSARcX zexFuOb!&8W^xi9AcYerERJ&A0-Mba`@VF!B3FMNvg19S4>Ya=wA8o3FsfpA4@xj*l ze`b!8d$onveKjz5My_5XEu*ontgO$RbJJDld1KmGUJc7Xe=Dt2$HV!~yAU{+)%`lH zVR)rvSjgc1M8y$|gX?T({BbK6Z7fuW=;j+=ReH(A9T?7Eu55*Rn`Jj zBx%8Rr{gb*`XOdCqlWpPzex&R?-$Haw7Z@AXI=#h5&F*0Mqb#6CsAr1xDC0=QBnKl z!I|rN1RFOax&Tb2*bNIS#2l2ixNk#06B(pbY2U&)~ ztv93mJneQmc`Egu2md--_vILoNWnkzx#BAy*4ndAvp==He)WuHRUy-3P2g84Z^x#thVy?c2?l2Ot}WMWb|}( zANXt@gR_xO(PL*wy=bVgWF_P2BPy6#2|jq>WjiJLCJh8%V0iraUi3yUNPGeE?(?yA z)WQ=|KDBjq32A%m-adU_SyjcyC#Zo=)bpHYQ=q8MaIWkE3;Ua9!3S?p^c-{l&a;{d zlt?ZCgF+RXsK7y*xdDM}i~YIbITCe;KQcsUg1?$pqKsm&pzHxoi6CToQig#%=?VcJ zv{b&Q-osGgUoV_m2Z3awe2|HzAPaXgXU5ZjZQA^H8MU{WnLhvkXEwOz%xR@Mo#!YF zgh2E+hb;#Pxkwu`xjd`k{Jt2IQbns+Ta7n&Er}P)1W6(K4EuBq)M;{u##S_sS zmtWTAs^FLq5lzULoz#YzB;AD{PnUHSsk##L=EK%R7~fCBZMQe!VuPmU1TmE9)f_MF z;-p!@wEVRE9~G8x0f#IukuyN+05-jOd$$M8Vtjm`?8Xld-61Ui2P+c(%ufSJ5}~2# z=0GIx{pN(btg^E0F-WEt5b|NCMs*&&38ug}31brz87dh$yZ|RiJq0u;QUO}UOsq%* zOe;nSWmF<}$Kuwr>bUpNi;PZCUP4DcE5K*;pUjx`9^EG$3+ z28$;s5+RprXlTfizp<*y@o?Kbh0_18Y~#c)N8Ni-Q3N8iqrOMjO>P zdt0JEc8J()vc1dD5wnE0ltCf9Ttx!0)z$KT!WWM}Ga6s{uU-^uCrX}tbF~ojv#a8x zBE#Z_jnm#ppqRSGCMQ)}&#T0uAzr1P1eH#Vfm+wvPD-%V>lXr1*0tC%{=C65M{ET_ zW~=6M@6N5eWKMeByO$4r-#HLG_a%KrS~awZYF)xR=1_DhHK=Qms?)R~tk|T-1;4OR zeD2qJutz|uo_J!*CeiLtITs;NXSPK8JHumYYM*CeZHc)V-)l;Ue@xO~0IxxEZ{Vc8P54uBn5ngBH%uro|vLIcxKfu}tM z?_U>cR*5~5ho1zTaVCHNSwiMpxkg%67GVDX!3#6I930!@_#9`(fSJOeY1!sx0XJMk z&WDu-_V8-0;tA_}=+|@z&ls2mNktbH_TgRH$yj52=joQ23>IL)6mdU8saRrsLp&$0 z-Ys9tQVj(W6w{zZb-&Z&ZGx+j6t~P)LeZYneZoslD|f05DV*wchAdPmKee|@MuL#B z(h0OP1wH(|TO_xd842X?{1J40Y>-ThxO(iDjl=VNvaXH_ZXawXxJR%zCmd|(pL%<4 zvyJnWCN+*)sqsN>fu8E1$emcNs`6?hf0~Vt)5F?Z{LLcPvq~N`u01oj9Fpo)3Q@+bCLHV zt(BXbo2_l%!WLZLn6A7etvsQI)cNbZ#3x#}nU(I@>Sz@jl+{p84!YF$Ff0rPQT>Bb$uW z)PqVeUBeo)buew33fgIKpfE5rJDUFuyPdh{D4ebIL9GZbpd=EqnU?Lr@i16!)ZLaw zriL>3k>#}uNh&9x=)oH&!~*Cc3!n)}AS)6ELOUapF_46mbW=2|$Mif{x4&OmRdwsY zvleH?pANa#W@e!#qu|DwcexA42e1fr=BX47LD&`y)(*B7raaa?fZQp_(fMKW%a>3q zT)~TPc5fkA;dE{4bnVk$T|~B85%~Q-t{g5e7k-HV#TI}aFMfJhT3Why>vr#3v5X#w zXa9)C8g%jt3L=cx;m3Lx@C_hB#Ys0L&jwa|S62Eck&9*HA{yq3_hA^f>HaNW!n`N7IqGf={J)I zfd;7L#wrME!G5f#IPmVu1=AbL^mP{*!MEN}bp1X|*TY(JB*EU0RtJf%Q zWNyy5T8F4KKQZx|M(7Vf>=>LCC%VtWIlNenlQPb|-8AFr?Henc*E!)ZIsM|&^=FU@ zlb%j@^JbQQN>*AL9y@5n+blf|4QJFJ_`MKzo9Q5A1Vot*AXTX&AjkOh`}(Pvlo^o5 zYu3)6aURkB%3iUfHhl6=FU#lWO;AfA9!g2`z^NABpAPV6gqUwf;fXb8z%-%7K!;d4 zI_H*IM$eaEcu4z80ug(2F~Yx*T+sFCV>-3oI4rDBEFBL%m(rE)c+%{t!Nqc^<2pR zbl3moPrJT9s51QadivJ5r_X$&+fZY_7C%R~s|#V8X(CqjMlTFU78Z8B+@$TT)Z;n0 zbzzR$HlqI*@r>5(xSsbT^5JbU7q?}S*bx2@m^T?z#mdfBS}5CB-5e;e#q1&5GfZ_h z?D|{ps^j6G_531&7y%XTW9^a!mv`$T-HPPVvj(=cm*m*pj~>vyBPSL3uS`e+9)z5B zNVl2?z0!Q{TR=a=URAZ*`!!vlfW60FDzAJB6{k=ZVePE<}XER&<{D{LWSW z{XifxeOByvhTMTZgvXjcJv;|aSF*Wl_Vts{p1j$xlXURp3jF*9@nB_Lu+WDkds;RL`5z>e{PLs_2f(FKn}wdQK^E}@7V&L0R|CgNG8Kpz;>3~pF_1w@<%>78VMsepK-7Z zU=#-k{I2#^rp$|E@DH*EGTJ&3aSYZd$|(D036My~2l<_5Yxs<>MM>EGGW(@4;ft;4 zH`_=t)J*F7R0A1(0T_M;Z6v=6`)W_97P}WC4P{ewyYD4#(db!;=x7?e`TKcPB6NLJ z@_Bk^@#PBg1?f(HW#4M71pDbbFRWatqvCMQT%hPKPhYyyywfn;GNGl_oLX|+qcQdL zy^*GxkIxx&R-o2{m%jVodT=Rxddc(7kt$|kE`;`^4O~D2 zs3Njq!nv`h!V-fDEEi@DHJChtrmT^j9r!fKNJzf-=obF^_P;gr0?GIH`SGzyP{C_H z)zH+us7)JesOPbEpS|EBJ%lTp@r^Axw*4a=C9`AC1C~1Ua^Mxust6L?o*pi4?$H{2 zGY1p59zbe7g_Wqd*5m+S0H&zVybO!azf`>KF@?2~{T=9}8e}cNr^9wX}>uz-^M6j(q^ErGzzz4daLwDMb|0xc5g6jf` z^b)#;5`5<#V_pPPR_`m+=dE6G*kN9%M#<);?t+~MIQF5EwYVWZ zu1u6E>Q99J@$Yltr&{i1B=F~)OiWBbHkf1rY&UELV8YURZYjkfi||us^lzLc!@i}R z1O+$zkADZA%yDH_jXK;}LJs-;W_1(R>`1yOqLHvlvCPrv**hjFk7GI9>Tah5{e z(mG6fo3?BU#LMe-v(ZaS=C~S39nzN}51Dy{+_?3*KYsl9pGpC|jiqtdXpPkXumNjD zU}-xZOMUE@e0=&2H%}ONPw0OyK0ZeXGhDo{odhQ#C?{N>OCqVN{1|VRK%Tg0rmMcr z(2jf_p3+TYbeSW(E7bK}T{3b`V;ioos}GNk#9_+Uzy?A)V9QFru0U6!pIivDl8fTE zpJsgD2AfL7)Rkc#5`3wCiR6n>94L-pzht^!D>mP&TNqaVww~0P2L3bMB66}7JjC{*lfR3y?-~mkx3Hy00$JPn4i(3meGrUn8em#?t8L%?IW24h5p6eAL$+$ z&66~9R2FIZg%*vuj8cNpMnb`5D5gNGxe@+B??u_phuTj6)SI5_3#?u$LL-W+yecE^TmLz#e?48b1LJxfXi4`m)*w%Ht*@y;2P z&~%>YC;f(-b*NsrQ5!PqDwhi#OR zvB>maL`zU0o6?r#H)g}wHVjw*V|&ap$SCH0dy6b|11SvMc{8Jam^JH>5_Q&Csd99= zH;ak2bXG*w*FPyXeUy-=d$bFfcp2p;@0$U(js1@G{K3Y3)TPnG!wusbz@OW=yh`u| zgY0hOyH(Yh{U5$te920+`@lI?oB(l=SVu+~ARDZd;BNmiZx3}`OxMe@s??+~p2{vW z!(1ogzwgSJb^}{%W&9eAVm$htbk{gmzHa~g*KvF-YI~|zdK*RJ=Gg-KtAUQw3=f*|6Mh6 zSO`FuzkXNBhyVqDVIgGruv2w&(`)^IEdX&(FVGBvV83F0^SEfhju3t<0QRUXFjJm` zM-;f}5SNhc@9csWV3h68I1Z{n2)D^M$4ezL&Yv7AJjfYd`J5uQ(S{GcJuxrhs~iab zoGRgrAIrmWyw)%E-2}zp0+l= zTi0mitC<^*5Rc=>E%}p@lP@AcSW9^L?Hky*@nkL_9#o8e#Li14wC$Tf(++S^*m?f} z0BZQYgj5Is(G4t}hnY<27rcN!oJ|YMnH=&09tc6#fc&Vdrzd7R?aTh}`dz)iCuu5U z!^1AWKZQZ)_Xge-O0iB1gw9Ls+3j!4KLola~6z8^`GQuDFpWq|imN5DWboVl-~k6z*Zz&SN^CE$6z&zU#20zP!_ z0z}Gw`T6_z_ICvgihxc}nd(kn?C&G69nvrXvyPley6^StTAX*x9^mq0#Yj8z-U;~8 zyn!uxbaYg$h%nEhXh=&>?=uQQgTbjurl6;#S1P$tz}HgCQb9NSaqo3ca7pm7(+Tmih-6JWPD=+84R;2Bmf5_e~=u81_I5Ltk5XLM;Lr^TxcZ;6x z&z?{5KvL-?HU+&m3`*4d*tHgCqPd%wtQXIEdAk$v#Ef7<)6mdxh0f~zi`QOQEy`gpEbRE!&w+?nY^jTp9NatdQ4weYl+?fYD%iY zEr==0In+N}@qxbV1>WZcgRn^%@+HsKom=z(7G_h6o3YgxYQRVnDF1vWzEzdu40)RX zZF+-XQYkDvU3?@i?75HeWPJBh_xw&jhL79*`SU~Nz$%MQOdCtvtn=%JXw*+_j0ZjA z#$?~G5I-wrs`fr_H#Zu0;|XhkhbdDr2`m-q9KkJZ#CX7iTs0 z^(n|V2RZSYv$}jly0)3y-v*l8;z5QA4n4>-K^*vu^;8H_? zcoW9ybgtY8Ld2m}A`Ct($Q_b0gNTS4tG*Q|Tw$JV#`mqlvRcbTFv$?5nPdYV5vW85 z&eSW@@HM1q$GZhrD?}Kg{N@L1USiMzn25`gh*STiMBng9{(*a6FCe8* zM7O%p*q5$PlVlVax+@fdvq>t;$3+rUzVV>HOLXuX;dW(zQ{+E*u&egBb|Jy_!J${i zmg|F+D>=M!dl@My5RBP{nsQsnSabG(;v0Ua!oo?Ap@A+MNYulb6R`8N8}xBC#!BA- zHVy@~1IbZez`6^%5flZ?%FhKJDwFIV*BGYh*We)$DpAgIZ2~oV4a^-JaVpo_;}9sa}WcLn!wLU z$bb<%6xa&-+e+b@N!MjGz=&MIg>|M6N9t+m(9_XDjcdX42TywwauSM?H53e!4`ChAPdwIt7}^S0eNs1Wd7TU2vI#80if=1+$e zQmyFV